@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/bricolage.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-display:swap;font-weight:300 900;src:url(fonts/figtree.woff2) format("woff2")}
/* Layout: header bianco fisso, sezioni a fasce alternate bianco / azzurro cielo, colonna max 1160px; motivo della barra gialla verticale e della striscia arcobaleno presi dal logo */
:root{
  --paper:#F8FBFF;
  --white:#FFFFFF;
  --sky:#BCD8F8;
  --sky-soft:#E3EFFD;
  --ink:#0F1C33;
  --ink-soft:#44506A;
  --blue:#1C4DB0;
  --blue-deep:#123778;
  --sun:#F6D649;
  --red:#E2453C;
  --orange:#F07A2B;
  --green:#3B9548;
  --violet:#6A4FBE;
  --line:#CFDDF0;
  --display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"Figtree","Segoe UI",system-ui,-apple-system,sans-serif;
  --wrap:1160px;
  --gut:clamp(16px,4vw,40px);
  --r:18px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body)}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-underline-offset:3px}
a:hover{color:var(--blue-deep)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
h1,h2,h3,h4{font-family:var(--display);line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.015em;color:var(--ink)}
h1{font-size:clamp(2.3rem,5.4vw,4rem);font-weight:800}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:800}
h3{font-size:1.3rem;font-weight:700}
p{margin:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--white);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:12px}

/* ---------- Header / nav ---------- */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--white);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:20px;min-height:78px}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:58px;width:auto}
.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto;list-style:none;padding:0;margin-block:0}
.nav-links a{display:block;padding:9px 12px;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.97rem}
.nav-links a:hover{background:var(--sky-soft)}
.nav-links a[aria-current="page"]{color:var(--blue);background:var(--sky-soft)}
.nav-cta{display:flex;gap:8px;flex:none}
.pill{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;font-weight:700;font-size:.95rem;text-decoration:none;border:2px solid var(--blue);transition:background .15s,color .15s,transform .15s}
.pill-solid{background:var(--blue);color:var(--white)}
.pill-solid:hover{background:var(--blue-deep);border-color:var(--blue-deep);color:var(--white)}
.pill-line{background:var(--white);color:var(--blue)}
.pill-line:hover{background:var(--sky-soft);color:var(--blue-deep)}
.pill[aria-current="page"]{box-shadow:0 0 0 3px var(--sun)}
.menu-btn{display:none;margin-left:auto;background:var(--white);border:2px solid var(--line);border-radius:12px;width:46px;height:46px;cursor:pointer;color:var(--ink)}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:20px;height:2px;background:currentColor;margin:auto;position:relative;content:""}
.menu-btn span::before{position:absolute;top:-6px}
.menu-btn span::after{position:absolute;top:6px}
@media (max-width:1060px){
  .menu-btn{display:block}
  .nav{flex-wrap:wrap;gap:0}
  .nav-panel{display:none;width:100%;padding-block:8px 18px}
  .nav.open .nav-panel{display:block}
  .nav-links{flex-direction:column;align-items:stretch;margin:0}
  .nav-links a{padding:12px 14px;font-size:1.05rem}
  .nav-cta{margin-top:12px;flex-direction:column}
  .nav-cta .pill{justify-content:center;padding-block:13px}
  .brand img{height:50px}
}
@media (min-width:1061px){.nav-panel{display:flex;align-items:center;gap:18px;margin-left:auto}}

/* ---------- Sections ---------- */
.section{padding-block:clamp(56px,8vw,104px)}
.band-sky{background:var(--sky)}
.band-soft{background:var(--sky-soft)}
.band-white{background:var(--white)}
.band-blue{background:var(--blue);color:var(--white)}
.band-blue h2,.band-blue h3{color:var(--white)}
.band-blue .lede{color:#DCE7FB}
.eyebrow{display:flex;align-items:center;gap:12px;font:700 .8rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:16px}
.eyebrow::before{content:"";width:34px;height:2px;background:currentColor}
.band-blue .eyebrow{color:var(--sun)}
.lede{font-size:clamp(1.08rem,1.6vw,1.25rem);color:var(--ink-soft);max-width:62ch;margin-top:16px}
.head{margin-bottom:clamp(30px,4vw,48px)}
.head.center{text-align:center}
.head.center .eyebrow{justify-content:center}
.head.center .lede{margin-inline:auto}
.grid{display:grid;gap:clamp(18px,2.4vw,28px)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,64px);align-items:center}
.split.rev>:first-child{order:2}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr)}.split.rev>:first-child{order:0}}
.prose{display:grid;gap:14px;max-width:64ch;color:var(--ink-soft)}
.prose strong{color:var(--ink)}

