/* ===== GRACE · versione "a scorrimento" =====
   Apertura di ogni pagina: testo al centro dello schermo, più grande.
   Scorrendo: i riquadri arrivano dai lati (sinistra / destra) e si fermano al loro posto. */
:root{ --navh:77px; }
main{ overflow-x:clip; }

/* --- apertura delle pagine interne --- */
.page-head{ min-height:calc(100vh - var(--navh)); min-height:calc(100svh - var(--navh)); display:flex; align-items:center; text-align:center; padding:48px 0 96px; position:relative; }
.page-head .container{ width:100%; }
.page-head .eyebrow{ margin-bottom:22px; }
.page-head h1{ font-weight:300; font-size:clamp(40px,5.8vw,78px); line-height:1.05; letter-spacing:-.028em; max-width:17ch; margin:0 auto 26px; }
.page-head .intro{ margin:0 auto; font-size:clamp(17px,1.7vw,21px); line-height:1.6; max-width:56ch; }
.page-head .app-badge{ margin-top:28px; }

/* --- apertura della Home --- */
.hero{ min-height:calc(100vh - var(--navh)); min-height:calc(100svh - var(--navh)); display:flex; align-items:center; padding:32px 0 96px; position:relative; }
.hero .container{ width:100%; }
.hero-grid{ grid-template-columns:1fr; gap:10px; justify-items:center; text-align:center; }
.hero .medallion{ order:-1; max-width:190px; justify-self:center; margin:0 auto; }
.hero h1{ font-weight:300; font-size:clamp(44px,6.6vw,88px); line-height:1.02; letter-spacing:-.03em; margin:0 auto 24px; }
.hero .lead{ margin:0 auto 34px; max-width:52ch; font-size:clamp(17px,1.7vw,21px); }
.hero .actions{ justify-content:center; }

/* --- invito a scorrere --- */
.scroll-hint{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); pointer-events:none; transition:opacity .4s; }
.scroll-hint::after{ content:""; width:1.5px; height:38px; background:linear-gradient(var(--terra),transparent); animation:sh 1.8s ease-in-out infinite; transform-origin:top; }
@keyframes sh{ 0%{transform:scaleY(0)} 50%{transform:scaleY(1)} 100%{transform:scaleY(1);opacity:0} }

/* --- riquadri che arrivano dai lati (comandati dallo scorrimento) --- */
.sx{ will-change:transform,opacity; }
.sx-ready .sx{ opacity:0; }

@media(max-width:720px){
  :root{ --navh:71px; }
  .page-head{ padding:36px 0 90px; }
  .hero .medallion{ max-width:150px; }
}
@media (prefers-reduced-motion: reduce){
  .sx-ready .sx{ opacity:1; transform:none !important; }
  .scroll-hint::after{ animation:none; }
}

.contact-grid{ margin:0 auto; }

