/* =====================================================================
   TIRATORI DELLA LAVIZZARA — Foglio di stile
   Palette dallo stemma: rosso club, antracite, ardesia, nebbia, bianco.
   Tipografia: Oswald (display) + Source Sans 3 (testo) + IBM Plex Mono (dati).
   Elemento firma: il bersaglio a cerchi concentrici + reticolo di mira.
   ===================================================================== */
:root{
  --rosso:#C41E2A;--rosso-scuro:#9E1620;--rosso-tenue:#F7E3E4;
  --rosso-chiaro:#FF6E73;/* rosso leggibile su sfondo scuro (contrasto ~6:1) */
  --antracite:#1A1D21;--antracite-2:#262B30;
  --ardesia:#5B6670;--ardesia-chiara:#8A949E;
  --nebbia:#F4F5F6;--nebbia-2:#E9EBED;--bianco:#FFFFFF;
  --linea:rgba(26,29,33,.10);--linea-forte:rgba(26,29,33,.18);
  --oro:#B7892B;--argento:#6B7681;--bronzo:#9A5E34;
  --ombra-1:0 1px 2px rgba(26,29,33,.06),0 2px 8px rgba(26,29,33,.06);
  --ombra-2:0 6px 24px rgba(26,29,33,.12);--ombra-3:0 18px 50px rgba(26,29,33,.18);
  --r-s:7px;--r-m:13px;--r-l:22px;
  --display:'Oswald','Arial Narrow',sans-serif;
  --body:'Source Sans 3',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --wrap:1160px;--t:240ms cubic-bezier(.22,.61,.36,1);--t-slow:520ms cubic-bezier(.22,.61,.36,1);
  --nav-h:76px;--strip-h:26px;--ease-soft:cubic-bezier(.33,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box}*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none}