/* ---------- Hero ---------- */
.hero{background:var(--sky);padding-block:clamp(44px,7vw,88px) clamp(48px,7vw,92px);overflow:hidden}
.hero .split{align-items:center}
.hero h1 span{color:var(--blue)}
.hero .lede{color:var(--ink);opacity:.82}
.hero-tag{font-style:italic;margin-top:14px;color:var(--ink-soft)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-actions .pill{padding:13px 22px;font-size:1rem}
.hero-art{position:relative;padding:18px 0 0 18px}
.hero-art::before{content:"";position:absolute;left:0;top:0;width:38%;height:86%;background:var(--sun);border-radius:6px}
.hero-art img{position:relative;border-radius:22px;box-shadow:0 18px 40px -18px rgba(15,28,51,.45)}
.patrocinio{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:32px;padding:14px 18px;background:var(--white);border-radius:14px;width:fit-content;max-width:100%}
.patrocinio small{font-style:italic;color:var(--ink-soft);font-size:.82rem}
.patrocinio img{height:38px;width:auto}
.page-hero{background:var(--sky);padding-block:clamp(44px,6vw,80px)}
.page-hero .split{align-items:end}
.page-hero .art{display:flex;justify-content:center}
.page-hero .art img{max-height:300px;width:auto}
.crumb{font-size:.88rem;color:var(--ink-soft);margin-bottom:14px}
.crumb a{color:var(--ink-soft)}

/* ---------- Numbers ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:var(--white);border-radius:var(--r);overflow:hidden;box-shadow:0 10px 30px -20px rgba(15,28,51,.4)}
.stat{padding:26px 24px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0}
.stat b{display:block;font:800 clamp(2rem,3.6vw,2.8rem)/1 var(--display);font-variant-numeric:tabular-nums;color:var(--blue);letter-spacing:-.02em}
.stat span{display:block;margin-top:8px;color:var(--ink-soft);font-size:.96rem;line-height:1.35}
.stat:nth-child(2) b{color:var(--orange)}
.stat:nth-child(3) b{color:var(--green)}
.stat:nth-child(4) b{color:var(--violet)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}}
.note{font-size:.85rem;color:var(--ink-soft);margin-top:12px}
.stats-wrap{margin-top:-46px;position:relative;z-index:2}

/* ---------- Cards ---------- */
.card{background:var(--white);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card p{color:var(--ink-soft)}
.card.outline{border:1px solid var(--line)}
.card .ill{height:120px;width:auto;align-self:flex-start;margin-bottom:6px}
.chip{display:inline-flex;align-self:flex-start;padding:5px 12px;border-radius:999px;font:700 .76rem/1.2 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--white);background:var(--blue)}
.c-red{background:var(--red)}.c-orange{background:var(--orange)}.c-green{background:var(--green)}.c-violet{background:var(--violet)}.c-blue{background:var(--blue)}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:28px;color:var(--ink-soft)}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;border-radius:50%;background:var(--sun);box-shadow:inset 0 0 0 3px var(--white),0 0 0 2px var(--sun)}

/* Steps (sequence) */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;counter-reset:s;list-style:none;padding:0;margin:0}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:minmax(0,1fr)}}
.step{background:var(--white);border-radius:var(--r);padding:26px 24px 28px;position:relative;min-width:0}
.step::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font:800 1.3rem/1 var(--display);color:var(--white);background:var(--blue);margin-bottom:16px}
.step:nth-child(1)::before{background:var(--orange)}
.step:nth-child(2)::before{background:var(--blue)}
.step:nth-child(3)::before{background:var(--green)}
.step:nth-child(4)::before{background:var(--red)}
.step h3{font-size:1.12rem;margin-bottom:8px}
.step p{color:var(--ink-soft);font-size:.98rem}

