:root{
  --green:#008f45;--green-dark:#006b35;--green-soft:#eaf6ef;
  --navy:#07376d;--navy-dark:#052b56;--navy-soft:#edf3fa;
  --ink:#152433;--muted:#647180;--line:#dbe3e9;--white:#fff;
  --shadow:0 18px 50px rgba(5,43,86,.10);--radius:22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.55}img{max-width:100%;display:block}a{color:inherit}.container{width:min(1180px,calc(100% - 40px));margin:auto}.narrow{width:min(850px,100%)}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:999}.topline{height:36px;display:flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(90deg,var(--green-dark),var(--green));color:#fff;font-weight:800;letter-spacing:.18em;font-size:.78rem}.topline span{opacity:.65}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(5,43,86,.08)}.nav{height:84px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy);font-weight:800}.brand img{width:62px;height:62px;object-fit:contain}.brand b{color:var(--green)}.nav-links{display:flex;align-items:center;gap:24px}.nav-links a{text-decoration:none;font-weight:650;font-size:.95rem}.nav-links a:hover{color:var(--green)}.nav-cta{padding:10px 16px;background:var(--navy);color:#fff!important;border-radius:999px}.nav-toggle{display:none;background:none;border:0;padding:8px}.nav-toggle span{display:block;width:26px;height:2px;background:var(--navy);margin:5px}.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 80% 25%,rgba(0,143,69,.12),transparent 25%),linear-gradient(180deg,#fff 0%,#f6fbf8 100%);padding:82px 0 92px}.hero:after{content:"";position:absolute;left:-8%;right:-8%;bottom:-120px;height:190px;border-radius:50% 50% 0 0;background:linear-gradient(90deg,rgba(0,143,69,.16),rgba(7,55,109,.12));transform:rotate(-2deg)}.hero-grid{display:grid;grid-template-columns:1.13fr .87fr;gap:70px;align-items:center;position:relative;z-index:2}.eyebrow{margin:0 0 10px;color:var(--green);font-weight:850;text-transform:uppercase;letter-spacing:.13em;font-size:.8rem}.hero h1,.section h2{margin:.1em 0;color:var(--navy);line-height:1.08}.hero h1{font-size:clamp(2.7rem,5vw,5.35rem);letter-spacing:-.045em}.hero h1 span{color:var(--green)}.hero-lead{font-size:1.2rem;max-width:700px;color:#405165}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:999px;text-decoration:none;font-weight:800;transition:.2s}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(5,43,86,.18)}.btn-secondary{border:1.5px solid var(--green);color:var(--green-dark);background:#fff}.regions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px;color:var(--navy);font-weight:700;font-size:.88rem}.regions i{font-style:normal;color:var(--green)}.hero-mark{position:relative;display:grid;place-items:center}.hero-mark>img{width:min(450px,90%);filter:drop-shadow(0 24px 50px rgba(5,43,86,.13))}.molecule{position:absolute;right:-35px;top:-10px;width:190px;height:150px;opacity:.24}.node{position:absolute;width:24px;height:24px;border-radius:50%;background:var(--green);box-shadow:0 0 0 8px rgba(0,143,69,.08)}.n1{left:15px;top:65px}.n2{left:85px;top:18px;background:var(--navy)}.n3{right:6px;top:65px}.n4{left:87px;bottom:4px;background:var(--navy)}.bond{position:absolute;height:3px;background:var(--navy);transform-origin:left center}.b1{width:86px;left:32px;top:72px;transform:rotate(-35deg)}.b2{width:85px;left:105px;top:37px;transform:rotate(32deg)}.b3{width:83px;left:101px;top:42px;transform:rotate(90deg)}.section{padding:92px 0}.intro{text-align:center}.section h2{font-size:clamp(2.1rem,3.7vw,3.8rem);letter-spacing:-.035em}.big-copy{font-size:1.24rem;color:#405165}.objectives,.candidates,.downloads{background:#f7faf9}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:36px}.section-heading>p{max-width:480px;color:var(--muted);font-size:1.02rem}.goal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.goal-card{padding:30px;border:1px solid #cde7d8;border-radius:var(--radius);background:linear-gradient(145deg,#fff,var(--green-soft));box-shadow:var(--shadow)}.goal-card.accent-blue{border-color:#c7d8eb;background:linear-gradient(145deg,#fff,var(--navy-soft))}.goal-icon{width:64px;height:64px;border-radius:20px;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:900;font-size:1.25rem;margin-bottom:18px}.accent-blue .goal-icon{background:var(--navy)}.goal-card h3{margin:0;color:var(--navy);font-size:1.35rem}.goal-card p{color:#526173}.priority-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px}.priority-grid article{display:flex;gap:18px;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:#fff}.priority-grid span{flex:0 0 44px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:900}.priority-grid h3{margin:0;color:var(--navy);font-size:1.05rem}.priority-grid p{margin:5px 0 0;color:var(--muted);font-size:.94rem}.candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.candidate-card{overflow:hidden;background:#fff;border-radius:var(--radius);border:1px solid var(--line);box-shadow:0 12px 35px rgba(5,43,86,.07);transition:.2s}.candidate-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.candidate-card img{width:100%;height:275px;object-fit:cover;object-position:center 30%;background:var(--navy-soft)}.candidate-body{padding:22px}.role{display:inline-block;color:var(--green);font-weight:850;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}.candidate-card h3{margin:6px 0 8px;color:var(--navy);font-size:1.3rem}.candidate-card p{margin:0;color:var(--muted);font-size:.94rem}.new-entries{margin-top:22px;padding:24px 26px;border:1.5px dashed #8ac7a6;border-radius:var(--radius);display:flex;gap:20px;align-items:center;background:#fff}.new-entries .plus{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:2rem;font-weight:700}.new-entries h3{margin:0;color:var(--navy)}.new-entries p{margin:4px 0 0;color:var(--muted)}.program-grid{display:grid;grid-template-columns:1fr .8fr;gap:60px;align-items:center}.program-copy>p{color:#526173;font-size:1.05rem}.check-list{padding:0;margin:25px 0;list-style:none}.check-list li{position:relative;padding:9px 0 9px 34px;border-bottom:1px solid #eef1f3}.check-list li:before{content:"✓";position:absolute;left:0;top:8px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:.75rem;font-weight:900}.program-preview{display:flex;justify-content:center}.program-preview img{width:min(420px,100%);border-radius:16px;box-shadow:0 25px 60px rgba(5,43,86,.18);border:1px solid var(--line)}.download-grid{display:grid;gap:14px;margin-top:30px}.download-card{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;text-decoration:none;padding:22px;border:1px solid var(--line);background:#fff;border-radius:18px;transition:.2s}.download-card:hover{transform:translateX(5px);border-color:#94cdb0}.file-icon{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:.78rem;font-weight:900}.download-card h3{margin:0;color:var(--navy)}.download-card p{margin:3px 0 0;color:var(--muted)}.download-card>b{font-size:1.5rem;color:var(--green)}.final-claim{padding:68px 0;background:linear-gradient(120deg,var(--navy-dark),var(--navy) 55%,var(--green-dark));color:#fff}.final-claim .container{display:flex;align-items:center;justify-content:center;gap:34px;text-align:left}.final-claim img{width:130px}.final-claim p{font-weight:900;letter-spacing:.13em;font-size:.78rem;margin:0}.final-claim h2{font-size:clamp(2.2rem,4vw,4rem);margin:6px 0;line-height:1;color:#fff}.final-claim span{opacity:.75}.site-footer{padding:34px 0;background:#071c34;color:#d9e6f4}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.site-footer p{margin:.4em 0;color:#aebfd2}.footer-note{font-size:.85rem;color:#8fa5bc;align-self:end}
@media(max-width:900px){.nav-links{position:absolute;left:20px;right:20px;top:112px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.nav-toggle{display:block}.hero-grid,.program-grid{grid-template-columns:1fr}.hero{text-align:center}.hero-copy{order:2}.hero-mark{order:1}.hero-mark>img{width:280px}.regions,.hero-actions{justify-content:center}.section-heading{display:block}.goal-grid,.candidate-grid{grid-template-columns:1fr 1fr}.priority-grid{grid-template-columns:1fr}.program-preview{order:-1}.footer-grid{grid-template-columns:1fr}.final-claim .container{text-align:center;flex-direction:column}.molecule{display:none}}
@media(max-width:600px){.container{width:min(100% - 26px,1180px)}.topline{font-size:.67rem;letter-spacing:.12em}.nav{height:72px}.brand img{width:52px;height:52px}.brand span{display:none}.nav-links{top:98px}.hero{padding:54px 0 70px}.hero h1{font-size:2.55rem}.hero-lead{font-size:1.05rem}.section{padding:66px 0}.goal-grid,.candidate-grid{grid-template-columns:1fr}.candidate-card img{height:320px}.section h2{font-size:2.25rem}.goal-card{padding:24px}.program-preview img{max-height:620px;object-fit:contain}.download-card{grid-template-columns:auto 1fr}.download-card>b{display:none}.final-claim img{width:105px}}


/* CONTENUTI DEFINITIVI 2026-2030 — integrazioni alla grafica originale della demo */
.candidate-card h3 a{text-decoration:none}.candidate-card h3 a:hover,.profile-inline-link:hover{color:var(--green)}
.candidate-photo-link{display:block;overflow:hidden;background:var(--navy-soft)}.candidate-photo-link img{transition:transform .25s ease}.candidate-photo-link:hover img{transform:scale(1.035)}
.candidate-card{display:flex;flex-direction:column}.candidate-body{display:flex;flex-direction:column;flex:1}.candidate-body p{flex:1}
.president-role{color:var(--navy);font-weight:850;font-size:.82rem;margin:-2px 0 10px}.profile-inline-link{display:inline-flex;margin-top:17px;color:var(--navy);text-decoration:none;font-weight:800;font-size:.85rem;align-items:center;gap:5px}
.review-heading{margin:60px 0 25px}.review-heading h3{color:var(--navy);font-size:clamp(1.5rem,2.5vw,2rem);margin:4px 0}
.governance-callout{margin-top:24px;border:1px solid #a9d7c1;background:linear-gradient(115deg,#eaf6ef,#f1f7fd);padding:24px 26px;border-radius:18px;display:flex;gap:19px;align-items:flex-start}
.governance-number{display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900;border-radius:50%;width:44px;height:44px;flex:0 0 44px}
.governance-callout h3{color:var(--navy);margin:0 0 7px;font-size:1.12rem}.governance-callout p{color:#465d70;margin:0;max-width:930px;font-size:.96rem}
/* I profili utilizzano la stessa tipografia, palette e componenti della demo. */
.person-hero{background:radial-gradient(circle at 80% 0%,rgba(0,143,69,.12),transparent 32%),linear-gradient(150deg,#f6fbf8,#eef5fc);padding:45px 0 65px}
.person-back{color:var(--navy);text-decoration:none;font-weight:800;font-size:.9rem}.person-back:hover{color:var(--green)}
.person-intro{display:grid;grid-template-columns:225px 1fr;gap:50px;align-items:center;padding-top:30px}
.person-photo{width:215px;height:215px;border-radius:50%;overflow:hidden;background:var(--navy-soft);border:7px solid #fff;box-shadow:0 18px 45px rgba(5,43,86,.15)}
.person-photo img{width:100%;height:100%;object-fit:cover}
.person-intro h1{color:var(--navy);font-size:clamp(2.1rem,4.5vw,3.9rem);line-height:1.07;margin:8px 0 13px;letter-spacing:-.035em}
.person-label{font-size:.92rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--green-dark)}
.person-role{font-weight:800;color:var(--navy);font-size:1.08rem;margin:7px 0}
.person-intro-copy{font-size:1.08rem;color:#526173;max-width:790px;margin:15px 0 0}
.person-detail{padding:75px 0}.person-grid{display:grid;grid-template-columns:1fr 305px;gap:60px;align-items:start}
.person-content section{border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:27px}.person-content section:last-child{border:0}
.person-content h2{color:var(--navy);font-size:1.6rem;letter-spacing:-.02em;margin:0 0 22px}
.person-content p{font-size:1.04rem;color:#425568;line-height:1.76}.person-content p strong{color:var(--navy)}
.person-reasons{border-left:5px solid var(--green);border-radius:18px;background:linear-gradient(120deg,#eaf6ef,#f3f8fc);padding:27px 30px!important}
.person-sidebar{position:sticky;top:145px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;text-align:center}
.person-sidebar img{width:140px;margin:auto}.person-sidebar p{font-size:1.2rem;font-weight:850;color:var(--navy)}.person-sidebar .btn{margin-top:13px;width:100%;font-size:.86rem;padding:13px 9px}
.person-next{border-top:1px solid var(--line);padding:25px 0 50px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted)}
.person-next a{color:var(--green);font-weight:800;text-decoration:none}
@media(max-width:900px){.person-grid{grid-template-columns:1fr}.person-sidebar{position:static;max-width:460px}.person-intro{grid-template-columns:170px 1fr;gap:26px}.person-photo{height:170px;width:170px}}
@media(max-width:600px){.person-intro{grid-template-columns:1fr;gap:18px}.person-photo{height:170px;width:170px}.person-hero{padding:28px 0 48px}.person-detail{padding:48px 0}.person-content h2{font-size:1.35rem}.governance-callout{padding:20px 16px;gap:11px}.governance-number{height:38px;width:38px;flex-basis:38px}.person-next{flex-direction:column;align-items:flex-start}}


/* DEMO 04 – finiture concordate: stessi caratteri, sfondi coordinati delle foto,
   download, conclusione istituzionale ed effetti responsive. */
.candidate-photo-link{background:linear-gradient(115deg,#dff5e9,#dcecfb)}
.candidate-photo-link img{width:100%;height:275px;object-fit:cover;object-position:center center;background:linear-gradient(115deg,#dff5e9,#dcecfb)}
.person-photo{background:linear-gradient(115deg,#dff5e9,#dcecfb)}
.person-photo img{width:100%;height:100%;object-fit:cover;object-position:center center}
.download-card-pending{cursor:default;background:linear-gradient(115deg,#f2f6f7,#f8f9fa);border-style:dashed;color:#647180}
.download-card-pending:hover{transform:none;border-color:var(--line)}
.download-card-pending .file-icon{background:#8596a5;font-size:.58rem}
.download-card-pending h3{color:#425c70}
.final-claim{position:relative;overflow:hidden;padding:78px 0 82px;background:linear-gradient(112deg,#063c62 0%,#005d5a 53%,#007a52 100%);color:#fff;text-align:center}
.final-claim:before{content:"";position:absolute;border:1px solid rgba(255,255,255,.19);border-radius:50%;height:620px;width:620px;top:22%;right:-330px;pointer-events:none}
.final-claim .claim-inner{display:flex;flex-direction:column;align-items:center;gap:0;position:relative;z-index:1;text-align:center}
.final-claim .claim-regions{font-size:.76rem;font-weight:900;letter-spacing:.18em;color:#b7e4d7;margin:0 0 32px;text-transform:uppercase}
.final-claim h2{font-family:Georgia,serif;font-size:clamp(3rem,6.2vw,6.4rem);line-height:1.02;letter-spacing:-.04em;margin:0 0 25px;font-weight:800}
.final-claim h2 em{font-style:italic;color:#91e1bf;font-weight:400}
.final-claim .claim-explainer{font-size:clamp(.94rem,1.35vw,1.12rem);font-weight:400;line-height:1.8;max-width:720px;margin:0 0 28px;color:#edfafa;letter-spacing:0}
.official-elections-link{display:inline-flex;align-items:center;gap:14px;text-decoration:none;font-size:.97rem;font-weight:800;color:#fff;border:1px solid rgba(255,255,255,.67);padding:16px 23px;border-radius:12px;transition:background .15s, transform .15s}
.official-elections-link:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.final-claim .claim-note{font-size:.78rem;color:#b5dcd9;letter-spacing:0;line-height:1.5;margin:28px 0 0;font-weight:400}
.site-footer{padding:55px 0 24px;background:#072341;color:#d9e6f4}
.site-footer .footer-top{display:grid;grid-template-columns:1.3fr .82fr .8fr;gap:62px;padding:0 0 50px}
.footer-brand{display:flex;align-items:flex-start;gap:20px}
.footer-brand img{width:75px;height:75px;object-fit:contain}
.footer-brand strong{display:block;font-size:1.35rem;color:#fff;margin:0 0 8px}
.footer-brand p{color:#a8c7d8;font-size:.93rem;line-height:1.6;margin:0}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.footer-col strong{color:#fff;font-size:.99rem;margin-bottom:2px}
.footer-col p{font-size:.93rem;color:#a8c7d8;margin:0 0 2px}
.footer-col a{font-size:.93rem;color:#e1f8f4;text-decoration:none;font-weight:650}
.footer-col a:hover{text-decoration:underline}
.footer-bottom{border-top:1px solid rgba(255,255,255,.16);padding-top:19px;display:flex;justify-content:space-between;gap:20px;align-items:center}
.footer-bottom small{font-size:.78rem;color:#89aabf}
.footer-bottom a{color:#9bc5dc;text-decoration:none;white-space:nowrap;font-size:.83rem}
@media(max-width:900px){.site-footer .footer-top{grid-template-columns:1fr 1fr;gap:35px}.footer-brand{grid-column:1/-1}.final-claim h2{font-size:clamp(3rem,7vw,5rem)}}
@media(max-width:600px){.candidate-photo-link img{height:275px}.final-claim{padding:58px 0 70px}.final-claim .claim-regions{font-size:.62rem;margin-bottom:27px}.final-claim h2{font-size:clamp(2.85rem,12vw,4.4rem);line-height:1.12}.final-claim .claim-explainer{font-size:.96rem}.desktop-break{display:none}.official-elections-link{padding:13px 15px;font-size:.82rem}.site-footer .footer-top{grid-template-columns:1fr;gap:31px}.footer-brand{grid-column:auto}.footer-brand img{width:64px;height:64px}.footer-bottom{align-items:flex-start;flex-direction:column}}


/* DEMO04 photo alignment overrides */
.candidate-card img.img-ambrosetti{object-position:center 46%;}
.candidate-card img.img-augelli{object-position:center 42%;}
.candidate-card img.img-rocchi{object-position:center 44%;}
.person-photo img.img-ambrosetti{object-position:center 46%;}
.person-photo img.img-augelli{object-position:center 42%;}
.person-photo img.img-rocchi{object-position:center 44%;}
