@font-face{font-family:"Montserrat";src:url(../fonts/montserrat-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat";src:url(../fonts/montserrat-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Montserrat";src:url(../fonts/montserrat-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(../fonts/sourcesans-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(../fonts/sourcesans-600.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --blu:#4A95CF;
  --blu-scuro:#2E6FA3;
  --blu-chiaro:#C4E0F4;
  --blu-tenue:#EEF5FB;
  --inchiostro:#1F1D1E;
  --grafite:#393536;
  --testo:#3A3E44;
  --testo-tenue:#6B7178;
  --carta:#FAF8F5;
  --bianco:#FFFFFF;
  --linea:#E3E6EA;
  --notte:#16202B;
  --font-titoli:"Montserrat",system-ui,sans-serif;
  --font-testo:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --max:1180px;
  --gutter:clamp(16px,4vw,40px);
  --raggio:6px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bianco);color:var(--testo);font:400 1.125rem/1.65 var(--font-testo)}
img{max-width:100%;height:auto;display:block}
a{color:var(--blu-scuro)}
a:hover{color:var(--inchiostro)}
h1,h2,h3{font-family:var(--font-titoli);color:var(--inchiostro);line-height:1.15;margin:0 0 .6em;letter-spacing:-.01em}
h2{font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:700}
h3{font-size:1.15rem;font-weight:600}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--inchiostro);color:#fff;padding:8px 14px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--blu);outline-offset:3px}

/* etichetta di sezione */
.occhiello{display:inline-flex;align-items:center;gap:10px;font:600 .8rem/1 var(--font-titoli);letter-spacing:.14em;text-transform:uppercase;color:var(--blu-scuro);margin-bottom:18px}
.occhiello::before{content:"";width:28px;height:2px;background:var(--blu)}

/* ---------- header ---------- */
.testata{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--linea)}
.testata .wrap{display:flex;align-items:center;justify-content:space-between;height:72px}
.marchio{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--inchiostro)}
.marchio img{width:44px;height:auto}
.marchio span{font:600 .95rem/1.2 var(--font-titoli)}
.marchio small{display:block;font:500 .72rem/1.2 var(--font-titoli);color:var(--testo-tenue);letter-spacing:.04em}
.menu ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.menu a{display:block;white-space:nowrap;padding:10px 12px;font:500 .9rem/1 var(--font-titoli);color:var(--grafite);text-decoration:none;border-radius:var(--raggio)}
.menu a:hover{background:var(--blu-tenue);color:var(--inchiostro)}
.menu a.cta{background:var(--inchiostro);color:#fff;margin-left:8px}
.menu a.cta:hover{background:var(--blu-scuro)}
.apri-menu{display:none;background:none;border:0;padding:10px;margin-right:-10px;cursor:pointer}
.apri-menu span{display:block;width:24px;height:2px;background:var(--inchiostro);margin:5px 0;transition:transform .2s,opacity .2s}

@media (max-width:1100px){
  .apri-menu{display:block}
  .menu{position:fixed;inset:72px 0 auto 0;background:#fff;border-bottom:1px solid var(--linea);padding:8px var(--gutter) 20px;display:none}
  .menu.aperto{display:block}
  .menu ul{flex-direction:column}
  .menu a{padding:14px 4px;font-size:1rem;border-bottom:1px solid var(--linea);border-radius:0}
  .menu a.cta{margin:14px 0 0;text-align:center;border-radius:var(--raggio);border:0}
  .apri-menu[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .apri-menu[aria-expanded="true"] span:nth-child(2){opacity:0}
  .apri-menu[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;min-height:min(86vh,760px);display:flex;align-items:flex-end;color:#fff;background:radial-gradient(ellipse at 70% 30%,#14273A 0%,#0B131C 70%)}
.hero .rete{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(11,19,28,.6) 0%,rgba(11,19,28,.3) 50%,rgba(11,19,28,0) 75%),linear-gradient(180deg,rgba(11,19,28,0) 55%,rgba(11,19,28,.6) 100%)}
@media (max-width:767px){.hero::after{background:linear-gradient(180deg,rgba(11,19,28,.35) 0%,rgba(11,19,28,.82) 38%,rgba(11,19,28,.88) 100%)}}
.hero .wrap{position:relative;z-index:1;width:100%;padding-bottom:clamp(48px,8vw,96px);padding-top:120px}
.hero .occhiello{color:var(--blu-chiaro)}
.hero .occhiello::before{background:var(--blu-chiaro)}
.hero h1{color:#fff;font-size:clamp(2.2rem,5.4vw,4.2rem);font-weight:700;max-width:18ch;margin-bottom:.4em}
.hero p{font-size:clamp(1.1rem,1.6vw,1.3rem);max-width:56ch;color:rgba(255,255,255,.86)}
.azioni{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-block;padding:15px 24px;border-radius:var(--raggio);font:600 .95rem/1 var(--font-titoli);text-decoration:none;transition:background .2s,color .2s}
.btn-primario{background:var(--blu-scuro);color:#fff}
.btn-primario:hover{background:#fff;color:var(--inchiostro)}
.btn-secondario{border:1px solid rgba(255,255,255,.5);color:#fff}
.btn-secondario:hover{background:rgba(255,255,255,.12);color:#fff}

/* ---------- numeri ---------- */
.numeri{background:var(--inchiostro);color:#fff}
.numeri ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.numeri li{padding:34px 24px;border-left:1px solid rgba(255,255,255,.12)}
.numeri li:first-child{border-left:0;padding-left:0}
.numeri strong{display:block;font:700 clamp(1.9rem,3.4vw,2.6rem)/1 var(--font-titoli);color:#fff;margin-bottom:10px}
.numeri strong{white-space:nowrap}
.numeri strong em{font-style:normal;color:var(--blu)}
.numeri strong em.unita{font-size:.62em}
.numeri span{font-size:.98rem;color:rgba(255,255,255,.72);line-height:1.4;display:block}
@media (max-width:820px){
  .numeri ul{grid-template-columns:1fr 1fr}
  .numeri li{padding:26px 16px}
  .numeri li:nth-child(odd){border-left:0;padding-left:0}
  .numeri li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}
}

/* ---------- sezioni ---------- */
.sezione{padding:clamp(72px,10vw,128px) 0}
.sezione.carta{background:var(--carta)}
.intro{max-width:760px;margin-bottom:clamp(36px,5vw,56px)}
.intro .lead{font-size:clamp(1.15rem,1.6vw,1.3rem);color:var(--grafite)}

/* chi siamo */
.chi-siamo{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,88px);align-items:start}
.chi-siamo .lead{font:500 clamp(1.1rem,1.5vw,1.25rem)/1.55 var(--font-titoli);color:var(--inchiostro)}
.punti{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--linea)}
.punti article{padding:28px 28px 24px 0;border-bottom:1px solid var(--linea)}
.punti article:nth-child(even){padding-left:28px;padding-right:0;border-left:1px solid var(--linea)}
.punti .n{font:600 .8rem/1 var(--font-titoli);color:var(--blu-scuro);letter-spacing:.1em;display:block;margin-bottom:14px}
.punti p{font-size:1.02rem;margin:0}
@media (max-width:900px){
  .chi-siamo{grid-template-columns:1fr}
  .punti{grid-template-columns:1fr}
  .punti article,.punti article:nth-child(even){padding:24px 0;border-left:0}
}

/* territorio */
.territorio{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.mappa{background:var(--bianco);border:1px solid var(--linea);border-radius:var(--raggio);padding:clamp(20px,4vw,40px)}
.mappa img{max-height:560px;margin:0 auto}
.legenda{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.92rem;color:var(--testo-tenue)}
.legenda li{display:flex;align-items:center;gap:8px}
.legenda i{width:14px;height:14px;border-radius:3px;border:1px solid var(--grafite)}
.aree{list-style:none;padding:0;margin:28px 0 0}
.aree li{display:grid;grid-template-columns:120px 1fr 48px;align-items:center;gap:14px;padding:10px 0;font-size:1rem}
.aree .barra{height:10px;background:var(--blu-tenue);border-radius:5px;overflow:hidden}
.aree .barra b{display:block;height:100%;background:var(--blu);border-radius:5px}
.aree strong{font:600 1rem/1 var(--font-titoli);color:var(--inchiostro);text-align:right}
.nota{font-size:.88rem;color:var(--testo-tenue);margin-top:10px}
@media (max-width:900px){.territorio{grid-template-columns:1fr}}

/* mission e vision */
.mv{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px)}
.mv article{background:var(--bianco);border-radius:var(--raggio);padding:clamp(28px,4vw,48px);border:1px solid var(--linea)}
.mv h3{font-size:1.5rem;margin-bottom:.8em}
.mv p{font-size:1.05rem}
.mv p:last-child{margin-bottom:0}
@media (max-width:900px){.mv{grid-template-columns:1fr}}

.valori{margin-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linea)}
.valori div{padding:28px 20px 8px 0}
.valori b{display:block;font:700 clamp(3rem,6vw,4.6rem)/1 var(--font-titoli);color:var(--blu);margin-bottom:8px}
.valori span{font:600 1.05rem/1.2 var(--font-titoli);color:var(--inchiostro)}
@media (max-width:640px){.valori{grid-template-columns:1fr 1fr}}

/* commissioni */
.commissioni{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.commissione{border:1px solid var(--linea);border-radius:var(--raggio);padding:28px 24px;background:var(--bianco);display:flex;flex-direction:column}
.commissione svg{width:36px;height:36px;color:var(--blu);margin-bottom:22px}
.commissione h3{font-size:1.1rem;margin-bottom:14px}
.commissione ul{list-style:none;margin:0;padding:0;font-size:1rem}
.commissione li{padding:7px 0;border-top:1px solid var(--linea)}
@media (max-width:980px){.commissioni{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.commissioni{grid-template-columns:1fr}}

/* organigramma */
.organi{display:grid;gap:18px;max-width:980px}
.nodo{border-radius:var(--raggio);padding:16px 20px;font:600 .95rem/1.25 var(--font-titoli);text-align:center}
.nodo small{display:block;font:500 .78rem/1.3 var(--font-titoli);opacity:.92;margin-top:4px;letter-spacing:.02em}
.nodo.cda{background:var(--inchiostro);color:#fff;max-width:420px;margin:0 auto;width:100%}
.organi .rami{display:grid;grid-template-columns:1fr 3fr;gap:18px}
.ramo{border:1px solid var(--linea);border-radius:var(--raggio);padding:18px;background:var(--bianco)}
.ramo>h3{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--testo-tenue);margin-bottom:14px;font-weight:600}
.ramo .griglia{display:grid;gap:10px}
.ramo.op .griglia{grid-template-columns:1fr}
.ramo.com .griglia{grid-template-columns:repeat(4,1fr)}
.nodo.chiaro{background:var(--blu-tenue);color:var(--inchiostro)}
.nodo.pieno{background:var(--blu-scuro);color:#fff}
.nodo.largo{grid-column:1/-1}
.ramo.com .nodo{padding:16px 8px}
.nodo small{white-space:nowrap}
.organi>*,.rami>*{min-width:0}
@media (max-width:820px){
  .organi .rami{grid-template-columns:1fr}
  .ramo.com .griglia{grid-template-columns:1fr 1fr}
}
@media (max-width:420px){.ramo.com .griglia{grid-template-columns:1fr}}

/* contatti */
.contatti{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,80px)}
.contatti dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:0}
.contatti dt,.contatti dd{padding:14px 0;border-bottom:1px solid var(--linea);margin:0}
.contatti dt{font:600 .8rem/1.9 var(--font-titoli);letter-spacing:.08em;text-transform:uppercase;color:var(--testo-tenue);padding-right:24px}
.contatti dd{color:var(--inchiostro)}
.contatti dd a{color:var(--inchiostro);text-decoration-color:var(--blu);text-underline-offset:3px}
.riquadro{background:var(--notte);color:#fff;border-radius:var(--raggio);padding:clamp(28px,4vw,48px)}
.riquadro h2{color:#fff}
.riquadro p{color:rgba(255,255,255,.8)}
@media (max-width:900px){.contatti{grid-template-columns:1fr}}
@media (max-width:480px){.contatti dl{grid-template-columns:1fr}.contatti dt{border-bottom:0;padding-bottom:0}}

/* footer */
.piede{background:var(--notte);color:rgba(255,255,255,.7);font-size:.92rem;padding:48px 0 32px;border-top:1px solid rgba(255,255,255,.08)}
.piede .wrap{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center}
.piede img{width:52px}
.piede a{color:rgba(255,255,255,.85)}
.piede p{margin:0}
.link-legali a{display:inline-block;padding:4px 2px;min-height:24px}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* ---------- aggiunte v2: come funziona, novità, percorso, fornitori, adesione ---------- */
.etichetta{display:inline-block;font:600 .72rem/1.4 var(--font-titoli);letter-spacing:.1em;text-transform:uppercase;background:var(--blu-scuro);color:#fff;padding:5px 10px;border-radius:3px;margin-bottom:16px}
.etichetta.tenue{background:var(--blu-tenue);color:var(--blu-scuro)}

.passi{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:passo}
.passi li{counter-increment:passo;background:var(--bianco);border:1px solid var(--linea);border-radius:var(--raggio);padding:28px 24px}
.passi li::before{content:counter(passo,decimal-leading-zero);display:block;font:700 2rem/1 var(--font-titoli);color:var(--blu);margin-bottom:20px}
.passi p{font-size:1.02rem;margin:0}
@media (max-width:980px){.passi{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.passi{grid-template-columns:1fr}}

.novita{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.novita>div{border-radius:var(--raggio);padding:28px 24px;background:var(--blu-tenue)}
.novita>div:first-child{background:var(--inchiostro);color:rgba(255,255,255,.8)}
.novita>div:first-child h3{color:#fff}
.novita h3{font-size:1.25rem;margin-bottom:8px}
.novita p{margin:0;font-size:1.02rem}
@media (max-width:700px){.novita{grid-template-columns:1fr}}

.sezione.scura{background:var(--notte);color:rgba(255,255,255,.78)}
.sezione.scura h2,.sezione.scura h3{color:#fff}
.sezione.scura .occhiello{color:var(--blu-chiaro)}
.sezione.scura .occhiello::before{background:var(--blu-chiaro)}
.sezione.scura .lead{color:rgba(255,255,255,.8)}
.linea{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.18)}
.linea li{position:relative;padding:36px 24px 0 0}
.linea li::before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--blu)}
.linea li.futuro::before{background:var(--notte);border:2px solid var(--blu);box-sizing:border-box}
.linea .anno{display:block;font:600 .85rem/1 var(--font-titoli);letter-spacing:.08em;color:var(--blu-chiaro);margin-bottom:18px}
.linea strong{font:700 clamp(2.2rem,4vw,3rem)/1 var(--font-titoli);color:#fff}
.linea li.futuro strong{color:var(--blu)}
.linea .u{display:block;font-size:.9rem;color:rgba(255,255,255,.6);margin:6px 0 18px}
.linea h3{font-size:1.05rem;margin-bottom:8px}
.linea p{font-size:1rem;margin:0}
@media (max-width:900px){
  .linea{grid-template-columns:1fr;border-top:0;border-left:1px solid rgba(255,255,255,.18);margin-left:5px}
  .linea li{padding:0 0 36px 28px}
  .linea li::before{top:2px;left:-6px}
}

.fornitori{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fornitori>div{border-top:2px solid var(--blu);padding-top:16px}
.fornitori p{font-size:1rem}
@media (max-width:820px){.fornitori{grid-template-columns:1fr}}

.adesioni{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.adesioni article{background:var(--bianco);border:1px solid var(--linea);border-radius:var(--raggio);padding:clamp(28px,4vw,44px)}
.adesioni h3{font-size:1.35rem;margin-bottom:16px}
.adesioni ul{margin:0;padding:0;list-style:none}
.adesioni li{padding:10px 0 10px 28px;border-top:1px solid var(--linea);position:relative;font-size:1.02rem}
.adesioni li::before{content:"";position:absolute;left:2px;top:19px;width:12px;height:6px;border-left:2px solid var(--blu);border-bottom:2px solid var(--blu);transform:rotate(-45deg)}
@media (max-width:760px){.adesioni{grid-template-columns:1fr}}
.btn-scuro{background:var(--inchiostro);color:#fff}
.btn-scuro:hover{background:var(--blu-scuro);color:#fff}

/* ---------- pagina privacy ---------- */
.legale{max-width:820px}
.legale h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:700}
.legale h2{font-size:1.35rem;margin-top:2.2em}
.legale h3{font-size:1.05rem;margin-top:1.4em;margin-bottom:.4em}
.legale ul{padding-left:1.2em}
.legale li{margin-bottom:.6em}
.legale table{width:100%;border-collapse:collapse;margin:0 0 1.2em;font-size:1rem}
.legale th,.legale td{text-align:left;vertical-align:top;padding:12px 14px 12px 0;border-bottom:1px solid var(--linea)}
.legale th{font:600 .8rem/1.4 var(--font-titoli);letter-spacing:.08em;text-transform:uppercase;color:var(--testo-tenue)}
@media (max-width:600px){
  .legale thead{display:none}
  .legale tr{display:block;border-bottom:1px solid var(--linea);padding:10px 0}
  .legale td{display:block;border:0;padding:2px 0}
  .legale td:first-child{font-weight:600;color:var(--inchiostro)}
}

/* pulsante pausa dell'animazione (WCAG 2.2.2) */
.pausa-rete{position:absolute;z-index:2;right:var(--gutter);bottom:20px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(11,19,28,.55);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.pausa-rete:hover{background:rgba(11,19,28,.85);border-color:#fff}
.pausa-rete svg{width:16px;height:16px}
.pausa-rete[hidden]{display:none}
