:root{--ink:#0b2f24;--g1:#0b4a35;--g2:#2e7d32;--g3:#7cb342;--bg:#fbfdfb;--soft:#eef6ee;--line:#cfe0cf;--link:#0a5c3a;--focus:#b35c00;--fs:1.0625rem;--ff:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
html{font-size:100%;scroll-behavior:smooth}
html.fs-1{font-size:112.5%}html.fs-2{font-size:125%}html.fs-3{font-size:150%}
html.readable{--ff:Verdana,Tahoma,"Trebuchet MS",sans-serif}
html.readable body{letter-spacing:.04em;word-spacing:.12em;line-height:1.9}
html.contrast{--ink:#000;--g1:#000;--g2:#004d00;--bg:#fff;--soft:#fff;--line:#000;--link:#0000b8;--focus:#c00}
html.contrast .card,html.contrast .site-header,html.contrast .site-footer{border:2px solid #000}
html.contrast .btn{background:#000;color:#fff}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
*{box-sizing:border-box}
body{margin:0;font-family:var(--ff);font-size:var(--fs);line-height:1.7;color:var(--ink);background:var(--bg)}
a{color:var(--link);text-underline-offset:.2em}
a:hover{text-decoration-thickness:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.7rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{max-width:62rem;margin:0 auto;padding:0 1.25rem}
.a11y{background:var(--g1);color:#fff;font-size:.9rem}
.a11y .wrap{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding-top:.4rem;padding-bottom:.4rem}
.a11y span{margin-right:.5rem}
.a11y button{font:inherit;background:#fff;color:#0b2f24;border:2px solid #fff;border-radius:.4rem;padding:.2rem .7rem;cursor:pointer;min-height:2.25rem}
.a11y button[aria-pressed=true]{background:var(--g3);border-color:var(--g3)}
.site-header{background:#fff;border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding-top:.6rem;padding-bottom:.6rem}
.brand img{height:84px;width:auto;display:block}
.nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem;margin:0;padding:0}
.nav a{display:block;padding:.6rem .9rem;border-radius:.5rem;text-decoration:none;color:var(--ink);font-weight:600;min-height:2.75rem}
.nav a:hover{background:var(--soft)}
.nav a[aria-current=page]{background:var(--g1);color:#fff}
h1,h2,h3{line-height:1.25;color:var(--g1)}
h1{font-size:clamp(1.9rem,4vw,2.7rem);margin:0 0 1rem}
h2{font-size:1.6rem;margin:2.2rem 0 .8rem}
h3{font-size:1.25rem;margin:1.5rem 0 .5rem}
.hero{background:linear-gradient(180deg,var(--soft),var(--bg));padding:2.5rem 0 2rem}
.hero .wrap{display:grid;gap:2rem;align-items:center;grid-template-columns:1fr}
.hero img{max-width:320px;width:100%;height:auto;margin:0 auto;display:block}
@media(min-width:760px){.hero .wrap{grid-template-columns:1.2fr 1fr}}
.lead{font-size:1.2em}
main{padding-bottom:3rem}
.page-head{background:var(--soft);padding:2rem 0 1.2rem;border-bottom:1px solid var(--line)}
.page-head h1{margin:0}
.grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));padding:0;list-style:none}
.card{background:#fff;border:1px solid var(--line);border-radius:.9rem;padding:1.2rem 1.3rem}
.card h3{margin-top:0}
.btn{display:inline-block;background:var(--g1);color:#fff;text-decoration:none;font-weight:700;padding:.75rem 1.3rem;border-radius:.6rem;border:2px solid var(--g1);min-height:2.75rem;cursor:pointer;font:inherit;font-weight:700}
.btn:hover{background:var(--g2);border-color:var(--g2)}
.btn.alt{background:#fff;color:var(--g1)}
.tag{display:inline-block;background:var(--soft);border:1px solid var(--line);border-radius:2rem;padding:.1rem .8rem;font-size:.85em;font-weight:600}
.dot{display:inline-block;width:1em;height:1em;border-radius:50%;vertical-align:-.12em;margin-right:.4em;border:2px solid #000}
.dot.r{background:#d32f2f}.dot.y{background:#fbc02d}.dot.v{background:#388e3c}
.notice{border-left:6px solid var(--g3);background:var(--soft);padding:1rem 1.2rem;border-radius:.3rem}
.post-meta{color:#44564d;font-size:.95em}
article.post{max-width:44rem}
.site-footer{background:var(--g1);color:#fff;padding:2rem 0;margin-top:2rem}
.site-footer a{color:#fff}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
dl.ev dt{font-weight:700;color:var(--g1)}dl.ev dd{margin:0 0 .6rem}
ol.months{padding-left:0;list-style:none;display:grid;gap:1rem}
ol.months li{background:#fff;border:1px solid var(--line);border-radius:.9rem;padding:1rem 1.2rem}
ol.months .m{font-weight:800;color:var(--g2);text-transform:uppercase;font-size:.85em;letter-spacing:.06em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Animazione d'ingresso (solo home, una volta per sessione, disattivata con "riduci animazioni") */
.intro{display:none}
.intro-on .intro{display:flex;position:fixed;inset:0;z-index:1000;background:#fff;align-items:center;justify-content:center;transition:opacity .7s ease}
.intro.out{opacity:0;pointer-events:none}
.intro-svg{width:min(88vw,76vh,560px);height:auto}
.intro .r{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.2s cubic-bezier(.45,.05,.35,1) forwards}
.intro .r1{animation-delay:.1s;animation-duration:2.4s}
.intro .r2{animation-delay:.5s}
.intro .r3{animation-delay:.9s;animation-duration:2s}
.intro .r4{animation-delay:1.2s;animation-duration:1.9s}
.intro .r5{animation-delay:1.7s;animation-duration:1.4s}
.intro .rings{transform-origin:300px 300px;animation:tilt 3s ease-out both}
.intro .word,.intro .sub,.intro .comet{opacity:0;animation:fadein .9s ease forwards}
.intro .word{animation-delay:1.5s}
.intro .sub{animation-delay:2.6s}
.intro .comet{animation-delay:3s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}
@keyframes tilt{from{transform:rotate(-10deg)}to{transform:rotate(0)}}
.intro-skip{position:absolute;right:1rem;bottom:1rem;font:inherit;background:#fff;color:#0b2f24;border:2px solid #0b2f24;border-radius:.5rem;padding:.5rem 1rem;cursor:pointer;min-height:2.75rem}
.intro-skip:hover{background:#eef6ee}
/* Pagina eventi */
.section{padding:3rem 0}
.section h2{margin-top:0}
.band{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section .grid{margin:1.5rem 0 0}
.section h3{margin-top:1.8rem}
.next-event{display:grid;grid-template-columns:1fr;background:#fff;border:3px solid var(--g1);border-radius:1.2rem;overflow:hidden;box-shadow:0 10px 30px rgba(11,74,53,.15)}
@media(min-width:720px){.next-event{grid-template-columns:11rem 1fr}}
.next-date{background:var(--g1);color:#fff;display:flex;flex-direction:row;gap:.6rem;align-items:baseline;justify-content:center;padding:1.2rem;text-align:center}
@media(min-width:720px){.next-date{flex-direction:column;gap:0;align-items:center}}
.next-date .d-day{font-size:4.5rem;font-weight:800;line-height:1}
.next-date .d-mon{font-size:1.4rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.next-date .d-year{font-size:1.1rem}
.next-main{padding:1.8rem}
.next-main h2{font-size:clamp(1.6rem,3.5vw,2.3rem);margin:.6rem 0}
.tag-next{background:var(--g3);border-color:var(--g3);color:#0b2f24;font-weight:800;margin:0}
.facts{display:grid;gap:1rem;margin:0;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.facts dt{font-size:.85em;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--g2)}
.facts dd{margin:.15rem 0 0;font-weight:600}
.ev-list{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:1.5rem}
.ev-row{display:grid;grid-template-columns:1fr;background:#fff;border:1px solid var(--line);border-radius:1rem;overflow:hidden}
@media(min-width:640px){.ev-row{grid-template-columns:9rem 1fr}}
.ev-date{background:var(--soft);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;text-align:center;border-bottom:1px solid var(--line);font-weight:700;color:var(--g1)}
@media(min-width:640px){.ev-date{border-bottom:0;border-right:1px solid var(--line)}}
.ev-date .d-day{font-size:2.6rem;font-weight:800;line-height:1}
.ev-date .d-mon{text-transform:uppercase;letter-spacing:.05em}
.ev-date .d-tbd{font-size:.95rem;color:#44564d}
.ev-body{padding:1.2rem 1.4rem}
.ev-body h3{margin:.4rem 0 .5rem;font-size:1.2rem}
.ev-body p{margin:.3rem 0}
.ev-row.is-next{border:3px solid var(--g1)}
.ev-row.is-next .ev-date{background:var(--g1);color:#fff}
details{margin-top:.8rem}
summary{cursor:pointer;font-weight:700;color:var(--g1);background:#fff;border:2px solid var(--g1);border-radius:.6rem;padding:.6rem 1.3rem;min-height:2.75rem;display:inline-flex;align-items:center}
summary:hover{background:var(--soft)}
.more{border-left:4px solid var(--g3);padding-left:1rem;margin-top:.5rem}
/* Spazio tra pulsanti */
.btn{margin:.5rem 1rem .5rem 0}
.btn:last-child{margin-right:0}
/* Card di pari altezza con pulsante allineato in basso */
.grid>.card{display:flex;flex-direction:column}
.grid>.card>.btn{margin-top:auto;align-self:flex-start}
.grid>.card>.post-meta{margin-bottom:1rem}
/* Spazio tra etichetta e titolo nella card della home */
.card>.tag{margin-bottom:1rem}
/* Pagina Chi siamo */
.pull{font-size:1.35em;font-weight:700;color:var(--g1);border-left:6px solid var(--g3);padding:.4rem 0 .4rem 1.2rem;margin:1.8rem 0}
.pull .motto{display:block;margin-top:.8rem;color:var(--g2)}
.quote{margin:1.8rem 0;padding:1.2rem 1.5rem;background:var(--soft);border-left:6px solid var(--g1);border-radius:.4rem;font-size:1.15em;font-style:italic}
.band .quote{background:#fff}
ol.numbered{list-style:none;padding:0}
.card .num{margin:0 0 .3rem;font-size:2rem;font-weight:800;line-height:1;color:var(--g3)}
.more h3:first-child{margin-top:0}
.section .band-fix{margin:0}
/* Dettagli degli incontri */
.ev-body .sub{font-weight:700;color:var(--g2);margin:.1rem 0 .6rem}
.more h4{margin:1.2rem 0 .4rem;color:var(--g1)}
.more .spunto{background:var(--soft);padding:.8rem 1rem;border-radius:.5rem}
.more .closing{color:var(--g1)}
.ev-date .d-mon+.d-tbd{margin-top:.4rem}
/* Finestra con il tema completo dell'incontro */
.ev-modal{border:0;padding:0;background:transparent;max-width:min(46rem,94vw);width:100%;max-height:92vh;color:var(--ink);overflow:visible}
.ev-modal::backdrop{background:rgba(11,47,36,.65)}
body:has(dialog[open]){overflow:hidden}
.modal-card{background:#fff;border:3px solid var(--g1);border-radius:1.2rem;box-shadow:0 20px 50px rgba(0,0,0,.35);display:flex;flex-direction:column;max-height:92vh;overflow:hidden}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.3rem 1.5rem 1rem;border-bottom:1px solid var(--line)}
.modal-head h2{margin:.5rem 0 .2rem;font-size:clamp(1.4rem,3vw,1.9rem)}
.modal-head .sub{margin:0;font-weight:700;color:var(--g2)}
.modal-close{flex:none;width:2.75rem;height:2.75rem;border-radius:50%;border:2px solid var(--g1);background:#fff;color:var(--g1);font-size:1.8rem;line-height:1;cursor:pointer;padding:0}
.modal-close:hover{background:var(--soft)}
.modal-body{padding:1.2rem 1.5rem;overflow-y:auto}
.modal-body p:first-child{margin-top:0}
.modal-foot{background:var(--soft);border-top:1px solid var(--line);padding:1rem 1.5rem}
.modal-foot dl{display:grid;gap:.8rem 1.5rem;margin:0;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));font-size:.95em}
.modal-foot dt{font-size:.8em;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--g2)}
.modal-foot dd{margin:.1rem 0 0;font-weight:600}
/* Incontri già svolti */
.tag-past{background:#e8e8e8;border-color:#b5b5b5;color:#333}
.ev-row.is-past .ev-date{background:#f0f0f0;color:#44564d}
.ev-row.is-past{border-style:dashed}
.ev-row.is-next:not(.is-past){border:3px solid var(--g1)}
.ev-row.is-next .ev-date{background:var(--g1);color:#fff}
.ev-row:not(.is-next) .ev-date{background:var(--soft);color:var(--g1)}
.ev-row.is-past:not(.is-next) .ev-date{background:#f0f0f0;color:#44564d}
.ev-row:not(.is-next):not(.is-past){border:1px solid var(--line)}
[hidden]{display:none!important}