/* --- pagina "Chi siamo": riquadri che crescono da sfocati a nitidi, con alone di colore --- */
body.t-comitato .gov-card, body.t-comitato .member{ transform-origin:50% 50%; will-change:transform,filter,opacity; }
@keyframes glow{ 0%{ transform:translate3d(0,0,0) scale(1); } 50%{ transform:translate3d(4%,-3%,0) scale(1.06); } 100%{ transform:translate3d(-4%,3%,0) scale(1); } }
/* ===== Pagina dell'app: telefoni 3D inclinati, sezioni alternate (ispirazione WeWard) ===== */
.af-sec{ padding:72px 0; }
.af-row{ display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; }
.af-sec.flip .af-visual{ order:2; }
.af-text{ max-width:500px; }
.af-sec.flip .af-text{ justify-self:end; }
.af-eyebrow{ font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.af-text h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(32px,3.6vw,50px); line-height:1.08; letter-spacing:-.025em; margin-bottom:18px; }
.af-text h2 em{ font-style:normal; font-weight:600; }
.af-text > p{ font-size:clamp(16px,1.4vw,18.5px); line-height:1.6; color:#4A463F; margin-bottom:22px; }
.af-list{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.af-list li{ display:flex; gap:12px; align-items:flex-start; font-size:16px; line-height:1.45; }
.af-list svg{ width:20px; height:20px; flex:0 0 auto; margin-top:1px; }
.tone-green .af-text h2 em, .tone-green .af-list svg{ color:var(--green); }
.tone-terra .af-text h2 em, .tone-terra .af-list svg{ color:var(--terra); }
.tone-sage  .af-text h2 em{ color:#4E7F63; } .tone-sage .af-list svg{ color:var(--teal); }

/* palco con sfondo colorato e due telefoni in prospettiva */
.af-stage{ position:relative; height:clamp(440px,46vw,600px); perspective:1500px; perspective-origin:50% 40%; }
.af-backdrop{ position:absolute; left:14%; right:14%; top:12%; bottom:10%; border-radius:40px; transform:rotate(-5deg); }
.af-sec.flip .af-backdrop{ transform:rotate(5deg); }
.tone-green .af-backdrop{ background:linear-gradient(150deg,#0b5a3a,var(--green)); }
.tone-terra .af-backdrop{ background:linear-gradient(150deg,#e88a43,var(--terra)); }
.tone-sage  .af-backdrop{ background:linear-gradient(150deg,#9cc0a9,var(--teal)); }

.ph3{ position:absolute; top:50%; width:clamp(150px,15.5vw,215px); transform-style:preserve-3d; --ry:-24deg; --rx:8deg; --rz:3deg; --lift:0px; }
.ph3.front{ left:44%; z-index:2; }
.ph3.back{ left:16%; z-index:1; width:clamp(130px,13.5vw,188px); }
.af-sec.flip .ph3.front{ left:auto; right:44%; } .af-sec.flip .ph3.back{ left:auto; right:16%; }
.ph3-body{ position:relative; transform-style:preserve-3d; transform:translateY(-50%) translateY(var(--lift)) rotateY(var(--ry)) rotateX(var(--rx)) rotateZ(var(--rz)); }
.ph3.back .ph3-body{ transform:translateY(-58%) translateY(var(--lift)) rotateY(var(--ry)) rotateX(var(--rx)) rotateZ(var(--rz)) translateZ(-40px); }
.af-sec.flip .ph3{ --ry:24deg; --rz:-3deg; }
.ph3 img{ position:relative; display:block; width:100%; height:auto; transform:translateZ(1px); }
.ph3 i{ position:absolute; inset:0; border-radius:14.2% / 6.7%; background:#2b2f2d; transform:translateZ(calc(var(--k) * -1.6px)); }
.ph3 i:last-of-type{ background:#151816; }
.ph3-shadow{ position:absolute; left:10%; right:-6%; top:-6%; height:52%; border-radius:50%; background:radial-gradient(closest-side, rgba(0,30,18,.35), rgba(0,30,18,0)); filter:blur(16px); transform:translateX(22%) skewX(-14deg); z-index:-1; opacity:.8; }
.af-sec.flip .ph3-shadow{ transform:translateX(-22%) skewX(14deg); }

/* etichette fluttuanti */
.af-chip{ position:absolute; z-index:3; display:inline-flex; align-items:center; gap:9px; background:#fff; color:var(--ink); font-size:14px; font-weight:600; padding:10px 16px 10px 10px; border-radius:999px; box-shadow:0 14px 30px -14px rgba(0,40,25,.45), 0 0 0 1px rgba(0,0,0,.04); white-space:nowrap; animation:afloat 6s ease-in-out infinite; }
.af-chip b{ width:28px; height:28px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:14px; background:var(--cream); }
.af-chip.c1{ left:2%; top:16%; } .af-chip.c2{ right:0; bottom:16%; animation-delay:-3s; }
.af-sec.flip .af-chip.c1{ left:auto; right:2%; } .af-sec.flip .af-chip.c2{ right:auto; left:0; }
.tone-green .af-chip b{ color:var(--green); } .tone-terra .af-chip b{ color:var(--terra); } .tone-sage .af-chip b{ color:#4E7F63; }
@keyframes afloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }

/* privacy */
.af-priv-sec{ padding-top:56px; }
.af-priv{ text-align:center; max-width:720px; margin:0 auto 20px; padding:56px 40px; border-radius:32px; background:var(--card); box-shadow:var(--shadow); }
.af-lock{ width:64px; height:64px; margin:0 auto 18px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--green); color:#fff; }
.af-lock svg{ width:30px; height:30px; }
.af-priv h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(28px,3vw,40px); margin-bottom:12px; }
.af-priv h2 em{ font-style:normal; font-weight:600; color:var(--green); }
.af-priv p{ font-size:17px; line-height:1.6; color:#4A463F; }
.af-priv-sec .app-note, .af-priv-sec .app-back{ text-align:center; }

@media(max-width:900px){
  .af-row{ grid-template-columns:1fr; gap:24px; }
  .af-sec.flip .af-visual{ order:0; }
  .af-text, .af-sec.flip .af-text{ justify-self:center; max-width:560px; }
  .af-stage{ height:clamp(380px,96vw,520px); }
  .ph3{ width:clamp(130px,34vw,190px); } .ph3.back{ width:clamp(112px,29vw,165px); }
  .ph3.front{ left:46%; } .ph3.back{ left:12%; }
  .af-sec.flip .ph3.front{ right:46%; } .af-sec.flip .ph3.back{ right:12%; }
  .af-backdrop{ left:10%; right:10%; }
  .af-chip{ font-size:12.5px; padding:8px 13px 8px 8px; } .af-chip b{ width:24px; height:24px; }
  .af-sec{ padding:40px 0; }
  .af-priv{ padding:40px 24px; }
}
@media (prefers-reduced-motion: reduce){ .af-chip{ animation:none; } }

/* pagina dell'app: pulsanti per scaricare l'app (per ora inattivi) */
.af-stores{ text-align:center; margin:64px auto 36px; }
.af-stores h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(28px,3vw,40px); margin-bottom:8px; }
.af-stores > p{ color:var(--muted); font-size:16px; margin-bottom:24px; }
.store-row{ display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }
.store-btn{ display:inline-flex; align-items:center; gap:12px; min-width:220px; padding:12px 22px 12px 16px; border-radius:16px; background:var(--ink); color:#fff; text-align:left; cursor:not-allowed; opacity:.92; user-select:none; box-shadow:0 14px 28px -16px rgba(0,0,0,.55); }
.store-btn svg{ width:30px; height:30px; flex:0 0 auto; }
.store-btn .sb-tx{ display:flex; flex-direction:column; line-height:1.15; }
.store-btn small{ font-size:11.5px; letter-spacing:.02em; opacity:.8; }
.store-btn b{ font-size:17px; font-weight:700; }
@media(max-width:520px){ .store-btn{ min-width:0; width:100%; max-width:300px; } }

/* --- "Chi siamo": riquadri cliccabili e pagine profilo --- */
a.gov-card, a.member{ text-decoration:none; color:inherit; cursor:pointer; transition:box-shadow .3s, border-color .3s; }
a.gov-card:hover, a.member:hover{ border-color:rgba(0,63,39,.35); box-shadow:0 22px 40px -22px rgba(0,63,39,.45); }
.cv-more{ display:inline-block; margin-top:10px; font-size:13px; font-weight:700; color:var(--terra); letter-spacing:.01em; }
a.member .cv-more{ margin-top:4px; }
a.gov-card:hover .cv-more, a.member:hover .cv-more{ text-decoration:underline; text-underline-offset:3px; }
.cv-head .cv-photo{ width:150px; height:150px; margin:0 auto 22px; border-radius:50%; overflow:hidden; border:4px solid #fff; box-shadow:0 18px 34px -18px rgba(0,63,39,.6); }
.cv-head .cv-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.cv-head .intro{ max-width:62ch; }
.cv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.cv-card{ background:var(--card); border:1px solid var(--line); border-radius:24px; padding:30px 30px 26px; box-shadow:var(--shadow); }
.cv-card h2{ font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--green); margin-bottom:16px; }
.cv-list{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.cv-list li{ display:grid; grid-template-columns:92px 1fr; gap:14px; font-size:15.5px; line-height:1.5; }
.cv-list .yr{ font-size:13px; font-weight:700; color:var(--terra); padding-top:2px; }
.cv-list .yr.dot::before{ content:""; display:block; width:7px; height:7px; border-radius:50%; background:var(--teal); margin-top:7px; }
.cv-sources{ margin:44px auto 0; text-align:center; max-width:760px; }
.cv-sources h3{ font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.cv-sources p{ font-size:14.5px; } .cv-sources a{ color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.cv-note{ color:var(--muted); font-size:13px !important; margin-top:6px; font-style:italic; }
.cv-nav{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:40px; }
@media(max-width:900px){ .cv-grid{ grid-template-columns:1fr; } }
@media(max-width:520px){ .cv-list li{ grid-template-columns:1fr; gap:2px; } .cv-list .yr.dot{ display:none; } .cv-card{ padding:24px 22px; } }
.committee.c4 > a.member{ min-width:0; aspect-ratio:auto; min-height:260px; }

/* --- "Come funziona": riquadri quadrati, senza bordino colorato in alto --- */
.duo.d3{ align-items:start; }
.duo.d3 .duo-card{ aspect-ratio:1 / 1; display:flex; flex-direction:column; justify-content:center; padding:30px 30px; }
.duo.d3 .duo-card.a, .duo.d3 .duo-card.b{ border-top:1px solid var(--line); }
.duo.d3 .duo-card.app{ border:0; }
.duo.d3 .duo-card .tag{ margin-bottom:10px; }
.duo.d3 .duo-card h3{ font-size:21px; margin-bottom:8px; }
.duo.d3 .duo-card p{ margin-bottom:12px; font-size:15.5px; }
.duo.d3 .duo-card.app .app-phone{ width:104px; }
.duo.d3 .duo-card.app .more{ margin-top:0; padding-top:12px; }
@media(max-width:900px){ .duo.d3{ max-width:460px; margin:0 auto; } }
@media(min-width:901px){
  .duo.d3{ width:min(1240px, calc(100vw - 56px)); margin-left:calc(50% - min(620px, 50vw - 28px)); }
  .duo.d3 .duo-card.app{ display:grid; grid-template-columns:1fr auto; grid-template-areas:"tag tag" "h3 h3" "p p" "more phone"; align-content:center; column-gap:16px; }
  .duo.d3 .duo-card.app .tag{ grid-area:tag; } .duo.d3 .duo-card.app h3{ grid-area:h3; } .duo.d3 .duo-card.app p{ grid-area:p; }
  .duo.d3 .duo-card.app .app-phone{ grid-area:phone; width:86px; margin:0; }
  .duo.d3 .duo-card.app .more{ grid-area:more; align-self:end; }
}
@media(max-width:900px){ .duo.d3 .duo-card{ aspect-ratio:auto; } }
@media(min-width:901px){ .duo.d3 .duo-card.app .app-phone{ width:128px; zoom:.7; } }
@media(min-width:901px){ .duo.d3 .duo-card.app{ padding-top:24px; padding-bottom:24px; } }
/* riquadri del Comitato di nuovo quadrati, con il link al curriculum */
.committee.c4 > a.member{ aspect-ratio:1 / 1; min-height:0; padding:20px 18px; }
.committee.c4 > a.member .ph{ margin-bottom:12px; }
.committee.c4 > a.member .aff{ margin-bottom:0; }
.gov-card .gtx .cv-more{ margin-top:8px; }
@media(max-width:620px){ .committee.c4 > a.member{ aspect-ratio:auto; } }

/* Impatto e partner: la sezione partner non finisce sotto il menu quando ci si arriva dal link */
#partner{ scroll-margin-top:var(--navh,77px); }

/* footer: acronimo GRACE sciolto, sotto il logo */
.footer p.desc.acro{ display:flex; flex-direction:column; gap:3px; max-width:none; font-size:15px; line-height:1.45; color:rgba(242,233,221,.72); }
.footer p.desc.acro b{ display:inline-block; min-width:1.15em; font-family:'Arial Rounded MT Bold','Arial Rounded MT','Helvetica Rounded',Arial,sans-serif; font-weight:700; font-size:17px; color:#fff; }
.footer p.desc.acro span:nth-child(odd) b{ color:var(--teal); }
.footer p.desc.acro b{ display:inline; min-width:0; font-family:inherit; font-size:inherit; font-weight:800; color:#fff; }
.footer p.desc.acro span:nth-child(odd) b{ color:#fff; }
/* acronimo su una sola riga */
.footer p.desc.acro{ display:block; white-space:nowrap; }
.footer p.desc.acro span + span::before{ content:" "; }
@media(max-width:900px){ .footer p.desc.acro{ white-space:normal; } }

/* --- footer: al posto del menu, le informazioni legali --- */
.f-grid{ grid-template-columns:2fr 1fr; }
@media(max-width:720px){ .f-grid{ grid-template-columns:1fr; } }

/* --- pagina Privacy e cookie --- */
body.t-legal{ --sand:#ffffff; --card:#F2E9DD; }
.legal{ max-width:780px; margin:0 auto; }
.legal-draft{ background:#FFF4E8; border:1px solid rgba(217,111,32,.35); color:#7a3d0e; border-radius:14px; padding:14px 18px; font-size:14.5px; margin-bottom:28px; }
.legal-toc{ display:flex; flex-wrap:wrap; gap:8px 10px; margin-bottom:40px; }
.legal-toc a{ font-size:13.5px; text-decoration:none; color:var(--green); background:var(--card); border-radius:999px; padding:6px 12px; }
.legal-toc a:hover{ background:#e9dcc8; }
.legal-sec{ padding:26px 0; border-top:1px solid var(--line); scroll-margin-top:calc(var(--navh,77px) + 12px); }
.legal-sec h2{ font-family:'Plus Jakarta Sans',sans-serif; font-size:22px; font-weight:700; margin-bottom:12px; }
.legal-sec p, .legal-sec li{ font-size:16px; line-height:1.7; color:#3d3a35; }
.legal-sec p + p{ margin-top:10px; }
.legal-sec ul{ padding-left:20px; margin:8px 0 10px; display:grid; gap:8px; }
.legal-sec a{ color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.legal mark.todo{ background:#FCE3CC; color:#7a3d0e; padding:1px 5px; border-radius:5px; }
.legal-updated{ margin-top:24px; font-size:14px; color:var(--muted); font-style:italic; }

/* --- apertura del sito (Home): logo e scritte composti da particelle --- */
.grace-intro{ position:fixed; inset:0; z-index:1000; background:#F2E9DD; cursor:pointer; transition:opacity .6s ease; }
.grace-intro.out{ opacity:0; pointer-events:none; }
.grace-intro canvas{ display:block; }
html.intro-seen .grace-intro{ display:none; }
html.intro-on, html.intro-on body{ overflow:hidden; }

/* --- Home: apertura con logo un po' più grande, titolo e testo --- */
.hero .medallion{ max-width:240px; }
.hero h1{ margin-bottom:22px; }
.hero .lead{ max-width:60ch; }
@media(max-width:720px){ .hero .medallion{ max-width:180px; } }

/* --- Home: frase delle 3 P --- */
.mission-head h2.ppp{ font-weight:300; font-size:clamp(34px,4.4vw,58px); line-height:1.15; letter-spacing:-.02em; max-width:20ch; margin:0 auto; }
.mission-head h2.ppp .p3{ font-weight:700; color:var(--terra); font-size:1.18em; line-height:0; }
/* --- Home: "L'idea" come scritta con la riga animata (come "Scorri") --- */
.hero .idea-link{ display:inline-flex; flex-direction:column; align-items:center; gap:12px; margin-top:6px; font-size:13px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--green); text-decoration:none; }
.hero .idea-link::after{ content:""; width:1.5px; height:46px; background:linear-gradient(var(--terra),transparent); animation:sh 1.8s ease-in-out infinite; transform-origin:top; }
.hero .idea-link:hover{ color:var(--terra); }
@media (prefers-reduced-motion: reduce){ .hero .idea-link::after{ animation:none; } }
.mission-head h2.ppp{ max-width:none; }
@media(max-width:720px){ .mission-head h2.ppp br.br-d{ display:none; } }

/* --- frase delle 3 P su tre righe, parole chiave in maiuscoletto --- */
.mission-head h2.ppp{ font-size:clamp(28px,3.7vw,50px); line-height:1.25; }
.mission-head h2.ppp br.br-d{ display:inline; }
.mission-head h2.ppp .sc{ font-variant-caps:small-caps; font-weight:500; letter-spacing:.03em; white-space:nowrap; }
.mission-head h2.ppp .p3{ font-size:1em; font-weight:700; }
/* --- "L'idea" più grande, in un riquadro colorato, con la riga animata più lunga --- */
.hero .idea-link{ gap:0; margin-top:10px; font-size:17px; letter-spacing:.14em; color:#fff; }
.hero .idea-link .idea-box{ display:inline-block; background:var(--green); color:#fff; padding:15px 34px; border-radius:16px; box-shadow:0 14px 30px -16px rgba(0,63,39,.6); transition:background .25s; }
.hero .idea-link:hover{ color:#fff; } .hero .idea-link:hover .idea-box{ background:var(--terra); }
.hero .idea-link::after{ height:72px; width:2px; margin-top:14px; }

/* la frase delle 3 P più vicina alla riga di "L’idea" */
.t-home .hero{ padding-bottom:16px; }
.t-home .mission-intro{ padding-top:18px; }
.hero .idea-link::after{ margin-top:8px; }
.t-home .hero{ padding-bottom:0; }
.t-home .mission-intro{ padding-top:0; }

/* --- Home: "L'idea" e la frase delle 3 P come un unico blocco --- */
.t-home .hero{ min-height:0; padding:44px 0 24px; }
.hero .idea-link::after{ height:44px; margin-top:6px; }
.hero .idea-text{ margin-top:6px; }
.hero .idea-text h2.ppp{ margin:0 auto; }
#missione{ scroll-margin-top:calc(var(--navh,77px) + 140px); }

/* --- Home: grafici al posto dei 4 numeri --- */
.kcharts{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:980px; margin:72px auto 80px; }
.kc{ margin:0; background:var(--card); border:1px solid var(--line); border-radius:24px; padding:26px 26px 20px; box-shadow:var(--shadow); display:flex; flex-direction:column; }
.kc-head{ display:flex; align-items:baseline; gap:12px; margin-bottom:10px; }
.kc-n{ font-weight:300; font-size:clamp(36px,3.6vw,48px); line-height:1; letter-spacing:-.03em; color:var(--green); }
.kc:nth-child(2) .kc-n, .kc:nth-child(3) .kc-n{ color:var(--terra); }
.kc-t{ font-size:15px; color:#4A463F; }
.kc-svg{ width:100%; height:auto; display:block; margin-top:auto; overflow:visible; }
.kc-grid{ stroke:#E6DDCF; stroke-width:1; }
.kc-tick{ font-size:10.5px; fill:var(--muted); }
.kc-lab{ font-size:12.5px; fill:#4A463F; }
.kc-val{ font-size:13px; font-weight:600; fill:var(--muted); }
.kc-val.hi{ fill:var(--ink); font-weight:700; }
.kc-hit{ fill:transparent; }
.kc-bar{ cursor:default; }
.kc-bar:hover .kc-grow{ filter:brightness(1.12); }
.kc-note{ margin-top:10px; font-size:12.5px; color:var(--muted); }
.kc-grow{ transform-box:fill-box; transform-origin:left center; transform:scaleX(0); transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.kc-range{ transition-delay:.45s; }
.kcharts.in .kc-grow{ transform:scaleX(1); }
.kc-tip{ position:fixed; z-index:200; pointer-events:none; background:var(--ink); color:#fff; font-size:13px; padding:7px 10px; border-radius:8px; opacity:0; transition:opacity .15s; white-space:nowrap; }
.kc-tip.on{ opacity:1; }
@media(max-width:760px){ .kcharts{ grid-template-columns:1fr; margin:48px auto 56px; } }
@media (prefers-reduced-motion: reduce){ .kc-grow{ transition:none; transform:none; } }
.kc-n{ white-space:nowrap; } .kc-head{ flex-wrap:wrap; row-gap:4px; }

/* --- menu: "Fondazione no profit" sotto GRACE --- */
.brand-txt{ display:flex; flex-direction:column; line-height:1; }
.brand-txt b{ line-height:1; }
.brand-sub{ font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-top:4px; white-space:nowrap; }
@media(max-width:380px){ .brand-sub{ font-size:9px; letter-spacing:.05em; } }

/* --- Home: grafici con barra del tempo --- */
.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; }
.tcharts{ max-width:1100px; margin:64px auto 80px; }
.tcharts-head{ text-align:center; margin-bottom:28px; }
.tcharts-head h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(28px,3.2vw,42px); line-height:1.15; letter-spacing:-.02em; }
.tcharts-row{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px; }
.tchart{ margin:0; background:var(--card); border:1px solid var(--line); border-radius:24px; padding:26px 28px 20px; box-shadow:var(--shadow); }
.tc-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:16px; }
.tc-head h3{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(18px,1.7vw,22px); font-weight:700; line-height:1.25; margin-bottom:4px; }
.tc-head p{ font-size:14px; color:var(--muted); }
.tc-year{ font-weight:300; font-size:clamp(34px,3.4vw,46px); line-height:1; letter-spacing:-.03em; color:var(--terra); font-variant-numeric:tabular-nums; }
.tc-plot{ position:relative; }
.tc-row{ position:absolute; left:0; right:0; top:0; display:grid; grid-template-columns:110px 1fr; align-items:center; gap:12px; height:34px; transition:transform .55s cubic-bezier(.3,.7,.2,1); }
.tc-lab{ font-size:14px; color:#3d3a35; text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tc-row.hi .tc-lab{ font-weight:700; color:var(--ink); }
.tc-barwrap{ position:relative; height:24px; margin-right:62px; }
.tc-bar{ position:absolute; left:0; top:0; bottom:0; width:0; background:#D3C9BA; border-radius:0 4px 4px 0; transition:width .55s cubic-bezier(.3,.7,.2,1); }
.tc-row.hi .tc-bar{ background:var(--green); }
.tc-row.eu .tc-bar{ background:var(--teal); }
.tc-row.two .tc-bar{ background:var(--teal); }
.tc-val{ position:absolute; top:50%; transform:translate(8px,-50%); font-size:13.5px; font-weight:600; color:var(--muted); white-space:nowrap; transition:left .55s cubic-bezier(.3,.7,.2,1); font-variant-numeric:tabular-nums; }
.tc-row.hi .tc-val{ color:var(--ink); font-weight:700; }
.tc-time{ margin-top:18px; padding:14px 0 4px; cursor:ew-resize; touch-action:none; }
.tc-track{ position:relative; height:6px; border-radius:3px; background:#E6DDCF; margin:0 6px; outline:none; }
.tc-track:focus-visible{ box-shadow:0 0 0 3px rgba(217,111,32,.35); }
.tc-fill{ position:absolute; left:0; top:0; bottom:0; width:0; border-radius:3px; background:linear-gradient(90deg,var(--teal),var(--terra)); transition:width .3s; }
.tc-knob{ position:absolute; top:50%; width:18px; height:18px; margin:-9px 0 0 -9px; border-radius:50%; background:#fff; border:3px solid var(--terra); box-shadow:0 2px 8px rgba(0,0,0,.18); transition:left .3s; }
.tc-tick{ position:absolute; top:12px; width:1px; height:5px; background:#CFC5B6; }
.tc-tick.lab::after{ content:attr(data-y); position:absolute; top:7px; left:50%; transform:translateX(-50%); font-size:11.5px; color:var(--muted); }
.tc-hint{ margin-top:30px; font-size:12px; color:var(--muted); text-align:center; letter-spacing:.02em; }
.tc-src{ margin-top:12px; font-size:12px; line-height:1.5; color:var(--muted); }
@media(max-width:860px){ .tcharts-row{ grid-template-columns:1fr; } }
@media(max-width:520px){ .tchart{ padding:22px 18px 16px; } .tc-row{ grid-template-columns:84px 1fr; gap:8px; } .tc-lab{ font-size:12.5px; } .tc-barwrap{ margin-right:50px; } }
@media (prefers-reduced-motion: reduce){ .tc-row,.tc-bar,.tc-val,.tc-fill,.tc-knob{ transition:none; } }

/* --- Home: barra del tempo con previsioni (2006-2045) e "Che cosa sono le malattie croniche" --- */
.tcharts-lead{ margin-top:10px; font-size:16px; color:var(--muted); }
.tc-time{ padding-top:34px; }
.tc-future{ position:absolute; top:0; bottom:0; right:0; border-radius:0 3px 3px 0; background:repeating-linear-gradient(90deg,#E6DDCF 0 6px,#F7F2EA 6px 10px); }
.tc-fill{ z-index:1; }
.tc-knob{ z-index:3; }
.tc-today{ position:absolute; top:-9px; bottom:-9px; width:2px; margin-left:-1px; background:var(--ink); border-radius:1px; z-index:2; }
.tc-today-lab{ position:absolute; bottom:calc(100% + 1px); left:50%; transform:translateX(-50%); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); white-space:nowrap; }
.tc-zone{ position:absolute; top:-27px; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
.tc-zone.l{ margin-right:30px; }
.tc-zone.r{ margin-left:30px; }
.tc-zone.l::before{ content:'← '; } .tc-zone.r::after{ content:' →'; }
.tc-tick.gap{ opacity:.45; }
.tc-year{ text-align:right; }
.tc-year small{ display:block; margin-top:6px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.tchart.is-est .tc-bar{ background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.42) 0 3px,transparent 3px 8px); }
.tchart.is-est .tc-val::after{ content:''; }
@media(max-width:520px){ .tc-zone{ font-size:10px; letter-spacing:.03em; } .tc-zone.l{ margin-right:24px; } .tc-zone.r{ margin-left:24px; } }

.ci{ max-width:1100px; margin:0 auto 90px; }
.ci-head{ text-align:center; max-width:760px; margin:0 auto 30px; }
.ci-head h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(28px,3.2vw,42px); line-height:1.15; letter-spacing:-.02em; }
.ci-lead{ margin-top:16px; font-size:clamp(18px,1.6vw,21px); line-height:1.55; color:var(--ink); }
.ci-lead b{ color:var(--green); }
.ci-ex{ margin-top:12px; font-size:16px; line-height:1.55; color:var(--muted); }
.ci-row{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.ci-card{ background:var(--card); border:1px solid var(--line); border-radius:24px; padding:28px 30px; box-shadow:var(--shadow); }
.ci-card.ci-green{ background:var(--green); border-color:var(--green); color:#fff; }
.ci-ico{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center; background:rgba(217,111,32,.12); color:var(--terra); margin-bottom:16px; }
.ci-ico svg{ width:24px; height:24px; }
.ci-green .ci-ico{ background:rgba(255,255,255,.14); color:#fff; }
.ci-card h3{ display:flex; align-items:center; gap:10px; font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(19px,1.8vw,23px); font-weight:700; line-height:1.25; margin-bottom:10px; }
.ci-n{ flex:none; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font-size:14px; background:var(--terra); color:#fff; }
.ci-card p{ font-size:16.5px; line-height:1.5; }
.ci-card ul{ list-style:none; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.ci-card li{ font-size:16px; padding:7px 14px; border-radius:999px; background:#F2E9DD; color:var(--ink); }
.ci-green li{ background:rgba(255,255,255,.14); color:#fff; }
@media(max-width:860px){ .ci-row{ grid-template-columns:1fr; } }
@media(max-width:520px){ .ci-card{ padding:22px 20px; } }
.ci-head h2 em{ font-style:normal; font-weight:700; color:var(--green); }

/* --- Chi siamo: Presidente da sola, Comitato a 5, biografie --- */
.gov.solo{ grid-template-columns:1fr; max-width:620px; margin:0 auto; }
.committee.c5s{ display:flex; flex-wrap:wrap; justify-content:center; gap:20px; }
.committee.c5s > a.member{ flex:0 0 calc((100% - 80px) / 5); min-width:0; aspect-ratio:1 / 1; padding:20px 16px; }
.committee.c5s > a.member .ph{ margin-bottom:12px; }
.committee.c5s > a.member h3{ font-size:17px; }
.committee.c5s > a.member .aff{ margin-bottom:0; font-size:13.5px; }
@media(max-width:1120px){ .committee.c5s > a.member{ flex-basis:calc((100% - 40px) / 3); } }
@media(max-width:900px){ .committee.c5s > a.member{ flex-basis:calc((100% - 20px) / 2); } }
@media(max-width:620px){ .committee.c5s > a.member{ aspect-ratio:auto; } }
@media(max-width:520px){ .committee.c5s > a.member{ flex-basis:100%; } }
.bio{ max-width:780px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:24px; padding:40px 46px 36px; box-shadow:var(--shadow); }
.bio h2{ font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--green); margin-bottom:18px; }
.bio p{ font-size:17px; line-height:1.7; color:#2b2925; margin:0 0 16px; }
.bio-inst{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.bio-inst-k{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.inst-link{ display:inline-flex; align-items:center; gap:4px; padding:10px 18px; border-radius:999px; background:var(--green); color:#fff !important; font-weight:600; font-size:15px; text-decoration:none; transition:background .25s, transform .25s; }
.inst-link:hover{ background:#00563A; transform:translateY(-1px); }
@media(max-width:620px){ .bio{ padding:28px 22px 24px; } .bio p{ font-size:16px; } }
.committee.c5s > a.member{ aspect-ratio:auto; min-height:270px; }
.cv-more{ font-variant-ligatures:no-common-ligatures; }

/* --- Come funziona: schermata vera dell'app al posto del disegno; Chi siamo su fondo bianco --- */
.app-phone.app-shot{ background:none; padding:0; border-radius:0; box-shadow:none; aspect-ratio:auto; }
.app-phone.app-shot img{ display:block; width:100%; height:auto; filter:drop-shadow(0 16px 22px rgba(0,30,18,.35)); }
body.t-comitato{ --sand:#ffffff; --card:#F2E9DD; }
.cv-more{ font-feature-settings:"liga" 0, "clig" 0; letter-spacing:0; }

/* ===== Nuova impostazione (ottobre 2026): menu a tendina e pagine nuove ===== */
.t-white{ --sand:#ffffff; --card:#F2E9DD; }
.t-cream{ --sand:#F2E9DD; --card:#ffffff; }
.menu{ gap:18px; }
.mi{ position:relative; display:flex; align-items:center; gap:1px; }
.mi > a{ white-space:nowrap; }
.mi-t{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:24px; padding:0; border:0; background:none; color:#7a746a; cursor:pointer; border-radius:6px; }
.mi-t svg{ width:12px; height:12px; transition:transform .2s; }
.mi-t:hover{ color:var(--green); }
.mi-t:focus-visible{ outline:2px solid var(--terra); outline-offset:1px; }
.sub{ display:flex; flex-direction:column; }
.sub a{ border-bottom:0 !important; }
@media(min-width:1181px){
  .sub{ position:absolute; top:calc(100% + 14px); left:-16px; min-width:236px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:8px; box-shadow:0 22px 44px -22px rgba(0,40,24,.35); opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s, transform .18s, visibility .18s; z-index:70; }
  .sub::before{ content:""; position:absolute; left:0; right:0; top:-16px; height:16px; }
  .mi:hover .sub, .mi:focus-within .sub, .mi.open .sub{ opacity:1; visibility:visible; transform:none; }
  .mi:hover .mi-t svg, .mi.open .mi-t svg{ transform:rotate(180deg); }
  .sub a{ padding:9px 12px; border-radius:10px; font-size:14px; color:#3d3a35; }
  .sub a:hover{ background:#F2E9DD; color:var(--green); }
  .sub a.on{ color:var(--green); font-weight:600; background:#F7F2EA; }
}
@media(max-width:1180px){
  .hamburger{ display:flex; position:relative; z-index:61; }
  .nav{ -webkit-backdrop-filter:none; backdrop-filter:none; background:var(--sand); }
  .menu-wrap{ position:fixed; inset:0 0 0 auto; width:min(86vw,340px); height:100vh; height:100dvh; z-index:60; background:var(--sand); border-left:1px solid var(--line); flex-direction:column; align-items:stretch; padding:84px 22px 28px; gap:20px; transform:translateX(100%); transition:transform .25s ease; overflow-y:auto; box-shadow:none; }
  .nav.open .menu-wrap{ transform:translateX(0); box-shadow:-20px 0 50px -30px rgba(0,0,0,.4); }
  .menu{ flex-direction:column; align-items:stretch; gap:2px; }
  .mi{ flex-wrap:wrap; justify-content:space-between; border-bottom:1px solid var(--line); padding:6px 0; }
  .mi > a{ font-size:18px; padding:6px 0; }
  .mi-t{ width:40px; height:40px; }
  .mi-t svg{ width:15px; height:15px; }
  .mi.open .mi-t svg{ transform:rotate(180deg); }
  .sub{ flex-basis:100%; display:none; padding:2px 0 8px 12px; border-left:2px solid var(--terra); margin:0 0 6px 2px; }
  .mi.open .sub{ display:flex; }
  .sub a{ font-size:16px; padding:8px 4px; color:#4A463F; }
  .sub a.on{ color:var(--green); font-weight:600; }
}

/* sottomenu della sezione, sotto l'apertura della pagina */
.subnav{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:28px; }
.subnav a{ text-decoration:none; font-size:14px; font-weight:600; padding:9px 16px; border-radius:999px; border:1px solid var(--line); color:#4A463F; background:var(--card); transition:background .2s,color .2s,border-color .2s; }
.subnav a:hover{ border-color:var(--green); color:var(--green); }
.subnav a.on{ background:var(--green); border-color:var(--green); color:#fff; }

/* blocchi delle pagine nuove */
.lead-c{ max-width:760px; margin:0 auto; text-align:center; }
.lead-c p{ font-size:18px; line-height:1.65; color:#3d3a35; }
.lead-c p + p{ margin-top:14px; }
.sh-c{ text-align:center; max-width:760px; margin:0 auto 34px; }
.sh-c .eyebrow{ margin-bottom:10px; }
.sh-c h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(28px,3.2vw,40px); line-height:1.15; letter-spacing:-.02em; }
.sh-c h2 em{ font-style:normal; font-weight:700; color:var(--green); }
.sh-c p{ margin-top:12px; color:var(--muted); font-size:16.5px; line-height:1.6; }

.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.stats.s3{ grid-template-columns:repeat(3,1fr); }
.stat{ background:var(--card); border:1px solid var(--line); border-radius:22px; padding:26px 24px; box-shadow:var(--shadow); }
.stat .n{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(34px,3.4vw,46px); line-height:1; letter-spacing:-.03em; color:var(--green); }
.stat:nth-child(2) .n{ color:var(--terra); } .stat:nth-child(3) .n{ color:var(--teal); } .stat:nth-child(4) .n{ color:var(--green-d); }
.stat p{ margin-top:12px; font-size:15px; line-height:1.5; color:#4A463F; }

.gcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.gcards.c2{ grid-template-columns:repeat(2,1fr); }
.gcards.c4{ grid-template-columns:repeat(4,1fr); }
.gcard{ position:relative; background:var(--card); border:1px solid var(--line); border-radius:22px; padding:28px 26px; box-shadow:var(--shadow); display:flex; flex-direction:column; text-decoration:none; color:inherit; }
a.gcard{ transition:border-color .25s, box-shadow .25s, transform .25s; }
a.gcard:hover{ border-color:rgba(0,63,39,.35); box-shadow:0 22px 40px -22px rgba(0,63,39,.45); }
.gcard .ic{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center; background:rgba(0,63,39,.09); color:var(--green); margin-bottom:16px; flex:none; }
.gcard .ic svg{ width:23px; height:23px; }
.gcard .num{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--terra); margin-bottom:10px; }
.gcard h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:19px; line-height:1.3; margin-bottom:10px; }
.gcard p{ font-size:15.5px; line-height:1.6; color:#4A463F; }
.gcard p + p{ margin-top:10px; }
.gcard ul{ list-style:none; margin:12px 0 0; padding:0; display:grid; gap:8px; }
.gcard li{ display:flex; gap:10px; font-size:15px; line-height:1.5; color:#2b2925; }
.gcard li::before{ content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--terra); margin-top:8px; }
.gcard .more{ margin-top:auto; padding-top:16px; font-size:14px; font-weight:700; color:var(--terra); }
.gcard.dark{ background:var(--green); border-color:var(--green); color:#fff; }
.gcard.dark p, .gcard.dark li{ color:rgba(255,255,255,.88); }
.gcard.dark .ic{ background:rgba(255,255,255,.14); color:#fff; }
.gcard.dark .num{ color:#9CC5AC; }
.gcard .kv{ margin-top:14px; display:grid; gap:8px; }
.gcard .kv div{ display:grid; grid-template-columns:104px 1fr; gap:10px; font-size:15px; line-height:1.45; }
.gcard .kv b{ font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding-top:2px; }

.callout{ max-width:900px; margin:0 auto; background:var(--green); color:#fff; border-radius:24px; padding:30px 34px; text-align:center; font-size:clamp(18px,1.8vw,22px); line-height:1.5; }
.callout b{ color:#F2C9A6; }
.callout.light{ background:var(--card); color:var(--ink); border:1px solid var(--line); }
.callout.light b{ color:var(--terra); }

.loop{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px; margin-top:30px; }
.loop span{ background:var(--card); border:1px solid var(--line); border-radius:999px; padding:10px 18px; font-weight:600; font-size:15px; }
.loop i{ font-style:normal; color:var(--terra); font-weight:700; }

.roads{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.road{ border-radius:24px; padding:30px 30px 28px; border:1px solid var(--line); background:var(--card); }
.road.go{ background:var(--green); color:#fff; border-color:var(--green); }
.road .k{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.road.go .k{ color:#9CC5AC; }
.road h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:22px; margin-bottom:12px; }
.road p{ font-size:16px; line-height:1.6; }
.road p + p{ margin-top:12px; font-weight:600; }

.chartc{ background:#fff; border:1px solid var(--line); border-radius:24px; padding:26px 28px 20px; box-shadow:var(--shadow); }
.chartc h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:19px; line-height:1.3; }
.chartc .sub2{ font-size:14px; color:var(--muted); margin-top:4px; }
.chartc svg{ display:block; width:100%; height:auto; margin-top:14px; }
.chartc svg text{ font-family:'Plus Jakarta Sans',sans-serif; }
.legend{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; font-size:13.5px; color:#4A463F; }
.legend span{ display:inline-flex; align-items:center; gap:7px; }
.legend i{ width:16px; height:4px; border-radius:2px; display:inline-block; }
.legend i.sq{ width:12px; height:12px; border-radius:3px; }
.legend i.dash{ background:repeating-linear-gradient(90deg,var(--terra) 0 5px,transparent 5px 8px) !important; }
.charts2{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.src{ margin-top:14px; font-size:12.5px; line-height:1.55; color:var(--muted); }
.src-c{ text-align:center; max-width:880px; margin:22px auto 0; }

.gantt{ background:#fff; border:1px solid var(--line); border-radius:24px; padding:24px 26px; box-shadow:var(--shadow); overflow-x:auto; }
.gantt table{ width:100%; min-width:620px; border-collapse:collapse; }
.gantt th{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--green); padding:0 0 12px; text-align:center; border-bottom:1px solid var(--line); }
.gantt th:first-child{ text-align:left; color:var(--muted); width:34%; }
.gantt td{ padding:7px 0; border-bottom:1px solid #f1ebe2; vertical-align:middle; }
.gantt td:first-child{ font-size:14.5px; color:#2b2925; padding-right:14px; }
.gantt .bar{ height:20px; border-radius:6px; background:linear-gradient(90deg,var(--teal),var(--green)); }
.gantt .bar.c{ background:linear-gradient(90deg,#9CC5AC,var(--teal)); }
.gantt .bar.t{ background:linear-gradient(90deg,#E9A56E,var(--terra)); }
.gantt td.e{ padding-left:4px; padding-right:4px; }
.fund{ margin-top:22px; background:var(--green); color:#fff; border-radius:24px; padding:26px 30px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; }
.fund .k{ font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#9CC5AC; }
.fund .eq{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px; }
.fund .eq b{ display:block; font-size:30px; font-weight:700; line-height:1.1; }
.fund .eq small{ font-size:13px; color:rgba(255,255,255,.8); }
.fund .eq i{ font-style:normal; font-size:24px; color:#9CC5AC; }

.topics{ display:grid; gap:14px; max-width:900px; margin:0 auto; }
.topic{ display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:20px; background:var(--card); border:1px solid var(--line); border-radius:20px; padding:18px 22px; text-decoration:none; color:inherit; box-shadow:var(--shadow); transition:border-color .25s, box-shadow .25s; }
.topic:hover{ border-color:rgba(0,63,39,.35); box-shadow:0 22px 40px -22px rgba(0,63,39,.45); }
.topic .ic{ width:64px; height:64px; border-radius:18px; display:grid; place-items:center; background:rgba(0,63,39,.09); color:var(--green); }
.topic .ic svg{ width:30px; height:30px; }
.topic h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:19px; margin-bottom:4px; }
.topic p{ font-size:15px; line-height:1.5; color:#4A463F; }
.topic .go{ font-size:22px; color:var(--terra); }
.tgroup + .tgroup{ margin-top:46px; }
.tgroup > h2{ text-align:center; font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--terra); margin-bottom:16px; }
.disclaimer{ max-width:760px; margin:0 auto; text-align:center; font-size:13.5px; color:var(--muted); line-height:1.6; }
.disclaimer a{ color:var(--green); }

.dlist{ max-width:860px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:22px; padding:8px 28px; box-shadow:var(--shadow); }
.dlist div{ display:grid; grid-template-columns:220px 1fr; gap:18px; padding:16px 0; border-bottom:1px solid var(--line); font-size:16px; line-height:1.5; }
.dlist div:last-child{ border-bottom:0; }
.dlist b{ font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding-top:2px; }
.dlist a{ color:var(--green); }

.news{ display:grid; gap:18px; max-width:900px; margin:0 auto; }
.nitem{ display:grid; grid-template-columns:150px 1fr; gap:24px; background:var(--card); border:1px solid var(--line); border-radius:22px; padding:24px 26px; box-shadow:var(--shadow); }
.nitem time{ font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--terra); padding-top:3px; }
.nitem h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:19px; line-height:1.35; margin-bottom:8px; }
.nitem p{ font-size:15.5px; line-height:1.6; color:#4A463F; }
.nitem a{ color:var(--green); font-weight:600; }
.cta-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:28px; }
.btn-out{ display:inline-flex; align-items:center; gap:8px; padding:12px 22px; border-radius:999px; border:1.5px solid var(--green); color:var(--green); font-weight:600; text-decoration:none; }
.btn-out:hover{ background:var(--green); color:#fff; }

@media(max-width:980px){ .stats{ grid-template-columns:1fr 1fr; } .gcards, .gcards.c4{ grid-template-columns:1fr 1fr; } .charts2{ grid-template-columns:1fr; } }
@media(max-width:700px){ .roads, .gcards.c2{ grid-template-columns:1fr; } .dlist div{ grid-template-columns:1fr; gap:4px; } .nitem{ grid-template-columns:1fr; gap:8px; } }
@media(max-width:560px){ .stats, .stats.s3, .gcards, .gcards.c4{ grid-template-columns:1fr; } .topic{ grid-template-columns:48px 1fr; padding:16px; } .topic .ic{ width:48px; height:48px; border-radius:14px; } .topic .go{ display:none; } .chartc{ padding:20px 16px 16px; } .gcard .kv div{ grid-template-columns:1fr; gap:2px; } }
.ch-m{ display:none; }
@media(max-width:560px){ .ch-d{ display:none; } .ch-m{ display:block; } .stats, .stats.s3{ grid-template-columns:1fr 1fr; gap:12px; } .stat{ padding:18px 16px; } .stat .n{ font-size:28px; } .stat p{ font-size:14px; } }
.gantt{ max-width:100%; }
@media(max-width:600px){ .gantt{ padding:18px 14px; } .gantt table{ min-width:0; table-layout:fixed; } .gantt th:first-child{ width:42%; } .gantt th{ font-size:10.5px; letter-spacing:.06em; } .gantt td:first-child{ font-size:13px; line-height:1.35; padding-right:8px; } .gantt .bar{ height:16px; } .fund .eq b{ font-size:24px; } }

/* --- Fondo bianco per tutte le pagine (26 ottobre 2026): niente più alternanza con il beige --- */
html body[class], html body{ --sand:#ffffff; --sand2:#ffffff; --card:#F2E9DD; }
.grace-intro{ background:#ffffff; }
.ci-card li{ background:#ffffff; }
.ci-card.ci-green li{ background:rgba(255,255,255,.14); }

/* --- grafici che si disegnano quando compaiono --- */
@media (prefers-reduced-motion: no-preference){
  .draw-ready .chartc path.ln{ stroke-dasharray:1000; stroke-dashoffset:1000; transition:stroke-dashoffset 1.6s cubic-bezier(.3,.7,.2,1) .15s; }
  .draw-ready .chartc.in path.ln{ stroke-dashoffset:0; }
  .draw-ready .chartc path.dl, .draw-ready .chartc .lb{ opacity:0; transition:opacity .6s ease 1.2s; }
  .draw-ready .chartc.in path.dl, .draw-ready .chartc.in .lb{ opacity:1; }
  .draw-ready .chartc rect.br{ transform:scaleX(0); transform-box:fill-box; transform-origin:left center; transition:transform 1s cubic-bezier(.3,.7,.2,1); }
  .draw-ready .chartc.in rect.br{ transform:none; }
  .draw-ready .chartc rect.br:nth-of-type(2n){ transition-delay:.15s; }
  .draw-ready .gantt .bar{ transform:scaleX(0); transform-origin:left center; transition:transform .9s cubic-bezier(.3,.7,.2,1); }
  .draw-ready .gantt.in .bar{ transform:none; }
  .draw-ready .gantt tr:nth-child(3) .bar{ transition-delay:.08s; } .draw-ready .gantt tr:nth-child(4) .bar{ transition-delay:.16s; }
  .draw-ready .gantt tr:nth-child(5) .bar{ transition-delay:.24s; } .draw-ready .gantt tr:nth-child(6) .bar{ transition-delay:.32s; }
  .draw-ready .gantt tr:nth-child(7) .bar{ transition-delay:.40s; } .draw-ready .gantt tr:nth-child(8) .bar{ transition-delay:.48s; }
  .draw-ready .gantt tr:nth-child(9) .bar{ transition-delay:.56s; } .draw-ready .gantt tr:nth-child(10) .bar{ transition-delay:.64s; }
}

/* --- Pulsanti rettangolari in tutto il sito (27 ottobre 2026) --- */
.btn-pill, .btn-solid, .btn-out, .inst-link, .subnav a, .store-btn, .hero .idea-link .idea-box, .idea-box, .hamburger, .legal-toc a, .sub a{ border-radius:4px !important; }

/* --- Home: la frase della missione con le 3 P (27 ottobre 2026) --- */
.mis-h{ max-width:none; }
.mis-h p.mis-lead{ max-width:860px; margin-left:auto; margin-right:auto; }
@media(min-width:821px){ .mis-h h2{ white-space:nowrap; } }
.mis-h p.mis-lead{ font-size:clamp(20px,2vw,25px); line-height:1.5; color:var(--ink); margin-top:18px; }
.mis-lead .w3{ font-weight:600; color:var(--green); }
.mis-lead .w3 b{ color:var(--terra); font-weight:800; font-size:1.12em; }
/* l'apertura della Home torna a tutto schermo, con "Scorri" in basso */
.t-home .hero{ min-height:calc(100vh - var(--navh,77px)); min-height:calc(100svh - var(--navh,77px)); padding:32px 0 120px; }

/* --- Home: la missione a righe alterne, testo e fotografia separati (27 ottobre 2026) --- */
.mcards{ display:flex; flex-direction:column; gap:clamp(56px,7vw,104px); margin-top:clamp(24px,4vw,48px); }
.mcard{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,96px); align-items:center; }
.mcard.m2{ grid-template-columns:1fr 1fr; }
.mcard .mimg{ order:2; } .mcard.m2 .mimg{ order:0; }
.mimg{ position:relative; aspect-ratio:1 / 1; overflow:hidden; border-radius:24px; box-shadow:0 30px 60px -34px rgba(0,40,25,.5); }
.mimg img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.mcard:hover .mimg img{ transform:scale(1.04); }
.mbody{ max-width:520px; }
.mcard.m2 .mbody{ justify-self:start; }
.mtag{ display:flex; align-items:center; gap:12px; font-size:13px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; margin-bottom:16px; }
.mtag::before{ content:""; width:32px; height:2px; background:currentColor; }
.m1 .mtag{ color:var(--green); } .m2 .mtag{ color:#4F8A68; } .m3 .mtag{ color:var(--terra); }
.mcard h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:clamp(26px,2.7vw,36px); line-height:1.18; letter-spacing:-.01em; margin-bottom:16px; color:var(--ink); }
.mcard p{ font-size:17px; line-height:1.65; color:#4A463F; }
.mchips{ display:flex; flex-wrap:wrap; gap:8px; padding-top:24px; }
.mchips span{ font-size:13.5px; font-weight:600; padding:7px 14px; border-radius:4px; background:var(--card); color:var(--green); }
.m3 .mchips span{ background:var(--green); color:#fff; }
@media(max-width:820px){
  .mcard, .mcard.m2{ grid-template-columns:1fr; gap:24px; }
  .mcard .mimg, .mcard.m2 .mimg{ order:0; }
  .mbody{ max-width:none; }
}

/* movimenti dei riquadri più lenti e morbidi (27 ottobre 2026) */
@media (prefers-reduced-motion: no-preference){
  .sx-ready .sx{ transition:transform 1.2s cubic-bezier(.16,.84,.3,1), opacity 1.2s ease-out, filter 1.2s ease-out, box-shadow .3s; }
}

/* missione: il testo in un riquadro verde quadrato, grande quanto la foto (27 ottobre 2026) */
.mcard{ gap:clamp(20px,2.4vw,32px); }
.mcard .mbody, .mcard.m2 .mbody{ max-width:none; justify-self:stretch; aspect-ratio:1 / 1; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; padding:clamp(28px,4.4vw,64px); border-radius:24px; background:linear-gradient(150deg,#0b5a3a,var(--green)); color:#fff; box-shadow:0 30px 60px -34px rgba(0,40,25,.5); }
.mcard .mbody h3{ color:#fff; }
.mcard .mbody p{ color:rgba(255,255,255,.86); }
.m1 .mtag, .m2 .mtag{ color:#9cc0a9; } .m3 .mtag{ color:#F2A66B; }
.mcard .mchips span{ background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.18); }
.m3 .mchips span{ background:var(--terra); border-color:var(--terra); color:#fff; }
@media(min-width:821px) and (max-width:1000px){ .mcard .mbody, .mcard.m2 .mbody{ padding:28px 30px; } .mcard h3{ font-size:24px; margin-bottom:12px; } .mcard p{ font-size:15.5px; line-height:1.55; } .mchips{ padding-top:16px; } .mtag{ margin-bottom:12px; } }
@media(max-width:820px){ .mcard{ gap:16px; } .mcard .mbody, .mcard.m2 .mbody{ aspect-ratio:auto; } }

/* missione: in tutti e tre i riquadri l'arancione dei premi (27 ottobre 2026) */
.m1 .mtag, .m2 .mtag, .m3 .mtag{ color:#F2A66B; }
.mcard .mchips span{ background:var(--terra); border-color:var(--terra); color:#fff; }

/* Home, "Costruiamo insieme": tre riquadri quadrati verdi, testo bianco e icone arancioni (27 ottobre 2026) */
.gcards.sqg{ gap:clamp(16px,2vw,24px); }
.sqg .gcard{ aspect-ratio:1 / 1; box-sizing:border-box; justify-content:flex-start; padding:clamp(24px,3vw,44px); border:0; border-radius:24px; background:linear-gradient(150deg,#0b5a3a,var(--green)); color:#fff; box-shadow:0 30px 60px -34px rgba(0,40,25,.5); }
.sqg .gcard .ic{ width:60px; height:60px; background:rgba(217,111,32,.16); color:#EE8A3C; margin-bottom:22px; }
.sqg .gcard .ic svg{ width:30px; height:30px; }
.sqg .gcard h3{ color:#fff; font-size:clamp(21px,2vw,26px); margin-bottom:12px; }
.sqg .gcard p{ color:rgba(255,255,255,.86); font-size:16px; }
@media(max-width:1000px){ .sqg .gcard{ padding:24px 22px; } .sqg .gcard .ic{ width:50px; height:50px; margin-bottom:14px; } .sqg .gcard p{ font-size:15px; line-height:1.5; } }
@media(min-width:821px) and (max-width:900px){ .sqg .gcard{ padding:20px 18px; } .sqg .gcard h3{ font-size:19px; margin-bottom:8px; } .sqg .gcard .ic{ width:42px; height:42px; margin-bottom:12px; } .sqg .gcard .ic svg{ width:24px; height:24px; } }
@media(min-width:821px){ .gcards.sqg{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:820px){ .gcards.sqg{ grid-template-columns:1fr; } .sqg .gcard{ aspect-ratio:auto; padding:28px 26px; } }

/* Dati › Il contesto: i quattro numeri iniziali in riquadri quadrati (27 ottobre 2026) */
.stats.sq{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.stats.sq .stat{ aspect-ratio:1 / 1; box-sizing:border-box; display:flex; flex-direction:column; justify-content:space-between; padding:clamp(20px,2.4vw,32px); }
.stats.sq .stat .n{ font-size:clamp(40px,4.4vw,60px); }
.stats.sq .stat p{ font-size:16px; margin-top:16px; }
@media(max-width:980px){ .stats.sq{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px){ .stats.sq .stat{ padding:16px 14px; } .stats.sq .stat .n{ font-size:30px; } .stats.sq .stat p{ font-size:13.5px; margin-top:10px; } }
@media(max-width:380px){ .stats.sq .stat{ padding:14px 12px; } .stats.sq .stat p{ font-size:12.5px; line-height:1.45; } }

/* fonti sotto i riquadri: più larghe, così stanno su una riga (27 ottobre 2026) */
.src-c{ max-width:none; }

/* Il contesto: "La tenaglia demografica" larga quanto i quattro riquadri sopra */
.stats.sq + div > .callout, .imp-list.ctx + div > .callout{ max-width:none; }

/* Dati › Il contesto: grafici quadrati con il testo in un riquadro verde a parte, alternati (27 ottobre 2026) */
.tzs{ display:flex; flex-direction:column; gap:clamp(40px,5vw,72px); margin-top:clamp(24px,3vw,40px); }
.tz{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(20px,2.4vw,32px); }
.tz .tchart.sqc{ order:0; align-self:start; aspect-ratio:1 / 1; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; border-radius:24px; padding:clamp(20px,2.4vw,30px); }
.tz .tz-text{ order:1; align-self:stretch; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; padding:clamp(28px,4.4vw,64px); border-radius:24px; background:linear-gradient(150deg,#0b5a3a,var(--green)); color:#fff; box-shadow:0 30px 60px -34px rgba(0,40,25,.5); }
.tz:nth-child(even) .tchart.sqc{ order:1; } .tz:nth-child(even) .tz-text{ order:0; }
.tz-text .mtag{ color:#F2A66B; }
.tz-text h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:clamp(24px,2.5vw,34px); line-height:1.2; letter-spacing:-.01em; color:#fff; margin-bottom:18px; }
.tz-text .tz-src{ font-size:14px; line-height:1.6; color:rgba(255,255,255,.78); }
.tchart.sqc .tc-unit{ font-size:14px; color:var(--muted); max-width:260px; }
.tchart.sqc .tc-head{ align-items:center; }
.tchart.sqc.fat .tc-row{ height:72px; grid-template-columns:96px 1fr; }
.tchart.sqc.fat .tc-barwrap{ height:52px; }
.tchart.sqc.fat .tc-lab{ font-size:15px; white-space:normal; line-height:1.25; }
.tchart.sqc.fat .tc-val{ font-size:16px; }
@media(max-width:820px){
  .tz{ grid-template-columns:1fr; gap:16px; }
  .tz .tz-text, .tz:nth-child(even) .tz-text{ order:0; }
  .tz .tchart.sqc, .tz:nth-child(even) .tchart.sqc{ order:1; aspect-ratio:auto; }
  .tz .tz-text{ padding:28px 26px; }
}
.tchart.sqc:not(.fat) .tc-row{ height:30px; }
.tchart.sqc:not(.fat) .tc-barwrap{ height:20px; }
.tchart.sqc .tc-head{ margin-bottom:10px; }
.tchart.sqc .tc-hint{ margin-top:32px; }
.tchart.sqc .tc-year{ font-size:clamp(30px,3vw,40px); }
.tchart.sqc:not(.fat) .tc-time{ margin-top:10px; }

/* proiezioni: la barra del tempo parte da oggi (2025), quindi solo "Previsioni" */
.tchart.proj .tc-zone.l{ display:none; }
.tchart.proj .tc-today-lab{ transform:none; left:-4px; }
.tchart.sqc.widelab .tc-row{ grid-template-columns:136px 1fr; }
.tchart.sqc.proj:not(.fat) .tc-row{ height:32px; }
.tchart.sqc.proj:not(.fat) .tc-barwrap{ height:22px; }
@media(max-width:520px){ .tchart.sqc.widelab .tc-row{ grid-template-columns:104px 1fr; } }
.tchart.proj .tc-zone.r{ margin-left:54px; }
@media(max-width:520px){ .tchart.sqc.widelab .tc-row{ grid-template-columns:120px 1fr; } .tchart.proj .tc-zone.r{ margin-left:50px; } }

/* "Che cosa sono le malattie croniche": elenchi puntati al posto degli ovali (27 ottobre 2026) */
.ci-card ul{ display:block; list-style:none; margin:14px 0 0; padding:0; }
.ci-card li, .ci-card.ci-green li{ position:relative; display:block; background:none; border-radius:0; padding:0 0 0 22px; margin:0 0 8px; font-size:16.5px; line-height:1.5; }
.ci-card li::before{ content:""; position:absolute; left:4px; top:.62em; width:8px; height:8px; border-radius:50%; background:var(--terra); }
.ci-card.ci-green li::before{ background:#F2A66B; }

/* grafico con dati solo da oggi: niente scritta "Dati" a sinistra */
.tchart.nohist .tc-zone.l{ display:none; }

/* "Il punto di rottura": spesa e risorse con la barra del tempo */
.tchart.rottura .tc-row{ grid-template-columns:190px 1fr; height:40px; }
.tchart.rottura .tc-barwrap{ height:30px; margin-right:80px; }
.tchart.rottura .tc-unit{ font-size:14px; color:var(--muted); }
.tc-row.tr .tc-bar{ background:var(--terra); }
.tc-row.tr2 .tc-bar{ background:#E9A36F; }
.tc-row.gapb .tc-bar{ background:repeating-linear-gradient(135deg,#B8442A 0 6px,#C9593C 6px 12px); }
.tc-row.gapb .tc-lab{ font-weight:700; color:#B8442A; }
@media(max-width:520px){ .tchart.rottura .tc-row{ grid-template-columns:108px 1fr; } .tchart.rottura .tc-lab{ white-space:normal; line-height:1.2; font-size:12.5px; } .tchart.rottura .tc-barwrap{ margin-right:58px; } }

/* "Il punto di rottura": grafico a linee con la barra del tempo */
.lchart{ margin:0 auto; max-width:900px; background:var(--card); border:1px solid var(--line); border-radius:24px; padding:26px 28px 20px; box-shadow:var(--shadow); }
.lchart .tc-head h3{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(18px,1.7vw,22px); font-weight:700; line-height:1.25; margin-bottom:4px; }
.lchart .tc-unit{ font-size:14px; color:var(--muted); }
.lchart svg{ display:block; width:100%; height:auto; overflow:visible; }
.lc-vals{ display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:12px; font-size:14px; color:#3d3a35; }
.lc-vals span{ display:inline-flex; align-items:center; gap:8px; }
.lc-vals i{ width:18px; height:4px; border-radius:2px; display:inline-block; }
.lc-vals i.dash{ background:repeating-linear-gradient(90deg,#D96F20 0 6px,transparent 6px 10px)!important; }
.lc-vals b{ font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.lc-gap i{ height:12px; background:rgba(217,111,32,.18); border:1px solid rgba(217,111,32,.5); }
.lc-gap b{ color:#B8442A; }
.lchart .tc-zone.l{ display:none; }
.lchart .tc-today-lab{ transform:none; left:-4px; }
.lchart .tc-zone.r{ margin-left:54px; }
@media(max-width:520px){ .lchart{ padding:22px 18px 16px; } .lc-vals{ font-size:13px; gap:6px 14px; } }
.stats.sq.s3{ grid-template-columns:repeat(3,minmax(0,1fr)); max-width:820px; margin-left:auto; margin-right:auto; }
@media(max-width:560px){ .stats.sq.s3{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.stats.sq.s3 .stat .n{ font-size:clamp(30px,3.2vw,44px); white-space:nowrap; }
@media(max-width:560px){ .stats.sq.s3 .stat .n{ font-size:24px; } }
.lc-vals b{ white-space:nowrap; }

/* "Il punto di rottura": grafico quadrato a sinistra, valori e fonte nel riquadro verde a destra */
.tz-solo{ margin-top:0; }
.tz .lchart{ max-width:none; margin:0; align-self:start; aspect-ratio:1 / 1; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; padding:clamp(20px,2.4vw,30px); }
.tz .lchart .tc-head{ margin-bottom:6px; align-items:center; }
.tz .lchart .tc-time{ margin-top:6px; }
.tz .lchart .tc-hint{ margin-top:32px; }
.tz-text .lc-vals{ flex-direction:column; flex-wrap:nowrap; gap:12px; margin:4px 0 22px; font-size:16.5px; color:rgba(255,255,255,.9); }
.tz-text .lc-vals span{ display:grid; grid-template-columns:22px 1fr auto; align-items:center; gap:10px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.14); }
.tz-text .lc-vals i{ width:22px; height:4px; }
.tz-text .lc-vals span:nth-child(2) i{ background:#fff!important; }
.tz-text .lc-vals b{ color:#fff; font-size:18px; }
.tz-text .lc-gap{ border-bottom:0!important; padding-bottom:0!important; }
.tz-text .lc-gap i{ height:14px; background:rgba(217,111,32,.35); border:1px solid #F2A66B; }
.tz-text .lc-gap, .tz-text .lc-gap b{ color:#F2A66B; font-weight:700; }
.tz-text .lc-gap b{ font-size:22px; }
@media(max-width:820px){ .tz .lchart{ aspect-ratio:auto; order:1; } }
.tz .lchart .tc-year{ font-size:clamp(30px,3vw,40px); } .tz .lchart .tc-hint{ margin-top:30px; }

.sh-c.sh-wide{ max-width:none; }

/* Il contesto: i numeri come nella pagina L'impatto atteso (senza riquadri, cifre grandi e testo sotto) */
.imp-list.i3{ grid-template-columns:repeat(3,minmax(0,1fr)); max-width:980px; }
.imp-list.i3 .n{ font-size:clamp(44px,5.2vw,76px); white-space:nowrap; }
@media(max-width:900px){ .imp-list.i3{ grid-template-columns:1fr; } }
.imp-list.ctx{ margin-top:16px; }
.imp-list.i3{ margin-top:44px; }
.imp-list.ctx + div{ margin-top:52px!important; }

/* La soluzione: le due strade più grandi, "Strada 2" e le parole chiave in arancione, riquadro sotto largo quanto le due strade */
.roads{ gap:clamp(20px,2.4vw,32px); }
.road{ padding:clamp(30px,3.6vw,48px); border-radius:24px; }
.road .k{ font-size:14px; letter-spacing:.14em; margin-bottom:16px; }
.road.go .k{ color:#F2A66B; }
.road h3{ font-size:clamp(24px,2.4vw,30px); line-height:1.2; margin-bottom:16px; }
.road p{ font-size:clamp(17px,1.5vw,19px); line-height:1.6; }
.road p + p{ margin-top:14px; }
.road.go p + p{ color:#F2A66B; }
.roads + div > .callout{ max-width:none; }
.roads + div > .callout b{ color:#F2A66B; }

/* Il contesto: apertura con la foto delle mani a tutto schermo, leggermente sfocata */
.page-head.ph-photo{ overflow:hidden; color:#fff; isolation:isolate; }
.ph-bg{ position:absolute; inset:0; z-index:-1; background:#0d2a1f; }
.ph-bg img{ width:100%; height:100%; object-fit:cover; object-position:60% 50%; filter:blur(2px); transform:scale(1.04); }
.ph-bg::after{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 45%, rgba(0,38,24,.66) 0%, rgba(0,38,24,.5) 50%, rgba(0,38,24,.32) 100%); }
.ph-photo .eyebrow{ color:#F2A66B; }
.ph-photo h1{ color:#fff; }
.ph-photo h1 em{ color:#F2A66B; }
.ph-photo .intro{ color:rgba(255,255,255,.9); }
.ph-photo .subnav a{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.35); color:#fff; }
.ph-photo .subnav a:hover{ background:rgba(255,255,255,.2); border-color:#fff; color:#fff; }
.ph-photo .subnav a.on{ background:#fff; border-color:#fff; color:var(--green); }
.ph-photo .scroll-hint{ color:#fff; }
.ph-photo .scroll-hint::after{ background:linear-gradient(#F2A66B,transparent); }

/* Sostenibilità: riquadro "Fondazioni e filantropia" con la foto sotto il testo */
.gcard.gphoto{ overflow:hidden; isolation:isolate; border:0; background:#3a2a18; color:#fff; }
.gp-bg{ position:absolute; inset:0; z-index:-1; }
.gp-bg img{ position:absolute; top:0; left:0; width:100%; height:100%; max-width:none; object-fit:cover; }
.gp-filantropia .gp-bg img{ width:162%; object-position:50% 30%; filter:blur(1px) brightness(1.2); }
.gp-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(12,10,8,.68) 0%, rgba(12,10,8,.42) 50%, rgba(12,10,8,.08) 100%); }
.gcard.gphoto h3{ color:#fff; }
.gcard.gphoto li{ color:rgba(255,255,255,.92); }
.gcard.gphoto li::before{ background:#F2A66B; }
.gcard.gphoto .ic{ background:rgba(242,166,107,.18); color:#F2A66B; }
.gcard.gphoto h3, .gcard.gphoto li{ text-shadow:0 1px 8px rgba(0,0,0,.45); }
.gp-partner .gp-bg img{ object-position:100% 30%; filter:blur(.6px) brightness(1.08); }
.gp-partner .gp-bg::after{ background:linear-gradient(90deg, rgba(0,38,24,.74) 0%, rgba(0,38,24,.52) 45%, rgba(0,38,24,.04) 100%); }
@media(max-width:700px){ .gp-partner .gp-bg img{ object-position:66% 20%; } }
.gp-welfare .gp-bg img{ width:130%; object-position:50% 14%; filter:blur(.6px) brightness(1.1); }
.gp-welfare .gp-bg::after{ background:linear-gradient(90deg, rgba(0,38,24,.78) 0%, rgba(0,38,24,.55) 45%, rgba(0,38,24,.05) 100%); }
@media(max-width:700px){ .gp-welfare .gp-bg img{ width:100%; object-position:62% 14%; } }
.gp-istituzioni .gp-bg img{ object-position:50% 55%; filter:blur(.8px); }
.gp-istituzioni .gp-bg::after{ background:linear-gradient(90deg, rgba(0,38,24,.84) 0%, rgba(0,38,24,.62) 50%, rgba(0,38,24,.2) 100%); }

/* Sostenibilità, "Un valore per tutti": riquadri con foto più grandi e quasi quadrati, testo in basso */
.gcards.c2:has(.gphoto){ gap:clamp(20px,2.4vw,32px); }
.gcard.gphoto{ aspect-ratio:5 / 4; justify-content:flex-end; padding:clamp(28px,3.2vw,44px); border-radius:24px; }
.gcard.gphoto h3{ font-size:clamp(22px,2.1vw,27px); margin-bottom:14px; }
.gcard.gphoto li{ font-size:clamp(15.5px,1.3vw,17px); }
.gcard.gphoto .ic{ position:absolute; top:clamp(24px,2.8vw,36px); left:clamp(28px,3.2vw,44px); margin:0; }
.gcard.gphoto .gp-bg::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 55%); }
@media(max-width:700px){ .gcard.gphoto{ aspect-ratio:auto; min-height:380px; } }
.gp-istituzioni .gp-bg img{ top:-38%; height:140%; }

/* Home, "La nostra visione": testo più grande */
.t-home .vision-sec .section-head{ max-width:1000px; }
.t-home .vision-sec .section-head h2{ font-size:clamp(34px,4.4vw,58px); margin-bottom:22px; }
.t-home .vision-sec .section-head p{ font-size:clamp(20px,2.1vw,28px); line-height:1.5; color:var(--ink); }
.t-home .vision-sec .section-head h2{ color:var(--terra); }

/* Chi siamo: foto del comitato tutte alla stessa altezza */
.committee .member{ justify-content:flex-start; padding-top:30px; }
@media(max-width:620px){ .committee .member{ padding-top:24px; } }

/* Chi siamo: comitato scientifico su due righe da tre */
.committee.c5s > a.member{ flex-basis:calc((100% - 40px) / 3); }
@media(max-width:900px){ .committee.c5s > a.member{ flex-basis:calc((100% - 20px) / 2); } }
@media(max-width:520px){ .committee.c5s > a.member{ flex-basis:100%; } }

/* Nessuno spostamento orizzontale sui telefoni (iPhone compresi) */
html{ overflow-x:hidden; }
main, .footer{ overflow-x:hidden; overflow-x:clip; }
@media(max-width:1180px){
  /* il menu chiuso non sporge più fuori dallo schermo: è nascosto ritagliandolo, non spostandolo a destra */
  .menu-wrap{ transform:none; clip-path:inset(0 0 0 100%); visibility:hidden; transition:clip-path .28s ease, visibility 0s linear .28s; }
  .nav.open .menu-wrap{ transform:none; clip-path:inset(0 0 0 -80px); visibility:visible; transition:clip-path .28s ease, visibility 0s; }
}

/* La soluzione: Strada 1 e Strada 2 con foto, testo sul fondo bianco, alternati */
.sroads{ display:flex; flex-direction:column; gap:clamp(48px,6vw,88px); }
.sroad{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,5vw,72px); align-items:center; }
.sroad.s2 .simg{ order:2; }
.simg{ aspect-ratio:4 / 3; border-radius:24px; overflow:hidden; box-shadow:0 30px 60px -34px rgba(0,40,25,.5); }
.simg img{ width:100%; height:100%; object-fit:cover; display:block; }
.sroad.s1 .simg img{ object-position:45% 40%; }
.sroad.s2 .simg img{ object-position:60% 40%; }
.stext .k{ display:flex; align-items:center; gap:12px; font-size:14px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:16px; }
.stext .k::before{ content:""; width:32px; height:2px; background:currentColor; }
.sroad.go .stext .k{ color:var(--terra); }
.stext h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:clamp(26px,2.7vw,36px); line-height:1.18; letter-spacing:-.01em; margin-bottom:18px; color:var(--ink); }
.sroad.go .stext h3{ color:var(--green); }
.stext p{ font-size:clamp(17px,1.5vw,19px); line-height:1.65; color:#4A463F; }
.stext p + p{ margin-top:14px; font-weight:700; color:var(--ink); }
.sroad.go .stext p + p{ color:var(--terra); }
.sroads + div > .callout{ max-width:none; }
.callout.light.big{ max-width:none; background:var(--green); border-color:var(--green); color:#fff; font-size:clamp(20px,2vw,26px); padding:clamp(28px,3.4vw,44px) clamp(24px,3vw,48px); }
.callout.light.big b{ color:#F2A66B; }
@media(max-width:820px){ .sroad{ grid-template-columns:1fr; gap:22px; } .sroad.s2 .simg{ order:0; } }
.sroads + div{ margin-top:clamp(40px,5vw,64px)!important; }

/* L'impatto atteso, "L'evidenza": tre riquadri quadrati con testo più grande */
.gcards.sqe{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.2vw,28px); }
.gcards.sqe .gcard{ aspect-ratio:1 / 1; box-sizing:border-box; justify-content:center; padding:clamp(24px,3vw,40px); }
.gcards.sqe .gcard .num{ font-size:15px; margin-bottom:14px; }
.gcards.sqe .gcard h3{ font-size:clamp(21px,2.1vw,27px); line-height:1.22; margin-bottom:14px; }
.gcards.sqe .gcard p{ font-size:clamp(16px,1.45vw,19px); line-height:1.55; }
.gcards.sqe .gcard.dark p{ color:#fff; }
@media(max-width:900px){ .gcards.sqe{ grid-template-columns:1fr; } .gcards.sqe .gcard{ aspect-ratio:auto; } }
.gcards.sqe .gcard{ justify-content:flex-start; padding:clamp(22px,2.6vw,34px); } .gcards.sqe .gcard p{ font-size:clamp(15.5px,1.3vw,18px); } .gcards.sqe .gcard h3{ font-size:clamp(20px,1.9vw,25px); }

/* Sostenibilità, "Un valore per tutti": testo più grande e più leggibile sulle foto */
.gcard.gphoto h3{ font-size:clamp(25px,2.5vw,33px); margin-bottom:18px; text-shadow:0 2px 14px rgba(0,0,0,.55); }
.gcard.gphoto ul{ gap:10px; }
.gcard.gphoto li{ font-size:clamp(17px,1.55vw,20px); line-height:1.45; font-weight:500; color:#fff; text-shadow:0 1px 10px rgba(0,0,0,.6); }
.gcard.gphoto li::before{ width:9px; height:9px; margin-top:.5em; }
.gcard.gphoto .gp-bg::before{ background:linear-gradient(0deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.25) 50%, rgba(0,0,0,0) 72%); }
.gcard.gphoto{ padding-top:clamp(88px,8vw,104px); }
.gcard.gphoto{ aspect-ratio:auto; min-height:clamp(340px,31vw,430px); padding-top:clamp(92px,8.5vw,112px); }
.ph-bg:has(img[src*="/impatto/"])::after{ background:radial-gradient(ellipse at 50% 45%, rgba(0,38,24,.74) 0%, rgba(0,38,24,.6) 50%, rgba(0,38,24,.42) 100%); }

/* L'app GRACE: grande telefono in apertura, a sinistra, girato verso destra */
.page-head.app-hero{ overflow:hidden; overflow:clip; }
.page-head.app-hero .container{ position:relative; z-index:1; }
.hph{ position:absolute; z-index:2; left:clamp(12px,6vw,110px); top:50%; width:clamp(230px,23vw,340px); perspective:1700px; transform:translateY(-50%); pointer-events:none; }
.hph-body{ position:relative; transform-style:preserve-3d; transform:rotateY(30deg) rotateX(5deg) rotateZ(-3deg); }
.hph-body img{ position:relative; display:block; width:100%; height:auto; transform:translateZ(1px); filter:drop-shadow(0 2px 2px rgba(0,0,0,.15)); }
.hph-body i{ position:absolute; inset:0; border-radius:14.2% / 6.7%; background:#2b2f2d; transform:translateZ(calc(var(--k) * -2px)); }
.hph-body i:last-of-type{ background:#151816; }
.hph-shadow{ position:absolute; left:18%; right:-30%; bottom:-6%; height:18%; border-radius:50%; background:radial-gradient(closest-side, rgba(0,30,18,.35), rgba(0,30,18,0)); filter:blur(14px); z-index:-1; }
@media (prefers-reduced-motion: no-preference){
  .hph{ animation:hphIn 1.3s cubic-bezier(.16,.84,.3,1) both .15s; }
  @keyframes hphIn{ from{ opacity:0; transform:translate(-40%,-50%) rotate(-4deg); } to{ opacity:1; transform:translateY(-50%); } }
}
@media(max-width:820px){
  .page-head.app-hero{ flex-direction:column; justify-content:center; }
  .hph{ position:relative; left:auto; top:auto; transform:none; width:min(52vw,230px); margin:0 auto 26px; order:-1; }
  .page-head.app-hero{ display:flex; }
  @media (prefers-reduced-motion: no-preference){ @keyframes hphIn{ from{ opacity:0; transform:translateX(-30%); } to{ opacity:1; transform:none; } } }
}
.hph{ left:clamp(10px,3.6vw,70px); }

/* ===== App, punto 2: telefono frontale con la ghiera dei punti e il cursore dei passi ===== */
.pgame{ position:relative; display:flex; flex-direction:column; align-items:center; gap:26px; padding:26px 0 6px; }
.pgame .af-backdrop{ left:8%; right:8%; top:2%; bottom:30%; }
.pg-phone{ position:relative; z-index:1; width:clamp(270px,25vw,320px); aspect-ratio:9 / 19.2; border-radius:46px; background:#151816; padding:11px; box-shadow:0 0 0 2px #2b2f2d inset, 0 40px 70px -34px rgba(0,30,18,.6), 0 18px 30px -18px rgba(0,0,0,.45); }
.pg-island{ position:absolute; left:50%; top:20px; width:30%; height:24px; transform:translateX(-50%); border-radius:20px; background:#000; z-index:3; }
.pg-screen{ position:relative; height:100%; border-radius:36px; background:#F5EFE6; overflow:hidden; padding:14px 14px 12px; display:flex; flex-direction:column; gap:10px; font-family:'Plus Jakarta Sans',sans-serif; color:#1A1A1A; }
.pg-status{ display:flex; justify-content:space-between; align-items:center; font-size:12.5px; font-weight:700; padding:0 12px; height:22px; }
.pg-sig{ display:inline-flex; gap:2px; align-items:flex-end; } .pg-sig i{ width:3px; background:#1A1A1A; border-radius:1px; } .pg-sig i:nth-child(1){height:5px} .pg-sig i:nth-child(2){height:8px} .pg-sig i:nth-child(3){height:11px}
.pg-hello{ display:flex; justify-content:space-between; align-items:flex-end; padding:4px 4px 0; }
.pg-hello small{ display:block; font-size:11px; color:#5C574F; } .pg-hello b{ font-size:19px; font-weight:700; letter-spacing:-.01em; }
.pg-lvl{ font-size:10.5px; font-weight:700; padding:5px 9px; border-radius:20px; background:#fff; color:var(--terra); box-shadow:0 2px 8px -4px rgba(0,0,0,.25); white-space:nowrap; transition:background .3s,color .3s; }
.pgame.pg-top .pg-lvl{ background:var(--green); color:#fff; }
.pg-card{ background:#fff; border-radius:18px; padding:10px 10px 10px; box-shadow:0 6px 16px -10px rgba(0,0,0,.25); }
.pg-cardh{ display:flex; justify-content:space-between; font-size:9.5px; font-weight:700; letter-spacing:.06em; color:#5C574F; }
.pg-cardh .pg-steps{ letter-spacing:0; color:var(--terra); font-variant-numeric:tabular-nums; }
.pg-gwrap{ position:relative; width:84%; margin:2px auto 0; }
.pg-gauge{ display:block; width:100%; height:auto; overflow:visible; }
.pg-bg{ fill:none; stroke:#EDE5D9; stroke-width:13; stroke-linecap:round; }
.pg-arc{ fill:none; stroke:var(--terra); stroke-width:13; stroke-linecap:round; transition:stroke-dashoffset .25s ease-out, stroke .3s; }
.pgame.pg-top .pg-arc{ stroke:var(--green); }
.pg-dot{ fill:#fff; stroke:var(--terra); stroke-width:4; transition:cx .25s ease-out, cy .25s ease-out; }
.pg-mark circle{ fill:#fff; stroke:#D8CFC2; stroke-width:2; transition:fill .3s, stroke .3s; }
.pg-mark.on circle{ fill:var(--green); stroke:var(--green); }
.pg-mark text{ font-size:10px; font-weight:700; fill:#8A8378; font-family:'Plus Jakarta Sans',sans-serif; transition:fill .3s; }
.pg-mark.on text{ fill:var(--green); }
.pg-center{ position:absolute; left:0; right:0; top:34%; text-align:center; }
.pg-pts{ display:block; font-size:clamp(40px,3.8vw,48px); font-weight:700; line-height:1; color:var(--green); letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.pg-center small{ display:block; margin-top:4px; font-size:10px; color:#5C574F; }
.pg-next{ margin:2px auto 0; width:max-content; max-width:100%; font-size:10.5px; font-weight:700; padding:5px 10px; border-radius:20px; background:#F5EFE6; color:var(--green); }
.pg-rw{ background:#fff; border-radius:18px; padding:9px 10px 6px; box-shadow:0 6px 16px -10px rgba(0,0,0,.25); }
.pg-rwh{ display:flex; justify-content:space-between; align-items:baseline; font-size:12.5px; font-weight:700; margin-bottom:4px; }
.pg-rwh small{ font-size:9px; font-weight:600; color:#8A8378; }
.pg-rw ul{ list-style:none; margin:0; padding:0; }
.pg-rw li{ display:flex; align-items:center; gap:9px; padding:5px 0; border-top:1px solid #F0EAE0; color:#9C958A; transition:color .3s; }
.pg-rw li:first-child{ border-top:0; }
.pg-ic{ position:relative; flex:none; width:28px; height:28px; border-radius:9px; background:#F0EAE0; display:grid; place-items:center; transition:background .3s; }
.pg-ic svg{ position:absolute; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:opacity .25s, transform .3s; }
.pg-ic .i-gift{ opacity:0; transform:scale(.5); color:#fff; }
.pg-rw li.on{ color:#1A1A1A; }
.pg-rw li.on .pg-ic{ background:var(--terra); }
.pg-rw li.on .i-lock{ opacity:0; transform:scale(.5); }
.pg-rw li.on .i-gift{ opacity:1; transform:none; }
.pg-tx b{ display:block; font-size:11.5px; font-weight:700; line-height:1.25; }
.pg-tx small{ display:block; font-size:9.5px; color:#8A8378; }
.pg-rw li.on .pg-tx small{ color:var(--terra); }
.pg-rw li.pop .pg-ic{ animation:pgpop .6s cubic-bezier(.2,.9,.3,1.4); }
@keyframes pgpop{ 0%{ transform:scale(.6); } 60%{ transform:scale(1.25); } 100%{ transform:scale(1); } }
.pg-toast{ position:absolute; left:12px; right:12px; bottom:14px; padding:10px 12px; border-radius:14px; background:var(--green); color:#fff; font-size:11.5px; font-weight:700; text-align:center; box-shadow:0 10px 24px -10px rgba(0,0,0,.5); opacity:0; transform:translateY(16px); transition:opacity .3s, transform .3s; pointer-events:none; }
.pg-toast.show{ opacity:1; transform:none; }
/* cursore dei passi, come la barra del tempo dei grafici */
.pg-ctl{ position:relative; z-index:1; width:min(100%,420px); padding:6px 8px 4px; cursor:ew-resize; touch-action:none; user-select:none; -webkit-user-select:none; }
.pg-lab{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#5C574F; }
.pg-stepsbig{ font-size:30px; font-weight:300; letter-spacing:-.02em; color:var(--terra); text-transform:none; font-variant-numeric:tabular-nums; }
.pg-track{ position:relative; height:8px; border-radius:4px; background:#E6DDCF; outline:none; }
.pg-track:focus-visible{ box-shadow:0 0 0 3px rgba(217,111,32,.35); }
.pg-fill{ position:absolute; left:0; top:0; bottom:0; width:0; border-radius:4px; background:linear-gradient(90deg,var(--teal),var(--terra)); }
.pg-knob{ position:absolute; top:50%; width:24px; height:24px; margin:-12px 0 0 -12px; border-radius:50%; background:#fff; border:4px solid var(--terra); box-shadow:0 3px 10px rgba(0,0,0,.2); }
.pg-tick{ position:absolute; top:-4px; width:2px; height:16px; margin-left:-1px; background:#CFC5B6; border-radius:1px; }
.pg-tick em{ position:absolute; top:20px; left:50%; transform:translateX(-50%); font-style:normal; font-size:11px; font-weight:700; color:#8A8378; white-space:nowrap; }
.pg-hint{ margin-top:34px; font-size:13px; color:#5C574F; text-align:center; }
.pg-note{ margin-top:4px; font-size:11.5px; color:#8A8378; text-align:center; }
@media(max-width:900px){ .pg-phone{ width:min(76vw,300px); } }
.pg-gwrap{ width:100%; margin-top:0; } .pg-rw li{ padding:7px 0; } .pg-center{ top:36%; } .pg-pts{ font-size:clamp(44px,4.2vw,54px); }
.pg-phone{ aspect-ratio:auto; } .pg-screen{ height:auto; padding-bottom:30px; }

/* cursore delle azioni virtuose e ripartizione per attività */
.pg-lab b small{ font-size:13px; font-weight:600; color:#8A8378; letter-spacing:0; }
.pg-cats{ list-style:none; margin:18px 0 0; padding:14px 16px; background:#fff; border-radius:16px; box-shadow:0 6px 16px -10px rgba(0,0,0,.25); display:grid; gap:8px; }
.pg-cats li{ display:grid; grid-template-columns:minmax(0,1.3fr) 1fr 52px; align-items:center; gap:10px; font-size:13px; }
.pc-n{ color:#3d3a35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pc-bar{ height:6px; border-radius:3px; background:#EDE5D9; overflow:hidden; }
.pc-bar i{ display:block; height:100%; width:0; border-radius:3px; background:var(--terra); transition:width .25s ease-out; }
.pg-cats li.full .pc-bar i{ background:var(--green); }
.pc-v{ text-align:right; font-weight:700; font-variant-numeric:tabular-nums; color:#1A1A1A; }
.pg-hint{ margin-top:34px; }
.pg-note{ margin-top:10px; line-height:1.5; }
.pgame .af-backdrop{ top:24px; bottom:auto; height:clamp(500px,44vw,610px); } @media(max-width:900px){ .pgame .af-backdrop{ height:560px; left:4%; right:4%; } }
.pg-note b{ color:var(--terra); font-weight:700; }

/* Come funziona: i quattro elementi del modello in riquadri quadrati, il ciclo del valore in cerchi */
.gcards.c4.sq4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.gcards.sq4 .gcard{ aspect-ratio:1 / 1; box-sizing:border-box; justify-content:flex-start; padding:clamp(20px,2vw,28px); }
.gcards.sq4 .gcard h3{ font-size:clamp(18px,1.6vw,21px); }
.gcards.sq4 .gcard p{ font-size:clamp(14.5px,1.15vw,16px); line-height:1.5; }
@media(max-width:1100px){ .gcards.c4.sq4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px){ .gcards.c4.sq4{ grid-template-columns:1fr; } .gcards.sq4 .gcard{ aspect-ratio:auto; } }
.loop{ gap:14px; margin-top:44px; }
.loop span{ width:clamp(118px,11vw,150px); height:clamp(118px,11vw,150px); border-radius:50%!important; display:flex; align-items:center; justify-content:center; text-align:center; padding:14px; box-sizing:border-box; font-size:clamp(14px,1.2vw,16px); line-height:1.3; background:var(--card); box-shadow:var(--shadow); }
.loop span, .loop span:nth-of-type(4){ background:var(--green); border-color:var(--green); color:#F2E9DD; }
.loop i{ font-size:26px; }
@media(max-width:620px){ .loop{ gap:8px; } .loop span{ width:128px; height:128px; } .loop i{ font-size:20px; } }
/* quattro elementi: 2 x 2 riquadri quadrati grandi, testo più grande e centrato in verticale */
.gcards.c4.sq4{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(18px,2.2vw,28px); }
.gcards.sq4 .gcard{ justify-content:center; padding:clamp(28px,4vw,56px); }
.gcards.sq4 .gcard .ic{ width:58px; height:58px; margin-bottom:18px; } .gcards.sq4 .gcard .ic svg{ width:28px; height:28px; }
.gcards.sq4 .gcard .num{ font-size:15px; margin-bottom:10px; }
.gcards.sq4 .gcard h3{ font-size:clamp(22px,2.4vw,32px); line-height:1.2; margin-bottom:14px; }
.gcards.sq4 .gcard p{ font-size:clamp(16px,1.6vw,20px); line-height:1.55; }
@media(max-width:560px){ .gcards.c4.sq4{ grid-template-columns:1fr; } }
@media(max-width:620px){ .loop{ flex-direction:column; gap:6px; } .loop span{ width:120px; height:120px; } .loop i{ transform:rotate(90deg); } }
.gcards.sq4 .gcard h3{ font-size:clamp(22px,2.6vw,34px); } .gcards.sq4 .gcard p{ font-size:clamp(16px,1.7vw,21px); }

/* Gli incentivi, "Cosa vale punti": foto quadrate alternate al testo */
.sroads.incs{ margin-top:clamp(24px,3vw,40px); }
.sroads.incs .simg{ aspect-ratio:1 / 1; }
.sroads.incs .sroad{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.inc-vaccinazioni .simg img{ object-position:60% 50%; }
.simg.sic{ display:grid; place-items:center; background:var(--card); box-shadow:none; color:var(--green); }
.simg.sic svg{ width:28%; height:auto; stroke-width:1.2; }
.sroads.incs .stext .k{ color:var(--terra); }
.inc-attivita .simg img{ object-position:68% 40%; }
.inc-attivita .simg img{ object-position:60% 35%; }
.inc-screening .simg img{ object-position:45% 50%; } .inc-donazioni .simg img{ object-position:58% 40%; }
.inc-screening .simg img{ object-position:82% 50%; } .sroads.incs .stext h3{ font-size:clamp(28px,3vw,40px); } .sroads.incs .stext p{ font-size:clamp(18px,1.7vw,22px); }
.inc-screening .simg img{ object-position:100% 50%; }
.sroad.inc-screening .simg img{ object-position:100% 50%; }
.sroad.inc-vaccinazioni .simg img{ object-position:60% 50%; }
.sroad.inc-attivita .simg img{ object-position:60% 35%; }
.sroad.inc-donazioni .simg img{ object-position:58% 40%; }
@media(max-width:820px){ .sroads.incs .sroad{ grid-template-columns:1fr; } }
.sroad.inc-screening .simg img{ object-position:50% 50%; }
.ph-bg img[src*="/come/"]{ object-position:70% 40%; }
.ph-bg img[src*="/prevenzione/"]{ object-position:58% 30%; }
/* Home: logo un po' più grande e più in alto */
.t-home .hero{ padding:8px 0 150px; }
.t-home .hero .medallion{ max-width:290px; margin-bottom:10px; }
@media(max-width:720px){ .t-home .hero{ padding:8px 0 120px; } .t-home .hero .medallion{ max-width:210px; } }

/* News: apertura con il megafono */
.page-head.ph-news{ overflow:hidden; isolation:isolate; background:#FDD80A; }
.phn-bg{ position:absolute; inset:0; z-index:-1; }
.phn-bg img{ width:100%; height:100%; object-fit:cover; object-position:0% 50%; }
.ph-news .container{ padding-left:clamp(28px,40vw,560px); text-align:left; }
.ph-news .eyebrow{ color:var(--ink); }
.ph-news h1{ margin-left:0; color:var(--ink); }
.ph-news h1 em{ color:var(--green); }
.ph-news .intro{ margin-left:0; color:#1A1A1A; }
.ph-news .scroll-hint{ color:var(--ink); }
@media(max-width:820px){
  .phn-bg img{ object-position:8% 50%; height:46%; position:absolute; top:0; }
  .page-head.ph-news{ align-items:flex-end; padding-bottom:110px; }
  .ph-news .container{ padding-left:28px; text-align:center; }
  .ph-news h1, .ph-news .intro{ margin-left:auto; margin-right:auto; }
}
@media(max-width:820px){
  .phn-bg img{ height:44%; object-position:6% 40%; -webkit-mask-image:linear-gradient(#000 70%, transparent); mask-image:linear-gradient(#000 70%, transparent); }
  .page-head.ph-news{ padding-bottom:140px; }
}
.page-head.ph-news{ background:#F9B705; }
.imp-row .t .t-sub{ color:var(--muted); }
.imp-list.ctx .t{ max-width:30ch; }
@media(min-width:901px){ .imp-list.ctx .t{ max-width:none; } .imp-row .t .t-one{ white-space:nowrap; } }

/* L'impatto atteso: il dato della Lombardia in grande */
.ibig{ position:relative; overflow:hidden; border-radius:28px; background:linear-gradient(150deg,#0b5a3a,var(--green)); color:#fff; padding:clamp(36px,5vw,72px) clamp(24px,4vw,64px); text-align:center; box-shadow:0 30px 60px -34px rgba(0,40,25,.5); }
.ibig::before{ content:""; position:absolute; right:-120px; top:-120px; width:360px; height:360px; border-radius:50%; background:radial-gradient(closest-side, rgba(217,111,32,.35), rgba(217,111,32,0)); }
.ib-eye{ position:relative; font-size:13px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#F2A66B; margin-bottom:14px; }
.ib-h{ position:relative; font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(26px,3vw,40px); line-height:1.15; color:#fff; margin-bottom:clamp(32px,4vw,52px); }
.ib-h em{ font-style:normal; font-weight:700; color:#F2A66B; }
.ib-row{ position:relative; display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:clamp(10px,2vw,28px); }
.ib-n{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(48px,6.4vw,92px); line-height:1; letter-spacing:-.035em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ib-n small{ font-size:.42em; font-weight:600; letter-spacing:0; }
.ib-b .ib-n{ font-weight:700; color:#F2A66B; }
.ib-l{ margin:14px auto 0; max-width:22ch; font-size:clamp(15px,1.4vw,18px); line-height:1.45; color:rgba(255,255,255,.88); }
.ib-arrow{ color:#F2A66B; width:clamp(34px,4vw,56px); }
.ib-arrow svg{ display:block; width:100%; height:auto; }
@media(max-width:820px){ .ib-row{ grid-template-columns:1fr; gap:14px; } .ib-arrow{ margin:0 auto; transform:rotate(90deg); width:36px; } }

/* Riquadro Lombardia: confronto con oggi (barre adesione + guadagni) */
.ib-cmp{ position:relative; max-width:860px; margin:0 auto; text-align:left; }
.ib-ct{ font-size:clamp(15px,1.4vw,18px); font-weight:600; color:#fff; margin-bottom:16px; }
.ib-bar{ display:grid; grid-template-columns:120px 1fr 80px; align-items:center; gap:16px; margin-bottom:14px; }
.ib-bl{ font-size:clamp(14px,1.3vw,17px); color:rgba(255,255,255,.82); }
.ib-new .ib-bl{ color:#F2A66B; font-weight:700; }
.ib-tr{ display:flex; gap:2px; height:clamp(26px,3vw,38px); border-radius:8px; background:rgba(255,255,255,.1); overflow:hidden; }
.ib-tr i{ display:block; height:100%; width:calc(var(--w)*1%); transition:width 1.3s cubic-bezier(.2,.7,.2,1); }
.ib-f0{ background:rgba(255,255,255,.55); border-radius:8px 0 0 8px; }
.ib-bar:not(.ib-new) .ib-f0{ border-radius:8px; }
.ib-f1{ background:#D96F20; border-radius:0 8px 8px 0; transition-delay:1.1s!important; }
.ib-bv{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(20px,2.2vw,30px); font-weight:300; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ib-new .ib-bv{ font-weight:700; color:#F2A66B; }
.ib-anim .ib-tr i{ width:0; }
.ib-anim.on .ib-tr i{ width:calc(var(--w)*1%); }
.ib-gh{ position:relative; margin:clamp(36px,4.5vw,56px) 0 clamp(18px,2.4vw,28px); font-size:13px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.75); }
.ib-gains{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,3vw,40px); max-width:860px; margin:0 auto; }
.ib-gains .ib-item{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:22px; padding:clamp(24px,3vw,40px) 16px; }
.ib-gains .ib-c .ib-n{ color:#fff; }
.ib-src{ position:relative; margin-top:clamp(22px,3vw,34px); font-size:12.5px; color:rgba(255,255,255,.6); }
@media(max-width:620px){ .ib-gains{ grid-template-columns:1fr; } .ib-bar{ grid-template-columns:1fr auto; gap:8px 12px; } .ib-bl{ grid-column:1/-1; } .ib-tr{ grid-column:1; } }

/* App, apertura su iPad (dispositivi touch da 821px in su): telefono DI FIANCO al testo, senza coprirlo.
   Il testo si sposta a destra di quanto occupa il telefono. Computer e telefoni restano come prima. (28 ottobre 2026) */
@media (min-width:821px) and (hover:none) and (pointer:coarse){
  .page-head.app-hero{ --hpw:clamp(200px,24vw,330px); --hpl:clamp(14px,2.4vw,44px); }
  .hph{ left:var(--hpl); width:var(--hpw); }
  .page-head.app-hero .container{ padding-left:calc(var(--hpl) + var(--hpw) + clamp(16px,2.4vw,40px)); padding-right:clamp(16px,2.4vw,40px); max-width:none; }
}

/* ===== Pillole di ricerca (Comitato scientifico) ===== */
.pl-jump{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:0 auto clamp(40px,5vw,64px); }
.pl-jump a{ display:inline-flex; align-items:center; gap:10px; padding:6px 16px 6px 6px; border-radius:999px; background:var(--cream); color:var(--green); font-size:15px; font-weight:600; text-decoration:none; transition:background .2s, color .2s; }
.pl-jump a:hover{ background:var(--green); color:#fff; }
.pl-jump img{ width:36px; height:36px; border-radius:50%; object-fit:cover; }
.pl-m{ scroll-margin-top:110px; padding-top:clamp(28px,3.4vw,44px); margin-top:clamp(28px,3.4vw,44px); border-top:1px solid var(--line); }
.pl-m:first-of-type{ border-top:0; margin-top:0; padding-top:0; }
.pl-mh{ display:flex; align-items:center; gap:20px; margin-bottom:clamp(22px,2.6vw,32px); }
.pl-mh img{ width:88px; height:88px; border-radius:50%; object-fit:cover; flex:none; box-shadow:0 0 0 4px #fff, 0 0 0 5px rgba(0,63,39,.15); }
.pl-mh h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(26px,2.6vw,36px); line-height:1.1; margin:0 0 6px; color:var(--ink); }
.pl-mh p{ margin:0; font-size:15px; color:var(--muted); }
.pl-mh p a{ color:var(--terra); font-weight:600; text-decoration:none; white-space:nowrap; }
.pl-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,24px); }
.pill{ position:relative; display:flex; flex-direction:column; background:var(--green); color:#fff; border-radius:24px; padding:clamp(24px,2.4vw,32px); box-shadow:var(--shadow); }
.pill:nth-child(3n+2){ background:#0f5236; }
.pl-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; }
.pl-tag{ display:inline-flex; align-items:center; gap:10px; font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#F2A66B; }
.pl-tag::before{ content:""; width:22px; height:2px; background:#D96F20; }
.pl-bs{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.pl-b{ font-size:11.5px; font-weight:600; padding:3px 10px; border-radius:999px; background:rgba(255,255,255,.12); color:rgba(255,255,255,.9); white-space:nowrap; }
.pl-b.oa{ background:#D96F20; color:#fff; }
.pill h3{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(20px,1.7vw,23px); font-weight:700; line-height:1.25; margin:0 0 12px; color:#fff; }
.pill p{ font-size:16px; line-height:1.6; color:rgba(255,255,255,.88); margin:0 0 18px; flex:1; }
.pl-ref{ font-size:13px; line-height:1.45; color:rgba(255,255,255,.62); padding-top:14px; border-top:1px solid rgba(255,255,255,.14); margin-bottom:16px; }
.pl-ref i{ font-style:italic; }
.pl-go{ align-self:flex-start; display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:999px; background:#fff; color:var(--green); font-size:14.5px; font-weight:700; text-decoration:none; transition:background .2s, color .2s; }
.pl-go svg{ width:16px; height:16px; }
.pl-go:hover{ background:#D96F20; color:#fff; }
.pl-note{ margin:clamp(40px,5vw,60px) auto 0; max-width:760px; text-align:center; font-size:14px; line-height:1.6; color:var(--muted); }
.pl-cta{ margin-top:clamp(36px,4vw,52px); display:flex; align-items:center; justify-content:space-between; gap:20px 32px; flex-wrap:wrap; background:var(--green); color:#fff; border-radius:24px; padding:clamp(24px,3vw,36px) clamp(24px,3.4vw,44px); }
.pl-cta p{ margin:0; font-size:clamp(17px,1.6vw,21px); line-height:1.45; color:rgba(255,255,255,.9); }
.pl-cta p b{ color:#F2A66B; font-weight:700; }
.pl-cta .btn-pill{ background:#D96F20; border-color:#D96F20; color:#fff; }
@media(max-width:1000px){ .pl-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px){ .pl-grid{ grid-template-columns:1fr; } .pl-mh{ gap:14px; } .pl-mh img{ width:68px; height:68px; } }
.pl-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.pl-foot .pl-go{ align-self:auto; }
.pl-top{ justify-content:flex-start; }
/* Pillole: titoli di sezione e autori internazionali (iniziali al posto della foto) */
.pl-sec{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(30px,3.4vw,46px); line-height:1.1; text-align:center; margin:0 0 clamp(28px,3.4vw,44px); color:var(--ink); }
.pl-sec em{ font-style:normal; font-weight:700; color:var(--green); }
.pl-secp{ text-align:center; max-width:640px; margin:calc(-1 * clamp(16px,2.4vw,30px)) auto clamp(30px,3.6vw,48px); font-size:17px; line-height:1.55; color:var(--muted); }
.pl-ext .pl-m:first-of-type{ border-top:0; margin-top:0; padding-top:0; }
.pl-av{ flex:none; width:88px; height:88px; border-radius:50%; display:grid; place-items:center; background:var(--cream); color:var(--terra); font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:28px; letter-spacing:.02em; box-shadow:0 0 0 4px #fff, 0 0 0 5px rgba(0,63,39,.15); }
.pl-ext .pill{ background:#fff; color:var(--ink); border:1px solid var(--line); box-shadow:0 16px 34px -24px rgba(0,63,39,.3); }
.pl-ext .pill:nth-child(3n+2){ background:#fff; }
.pl-ext .pill h3{ color:var(--green); }
.pl-ext .pill p{ color:#3d3a35; }
.pl-ext .pl-tag{ color:var(--terra); }
.pl-ext .pl-ref{ color:var(--muted); border-top-color:var(--line); }
.pl-ext .pl-go{ background:var(--green); color:#fff; }
.pl-ext .pl-go:hover{ background:var(--terra); }
.pl-ext .pl-b{ background:var(--cream); color:var(--green); }
.pl-ext .pl-b.oa{ background:var(--terra); color:#fff; }
.pl-jump a.pl-jx{ padding:8px 18px 8px 10px; background:var(--green); color:#fff; }
.pl-jump a.pl-jx:hover{ background:var(--terra); }
.pl-ini{ display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:rgba(255,255,255,.16); }
.pl-ini svg{ width:14px; height:14px; transform:rotate(90deg); }
@media(max-width:640px){ .pl-av{ width:68px; height:68px; font-size:22px; } }

/* ===== La prevenzione: collegamenti come sfere verdi con simboli arancioni (28 ottobre 2026) ===== */
.tspheres{ display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start; gap:clamp(28px,3vw,44px) clamp(18px,2.6vw,40px); max-width:1100px; margin:0 auto; }
.tspheres .tgroup{ display:flex; flex-direction:column; align-items:center; }
.tspheres .tgroup + .tgroup{ margin-top:0; }
.tspheres .tgroup > h2{ margin-bottom:22px; padding-bottom:10px; border-bottom:2px solid rgba(217,111,32,.35); min-width:60%; }
.tspheres .topics{ display:flex; gap:clamp(14px,1.8vw,24px); max-width:none; margin:0; }
.tspheres .topic{ display:flex; flex-direction:column; align-items:center; text-align:center; width:clamp(150px,13vw,172px); background:none; border:0; border-radius:0; padding:0; gap:0; box-shadow:none; }
.tspheres .topic:hover{ box-shadow:none; border:0; }
.tspheres .topic .ic{ position:relative; width:clamp(118px,10.6vw,142px); height:clamp(118px,10.6vw,142px); border-radius:50%; margin-bottom:18px; color:#D96F20;
  background:radial-gradient(circle at 34% 28%, #2a8a5e 0%, #0d6140 28%, #004a2e 58%, #002a1a 100%);
  box-shadow:inset -10px -16px 26px rgba(0,0,0,.38), inset 8px 10px 18px rgba(255,255,255,.10), 0 26px 36px -20px rgba(0,40,25,.65);
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s; }
.tspheres .topic .ic::after{ content:""; position:absolute; left:22%; top:12%; width:34%; height:22%; border-radius:50%; background:radial-gradient(closest-side, rgba(255,255,255,.28), rgba(255,255,255,0)); transform:rotate(-24deg); pointer-events:none; }
.tspheres .topic .ic svg{ width:44%; height:44%; stroke-width:1.6; position:relative; z-index:1; }
.tspheres .topic:hover .ic{ transform:translateY(-6px) scale(1.05); box-shadow:inset -10px -16px 26px rgba(0,0,0,.38), inset 8px 10px 18px rgba(255,255,255,.10), 0 34px 40px -20px rgba(0,40,25,.7); }
.tspheres .topic > span:nth-child(2){ display:block; }
.tspheres .topic h3{ font-size:17px; line-height:1.25; margin-bottom:6px; color:var(--green); }
.tspheres .topic p{ font-size:14px; line-height:1.45; color:#5C574F; }
.tspheres .topic .go{ display:none; }
@media (prefers-reduced-motion: no-preference){
  .sx-ready .tspheres .sx{ transition:transform .45s cubic-bezier(.16,.84,.3,1), opacity .45s ease-out; }
}
@media(max-width:560px){
  .tspheres{ gap:30px 12px; }
  .tspheres .topics{ flex-wrap:wrap; justify-content:center; gap:18px 12px; }
  .tspheres .topic{ width:104px; }
  .tspheres .topic .ic{ width:92px; height:92px; margin-bottom:12px; }
  .tspheres .topic h3{ font-size:15px; }
  .tspheres .topic p{ font-size:12.5px; }
}
/* sfere: tutte e sei su una riga sui computer */
.tspheres{ max-width:1140px; gap:clamp(28px,3vw,44px) clamp(16px,2.4vw,36px); }
.tspheres .topics{ gap:clamp(12px,1.6vw,22px); }
.tspheres .topic{ width:clamp(132px,11vw,150px); }
.tspheres .topic .ic{ width:clamp(108px,9.4vw,128px); height:clamp(108px,9.4vw,128px); }
@media(max-width:560px){ .tspheres .topic{ width:104px; } .tspheres .topic .ic{ width:92px; height:92px; } }
/* riquadro verde Vaccinazioni: seconda frase su una sola riga (dove c'è spazio) */
@media(min-width:640px){ .cb-one{ white-space:nowrap; } }
/* sezione La prevenzione: simboli dei riquadri beige più grandi e arancioni (28 ottobre 2026) */
.t-prev .gcard:not(.dark) .ic{ width:62px; height:62px; background:rgba(217,111,32,.14); color:#D96F20; margin-bottom:18px; }
.t-prev .gcard:not(.dark) .ic svg{ width:32px; height:32px; stroke-width:1.8; }
@media(max-width:560px){ .t-prev .gcard:not(.dark) .ic{ width:54px; height:54px; } .t-prev .gcard:not(.dark) .ic svg{ width:28px; height:28px; } }

/* ===== News: effetto Time Machine (28 ottobre 2026) ===== */
.tm{ display:grid; grid-template-columns:minmax(0,1fr) 168px; gap:clamp(18px,2.4vw,30px); max-width:1080px; margin:clamp(28px,3.6vw,44px) auto 0; }
.tm-stage{ position:relative; height:clamp(560px,46vw,620px); border-radius:28px; overflow:hidden; outline:none; touch-action:pan-y;
  background:radial-gradient(ellipse 90% 70% at 50% 8%, #137a50 0%, #0a5636 30%, #003F27 60%, #00241a 100%); box-shadow:0 34px 70px -36px rgba(0,40,25,.65); }
.tm-stage:focus-visible{ box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--terra); }
.tm-sky{ position:absolute; inset:0; opacity:.55; pointer-events:none;
  background-image:radial-gradient(1.4px 1.4px at 12% 18%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 28% 42%, #fff 50%, transparent 51%), radial-gradient(1.2px 1.2px at 47% 12%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 66% 30%, #fff 50%, transparent 51%), radial-gradient(1.6px 1.6px at 84% 16%, #F2A66B 50%, transparent 51%), radial-gradient(1px 1px at 91% 48%, #fff 50%, transparent 51%), radial-gradient(1.2px 1.2px at 8% 62%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 36% 8%, #F2A66B 50%, transparent 51%), radial-gradient(1px 1px at 74% 6%, #fff 50%, transparent 51%), radial-gradient(1.3px 1.3px at 57% 52%, #fff 50%, transparent 51%);
  background-size:420px 300px; }
.tm-stack{ position:absolute; left:0; right:0; top:0; bottom:66px; }
.tm-card{ position:absolute; left:0; right:0; bottom:0; margin:0 auto; width:min(640px, 86%); height:360px; box-sizing:border-box; display:flex; flex-direction:column;
  background:#fff; color:var(--ink); border-radius:22px; padding:30px 34px 28px; transform-origin:50% 0; will-change:transform, opacity; cursor:pointer;
  box-shadow:0 30px 60px -24px rgba(0,0,0,.55), 0 2px 0 rgba(255,255,255,.6) inset; }
.tm-card::after{ content:""; position:absolute; inset:0; border-radius:inherit; background:#00241a; opacity:var(--dim,0); pointer-events:none; }
.tm-card[aria-hidden="false"]{ cursor:default; }
.tm-card.own{ background:var(--cream); box-shadow:0 30px 60px -24px rgba(0,0,0,.55), inset 0 4px 0 #D96F20; }
.tm-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.tm-tag{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 12px; border-radius:999px; background:rgba(0,63,39,.08); color:var(--green); }
.tm-tag.tg-prem{ background:#D96F20; color:#fff; }
.tm-tag.tg-grace{ background:var(--green); color:#fff; }
.tm-meta{ font-size:13.5px; color:var(--muted); }
.tm-card h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:clamp(21px,2vw,26px); line-height:1.22; color:var(--green); margin:0 0 12px; }
.tm-card p{ font-size:16px; line-height:1.58; color:#3d3a35; margin:0; }
.tm-go{ margin-top:auto; align-self:flex-start; display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:999px; background:var(--green); color:#fff; font-size:14.5px; font-weight:700; text-decoration:none; transition:background .2s; }
.tm-go svg{ width:16px; height:16px; }
.tm-go:hover{ background:var(--terra); }
.tm-count{ position:absolute; left:0; right:0; bottom:22px; text-align:center; font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.75); }
.tm-side{ display:flex; flex-direction:column; align-items:center; gap:12px; }
.tm-btn{ flex:none; width:46px; height:46px; border-radius:50%; border:0; display:grid; place-items:center; background:var(--green); color:#fff; cursor:pointer; box-shadow:0 12px 24px -12px rgba(0,40,25,.6); transition:background .2s, transform .2s; }
.tm-btn:hover{ background:var(--terra); transform:scale(1.06); }
.tm-btn svg{ width:22px; height:22px; }
.tm-down svg{ transform:rotate(180deg); }
.tm-line{ position:relative; flex:1; width:100%; display:flex; flex-direction:column; justify-content:space-between; padding:6px 0; touch-action:none; cursor:pointer; user-select:none; }
.tm-rail{ position:absolute; top:0; bottom:0; right:18px; width:2px; background:linear-gradient(rgba(0,63,39,.08), rgba(0,63,39,.28)); border-radius:2px; }
.tm-knob{ position:absolute; top:0; right:9px; width:20px; height:20px; margin-top:-10px; border-radius:50%; background:#D96F20; box-shadow:0 0 0 5px rgba(217,111,32,.2), 0 6px 14px -4px rgba(0,0,0,.35); pointer-events:auto; cursor:grab; z-index:2; }
.tm-tick{ position:relative; display:flex; align-items:center; justify-content:flex-end; gap:8px; width:100%; padding:2px 40px 2px 0; border:0; background:none; cursor:pointer; font:inherit; font-size:12.5px; color:var(--muted); text-align:right; white-space:nowrap; }
.tm-tick::after{ content:""; position:absolute; right:13px; top:50%; width:12px; height:2px; background:rgba(0,63,39,.35); }
.tm-tick:hover{ color:var(--green); }
.tm-tick.own{ color:#D96F20; font-weight:700; }
.tm-tick.on{ color:var(--green); font-weight:700; font-size:13.5px; }
.tm-note{ margin:26px auto 0; max-width:760px; text-align:center; font-size:13.5px; line-height:1.6; color:var(--muted); }
@media(max-width:860px){
  .tm{ grid-template-columns:1fr; }
  .tm-side{ flex-direction:row; }
  .tm-up svg{ transform:rotate(-90deg); } .tm-down svg{ transform:rotate(90deg); }
  .tm-line{ flex-direction:row; height:44px; padding:0 6px; }
  .tm-rail{ top:50%; bottom:auto; left:0; right:0; width:auto; height:2px; margin-top:-1px; }
  .tm-knob{ top:50%; right:auto; left:0; margin-top:-10px; margin-left:-10px; }
  .tm-tick{ width:auto; flex:1; height:44px; padding:0; justify-content:center; }
  .tm-tick span{ display:none; }
  .tm-tick::after{ right:auto; left:50%; top:50%; width:2px; height:12px; margin:-6px 0 0 -1px; }
}
@media(max-width:560px){
  .tm-stage{ height:560px; border-radius:22px; }
  .tm-card{ width:90%; height:420px; padding:22px 22px 22px; }
  .tm-card p{ font-size:15px; }
  .tm-meta{ font-size:12.5px; }
}
@media(max-width:560px){
  .tm-stage{ height:660px; }
  .tm-stack{ bottom:58px; }
  .tm-card{ height:500px; }
  .tm-card h3{ font-size:20px; }
  .tm-card p{ font-size:14.5px; line-height:1.55; }
  .tm-count{ bottom:20px; }
}
/* schede News: altezza minima, crescono se il testo è lungo */
.tm-card{ height:auto; min-height:360px; }
@media(max-width:860px) and (min-width:561px){ .tm-card{ min-height:380px; } }
@media(max-width:560px){ .tm-card{ height:auto; min-height:490px; } }
@media(max-width:380px){
  .tm-stage{ height:680px; }
  .tm-card{ min-height:520px; padding:18px 18px 18px; width:92%; }
  .tm-card h3{ font-size:18.5px; }
  .tm-card p{ font-size:13.5px; }
  .tm-tag{ font-size:11px; padding:4px 10px; }
}

/* iPhone grandi (Pro Max, 421–560 px): l'intestazione con "Sostieni" usciva di ~10-20 px a destra -> spostamento laterale (28 ottobre 2026) */
@media(min-width:421px) and (max-width:560px){
  .nav-inner{ padding-left:18px; padding-right:18px; }
  .nav-right{ gap:10px; }
  .nav .btn-pill{ padding:9px 13px; font-size:14px; }
}
html, body{ overflow-x:hidden; }
@supports (overflow-x:clip){ html, body{ overflow-x:clip; } }
@media(min-width:421px) and (max-width:470px){
  .nav-inner{ padding-left:16px; padding-right:16px; }
  .nav-right{ gap:8px; }
  .nav .btn-pill{ padding:8px 11px; font-size:13.5px; }
}
@media(max-width:429px){ .nav .btn-pill{ display:none; } }

/* News Time Machine: niente fondo verde, schede più grandi su bianco con ombre profonde (28 ottobre 2026) */
.tm{ max-width:1140px; }
.tm-stage{ background:none; box-shadow:none; border-radius:0; overflow:visible; height:clamp(600px,50vw,680px); }
.tm-stage:focus-visible{ box-shadow:none; outline:3px solid var(--terra); outline-offset:6px; border-radius:16px; }
.tm-sky{ display:none; }
.tm-stack{ bottom:54px; }
.tm-card{ width:min(800px, 96%); min-height:400px; padding:36px 42px 34px; border:1px solid rgba(0,63,39,.10);
  box-shadow:0 2px 4px rgba(0,40,25,.05), 0 18px 34px -14px rgba(0,40,25,.22), 0 46px 80px -40px rgba(0,40,25,.38); }
.tm-card.own{ box-shadow:inset 0 4px 0 #D96F20, 0 2px 4px rgba(0,40,25,.05), 0 18px 34px -14px rgba(0,40,25,.22), 0 46px 80px -40px rgba(0,40,25,.38); }
.tm-card::after{ background:#e3e8e4; }
.tm-card h3{ font-size:clamp(22px,2.2vw,29px); }
.tm-card p{ font-size:17px; }
.tm-count{ bottom:10px; color:var(--muted); }
@media(max-width:860px) and (min-width:561px){ .tm-card{ min-height:400px; } }
@media(max-width:560px){
  .tm-stage{ height:660px; }
  .tm-stack{ bottom:44px; }
  .tm-card{ width:100%; min-height:500px; padding:24px 22px; }
  .tm-card p{ font-size:15px; }
}
@media(max-width:380px){ .tm-stage{ height:690px; } .tm-card{ width:100%; min-height:530px; padding:20px 18px; } .tm-card p{ font-size:14px; } }

/* News Time Machine: schede al centro e cursore del tempo sotto, su tutti gli schermi (28 ottobre 2026) */
.tm{ grid-template-columns:1fr; max-width:1000px; }
.tm-side{ flex-direction:row; width:min(820px,100%); margin:0 auto; }
.tm-up svg{ transform:rotate(-90deg); } .tm-down svg{ transform:rotate(90deg); }
.tm-line{ flex-direction:row; height:44px; padding:0 6px; }
.tm-rail{ top:50%; bottom:auto; left:0; right:0; width:auto; height:2px; margin-top:-1px; background:rgba(0,63,39,.22); }
.tm-knob{ top:50%; right:auto; left:0; margin-top:-10px; margin-left:-10px; }
.tm-tick{ width:auto; flex:1; height:44px; padding:0; justify-content:center; }
.tm-tick span{ display:none; }
.tm-tick::after{ right:auto; left:50%; top:50%; width:2px; height:12px; margin:-6px 0 0 -1px; }
.tm-tick.own::after{ background:#D96F20; height:16px; margin-top:-8px; }

/* ===== Contatti: scheda "Registrati a GRACE" (28 ottobre 2026) ===== */
.rg-card{ max-width:860px; margin:clamp(24px,3vw,36px) auto 0; background:#fff; border:1px solid rgba(0,63,39,.10); border-radius:26px; padding:clamp(24px,4vw,48px);
  box-shadow:0 2px 4px rgba(0,40,25,.04), 0 24px 50px -28px rgba(0,40,25,.35); }
.rg-grid{ display:grid; grid-template-columns:1fr 1fr; gap:6px 22px; }
.rg-f{ display:flex; flex-direction:column; }
.rg-f.wide{ grid-column:1 / -1; }
.rg-f[hidden]{ display:none; }
.rg label, .rg legend{ font-size:14.5px; font-weight:700; color:var(--green); margin-bottom:8px; }
.rg-opt{ font-weight:400; color:var(--muted); font-size:13px; }
.rg-star{ color:#D96F20; margin-left:2px; }
.rg input[type=text], .rg input[type=email], .rg input[type=tel], .rg select, .rg textarea{ font:inherit; font-size:16px; color:var(--ink); background:#fbf8f4; border:1.5px solid rgba(0,63,39,.16); border-radius:12px; padding:13px 15px; width:100%; box-sizing:border-box; transition:border-color .2s, box-shadow .2s, background .2s; }
.rg textarea{ resize:vertical; min-height:110px; line-height:1.5; }
.rg select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23003F27' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:18px; padding-right:42px; }
.rg input:focus, .rg select:focus, .rg textarea:focus{ outline:none; border-color:var(--green); background:#fff; box-shadow:0 0 0 4px rgba(0,63,39,.10); }
.rg .bad input, .rg .bad select{ border-color:#c0392b; background:#fff7f5; }
.rg-err{ min-height:20px; margin:5px 0 4px; font-size:13px; color:#b03a2e; }
.rg-why{ border:0; padding:0; margin:14px 0 6px; }
.rg-chips{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:4px; }
.rg-chip{ position:relative; display:flex; gap:12px; align-items:flex-start; padding:16px; border:1.5px solid rgba(0,63,39,.16); border-radius:16px; background:#fbf8f4; cursor:pointer; margin:0 !important; transition:border-color .2s, background .2s, box-shadow .2s; }
.rg-chip:hover{ border-color:rgba(0,63,39,.4); }
.rg-chip input, .rg-consent input{ position:absolute; opacity:0; width:1px; height:1px; }
.rg-box{ flex:none; width:22px; height:22px; border-radius:7px; border:1.5px solid rgba(0,63,39,.35); background:#fff; display:grid; place-items:center; color:transparent; transition:background .2s, border-color .2s, color .2s; }
.rg-box svg{ width:15px; height:15px; }
.rg-chip input:checked ~ .rg-box, .rg-consent input:checked ~ .rg-box{ background:var(--green); border-color:var(--green); color:#fff; }
.rg-chip:has(input:checked){ border-color:var(--green); background:rgba(0,63,39,.05); box-shadow:0 10px 22px -16px rgba(0,63,39,.6); }
.rg-chip input:focus-visible ~ .rg-box, .rg-consent input:focus-visible ~ .rg-box{ box-shadow:0 0 0 4px rgba(217,111,32,.35); }
.rg-ct b{ display:block; font-size:15px; color:var(--green); line-height:1.3; margin-bottom:4px; }
.rg-ct small{ display:block; font-size:13px; font-weight:400; color:var(--muted); line-height:1.45; }
.rg-why.bad .rg-chip{ border-color:#c0392b; }
.rg-consent{ display:flex; gap:12px; align-items:flex-start; margin:14px 0 0 !important; font-weight:400 !important; color:var(--ink) !important; font-size:14.5px !important; line-height:1.5; cursor:pointer; position:relative; }
.rg-consent a{ color:var(--green); font-weight:700; }
.rg-consent.bad .rg-box{ border-color:#c0392b; }
.rg-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:14px; }
.rg-submit{ font:inherit; font-size:16.5px; font-weight:700; color:#fff; background:var(--green); border:0; border-radius:4px; padding:15px 36px; cursor:pointer; box-shadow:0 14px 26px -16px rgba(0,63,39,.8); transition:background .2s, transform .2s; }
.rg-submit:hover{ background:#D96F20; transform:translateY(-1px); }
.rg-req{ font-size:13px; color:var(--muted); }
.rg-ok{ text-align:center; outline:none; }
.rg-ok-ic{ width:64px; height:64px; margin:0 auto 14px; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; }
.rg-ok-ic svg{ width:32px; height:32px; }
.rg-ok h3{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(24px,2.6vw,32px); font-weight:700; color:var(--green); margin:0 0 10px; }
.rg-ok > p{ font-size:16.5px; line-height:1.55; color:#3d3a35; max-width:560px; margin:0 auto 18px; }
.rg-ok-btns{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.rg-open, .rg-copy, .rg-edit{ font:inherit; font-size:15px; font-weight:700; border-radius:4px; padding:12px 22px; cursor:pointer; text-decoration:none; }
.rg-open{ background:var(--green); color:#fff; border:0; }
.rg-copy{ background:#fff; color:var(--green); border:1.5px solid var(--green); }
.rg-open:hover{ background:#D96F20; } .rg-copy:hover{ border-color:#D96F20; color:#D96F20; }
.rg-alt{ font-size:14px !important; color:var(--muted) !important; margin:18px auto 8px !important; }
.rg-alt a{ color:var(--green); font-weight:700; }
.rg-text{ text-align:left; white-space:pre-wrap; word-break:break-word; font:13.5px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; background:#fbf8f4; border:1px solid rgba(0,63,39,.12); border-radius:12px; padding:16px 18px; max-height:260px; overflow:auto; margin:0 0 16px; color:#3d3a35; }
.rg-edit{ background:none; border:0; color:var(--muted); text-decoration:underline; }
@media(max-width:760px){ .rg-chips{ grid-template-columns:1fr; } }
@media(max-width:560px){ .rg-grid{ grid-template-columns:1fr; } .rg-submit{ width:100%; } }

/* Intestazione: logo + GRACE sulla prima riga, "Fondazione non-profit" sotto, larga quanto logo + GRACE (28 ottobre 2026) */
.brand{ display:grid; grid-template-columns:auto auto; column-gap:9px; row-gap:4px; align-items:center; justify-content:start; }
.brand .brand-txt{ display:contents; }
.brand .logo-mark{ grid-row:1; grid-column:1; width:32px; height:32px; }
.brand b{ grid-row:1; grid-column:2; line-height:1; }
.brand .brand-sub{ grid-row:2; grid-column:1 / -1; width:0; min-width:100%; margin-top:0; font-size:8.6px; letter-spacing:.06em; line-height:1; white-space:nowrap; overflow:visible; }
@media(max-width:380px){ .brand .brand-sub{ font-size:8.6px; } }
/* Missione: titolo "Le 3P di GRACE" con le P evidenziate (29 ottobre 2026) */
.mis-h h2 .w3{ font-weight:700; color:var(--green); }
.mis-h h2 .w3 b{ color:var(--terra); font-weight:800; }
.mis-h p.mis-lead{ max-width:900px; }
/* Home, riquadro "abitudini salutari": i quattro pulsanti arancioni su una sola riga (29 ottobre 2026) */
.mcard .mchips{ flex-wrap:nowrap; gap:6px; }
.mcard .mchips span{ white-space:nowrap; font-size:13px; padding:7px 10px; }
@media(min-width:821px) and (max-width:1000px){ .mcard .mchips span{ font-size:12px; padding:6px 8px; } .mcard .mchips{ gap:5px; } }
@media(max-width:470px){ .mcard .mchips{ gap:4px; } .mcard .mchips span{ font-size:11.5px; padding:6px 6px; } }
@media(max-width:400px){ .mcard .mchips span{ font-size:10.5px; padding:5px 5px; } }
@media(max-width:350px){ .mcard .mchips{ flex-wrap:wrap; } }

/* ===== Ricerca nel sito (29 ottobre 2026) ===== */
.menu .mi a .mi-ic{ width:16px; height:16px; margin-right:6px; vertical-align:-3px; }
.srch{ max-width:860px; margin:0 auto; }
.srch-form{ position:relative; display:flex; gap:10px; background:#fff; border:1.5px solid rgba(0,63,39,.18); border-radius:999px; padding:7px 7px 7px 52px; box-shadow:0 2px 4px rgba(0,40,25,.04), 0 22px 44px -26px rgba(0,40,25,.4); transition:border-color .2s, box-shadow .2s; }
.srch-form:focus-within{ border-color:var(--green); box-shadow:0 0 0 4px rgba(0,63,39,.08), 0 22px 44px -26px rgba(0,40,25,.4); }
.srch-ic{ position:absolute; left:20px; top:50%; width:22px; height:22px; margin-top:-11px; color:var(--green); }
.srch-ic svg{ width:100%; height:100%; }
.srch-form input{ flex:1; min-width:0; border:0; outline:none; background:none; font:inherit; font-size:18px; color:var(--ink); padding:10px 0; }
.srch-form input::-webkit-search-cancel-button{ cursor:pointer; }
.srch-form button{ flex:none; font:inherit; font-size:16px; font-weight:700; color:#fff; background:var(--green); border:0; border-radius:999px; padding:12px 26px; cursor:pointer; transition:background .2s; }
.srch-form button:hover{ background:#D96F20; }
.srch-sugg{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:18px 4px 0; font-size:14px; color:var(--muted); }
.srch-tag{ font:inherit; font-size:13.5px; font-weight:600; color:var(--green); background:var(--cream); border:0; border-radius:999px; padding:6px 14px; cursor:pointer; }
.srch-tag:hover{ background:var(--green); color:#fff; }
.srch-count{ margin:30px 4px 14px; font-size:15px; color:var(--muted); min-height:22px; }
.srch-count b{ color:var(--green); }
.srch-list{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.srch-r{ display:block; text-decoration:none; color:inherit; background:#fff; border:1px solid rgba(0,63,39,.10); border-radius:18px; padding:20px 24px; box-shadow:0 14px 30px -24px rgba(0,40,25,.45); transition:border-color .2s, transform .2s, box-shadow .2s; }
.srch-r:hover{ border-color:rgba(0,63,39,.35); transform:translateY(-2px); box-shadow:0 20px 36px -22px rgba(0,40,25,.5); }
.srch-lab{ display:block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#D96F20; margin-bottom:6px; }
.srch-r h3{ font-family:'Plus Jakarta Sans',sans-serif; font-size:20px; font-weight:700; color:var(--green); margin:0 0 8px; }
.srch-r p{ font-size:15px; line-height:1.55; color:#3d3a35; margin:0; }
.srch-r mark, mark.srch-hit{ background:rgba(217,111,32,.22); color:inherit; border-radius:3px; padding:0 2px; }
.srch-n{ display:block; margin-top:10px; font-size:12.5px; color:var(--muted); }
@media(max-width:560px){ .srch-form{ padding-left:44px; } .srch-ic{ left:16px; } .srch-form input{ font-size:16px; } .srch-form button{ padding:11px 18px; font-size:15px; } .srch-r{ padding:16px 18px; } }

/* Come funziona: i cerchi verdi del ciclo diventano sfere come nella pagina La prevenzione (30 ottobre 2026) */
.loop span, .loop span:nth-of-type(4){ position:relative; border:0; color:#fff; font-weight:700;
  background:radial-gradient(circle at 34% 28%, #2a8a5e 0%, #0d6140 28%, #004a2e 58%, #002a1a 100%);
  box-shadow:inset -10px -16px 26px rgba(0,0,0,.38), inset 8px 10px 18px rgba(255,255,255,.10), 0 26px 36px -20px rgba(0,40,25,.65); }
.loop span::after{ content:""; position:absolute; left:22%; top:12%; width:34%; height:22%; border-radius:50%; background:radial-gradient(closest-side, rgba(255,255,255,.28), rgba(255,255,255,0)); transform:rotate(-24deg); pointer-events:none; }
.loop i{ display:inline-block; }
/* Come funziona: anche i riquadri Abitudini salutari e Ricompense sono collegamenti */
a.duo-card.dlink{ display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:transform .25s, box-shadow .25s, border-color .25s; }
a.duo-card.dlink:hover{ transform:translateY(-4px); box-shadow:0 28px 46px -22px rgba(0,63,39,.4); }
a.duo-card.dlink .more{ margin-top:auto; padding-top:10px; font-weight:700; font-size:15px; }
a.duo-card.a.dlink .more{ color:var(--green); } a.duo-card.b.dlink .more{ color:var(--terra); }
a.duo-card.dlink .more span{ display:inline-block; transition:transform .25s; } a.duo-card.dlink:hover .more span{ transform:translateX(4px); }
.duo.d3 a.duo-card.dlink{ justify-content:center; }
.duo.d3 a.duo-card.dlink .more{ margin-top:0; }
/* Come funziona: i link "Scopri…" dei tre riquadri allineati in basso, alla stessa altezza (30 ottobre 2026) */
.duo.d3 a.duo-card.dlink{ justify-content:flex-start; }
.duo.d3 a.duo-card.dlink .more{ margin-top:auto; padding-top:12px; }
@media(min-width:901px){ .duo.d3 a.duo-card.dlink{ padding-top:24px; padding-bottom:24px; } }
/* Come funziona: tre riquadri di pari altezza, link "Scopri…" sulla stessa linea */
@media(min-width:901px){
  .duo.d3{ align-items:stretch; }
  .duo.d3 .duo-card{ aspect-ratio:auto; min-height:clamp(340px,29vw,397px); }
  .duo.d3 .duo-card.app{ grid-template-rows:auto auto auto 1fr; align-content:stretch; }
  .duo.d3 a.duo-card.dlink{ padding-bottom:26px; }
}
@media(min-width:901px){
  .duo.d3 .duo-card.app{ padding-bottom:26px; }
  .duo.d3 .duo-card .more{ line-height:24px; }
}
/* ===== L'app GRACE rifatta sul modello di hilo.com (30 ottobre 2026) ===== */
.vh{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.page-head.apx-head{ padding-bottom:116px; }   /* spazio per "Scorri" (31 ottobre 2026) */
/* 1) il telefono sale dal basso e si raddrizza */
.apx-rise{ --p:0; padding:0 0 30px; overflow:hidden; overflow:clip; }
.apx-rise-stage{ position:relative; display:flex; justify-content:center; padding:40px 0 30px; perspective:1400px; --pw:clamp(230px,24vw,310px); }
.apx-rise-phone{ width:var(--pw); position:relative; z-index:2; transform-origin:50% 100%;
  transform:translateY(calc((1 - var(--p)) * 180px)) rotateX(calc((1 - var(--p)) * 32deg)) scale(calc(.84 + var(--p) * .16));
  filter:drop-shadow(0 30px 40px rgba(0,40,24,.22)); will-change:transform; }
.apx-rise-phone img{ display:block; width:100%; height:auto; }
.apx-halo{ position:absolute; left:50%; top:50%; width:calc(var(--pw) * 2.1); aspect-ratio:1; border-radius:50%; z-index:0;
  background:radial-gradient(closest-side, rgba(124,166,140,.42), rgba(124,166,140,.16) 62%, rgba(124,166,140,0));
  transform:translate(-50%,-50%) scale(calc(.55 + var(--p) * .45)); opacity:calc(.3 + var(--p) * .7); }
.apx-chips{ position:absolute; inset:0; z-index:3; pointer-events:none; }
.apx-chip{ position:absolute; display:inline-flex; align-items:center; gap:6px; background:#fff; color:var(--ink); border-radius:999px; padding:12px 18px;
  font-size:15px; box-shadow:0 14px 30px -14px rgba(0,63,39,.35); white-space:nowrap; opacity:calc((var(--p) - .55) * 3); }
.apx-chip b{ display:inline-flex; align-items:center; gap:5px; color:var(--terra); font-weight:700; font-size:17px; }
.apx-chip b svg{ width:16px; height:16px; }
.apx-chip.c1{ right:calc(50% + var(--pw) / 2 + 26px); top:24%; transform:translateX(calc((1 - var(--p)) * -90px)); }
.apx-chip.c2{ left:calc(50% + var(--pw) / 2 + 26px); top:44%; transform:translateX(calc((1 - var(--p)) * 90px)); }
.apx-chip.c2 b{ color:var(--green); }
.apx-chip.c3{ right:calc(50% + var(--pw) / 2 + 40px); top:66%; transform:translateX(calc((1 - var(--p)) * -120px)); }
@media(max-width:700px){
  .apx-rise-stage{ --pw:min(62vw,250px); }
  .apx-chip{ padding:9px 13px; font-size:13px; } .apx-chip b{ font-size:14.5px; }
  .apx-chip.c1{ right:auto; left:max(2px, calc(50% - var(--pw) / 2 - 46px)); top:20%; }
  .apx-chip.c2{ left:auto; right:max(2px, calc(50% - var(--pw) / 2 - 46px)); top:46%; }
  .apx-chip.c3{ right:auto; left:max(2px, calc(50% - var(--pw) / 2 - 30px)); top:72%; }
}
/* 2) racconto: telefono fisso a destra, testi che scorrono a sinistra, la schermata cambia */
.apx-story-sec{ padding-top:56px; }
.apx-story{ --prog:0; position:relative; }
.apx-num{ font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--terra); margin-bottom:14px; display:flex; align-items:center; gap:10px; }
.apx-num span{ display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--terra); color:#fff; letter-spacing:0; font-size:13px; }
.apx-step h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(28px,3vw,40px); line-height:1.12; letter-spacing:-.02em; margin-bottom:14px; }
.apx-step h3 em{ font-style:normal; font-weight:700; color:var(--green); }
.apx-step p{ color:var(--muted); font-size:17px; line-height:1.6; margin-bottom:18px; }
.apx-list{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.apx-list li{ display:flex; gap:12px; align-items:flex-start; font-size:16px; line-height:1.45; }
.apx-list svg{ flex:0 0 22px; width:22px; height:22px; padding:3px; border-radius:50%; background:rgba(124,166,140,.25); color:var(--green); margin-top:1px; }
.apx-shot img, .apx-mshot img{ display:block; width:100%; height:auto; }
@media(min-width:901px){
  .apx-story{ display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,440px); column-gap:clamp(30px,6vw,90px); }
  .apx-step{ min-height:min(82vh,760px); display:flex; align-items:center; opacity:.22; transition:opacity .45s ease; }
  .apx-step.on{ opacity:1; }
  .apx-step:first-child{ min-height:min(62vh,560px); align-items:flex-start; padding-top:8vh; }
  .apx-step:last-child{ min-height:min(70vh,640px); }
  .apx-st{ max-width:500px; }
  .apx-mshot{ display:none; }
  .apx-stick{ position:sticky; top:var(--navh,78px); height:calc(100vh - var(--navh,78px)); height:calc(100svh - var(--navh,78px)); display:flex; align-items:center; justify-content:center; }
  .apx-phone{ position:relative; width:min(290px, calc((100vh - var(--navh,78px) - 90px) / 2.06)); aspect-ratio:600 / 1237; z-index:1; filter:drop-shadow(0 30px 40px rgba(0,40,24,.22)); }
  .apx-shot{ position:absolute; inset:0; opacity:0; transform:translateY(26px) scale(.965); transition:opacity .5s ease, transform .65s cubic-bezier(.2,.8,.2,1); }
  .apx-shot.on{ opacity:1; transform:none; }
  .apx-blob{ position:absolute; left:50%; top:50%; width:min(400px,32vw); aspect-ratio:1; border-radius:50%; transform:translate(-50%,-50%); background:var(--cream); transition:background .6s ease, transform .6s ease; z-index:0; }
  .apx-story[data-active="1"] .apx-blob{ background:rgba(124,166,140,.32); transform:translate(-50%,-50%) scale(1.05); }
  .apx-story[data-active="2"] .apx-blob{ background:rgba(217,111,32,.16); transform:translate(-50%,-50%) scale(.96); }
  .apx-story[data-active="3"] .apx-blob{ background:rgba(124,166,140,.32); transform:translate(-50%,-50%) scale(1.06); }
  .apx-story[data-active="4"] .apx-blob{ background:var(--cream); transform:translate(-50%,-50%) scale(.98); }
  .apx-story[data-active="5"] .apx-blob{ background:rgba(217,111,32,.16); transform:translate(-50%,-50%) scale(1.04); }
  .apx-dots{ position:absolute; right:0; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:10px; z-index:2; }
  .apx-dot{ display:grid; place-items:center; width:34px; height:34px; border-radius:50%; border:1.5px solid var(--line); background:#fff; color:var(--muted); font-size:12px; font-weight:700; text-decoration:none; transition:background .3s, color .3s, border-color .3s, transform .3s; }
  .apx-dot:hover{ border-color:var(--green); color:var(--green); }
  .apx-dot.on{ background:var(--green); border-color:var(--green); color:#fff; transform:scale(1.12); }
  .apx-bar{ position:absolute; left:50%; bottom:22px; width:140px; height:3px; margin-left:-70px; border-radius:3px; background:var(--line); overflow:hidden; }
  .apx-bar i{ display:block; height:100%; background:var(--terra); transform-origin:0 50%; transform:scaleX(var(--prog)); }
}
@media(min-width:901px) and (max-width:1100px){ .apx-dots{ right:-8px; } .apx-story{ grid-template-columns:minmax(0,1fr) 340px; } }
@media(max-width:900px){
  .apx-side{ display:none; }
  .apx-step{ display:grid; gap:24px; margin-bottom:64px; }
  .apx-step:last-child{ margin-bottom:10px; }
  .apx-mshot{ position:relative; width:min(240px,62vw); margin:0 auto; filter:drop-shadow(0 22px 30px rgba(0,40,24,.2)); }
  .apx-mshot::before{ content:""; position:absolute; left:50%; top:50%; width:150%; aspect-ratio:1; border-radius:50%; transform:translate(-50%,-50%); background:var(--cream); z-index:-1; }
  .apx-step:nth-child(even) .apx-mshot::before{ background:rgba(124,166,140,.28); }
  .apx-st{ text-align:left; max-width:560px; margin:0 auto; }
}
@media (prefers-reduced-motion: reduce){ .apx-shot, .apx-step, .apx-blob, .apx-dot{ transition:none!important; } }
/* 3) cifre */
.apx-figs{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.apx-fig{ background:var(--cream); border-radius:20px; padding:28px 20px 24px; text-align:center; }
.apx-fig b{ display:block; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:clamp(40px,4.4vw,58px); line-height:1; color:var(--green); letter-spacing:-.03em; margin-bottom:12px; font-variant-numeric:tabular-nums; }
.apx-fig:nth-child(3) b{ color:var(--terra); }
.apx-fig small{ display:block; font-size:14.5px; line-height:1.45; color:var(--muted); }
@media(max-width:900px){ .apx-figs{ grid-template-columns:repeat(2,minmax(0,1fr)); } .apx-fig:last-child{ grid-column:1 / -1; } }
/* 4) confronto */
.apx-cmp{ max-width:820px; margin:0 auto; background:#fff; border-radius:22px; box-shadow:var(--shadow); padding:10px 28px 14px; border:1px solid var(--line); }
.apx-crow{ display:grid; grid-template-columns:minmax(0,1fr) 150px 150px; align-items:center; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }
.apx-crow:last-child{ border-bottom:0; }
.apx-cl{ font-size:16px; line-height:1.4; }
.apx-chead{ padding:12px 0; }
.apx-ch{ text-align:center; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.apx-ch.g{ color:var(--green); }
.apx-c{ justify-self:center; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; }
.apx-c svg{ width:20px; height:20px; }
.apx-c.y{ background:var(--green); color:#fff; }
.apx-c.n{ background:rgba(26,26,26,.06); color:rgba(26,26,26,.4); }
.apx-crow > .apx-c:nth-child(2).y{ background:rgba(124,166,140,.3); color:var(--green); }
@media(max-width:600px){ .apx-cmp{ padding:6px 16px 10px; } .apx-crow{ grid-template-columns:minmax(0,1fr) 64px 64px; gap:8px; } .apx-cl{ font-size:15px; } .apx-ch{ font-size:11px; letter-spacing:.02em; } }
/* L'app, "Prova tu": telefono più piccolo, così telefono e cursore si vedono insieme nello schermo (30 ottobre 2026) */
.pgame{ --pgz:.8; gap:22px; }
@media(max-height:860px){ .pgame{ --pgz:.72; } }
@media(max-height:760px){ .pgame{ --pgz:.64; } }
@media(max-height:660px){ .pgame{ --pgz:.56; } }
.pgame .pg-phone{ zoom:var(--pgz); }
.pgame .af-backdrop{ height:calc(clamp(500px,44vw,610px) * var(--pgz)); }
@media(max-width:900px){ .pgame .af-backdrop{ height:calc(560px * var(--pgz)); } }
/* "Prova tu": telefono + cursore a sinistra, pannello attività e prevenzione di fianco (30 ottobre 2026) */
.apx-try .sh-c{ margin-bottom:18px; }
.pgame.pgx{ display:grid; grid-template-columns:auto minmax(330px,430px); justify-content:center; align-items:center; column-gap:clamp(36px,5vw,72px); row-gap:28px; padding-top:10px; }
.pgx .pg-main{ position:relative; display:flex; flex-direction:column; align-items:center; gap:22px; padding-top:16px; }
.pgx .pg-ctl{ width:min(100%,400px); }
.pgx .pg-hint{ margin-top:30px; }
.pg-panel{ position:relative; z-index:1; background:#fff; border-radius:22px; box-shadow:0 18px 40px -22px rgba(0,40,24,.35); border:1px solid var(--line); padding:22px 22px 18px; }
.pp-h{ display:flex; flex-direction:column; gap:2px; margin-bottom:12px; }
.pp-h b{ font-size:15px; font-weight:700; color:var(--ink); }
.pp-h small{ font-size:12.5px; color:var(--muted); }
.pp-h2{ margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
.pg-panel .pg-cats{ margin:0; padding:0; background:none; box-shadow:none; gap:11px; }
.pg-panel .pg-cats li{ font-size:14px; grid-template-columns:minmax(0,1.25fr) 1fr 56px; }
.pg-panel .pc-bar{ height:8px; border-radius:4px; }
.pg-bonus{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.pb{ width:100%; display:grid; grid-template-columns:30px minmax(0,1fr) auto; grid-template-areas:"ic n v" "ic sw sw"; align-items:center; column-gap:10px; row-gap:2px; text-align:left;
  font:inherit; color:var(--ink); background:var(--cream); border:1.5px solid transparent; border-radius:14px; padding:10px 12px; cursor:pointer; transition:background .2s, border-color .2s, transform .15s; }
.pb:hover{ border-color:rgba(0,63,39,.25); }
.pb:active{ transform:scale(.97); }
.pb:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }
.pb-ic{ grid-area:ic; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#fff; color:var(--terra); }
.pb-ic svg{ width:17px; height:17px; }
.pb-n{ grid-area:n; font-size:13.5px; font-weight:600; line-height:1.25; }
.pb-v{ grid-area:v; font-size:13px; font-weight:700; color:var(--terra); font-variant-numeric:tabular-nums; }
.pb-sw{ grid-area:sw; justify-self:start; width:30px; height:17px; border-radius:9px; background:rgba(26,26,26,.18); position:relative; transition:background .2s; }
.pb-sw::after{ content:""; position:absolute; left:2px; top:2px; width:13px; height:13px; border-radius:50%; background:#fff; transition:transform .2s; }
.pb[aria-pressed="true"]{ background:rgba(124,166,140,.22); border-color:var(--green); }
.pb[aria-pressed="true"] .pb-ic{ background:var(--green); color:#fff; }
.pb[aria-pressed="true"] .pb-v{ color:var(--green); }
.pb[aria-pressed="true"] .pb-sw{ background:var(--green); }
.pb[aria-pressed="true"] .pb-sw::after{ transform:translateX(13px); }
.pg-panel .pg-note{ margin-top:16px; text-align:left; font-size:12px; }
@media(max-width:900px){
  .pgame.pgx{ grid-template-columns:1fr; justify-items:center; }
  .pg-panel{ width:min(100%,460px); padding:18px 16px 14px; }
}
@media(max-width:560px){ .pg-bonus{ grid-template-columns:1fr; } .pb{ grid-template-columns:30px minmax(0,1fr) auto auto; grid-template-areas:"ic n v sw"; column-gap:12px; padding:9px 12px; } .pb-sw{ justify-self:end; } }
/* Il contesto: titolo lungo su più righe bilanciate (30 ottobre 2026) */
.h1-long{ display:block; font-size:.8em; text-wrap:balance; max-width:20ch; margin:0 auto; }
@media(max-width:700px){ .h1-long{ font-size:.86em; } .page-head{ padding-bottom:112px; } }
/* Il contesto: testo nel riquadro verde "Più anziani, meno persone…" (30 ottobre 2026) */
.tz-text .tz-body{ margin-top:14px; font-size:15.5px; line-height:1.6; color:rgba(255,255,255,.9); }
.tz-text .tz-body b{ color:#fff; font-weight:700; }
.tz-text h3 + .tz-body{ margin-top:18px; }
/* Il contesto: grafico "oggi e nel futuro" (30 ottobre 2026) */
.tz .pchart{ margin:0; order:0; align-self:start; aspect-ratio:1 / 1; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; background:var(--card); border:1px solid var(--line); border-radius:24px; padding:clamp(20px,2.4vw,30px); box-shadow:var(--shadow); }
.pq-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:clamp(14px,2vw,24px); }
.pq-head .tc-unit{ margin:0; }
.pq-leg{ display:flex; gap:14px; font-size:13px; color:var(--muted); }
.pq-leg span{ display:inline-flex; align-items:center; gap:6px; }
.pq-leg i{ width:12px; height:12px; border-radius:3px; display:inline-block; }
.pq-leg i.a, .pq-a{ background:#7CA68C; } .pq-leg i.b, .pq-b{ background:var(--green); }
.pq-rows{ display:grid; gap:clamp(14px,1.8vw,22px); }
.pq-lab{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:7px; font-size:14.5px; }
.pq-lab b{ font-weight:600; color:var(--ink); }
.pq-up{ font-size:13px; font-weight:700; color:var(--terra); white-space:nowrap; }
.pq-only{ font-size:12px; color:var(--muted); white-space:nowrap; }
.pq-bars{ display:grid; gap:4px; }
.pq-bar{ position:relative; height:clamp(16px,1.6vw,20px); width:0; min-width:4px; border-radius:0 4px 4px 0; transition:width 1s cubic-bezier(.2,.8,.2,1); }
.pq-bar.pq-b{ transition-delay:.25s; }
.pchart.in .pq-bar{ width:var(--w); }
.pq-v{ position:absolute; left:calc(100% + 8px); top:50%; transform:translateY(-50%); font-size:13px; font-weight:700; color:var(--ink); white-space:nowrap; font-variant-numeric:tabular-nums; opacity:0; transition:opacity .4s .8s; }
.pq-v small{ font-weight:500; color:var(--muted); font-size:11.5px; }
.pchart.in .pq-v{ opacity:1; }
.pq-row:first-child .pq-b .pq-v{ left:auto; right:8px; color:#fff; } .pq-row:first-child .pq-b .pq-v small{ color:rgba(255,255,255,.8); }
.pq-row:first-child .pq-a .pq-v{ left:auto; right:8px; color:#fff; }
@media(max-width:900px){ .tz .pchart{ order:1; aspect-ratio:auto; } }
@media (prefers-reduced-motion: reduce){ .pq-bar, .pq-v{ transition:none; } }
.tz:nth-child(even) .pchart{ order:1; }
/* grafici con la barra del tempo: variazione % rispetto a oggi (30 ottobre 2026) */
.tc-val .tc-d{ margin-left:6px; font-size:.82em; font-weight:700; color:var(--terra); }
.cta-end{ padding-top:10px; }
@media(max-width:600px){ .tc-val .tc-d{ display:block; margin:1px 0 0; font-size:12px; line-height:1.1; } }
/* Come funziona: le 3P evidenziate nel titolo (30 ottobre 2026) */
.sh-c h2 .w3 b{ color:var(--terra); font-weight:800; }
/* Come funziona: i tre elementi del modello GRACE su una riga (30 ottobre 2026) */
@media(min-width:901px){ .gcards.c4.sq4.g3{ grid-template-columns:repeat(3,minmax(0,1fr)); } .gcards.sq4.g3 .gcard{ aspect-ratio:auto; min-height:clamp(300px,27vw,380px); } }
@media(min-width:901px){
  .gcards.sq4.g3 .gcard{ padding:clamp(26px,2.6vw,36px); min-height:0; }
  .gcards.sq4.g3 .gcard h3{ font-size:clamp(21px,1.8vw,26px)!important; line-height:1.2; margin-bottom:12px; }
  .gcards.sq4.g3 .gcard p{ font-size:clamp(15.5px,1.25vw,17.5px)!important; line-height:1.55; }
}
/* Come funziona: icone arancioni nei tre elementi del modello (30 ottobre 2026) */
.gcards.g3 .gcard .ic{ color:var(--terra); background:rgba(217,111,32,.14); }
.gcards.g3 .gcard .ic svg{ stroke:currentColor; }
/* sfere del ciclo: un po' di margine per "Comportamento salutare" (30 ottobre 2026) */
.loop span{ padding-left:10px; padding-right:10px; box-sizing:border-box; }
@media(max-width:600px){ .loop span{ font-size:13px; } }
/* L'app: dietro ogni telefono una sfera arancione tridimensionale (30 ottobre 2026) */
.apx-halo, .apx-blob, .apx-story[data-active] .apx-blob, .apx-mshot::before, .apx-step:nth-child(even) .apx-mshot::before{
  background:radial-gradient(circle at 34% 28%, #F9C08E 0%, #EE8F45 22%, #D96F20 52%, #B45815 78%, #8A3F0B 100%);
  box-shadow:inset -22px -30px 60px rgba(90,35,0,.32), inset 14px 16px 34px rgba(255,220,180,.25), 0 46px 70px -34px rgba(120,50,0,.5);
  opacity:1; }
.apx-halo{ width:calc(var(--pw) * 1.75); opacity:calc(.35 + var(--p) * .65); }
.apx-blob::after, .apx-halo::after{ content:""; position:absolute; left:20%; top:11%; width:34%; height:20%; border-radius:50%; background:radial-gradient(closest-side, rgba(255,255,255,.45), rgba(255,255,255,0)); transform:rotate(-24deg); pointer-events:none; }
.apx-mshot::before{ width:140%; }
/* "Scorri" non deve mai toccare i testi dell'apertura (31 ottobre 2026) */
.page-head{ padding-bottom:112px; }
.page-head.apx-head{ padding-bottom:116px; }
/* Chi siamo: la Presidente in apertura, testo a sinistra e foto a destra (1 novembre 2026) */
.pres-sec{ padding-top:clamp(28px,4vw,56px); }
.pres-subnav{ justify-content:flex-start; margin:0 0 clamp(26px,3.4vw,44px); }
.pres{ display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,340px); gap:clamp(28px,5vw,72px); align-items:start; }
.pres-tx .eyebrow{ margin-bottom:10px; }
.pres-tx h1{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:clamp(32px,3.6vw,48px); line-height:1.1; letter-spacing:-.02em; color:var(--green); margin:0 0 20px; text-align:left; }
.pres-role{ font-size:15px; color:var(--muted); margin-bottom:22px; }
.pres-lead{ font-size:clamp(17px,1.5vw,19px); line-height:1.6; color:var(--ink); margin-bottom:18px; }
.pres-bio p{ font-size:16px; line-height:1.7; color:#3d3a35; margin:0 0 14px; }
.pres-bio .bio-inst{ margin-top:20px; }
.pres-src{ margin-top:22px; padding-top:16px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
.pres-src h4{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:0 0 6px; }
.pres-src p{ margin:0 0 4px; } .pres-src a{ color:var(--green); }
.pres-ph{ position:sticky; top:calc(var(--navh,78px) + 24px); }
.pres-ph img{ display:block; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover; border-radius:24px; box-shadow:var(--shadow); }
@media(max-width:800px){
  .pres{ grid-template-columns:1fr; }
  .pres-ph{ position:static; order:-1; width:min(260px,70vw); margin:0 auto; }
  .pres-subnav{ justify-content:center; }
}
/* Home: riquadri arancioni cliccabili nei box verdi (1 novembre 2026) */
.mchips a.mchip{ display:inline-flex; text-decoration:none; border-radius:4px; }
.mchips a.mchip span{ transition:background .2s, transform .2s, box-shadow .2s; }
.mchips a.mchip:hover span, .mchips a.mchip:focus-visible span{ background:#fff; border-color:#fff; color:var(--terra); box-shadow:0 6px 14px -6px rgba(0,0,0,.35); }
.mchips a.mchip:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
#alimentazione, #movimento, #diet, #exercise, #privacy{ scroll-margin-top:calc(var(--navh,78px) + 24px); }
/* L'app: sfere arancioni dietro i telefoni in una tonalità più chiara (1 novembre 2026) */
.apx-halo, .apx-blob, .apx-story[data-active] .apx-blob, .apx-mshot::before, .apx-step:nth-child(even) .apx-mshot::before{
  background:radial-gradient(circle at 34% 28%, #FFE3C8 0%, #FBC594 24%, #F4A262 54%, #E58A45 80%, #CC7333 100%);
  box-shadow:inset -20px -28px 56px rgba(160,80,20,.22), inset 14px 16px 34px rgba(255,240,220,.35), 0 44px 66px -34px rgba(150,70,10,.35); }
/* News: le schede della Time Machine passano sotto la barra del menu (1 novembre 2026) */
.tm, .tm-stage{ position:relative; isolation:isolate; z-index:0; }
.nav{ z-index:100; }
.af-priv p{ text-wrap:balance; }
/* Prova tu: quinto bonus (questionari) su tutta la riga (1 novembre 2026) */
.pg-bonus li:nth-child(5):last-child{ grid-column:1 / -1; }
.pgx .pg-track .pg-tick{ display:none; }
/* L'app: testo d'apertura senza parole isolate a fine paragrafo (1 novembre 2026) */
.page-head.apx-head .intro{ max-width:66ch; text-wrap:pretty; }
/* Pagina in lavorazione (1 novembre 2026) */
.wip{ display:inline-flex; align-items:flex-start; gap:10px; max-width:640px; margin:22px auto 0; padding:12px 18px; border-radius:12px; background:#FDF1E6; border:1px solid rgba(217,111,32,.35); color:#7a3d0e; font-size:15px; line-height:1.5; text-align:left; }
.wip b{ color:var(--terra); margin-right:4px; }
.wip-ic{ flex:0 0 22px; width:22px; height:22px; color:var(--terra); margin-top:1px; }
.wip-ic svg{ width:100%; height:100%; }
/* Screening: i controlli periodici con il medico di medicina generale (1 novembre 2026) */
.gp-check{ max-width:760px; margin:0 auto; background:var(--cream); border:1px solid var(--line); border-radius:22px; padding:clamp(22px,3vw,34px) clamp(22px,3.4vw,40px); }
.gp-check ul{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.gp-check li{ position:relative; padding-left:34px; font-size:17px; line-height:1.5; }
.gp-check li::before{ content:""; position:absolute; left:0; top:2px; width:22px; height:22px; border-radius:50%; background:var(--terra) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4L18 8'/%3E%3C/svg%3E") center/14px no-repeat; }
.ph-wip .scroll-hint{ display:none; }
/* Il contesto: nota sui dati (5 novembre 2026) */
.data-note{ max-width:720px; margin:0 auto 26px; text-align:center; font-size:14px; line-height:1.6; color:var(--muted); font-style:italic; }

.imp-list.ctx .imp-row .t{ font-weight:600; color:var(--ink); }
.imp-row .imp-src{ margin-top:14px; font-size:12.5px; line-height:1.45; color:var(--muted); font-style:italic; font-weight:400; }
.imp-row .imp-src a{ color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
.tchart .tc-src{ margin:12px 2px 2px; font-size:12px; line-height:1.4; color:var(--muted); font-style:italic; }
.tchart .tc-src a{ color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
@media(max-width:700px){ .tchart .tc-src{ font-size:11.5px; } }

.tchart .tc-unit{ font-weight:700; color:var(--ink); }
@media(min-width:621px){ .tz4 .tchart.sqc .tc-unit{ max-width:none; white-space:nowrap; } }

/* via l'alone arancione in alto a destra del riquadro verde "Un esempio concreto" */
.ibig::before{ display:none!important; content:none!important; }
.ibig .ib-intro{ position:relative; max-width:760px; margin:-16px auto clamp(28px,3.5vw,42px); font-size:clamp(14px,1.3vw,16px); line-height:1.55; color:rgba(255,255,255,.82); }

/* "Un esempio concreto": barre orizzontali come nel vecchio riquadro Lombardia, con cursore */
.ibig .scn{ position:relative; max-width:860px; margin:0 auto; }
.ibig .scn-ct{ text-align:center; font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(20px,2.2vw,28px); font-weight:700; color:#F2A66B; letter-spacing:-.01em; margin-bottom:clamp(18px,2.2vw,26px); }

/* Cursore */
.ibig .scn-slider{ max-width:660px; margin:clamp(26px,3.2vw,40px) auto 0; padding:0 22px; }
.ibig .scn-cur-txt{ text-align:center; margin-bottom:8px; font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(30px,3.4vw,42px); font-weight:800; color:#F2A66B; font-variant-numeric:tabular-nums; line-height:1; }
.ibig .scn-input{ -webkit-appearance:none; appearance:none; display:block; width:100%; height:34px; background:transparent; cursor:pointer; margin:0; padding:0; touch-action:pan-y; }
.ibig .scn-input:focus{ outline:none; }
.ibig .scn-input::-webkit-slider-runnable-track{ height:10px; border-radius:5px; background:linear-gradient(to right, #F2A66B 0, #F2A66B var(--w,100%), rgba(255,255,255,.22) var(--w,100%), rgba(255,255,255,.22) 100%); }
.ibig .scn-input::-moz-range-track{ height:10px; border-radius:5px; background:rgba(255,255,255,.22); }
.ibig .scn-input::-moz-range-progress{ height:10px; border-radius:5px; background:#F2A66B; }
.ibig .scn-input::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:30px; height:30px; margin-top:-10px; border-radius:50%; background:#fff; border:4px solid #F2A66B; box-shadow:0 4px 12px rgba(0,0,0,.35); cursor:grab; }
.ibig .scn-input::-moz-range-thumb{ width:30px; height:30px; border-radius:50%; background:#fff; border:4px solid #F2A66B; box-shadow:0 4px 12px rgba(0,0,0,.35); cursor:grab; box-sizing:border-box; }
.ibig .scn-input:focus-visible::-webkit-slider-thumb{ box-shadow:0 0 0 4px rgba(242,166,107,.45), 0 4px 12px rgba(0,0,0,.35); }
.ibig .scn-input:focus-visible::-moz-range-thumb{ box-shadow:0 0 0 4px rgba(242,166,107,.45), 0 4px 12px rgba(0,0,0,.35); }
.ibig .scn-ticks{ position:relative; height:24px; margin-top:6px; }
.ibig .scn-ticks span{ position:absolute; top:0; left:calc(15px + (100% - 30px) * var(--p)); transform:translateX(-50%); font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(15px,1.5vw,19px); font-weight:700; color:rgba(255,255,255,.9); white-space:nowrap; }
.ibig .scn-slider-hint{ margin-top:clamp(20px,2.4vw,28px); font-size:12.5px; color:rgba(255,255,255,.65); text-align:center; letter-spacing:.02em; }


@media(max-width:620px){
  .ibig .scn-ticks span{ font-size:13px; }
  .ibig .scn-ticks span:first-child{ transform:translateX(-100%); }
  .ibig .scn-ticks span:nth-child(2){ transform:translateX(-25%); }
}

/* grafico compatto (10 novembre 2026): cursore, poi due barre (anni di vita, risparmi SSN) con il valore a fianco */
.ibig .scn-ct{ margin-bottom:clamp(10px,1.4vw,16px); }
.ibig .scn-slider{ margin-top:0; }
.ibig .scn-cur-sub{ text-align:center; margin:2px 0 6px; font-size:clamp(13px,1.2vw,15px); color:rgba(255,255,255,.75); font-variant-numeric:tabular-nums; }
.ibig .scn-slider-hint{ margin-top:clamp(10px,1.4vw,16px); }
.ibig .scn-res{ display:grid; gap:clamp(12px,1.6vw,18px); margin-top:clamp(24px,3vw,36px); text-align:left; }
.ibig .scn-row{ display:grid; grid-template-columns:minmax(0,250px) minmax(0,1fr) 150px; align-items:center; gap:16px; }
.ibig .scn-rl{ font-size:clamp(14px,1.3vw,16px); line-height:1.3; color:rgba(255,255,255,.9); }
.ibig .scn-rt{ height:clamp(26px,2.8vw,36px); border-radius:8px; background:rgba(255,255,255,.1); overflow:hidden; }
.ibig .scn-rt i{ display:block; height:100%; border-radius:8px; }
.ibig .scn-mb-ly{ background:#F2A66B; }
.ibig .scn-mb-eu{ background:rgba(255,255,255,.85); }
.ibig .scn-rv{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(22px,2.4vw,32px); font-weight:700; line-height:1; letter-spacing:-.02em; text-align:left; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ibig .scn-row-ly .scn-rv{ color:#F2A66B; }
.ibig .scn-rv small{ font-size:.5em; font-weight:600; letter-spacing:0; margin-left:3px; }
/* 10 novembre 2026: le barre al centro, più grandi; il cursore sotto, un po' più piccolo */
.ibig .scn-res{ margin-top:clamp(18px,2.4vw,28px); gap:clamp(16px,2vw,24px); }
.ibig .scn-row{ grid-template-columns:minmax(0,270px) minmax(0,1fr) 190px; gap:18px; }
.ibig .scn-rl{ font-size:clamp(15px,1.5vw,18px); font-weight:600; }
.ibig .scn-rt{ height:clamp(36px,3.8vw,50px); border-radius:10px; }
.ibig .scn-rt i{ border-radius:10px; }
.ibig .scn-rv{ font-size:clamp(28px,3.3vw,44px); }
.ibig .scn-slider{ max-width:560px; margin:clamp(30px,3.6vw,44px) auto 0; }
.ibig .scn-cur-txt{ font-size:clamp(22px,2.4vw,30px); margin-bottom:4px; }
.ibig .scn-cur-sub{ font-size:clamp(12.5px,1.1vw,14px); }
.ibig .scn-input{ height:28px; }
.ibig .scn-input::-webkit-slider-runnable-track{ height:8px; border-radius:4px; }
.ibig .scn-input::-moz-range-track, .ibig .scn-input::-moz-range-progress{ height:8px; border-radius:4px; }
.ibig .scn-input::-webkit-slider-thumb{ width:24px; height:24px; margin-top:-8px; border-width:3px; }
.ibig .scn-input::-moz-range-thumb{ width:24px; height:24px; border-width:3px; }
.ibig .scn-ticks span{ font-size:clamp(13px,1.2vw,15px); left:calc(12px + (100% - 24px) * var(--p)); }
.ibig .scn-slider-hint{ margin-top:10px; font-size:12px; }
/* 10 novembre 2026: la percentuale del cursore accanto al titolo, grande quasi come i valori delle barre */
.ibig .scn-ct{ display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; column-gap:clamp(12px,1.4vw,18px); row-gap:2px; }
.ibig .scn-ct-pct{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(28px,3.1vw,40px); font-weight:800; line-height:1; letter-spacing:-.02em; color:#F2A66B; font-variant-numeric:tabular-nums; min-width:4.1ch; text-align:left; }
/* 10 novembre 2026: riquadro più basso, così entra intero anche negli schermi da 13–14 pollici */
.ibig.scn-wrap{ padding-top:clamp(32px,3.4vw,46px); padding-bottom:clamp(30px,3.2vw,44px); }
.ibig.scn-wrap .ib-eye{ margin-bottom:10px; }
.ibig.scn-wrap .ib-h{ margin-bottom:28px; }
.ibig.scn-wrap .ib-intro{ margin-bottom:clamp(18px,2vw,24px); }
.ibig.scn-wrap .scn-slider{ margin-top:clamp(22px,2.4vw,30px); }
.ibig.scn-wrap .ib-src{ margin-top:clamp(16px,1.8vw,22px); }
@media(max-width:620px){
  .ibig .scn-row{ grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; }
  .ibig .scn-rl{ grid-column:1 / -1; }
}

/* 11 novembre 2026: "Un esempio concreto" con 100 pallini, quattro pulsanti e due barre verticali */
.ibig .scn-sub{ text-align:center; margin:0 0 clamp(14px,1.8vw,20px); font-size:clamp(13px,1.2vw,15px); color:rgba(255,255,255,.78); font-variant-numeric:tabular-nums; }
.ibig .scn-seg{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; max-width:560px; margin:0 auto clamp(20px,2.4vw,28px); padding:5px; border-radius:14px; background:rgba(0,0,0,.18); }
.ibig .scn-seg button{ font:inherit; border:0; border-radius:10px; padding:8px 6px; background:transparent; color:#fff; cursor:pointer; line-height:1.2; transition:background .2s,color .2s; }
.ibig .scn-seg button b{ display:block; font-size:clamp(14px,1.5vw,17px); font-weight:800; }
.ibig .scn-seg button small{ display:block; font-size:12px; color:rgba(255,255,255,.75); font-variant-numeric:tabular-nums; }
.ibig .scn-seg button:hover{ background:rgba(255,255,255,.08); }
.ibig .scn-seg button[aria-pressed="true"]{ background:#F2A66B; color:#003F27; }
.ibig .scn-seg button[aria-pressed="true"] small{ color:#003F27; }
.ibig .scn-seg button:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.ibig .scn-body{ display:grid; grid-template-columns:minmax(0,250px) minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:center; max-width:820px; margin:0 auto; text-align:left; }
.ibig .scn-v3 .scn-body{ grid-template-columns:minmax(0,220px) minmax(0,1fr); align-items:center; }
.ibig .scn-v3 .scn-say{ text-align:left; margin:0 0 clamp(14px,1.8vw,18px); font-size:clamp(15px,1.5vw,18px); }
.ibig .scn-v3 .scn-vbars{ align-items:start; }
.ibig .scn-v3 .scn-vl{ min-height:2.6em; }
.ibig .scn-v3 .scn-leg{ gap:2px 10px; font-size:12px; }
.ibig .scn-v3 .scn-seg{ grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.9fr); max-width:680px; align-items:stretch; }
.ibig .scn-v3 .scn-seg button{ display:flex; flex-direction:column; justify-content:center; }
.ibig .scn-v3 .scn-seg button.proj b{ font-size:clamp(13px,1.25vw,15px); line-height:1.2; }
.ibig .scn-seg button.proj{ box-shadow:inset 0 0 0 1.5px rgba(242,166,107,.55); }
.ibig .scn-seg button.proj[aria-pressed="true"]{ background:repeating-linear-gradient(135deg,#F2A66B 0 6px,#F6C29A 6px 12px); color:#003F27; box-shadow:none; }
.ibig .scn-wf i.p{ background:repeating-linear-gradient(135deg,#F2A66B 0 2.5px,transparent 2.5px 5px); border-color:#F2A66B; }
.ibig .scn-leg .lp::before{ background:repeating-linear-gradient(135deg,#F2A66B 0 2px,transparent 2px 4px); border-color:#F2A66B; }
.ibig .scn-v3 .scn-vt i{ border-radius:0; }
.ibig .scn-v3 .scn-vt i.m{ border-radius:0 0 10px 10px; }
.ibig .scn-v3 .scn-vb-ly .scn-vt i.p{ background:repeating-linear-gradient(135deg,rgba(242,166,107,.95) 0 7px,rgba(242,166,107,.3) 7px 14px); }
.ibig .scn-v3 .scn-vb-eu .scn-vt i.p{ background:repeating-linear-gradient(135deg,rgba(255,255,255,.85) 0 7px,rgba(255,255,255,.25) 7px 14px); }
.ibig .scn-v3 .scn-vt i.p{ transition:height .45s ease, bottom .45s ease; }
.ibig .scn-v3 .scn-say em{ font-style:normal; font-size:.82em; color:rgba(255,255,255,.7); }
.ibig .scn-wf i.k{ cursor:pointer; transition:background .3s,border-color .3s,transform .15s; }
.ibig .scn-wf i.k:hover{ transform:scale(1.25); border-color:#F2A66B; }
.ibig .scn-wf i.sel{ box-shadow:0 0 0 2.5px #fff; }
.ibig .scn-vbox{ position:relative; }
.ibig .scn-vbars{ transition:opacity .45s ease, transform .45s ease; }
.ibig .scn-vbox.off .scn-vbars{ opacity:0; visibility:hidden; transform:translateY(12px); }
.ibig .scn-vhint{ position:absolute; inset:0; display:block; text-align:left; padding:0;
  font-size:clamp(13.5px,1.3vw,16px); line-height:1.45; color:rgba(255,255,255,.55);
  opacity:0; visibility:hidden; transition:opacity .3s ease; text-wrap:balance; }
.ibig .scn-vbox.off .scn-vhint{ opacity:1; visibility:visible; }
.ibig .scn-wf i.nx{ animation:scnNext 1.6s ease-in-out infinite; }
@media(max-width:700px){ .ibig .scn-vhint{ text-align:center; } }
@keyframes scnNext{ 0%,100%{ border-color:rgba(255,255,255,.35); box-shadow:0 0 0 0 rgba(242,166,107,0); } 50%{ border-color:#F2A66B; box-shadow:0 0 0 4px rgba(242,166,107,.35); } }
@media (prefers-reduced-motion:reduce){ .ibig .scn-wf i.nx{ animation:none; border-color:#F2A66B; } }
.ibig .scn-ct-oggi{ font-size:.62em; font-weight:600; letter-spacing:0; margin-right:.3em; }
.ibig .scn-tip{ margin-top:8px; text-align:center; font-size:12px; line-height:1.35; color:rgba(255,255,255,.62); }
.ibig .scn-v3 .scn-wf{ max-width:220px; }
.ibig .scn-v3 .scn-vt{ height:clamp(130px,12.5vw,166px); }
.ibig .scn-v3 .scn-seg{ margin-bottom:clamp(14px,1.8vw,20px); }
.ibig .scn-v3 .scn-sub{ margin:clamp(16px,2vw,22px) auto 0; max-width:820px; font-size:clamp(14px,1.45vw,17px); line-height:1.45; color:rgba(255,255,255,.85); text-wrap:balance; }
.ibig .scn-v3 .scn-sub strong{ font-weight:700; color:#F2A66B; white-space:nowrap; }
.ibig .scn-v3 .scn-ct{ margin-bottom:clamp(12px,1.6vw,18px); }
.ibig .scn-body > *{ min-width:0; }
.ibig .scn-wf{ display:grid; grid-template-columns:repeat(10,1fr); gap:clamp(4px,.6vw,6px); max-width:250px; margin:0 auto; }
.ibig .scn-wf i{ display:block; aspect-ratio:1; border-radius:50%; border:1.5px solid rgba(255,255,255,.35); background:transparent; transition:background .3s,border-color .3s; }
.ibig .scn-wf i.b{ background:rgba(255,255,255,.9); border-color:rgba(255,255,255,.9); }
.ibig .scn-wf i.o{ background:#F2A66B; border-color:#F2A66B; }
.ibig .scn-leg{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 12px; margin-top:12px; font-size:12.5px; color:rgba(255,255,255,.78); }
.ibig .scn-leg span::before{ content:""; display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:5px; vertical-align:-1px; border:1.5px solid rgba(255,255,255,.35); }
.ibig .scn-leg .lb::before{ background:rgba(255,255,255,.9); border-color:rgba(255,255,255,.9); }
.ibig .scn-leg .lo::before{ background:#F2A66B; border-color:#F2A66B; }
.ibig .scn-say{ margin:0 0 clamp(14px,1.8vw,20px); font-size:clamp(16px,1.7vw,20px); font-weight:300; line-height:1.4; text-wrap:balance; }
.ibig .scn-say strong{ font-weight:700; }
.ibig .scn-say b{ font-weight:700; color:#F2A66B; }
.ibig .scn-vbars{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2.4vw,32px); align-items:end; }
.ibig .scn-vb{ display:grid; justify-items:center; gap:8px; text-align:center; }
.ibig .scn-vv{ font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(24px,2.8vw,36px); font-weight:700; line-height:1; letter-spacing:-.02em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ibig .scn-vv small{ font-size:.5em; font-weight:600; letter-spacing:0; }
.ibig .scn-vb-ly .scn-vv{ color:#F2A66B; }
.ibig .scn-vt{ position:relative; width:clamp(64px,7vw,92px); height:clamp(120px,13vw,170px); border-radius:10px; background:rgba(255,255,255,.1); overflow:hidden; }
.ibig .scn-vt i{ position:absolute; left:0; right:0; bottom:0; border-radius:10px; transition:height .45s ease; }
.ibig .scn-vb-ly .scn-vt i{ background:#F2A66B; }
.ibig .scn-vb-eu .scn-vt i{ background:rgba(255,255,255,.85); }
.ibig .scn-vl{ max-width:230px; font-size:clamp(13px,1.2vw,15px); font-weight:600; line-height:1.3; color:rgba(255,255,255,.92); }
.ibig .scn-note{ margin-top:10px; text-align:center; font-size:12.5px; color:rgba(255,255,255,.6); }
@media(max-width:700px){
  .ibig .scn-body, .ibig .scn-v3 .scn-body{ grid-template-columns:1fr; gap:22px; }
  .ibig .scn-v3 .scn-wf{ max-width:230px; }
  .ibig .scn-wf{ max-width:230px; }
  .ibig .scn-say, .ibig .scn-v3 .scn-say{ text-align:center; }
  .ibig .scn-seg button{ padding:7px 2px; }
  .ibig .scn-seg button small{ font-size:11px; }
  .ibig .scn-v3 .scn-seg{ gap:3px; padding:4px; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .ibig .scn-v3 .scn-seg button.proj{ grid-column:1 / -1; }
  .ibig .scn-v3 .scn-seg button b{ font-size:13px; letter-spacing:-.02em; }
}
@media (prefers-reduced-motion:reduce){ .ibig .scn-wf i, .ibig .scn-vt i{ transition:none; } }

/* Casi internazionali in "Impatto atteso": 4 cards, 2x2 su desktop, 1 colonna su mobile */
.cases-sec{ padding-top:18px; }
.icases{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(18px,2.4vw,30px); margin-top:clamp(28px,3vw,42px); }
.icase{ position:relative; background:var(--card); border:1px solid var(--line); border-radius:22px; padding:clamp(24px,3vw,36px) clamp(22px,2.6vw,32px); box-shadow:var(--shadow); display:flex; flex-direction:column; }
.icase .ic-place{ font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--terra); margin-bottom:8px; }
.icase h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:clamp(20px,2vw,24px); line-height:1.25; color:var(--ink); margin:0 0 16px; }
.icase .ic-nn{ display:flex; align-items:flex-start; gap:clamp(14px,1.8vw,22px); padding:clamp(14px,1.8vw,22px) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:4px 0 16px; }
.icase .ic-n{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(44px,5vw,70px); line-height:1; letter-spacing:-.035em; color:var(--green); font-variant-numeric:tabular-nums; white-space:nowrap; flex:none; }
.icase .ic-lead{ font-size:clamp(14px,1.3vw,16px); line-height:1.4; color:var(--ink); align-self:center; }
.icase .ic-body{ font-size:clamp(14px,1.25vw,15.5px); line-height:1.55; color:var(--ink); margin:0 0 14px; }
.icase .ic-src{ margin:auto 0 0; font-size:12.5px; line-height:1.5; color:var(--muted); font-style:italic; }
.icase .ic-src a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
.icase .ic-src a:hover{ color:var(--green); }
@media(max-width:820px){ .icases{ grid-template-columns:1fr; } }

/* La prevenzione: pagina unica a scorrimento (9 novembre 2026) */
.pv-sec{ scroll-margin-top:84px; }
.pv-sec + hr.rule{ margin:0; }
.pv-toc a{ white-space:nowrap; }
.pv-grid{ margin-top:clamp(22px,2.6vw,34px); }
.pv-card h3{ font-size:18px; margin-bottom:8px; }
.pv-card p{ font-size:15px; line-height:1.55; color:var(--ink); margin:0; }
.pv-facts{ margin:4px 0 0; display:grid; gap:10px; }
.pv-facts div{ display:grid; grid-template-columns:64px 1fr; gap:10px; align-items:baseline; }
.pv-facts dt{ font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--terra); }
.pv-facts dd{ margin:0; font-size:15px; line-height:1.45; color:var(--ink); }
.pv-note{ max-width:760px; margin:clamp(20px,2.4vw,28px) auto 0; text-align:center; font-size:15.5px; line-height:1.6; color:var(--ink); }
.pv-cta{ max-width:860px; margin:0 auto; text-align:center; background:var(--green); color:#fff; border-radius:28px; padding:clamp(32px,4vw,52px) clamp(22px,4vw,48px); }
.pv-cta h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; font-size:clamp(26px,3vw,38px); line-height:1.15; color:#fff; margin:0 0 12px; }
.pv-cta h2 em{ font-style:normal; font-weight:700; color:#F2A66B; }
.pv-cta p{ margin:0 auto 22px; max-width:56ch; font-size:16px; line-height:1.55; color:rgba(255,255,255,.88); }
.pv-cta .btn-pill{ background:#F2A66B; color:#003F27; }
.pv-src{ max-width:860px; margin:28px auto 0; text-align:center; font-size:12.5px; line-height:1.6; color:var(--muted); font-style:italic; }
.pv-disc{ max-width:860px; margin:10px auto 0; text-align:center; font-size:13px; line-height:1.6; color:var(--muted); }
@media(max-width:900px){ .gcards.c4.pv-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px){ .pv-grid, .gcards.c4.pv-grid{ grid-template-columns:1fr; } }

.page-head .cf-intro{ text-wrap:balance; }

.af-priv p + p{ margin-top:14px; font-weight:600; color:var(--green); }

.ext-link{ color:var(--green); font-weight:600; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.ext-link:hover{ color:var(--terra); }

.nf-head{ min-height:62vh; display:flex; align-items:center; }
.nf-head .container{ width:100%; }
.nf-head .cta-row{ justify-content:center; }
.nf-head .scroll-hint{ display:none !important; }
.nf-head .btn-out.nf-main{ background:var(--green); color:#fff; }
.nf-head .btn-out.nf-main:hover{ background:var(--green-d); border-color:var(--green-d); }