html::-webkit-scrollbar,body::-webkit-scrollbar{width:0;height:0;display:none}
body{font-family:var(--body);color:var(--antracite);background:var(--nebbia);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding-top:calc(var(--nav-h) + var(--strip-h))}
body.admin,body.login-body{padding-top:0}
img,svg{display:block;max-width:100%}
a{color:var(--rosso);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--rosso-scuro)}
button{font-family:inherit;cursor:pointer}
input,textarea,select{font-family:inherit}
code{font-family:var(--mono);font-size:.86em;background:var(--nebbia-2);padding:.1em .4em;border-radius:4px}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.06;letter-spacing:.005em}
h1{font-size:clamp(2.3rem,6vw,4.2rem);text-transform:uppercase;letter-spacing:.01em}
h2{font-size:clamp(1.6rem,3.6vw,2.6rem);text-transform:uppercase}
h3{font-size:1.25rem}
p{max-width:70ch}
.container{width:min(var(--wrap),92%);margin-inline:auto}
.section{padding:clamp(3.2rem,8vw,6rem) 0}
.section--compact{padding:clamp(1.8rem,4vw,3rem) 0}
.section--alt{background:var(--bianco);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.section--dark{background:var(--antracite);color:#fff}.section--dark h2{color:#fff}
/* Su sfondo scuro il rosso brand è poco leggibile: uso la variante chiara. */
.section--dark a:not(.btn):not(.link-arrow),.hero a:not(.btn):not(.link-arrow),.page-head a:not(.btn):not(.link-arrow){color:var(--rosso-chiaro)}
.section--dark a:not(.btn):not(.link-arrow):hover,.hero a:not(.btn):not(.link-arrow):hover,.page-head a:not(.btn):not(.link-arrow):hover{color:#fff}
.section__gap{margin-top:2rem}.center{text-align:center}.center p{margin-left:auto;margin-right:auto}.center .btn{margin-left:auto;margin-right:auto}.muted{color:var(--ardesia)}.muted-light{color:#c8cdd2}
.eyebrow{font-family:var(--mono);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rosso);font-weight:600;display:inline-flex;align-items:center;gap:.55em}
.eyebrow svg{width:1.05em;height:1.05em}.section--dark .eyebrow{color:#fff}.hero .eyebrow,.page-head .eyebrow{color:#e9edf2;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.section__head{max-width:64ch;margin-bottom:2.4rem}.section__head h2{margin-top:.7rem}
.section__head-lead{margin-top:.8rem;color:var(--ardesia);font-size:1.1rem}
.btn{position:relative;display:inline-flex;align-items:center;gap:.55em;font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:.98rem;font-weight:500;padding:.8em 1.5em;color:#fff;background:var(--rosso);border:2px solid var(--rosso);border-radius:var(--r-s);transition:background var(--t),border-color var(--t),color var(--t),transform var(--t),box-shadow var(--t)}
.btn:hover{background:var(--rosso-scuro);border-color:var(--rosso-scuro);color:#fff;transform:translateY(-2px);box-shadow:var(--ombra-2)}
.btn:active{transform:translateY(0)}.btn svg{width:1.05em;height:1.05em}
.btn--accent{background:var(--rosso);border-color:var(--rosso)}
.btn--ghost{background:transparent;color:var(--antracite);border-color:var(--linea-forte)}
.btn--ghost:hover{background:var(--antracite);border-color:var(--antracite);color:#fff}
.section--dark .btn--ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.section--dark .btn--ghost:hover{background:#fff;color:var(--antracite)}
.btn--block{width:100%;justify-content:center}.btn--sm{padding:.5em 1em;font-size:.82rem}
.reticolo{transition:transform var(--t)}.btn:hover .reticolo{transform:rotate(90deg) scale(1.08)}
.bersaglio{aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,transparent 0 7%,var(--rosso) 7% 8%,transparent 8% 19%,var(--ardesia) 19% 20%,transparent 20% 33%,var(--ardesia) 33% 34%,transparent 34% 49%,var(--ardesia) 49% 50%,transparent 50%);pointer-events:none}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--rosso);color:#fff;padding:.6em 1em;z-index:200}
.skip-link:focus{left:0;color:#fff}
.nav{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid transparent;transition:transform .5s var(--ease-soft),box-shadow var(--t),border-color var(--t);will-change:transform}
.nav.is-scrolled{box-shadow:var(--ombra-1);border-bottom-color:var(--linea)}
/* Scorrendo verso il basso il menu si chiude: scivola in su di una riga (l'altezza
   del menu), lasciando però visibile in cima la striscia con il FASS che scorre. */
.nav.is-hidden{transform:translateY(calc(-1 * var(--nav-h)))}
.nav__inner{width:min(var(--wrap),94%);margin-inline:auto;display:flex;align-items:center;gap:1.35rem;height:var(--nav-h)}
.nav__brand{display:flex;align-items:center;gap:.7rem;margin-right:auto}
.nav__logo{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.10))}
.nav__brand-text{display:flex;flex-direction:column;line-height:1.05}
.nav__brand-text strong{font-family:var(--display);text-transform:uppercase;font-weight:600;font-size:1.04rem;letter-spacing:.018em}
.nav__brand-sub{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;color:var(--ardesia);text-transform:uppercase}
.nav__links{display:flex;align-items:center;gap:.42rem}
.nav__links a{position:relative;color:var(--antracite);font-family:var(--display);text-transform:uppercase;letter-spacing:.025em;font-size:.94rem;font-weight:600;padding:.54em .68em;border-radius:var(--r-s)}
.nav__links a::after{content:"";position:absolute;left:.7em;right:.7em;bottom:.3em;height:2px;background:var(--rosso);transform:scaleX(0);transform-origin:left;transition:transform var(--t)}
.nav__links a:hover{color:var(--rosso)}
.nav__links a:hover::after,.nav__links a.is-active::after{transform:scaleX(1)}
.nav__links a.is-active{color:var(--rosso)}
.nav__cta{display:inline-flex;align-items:center;gap:.42em;margin-left:.45rem;background:var(--rosso);color:#fff!important;padding:.58em 1em!important;border-radius:var(--r-s);box-shadow:0 4px 14px rgba(196,30,42,.16)}
.nav__cta::after{display:none!important}.nav__cta:hover,.nav__cta.is-active{background:var(--rosso-scuro);color:#fff!important}.nav__cta svg{width:1.05em;height:1.05em}
.nav__toggle{display:none;width:46px;height:46px;border:1px solid var(--linea-forte);background:#fff;border-radius:var(--r-s);color:var(--antracite);place-items:center}
.hero{position:relative;background:linear-gradient(180deg,var(--antracite) 0%,var(--antracite-2) 100%);color:#fff;overflow:hidden}
.hero__rings{position:absolute;right:-10%;top:50%;translate:0 -50%;width:min(680px,80vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,transparent 0 7%,#fff 7% 8%,transparent 8% 19%,#fff 19% 20%,transparent 20% 33%,#fff 33% 34%,transparent 34% 49%,#fff 49% 50%,transparent 50%);opacity:.06}
.hero__inner{position:relative;z-index:2;padding:clamp(3.5rem,9vw,6.5rem) 0 clamp(4rem,8vw,6rem)}
.hero__title{color:#fff;max-width:18ch;margin-top:1rem}
.hero__sub{margin-top:1.2rem;font-size:1.16rem;color:#dde2e7;max-width:56ch}
.hero__inner--split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:center;gap:clamp(1.6rem,4vw,3rem)}
.hero__main{position:relative;z-index:2}
.hero__visual{position:relative;z-index:2;min-height:340px;border-radius:var(--r-l);overflow:hidden;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);box-shadow:var(--ombra-2)}
.hero__visual img{width:100%;height:100%;object-fit:cover;display:block}
.hero__visual--home{display:grid;grid-template-rows:1fr;padding:0;background:linear-gradient(135deg,#1d2e28,#101814)}
.hero__visual-logo{display:grid;place-items:center;padding:clamp(1.35rem,3vw,2.35rem);min-height:0;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.10),transparent 44%)}
.hero__visual-logo img{width:min(74%,360px);height:auto;object-fit:contain;filter:drop-shadow(0 18px 34px rgba(0,0,0,.35))}
.hero__visual-stand{position:relative;min-height:132px;overflow:hidden;border-top:1px solid rgba(255,255,255,.12)}
.hero__visual-stand img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.96) contrast(1.03)}
.hero__visual-stand::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.32));pointer-events:none}
.hero__visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.08));pointer-events:none}
.hero__visual-fallback{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:.6rem;color:#fff;background:linear-gradient(135deg,#20262b,#121519)}
.hero__visual-fallback strong{font-family:var(--display);font-size:1.25rem;letter-spacing:.02em;text-transform:uppercase}
.quick{margin-top:2.4rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:780px}
.quick__item{display:flex;align-items:center;gap:.8rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-m);padding:1rem 1.1rem;color:#fff;transition:background var(--t),border-color var(--t),transform var(--t)}
.quick__item:hover{background:#fff;color:var(--antracite);border-color:#fff;transform:translateY(-3px)}
.quick__icon{flex:none;color:var(--rosso);display:grid;place-items:center}
.quick__label{font-family:var(--display);text-transform:uppercase;font-size:1rem;letter-spacing:.02em;line-height:1.1}
.quick__go{margin-left:auto;color:var(--rosso);display:grid;place-items:center}
.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:2.6rem;align-items:center}
.intro-grid__photo{background:var(--antracite);border-radius:var(--r-l);padding:2rem;display:grid;place-items:center;box-shadow:var(--ombra-2)}
.intro-grid__photo img{max-width:78%;filter:drop-shadow(0 12px 24px rgba(0,0,0,.3))}
.intro-grid__text h2{margin:.5rem 0 1rem}.intro-grid__text .btn{margin-top:1.4rem}
.grid{display:grid;gap:1.4rem}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.6rem;box-shadow:var(--ombra-1);transition:box-shadow var(--t),transform var(--t)}
.card:hover{box-shadow:var(--ombra-2)}
.card h3{display:flex;align-items:center;gap:.5em;text-transform:uppercase;margin-bottom:.6rem}.card h3 svg{color:var(--rosso)}
.card .link-arrow{margin-top:1rem}
.value{background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.5rem;box-shadow:var(--ombra-1);transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.value:hover{transform:translateY(-4px);box-shadow:var(--ombra-2);border-color:var(--rosso)}
.value__icon{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--rosso-tenue);color:var(--rosso);margin-bottom:.9rem}
.value h3{text-transform:uppercase;font-size:1.1rem;margin-bottom:.4rem}.value p{font-size:.98rem;color:var(--ardesia)}
.prose{max-width:74ch}.prose h2{display:flex;align-items:center;gap:.5em;margin-bottom:1rem}.prose h2 svg{color:var(--rosso)}.prose p{margin-bottom:1rem}
.link-arrow{display:inline-flex;align-items:center;gap:.4em;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rosso)}
.link-arrow svg{transition:transform var(--t)}.link-arrow:hover svg{transform:translateX(3px)}
.link-arrow--back{margin-bottom:1rem}.link-arrow--back:hover svg{transform:translateX(-3px)}
.page-head{background:linear-gradient(180deg,var(--antracite),var(--antracite-2));color:#fff;padding:clamp(2.6rem,6vw,4.4rem) 0 clamp(2.2rem,5vw,3.4rem)}
.page-head h1{color:#fff;margin-top:.8rem}
.page-head__lead{margin-top:1rem;font-size:1.14rem;color:#dde2e7;max-width:58ch;line-height:1.72}
.page-head--compact{padding:clamp(2rem,4vw,3rem) 0}
.page-head .link-arrow{color:#fff}.page-head .link-arrow:hover{color:var(--rosso-tenue)}
.empty{text-align:center;padding:3rem 1rem;color:var(--ardesia)}
.empty__icon{display:inline-grid;place-items:center;color:var(--ardesia-chiara);margin-bottom:1rem}
.notice{display:flex;align-items:center;gap:.7em;padding:.9em 1.1em;border-radius:var(--r-s);font-size:.96rem;margin-bottom:1.4rem}.notice svg{flex:none}
.notice--info{background:#eef2f7;border:1px solid #cdd8e6;color:#34506f}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.news-item{background:#fff;border:1px solid var(--linea);border-left:3px solid var(--rosso);border-radius:var(--r-m);padding:1.4rem;box-shadow:var(--ombra-1)}
.news-item--wide{max-width:760px}
.news-item__pin{display:inline-flex;align-items:center;gap:.3em;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rosso);margin-bottom:.4rem}
.news-item__date{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--ardesia);text-transform:uppercase}
.news-item h3{text-transform:none;font-size:1.18rem;margin:.3rem 0 .5rem}.news-item p{font-size:.96rem;color:var(--ardesia)}
.prog-cta{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}.prog-cta h2{margin:.5rem 0}
.sponsor-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:2rem}
.sponsor-strip__item{display:grid;place-items:center;min-width:150px;height:92px;padding:1rem 1.4rem;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);box-shadow:var(--ombra-1);transition:transform var(--t),box-shadow var(--t)}
.sponsor-strip__item:hover{transform:translateY(-3px);box-shadow:var(--ombra-2)}
.sponsor-strip__item img{max-height:60px;width:auto;object-fit:contain}
.sponsor-strip__name{font-family:var(--display);text-transform:uppercase;color:var(--antracite)}
.prog-list{display:grid;gap:1rem}
.prog{display:flex;align-items:center;gap:1.3rem;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.2rem 1.4rem;box-shadow:var(--ombra-1);transition:border-color var(--t),box-shadow var(--t),transform var(--t)}
.prog:hover{border-color:var(--rosso);box-shadow:var(--ombra-2);transform:translateX(4px)}
.prog__badge{flex:none;width:54px;height:54px;border-radius:var(--r-s);display:grid;place-items:center;background:var(--rosso-tenue);color:var(--rosso)}
.prog__body{margin-right:auto}
.prog__year{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--rosso);text-transform:uppercase}
.prog__title{font-size:1.3rem;text-transform:uppercase;margin:.15rem 0}.prog__meta{font-size:.86rem;color:var(--ardesia)}
.prog__btn{flex:none}.prog__actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.year-block{margin-bottom:2.8rem}
.year-block__title{display:flex;align-items:center;gap:1rem;font-size:1.6rem;margin-bottom:1.2rem}
.year-block__title span{color:var(--rosso)}.year-block__title::after{content:"";flex:1;height:1px;background:var(--linea)}
.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.album{display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);overflow:hidden;box-shadow:var(--ombra-1);transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.album:hover{transform:translateY(-4px);box-shadow:var(--ombra-2);border-color:var(--rosso)}
.album__thumb{aspect-ratio:4/3;background:var(--nebbia-2);overflow:hidden;display:block}
.album__thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow)}
.album:hover .album__thumb img{transform:scale(1.06)}
.album__placeholder{display:grid;place-items:center;height:100%;color:var(--ardesia-chiara)}
.album__meta{padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.2rem}
.album__title{font-family:var(--display);text-transform:uppercase;font-size:1.1rem;color:var(--antracite)}
.album__count{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--ardesia)}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.photo{position:relative;display:block;aspect-ratio:1;border-radius:var(--r-s);overflow:hidden;background:var(--nebbia-2)}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--t)}.photo:hover img{transform:scale(1.07)}
.photo__caption{position:absolute;left:0;right:0;bottom:0;padding:.5em .7em;font-size:.78rem;color:#fff;background:linear-gradient(180deg,transparent,rgba(20,22,25,.82));opacity:0;transition:opacity var(--t)}
.photo:hover .photo__caption{opacity:1}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(15,17,19,.93);display:none;place-items:center;padding:4vw}
.lightbox.open{display:grid}
.lightbox img{max-width:92vw;max-height:86vh;border-radius:var(--r-s);box-shadow:var(--ombra-3)}
.lightbox__close{position:absolute;top:18px;right:22px;width:46px;height:46px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:1.5rem}
.lightbox__close:hover{background:var(--rosso)}
.form{display:grid;gap:1.1rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form__row--checks{display:flex;gap:1.6rem;flex-wrap:wrap}
.field{display:grid;gap:.4rem}.field--sm{max-width:150px}.field--btn{align-self:end}
.field label{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ardesia)}
.field input,.field textarea,.field select,.form input,.form textarea,.form select{width:100%;font-size:1rem;color:var(--antracite);background:#fff;border:1px solid var(--linea-forte);border-radius:var(--r-s);padding:.7em .9em;transition:border-color var(--t),box-shadow var(--t)}
.field input:focus,.field textarea:focus,.field select:focus,.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--rosso);box-shadow:0 0 0 3px var(--rosso-tenue)}
.field textarea{min-height:120px;resize:vertical}
.field__hint{font-family:var(--body);font-size:.84rem;color:var(--ardesia);text-transform:none;letter-spacing:0}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.95rem;color:var(--ardesia)}
.check input{margin-top:.2rem;width:18px;height:18px;accent-color:var(--rosso);flex:none}.check--inline{align-items:center}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-card{background:#fff;border:1px solid var(--linea);border-radius:var(--r-l);padding:2rem;box-shadow:var(--ombra-1);max-width:560px}
.form-card--wide{max-width:760px;margin-inline:auto}
.form-card h2{display:flex;align-items:center;gap:.5em;margin-bottom:.5rem}.form-card h2 svg{color:var(--rosso)}
.form-card .muted{margin-bottom:1.2rem}.form-card .btn{margin-top:.4rem}
.info-list{display:grid;gap:1.2rem;align-content:start}
.info-list__item{display:flex;gap:1rem;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.2rem;box-shadow:var(--ombra-1)}
.info-list__icon{flex:none;width:44px;height:44px;border-radius:50%;background:var(--rosso-tenue);color:var(--rosso);display:grid;place-items:center}
.info-list__item h3{text-transform:uppercase;font-size:1.05rem;margin-bottom:.2rem}.info-list__item p{font-size:.95rem;color:var(--ardesia)}
.tier-badge{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;padding:.35em .8em;border-radius:100px;color:#fff;display:inline-block}
.tier-badge--principale{background:var(--rosso)}.tier-badge--gold{background:#8F6A1F}.tier-badge--silver{background:var(--argento)}.tier-badge--bronze{background:var(--bronzo)}
/* Albo dei sostenitori: muro paritario, niente gerarchie commerciali */
.support-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
.support-wall--feature{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.support{display:grid;place-items:center;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.4rem 1rem;box-shadow:var(--ombra-1);min-height:104px;text-align:center;transition:transform var(--t),box-shadow var(--t)}
.support:hover{transform:translateY(-3px);box-shadow:var(--ombra-2)}
.support a{display:grid;place-items:center;width:100%}
.support img{max-width:100%;max-height:70px;object-fit:contain;filter:grayscale(1);opacity:.78;transition:filter var(--t),opacity var(--t)}
.support:hover img{filter:none;opacity:1}
.support__name{font-family:var(--display);text-transform:uppercase;font-size:1.05rem;letter-spacing:.02em;color:var(--antracite)}
.support__desc{font-size:.86rem;color:var(--ardesia);margin-top:.6rem;line-height:1.45}
.support--feature{min-height:150px;border-color:var(--rosso-tenue);box-shadow:0 0 0 2px var(--rosso-tenue),var(--ombra-1)}
.support--feature img{max-height:100px;filter:none;opacity:1}
.support--feature .support__name{font-size:1.3rem}
.support-feature__label{display:inline-flex;align-items:center;gap:.45em;font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#8F6A1F;margin-bottom:.8rem}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:2.4rem;align-items:start;margin-bottom:2.4rem}
.contact-info{display:grid;gap:1.1rem;align-content:start}
.contact-info__item{display:flex;gap:1rem;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.2rem;box-shadow:var(--ombra-1)}
.contact-info__icon{flex:none;width:44px;height:44px;border-radius:50%;background:var(--rosso-tenue);color:var(--rosso);display:grid;place-items:center}
.contact-info__item h3{text-transform:uppercase;font-size:1.02rem;margin-bottom:.2rem}
.map-embed{position:relative;border-radius:var(--r-m);overflow:hidden;border:1px solid var(--linea);box-shadow:var(--ombra-1);aspect-ratio:16/9}
.map-embed iframe{width:100%;height:100%;border:0}
.map-embed__link{position:absolute;right:12px;bottom:12px;background:#fff;padding:.5em .9em;border-radius:var(--r-s);box-shadow:var(--ombra-1)}
.thanks{display:grid;justify-items:center;gap:1rem;padding-block:clamp(2rem,6vw,4rem)}
.thanks__icon{width:96px;height:96px;display:grid;place-items:center;color:var(--rosso);border-radius:50%;background:var(--rosso-tenue)}
.thanks__lead{font-size:1.15rem;color:var(--ardesia);max-width:46ch}
.thanks__actions{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:.6rem}
.footer{background:var(--antracite);color:#c8cdd2;padding:3.4rem 0 1.6rem}
.footer__inner{width:min(var(--wrap),92%);margin-inline:auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:2rem}
.footer__logo{border-radius:50%;margin-bottom:.7rem}
.footer__name{font-family:var(--display);text-transform:uppercase;color:#fff;font-size:1.2rem;line-height:1.1}
.footer__tag{font-size:.92rem;margin-top:.3rem}
.footer__title{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ardesia-chiara);margin-bottom:.9rem;font-weight:400}
.footer__list{list-style:none;padding:0;display:grid;gap:.5rem;font-size:.95rem}
.footer__list--plain li{display:flex;align-items:center;gap:.5em}
.footer__list svg{color:var(--ardesia-chiara);flex:none}
.footer a{color:#c8cdd2}.footer a:hover{color:#fff}
.footer__bar{width:min(var(--wrap),92%);margin:2.2rem auto 0;border-top:1px solid rgba(255,255,255,.1);padding-top:1.3rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--ardesia-chiara)}
.footer__admin{display:inline-flex;align-items:center;gap:.4em}
.footer__bar-links{display:inline-flex;align-items:center;gap:1.3rem;flex-wrap:wrap}
/* Pagina privacy / testi legali */
.legal h2{display:flex;align-items:center;gap:.5em;font-size:1.15rem;margin:1.8rem 0 .7rem}
.legal h2 svg{color:var(--rosso);flex:none}
.legal__list{margin:.2rem 0 1rem;padding-left:1.1rem;display:grid;gap:.5rem}
.legal__list li{line-height:1.5}
.legal__foot{margin-top:2rem;font-size:.9rem}
.flash-zone{padding-top:1.4rem}
.flash-stack{display:grid;gap:.6rem}
.flash{display:flex;align-items:center;gap:.6em;border-radius:var(--r-s);padding:.85em 1.1em;font-size:.96rem;border:1px solid;transition:opacity var(--t)}
.flash__icon{display:grid;place-items:center;flex:none}
.flash--success{background:#eaf6ec;border-color:#b6dcc0;color:#1f6b34}
.flash--error{background:#fdecec;border-color:#f2c0c0;color:#a31d1d}
.flash--info{background:#eef2f7;border-color:#cdd8e6;color:#34506f}
.flash--fade{opacity:0}
.reveal{opacity:0;transform:translateY(18px);transition:opacity var(--t-slow),transform var(--t-slow)}
.reveal.in{opacity:1;transform:none}

/* ===================== INDICATORE DI SCROLL: TIRO SPORTIVO ===================== */
.shot-progress{
  --shot-scale:0;
  --rail-left:106px;
  --rail-right:20px;
  position:relative;          /* riga interna alla barra del menu */
  height:var(--strip-h);
  pointer-events:none;
  border-top:1px solid var(--linea);
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.08));
}
.shot-progress__rail{position:relative;width:min(var(--wrap),94%);height:100%;margin-inline:auto;overflow:visible}
.shot-progress__rail::before{
  content:"";
  position:absolute;
  left:var(--rail-left);
  right:var(--rail-right);
  top:13px;
  height:2px;
  background:rgba(26,29,33,.14);
  border-radius:999px;
}
.shot-progress__rail::after{
  content:"";
  position:absolute;
  left:var(--rail-left);
  right:var(--rail-right);
  top:9px;
  height:8px;
  background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),rgba(26,29,33,.14) calc(20% - 1px) 20%);
  opacity:.24;
}
.shot-progress__bar{
  position:absolute;
  left:var(--rail-left);
  top:13px;
  width:calc((100% - var(--rail-left) - var(--rail-right)) * var(--shot-scale));
  height:2px;
  background:linear-gradient(90deg,var(--oro),var(--rosso));
  border-radius:999px;
  box-shadow:0 0 10px rgba(196,30,42,.15);
}

/* FASS 90: icona presa dal riferimento inviato, sfondo rimosso e ricolorata in grigio. */
.shot-progress__rifle{
  position:absolute;
  left:0;
  top:1px;
  width:98px;
  height:22px;
  opacity:.82;
  filter:drop-shadow(0 1px 2px rgba(26,29,33,.13));
}
.shot-progress__rifle img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

/* Proiettile con icona fornita dall'utente: piccolo, pulito e ben proporzionato. */
.shot-progress__bullet{
  position:absolute;
  left:calc(var(--rail-left) + (100% - var(--rail-left) - var(--rail-right)) * var(--shot-scale));
  top:9px;
  width:10px;
  height:6px;
  translate:-50% 0;
  filter:drop-shadow(0 1px 2px rgba(26,29,33,.16));
  transition:filter var(--t),transform var(--t);
}
.shot-progress__bullet img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.shot-progress.is-impacting .shot-progress__bullet{filter:drop-shadow(0 0 7px rgba(196,30,42,.16));transform:scale(1.01)}

.shot-progress__target{
  position:absolute;
  right:0;
  top:1px;
  width:20px;
  height:20px;
  border:2px solid rgba(26,29,33,.34);
  border-radius:50%;
  background:rgba(255,255,255,.74);
  box-shadow:var(--ombra-1);
}
.shot-progress__target-ring{position:absolute;inset:4px;border:1px solid var(--rosso);border-radius:50%}
.shot-progress__target-ring::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:var(--rosso);translate:-50% -50%}
.shot-progress__impact{
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  translate:-50% -50%;
  border-radius:50%;
  background:rgba(183,137,43,.45);
  opacity:0;
}
.shot-progress__score{
  position:absolute;
  right:-8px;
  top:25px;
  min-width:30px;
  padding:1px 6px;
  text-align:center;
  font-family:var(--mono);
  color:var(--rosso);
  background:rgba(255,255,255,.96);
  border:1px solid rgba(26,29,33,.10);
  border-radius:999px;
  box-shadow:var(--ombra-1);
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .22s ease,transform .22s ease;
  text-shadow:none;
  z-index:2;
}
.shot-progress__score strong{font-size:.9rem;line-height:1.1;font-weight:700;color:var(--rosso)}
.shot-progress.is-score-visible .shot-progress__score{opacity:1;transform:translateY(0)}
.shot-progress.is-impacting .shot-progress__target{border-color:var(--rosso);animation:shot-hit 780ms ease-out 1}
.shot-progress__hit-mark{
  position:absolute;
  left:50%;
  top:50%;
  width:5px;
  height:5px;
  translate:-50% -50%;
  border-radius:50%;
  background:var(--antracite);
  box-shadow:0 0 0 2px rgba(255,255,255,.72);
  opacity:0;
  transform:scale(.5);
  transition:opacity .18s ease,transform .18s ease;
}
.shot-progress.is-score-visible .shot-progress__hit-mark{opacity:.85;transform:scale(1)}
.shot-progress.is-impacting .shot-progress__impact{animation:shot-impact 780ms ease-out 1}
@keyframes shot-hit{
  0%{box-shadow:0 0 0 0 rgba(196,30,42,.28),var(--ombra-1)}
  100%{box-shadow:0 0 0 14px rgba(196,30,42,0),var(--ombra-1)}
}
@keyframes shot-impact{
  0%{opacity:0;box-shadow:0 0 0 0 rgba(183,137,43,.42);transform:scale(.5)}
  25%{opacity:1}
  100%{opacity:0;box-shadow:0 0 0 12px rgba(183,137,43,0);transform:scale(2.4)}
}
@media (max-width: 860px){.shot-progress{--rail-left:82px;--rail-right:26px}.shot-progress__rifle{display:block;width:72px;height:20px;top:3px;opacity:.72}}


/* ===================== TOCCHI VISIVI E ANIMAZIONI SOBRIE ===================== */
.heritage-band{
  position:relative;
  display:grid;
  grid-template-columns:minmax(150px,220px) 1fr;
  gap:clamp(1.2rem,4vw,2.4rem);
  align-items:center;
  background:#fff;
  border:1px solid var(--linea);
  border-radius:var(--r-l);
  padding:clamp(1.4rem,4vw,2.2rem);
  box-shadow:var(--ombra-1);
  overflow:hidden;
}
.heritage-band::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--rosso),var(--oro));
}
.heritage-band::after{
  content:"";
  position:absolute;
  right:-90px;
  top:50%;
  width:260px;
  aspect-ratio:1;
  translate:0 -50%;
  border-radius:50%;
  background:radial-gradient(circle,transparent 0 18%,rgba(196,30,42,.08) 18% 19%,transparent 19% 36%,rgba(196,30,42,.07) 36% 37%,transparent 37%);
  pointer-events:none;
}
.heritage-band__mark{position:relative;z-index:1;display:grid;gap:.15rem;justify-items:start}
.heritage-band__label{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ardesia)}
.heritage-band__year{font-family:var(--display);font-size:clamp(3.2rem,8vw,5.8rem);line-height:.9;color:var(--rosso);letter-spacing:.02em}
.heritage-band__text{position:relative;z-index:1}.heritage-band__text h2{margin:.45rem 0 .65rem}.heritage-band__text p:last-child{color:var(--ardesia);font-size:1.08rem}

.quick__item,.value,.news-item,.prog,.album,.sponsor-strip__item{position:relative;overflow:hidden}
.quick__item::after,.value::after,.news-item::after,.prog::after,.album::after,.sponsor-strip__item::after{
  content:"";
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:0;
  height:3px;
  background:linear-gradient(90deg,var(--rosso),var(--oro));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--t);
  border-radius:999px 999px 0 0;
}
.quick__item:hover::after,.value:hover::after,.news-item:hover::after,.prog:hover::after,.album:hover::after,.sponsor-strip__item:hover::after{transform:scaleX(1)}
.news-item{transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.news-item:hover{transform:translateY(-3px);box-shadow:var(--ombra-2);border-color:rgba(196,30,42,.35)}

.prog{align-items:stretch;padding:1.35rem 1.45rem;border-left:4px solid var(--rosso);background:linear-gradient(180deg,#fff,#fbfbfc)}
.prog__badge{width:62px;height:62px;box-shadow:inset 0 0 0 1px rgba(196,30,42,.08)}
.prog__desc{margin:.35rem 0 .15rem;color:var(--ardesia);font-size:.98rem}
.prog__meta{margin-top:.15rem}

.album{background:linear-gradient(180deg,#fff,#f9f9fa);padding:.38rem;border-radius:var(--r-m)}
.album__thumb{border-radius:calc(var(--r-m) - 5px)}
.photo{
  padding:.38rem;
  background:#fff;
  border:1px solid rgba(26,29,33,.12);
  border-radius:var(--r-m);
  box-shadow:var(--ombra-1);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.photo img{border-radius:calc(var(--r-m) - 8px)}
.photo:hover{transform:translateY(-4px) rotate(-.35deg);box-shadow:var(--ombra-2);border-color:rgba(196,30,42,.35)}
.photo__caption{left:.38rem;right:.38rem;bottom:.38rem;border-radius:0 0 calc(var(--r-m) - 8px) calc(var(--r-m) - 8px)}
.lightbox{backdrop-filter:blur(5px)}
.lightbox img{border:8px solid #fff;background:#fff;animation:lightbox-in 220ms ease-out both}
@keyframes lightbox-in{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}

.sponsor-strip__item img{filter:grayscale(1);opacity:.78;transition:filter var(--t),opacity var(--t),transform var(--t)}
.sponsor-strip__item:hover img{filter:grayscale(0);opacity:1;transform:scale(1.03)}

@media (max-width:760px){
  .heritage-band{grid-template-columns:1fr}
  .heritage-band__year{font-size:3.8rem}
}

/* ===================== ADMIN ===================== */
.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--antracite),var(--antracite-2));padding:2rem}
.login{width:100%;max-width:440px}
.login__card{background:#fff;border-radius:var(--r-l);padding:2.4rem;box-shadow:var(--ombra-3)}
.login__head{text-align:center;margin-bottom:1.4rem}
.login__head img{margin:0 auto .8rem;border-radius:50%}
.login__head .eyebrow{justify-content:center;margin-bottom:.4rem}
.login__head h1{font-size:1.6rem}
.login__locked{display:flex;align-items:center;gap:.6em;background:#fdecec;border:1px solid #f2c0c0;color:#a31d1d;padding:.8em 1em;border-radius:var(--r-s);font-size:.92rem;margin-bottom:1rem}
.login__back{display:inline-flex;align-items:center;gap:.4em;justify-content:center;width:100%;margin-top:1.2rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ardesia)}
.admin{background:var(--nebbia)}
.adm{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.adm__side{position:sticky;top:0;height:100vh;background:var(--antracite);color:#c8cdd2;display:flex;flex-direction:column;padding:1.2rem 0}
.adm__brand{display:flex;align-items:center;gap:.7rem;padding:0 1.4rem 1.2rem;color:#fff;font-family:var(--display);text-transform:uppercase;line-height:1;font-size:.95rem;border-bottom:1px solid rgba(255,255,255,.08)}
.adm__brand img{border-radius:50%}.adm__brand strong{color:var(--rosso)}
.adm__nav{display:flex;flex-direction:column;padding:1rem .8rem;gap:.15rem;flex:1;overflow-y:auto}
.adm__nav a{display:flex;align-items:center;gap:.8rem;padding:.7em .9em;border-radius:var(--r-s);color:#c8cdd2;font-family:var(--display);text-transform:uppercase;font-size:.9rem;letter-spacing:.02em;transition:background var(--t),color var(--t)}
.adm__nav a svg{flex:none;color:var(--ardesia-chiara);transition:color var(--t)}
.adm__nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.adm__nav a.is-active{background:var(--rosso);color:#fff}.adm__nav a.is-active svg{color:#fff}
.adm__side-foot{padding:.8rem .8rem 0;display:grid;gap:.15rem;border-top:1px solid rgba(255,255,255,.08);margin-top:.6rem}
.adm__side-foot a{display:flex;align-items:center;gap:.8rem;padding:.7em .9em;border-radius:var(--r-s);color:#c8cdd2;font-family:var(--display);text-transform:uppercase;font-size:.86rem}
.adm__side-foot a:hover{background:rgba(255,255,255,.06);color:#fff}
.adm__main{display:flex;flex-direction:column;min-width:0}
.adm__top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:1rem;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--linea);padding:1rem 1.6rem}
.adm__burger{display:none;width:42px;height:42px;border:1px solid var(--linea-forte);background:#fff;border-radius:var(--r-s);place-items:center;color:var(--antracite)}
.adm__title{font-size:1.4rem;margin-right:auto}
.adm__user{display:flex;align-items:center;gap:.7rem}
.adm__user-name{font-family:var(--mono);font-size:.8rem;color:var(--ardesia)}
.adm__user-pass{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--nebbia-2);color:var(--ardesia)}
.adm__user-pass:hover{background:var(--rosso);color:#fff}
.adm__content{padding:1.6rem;display:grid;gap:1.4rem;max-width:1100px;width:100%}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.stat{display:flex;flex-direction:column;gap:.3rem;background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.3rem;box-shadow:var(--ombra-1);transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.stat:hover{transform:translateY(-3px);box-shadow:var(--ombra-2);border-color:var(--rosso)}
.stat__icon{color:var(--rosso)}
.stat--accent{background:var(--rosso);border-color:var(--rosso);color:#fff}.stat--accent .stat__icon{color:#fff}
.stat__num{font-family:var(--display);font-size:2.4rem;line-height:1}
.stat__label{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ardesia)}
.stat--accent .stat__label{color:rgba(255,255,255,.85)}
.adm-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.panel{background:#fff;border:1px solid var(--linea);border-radius:var(--r-m);padding:1.5rem;box-shadow:var(--ombra-1)}
.panel--narrow{max-width:560px}
.panel+.panel{margin-top:0}
.panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}
.panel__head h2{display:flex;align-items:center;gap:.5em;font-size:1.2rem}.panel__head h2 svg{color:var(--rosso)}
.mini-list{list-style:none;padding:0;display:grid;gap:.7rem}
.mini-list li{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding-bottom:.7rem;border-bottom:1px solid var(--linea)}
.mini-list li:last-child{border-bottom:0;padding-bottom:0}
.mini-list__meta{display:block;font-size:.82rem;color:var(--ardesia)}
.big-fact{font-size:1.05rem;line-height:1.4}
.thumb-row{display:flex;gap:.5rem;flex-wrap:wrap}
.thumb-row img{width:72px;height:72px;object-fit:cover;border-radius:var(--r-s)}
.pill{display:inline-block;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;padding:.3em .7em;border-radius:100px;background:var(--nebbia-2);color:var(--ardesia)}
.pill--nuova{background:var(--rosso-tenue);color:var(--rosso-scuro)}
.pill--contattato{background:#fff3e0;color:#9a6300}
.pill--iscritto{background:#eaf6ec;color:#1f6b34}
.pill--archiviato{background:var(--nebbia-2);color:var(--ardesia)}
.pill--evento{background:#eef2f7;color:#34506f}
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:.94rem}
.table th{text-align:left;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ardesia);padding:.6em .7em;border-bottom:2px solid var(--linea)}
.table td{padding:.7em .7em;border-bottom:1px solid var(--linea);vertical-align:middle}
.table tr:hover td{background:var(--nebbia)}
.table__actions{text-align:right;white-space:nowrap}
.cell-contacts{display:flex;flex-direction:column;gap:.2rem}
.cell-contacts a{display:inline-flex;align-items:center;gap:.35em;font-size:.86rem}
.cell-msg{max-width:240px;color:var(--ardesia)}
.inline{display:inline}
.btn-icon{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:var(--r-s);border:1px solid var(--linea-forte);background:#fff;color:var(--ardesia);transition:background var(--t),color var(--t),border-color var(--t)}
.btn-icon:hover{background:var(--antracite);color:#fff;border-color:var(--antracite)}
.btn-icon--danger:hover{background:var(--rosso);border-color:var(--rosso)}
.logo-mini{width:54px;height:40px;object-fit:contain}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap}
.tab{display:inline-flex;align-items:center;gap:.4em;padding:.5em .9em;border-radius:100px;background:#fff;border:1px solid var(--linea);font-family:var(--display);text-transform:uppercase;font-size:.82rem;color:var(--ardesia)}
.tab span{font-family:var(--mono);font-size:.7rem;background:var(--nebbia-2);padding:.1em .5em;border-radius:100px}
.tab.is-active{background:var(--rosso);border-color:var(--rosso);color:#fff}.tab.is-active span{background:rgba(255,255,255,.25);color:#fff}
.select-status{font-family:var(--mono);font-size:.78rem;padding:.4em .6em;border-radius:var(--r-s);border:1px solid var(--linea-forte);background:#fff}
.select-status--nuova{color:var(--rosso-scuro)}.select-status--iscritto{color:#1f6b34}.select-status--archiviato{color:var(--ardesia)}
.adm-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.photo-sort-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.photo-sort-toolbar .muted{margin:0}
.adm-photo{position:relative;background:var(--nebbia);border:1px solid var(--linea);border-radius:var(--r-m);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.adm-photo.is-cover{border-color:var(--rosso);box-shadow:0 0 0 2px var(--rosso-tenue)}
.adm-photo.is-dragging{opacity:.58;transform:scale(.985);box-shadow:var(--ombra-2)}
.adm-photo.is-drop-target{border-color:var(--rosso);box-shadow:0 0 0 2px var(--rosso-tenue)}
.adm-photo>img{width:100%;aspect-ratio:1;object-fit:cover}
.adm-photo__order{position:absolute;top:.45rem;right:.45rem;z-index:2;display:inline-flex;align-items:center;gap:.35rem;background:rgba(26,29,33,.78);color:#fff;border-radius:999px;padding:.24rem .48rem;font-family:var(--mono);font-size:.68rem;line-height:1;cursor:grab;user-select:none}
.adm-photo__order:active{cursor:grabbing}
.adm-photo__drag{font-size:.78rem;line-height:1;opacity:.82}
.adm-photo__num{min-width:1.15em;text-align:center}
/* Selettore immagini multiplo (accumulo + anteprime) */
.uploader{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.uploader__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:.7rem;margin-top:.9rem}
.uploader__item{position:relative;margin:0;background:var(--nebbia);border:1px solid var(--linea);border-radius:var(--r-m);overflow:hidden}
.uploader__item[draggable="true"]{cursor:grab}
.uploader__item.is-dragging{opacity:.58;transform:scale(.985)}
.uploader__item.is-drop-target{border-color:var(--rosso);box-shadow:0 0 0 2px var(--rosso-tenue)}
.uploader__item.is-too-big{border-color:var(--rosso);box-shadow:0 0 0 2px var(--rosso-tenue)}
.uploader__item img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--nebbia-2)}
.uploader__name{font-family:var(--mono);font-size:.6rem;line-height:1.25;color:var(--ardesia);padding:.35rem .45rem;word-break:break-word}
.uploader__item.is-too-big .uploader__name{color:var(--rosso)}
.adm-news-list{list-style:none;padding:0;display:grid;gap:.8rem}
.adm-news{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;background:var(--nebbia);border:1px solid var(--linea);border-radius:var(--r-m);padding:1.1rem}
.adm-news__top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.3rem}
.adm-news__body strong{font-family:var(--display);text-transform:uppercase}
.adm-news__tools{display:flex;gap:.4rem;flex:none}
.msg-list{list-style:none;padding:0;display:grid;gap:1rem}
.msg{background:var(--nebbia);border:1px solid var(--linea);border-left:3px solid var(--linea-forte);border-radius:var(--r-m);padding:1.2rem}
.msg--unread{border-left-color:var(--rosso);background:#fff}
.msg__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.msg__head strong{font-size:1.05rem}.msg__head a{margin-left:.5rem;font-size:.86rem}
.msg__subject{display:flex;align-items:center;gap:.35em;font-family:var(--mono);font-size:.78rem;color:var(--rosso);margin:.4rem 0}
.msg__body{margin:.5rem 0 1rem;color:var(--antracite)}
.msg__tools{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.def-list{list-style:none;padding:0;display:grid;gap:.7rem;margin-bottom:1.2rem}
.def-list li{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--linea)}
.def-list span{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ardesia)}
.secure-list{list-style:none;padding:0;display:grid;gap:.7rem}
.secure-list li{display:flex;align-items:center;gap:.7em;font-size:.96rem}
.secure-list svg{color:#1f6b34;flex:none}
.form-sticky{position:sticky;bottom:0;background:linear-gradient(0deg,var(--nebbia) 70%,transparent);padding:1rem 0;display:flex;justify-content:flex-end}
/* ===================== RESPONSIVE ===================== */
@media (max-width:1000px){
  .grid--4,.album-grid,.news-grid,.adm-photo-grid{grid-template-columns:repeat(2,1fr)}
  .photo-grid{grid-template-columns:repeat(3,1fr)}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .intro-grid,.contact-grid,.adm-cols{grid-template-columns:1fr}
  .quick{max-width:none}
  .footer__inner{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .adm{grid-template-columns:1fr}
  .adm__side{position:fixed;left:0;top:0;width:264px;z-index:80;transform:translateX(-100%);transition:transform var(--t)}
  body.adm-side-open .adm__side{transform:none;box-shadow:var(--ombra-3)}
  .adm__burger{display:grid}
}
@media (max-width:760px){
  .shot-progress{--rail-left:78px;--rail-right:26px}
  .shot-progress__rifle{display:block;width:68px;height:19px;top:4px;opacity:.70}
  .nav__toggle{display:grid}
  .nav__links{position:fixed;inset:calc(var(--nav-h) + var(--strip-h)) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:#fff;padding:1rem;box-shadow:var(--ombra-2);border-bottom:1px solid var(--linea);transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform var(--t),opacity var(--t)}
  body.menu-open .nav__links{transform:none;opacity:1;pointer-events:auto}
  .nav__links a{padding:.82em .6em;font-size:1rem}
  .nav__links a::after{display:none}
  .nav__cta{margin:.6rem 0 0;justify-content:center}
  .quick{grid-template-columns:1fr}
  .grid--2,.grid--4,.news-grid,.footer__inner{grid-template-columns:1fr}
  .album-grid{grid-template-columns:1fr 1fr}
  .photo-grid,.adm-photo-grid{grid-template-columns:repeat(2,1fr)}
  .form__row{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:1fr 1fr}
  .prog{flex-wrap:wrap}.prog__btn{width:100%;justify-content:center}
  .adm__content{padding:1.1rem}
  .table--youth .cell-msg{display:none}
}
@media (max-width:460px){
  body{font-size:16px}
  .nav__brand-sub{display:none}
  .album-grid{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:1fr}
  .login__card{padding:1.6rem}
  .thanks__actions{flex-direction:column;width:100%}
  .thanks__actions .btn{width:100%;justify-content:center}
}

@media (max-width:760px){
  .hero__visual{min-height:300px}
  .hero__visual--home{grid-template-rows:1fr}
  .hero__visual-logo img{width:min(72%,270px)}
}

:focus-visible{outline:3px solid var(--rosso);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  }

/* ===================== V18 HOME — pulizia estetica e maggiore coerenza ===================== */
.hero--home{
  background:
    radial-gradient(900px 520px at 78% 42%,rgba(255,255,255,.07),transparent 64%),
    linear-gradient(180deg,#181c20 0%,#22282e 100%);
}
.hero--home::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 55%);
  pointer-events:none;
}
.hero--home .hero__inner{padding:clamp(3.8rem,8vw,6rem) 0 clamp(4rem,7vw,5.4rem)}
.hero--home .hero__title{max-width:17ch;letter-spacing:.018em}
.hero--home .hero__sub{color:#e1e6eb;font-size:clamp(1.08rem,2vw,1.22rem);line-height:1.7;max-width:54ch}
.hero--home .eyebrow{color:#f1f4f7;text-shadow:none}
.hero__rings{
  right:clamp(-230px,-8vw,-120px);
  top:50%;
  width:min(560px,58vw);
  opacity:.22;
  border:1px solid rgba(255,255,255,.22);
  background:
    radial-gradient(circle at center,rgba(196,30,42,.42) 0 8px,transparent 9px),
    repeating-radial-gradient(circle at center,transparent 0 48px,rgba(255,255,255,.26) 49px 50px,transparent 51px 96px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 80px rgba(0,0,0,.16);
}
.hero__rings::before,.hero__rings::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  translate:-50% -50%;
  background:rgba(255,255,255,.16);
}
.hero__rings::before{width:100%;height:1px}
.hero__rings::after{width:1px;height:100%}
.quick--home{max-width:830px;gap:.9rem}
.quick--home .quick__item{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);
  padding:1.05rem 1.1rem;
  backdrop-filter:blur(4px);
}
.quick--home .quick__icon,.quick--home .quick__go{color:#fff;opacity:.92}
.quick--home .quick__label{font-size:.98rem;color:#fff}
.quick--home .quick__item:hover{background:#fff;border-color:#fff;color:var(--antracite)}
.quick--home .quick__item:hover .quick__label,.quick--home .quick__item:hover .quick__icon,.quick--home .quick__item:hover .quick__go{color:var(--antracite)}

.home-showcase{
  display:grid;
  grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr);
  gap:clamp(1.5rem,5vw,3.4rem);
  align-items:center;
  padding-top:clamp(3rem,7vw,5rem);
  padding-bottom:clamp(3rem,7vw,5rem);
}
.home-showcase__media{
  min-height:340px;
  border-radius:var(--r-l);
  overflow:hidden;
  background:linear-gradient(135deg,#22282e,#14171a);
  box-shadow:var(--ombra-2);
  position:relative;
}
.home-showcase__media img{width:100%;height:100%;object-fit:cover}
.home-showcase__media--stand{background:#dfe3e6}
.home-showcase__media--stand img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.96) contrast(1.03)}
.home-showcase__placeholder{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  align-content:center;
  gap:1rem;
  padding:2rem;
  background:
    radial-gradient(circle at 70% 25%,rgba(255,255,255,.08),transparent 35%),
    linear-gradient(135deg,#22282e,#161a1e);
}
.home-showcase__placeholder::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:44%;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.28));
}
.home-showcase__placeholder img{position:relative;z-index:1;width:min(210px,58%);height:auto;object-fit:contain;filter:drop-shadow(0 16px 28px rgba(0,0,0,.34))}
.home-showcase__placeholder span{position:relative;z-index:1;font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#dfe5ea}
.home-showcase__content h2{margin:.5rem 0 1rem;max-width:12ch}
.home-showcase__content p:not(.eyebrow){color:var(--ardesia);font-size:1.08rem;line-height:1.72}
.history-counter{
  display:inline-grid;
  grid-template-columns:auto auto;
  align-items:end;
  gap:.6rem;
  margin:1.5rem 0 1.4rem;
  padding:1rem 1.25rem;
  border:1px solid var(--linea);
  border-radius:var(--r-m);
  background:#fff;
  box-shadow:var(--ombra-1);
}
.history-counter__label{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ardesia);padding-bottom:.55rem}
.history-counter__year{font-family:var(--display);font-size:clamp(3rem,7vw,5.2rem);line-height:.86;color:var(--antracite);letter-spacing:.015em;font-variant-numeric:tabular-nums}

.home-events{background:linear-gradient(180deg,#fff,#f6f7f8)}
.news-grid--home .news-item,.program-card{
  border:1px solid var(--linea);
  border-left:0;
  border-top:3px solid var(--rosso);
  box-shadow:var(--ombra-1);
}
.program-card{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:1.25rem;
  background:#fff;
  border-radius:var(--r-m);
  padding:1.25rem;
  max-width:940px;
}
.program-card__icon{display:grid;place-items:center;width:58px;height:58px;border-radius:var(--r-s);background:var(--rosso-tenue);color:var(--rosso)}
.program-card__kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rosso);margin-bottom:.15rem}
.program-card h3{font-size:1.25rem;text-transform:uppercase;margin:.1rem 0 .25rem}
.program-card p{color:var(--ardesia);font-size:.98rem}

.home-values .value{
  background:linear-gradient(180deg,#fff,#fafafa);
  border-color:rgba(26,29,33,.09);
  box-shadow:var(--ombra-1);
}
.home-values .value:hover{border-color:rgba(26,29,33,.16);transform:translateY(-3px)}
.home-values .value__icon{background:#f0f1f2;color:var(--antracite)}
.home-values .value h3{letter-spacing:.015em}
.home-values .value::after,.news-grid--home .news-item::after,.program-card::after{display:none}
.home-sponsors{padding-top:clamp(2.4rem,5vw,3.6rem)}

@media (max-width:900px){
  .hero__inner--split{grid-template-columns:1fr}
  .hero__visual{order:-1;min-height:260px}
  .home-showcase{grid-template-columns:1fr}
  .home-showcase__media{min-height:300px}
  .program-card{grid-template-columns:auto 1fr}
  .program-card .btn{grid-column:1 / -1;justify-content:center}
}
@media (max-width:760px){
  .hero__rings{right:-240px;width:520px;opacity:.16}
  .quick--home{grid-template-columns:1fr}
  .history-counter{width:100%;grid-template-columns:1fr;gap:.15rem}
  .history-counter__label{padding-bottom:0}
}

/* ===================== V19 HOME — foto stand, ultimo album, bersaglio più pulito ===================== */
.hero--home{
  background:
    radial-gradient(760px 460px at 78% 42%,rgba(255,255,255,.055),transparent 66%),
    linear-gradient(180deg,#181c20 0%,#20262b 100%);
}
.hero__rings{
  width:min(500px,52vw);
  right:clamp(-210px,-7vw,-130px);
  opacity:.18;
  border:0;
  background:
    radial-gradient(circle at center,rgba(196,30,42,.46) 0 7px,transparent 8px),
    radial-gradient(circle at center,transparent 0 58px,rgba(255,255,255,.24) 59px 61px,transparent 62px),
    radial-gradient(circle at center,transparent 0 118px,rgba(255,255,255,.20) 119px 121px,transparent 122px),
    radial-gradient(circle at center,transparent 0 178px,rgba(255,255,255,.16) 179px 181px,transparent 182px),
    radial-gradient(circle at center,transparent 0 238px,rgba(255,255,255,.12) 239px 241px,transparent 242px);
  box-shadow:none;
}
.hero__rings::before,.hero__rings::after{background:rgba(255,255,255,.10)}
.home-showcase__media img{filter:saturate(.96) contrast(1.03)}
.home-showcase__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.20));
  pointer-events:none;
}
.home-founded{
  display:flex;
  align-items:baseline;
  gap:.65rem;
  margin:1.45rem 0 1.5rem;
  color:var(--ardesia);
}
.home-founded span{
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.home-founded strong{
  font-family:var(--display);
  font-size:clamp(2.35rem,5vw,4.1rem);
  line-height:.9;
  color:var(--antracite);
  letter-spacing:.012em;
  font-variant-numeric:tabular-nums;
}
.iscrizioni-intro{max-width:900px;margin:0 auto 1.2rem}.iscrizioni-intro h2{display:flex;align-items:center;gap:.5em;margin-bottom:.65rem}.iscrizioni-intro h2 svg{color:var(--rosso)}
.latest-album-section{padding-top:0}
.latest-album{
  display:grid;
  grid-template-columns:minmax(220px,360px) 1fr;
  gap:0;
  overflow:hidden;
  border-radius:var(--r-l);
  background:#fff;
  border:1px solid var(--linea);
  box-shadow:var(--ombra-1);
  color:var(--antracite);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.latest-album:hover{transform:translateY(-3px);box-shadow:var(--ombra-2);border-color:rgba(26,29,33,.16);color:var(--antracite)}
.latest-album__media{min-height:210px;background:var(--nebbia-2);overflow:hidden;display:grid;place-items:center}
.latest-album__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow)}
.latest-album:hover .latest-album__media img{transform:scale(1.045)}
.latest-album__body{padding:clamp(1.3rem,4vw,2.1rem);display:flex;flex-direction:column;justify-content:center;gap:.45rem}
.latest-album__body strong{font-family:var(--display);font-size:clamp(1.55rem,3.4vw,2.25rem);line-height:1.05;text-transform:uppercase;letter-spacing:.01em;color:var(--antracite)}
.latest-album__body span:not(.eyebrow){color:var(--ardesia)}
.latest-album__body em{font-style:normal;display:inline-flex;align-items:center;gap:.4rem;margin-top:.55rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rosso)}
.latest-album__body em svg{transition:transform var(--t)}
.latest-album:hover .latest-album__body em svg{transform:translateX(3px)}
.history-counter{border:0;background:transparent;box-shadow:none;padding:0}
@media (max-width:760px){
  .latest-album{grid-template-columns:1fr}
  .latest-album__media{min-height:230px}
  .home-founded{align-items:flex-start;flex-direction:column;gap:.25rem}
  .hero__rings{right:-260px;width:520px;opacity:.13}
  .shot-progress__score{right:-4px;top:24px;min-width:28px;padding:1px 5px}
  .shot-progress__score strong{font-size:.84rem}
  .prog__actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
  .prog__actions .btn{width:100%;justify-content:center}
}


/* =====================================================================
   V31 — REFRESH ESTETICO 2026
   Obiettivo: aspetto più fresco e moderno mantenendo l'identità del club
   (rosso/antracite + bersaglio). Tutto è additivo: nessuna classe rimossa.
   Novità: superfici calde a strati, pulsanti più ricchi, ombre morbide,
   dettagli "mira" sui titoli, e rifiniture del pannello admin (badge, azioni).
   ===================================================================== */
:root{
  --paper:#F6F5F2;            /* carta calda al posto del grigio piatto */
  --paper-2:#EFEEEA;
  --surface:#FFFFFF;
  --ink:#15181B;
  --r-s:9px;--r-m:15px;--r-l:24px;
  --ombra-1:0 1px 2px rgba(21,24,27,.05),0 4px 14px rgba(21,24,27,.05);
  --ombra-2:0 10px 30px rgba(21,24,27,.10);
  --ombra-3:0 24px 60px rgba(21,24,27,.20);
  --grad-accent:linear-gradient(135deg,var(--rosso),#E0463F 60%,var(--oro));
}

/* Sfondo a strati: leggerissimi aloni che danno profondità senza rumore */
body:not(.admin):not(.login-body){
  background:
    radial-gradient(1100px 620px at 88% -8%,rgba(196,30,42,.05),transparent 60%),
    radial-gradient(900px 560px at -6% 8%,rgba(183,137,43,.05),transparent 55%),
    var(--paper);
}
/* Filo brand in cima alla pagina: firma cromatica del club */
body:not(.admin):not(.login-body)::before{
  content:"";position:fixed;left:0;right:0;top:0;height:3px;z-index:90;
  background:var(--grad-accent);
}

/* Tipografia un filo più ariosa */
h2{letter-spacing:.012em}
.section__head h2{position:relative;padding-bottom:.55rem}
.section__head h2::after{
  content:"";position:absolute;left:0;bottom:0;width:54px;height:3px;border-radius:999px;
  background:var(--grad-accent);
}
.section--dark .section__head h2::after{background:linear-gradient(90deg,#fff,rgba(255,255,255,.2))}

/* Pulsanti: gradiente sottile + ombra colorata, hover più deciso */
.btn{
  background:var(--grad-accent);border-color:transparent;border-radius:999px;
  box-shadow:0 6px 18px rgba(196,30,42,.22);letter-spacing:.05em;
}
.btn:hover{background:var(--rosso-scuro);box-shadow:0 10px 26px rgba(158,22,32,.30)}
.btn--ghost{background:#fff;color:var(--antracite);border:1.5px solid var(--linea-forte);box-shadow:var(--ombra-1)}
.btn--ghost:hover{background:var(--antracite);color:#fff;box-shadow:var(--ombra-2)}
.section--dark .btn--ghost{background:transparent}

/* Card e superfici: bordi morbidi, ombre più moderne, micro-lift coerente */
.card,.value,.news-item,.prog,.album,.info-list__item,
.contact-info__item,.form-card,.sponsor-strip__item,.support,.latest-album,
.panel,.stat,.program-card,.heritage-band{
  border-color:rgba(21,24,27,.08);
  box-shadow:var(--ombra-1);
}

/* Eyebrow come piccola "targhetta" */
.eyebrow{background:rgba(196,30,42,.07);padding:.34em .7em;border-radius:999px}
.section--dark .eyebrow,.hero .eyebrow,.page-head .eyebrow{background:rgba(255,255,255,.10)}

/* Hero: vetro + bagliore d'accento più contemporaneo */
.hero--home .hero__visual--home{
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 30px 70px rgba(0,0,0,.35);
  border-radius:var(--r-l);
}
.quick--home .quick__item{backdrop-filter:saturate(140%) blur(4px)}
.quick--home .quick__item:hover{transform:translateY(-4px)}

/* Quick-cards home: icona in pastiglia accent */
.quick__icon{background:rgba(196,30,42,.10);width:42px;height:42px;border-radius:12px}
.quick--home .quick__icon{background:rgba(255,255,255,.12);color:#fff}

/* Navbar: vetro più nitido + filo accent sotto quando si scrolla */
.nav{background:rgba(255,255,255,.82);backdrop-filter:saturate(160%) blur(14px)}
.nav.is-scrolled{box-shadow:0 6px 24px rgba(21,24,27,.07)}
.nav__cta{border-radius:999px;background:var(--grad-accent);box-shadow:0 6px 16px rgba(196,30,42,.24)}

/* Footer: stacco netto e caldo */
.footer{background:linear-gradient(180deg,#15181B,#0F1113)}

/* ---- ADMIN: badge di notifica nella barra laterale ---- */
.adm__nav a{position:relative}
.adm__badge{
  margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;
  display:inline-grid;place-items:center;background:var(--rosso);color:#fff;
  font-family:var(--mono);font-size:.7rem;font-weight:600;line-height:1;
  box-shadow:0 0 0 2px rgba(196,30,42,.25);
}
.adm__nav a.is-active .adm__badge{background:#fff;color:var(--rosso);box-shadow:none}

/* ---- ADMIN: barra azioni rapide in dashboard ---- */
.quick-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.quick-action{
  display:inline-flex;align-items:center;gap:.5em;padding:.6em 1em;border-radius:999px;
  background:var(--surface);border:1px solid var(--linea);color:var(--antracite);
  font-family:var(--display);text-transform:uppercase;font-size:.84rem;letter-spacing:.03em;
  box-shadow:var(--ombra-1);transition:transform var(--t),box-shadow var(--t),border-color var(--t),background var(--t),color var(--t);
}
.quick-action svg{color:var(--rosso);transition:color var(--t)}
.quick-action:hover{transform:translateY(-2px);box-shadow:var(--ombra-2);border-color:var(--rosso);color:var(--antracite)}
.quick-action--ghost{margin-left:auto;background:transparent;box-shadow:none}
.quick-action--ghost svg{color:var(--ardesia)}

/* ---- ADMIN: superfici più morbide e stat card vivaci ---- */
.admin{background:
  radial-gradient(900px 500px at 100% 0%,rgba(196,30,42,.04),transparent 60%),
  var(--paper);}
.adm__side{background:linear-gradient(180deg,#15181B,#0F1113)}
.adm__nav a.is-active{background:var(--grad-accent);box-shadow:0 6px 16px rgba(196,30,42,.30)}
.stat{border-radius:var(--r-m)}
.stat--accent{background:var(--grad-accent);border-color:transparent;box-shadow:0 10px 26px rgba(196,30,42,.25)}
.stat__num{font-variant-numeric:tabular-nums}
.adm__top{background:rgba(255,255,255,.82);backdrop-filter:saturate(160%) blur(12px)}

/* Form: focus più morbido e moderno */
.field input,.field textarea,.field select,.form input,.form textarea,.form select{border-radius:11px}
.field input:focus,.field textarea:focus,.field select:focus,
.form input:focus,.form textarea:focus,.form select:focus{box-shadow:0 0 0 4px rgba(196,30,42,.12)}

/* Pill un filo più morbide */
.pill{border-radius:999px}

@media (max-width:760px){
  .quick-action--ghost{margin-left:0}
  body:not(.admin):not(.login-body)::before{height:2px}
}


/* =====================================================================
   V32 — VIRATA "LODEN ALPINO" (2026)
   Stessa identità (stemma rosso + bersaglio + FASS), ma la base scura
   passa dall'antracite freddo a un loden profondo: evoca la valle, il
   poligono e la tradizione. Il rosso resta l'unico accento deciso, l'oro
   il metallo heritage. Tutto additivo: nessuna classe rimossa, markup
   intatto. Ridefinisce solo i token e poche superfici hardcoded.
   ===================================================================== */
:root{
  --antracite:#16231E;        /* loden profondo (era antracite freddo) */
  --antracite-2:#22352D;      /* loden chiaro */
  --nebbia:#EDF0EE;           /* pietra alpina fredda (era grigio piatto) */
  --nebbia-2:#E2E7E3;
  --ardesia:#52605A;          /* ardesia con sottotono verde */
  --ardesia-chiara:#828E87;
  --linea:rgba(22,35,30,.10);
  --linea-forte:rgba(22,35,30,.18);
  --oro:#C0922F;              /* oro un filo più vivo, regge sul loden */
  --ink:#16231E;
  --paper:#EFF2F0;            /* carta fredda alpina */
  --paper-2:#E6EAE7;
  --ombra-1:0 1px 2px rgba(16,30,24,.05),0 4px 14px rgba(16,30,24,.06);
  --ombra-2:0 12px 32px rgba(16,30,24,.12);
  --ombra-3:0 26px 64px rgba(16,30,24,.22);
}

/* Aloni di sfondo coerenti con la nuova base: un soffio di loden + oro,
   niente più alone rosso (resta solo come accento sugli elementi). */
body:not(.admin):not(.login-body){
  background:
    radial-gradient(1100px 620px at 88% -8%,rgba(22,40,32,.06),transparent 60%),
    radial-gradient(900px 560px at -6% 8%,rgba(192,146,47,.06),transparent 55%),
    var(--paper);
}

/* Superfici scure hardcoded nel blocco V31: portate al loden per coerenza. */
.footer{background:linear-gradient(180deg,#1A2C25,#0F1712);border-top:1px solid rgba(192,146,47,.22)}
.adm__side{background:linear-gradient(180deg,#1A2C25,#101A15)}
.admin{background:
  radial-gradient(900px 500px at 100% 0%,rgba(192,146,47,.05),transparent 60%),
  var(--paper);}

/* Filo oro "da medaglia" sopra i blocchi scuri: lega il loden al rosso/oro. */
.section--dark{border-top:1px solid rgba(192,146,47,.22)}

/* L'attiva nel menu admin e le stat-accent restano sul gradiente rosso→oro:
   contro il loden risaltano ancora di più, nessuna modifica necessaria. */


/* ---- Album sospeso (nascosto al pubblico) ---- */
.adm-album.is-suspended .btn-icon--ok:hover{background:#1f6b34;border-color:#1f6b34;color:#fff}
.album-visibility{display:inline-flex;align-items:center;gap:.6rem;flex-wrap:wrap}


/* ---- V32: correzioni richieste ---- */
/* Via la riga arancione fissa in cima a ogni pagina (era un filo decorativo). */
body:not(.admin):not(.login-body)::before{display:none !important}


/* =====================================================================
   V33 — ELEGANZA + COERENZA CON LO STEMMA (2026)
   Lo stemma è verde loden (campo), oro (alloro / "1877") e rosso (la carica).
   Qui togliamo l'arancione dai pulsanti (era un gradiente rosso→arancio→oro):
   il rosso torna pieno e deciso, l'oro resta solo come filo "da medaglia" sui
   dettagli sottili. Niente markup nuovo obbligatorio: solo override mirati.
   Interventi: colore pulsanti, anello di focus che segue la pillola, stemma
   hero senza cornice, barra di ricerca galleria, sponsor più grandi, footer
   mobile compatto, linea del proiettile centrata.
   ===================================================================== */
:root{
  /* filo "nastro da medaglia": rosso→oro, senza più l'arancione di mezzo.
     Usato solo su linee sottili (sottotitoli, barra del proiettile). */
  --grad-accent:linear-gradient(90deg,var(--rosso),var(--oro));
  --ring:0 0 0 2px var(--surface,#fff),0 0 0 4px var(--rosso);
}

/* --- Pulsanti: rosso pieno, niente arancione --- */
.btn{
  background:var(--rosso);
  border-color:var(--rosso);
  box-shadow:0 6px 18px rgba(150,22,30,.20);
}
.btn:hover{
  background:var(--rosso-scuro);
  border-color:var(--rosso-scuro);
  box-shadow:0 10px 26px rgba(120,18,26,.28);
}
.nav__cta{background:var(--rosso);box-shadow:0 6px 16px rgba(150,22,30,.22)}
.nav__cta:hover,.nav__cta.is-active{background:var(--rosso-scuro)}

/* --- Focus: anello che segue la forma (addio rettangolo sulle pillole) ---
   outline+offset, su una pillola (border-radius:999px), in alcuni browser
   disegna un rettangolo arrotondato staccato che "taglia" gli estremi ovali.
   Sugli elementi a pillola (senza overflow:hidden) usiamo un box-shadow:
   segue sempre il border-radius, quindi resta perfettamente ovale. */
.btn:focus-visible,
.nav__cta:focus-visible{
  outline:none;
  box-shadow:var(--ring);
}
.btn:focus-visible{box-shadow:var(--ring),0 8px 20px rgba(120,18,26,.22)}
/* Il campo di ricerca mostra già il focus sul contenitore (focus-within):
   evito un secondo anello interno togliendo l'outline solo all'input. */
.gallery-search__input:focus-visible{outline:none}
/* In alto contrasto (forced-colors) il box-shadow non si vede: ripristino l'outline. */
@media (forced-colors: active){
  .btn:focus-visible,.nav__cta:focus-visible{
    outline:3px solid CanvasText;outline-offset:2px;box-shadow:none;
  }
  .gallery-search__field:focus-within{outline:2px solid CanvasText;outline-offset:1px}
}

/* --- Hero: lo stemma vive direttamente sullo sfondo, senza riquadro --- */
.hero__crest{
  position:relative;z-index:2;
  display:grid;place-items:center;
  min-height:clamp(240px,32vw,400px);
  padding:clamp(.5rem,2vw,1.5rem);
}
.hero__crest::before{
  content:"";position:absolute;z-index:0;
  width:86%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(192,146,47,.16),rgba(192,146,47,.05) 45%,transparent 64%);
}
.hero__crest-img{
  position:relative;z-index:1;
  width:min(80%,360px);height:auto;object-fit:contain;
  filter:drop-shadow(0 22px 42px rgba(0,0,0,.42));
}
.hero__crest.reveal{transform:translateY(14px) scale(.985)}
.hero__crest.reveal.in{transform:none}

/* --- Barra di ricerca galleria --- */
.gallery-search{
  display:flex;align-items:center;justify-content:space-between;gap:1rem 1.4rem;
  flex-wrap:wrap;margin-bottom:2.2rem;
}
.gallery-search--inline{margin-bottom:1.6rem}
.gallery-search__field{
  position:relative;display:flex;align-items:center;flex:1 1 420px;max-width:560px;
  background:var(--surface,#fff);border:1px solid var(--linea-forte);
  border-radius:999px;box-shadow:var(--ombra-1);
  transition:border-color var(--t),box-shadow var(--t);
}
.gallery-search__field:focus-within{
  border-color:var(--rosso);box-shadow:0 0 0 4px rgba(184,30,40,.10),var(--ombra-1);
}
.gallery-search__icon{display:grid;place-items:center;padding-left:1.05rem;color:var(--ardesia);flex:none}
.gallery-search__input{
  flex:1;border:0;background:transparent;outline:none;
  padding:.95em 1em .95em .7em;font-size:1.02rem;color:var(--ink);
}
.gallery-search__input::placeholder{color:var(--ardesia)}
.gallery-search__clear{
  display:grid;place-items:center;flex:none;
  width:34px;height:34px;margin-right:.4rem;
  border:0;background:var(--nebbia-2);color:var(--ardesia);border-radius:50%;
  transition:background var(--t),color var(--t);
}
.gallery-search__clear:hover{background:var(--rosso);color:#fff}
.gallery-search__hint{
  margin:0;flex:none;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ardesia);white-space:nowrap;
}
.gallery-empty{
  text-align:center;padding:clamp(2.4rem,6vw,4rem) 1rem;color:var(--ardesia);
  display:grid;justify-items:center;gap:.7rem;
}
.gallery-empty .empty__icon{color:var(--ardesia-chiara)}
.gallery-empty p{max-width:42ch}
.gallery-empty strong{color:var(--ink)}

/* --- Card album: targhetta anno + conteggio con icona --- */
.album__thumb{position:relative}
.album__year-tag{
  position:absolute;top:.55rem;right:.55rem;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;
  padding:.18em .55em;border-radius:999px;
  background:rgba(20,32,27,.72);color:#fff;backdrop-filter:blur(3px);
}
.album__count{display:inline-flex;align-items:center;gap:.4em}
.album__count svg{color:var(--rosso)}

/* --- Header pagina album: titolo + dati a destra --- */
.album-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:1.4rem 2rem;
  flex-wrap:wrap;margin-top:.8rem;
}
.album-head__text h1{margin-top:.5rem}
.album-head__facts{
  list-style:none;margin:0;padding:0;display:flex;gap:1.6rem;align-items:flex-end;
}
.album-head__facts li{display:grid;gap:.1rem;text-align:center}
.album-head__num{font-family:var(--display);font-size:clamp(1.8rem,4vw,2.6rem);line-height:1;color:#fff}
.album-head__num--gold{color:var(--oro)}
.album-head__lbl{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#c8cdd2}

/* --- Sponsor: sezione più presente e card più grandi --- */
.section__head--center{max-width:none;text-align:center;margin-inline:auto;margin-bottom:2.6rem}
.section__head--center h2::after{left:50%;transform:translateX(-50%)}
.section__head--center .section__head-lead{margin-left:auto;margin-right:auto}
.home-sponsors--feature{
  background:
    radial-gradient(680px 320px at 50% -10%,rgba(192,146,47,.07),transparent 62%),
    var(--surface,#fff);
  border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);
}
.sponsor-strip--lg{gap:1.4rem;margin-bottom:2.4rem}
.sponsor-strip--lg .sponsor-strip__item{
  min-width:210px;height:132px;padding:1.4rem 1.8rem;border-radius:var(--r-l);
}
.sponsor-strip--lg .sponsor-strip__item img{max-height:84px}
.sponsor-strip--lg .sponsor-strip__name{font-size:1.15rem}

/* --- Linea del proiettile centrata con il proiettile ---
   Il proiettile ha il centro a 12px; la linea era centrata a 14px.
   La alziamo di 2px così sembra davvero la traiettoria del colpo. */
.shot-progress__rail::before{top:11px}
.shot-progress__bar{top:11px}
.shot-progress__rail::after{top:8px}

/* --- Footer compatto da telefono: "Naviga" e "Partecipa" sulla stessa riga --- */
@media (max-width:680px){
  .footer__inner{grid-template-columns:1fr 1fr;gap:1.6rem 1.4rem}
  .footer__col--brand{grid-column:1 / -1}
  .footer__col--brand .footer__tag{max-width:46ch}
  .footer__col:nth-child(4){grid-column:1 / -1}  /* Contatti a tutta larghezza */
}

/* --- Rifiniture responsive V33 --- */
@media (max-width:760px){
  .gallery-search{flex-direction:column;align-items:stretch}
  .gallery-search__field{max-width:none;flex-basis:auto}
  .gallery-search__hint{text-align:right}
  .album-head{align-items:flex-start}
  .album-head__facts{gap:1.2rem}
}


/* =====================================================================
   V35 — AZIONE ROSSO-ARANCIONE "VIVA" (2026)
   Ritorno richiesto al rosso-arancione, ma vivo e non stancante: una sfumatura
   diagonale rosso→arancio caldo dà profondità (niente tinta piatta), il testo è
   bianco caldo (più morbido del bianco puro) e l'arancio finale resta caldo,
   non neon. Sfumatura leggera in alto per il volume. Funziona bene anche sui
   blocchi scuri loden. Resta valido il fix dell'anello di focus (segue la pillola).
   ===================================================================== */
:root{
  --btn-grad:linear-gradient(135deg,#CE2E2C 0%,#E2511F 58%,#F1832F 100%);
  --btn-grad-hover:linear-gradient(135deg,#B82428 0%,#C9431A 58%,#DC6F24 100%);
  --btn-ink:#FFF7F1;          /* bianco caldo: vivace ma non abbagliante */
  --btn-sheen:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,0) 46%);
  --ring:0 0 0 2px var(--surface,#fff),0 0 0 4px #D8431E;
}

/* --- Pulsante primario: rosso-arancione con sfumatura viva --- */
.btn,.btn--accent{
  background:var(--btn-sheen),var(--btn-grad);
  border-color:transparent;
  color:var(--btn-ink);
  box-shadow:0 6px 18px rgba(213,70,30,.26);
}
.btn:hover,.btn--accent:hover{
  background:var(--btn-sheen),var(--btn-grad-hover);
  border-color:transparent;color:#fff;
  box-shadow:0 10px 26px rgba(190,55,22,.32);
}
.btn svg{color:var(--btn-ink)}
.nav__cta{
  background:var(--btn-sheen),var(--btn-grad);color:var(--btn-ink)!important;
  box-shadow:0 6px 16px rgba(213,70,30,.26);
}
.nav__cta:hover,.nav__cta.is-active{background:var(--btn-sheen),var(--btn-grad-hover);color:#fff!important}

/* Focus: anello caldo che segue la pillola (resta valido il fix V33). */
.btn:focus-visible,.nav__cta:focus-visible{box-shadow:var(--ring)}
.btn:focus-visible{box-shadow:var(--ring),0 8px 20px rgba(190,55,22,.24)}
@media (forced-colors: active){
  .btn:focus-visible,.nav__cta:focus-visible{outline:3px solid CanvasText;outline-offset:2px;box-shadow:none}
}

/* --- Campi modulo: focus caldo ma leggero, per non stancare --- */
.field input:focus,.field textarea:focus,.field select:focus,
.form input:focus,.form textarea:focus,.form select:focus{
  border-color:#D8431E;box-shadow:0 0 0 4px rgba(216,67,30,.12);
}

/* --- Nota privacy sotto i moduli --- */
.form-privacy{
  display:flex;align-items:flex-start;gap:.5em;
  margin:.2rem 0 1rem;font-size:.82rem;line-height:1.5;color:var(--ardesia);
  max-width:60ch;
}
.form-privacy svg{flex:none;margin-top:.15em;color:var(--rosso)}
.form-privacy a{color:var(--rosso);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.form-privacy a:hover{color:var(--rosso-scuro)}

/* --- Mappa: barra con indirizzo + indicazioni stradali --- */
.map-bar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem 1.4rem;
  flex-wrap:wrap;margin-bottom:1rem;padding:1rem 1.2rem;
  background:var(--surface,#fff);border:1px solid var(--linea);
  border-radius:var(--r-m);box-shadow:var(--ombra-1);
}
.map-bar__where{display:flex;align-items:center;gap:.8rem;min-width:0}
.map-bar__icon{
  flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:rgba(196,30,42,.10);color:var(--rosso);
}
.map-bar__where strong{display:block;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.01em;font-size:1.02rem;color:var(--ink)}
.map-bar__where span{font-size:.9rem;color:var(--ardesia)}
.map-bar__actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}

@media (max-width:620px){
  .map-bar{flex-direction:column;align-items:stretch}
  .map-bar__actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
  .map-bar__actions .btn{width:100%;justify-content:center}
}


/* ===================== V37 — pulizia home, album e contatti ===================== */
.quick--home.quick--two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:640px}
.program-card p{max-width:64ch}
.btn--album-back{display:inline-flex;align-items:center;gap:.45em;margin-bottom:1rem;font-weight:700;box-shadow:var(--ombra-2)}
.album-bottom-actions{display:flex;justify-content:center;margin-top:2rem}
.contact-info__item--signup .btn{margin-top:.85rem}
.form-card .muted{color:var(--ardesia);font-size:.95rem;margin-bottom:1rem}
@media (max-width:720px){
  .quick--home.quick--two{grid-template-columns:1fr;max-width:none}
  .btn--album-back{width:100%;justify-content:center}
}


/* ===================== V38 — home centrata + pulsanti rossi + preview programma ===================== */
:root{
  --btn-grad:linear-gradient(135deg,#C41E2A 0%,#B11A24 55%,#9E1620 100%);
  --btn-grad-hover:linear-gradient(135deg,#B11A24 0%,#9E1620 55%,#87131B 100%);
  --btn-ink:#FFF8F8;
  --btn-sheen:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0) 46%);
  --ring:0 0 0 2px var(--surface,#fff),0 0 0 4px rgba(196,30,42,.38);
}
.btn,.btn--accent{
  background:var(--btn-sheen),var(--btn-grad);
  border-color:transparent;
  color:var(--btn-ink);
  box-shadow:0 8px 20px rgba(196,30,42,.22);
}
.btn:hover,.btn--accent:hover{
  background:var(--btn-sheen),var(--btn-grad-hover);
  border-color:transparent;
  color:#fff;
  box-shadow:0 12px 28px rgba(158,22,32,.28);
}
.btn svg,.btn--accent svg{color:var(--btn-ink)}
.nav__cta{
  background:var(--btn-sheen),var(--btn-grad);
  color:var(--btn-ink)!important;
  box-shadow:0 8px 18px rgba(196,30,42,.22);
}
.nav__cta:hover,.nav__cta.is-active{background:var(--btn-sheen),var(--btn-grad-hover);color:#fff!important}

.home-showcase{
  grid-template-columns:1fr;
  justify-items:center;
  text-align:center;
  max-width:980px;
}
.home-showcase__media{width:min(100%,860px);min-height:360px}
.home-showcase__content{max-width:72ch;margin-inline:auto}
.home-showcase__content h2{max-width:none;margin-left:auto;margin-right:auto}
.home-showcase__content p:not(.eyebrow){margin-left:auto;margin-right:auto;max-width:64ch}
.home-founded{justify-content:center}
.home-showcase__content .btn{margin-inline:auto}

.latest-album{grid-template-columns:1fr;max-width:920px;margin-inline:auto}
.latest-album__media{min-height:280px}
.latest-album__body{align-items:center;text-align:center}
.latest-album__body em{justify-content:center}

.home-events .section__head,
.home-values .section__head{margin-inline:auto;text-align:center}
.home-events .section__head h2::after,
.home-values .section__head h2::after{left:50%;transform:translateX(-50%)}
.home-values .value{text-align:center}
.home-values .value__icon{margin-inline:auto}

.program-home{display:grid;gap:1.5rem;justify-items:center}
.program-home__intro{max-width:70ch;text-align:center}
.program-home__kicker{
  display:inline-flex;align-items:center;gap:.45em;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--rosso);margin-bottom:.45rem;
}
.program-home h2,
.program-home h3{font-size:clamp(1.5rem,3.5vw,2.1rem);text-transform:uppercase;margin-bottom:.55rem}
.program-home__intro p:not(.program-home__kicker){color:var(--ardesia);font-size:1.02rem;line-height:1.7}
.program-home__actions{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:1rem}
.program-home__viewer-wrap{width:min(100%,980px);margin-inline:auto}
.program-home__viewer{
  background:#fff;border:1px solid rgba(21,24,27,.08);border-top:3px solid var(--rosso);
  border-radius:var(--r-l);padding:1rem;box-shadow:var(--ombra-2);
}
.program-home__viewer iframe{
  display:block;width:100%;aspect-ratio:210 / 297;border:0;border-radius:calc(var(--r-l) - 10px);background:#fff;
}
.program-home__note{margin-top:.8rem;text-align:center;font-size:.92rem}

@media (max-width:900px){
  .home-showcase{grid-template-columns:1fr}
  .home-showcase__media{min-height:300px}
}
@media (max-width:760px){
  .latest-album__media{min-height:220px}
  .program-home__viewer{padding:.7rem}
  .program-home__actions{flex-direction:column;align-items:stretch}
  .program-home__actions .btn{width:100%;justify-content:center}
}


/* ===================== V41 — home meno centrata e programma home semplificato ===================== */
.home-showcase{
  grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr);
  justify-items:stretch;
  text-align:left;
  max-width:none;
}
.home-showcase__media{width:auto;min-height:340px}
.home-showcase__content{max-width:none;margin-inline:0}
.home-showcase__content h2{max-width:12ch;margin-left:0;margin-right:0}
.home-showcase__content p:not(.eyebrow){margin-left:0;margin-right:0;max-width:70ch}
.home-founded{justify-content:flex-start}
.home-showcase__content .btn{margin-inline:0}

.latest-album{grid-template-columns:minmax(280px,.95fr) minmax(320px,1.05fr);max-width:none;margin-inline:0}
.latest-album__media{min-height:210px}
.latest-album__body{align-items:flex-start;text-align:left}
.latest-album__body em{justify-content:flex-start}

.home-events .section__head,
.home-values .section__head{margin-inline:0;text-align:left}
.home-events .section__head h2::after,
.home-values .section__head h2::after{left:0;transform:none}
.home-values .value{text-align:left}
.home-values .value__icon{margin-inline:0}

.program-card .btn{white-space:nowrap}

@media (max-width:900px){
  .home-showcase{grid-template-columns:1fr}
}
@media (max-width:760px){
  .latest-album{grid-template-columns:1fr}
  .latest-album__media{min-height:230px}
}


/* ===================== V42 — home più ariosa + sfumature/pattern + galleria più chiara ===================== */
body{
  background-color:#f3f4f4;
  background-image:
    radial-gradient(circle at 12% 16%, rgba(196,30,42,.045), transparent 0 28%),
    radial-gradient(circle at 88% 34%, rgba(183,137,43,.05), transparent 0 20%),
    linear-gradient(180deg,#f7f7f6 0%, #eff1ef 42%, #f5f6f5 100%),
    radial-gradient(circle, rgba(26,29,33,.045) .7px, transparent .8px);
  background-size:auto, auto, auto, 24px 24px;
}

.home-showcase{padding-top:clamp(3.4rem,8vw,5.6rem);padding-bottom:clamp(3.4rem,8vw,5.8rem)}
.latest-album-section{padding-top:clamp(2.6rem,6vw,4rem);padding-bottom:clamp(2.2rem,5vw,3.5rem)}
.home-events{padding-top:clamp(3.8rem,8vw,5.6rem);padding-bottom:clamp(3.8rem,8vw,5.8rem)}
.home-sponsors--feature{padding-top:clamp(3.8rem,8vw,5.4rem);padding-bottom:clamp(3.8rem,8vw,5.4rem)}
.home-values{padding-top:clamp(3.6rem,8vw,5.2rem);padding-bottom:clamp(3.6rem,8vw,5.2rem)}

.home-events.section--alt{
  background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,255,255,.2));
  border-top:1px solid rgba(255,255,255,.65);
  border-bottom:1px solid rgba(26,29,33,.05);
}
.home-sponsors--feature{
  background:
    radial-gradient(620px 220px at 50% -6%, rgba(183,137,43,.08), transparent 62%),
    linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.08));
  border-top:1px solid rgba(255,255,255,.65);
  border-bottom:1px solid rgba(26,29,33,.05);
}
.home-values{
  position:relative;
}
.home-values::before{
  content:"";
  position:absolute;left:50%;top:0;transform:translateX(-50%);
  width:min(1120px,90%);height:1px;
  background:linear-gradient(90deg,transparent,rgba(26,29,33,.08),transparent);
}

.gallery-guide,
.album-helper{
  display:grid;gap:1rem;align-items:center;
  background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.68));
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-l);
  padding:1.2rem 1.3rem;
  box-shadow:var(--ombra-1);
  margin-bottom:1.6rem;
}
.gallery-guide__text,
.album-helper p{color:var(--ardesia);max-width:none;display:flex;align-items:center;gap:.55rem}
.gallery-guide__text svg,
.album-helper p svg{color:var(--rosso);flex:none}
.gallery-years{display:flex;flex-wrap:wrap;gap:.65rem}
.gallery-years__link{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:74px;padding:.48em .9em;border-radius:999px;
  background:rgba(255,255,255,.82);border:1px solid rgba(26,29,33,.10);
  color:var(--antracite);font-family:var(--mono);font-size:.76rem;letter-spacing:.08em;
  text-transform:uppercase;box-shadow:var(--ombra-1);
}
.gallery-years__link:hover{background:var(--rosso);border-color:var(--rosso);color:#fff}

.album__meta{gap:.45rem}
.album__open{
  display:inline-flex;align-items:center;gap:.35rem;margin-top:.25rem;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--rosso);
}
.album__open svg{transition:transform var(--t)}
.album:hover .album__open svg{transform:translateX(3px)}

.photo-grid{gap:1rem}
.photo{
  border:1px solid rgba(26,29,33,.08);
  box-shadow:var(--ombra-1);
}
.photo:hover{box-shadow:var(--ombra-2)}

@media (max-width:760px){
  .gallery-guide__text,
  .album-helper p{align-items:flex-start}
}


/* ===================== V43 — home sfondo stile sponsor + sponsor/galleria rivisti ===================== */
body{
  background:
    radial-gradient(720px 260px at 50% 8%, rgba(183,137,43,.10), transparent 62%),
    radial-gradient(560px 220px at 16% 18%, rgba(196,30,42,.032), transparent 58%),
    linear-gradient(180deg,#f8f7f5 0%, #f1f3f1 42%, #f7f7f4 100%);
}

.album-grid{
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.25rem;
}
.year-block__title{align-items:center;flex-wrap:wrap;row-gap:.45rem}
.year-block__title small{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.28em .75em;border-radius:999px;
  background:rgba(255,255,255,.88);border:1px solid rgba(26,29,33,.10);
  color:var(--ardesia);font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;
}

.section__head--compact{margin-bottom:1.2rem}
.sponsor-benefits{grid-template-columns:repeat(3,1fr)}
.sponsor-benefit{background:linear-gradient(180deg,#fff,#fbfbfb)}
.sponsor-benefit h3{display:flex;align-items:center;gap:.5em}
.sponsor-benefit h3 svg{color:var(--rosso);flex:none}

@media (max-width:960px){
  .sponsor-benefits{grid-template-columns:1fr}
}


/* ===================== V45 — fix leggero: galleria compatta, home grigio/bianco, sponsor più pulito ===================== */

/* Home: alternanza semplice grigio/bianco, senza pattern marcati */
body{
  background:#f2f4f3;
}
.home-events.section--alt{
  background:#fff;
  border-top:1px solid var(--linea);
  border-bottom:1px solid var(--linea);
}
.home-sponsors--feature{
  background:#f2f4f3;
  border-top:0;
  border-bottom:1px solid rgba(26,29,33,.06);
}

/* Galleria: card compatte come prima, ma griglia pronta per molti album */
.album-grid{
  grid-template-columns:repeat(auto-fill,minmax(220px,260px));
  justify-content:start;
  gap:1.1rem;
}
.album{
  max-width:260px;
  width:100%;
}
.album__meta{
  padding:.9rem 1rem;
}
.album__title{
  font-size:1rem;
}
.year-block__title small{
  font-size:.68rem;
}

/* Da mobile resta comoda e full width */
@media (max-width:620px){
  .album-grid{
    grid-template-columns:1fr;
  }
  .album{
    max-width:none;
  }
}

/* Sponsor: evita l'effetto “doppio titolo” e riduce un po' il peso visivo */
.support-feature__label--spaced{
  margin-top:2rem;
}
.support-wall:not(.support-wall--feature){
  grid-template-columns:repeat(auto-fill,minmax(150px,190px));
  justify-content:start;
}
.support:not(.support--feature){
  min-height:96px;
  padding:1.15rem .9rem;
}
.sponsor-benefits .card{
  padding:1.25rem 1.2rem;
}
.sponsor-benefits .card p{
  font-size:.94rem;
}


/* ===================== V46 — Società più concreta + testo sponsor corretto ===================== */
.society-overview{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
  gap:clamp(1.4rem,4vw,2.4rem);
  align-items:center;
  background:#fff;
  border:1px solid var(--linea);
  border-radius:var(--r-l);
  padding:clamp(1.4rem,4vw,2.4rem);
  box-shadow:var(--ombra-1);
}
.society-overview__text h2{
  margin:.45rem 0 .8rem;
}
.society-overview__text p:not(.eyebrow){
  color:var(--ardesia);
  font-size:1.05rem;
}
.society-facts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.8rem;
}
.society-fact{
  display:grid;
  align-content:center;
  min-height:112px;
  padding:1rem;
  border-radius:var(--r-m);
  background:linear-gradient(180deg,#f7f8f7,#eef1ef);
  border:1px solid rgba(26,29,33,.08);
  text-align:center;
}
.society-fact strong{
  font-family:var(--display);
  font-size:clamp(1.65rem,3.5vw,2.5rem);
  line-height:1;
  color:var(--antracite);
  text-transform:uppercase;
}
.society-fact span{
  margin-top:.35rem;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ardesia);
}
@media (max-width:860px){
  .society-overview{grid-template-columns:1fr}
  .society-facts{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:560px){
  .society-facts{grid-template-columns:1fr}
}


/* ===================== V47 — admin più chiaro: ricerca, copertine, log ===================== */
.admin-search{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 1rem;
  max-width:520px;
  background:#fff;
  border:1px solid var(--linea-forte);
  border-radius:999px;
  padding:.55rem .85rem;
  box-shadow:var(--ombra-1);
}
.admin-search--wide{max-width:760px}
.admin-search--toolbar{margin:1rem 0}
.admin-search span{color:var(--ardesia);flex:none}
.admin-search input{
  border:0;
  outline:0;
  background:transparent;
  width:100%;
  font-size:.98rem;
  color:var(--antracite);
}
.admin-search:focus-within{
  border-color:var(--rosso);
  box-shadow:0 0 0 4px rgba(196,30,42,.09), var(--ombra-1);
}
.admin-current-media{
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
  margin:.35rem 0 .7rem;
}
.admin-current-media img{
  width:132px;
  height:82px;
  object-fit:cover;
  border-radius:var(--r-s);
  border:1px solid var(--linea);
  background:var(--nebbia);
}
.adm-news{
  align-items:stretch;
}
.adm-news__cover{
  width:116px;
  min-width:116px;
  height:82px;
  object-fit:cover;
  border-radius:var(--r-s);
  background:#fff;
  border:1px solid var(--linea);
}
.adm-news__cover--empty{
  display:grid;
  place-items:center;
  color:var(--ardesia-chiara);
  background:#fff;
}
.news-item__cover{
  display:block;
  width:100%;
  aspect-ratio:16/8.5;
  object-fit:cover;
  border-radius:var(--r-s);
  margin-bottom:.9rem;
  background:var(--nebbia-2);
}
.content-field{
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-s);
  padding:.85rem;
  background:#fafafa;
}
.content-field__hint{
  display:block;
  margin:-.15rem 0 .45rem;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.log-actions{
  display:flex;
  align-items:center;
  gap:.6rem;
  flex-wrap:wrap;
  margin:1rem 0;
}
@media (max-width:720px){
  .adm-news{flex-direction:column}
  .adm-news__cover{width:100%;height:auto;aspect-ratio:16/8.5}
}

/* ===================== V59 — sponsor visibili, home stabile, lightbox senza sovrapposizioni ===================== */

/* Pagina Sponsor: griglia semplice e sempre visibile, senza dipendere dal carosello JS. */
.support-wall--page{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:1rem;
  align-items:stretch;
}
.support-wall--feature.support-wall--page{
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.support-wall--page .support{
  width:100%;
  min-width:0;
}
.support-wall--page .support--feature{
  min-height:160px;
}
.support-strip__item img,
.support img{
  display:block;
  width:auto;
  height:auto;
  max-width:82%;
  max-height:76px;
  margin:auto;
  object-fit:contain;
  object-position:center center;
  filter:none !important;
  opacity:1 !important;
}
.support--feature img{max-height:105px}

/* Home sponsor: carosello compatto, ma con fallback visibile anche senza JS. */
.sponsor-carousel{
  width:min(100%, 920px);
  margin-inline:auto;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  align-items:center;
  gap:1rem;
}
.sponsor-carousel.is-no-scroll{grid-template-columns:1fr}
.sponsor-carousel__viewport{
  min-width:0;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  touch-action:pan-x;
}
.sponsor-carousel__viewport::-webkit-scrollbar{display:none}
.sponsor-carousel__track{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:stretch;
  justify-content:flex-start;
  gap:1rem !important;
  width:max-content;
  margin:0 !important;
}
.sponsor-carousel.is-no-scroll .sponsor-carousel__track{
  width:100%;
  justify-content:center;
}
.sponsor-carousel__track .is-clone{pointer-events:none}
.sponsor-carousel__viewport .sponsor-strip__item{
  flex:0 0 220px;
  width:220px;
  min-width:220px;
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.sponsor-carousel__viewport .support{
  flex:0 0 190px;
  width:190px;
  min-width:190px;
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.sponsor-carousel__viewport .support--feature{
  flex-basis:250px;
  width:250px;
  min-width:250px;
}
.sponsor-strip--lg .sponsor-strip__item{
  height:104px;
  min-height:104px;
  padding:1rem 1.25rem;
}
.sponsor-carousel__nav{
  position:static;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid var(--linea-forte);
  background:#fff;
  color:var(--antracite);
  box-shadow:var(--ombra-1);
  transition:background var(--t), color var(--t), border-color var(--t), box-shadow var(--t), transform var(--t);
}
.sponsor-carousel__nav:hover{
  background:var(--antracite);
  color:#fff;
  border-color:var(--antracite);
  box-shadow:var(--ombra-2);
  transform:translateY(-2px);
}
.sponsor-carousel__nav--prev svg{transform:rotate(180deg)}
.sponsor-carousel__nav[hidden]{display:none !important}
.sponsor-strip__item,
.support,
.support a{
  display:grid;
  place-items:center;
  text-align:center;
}
.sponsor-strip__item:hover,
.support:hover{
  background:#e9eceb;
  transform:translateY(-3px);
  box-shadow:var(--ombra-2);
}
.sponsor-strip__item:hover img,
.support:hover img{
  filter:grayscale(1) saturate(.15) contrast(.95);
  opacity:.72;
}
.home-sponsors .sponsor-carousel{margin-bottom:2rem}

/* Home: la foto non decide più l'altezza del blocco; viene ritagliata in un box controllato. */
.home-showcase__media{
  height:clamp(300px,36vw,420px);
  min-height:0;
}
.home-showcase__media img,
.home-showcase__media--stand img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.latest-album{align-items:stretch}
.latest-album__media{
  height:clamp(220px,27vw,320px);
  min-height:0;
  aspect-ratio:16/9;
  align-self:center;
}
.latest-album__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* Admin galleria: copertine album più leggibili, non schiacciate. */

/* Lightbox: interfaccia fuori dall'immagine, niente toolbar/didascalia sovrapposte. */
body.lightbox-open{overflow:hidden}
.lightbox{
  position:fixed;
  inset:0;
  z-index:220;
  display:none;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:.75rem;
  padding:clamp(.75rem,2vw,1.2rem);
  background:rgba(12,15,17,.96);
}
.lightbox.open{display:grid}
.lightbox__bar{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  z-index:6;
  justify-self:center;
  display:flex;
  align-items:center;
  max-width:100%;
  overflow-x:auto;
  gap:.45rem;
  padding:.35rem;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14);
}
.lightbox__shell{
  min-height:0;
  height:100%;
  width:100%;
  display:grid;
  grid-template-columns:64px minmax(0,1fr) 64px;
  align-items:center;
  gap:clamp(.5rem,2vw,1.2rem);
}
.lightbox__stage{
  position:relative !important;
  inset:auto !important;
  width:100%;
  height:100%;
  min-height:240px;
  display:grid;
  place-items:center;
  overflow:hidden;
  touch-action:none;
}
.lightbox .lightbox__img{
  display:block;
  width:auto;
  height:auto;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain;
  border:0 !important;
  background:transparent !important;
  animation:none !important;
  border-radius:var(--r-s);
  box-shadow:var(--ombra-3);
  transform-origin:center center;
  transition:transform 160ms ease;
  will-change:transform;
  -webkit-user-select:none;
  user-select:none;
  -webkit-user-drag:none;
  cursor:zoom-in;
}
.lightbox .lightbox__img.is-zoomed{cursor:grab;max-width:none !important;max-height:none !important}
.lightbox__img.is-dragging{cursor:grabbing;transition:none}
.lightbox__caption{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  justify-self:center;
  margin:0;
  max-width:min(760px,88vw);
  padding:.45rem .9rem;
  border-radius:999px;
  background:rgba(0,0,0,.58);
  color:#fff;
  font-size:.92rem;
  text-align:center;
}
.lightbox__caption[hidden]{display:none}
.lightbox__btn,
.lightbox__close,
.lightbox__nav{
  display:grid;
  place-items:center;
  border:0;
  color:#fff;
  background:rgba(255,255,255,.14);
  transition:background var(--t),transform var(--t);
}
.lightbox__btn{
  min-width:38px;
  height:38px;
  border-radius:999px;
  font-weight:700;
}
.lightbox__counter{
  min-width:4.8rem;
  text-align:center;
  color:#fff;
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.08em;
}
.lightbox__close{
  position:static !important;
  inset:auto !important;
  width:40px;
  height:40px;
  border-radius:999px;
  font-size:1.55rem;
  line-height:1;
}
.lightbox__nav{
  position:static !important;
  transform:none !important;
  justify-self:center;
  width:52px;
  height:52px;
  border-radius:50%;
  font-size:2.1rem;
  box-shadow:var(--ombra-2);
}
.lightbox__btn:hover,
.lightbox__close:hover,
.lightbox__nav:hover{
  background:var(--rosso);
}
.lightbox__nav:hover{transform:scale(1.04) !important}
.lightbox__nav[hidden]{display:none}

@media (max-width:860px){
  .sponsor-carousel{
    display:block;
    width:100%;
    max-width:100%;
  }
  .sponsor-carousel__nav{display:none !important}
  .sponsor-carousel__viewport{
    width:min(300px, calc(100vw - 64px));
    max-width:min(300px, calc(100vw - 64px));
    margin-inline:auto;
    -webkit-overflow-scrolling:touch;
  }
  .sponsor-carousel__track{gap:.9rem !important}
  .sponsor-carousel__viewport .sponsor-strip__item,
  .sponsor-carousel__viewport .support,
  .sponsor-carousel__viewport .support--feature{
    flex:0 0 min(300px, calc(100vw - 64px));
    width:min(300px, calc(100vw - 64px));
    min-width:min(300px, calc(100vw - 64px));
    max-width:min(300px, calc(100vw - 64px));
  }
  .sponsor-strip--lg .sponsor-strip__item,
  .support,
  .support--feature{
    min-height:104px;
    height:104px;
    padding:1rem 1.15rem;
  }
}
@media (max-width:760px){
  .home-showcase__media{height:260px}
  .latest-album__media{height:220px}
  }
@media (max-width:720px){
  .lightbox{
    gap:.6rem;
    padding:.65rem;
  }
  .lightbox__bar{
    justify-self:stretch;
    justify-content:center;
    gap:.3rem;
    padding:.3rem;
  }
  .lightbox__btn{min-width:34px;height:34px}
  .lightbox__counter{min-width:3.8rem;font-size:.7rem}
  .lightbox__close{width:36px;height:36px}
  .lightbox__shell{
    grid-template-columns:1fr;
  }
  .lightbox__stage{
    min-height:0;
  }
  .lightbox__nav{display:none !important}
  .lightbox__caption{
    max-width:92vw;
    font-size:.85rem;
    padding:.4rem .8rem;
  }
}

/* ===================== V60 — programma modificabile e mese album ===================== */
.program-admin-list{
  display:grid;
  gap:1rem;
}
.program-admin-card{
  display:grid;
  gap:.9rem;
  padding:1rem;
  border:1px solid var(--linea);
  border-radius:var(--r-m);
  background:linear-gradient(180deg,#fff,#fafafa);
  box-shadow:var(--ombra-1);
}
.program-admin-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.program-admin-card__kicker,
.program-admin-card__meta{
  margin:0 0 .25rem;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.program-admin-card h3{
  margin:.1rem 0 .35rem;
  font-size:1.15rem;
  text-transform:uppercase;
}
.program-admin-card h3 a{
  display:inline-flex;
  align-items:center;
  gap:.35em;
  color:var(--antracite);
}
.program-admin-card h3 a:hover{color:var(--rosso)}
.program-admin-edit{
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-s);
  background:var(--nebbia);
  overflow:hidden;
}
.program-admin-edit summary{
  display:flex;
  align-items:center;
  gap:.45em;
  padding:.75rem .9rem;
  cursor:pointer;
  font-family:var(--display);
  text-transform:uppercase;
  color:var(--antracite);
}
.program-admin-edit .form{
  padding:.9rem;
  border-top:1px solid rgba(26,29,33,.08);
}
.program-admin-card__actions{
  display:flex;
  align-items:center;
  gap:.6rem;
  flex-wrap:wrap;
}
.program-admin-card__actions--danger{
  justify-content:flex-end;
  padding-top:.2rem;
  border-top:1px dashed var(--linea);
}
.checkline{
  display:inline-flex;
  align-items:center;
  gap:.55em;
  padding:.7em .9em;
  border:1px solid var(--linea-forte);
  border-radius:var(--r-s);
  background:#fff;
  color:var(--antracite);
  font-weight:700;
}
.checkline input{width:auto !important}
.checkline--program{align-self:end;margin-bottom:.15rem;min-width:190px;justify-content:center}
.btn--danger-soft{color:var(--rosso)}
.btn--danger-soft:hover{background:var(--rosso);border-color:var(--rosso);color:#fff}
.album__period{
  display:block;
  color:var(--ardesia);
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin:.25rem 0 .2rem;
}
@media (max-width:720px){
  .program-admin-card__head{flex-direction:column}
  .program-admin-card__actions,
  .program-admin-card__actions--danger{justify-content:stretch}
  .program-admin-card__actions .btn,
  .program-admin-card__actions form{width:100%}
  .program-admin-card__actions .btn{justify-content:center}
  .checkline--program{width:100%;align-self:stretch}
}
.album-head__num--period{font-size:clamp(1.25rem,3vw,2rem);white-space:nowrap}
@media (max-width:560px){.album-head__num--period{font-size:1.15rem}}


/* ===================== V61 — sponsor più equilibrati + lightbox/zoom rifiniti ===================== */
/* Pagina Sponsor: i riquadri in evidenza non devono occupare righe enormi. */
.support-wall--feature.support-wall--page{
  grid-template-columns:repeat(auto-fit,minmax(220px,320px));
  justify-content:center;
  max-width:700px;
  margin-inline:auto;
}
.support-wall--page .support--feature{
  min-height:136px;
  padding:1.1rem 1rem;
}
.support-wall--page .support--feature img{
  max-height:82px !important;
  max-width:80%;
  filter:none !important;
  opacity:1 !important;
}

/* Home sponsor: niente loghi grigi e card più compatte. */
.home-sponsors .sponsor-carousel{
  width:min(100%, 860px);
}
.home-sponsors .sponsor-carousel__viewport .sponsor-strip__item{
  flex:0 0 180px;
  width:180px;
  min-width:180px;
}
.home-sponsors .sponsor-strip--lg .sponsor-strip__item{
  min-height:96px;
  height:96px;
  padding:.9rem 1rem;
}
.home-sponsors .sponsor-strip__item img,
.home-sponsors .support img{
  max-height:58px;
  filter:none !important;
  opacity:1 !important;
}
.home-sponsors .sponsor-strip__item:hover img,
.home-sponsors .support:hover img{
  filter:none !important;
  opacity:1 !important;
  transform:scale(1.02);
}

/* Lightbox: stage più pulito e interfaccia sempre separata dalla foto. */
.lightbox{
  grid-template-rows:auto minmax(0,1fr) auto;
}
.lightbox__bar,
.lightbox__caption{
  position:relative;
  z-index:5;
}
.lightbox__shell{
  align-items:stretch;
  min-height:0;
}
.lightbox__stage{
  min-height:min(72vh,680px);
  background:rgba(255,255,255,.02);
  border-radius:var(--r-m);
}
.lightbox .lightbox__img{
  max-width:100% !important;
  max-height:100% !important;
}
.lightbox__img.is-zoomed{
  max-width:100% !important;
  max-height:100% !important;
}
.lightbox__caption{
  max-width:min(780px,92vw);
}
@media (max-width:860px){
  .home-sponsors .sponsor-carousel__viewport{
    width:min(260px, calc(100vw - 64px));
    max-width:min(260px, calc(100vw - 64px));
  }
  .home-sponsors .sponsor-carousel__viewport .sponsor-strip__item,
  .home-sponsors .sponsor-carousel__viewport .support,
  .home-sponsors .sponsor-carousel__viewport .support--feature{
    flex:0 0 min(260px, calc(100vw - 64px));
    width:min(260px, calc(100vw - 64px));
    min-width:min(260px, calc(100vw - 64px));
    max-width:min(260px, calc(100vw - 64px));
  }
}
@media (max-width:720px){
  .lightbox__stage{min-height:min(64vh,540px)}
  .lightbox__caption{padding:.42rem .7rem}
}


/* ===================== V62 — lightbox: frecce più basse + immagine sempre completa ===================== */
.lightbox__shell{
  padding-top:.35rem;
}
.lightbox__nav{
  align-self:center;
  transform:translateY(26px) !important;
}
.lightbox__nav:hover{
  transform:translateY(26px) scale(1.04) !important;
}
.lightbox__stage{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:.35rem;
}
.lightbox .lightbox__img,
.lightbox__img.is-zoomed{
  width:auto;
  height:auto;
  max-width:none !important;
  max-height:none !important;
}
@media (max-width:720px){
  .lightbox__stage{padding:.2rem}
}


/* ===================== V63 — admin programmi più armonioso e chiaro ===================== */
.program-admin-helper{
  margin:-.15rem 0 1rem;
}
.program-admin-card{
  padding:1.15rem;
  gap:1rem;
}
.program-admin-card__head{
  align-items:stretch;
  gap:1.25rem;
}
.program-admin-card__summary{
  display:grid;
  gap:.18rem;
}
.program-admin-card__status{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  min-width:118px;
}
.program-admin-card__status .pill{
  align-self:flex-start;
}
.program-admin-edit{
  border-radius:var(--r-m);
  background:linear-gradient(180deg,#f5f7f6,#eef1ef);
}
.program-admin-edit summary{
  padding:.9rem 1rem;
  font-size:1.02rem;
  letter-spacing:.01em;
}
.program-admin-edit .form{
  padding:1rem;
  display:grid;
  gap:1rem;
}
.program-admin-edit__section{
  display:grid;
  gap:.85rem;
  padding:.95rem;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-m);
}
.program-admin-edit__label{
  margin:0;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.program-admin-edit__tools{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(220px,.75fr);
  gap:1rem;
  align-items:start;
}
.program-admin-visibility{
  display:grid;
  gap:.75rem;
}
.checkline--program{
  min-width:0;
  width:100%;
  min-height:52px;
  justify-content:center;
  align-self:stretch;
  margin:0;
}
.program-admin-open,
.program-admin-action-btn,
.program-admin-card__actions--main .btn{
  min-height:46px;
  justify-content:center;
}
.program-admin-open{
  width:100%;
}
.program-admin-card__actions{
  gap:.75rem;
}
.program-admin-card__actions--main{
  justify-content:space-between;
  align-items:center;
  border-top:1px dashed rgba(26,29,33,.10);
  padding-top:.9rem;
}
.program-admin-tip{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  color:var(--ardesia);
  font-size:.92rem;
}
.program-admin-tip svg{color:var(--rosso);flex:none}
.program-admin-card__actions--danger{
  justify-content:flex-end;
  align-items:center;
  padding-top:.8rem;
  gap:.7rem;
}
.program-admin-card__actions--danger form{
  display:flex;
}
.program-admin-action-btn{
  min-width:138px;
}
.btn--danger-soft{
  border-color:rgba(184,30,40,.24);
  background:rgba(184,30,40,.06);
}
.btn--danger-soft:hover{background:var(--rosso);border-color:var(--rosso);color:#fff}

@media (max-width:860px){
  .program-admin-edit__tools{grid-template-columns:1fr}
}
@media (max-width:720px){
  .program-admin-card{padding:1rem}
  .program-admin-card__head{flex-direction:column}
  .program-admin-card__status{justify-content:flex-start;min-width:0}
  .program-admin-card__actions--main,
  .program-admin-card__actions--danger{justify-content:stretch}
  .program-admin-card__actions .btn,
  .program-admin-card__actions form,
  .program-admin-tip{width:100%}
  .program-admin-card__actions .btn{justify-content:center}
  .program-admin-tip{font-size:.88rem}
}


/* ===================== V64 — admin album più compatti e adatti a grandi archivi ===================== */
.adm-album-stats{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  margin:0 0 1rem;
}
.adm-album-stat{
  min-width:112px;
  display:grid;
  gap:.18rem;
  padding:.8rem .95rem;
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-m);
  background:linear-gradient(180deg,#fff,#f5f6f6);
  box-shadow:var(--ombra-1);
  text-align:center;
}
.adm-album-stat strong{
  font-family:var(--display);
  font-size:1.5rem;
  line-height:1;
  color:var(--antracite);
  text-transform:uppercase;
}
.adm-album-stat span{
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.adm-album-helper{margin:-.1rem 0 1.1rem}
.adm-album-list{display:grid;gap:1rem}
.adm-album-year{
  display:grid;
  gap:.65rem;
}
.adm-album-year__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0 0 .5rem;
  border-bottom:1px solid rgba(26,29,33,.08);
}
.adm-album-year__head h3{
  margin:0;
  font-size:1.05rem;
  text-transform:uppercase;
}
.adm-album-year__head span{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.adm-album-year__list{
  display:grid;
  gap:.65rem;
}
.adm-album-row{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) 88px 132px auto;
  align-items:center;
  gap:.9rem;
  padding:.75rem .85rem;
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-m);
  background:#fff;
  box-shadow:var(--ombra-1);
}
.adm-album-row.is-suspended{opacity:.72}
.adm-album-row__main{
  min-width:0;
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  align-items:center;
  gap:.85rem;
  color:var(--antracite);
}
.adm-album-row__thumb{
  width:74px;
  height:56px;
  border-radius:var(--r-s);
  background:linear-gradient(180deg,#f5f6f6,#e7ebea);
  border:1px solid rgba(26,29,33,.06);
  overflow:hidden;
  display:grid;
  place-items:center;
  color:var(--rosso);
}
.adm-album-row__thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.adm-album-row__content{
  min-width:0;
  display:grid;
  gap:.18rem;
}
.adm-album-row__content strong{
  font-family:var(--display);
  font-size:1rem;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.adm-album-row__sub{
  color:var(--ardesia);
  font-size:.92rem;
}
.adm-album-row__count{
  display:grid;
  justify-items:center;
  gap:.1rem;
  text-align:center;
}
.adm-album-row__count strong{
  font-family:var(--display);
  font-size:1.2rem;
  line-height:1;
}
.adm-album-row__count span{
  font-family:var(--mono);
  font-size:.64rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.adm-album-row__state{
  display:flex;
  justify-content:center;
}
.adm-album-row__actions{
  display:flex;
  justify-content:flex-end;
  gap:.45rem;
  flex-wrap:wrap;
}
@media (max-width:900px){
  .adm-album-row{
    grid-template-columns:minmax(0,1fr) auto auto;
  }
  .adm-album-row__count{display:none}
}
@media (max-width:680px){
  .adm-album-row{
    grid-template-columns:1fr;
    align-items:start;
  }
  .adm-album-row__state,
  .adm-album-row__actions{justify-content:flex-start}
  .adm-album-row__main{grid-template-columns:66px minmax(0,1fr)}
  .adm-album-row__thumb{width:66px;height:50px}
}


/* ===================== V65 — album: un solo Salva modifiche per ordine/didascalie/copertina ===================== */
.photo-sort-toolbar--single-save{
  align-items:flex-start;
  gap:1rem;
  padding:1rem;
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-m);
  background:linear-gradient(180deg,#fff,#f6f7f6);
  box-shadow:var(--ombra-1);
}
.photo-sort-toolbar--single-save .muted{margin:0 0 .25rem}
.btn--photo-save{min-width:190px;justify-content:center;white-space:nowrap}
.photo-bulk-form{display:none}
.adm-photo-grid--bulk{
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:1rem;
}
.adm-photo--bulk{
  display:grid;
  grid-template-rows:auto auto auto;
  overflow:hidden;
  border-radius:var(--r-m);
  background:#fff;
  border:1px solid rgba(26,29,33,.08);
  box-shadow:var(--ombra-1);
}
.adm-photo--bulk.is-cover{border-color:var(--rosso);box-shadow:0 0 0 1px rgba(184,30,40,.22),var(--ombra-1)}
.adm-photo--bulk img{
  width:100%;
  height:150px;
  object-fit:cover;
}
.adm-photo--bulk .adm-photo__order{
  top:.55rem;
  right:.55rem;
}
.adm-photo__cover-choice{
  display:flex;
  align-items:center;
  gap:.45rem;
  min-height:42px;
  padding:.65rem .8rem;
  border-bottom:1px solid rgba(26,29,33,.08);
  cursor:pointer;
  color:var(--ardesia);
  font-weight:700;
}
.adm-photo__cover-choice input{width:auto !important;accent-color:var(--rosso)}
.adm-photo__cover-choice span{display:inline-flex;align-items:center;gap:.35rem}
.adm-photo__cover-choice svg{color:var(--rosso)}
.adm-photo__caption--bulk{
  display:grid;
  grid-template-columns:1fr auto;
  gap:.45rem .55rem;
  padding:.75rem .8rem .85rem;
}
.adm-photo__caption--bulk label{
  grid-column:1/-1;
  font-family:var(--mono);
  font-size:.64rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.adm-photo__caption--bulk input{
  min-width:0;
  width:100%;
  border:1px solid var(--linea-forte);
  border-radius:var(--r-s);
  padding:.65em .75em;
  background:#fff;
}
.adm-photo__caption--bulk input:focus{outline:none;border-color:var(--rosso);box-shadow:0 0 0 3px var(--rosso-tenue)}
.adm-photo__caption-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:126px;
  padding:.55em .65em;
  border-radius:var(--r-s);
  border:1px solid rgba(26,29,33,.10);
  background:#f4f5f4;
  color:var(--ardesia);
  font-size:.78rem;
  font-weight:700;
  white-space:nowrap;
}
.adm-photo__caption-status.is-filled{
  background:rgba(32,120,65,.10);
  border-color:rgba(32,120,65,.18);
  color:#207841;
}
.adm-photo__delete{
  position:absolute;
  left:.55rem;
  top:.55rem;
  z-index:3;
  background:rgba(255,255,255,.92);
}
@media (max-width:720px){
  .photo-sort-toolbar--single-save{display:grid}
  .btn--photo-save{width:100%}
  .adm-photo-grid--bulk{grid-template-columns:1fr}
  .adm-photo--bulk img{height:210px}
  }
@media (max-width:520px){
  .adm-photo__caption--bulk{grid-template-columns:1fr}
  .adm-photo__caption-status{justify-content:flex-start;min-width:0}
}

/* ===================== V67 — filtri galleria + sponsor allineati a sinistra ===================== */
.gallery-search--filters{
  display:grid;
  gap:.85rem;
  margin-bottom:1.2rem;
}
.gallery-filterbar{
  display:grid;
  grid-template-columns:minmax(280px,1.45fr) minmax(145px,.55fr) minmax(150px,.55fr) minmax(165px,.65fr);
  gap:.8rem;
  align-items:end;
}
.gallery-search__field--text{
  max-width:none;
  flex-basis:auto;
}
.gallery-select{
  display:grid;
  gap:.38rem;
}
.gallery-select span{
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.gallery-select select{
  width:100%;
  min-height:49px;
  padding:.78em 2.35em .78em .95em;
  border:1px solid var(--linea-forte);
  border-radius:999px;
  background:#fff;
  color:var(--antracite);
  font-weight:700;
  box-shadow:var(--ombra-1);
}
.gallery-filterbar__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  flex-wrap:wrap;
}
.gallery-filterbar__bottom .gallery-search__hint{margin:0}
.gallery-reset{white-space:nowrap}
.gallery-guide{
  max-width:620px;
}
.gallery-years{display:none}

/* Pagina sponsor: allinea i loghi a sinistra, non al centro pagina. */
.support-wall--page,
.support-wall--feature.support-wall--page{
  justify-content:start !important;
  justify-items:start;
  margin-inline:0 !important;
  max-width:none !important;
}
.support-wall--feature.support-wall--page{
  grid-template-columns:repeat(auto-fill,minmax(240px,320px));
}
.support-wall--page:not(.support-wall--feature){
  grid-template-columns:repeat(auto-fill,minmax(170px,220px));
}
.support-wall--page .support{
  justify-self:start;
}

@media (max-width:920px){
  .gallery-filterbar{grid-template-columns:1fr 1fr}
  .gallery-search__field--text{grid-column:1 / -1}
}
@media (max-width:620px){
  .gallery-filterbar{grid-template-columns:1fr}
  .gallery-filterbar__bottom{align-items:stretch}
  .gallery-reset{width:100%;justify-content:center}
}


/* ===================== V68 — admin sponsor più chiaro + bottoni mappa mobile puliti ===================== */
.sponsor-admin-helper{
  margin:0 0 1rem;
  padding:1rem 1.1rem;
  border:1px solid rgba(26,29,33,.08);
  border-left:4px solid var(--rosso);
  border-radius:var(--r-m);
  background:linear-gradient(180deg,#fff,#f7f8f8);
  box-shadow:var(--ombra-1);
}
.sponsor-admin-helper p{margin:0;color:var(--ardesia)}
.sponsor-admin-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);
  gap:1.2rem;
  align-items:start;
}
.sponsor-admin-box{
  display:grid;
  gap:1rem;
  padding:1rem;
  border:1px solid rgba(26,29,33,.08);
  border-radius:var(--r-m);
  background:linear-gradient(180deg,#fbfbfb,#f3f5f4);
}
.sponsor-admin-box h3{
  display:flex;
  align-items:center;
  gap:.5rem;
  margin:0;
  text-transform:uppercase;
  font-size:1.02rem;
}
.sponsor-admin-box h3 svg{color:var(--rosso)}
.sponsor-admin-inline{
  display:grid;
  grid-template-columns:minmax(130px,160px) minmax(0,1fr);
  gap:1rem;
  align-items:start;
}
.sponsor-admin-check{
  margin:0;
  padding:.9rem 1rem;
  border:1px solid var(--linea-forte);
  border-radius:var(--r-s);
  background:#fff;
}
.sponsor-admin-check small{
  display:block;
  margin-top:.12rem;
  color:var(--ardesia);
  line-height:1.45;
}
.sponsor-admin-current-logo{
  display:inline-grid;
  gap:.4rem;
  margin-top:.35rem;
  justify-items:start;
}
.sponsor-admin-current-logo__label{
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ardesia);
}
.sponsor-admin-current-logo img{
  max-width:180px;
  max-height:72px;
  padding:.5rem .75rem;
  border-radius:var(--r-s);
  background:#fff;
  border:1px solid rgba(26,29,33,.08);
  object-fit:contain;
}
.sponsor-level-guide{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.65rem;
}
.sponsor-level-guide__item{
  display:grid;
  gap:.2rem;
  padding:.75rem .85rem;
  border-radius:var(--r-s);
  background:#fff;
  border:1px solid rgba(26,29,33,.08);
}
.sponsor-level-guide__item strong{
  display:flex;
  align-items:center;
  gap:.45rem;
  color:var(--antracite);
}
.sponsor-level-guide__item span{color:var(--ardesia);font-size:.92rem;line-height:1.45}
.sponsor-level-guide__item--bronze strong::before,
.sponsor-level-guide__item--silver strong::before,
.sponsor-level-guide__item--gold strong::before,
.sponsor-level-guide__item--principale strong::before{
  content:"";
  width:11px;
  height:11px;
  border-radius:50%;
  flex:none;
}
.sponsor-level-guide__item--bronze strong::before{background:var(--bronzo)}
.sponsor-level-guide__item--silver strong::before{background:var(--argento)}
.sponsor-level-guide__item--gold strong::before{background:#8F6A1F}
.sponsor-level-guide__item--principale strong::before{background:var(--rosso)}
.sponsor-admin-note{
  margin:0;
  color:var(--ardesia);
  font-size:.92rem;
}
.sponsor-admin-actions{margin-top:1rem}

@media (max-width:920px){
  .sponsor-admin-grid{grid-template-columns:1fr}
}
@media (max-width:620px){
  .sponsor-admin-inline{grid-template-columns:1fr}
}

@media (max-width:620px){
  .map-bar__actions{grid-template-columns:1fr;gap:.55rem}
  .map-bar__actions .btn{
    min-height:48px;
    white-space:normal;
    text-align:center;
    line-height:1.25;
    padding:.8em 1em;
  }
}


/* ===================== V71 — fix attributo hidden sui filtri galleria ===================== */
/* Alcune classi (.btn, .gallery-empty, .year-block) impostano display esplicito: questa regola
   garantisce che gli elementi nascosti via JS restino davvero invisibili. */
[hidden]{display:none !important;}


/* ===================== V73 — consiglio copertina 16:9 ===================== */
.adm-photo__cover-tip{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:wrap;
  margin-top:.25rem;
}
.adm-photo__cover-tip svg{color:var(--rosso);flex:none}
