:root{--ink:oklch(20% .035 245);--paper:oklch(97% .012 92);--green:oklch(68% .16 132);--blue:oklch(67% .16 228);--red:oklch(62% .20 28);--orange:oklch(68% .18 48);--yellow:oklch(78% .16 82);--line:oklch(85% .02 245);--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:Figtree,Arial,sans-serif;line-height:1.55}img{display:block;max-width:100%}a{color:inherit}button,a{font:inherit}.skip-link{position:absolute;left:1rem;top:-5rem;background:var(--yellow);color:var(--ink);padding:.7rem 1rem;z-index:100}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:82px;padding:12px max(24px,calc((100vw - var(--max))/2));background:oklch(20% .035 245/.94);border-bottom:1px solid oklch(97% .012 92/.18);backdrop-filter:blur(12px)}.brand img{width:112px;max-height:58px;object-fit:contain;filter:drop-shadow(0 4px 16px oklch(10% .02 245/.2))}.site-nav{display:flex;align-items:center;gap:clamp(12px,2vw,28px)}.site-nav a{text-decoration:none;font-weight:700;font-size:.9rem}.site-nav a:hover,.site-nav a:focus-visible{color:var(--yellow)}.nav-cta{border:1px solid var(--green);padding:.65rem .9rem}.menu-toggle{display:none;background:none;color:inherit;border:1px solid currentColor;padding:.5rem .7rem}.hero{max-width:var(--max);min-height:720px;margin:auto;padding:clamp(70px,10vw,140px) 24px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:4vw}.eyebrow,.section-number{text-transform:uppercase;letter-spacing:.15em;font-size:.76rem;font-weight:900;color:var(--green)}h1,h2,h3,p{margin-top:0}h1{max-width:9ch;margin-bottom:1.5rem;font-size:clamp(3.4rem,7.7vw,7.7rem);line-height:.84;letter-spacing:-.065em}h1 span{color:var(--yellow)}.hero-lead,.section-lead{max-width:62ch;font-size:clamp(1.08rem,1.5vw,1.32rem)}.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.8rem 1.1rem;text-decoration:none;font-weight:900;border:1px solid currentColor}.button.primary{background:var(--green);color:var(--ink);border-color:var(--green)}.button.secondary:hover{background:var(--paper);color:var(--ink)}.hero-art{position:relative;min-height:500px;display:grid;place-items:center;overflow:hidden}.hero-art img{position:relative;z-index:2;width:44%;max-height:380px;object-fit:contain}.shape{position:absolute;border-radius:50%}.s1{width:82%;aspect-ratio:1;background:var(--blue);right:-40%;top:-8%}.s2{width:62%;aspect-ratio:1;background:var(--red);right:-6%;bottom:-28%}.s3{width:34%;aspect-ratio:1;background:var(--orange);left:2%;bottom:4%}.s4{width:12%;aspect-ratio:1;background:var(--yellow);left:8%;top:11%}.topic-ribbon{display:flex;gap:3rem;overflow:hidden;padding:1rem 24px;background:var(--green);color:var(--ink);font-weight:900;white-space:nowrap}.section{padding:clamp(80px,10vw,145px) max(24px,calc((100vw - var(--max))/2))}.section h2,.final-cta h2{max-width:12ch;font-size:clamp(2.6rem,5.5vw,5.4rem);line-height:.94;letter-spacing:-.055em}.intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;background:var(--paper);color:var(--ink)}.prose{max-width:68ch}.prose h3{margin-top:2.2rem;color:var(--red);font-size:1.3rem}.topics{background:var(--red);color:var(--paper)}.topics .section-number{color:var(--yellow)}.topic-list{list-style:none;padding:0;margin:4rem 0 0;border-top:1px solid currentColor;display:grid;grid-template-columns:repeat(2,1fr)}.topic-list li{padding:1.05rem 0;border-bottom:1px solid currentColor;font-weight:700}.topic-list li:nth-child(odd){padding-right:2rem}.deep-dive{background:var(--ink)}.accordions{max-width:900px;margin-top:3rem}.accordions details{border-top:1px solid oklch(97% .012 92/.35)}.accordions details:last-child{border-bottom:1px solid oklch(97% .012 92/.35)}summary{padding:1.4rem 0;cursor:pointer;font-size:clamp(1.2rem,2.4vw,2rem);font-weight:900;color:var(--yellow)}.detail-body{max-width:70ch;padding:0 0 2rem}.schedule{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;background:var(--blue);color:var(--ink)}.schedule .section-number{color:var(--ink)}.timeline{list-style:none;padding:0;margin:0;border-top:1px solid currentColor}.timeline li{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid currentColor}.timeline time{font-weight:900}.municipalities{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;background:var(--paper);color:var(--ink)}.municipality-art{display:grid;place-items:center}.municipality-art img{width:100%;max-width:430px}.benefits{list-style:none;padding:0;margin:2rem 0 0}.benefits li{display:grid;grid-template-columns:minmax(150px,.7fr) 1.3fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--ink)}.benefits strong{color:var(--red)}.final-cta{padding:clamp(90px,12vw,170px) max(24px,calc((100vw - var(--max))/2));background:var(--yellow);color:var(--ink)}.final-cta h2{max-width:13ch}.site-footer{padding:50px max(24px,calc((100vw - var(--max))/2));background:oklch(15% .025 245);display:grid;grid-template-columns:1.3fr .7fr;gap:3rem}.footer-brand img{width:120px;margin-bottom:1.3rem}.footer-brand p{max-width:60ch;font-size:.85rem}.site-footer nav{display:flex;flex-direction:column;gap:.65rem}.copyright{grid-column:1/-1;padding-top:1rem;border-top:1px solid oklch(97% .012 92/.18);font-size:.8rem}.a11y-toggle{position:fixed;right:16px;bottom:16px;z-index:60;background:var(--yellow);color:var(--ink);border:0;padding:.65rem .9rem;font-weight:900}.a11y-panel{position:fixed;right:16px;bottom:66px;z-index:60;width:min(260px,calc(100vw - 32px));padding:12px;background:var(--paper);color:var(--ink);border:1px solid var(--ink)}.a11y-panel button{display:block;width:100%;margin:.3rem 0;padding:.6rem;text-align:left;background:transparent;border:1px solid var(--ink)}.large-text{font-size:118%}.high-contrast{--ink:oklch(10% .01 245);--paper:oklch(99% .005 92);--green:oklch(80% .2 132);--blue:oklch(78% .2 228);--red:oklch(72% .23 28);--yellow:oklch(88% .18 82)}.underline-links a{text-decoration:underline!important}.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
@media(max-width:820px){.site-header{min-height:70px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;left:0;right:0;top:70px;padding:1rem 24px;background:var(--ink);flex-direction:column;align-items:stretch}.site-nav.open{display:flex}.hero,.intro,.schedule,.municipalities{grid-template-columns:1fr}.hero{padding-top:45px}.hero-art{min-height:330px;order:-1}.topic-list{grid-template-columns:1fr}.topic-list li:nth-child(odd){padding-right:0}.benefits li{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr}.copyright{grid-column:1}.section h2,.final-cta h2{max-width:15ch}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.legal-main{background:var(--paper);color:var(--ink);padding:clamp(70px,9vw,130px) max(24px,calc((100vw - var(--max))/2))}.legal-hero{max-width:900px}.legal-hero h1{max-width:13ch;font-size:clamp(3rem,7vw,6.5rem)}.legal-updated{font-weight:700;color:var(--red)}.legal-layout{display:grid;grid-template-columns:260px 1fr;gap:6vw;margin-top:4rem}.legal-index{position:sticky;top:110px;align-self:start;display:flex;flex-direction:column;gap:.65rem;border-top:1px solid var(--ink);padding-top:1rem}.legal-content{max-width:72ch}.legal-content section{padding:0 0 3rem;scroll-margin-top:110px}.legal-content h2{max-width:none;font-size:clamp(1.8rem,3.5vw,3rem);color:var(--red)}.legal-content h3{margin-top:2rem}.legal-header-nav{display:flex;gap:1rem;flex-wrap:wrap}.legal-header-nav a{font-size:.78rem}@media(max-width:820px){.legal-layout{grid-template-columns:1fr}.legal-index{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.legal-header-nav{display:none}}

/* Logo originale su superfici chiare per la massima leggibilità. */
.site-header{background:oklch(97% .012 92/.96);color:var(--ink);border-bottom-color:oklch(20% .035 245/.18)}
.brand img{width:124px;max-height:62px;filter:none}
.site-nav a:hover,.site-nav a:focus-visible{color:var(--red)}
.site-footer{background:var(--paper);color:var(--ink)}
.footer-brand img{width:138px}
.footer-partners{margin-top:1.5rem}.footer-partners-title{margin-bottom:.45rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.footer-partners ul{display:flex;flex-wrap:wrap;gap:.35rem 1.2rem;list-style:none;margin:0;padding:0}.footer-partners a{text-underline-offset:.2em}.footer-author{display:inline-block;margin-top:.9rem;font-weight:700}
.copyright{border-top-color:oklch(20% .035 245/.22)}
@media(max-width:820px){.site-nav{background:var(--paper);color:var(--ink)}}
@media(max-width:820px){
  .menu-toggle{min-width:44px;min-height:44px}
  .site-nav a{display:flex;align-items:center;min-height:44px}
  .legal-index a{display:flex;align-items:center;min-height:44px;padding:.35rem 0}
  .footer-partners a{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:420px){
  .a11y-toggle{
    right:8px;
    bottom:8px;
    width:52px;
    height:52px;
    padding:0;
    overflow:hidden;
    font-size:0;
    border:2px solid var(--ink);
  }
  .a11y-toggle::after{content:"A11y";font-size:.75rem;letter-spacing:.01em}
  .a11y-panel{right:8px;bottom:68px;width:calc(100vw - 16px)}
}

/* Allineamento della sezione enti e fondale animato della CTA finale. */
.municipality-art{align-items:start;justify-items:center}
.municipality-art img{margin-top:0}
.final-cta{position:relative;isolation:isolate;overflow:hidden}
.final-cta>*{position:relative;z-index:2}
.final-cta::before{content:"";position:absolute;z-index:0;width:34vw;min-width:320px;aspect-ratio:1;border-radius:50%;right:-6vw;top:50%;background:var(--red);opacity:.38;transform:translateY(-50%)}
.final-cta::after{content:"";position:absolute;z-index:1;width:min(34vw,480px);aspect-ratio:1;right:7vw;top:50%;background:url("loghi/segno.png") center/contain no-repeat;opacity:.34;animation:cta-float 7s ease-in-out infinite alternate;transform-origin:center}
@keyframes cta-float{from{transform:translate3d(0,-54%,0) rotate(-4deg)}to{transform:translate3d(-22px,-46%,0) rotate(5deg)}}
@media(max-width:820px){.municipality-art{order:2}.municipality-art img{max-width:320px}.final-cta::before{right:-38vw;opacity:.24}.final-cta::after{width:58vw;right:-8vw;opacity:.22}}
@media(prefers-reduced-motion:reduce){.final-cta::after{animation:none;transform:translateY(-50%)}}

.topics .section-number{color:var(--paper)}

/* Immagini tematiche e forme del marchio distribuite lungo la pagina. */
.section{position:relative;isolation:isolate;overflow:hidden}
.section>*{position:relative;z-index:2}
.intro::before,.topics::before,.deep-dive::before,.schedule::before{content:"";position:absolute;z-index:0;background-repeat:no-repeat;background-position:center;background-size:contain;pointer-events:none}
.intro::before{width:min(34vw,500px);aspect-ratio:1;right:-7vw;bottom:-9vw;background-image:url("assets/legacy/artigiano-digitale-300x225.png");opacity:.055;filter:grayscale(1)}
.topics::before{width:min(38vw,560px);aspect-ratio:1;right:-5vw;top:5%;background-image:url("loghi/segno.png");opacity:.12;transform:rotate(12deg)}
.topics::after{content:"";position:absolute;z-index:0;width:23vw;min-width:220px;aspect-ratio:1;border-radius:50%;right:7vw;bottom:-10vw;background:var(--blue);opacity:.3}
.deep-dive::before{width:min(33vw,480px);aspect-ratio:1;right:-3vw;bottom:-7vw;background-image:url("assets/legacy/artigiani-box-testata-web-300x225.png");opacity:.08}
.deep-dive::after{content:"";position:absolute;z-index:0;width:18vw;min-width:190px;aspect-ratio:1;border-radius:50%;right:17vw;top:7%;background:var(--orange);opacity:.16}
.schedule::before{width:min(30vw,430px);aspect-ratio:1;left:-8vw;bottom:-6vw;background-image:url("loghi/segno.png");opacity:.12;transform:rotate(-10deg)}
.schedule::after{content:"";position:absolute;z-index:0;width:20vw;min-width:210px;aspect-ratio:1;border-radius:50%;left:8vw;top:6%;background:var(--yellow);opacity:.22}
.municipalities::before{content:"";position:absolute;z-index:0;width:22vw;min-width:220px;aspect-ratio:1;border-radius:50%;left:-9vw;top:-7vw;background:var(--green);opacity:.12}

/* Entrate progressive e movimento ambientale. */
.reveal-section>*,.reveal-section::before,.reveal-section::after{opacity:0;transform:translateY(30px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-section.is-visible>*,.reveal-section.is-visible::before,.reveal-section.is-visible::after{opacity:1;transform:translateY(0)}
.topics.is-visible::before{opacity:.12;animation:ambient-drift 9s ease-in-out infinite alternate}
.topics.is-visible::after{opacity:.3;animation:ambient-orbit 11s ease-in-out infinite alternate}
.deep-dive.is-visible::before{opacity:.08;animation:ambient-drift 12s ease-in-out infinite alternate-reverse}
.deep-dive.is-visible::after{opacity:.16;animation:ambient-orbit 10s ease-in-out infinite alternate}
.schedule.is-visible::before{opacity:.12;animation:ambient-drift 10s ease-in-out infinite alternate}
.schedule.is-visible::after{opacity:.22;animation:ambient-orbit 13s ease-in-out infinite alternate-reverse}
.intro.is-visible::before{opacity:.055}
.municipalities.is-visible::before{opacity:.12}
@keyframes ambient-drift{from{translate:0 -8px;rotate:-3deg}to{translate:-20px 16px;rotate:5deg}}
@keyframes ambient-orbit{from{translate:0 0;scale:.94}to{translate:-18px 15px;scale:1.06}}
@media(max-width:820px){.intro::before,.deep-dive::before{width:70vw;right:-28vw}.topics::before{width:70vw;right:-25vw}.schedule::before{width:62vw;left:-28vw}.section::after{opacity:.12}}
@media(prefers-reduced-motion:reduce){.reveal-section>*,.reveal-section::before,.reveal-section::after{opacity:1;transform:none;transition:none}.topics.is-visible::before,.topics.is-visible::after,.deep-dive.is-visible::before,.deep-dive.is-visible::after,.schedule.is-visible::before,.schedule.is-visible::after{animation:none}}
.reduce-motion .reveal-section>*,.reduce-motion .reveal-section::before,.reduce-motion .reveal-section::after{opacity:1;transform:none;transition:none}.reduce-motion .topics::before,.reduce-motion .topics::after,.reduce-motion .deep-dive::before,.reduce-motion .deep-dive::after,.reduce-motion .schedule::before,.reduce-motion .schedule::after{animation:none!important}

/* La CTA conserva il proprio fondale e il proprio asse di animazione. */
.final-cta.reveal-section::before,.final-cta.reveal-section.is-visible::before{opacity:.38;transform:translateY(-50%)}
.final-cta.reveal-section::after,.final-cta.reveal-section.is-visible::after{opacity:.34}
@media(max-width:820px){.final-cta.reveal-section::before,.final-cta.reveal-section.is-visible::before{opacity:.24}.final-cta.reveal-section::after,.final-cta.reveal-section.is-visible::after{opacity:.22}}
@media(prefers-reduced-motion:reduce){.final-cta.reveal-section::after{transform:translateY(-50%)}}