/* Context figures */
.figs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:860px){.figs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fig{background:var(--white);border-radius:var(--r);padding:24px;border-top:6px solid var(--red)}
.fig:nth-child(2){border-top-color:var(--blue)}
.fig:nth-child(3){border-top-color:var(--green)}
.fig:nth-child(4){border-top-color:var(--orange)}
.fig b{display:block;font:800 2.3rem/1 var(--display);margin-bottom:10px;font-variant-numeric:tabular-nums}
.fig span{color:var(--ink-soft);font-size:.96rem;line-height:1.4;display:block}

/* Audience paths */
.path{background:var(--white);border-radius:22px;padding:30px;display:flex;flex-direction:column;gap:14px;text-decoration:none;color:var(--ink);border:2px solid transparent;transition:border-color .15s,transform .15s;min-width:0}
.path:hover{border-color:var(--blue);transform:translateY(-3px);color:var(--ink)}
.path img{height:150px;width:auto;align-self:center}
.path p{color:var(--ink-soft)}
.path .go{margin-top:auto;font-weight:700;color:var(--blue)}

/* Quote */
.quote{background:var(--white);border-radius:22px;padding:clamp(26px,4vw,44px);display:grid;gap:16px;position:relative}
.quote blockquote{margin:0;font:600 clamp(1.25rem,2.3vw,1.6rem)/1.35 var(--display);color:var(--ink)}
.quote cite{font-style:normal;color:var(--ink-soft);font-size:.95rem}

/* Timeline */
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.timeline li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;padding:20px 0;border-top:1px solid var(--line)}
.timeline li:last-child{border-bottom:1px solid var(--line)}
.timeline time{font:800 1rem/1.3 var(--display);color:var(--blue)}
.timeline h3{font-size:1.1rem;margin-bottom:4px}
.timeline p{color:var(--ink-soft)}
.badge{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;font:700 .7rem/1.6 var(--body);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
.done{background:#DDF1E0;color:#215B2B}
.live{background:#FFE7D6;color:#8A3B0C}
@media (max-width:620px){.timeline li{grid-template-columns:minmax(0,1fr);gap:6px}}

/* Logos */
.logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:24px 44px}
.logos img{height:54px;width:auto;object-fit:contain}
.logo-tile{background:var(--white);border-radius:14px;display:grid;place-items:center;padding:20px;min-height:110px}
.logo-tile img{max-height:70px;width:auto}
.names{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.names a,.names span{display:inline-block;padding:9px 16px;background:var(--white);border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem}
.names a:hover{border-color:var(--blue);color:var(--blue)}

/* People */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.person{background:var(--white);border-radius:14px;padding:18px 20px;border-left:5px solid var(--sky)}
.person.lead{border-left-color:var(--sun)}
.person b{display:block;font-family:var(--display);font-size:1.08rem}
.person span{color:var(--ink-soft);font-size:.93rem}
.org-label{font:700 .8rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:34px 0 14px}

/* Tables & bars */
.table-wrap{overflow-x:auto;background:var(--white);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;min-width:560px;font-variant-numeric:tabular-nums}
th,td{padding:15px 18px;text-align:right;border-bottom:1px solid var(--line)}
th:first-child,td:first-child{text-align:left}
thead th{font:700 .78rem/1.2 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);background:var(--sky-soft)}
tbody tr:last-child td{border-bottom:0}
td.target{color:var(--blue);font-weight:700}
.compare{display:grid;gap:22px}
.cmp h3{font-size:1rem;margin-bottom:10px;font-family:var(--body);font-weight:700}
.bar{display:grid;grid-template-columns:110px minmax(0,1fr) 70px;align-items:center;gap:12px;margin-top:6px;font-size:.9rem;color:var(--ink-soft)}
.bar i{display:block;height:16px;border-radius:999px;background:var(--line)}
.bar i.now{background:var(--blue)}
.bar b{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:520px){.bar{grid-template-columns:84px minmax(0,1fr) 54px}}
.donuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media (max-width:700px){.donuts{grid-template-columns:minmax(0,1fr)}}
.donut-card{background:var(--white);border-radius:var(--r);padding:26px;display:grid;grid-template-columns:130px minmax(0,1fr);gap:22px;align-items:center}
.donut{width:130px;height:130px;border-radius:50%;display:grid;place-items:center;position:relative}
.donut::after{content:"";position:absolute;inset:18px;border-radius:50%;background:var(--white)}
.donut b{position:relative;z-index:1;font:800 1.5rem/1 var(--display);font-variant-numeric:tabular-nums}
.donut-card dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:6px 14px;font-size:.95rem}
.donut-card dt{color:var(--ink-soft)}
.donut-card dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.donut-card .yr{grid-column:1/-1;font:700 .78rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
.recip{display:grid;gap:12px}
.recip .bar{grid-template-columns:90px minmax(0,1fr) 60px}

/* Media */
.photo{border-radius:20px;overflow:hidden;background:var(--white)}
.photo img{width:100%;object-fit:cover}
.photo figcaption{padding:12px 16px;font-size:.88rem;color:var(--ink-soft)}
figure{margin:0}
.framed{background:var(--white);border-radius:20px;padding:12px;box-shadow:0 14px 34px -22px rgba(15,28,51,.5)}
.framed img{border-radius:12px}
.cities{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:18px 0 0}
.cities li{padding:6px 12px;border-radius:999px;background:var(--white);font-size:.9rem;font-weight:600}

/* Press */
.press{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.press-item{background:var(--white);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:10px;min-width:0}
.press-item time{font:700 .78rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.press-item h3{font-size:1.1rem;line-height:1.28}
.press-item p{color:var(--ink-soft);font-size:.95rem}
.press-item .src{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line);font-weight:700;font-size:.92rem}
.press-item .src a{white-space:nowrap}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.filters button{font:600 .92rem var(--body);padding:8px 16px;border-radius:999px;border:2px solid var(--blue);background:var(--white);color:var(--blue);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--blue);color:var(--white)}

/* Docs */
.doc{display:flex;gap:18px;align-items:center;background:var(--white);border-radius:var(--r);padding:20px 22px;text-decoration:none;color:var(--ink);border:2px solid transparent}
.doc:hover{border-color:var(--blue);color:var(--ink)}
.doc .ico{flex:none;width:48px;height:60px;border-radius:6px;background:var(--sky-soft);display:grid;place-items:center;font:800 .78rem var(--display);color:var(--blue);border:2px solid var(--blue)}
.doc b{display:block;font-family:var(--display);font-size:1.12rem}
.doc span{color:var(--ink-soft);font-size:.92rem}

/* Contacts */
.contact-list{display:grid;gap:16px}
.contact-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.contact-row dt{font:700 .78rem/1.6 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.contact-row dd{margin:0;font-weight:600;word-break:break-word}
@media (max-width:520px){.contact-row{grid-template-columns:minmax(0,1fr);gap:2px}}

/* CTA band */
.cta-band{background:var(--blue);color:var(--white);border-radius:26px;padding:clamp(30px,5vw,56px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;position:relative;overflow:hidden}
.cta-band h2{color:var(--white);font-size:clamp(1.6rem,3vw,2.3rem)}
.cta-band p{color:#DCE7FB;margin-top:10px;max-width:56ch}
.cta-band .pill-line{border-color:var(--white)}
.cta-band .pill-sun{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.cta-band .pill-sun:hover{background:var(--white);border-color:var(--white);color:var(--ink)}
.cta-band .acts{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:760px){.cta-band{grid-template-columns:minmax(0,1fr)}}

/* Footer */
.rainbow{height:8px;background:linear-gradient(90deg,var(--red) 0 16.6%,var(--orange) 0 33.3%,var(--sun) 0 50%,var(--green) 0 66.6%,var(--blue) 0 83.3%,var(--violet) 0)}
.site-footer{background:var(--ink);color:#C9D3E6;padding-block:56px 28px;font-size:.95rem}
.site-footer a{color:var(--white)}
.foot{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:32px}
@media (max-width:860px){.foot{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.foot{grid-template-columns:minmax(0,1fr)}}
.foot h4{color:var(--white);font:700 .8rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.foot ul a{text-decoration:none}
.foot ul a:hover{text-decoration:underline}
.foot-logo{background:var(--white);border-radius:14px;padding:10px 14px;width:fit-content;margin-bottom:16px}
.foot-logo img{height:64px;width:auto}
.legal{margin-top:40px;padding-top:20px;border-top:1px solid #2A3854;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.85rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:860px){.stats-wrap{margin-top:28px}.hero{padding-bottom:40px}}
.legal-doc{max-width:820px;display:grid;gap:14px;color:var(--ink-soft)}
.legal-doc h2{font-size:1.35rem;margin-top:22px;color:var(--ink)}
.legal-doc h3{font-size:1.05rem;margin-top:6px;color:var(--ink)}
.legal-doc strong{color:var(--ink)}
table.plain{min-width:0}
table.plain th,table.plain td{text-align:left;vertical-align:top}
/* Patrocinio: etichetta sopra, loghi allineati sulla stessa riga */
.patrocinio{display:grid;gap:12px;justify-items:start}
.patrocinio small{display:block}
.patrocinio .logos-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.patrocinio .logos-row img{height:44px;width:auto}
.patrocinio .logos-row .sep{width:1px;align-self:stretch;background:var(--line)}
@media (max-width:520px){.patrocinio .logos-row img{height:38px}.patrocinio .logos-row .sep{display:none}}
