/* ═══════════════════════════════════════════════════════════════
   SAN BASSO 2026 · TERMOLI · style.css v8
   Architettura identica a San Basso Termoli: ricca, decorata, impeccabile
   ═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;900&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Montserrat:wght@400;500;600;700&family=Share+Tech+Mono&display=swap');

:root {
  --gold:  #C9943A;
  --gl:    #F0C96A;
  --red:   #B83020;
  --nd:    #0D1B2A;
  --navy:  #1A3048;
  --sky:   #1A6B9E;
  --cream: #FDF8EE;
  --warm:  #FFFCF6;
  --td:    #1E2E3A;
  --tm:    #3A4E5C;
  /* alias inline */
  --notte:var(--nd);--carta:#F4EAD2;--mare:var(--navy);--cielo:var(--sky);
  --oro:var(--gold);--oro-l:var(--gl);--onde:var(--navy);--turchese:#1E8CB8;
  --vescovo:#7A2048;--caldo:#F4EAD2;--testo:#F4EAD2;
  --testo-m:rgba(244,234,210,.6);--grigio:#607080;--f-titolo:'Cinzel',serif;
  --parch:#F4EAD2;--parch2:#EAD8B8;--ink:var(--nd);--fn:'Cinzel',serif;
  --fc:'Cormorant Garamond',Georgia,serif;--fu:'Montserrat',sans-serif;
  --fm:'Share Tech Mono','Courier New',monospace;--amber:#C08820;--amber2:#E0A830;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth }
body { font-family:var(--fu); background:var(--warm); color:var(--td); overflow-x:hidden }

/* ── Reset sezioni ── */
section { padding:5.5rem 2rem }
.container, .wrap { max-width:1080px; margin:0 auto; padding:0 2rem }
.rv { opacity:0; transform:translateY(20px); transition:opacity .65s ease, transform .65s ease }
.rv.vis { opacity:1; transform:none }

/* ── Tipografia comune ── */
.slbl { font-size:.68rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--red); margin-bottom:.75rem }
.slbl-dark { color:var(--sky) }
.stit { font-family:var(--fn); font-size:clamp(1.85rem,3.8vw,2.8rem); font-weight:700; color:var(--nd); line-height:1.18; margin-bottom:1.3rem }
.stit em { font-style:italic; color:var(--red); font-family:var(--fc) }
.stit-w { color:#fff }
.sbod { font-family:var(--fc); font-size:1.1rem; line-height:1.82; color:var(--tm); max-width:640px }
.sbod-w { color:rgba(244,234,210,.7) }

/* ═══ NAVBAR ═════════════════════════════════════════════════ */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:900;
  height:66px; background:rgba(13,27,42,.97); backdrop-filter:blur(14px);
  border-bottom:3px solid var(--red);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 1.8rem; box-shadow:0 2px 28px rgba(0,0,0,.5)
}
.navbar-brand { display:flex; align-items:center; gap:.8rem; text-decoration:none; flex-shrink:0 }
.brand-compass {
  width:42px; height:42px; flex-shrink:0; border:2px solid var(--red); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:1.25rem; color:var(--parch);
  background:rgba(184,48,32,.15); box-shadow:0 0 14px rgba(184,48,32,.22)
}
.brand-text-top { font-family:var(--fn); font-size:.86rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--parch); line-height:1.2 }
.brand-text-sub { font-family:var(--fu); font-size:.58rem; color:rgba(244,234,210,.4); letter-spacing:.07em }
.nav-links { display:flex; align-items:center; list-style:none }
.nav-links a {
  font-family:var(--fn); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(244,234,210,.7); text-decoration:none; padding:.38rem .95rem;
  border-right:1px solid rgba(244,234,210,.08); transition:color .2s, background .2s; white-space:nowrap
}
.nav-links a:hover { color:var(--parch); background:rgba(244,234,210,.07) }
.nav-links a.cta {
  color:#fff!important; background:var(--red); border-right:none;
  margin-left:.5rem; padding:.38rem 1.2rem;
  clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px))
}
.nav-links a.cta:hover { background:#D04030 }
.nav-ham { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:.5rem; background:none; border:none }
.nav-ham span { display:block; width:24px; height:2px; background:var(--parch); transition:.3s }
.nav-ham.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px) }
.nav-ham.open span:nth-child(2) { opacity:0 }
.nav-ham.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px) }
.mob-menu {
  display:none; position:fixed; top:66px; left:0; right:0; z-index:899;
  background:rgba(13,27,42,.98); backdrop-filter:blur(14px);
  border-bottom:2px solid var(--red)
}
.mob-menu.open { display:block }
.mob-menu a {
  display:block; padding:.72rem 2rem; font-family:var(--fn); font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase; color:rgba(244,234,210,.8);
  text-decoration:none; border-bottom:1px solid rgba(244,234,210,.06); transition:.15s
}
.mob-menu a:hover { background:rgba(244,234,210,.06); color:var(--parch) }
.mob-menu a.mcta { background:var(--red); color:#fff; font-weight:700 }

/* ═══ HERO ════════════════════════════════════════════════════ */
.hero {
  min-height:100vh; padding-top:66px; background:var(--nd);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden
}
/* Sfondi con gradienti come San Basso Termoli */
.hbg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 110%,rgba(192,136,32,.18) 0%,transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 20%,rgba(184,48,32,.12) 0%,transparent 50%),
    radial-gradient(ellipse 50% 50% at 20% 80%,rgba(12,28,46,.8) 0%,transparent 60%),
    linear-gradient(160deg,#0D1B2A 0%,#1A3048 40%,#1C3855 70%,#0D1B2A 100%)
}
/* stelle — generate da JS */
.stars { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1 }
.star { position:absolute; border-radius:50%; animation:twinkle var(--d,3s) ease-in-out infinite; animation-delay:var(--delay,0s) }
@keyframes twinkle { 0%,100%{opacity:.15;transform:scale(1)} 50%{opacity:1;transform:scale(1.6)} }
/* alone rotante come San Basso Termoli */
.halo {
  position:absolute; width:540px; height:540px;
  border:1px solid rgba(192,136,32,.14); border-radius:50%;
  top:50%; left:50%; transform:translate(-50%,-50%);
  animation:halor 42s linear infinite; z-index:1; pointer-events:none
}
.halo::before { content:''; position:absolute; inset:22px; border:1px dashed rgba(192,136,32,.08); border-radius:50% }
.halo::after { content:''; position:absolute; inset:55px; border:1px solid rgba(192,136,32,.05); border-radius:50% }
@keyframes halor { from{transform:translate(-50%,-50%) rotate(0deg)} to{transform:translate(-50%,-50%) rotate(360deg)} }
/* onda inferiore */
.hero-coast { position:absolute; bottom:0; left:0; width:100%; height:110px; background:var(--warm); clip-path:ellipse(55% 100% at 50% 100%); z-index:3; pointer-events:none }
/* rosa dei venti */
.hero-compass-rose {
  position:absolute; right:-90px; top:50%; transform:translateY(-50%);
  width:540px; height:540px; opacity:.042; color:var(--parch);
  animation:rosaSpin 220s linear infinite; pointer-events:none; z-index:0
}
@keyframes rosaSpin { to{transform:translateY(-50%) rotate(360deg)} }
.hero-grid,.hero-reticolo {
  position:absolute; inset:0; pointer-events:none; z-index:0;
  background:linear-gradient(rgba(244,234,210,.022) 0 0) center/100% 1px no-repeat,
    linear-gradient(90deg,rgba(244,234,210,.022) 0 0) center/1px 100% no-repeat
}
.hero-frame {
  position:absolute; inset:78px 30px 30px; pointer-events:none;
  border:1px solid rgba(244,234,210,.055); z-index:0
}
.hero-frame::before,.hero-frame::after {
  content:''; position:absolute; width:20px; height:20px; border-style:solid; border-color:var(--red)
}
.hero-frame::before { top:-1px; left:-1px; border-width:2px 0 0 2px }
.hero-frame::after { bottom:-1px; right:-1px; border-width:0 2px 2px 0 }
.hero-starfield { display:none }
/* contenuto hero */
.hero-inner,.hcont {
  position:relative; z-index:2; text-align:center;
  padding:8rem 2rem 6rem; max-width:860px; width:100%;
  animation:fadeUp 1.2s ease both
}
@keyframes fadeUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:none} }
/* pretitolo con linee — identico San Basso Termoli */
.h-stamp,.h-timbro,.hpre {
  font-size:.72rem; font-weight:600; letter-spacing:.25em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.3rem;
  display:flex; align-items:center; justify-content:center; gap:1rem
}
.h-stamp::before,.h-stamp::after,.hpre::before,.hpre::after { content:''; width:40px; height:1px; background:var(--gold); opacity:.5 }
/* anno romano */
.h-anno,.hyr {
  font-family:var(--fc); font-size:clamp(1.2rem,3vw,1.8rem);
  color:rgba(244,234,210,.46); letter-spacing:.3em; margin-bottom:2.2rem
}
/* titolo monumentale */
.h-titolo,.htit {
  font-family:var(--fn); font-weight:900; text-transform:uppercase;
  font-size:clamp(3.2rem,9vw,7rem); color:#fff; line-height:.95; letter-spacing:.03em;
  margin-bottom:.5rem; text-shadow:0 4px 40px rgba(184,48,32,.2)
}
.h-titolo em,.htit em { font-style:italic; color:var(--gl); display:block; font-family:var(--fn) }
/* divisore dorato */
.hdiv { width:64px; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:0 auto 2rem }
.h-divider,.hdiv2 { display:flex; align-items:center; gap:1.2rem; justify-content:center; margin:1.5rem 0 }
.h-divider::before,.h-divider::after { content:''; flex:1; max-width:100px; height:1px; background:linear-gradient(to right,transparent,rgba(244,234,210,.2)) }
.h-divider::after { background:linear-gradient(to left,transparent,rgba(244,234,210,.2)) }
.h-divider-sym { color:var(--red); font-size:1.1rem }
/* sottotitolo */
.h-sub,.hsub {
  font-family:var(--fc); font-size:clamp(1rem,2.5vw,1.25rem); font-weight:300;
  color:rgba(244,234,210,.68); line-height:1.78; margin-bottom:2.8rem;
  max-width:520px; margin-left:auto; margin-right:auto
}
.h-btns,.hbtns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap }

/* ═══ BOTTONI — clip-path angolato come San Basso Termoli ══════════ */
.btn-primary,.btnp,.dbb {
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--red); color:#fff; padding:1rem 2.3rem; border:none;
  font-family:var(--fn); font-size:.82rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; cursor:pointer; text-decoration:none;
  transition:all .25s;
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px))
}
.btn-primary:hover,.btnp:hover,.dbb:hover {
  background:#D04030; transform:translateY(-2px); box-shadow:0 8px 24px rgba(184,48,32,.38)
}
.btn-ghost,.btns {
  display:inline-flex; align-items:center; gap:.6rem;
  background:transparent; color:#fff; padding:1rem 2.3rem;
  border:1px solid rgba(255,255,255,.3);
  font-family:var(--fn); font-size:.82rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase; cursor:pointer; text-decoration:none;
  transition:all .25s
}
.btn-ghost:hover,.btns:hover { border-color:var(--gold); color:var(--gl) }
.gfb {
  display:inline-flex; align-items:center; gap:.65rem;
  background:rgba(192,136,32,.1); color:var(--gl); padding:.95rem 2rem;
  border:1px solid rgba(192,136,32,.38);
  font-family:var(--fn); font-size:.78rem; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; cursor:pointer; text-decoration:none;
  transition:all .24s
}
.gfb:hover { background:rgba(192,136,32,.2); border-color:var(--gold) }
.btn-ink,.cfbt,.collab-btn {
  background:var(--navy); color:#fff; padding:.9rem 2rem; border:none;
  font-family:var(--fn); font-size:.78rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; cursor:pointer; text-decoration:none;
  display:inline-flex; align-items:center; gap:.5rem; transition:background .22s; width:100%;
}
.btn-ink:hover,.cfbt:hover,.collab-btn:hover { background:var(--red) }

/* ═══ COUNTDOWN — quadranti ═════════════════════════════════ */
.instruments {
  display:inline-flex; align-items:stretch;
  border:1px solid rgba(192,136,32,.4);
  background:rgba(0,0,0,.42); backdrop-filter:blur(8px);
  position:relative; margin-bottom:2.8rem;
  box-shadow:0 0 0 1px rgba(184,48,32,.18) inset, 0 8px 32px rgba(0,0,0,.4)
}
.instruments::before {
  content:'DISTANZA TEMPORALE · FESTA DI SAN BASSO · 4 AGOSTO 2026';
  position:absolute; top:-24px; left:0; right:0;
  font-family:var(--fm); font-size:.5rem; letter-spacing:.15em;
  color:rgba(192,136,32,.6); text-align:center; white-space:nowrap
}
.gauge { display:flex; flex-direction:column; align-items:center; padding:1.3rem 1.8rem 1.5rem; position:relative }
.gauge+.gauge { border-left:1px solid rgba(192,136,32,.22) }
.gauge-face {
  width:90px; height:90px; border-radius:50%;
  background:radial-gradient(circle at 32% 32%,rgba(244,234,210,.09),rgba(0,0,0,.55));
  border:2px solid rgba(244,234,210,.18);
  box-shadow:inset 0 2px 12px rgba(0,0,0,.5),0 0 0 1px rgba(192,136,32,.18),0 0 24px rgba(192,136,32,.07);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden; flex-shrink:0; margin-bottom:.8rem
}
.gauge-face::after {
  content:''; position:absolute; inset:5px; border-radius:50%;
  background:repeating-conic-gradient(rgba(244,234,210,.08) 0deg,rgba(244,234,210,.08) 2deg,transparent 2deg,transparent 24deg)
}
.gauge-num {
  font-family:var(--fm); font-size:1.95rem; color:#fff; line-height:1;
  position:relative; z-index:2; text-shadow:0 0 18px rgba(240,200,80,.65),0 0 4px rgba(240,200,80,.4)
}
.gauge-needle {
  position:absolute; bottom:50%; left:calc(50% - 1px); width:2px; height:33px;
  background:linear-gradient(to top,var(--red),rgba(184,48,32,.15));
  transform-origin:bottom center; border-radius:2px 2px 0 0; z-index:3;
  transition:transform .85s cubic-bezier(.17,.67,.35,1.2)
}
.gauge-label { font-family:var(--fn); font-size:.5rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(244,234,210,.44) }
.gauge-sep { display:flex; align-items:center; justify-content:center; color:rgba(192,136,32,.4); font-family:var(--fm); font-size:1.6rem; padding:0 .25rem; align-self:center }
@keyframes needleWobble { 0%,100%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} }

/* ═══ COUNTER STRIP ══════════════════════════════════════════ */
.instrument-strip,.cstrip { background:var(--navy); display:grid; grid-template-columns:repeat(4,1fr) }
.instr-item,.ci { padding:1.5rem; text-align:center; border-right:1px solid rgba(255,255,255,.06) }
.instr-item:last-child,.ci:last-child { border-right:none }
.instr-val,.cnum { font-family:var(--fn); font-size:clamp(1.6rem,3vw,2.6rem); font-weight:700; color:var(--gl); line-height:1; display:block }
.instr-lbl,.clbl { font-size:.67rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.42); margin-top:.32rem; display:block }

/* ═══ BARRA ROTTA ════════════════════════════════════════════ */
.rotta-bar { background:var(--navy); border-bottom:1px solid rgba(244,234,210,.08); padding:.55rem 1.5rem; display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; justify-content:center; position:sticky; top:66px; z-index:200 }
.rotta-label { font-size:.5rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:rgba(244,234,210,.25); white-space:nowrap; margin-right:.3rem }
.rotta-link { font-family:var(--fn); font-size:.52rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(244,234,210,.62); text-decoration:none; padding:.3rem .75rem; border:1px solid rgba(244,234,210,.12); white-space:nowrap; transition:.15s }
.rotta-link:hover { color:var(--parch); border-color:rgba(244,234,210,.32); background:rgba(244,234,210,.05) }

/* ═══ TICKER ═════════════════════════════════════════════════ */
.ticker-bar { background:#070f1c; border-top:1px solid rgba(192,136,32,.2); border-bottom:1px solid rgba(192,136,32,.2); overflow:hidden; display:flex; align-items:center; height:44px }
.ticker-tag { flex-shrink:0; height:44px; padding:0 1.2rem; font-family:var(--fn); font-size:.6rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:#fff; display:flex; align-items:center; white-space:nowrap }
.ticker-tag.red { background:var(--red) }
.ticker-tag.gold { background:var(--amber); color:var(--nd) }
.ticker-scroll { flex:1; overflow:hidden }
.ticker-track { display:inline-flex; align-items:center; flex-wrap:nowrap; width:max-content; animation:tickMov 38s linear infinite; white-space:nowrap }
.ticker-track:hover { animation-play-state:paused }
@keyframes tickMov { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.ticker-item,.ti { display:inline-flex; align-items:center; flex:0 0 auto; gap:.5rem; padding:0 1.5rem; font-family:var(--fm); font-size:.76rem; font-weight:500; color:rgba(244,234,210,.68); border-right:1px solid rgba(255,255,255,.07); height:44px; white-space:nowrap }
.ticker-item strong,.ti strong { color:var(--gl); font-weight:700 }
.ti-sep { color:var(--red); font-size:.42rem; opacity:.55 }

/* ═══ PUBBLICAZIONI ═════════════════════════════════════════ */
.pub-s { background:var(--nd); padding:2rem 2rem 0 }
.pub-strip { max-width:1080px; margin:0 auto; display:flex; flex-direction:column; gap:.85rem }
.pub-card { display:flex; align-items:flex-start; gap:1.2rem; padding:1.1rem 1.4rem; border:1px solid rgba(192,136,32,.25); background:rgba(255,255,255,.04); position:relative; overflow:hidden; transition:all .22s }
.pub-card:hover { border-color:rgba(192,136,32,.55); background:rgba(192,136,32,.06) }
.pub-card.pinned { border-color:var(--red); background:rgba(184,48,32,.07) }
.pub-card-icon { font-size:1.5rem; flex-shrink:0; margin-top:.1rem }
.pub-card-body { flex:1 }
.pub-card-cat { font-size:.58rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); margin-bottom:.25rem }
.pub-card-title { font-family:var(--fn); font-size:1rem; color:#fff; margin-bottom:.3rem }
.pub-card-text { font-family:var(--fc); font-size:.92rem; color:rgba(244,234,210,.62); line-height:1.6 }
.pub-card-img { width:100%; max-height:220px; object-fit:cover; margin-top:.6rem; display:block }
.pub-card-date { font-size:.62rem; color:rgba(244,234,210,.28); margin-top:.4rem }

/* ═══ SPONSOR ════════════════════════════════════════════════ */
.sp-section { background:var(--nd); padding:5rem 2rem; position:relative; overflow:hidden }
.sp-section::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 55% 55% at 100% 0%,rgba(192,136,32,.08) 0%,transparent 60%); pointer-events:none }
.sp-card {
  background:rgba(255,255,255,.04); border:1px solid rgba(192,136,32,.2);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:2rem 1.5rem; text-decoration:none; transition:.25s; position:relative; overflow:hidden
}
.sp-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--red),var(--gold),var(--red)); transform:scaleX(0); transform-origin:left; transition:.3s }
.sp-card:hover { border-color:rgba(192,136,32,.55); background:rgba(192,136,32,.06); transform:translateY(-4px); box-shadow:0 8px 24px rgba(0,0,0,.3) }
.sp-card:hover::before { transform:scaleX(1) }
.sp-logo-box { display:flex; align-items:center; justify-content:center; margin-bottom:.9rem }
.sp-logo-box img { max-width:100%; max-height:100%; object-fit:contain; filter:brightness(1.1) }
.sp-nome { font-family:var(--fn); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(244,234,210,.65); text-align:center }
.sp-desc { font-size:.76rem; color:rgba(244,234,210,.35); text-align:center; margin-top:.28rem }
.sp { font-family:var(--fn); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(244,234,210,.65) }

/* ═══ CHI SIAMO — cornice dorata + watermark ════════════════ */
.ab-s,.about-s { background:var(--cream); position:relative; overflow:hidden; padding:5.5rem 2rem }
.ab-s::before,.about-s::before {
  content:'SAN\ABASSO'; font-family:var(--fn);
  font-size:13rem; font-weight:900; color:rgba(7,15,26,.04);
  position:absolute; top:-2rem; right:-2rem; line-height:.82; white-space:pre; pointer-events:none; text-transform:uppercase
}
.abgr,.about-g { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center }
.ab-img { position:relative }
.ab-img-wrap,.about-img-wrap {
  position:relative; overflow:hidden; border-radius:2px;
  box-shadow:0 8px 40px rgba(184,48,32,.12)
}
.ab-img-wrap img,.about-img-wrap img { width:100%; display:block; transition:transform .4s ease; filter:sepia(.08) contrast(1.05) }
.ab-img-wrap:hover img,.about-img-wrap:hover img { transform:scale(1.02) }
/* cornice decorativa dorata — esattamente come San Basso Termoli */
.ab-frame {
  position:absolute; top:-12px; left:-12px; right:12px; bottom:12px;
  border:1px solid rgba(192,136,32,.38); pointer-events:none; z-index:2
}
.ab-img-wrap::after,.about-img-wrap::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:30%;
  background:linear-gradient(to top,var(--cream) 0%,transparent 100%); pointer-events:none
}
.ab-cap {
  margin-top:1rem; font-family:var(--fc); font-style:italic;
  font-size:.88rem; color:rgba(184,48,32,.65); text-align:center; letter-spacing:.04em
}

/* ═══ VOLONTARI ══════════════════════════════════════════════ */
.vol-chips { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.8rem }
.vol-chip { padding:.5rem 1rem; background:rgba(255,255,255,.06); border:1px solid rgba(192,136,32,.25); font-size:.78rem; font-weight:600; color:rgba(244,234,210,.85); display:inline-flex; align-items:center; gap:.4rem }

/* ═══ SONDAGGIO ══════════════════════════════════════════════ */
.poll-s,.sond-s { background:var(--cream); padding:5.5rem 2rem }
.poll-box { background:#fff; border:1px solid rgba(7,15,26,.1); padding:2rem; margin-top:2rem; max-width:700px; box-shadow:0 2px 16px rgba(7,15,26,.06) }
.poll-q-txt,.sond-q { font-family:var(--fn); font-size:1rem; font-weight:700; color:var(--nd); margin-bottom:.9rem }
.sond-opts { display:flex; flex-direction:column; gap:.55rem }
.sond-opt { display:flex; align-items:center; gap:.7rem; cursor:pointer; font-family:var(--fu); font-size:.82rem; color:var(--td); padding:.4rem .5rem; transition:background .15s }
.sond-opt:hover { background:rgba(7,15,26,.05) }
.sond-opt input { accent-color:var(--red); width:15px; height:15px; cursor:pointer }
.poll-vote-btn,.sond-btn { background:var(--red); color:#fff; padding:.78rem 1.9rem; border:none; font-family:var(--fn); font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:all .22s; margin-top:.6rem }
.poll-vote-btn:hover,.sond-btn:hover { background:#D04030 }

/* ═══ BIOGRAFIE SAN BASSO — ricchissime ════════════════════ */
.bio-s { background:var(--nd); position:relative; overflow:hidden; padding:5.5rem 2rem }
.bio-s::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 55% 55% at 100% 0%,rgba(184,48,32,.1) 0%,transparent 60%); pointer-events:none }
.bio-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; margin-top:2.3rem }
.bio-card {
  display:block; padding:2.2rem 1.8rem; text-decoration:none;
  border:1px solid rgba(244,234,210,.09); transition:all .25s;
  position:relative; overflow:hidden; background:rgba(255,255,255,.04)
}
/* Accento superiore gradiente rosso-oro */
.bio-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--red),var(--gold),var(--red));
  transform:scaleX(0); transform-origin:left; transition:.35s
}
/* Barra laterale sinistra */
.bio-card::after {
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(to bottom,transparent,var(--gold),transparent);
  transform:scaleY(0); transition:.35s
}
.bio-card:hover {
  border-color:rgba(192,136,32,.45); background:rgba(192,136,32,.06);
  transform:translateY(-4px); box-shadow:0 8px 28px rgba(0,0,0,.32)
}
.bio-card:hover::before,.bio-card:hover::after { transform:scaleX(1); transform:scaleY(1) }
.bio-card:hover::before { transform:scaleX(1) }
.bio-card:hover::after { transform:scaleY(1) }
.bio-ico { font-size:2.6rem; margin-bottom:1rem; display:block }
.bio-cat { font-family:var(--fn); font-size:.54rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(244,234,210,.35); margin-bottom:.4rem }
.bio-titolo { font-family:var(--fn); font-size:1.18rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#fff; margin-bottom:.6rem; line-height:1.18 }
.bio-desc { font-family:var(--fc); font-size:.98rem; color:rgba(244,234,210,.58); line-height:1.75; margin-bottom:.9rem }
.bio-cta { font-family:var(--fn); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gl); border-bottom:1px solid rgba(240,201,106,.38); padding-bottom:.18rem }

/* ═══ LUMINARIE ══════════════════════════════════════════════ */
.lum-s { background:var(--navy); position:relative; overflow:hidden; padding:5.5rem 2rem }
.lum-s::after { content:'✦'; position:absolute; right:2rem; top:50%; transform:translateY(-50%); font-size:8rem; opacity:.04; pointer-events:none; color:var(--gold) }

/* ═══ DONAZIONE — identica San Basso Termoli ══════════════════════ */
.dn-s { background:var(--nd); position:relative; overflow:hidden; padding:5.5rem 2rem }
.dn-s::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 55% 55% at 100% 0%,rgba(184,48,32,.1) 0%,transparent 60%); pointer-events:none }
.dn-in { position:relative; z-index:1; max-width:1080px; margin:0 auto }
.dn-s .stit { color:#fff }
.dn-s .sbod { color:rgba(244,234,210,.58) }
/* progress bar — identica */
.pb { margin:2.5rem 0; padding:1.8rem; background:rgba(255,255,255,.04); border:1px solid rgba(192,136,32,.18) }
.pbhd { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.8rem; flex-wrap:wrap; gap:.5rem }
.pbam { font-family:var(--fn); font-size:2rem; font-weight:700; color:var(--gl) }
.pbgl { font-size:.78rem; color:rgba(244,234,210,.42) }
.pbwr { height:5px; background:rgba(255,255,255,.07); border-radius:3px; overflow:hidden; margin-bottom:.65rem }
.pbfl { height:100%; background:linear-gradient(90deg,var(--red),var(--gold)); border-radius:3px; width:0%; transition:width 1.8s ease }
.pbst { display:flex; gap:1.8rem; font-size:.7rem; color:rgba(244,234,210,.38); flex-wrap:wrap }
.pbst span { color:rgba(244,234,210,.72); font-weight:600 }
/* tier cards */
.tgr { display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; margin-top:2.3rem }
.tc {
  padding:1.5rem 1.3rem; border:1px solid rgba(192,136,32,.16);
  background:rgba(255,255,255,.03); transition:all .24s; cursor:pointer; position:relative; overflow:hidden
}
.tc:hover { border-color:rgba(192,136,32,.55); background:rgba(192,136,32,.05); transform:translateY(-4px) }
.tc.ft { border-color:rgba(184,48,32,.45); background:rgba(184,48,32,.06) }
.tc.ft::before {
  content:'Popolare'; position:absolute; top:0; right:0;
  background:var(--red); color:#fff; font-family:var(--fn);
  font-size:.54rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:.2rem .65rem
}
.tam { font-family:var(--fn); font-size:1.95rem; font-weight:700; color:var(--gl); display:block; margin-bottom:.25rem }
.tnm { font-family:var(--fn); font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(244,234,210,.5); margin-bottom:.85rem; display:block }
.tpk { list-style:none; font-size:.73rem; color:rgba(244,234,210,.48); line-height:1.85 }
.tpk li::before { content:'✦ '; color:var(--gold); font-size:.52rem }
.tbdg { display:inline-block; margin-top:.55rem; padding:.16rem .5rem; font-family:var(--fn); font-size:.58rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border:1px solid }
.tbdg.sc2,.tbdg.rb { border-color:rgba(255,255,255,.15); color:rgba(255,255,255,.28) }
.tbdg.hb,.tbdg.vb { border-color:rgba(192,136,32,.65); color:var(--gl); background:rgba(192,136,32,.09) }
.tbdg.ab { border-color:var(--gl); color:var(--gl); background:rgba(240,201,106,.1) }
/* form */
.dfrm { margin-top:2.3rem; padding:2rem; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06) }
.dft { font-family:var(--fn); font-size:1.25rem; color:#fff; margin-bottom:1.3rem }
.frw { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-bottom:.9rem }
.fg,.ctg { display:flex; flex-direction:column; gap:.32rem; margin-bottom:.2rem }
.fg label,.ctg label { font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(244,234,210,.42) }
.fg input,.fg select,.fg textarea,.ctg input,.ctg select,.ctg textarea { padding:.7rem .95rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); color:#fff; font-family:var(--fu); font-size:.82rem; outline:none; transition:border-color .2s }
.fg input:focus,.fg select:focus,.ctg input:focus,.ctg select:focus { border-color:var(--gold) }
.fg input::placeholder,.ctg input::placeholder { color:rgba(244,234,210,.26) }
.fg select option,.ctg select option { background:#0a1929 }
.anr { display:flex; align-items:center; gap:.65rem; margin:.9rem 0; cursor:pointer }
.anr input { width:15px; height:15px; accent-color:var(--gold); cursor:pointer }
.anr span { font-size:.77rem; color:rgba(244,234,210,.52) }
.dbr { display:flex; gap:.9rem; flex-wrap:wrap; margin-top:1.3rem; align-items:center }
.dnt { margin-top:.75rem; font-size:.66rem; color:rgba(244,234,210,.26); line-height:1.6 }
/* bonifico */
.bon-section,.bon-box { background:var(--nd); position:relative; padding:1.8rem; border:1px dashed rgba(192,136,32,.2); margin-top:2.3rem }
.bon-header,.bon-hd { display:flex; align-items:center; gap:.8rem; margin-bottom:1.5rem; padding-bottom:.8rem; border-bottom:1px solid rgba(192,136,32,.15) }
.bon-header h4,.bon-hd h4 { font-family:var(--fn); font-size:1.1rem; color:#fff; margin:0 }
.bon-header-icon,.bon-hd-ico { font-size:1.5rem }
.bon-header p,.bon-hd p { font-size:.72rem; color:rgba(244,234,210,.4); margin:.2rem 0 0 }
.bon-grid,.bon-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem }
.bon-item,.bon-field { padding:1rem 1.1rem; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); border-radius:2px }
.bon-item.full,.bon-field.span { grid-column:1/-1 }
.highlight { background:rgba(192,136,32,.07)!important; border-color:rgba(192,136,32,.25)!important }
.bon-label,.bon-lbl { font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(244,234,210,.38); margin-bottom:.35rem; display:block }
.bon-value,.bon-val { font-family:var(--fc); font-size:1rem; color:rgba(244,234,210,.88); line-height:1.4; word-break:break-all }
.bon-value.mono,.bon-val.mono { font-family:var(--fm); font-size:.85rem; color:var(--gl); letter-spacing:.05em }
.bon-copy { display:inline-flex; align-items:center; gap:.3rem; margin-top:.4rem; padding:.25rem .6rem; background:rgba(192,136,32,.12); border:1px solid rgba(192,136,32,.3); color:var(--gold); font-size:.62rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:all .2s }
.bon-copy:hover { background:rgba(192,136,32,.22) }
.bon-step,.bon-steps,.bon-step-n { display:none }

/* ═══ REGISTRO DONATORI — card vip identiche San Basso Termoli ════ */
.rgs { background:var(--cream); padding:5.5rem 2rem }
.rggr { margin-top:2.3rem; display:grid; grid-template-columns:repeat(auto-fill,minmax(295px,1fr)); gap:.95rem }
.dc,.donor-card {
  padding:1.15rem 1.4rem; background:#fff; border:1px solid rgba(7,15,26,.09);
  display:flex; align-items:flex-start; gap:.9rem; transition:box-shadow .2s; position:relative
}
.dc:hover,.donor-card:hover { box-shadow:0 3px 18px rgba(7,15,26,.09) }
.dav { width:36px; height:36px; border-radius:50%; background:rgba(7,15,26,.07); display:flex; align-items:center; justify-content:center; font-size:.9rem; flex-shrink:0 }
.dnm { font-size:.88rem; font-weight:700; color:var(--navy) }
.dat { font-size:.68rem; color:var(--tm); margin-top:.12rem }
/* HL50 — benefattore */
.dc.hl50,.donor-card.hl50 {
  background:linear-gradient(135deg,#fffdf5,#fff9e6);
  border:1.5px solid rgba(192,136,32,.42); box-shadow:0 2px 12px rgba(192,136,32,.09)
}
.dc.hl50 .dav { background:linear-gradient(135deg,rgba(192,136,32,.25),rgba(192,136,32,.08)); color:var(--gold) }
.dc.hl50 .dnm { color:#7a5c1e; font-weight:700 }
.b50 { display:inline-block; margin-top:.3rem; padding:.14rem .52rem; font-family:var(--fn); font-size:.58rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border:1px solid rgba(192,136,32,.45); color:var(--gold); background:rgba(192,136,32,.07) }
/* VIP — patrono */
.dc.vip,.donor-card.vip {
  background:linear-gradient(135deg,#fff8f8,#fef5e5);
  border:2px solid var(--red); box-shadow:0 4px 18px rgba(184,48,32,.13)
}
.dc.vip::before,.donor-card.vip::before {
  content:''; position:absolute; top:0; left:0; width:5px; height:100%;
  background:linear-gradient(to bottom,var(--red),var(--gold))
}
.dc.vip .dav { background:linear-gradient(135deg,var(--red),var(--gold)); color:#fff }
.dc.vip .dnm { color:#8B1A1A; font-weight:800; font-size:.92rem }
.vbdg { display:inline-flex; align-items:center; gap:.28rem; margin-top:.22rem; font-family:var(--fn); font-size:.6rem; font-weight:700; color:var(--red) }
.vty,.emp-msg { font-family:var(--fc); font-style:italic; font-size:.88rem; color:var(--tm); line-height:1.5; margin-top:.52rem; padding-top:.52rem; border-top:1px solid rgba(184,48,32,.14) }
.emp { grid-column:1/-1; text-align:center; padding:2.5rem; font-family:var(--fc); font-style:italic; font-size:1rem; color:rgba(7,15,26,.32); border:1px dashed rgba(7,15,26,.13) }
.vcth { margin-top:.75rem; cursor:pointer; overflow:hidden; border:1px solid rgba(192,136,32,.28) }
.vcth img { width:100%; height:110px; object-fit:cover; display:block; transition:transform .3s }
.vcth:hover img { transform:scale(1.04) }
.vctl { font-family:var(--fn); font-size:.58rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--red); padding:.22rem .45rem; background:rgba(184,48,32,.05) }
.vbdg { display:inline-flex; align-items:center; gap:.28rem; margin-top:.22rem; font-family:var(--fn); font-size:.6rem; font-weight:700; color:var(--red) }

/* ═══ GIOCHI ═════════════════════════════════════════════════ */
.giochi-s {
  background:linear-gradient(160deg,#070f1c 0%,var(--nd) 100%);
  padding:4.5rem 2rem; position:relative; overflow:hidden;
  border-top:1px solid rgba(192,136,32,.15); border-bottom:1px solid rgba(192,136,32,.15)
}
.giochi-s::before { content:''; position:absolute; font-size:10rem; opacity:.04; top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none }
.game-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; margin-top:2rem }
.game-card {
  border:1px solid rgba(192,136,32,.18); padding:2.2rem; background:rgba(255,255,255,.04);
  transition:.25s; text-decoration:none; display:block; position:relative; overflow:hidden
}
.game-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--red),var(--gold)); transform:scaleX(0); transform-origin:left; transition:.3s }
.game-card:hover { border-color:rgba(192,136,32,.5); transform:translateY(-4px); box-shadow:0 8px 28px rgba(0,0,0,.35) }
.game-card:hover::before { transform:scaleX(1) }
.game-ico { font-size:2.6rem; margin-bottom:.9rem; display:block }
.game-tit { font-family:var(--fn); font-size:.88rem; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:.45rem; font-weight:700 }
.game-desc { font-family:var(--fc); font-size:.95rem; color:rgba(244,234,210,.55); line-height:1.62 }

/* ═══ PROGRAMMA — timeline verticale con linea gradiente ════ */
.prog-s { background:var(--warm); padding:5.5rem 2rem; position:relative }
.prog-s::before { content:''; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(7,15,26,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(7,15,26,.025) 1px,transparent 1px); background-size:80px 80px }
/* timeline */
.tl { margin-top:2.3rem; position:relative; padding-left:2rem }
.tl::before { content:''; position:absolute; left:0; top:0; bottom:0; width:1px; background:linear-gradient(to bottom,transparent,var(--gold),var(--red),transparent) }
.tli,.prog-item-tl { position:relative; padding:0 0 2.3rem 2.3rem }
.tli::before,.prog-item-tl::before { content:''; position:absolute; left:-5px; top:6px; width:10px; height:10px; background:var(--gold); border-radius:50%; box-shadow:0 0 0 3px rgba(192,136,32,.2) }
.tld,.prog-date-lbl { font-family:var(--fn); font-size:.64rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--red); margin-bottom:.32rem }
.tlt,.prog-body h3 { font-family:var(--fn); font-size:1.3rem; font-weight:700; color:var(--nd); margin-bottom:.42rem }
.tldsc,.prog-body p { font-family:var(--fc); font-size:.98rem; color:var(--tm); line-height:1.72 }
.ttg { display:inline-block; margin-top:.42rem; padding:.17rem .62rem; background:rgba(7,15,26,.07); color:var(--navy); font-family:var(--fn); font-size:.6rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase }
/* alias classi vecchie prog */
.prog-date { display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--nd); color:#fff; padding:.62rem .95rem; min-width:62px; border-right:2px solid rgba(244,234,210,.1); flex-shrink:0 }
.prog-date .day { font-family:var(--fn); font-size:1.5rem; font-weight:700; line-height:1; color:inherit }
.prog-date .month { font-family:var(--fn); font-size:.5rem; letter-spacing:.12em; text-transform:uppercase; opacity:.62; margin-top:.2rem }
.prog-item { display:grid; grid-template-columns:auto 1fr; border-bottom:1px solid rgba(7,15,26,.07); overflow:hidden; margin-bottom:.55rem }
.prog-item.main .prog-date { background:var(--red) }
.prog-item.feat { border-left:3px solid var(--red); background:rgba(184,48,32,.03) }
.prog-body { padding:.95rem 1.15rem }

/* ═══ COMPAESANI ════════════════════════════════════════════ */
.comp-s { background:var(--cream); padding:5.5rem 2rem }
.comp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1rem; margin-top:2rem }
.comp-card {
  background:#fff; border:1px solid rgba(7,15,26,.09); padding:1.5rem;
  position:relative; transition:.22s; box-shadow:0 2px 8px rgba(7,15,26,.04)
}
.comp-card::before { content:''; position:absolute; top:0; left:0; width:4px; height:100%; background:linear-gradient(to bottom,var(--sky),var(--navy)) }
.comp-card:hover { box-shadow:0 4px 18px rgba(7,15,26,.1); transform:translateY(-2px) }
.comp-nome { font-family:var(--fn); font-size:.88rem; letter-spacing:.06em; text-transform:uppercase; color:var(--nd); font-weight:700 }
.comp-luogo { font-size:.76rem; color:var(--sky); font-weight:600; margin:.32rem 0 }
.comp-msg { font-family:var(--fc); font-style:italic; font-size:.9rem; color:var(--tm); border-left:2px solid rgba(26,107,158,.28); padding-left:.65rem; margin-top:.55rem; line-height:1.65 }
.comp-form { max-width:600px; margin:2rem auto 0; background:#fff; padding:2rem; border:1px solid rgba(7,15,26,.1); box-shadow:0 2px 12px rgba(7,15,26,.06) }
.comp-form-title { font-family:var(--fn); font-size:.88rem; letter-spacing:.08em; text-transform:uppercase; color:var(--nd); margin-bottom:1rem; padding-bottom:.6rem; border-bottom:1px solid rgba(7,15,26,.07) }
.clfg { display:flex; flex-direction:column; gap:.3rem; margin-bottom:.85rem }
.clfg label { font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--tm) }
.clfg input,.clfg select { padding:.7rem .9rem; border:1px solid rgba(7,15,26,.13); background:var(--warm); font-family:var(--fu); font-size:.82rem; color:var(--td); outline:none; transition:border-color .2s }
.clfg input:focus { border-color:var(--gold) }

/* ═══ GALLERY — griglia 2fr 1fr 1fr 2fr come San Basso Termoli ═══ */
.gas { background:var(--navy); padding:4.5rem 0 }
.gahd { text-align:center; padding:0 2rem 2.2rem }
.gahd .stit { color:#fff }
.gst { display:grid; grid-template-columns:2fr 1fr 1fr 2fr; gap:3px }
.gim,.gc {
  aspect-ratio:1; background:var(--nd); display:flex; align-items:center;
  justify-content:center; transition:all .3s; position:relative; overflow:hidden; cursor:pointer
}
.gim img,.gc img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s,filter .4s; filter:sepia(.12) contrast(1.05); display:block }
.gim:hover img,.gc:hover img { transform:scale(1.06); filter:sepia(0) }
.gim-cap,.gc-t { position:absolute; bottom:0; left:0; right:0; padding:.65rem .9rem; background:linear-gradient(to top,rgba(7,15,26,.9),transparent); opacity:0; transition:.3s; font-family:var(--fn); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; color:var(--parch); z-index:1 }
.gim:hover .gim-cap,.gc:hover .gc-t { opacity:1 }

/* ═══ COLLABORA ═════════════════════════════════════════════ */
.collab-s { background:var(--warm); padding:5.5rem 2rem }
.collab-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; margin-top:2rem }
.collab-perks { list-style:none; margin-top:1rem }
.collab-perks li { display:flex; align-items:flex-start; gap:.7rem; padding:.6rem 0; border-bottom:1px solid rgba(7,15,26,.07); font-family:var(--fc); font-size:1rem; color:var(--tm) }
.collab-perks li:last-child { border-bottom:none }
.collab-perks li::before { content:'✦'; color:var(--gold); font-size:.7rem; margin-top:.3rem; flex-shrink:0 }
.collab-form { background:#fff; padding:2rem; border:1px solid rgba(7,15,26,.1) }
.collab-form-title { font-family:var(--fn); font-size:1.1rem; color:var(--nd); margin-bottom:1.3rem; padding-bottom:.6rem; border-bottom:1px solid rgba(7,15,26,.07) }

/* ═══ SOCIAL ════════════════════════════════════════════════ */
.scs { background:var(--cream); text-align:center; padding:5.5rem 2rem }
.si { display:flex; justify-content:center; gap:1.3rem; margin-top:1.9rem; flex-wrap:wrap }
.sp,.soc-btn { display:flex; align-items:center; gap:.65rem; padding:.82rem 1.7rem; border:1px solid rgba(7,15,26,.13); color:var(--navy); text-decoration:none; font-family:var(--fn); font-size:.76rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; transition:all .24s; background:#fff }
.sp:hover,.soc-btn:hover { background:var(--navy); color:#fff; border-color:var(--navy); transform:translateY(-2px) }

/* ═══ CONTATTI ══════════════════════════════════════════════ */
.cts { background:var(--warm); padding:5.5rem 2rem }
.ctf { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:start; max-width:1080px; margin:0 auto }
.cii { display:flex; gap:.9rem; align-items:flex-start; margin-bottom:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid rgba(7,15,26,.07) }
.cii:last-child { border-bottom:none }
.cic { width:36px; height:36px; background:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:.88rem; color:#fff }
.cil { font-family:var(--fn); font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--red); margin-bottom:.22rem }
.civ { font-family:var(--fc); font-size:.97rem; color:var(--td); line-height:1.5 }
.civ a { color:var(--red); text-decoration:none }
.ctfg { display:flex; flex-direction:column; gap:.85rem }
.ctfg label { font-family:var(--fn); font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--tm) }
.ctfg input,.ctfg textarea { padding:.75rem .95rem; border:1px solid rgba(7,15,26,.13); background:#fff; font-family:var(--fu); font-size:.82rem; color:var(--td); outline:none; transition:border-color .2s; resize:vertical }
.ctfg input:focus,.ctfg textarea:focus { border-color:var(--gold) }

/* ═══ MOBILE BAR ════════════════════════════════════════════ */
.mob-bar { display:none; position:fixed; bottom:0; left:0; right:0; z-index:800; background:rgba(13,27,42,.97); border-top:1px solid rgba(192,136,32,.25); padding:.6rem 1rem .8rem; grid-template-columns:1fr 1fr; gap:.6rem; backdrop-filter:blur(8px) }
.mob-bar a { display:block; text-align:center; padding:.7rem .5rem; font-family:var(--fn); font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; transition:all .2s }
.mb-dona { background:var(--red); color:#fff!important; clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px)) }
.mb-prog { background:rgba(255,255,255,.1); color:#fff!important; border:1px solid rgba(244,234,210,.2) }

/* ═══ MODAL ══════════════════════════════════════════════════ */
.mo { position:fixed; inset:0; background:rgba(0,0,0,.88); z-index:8500; display:none; align-items:center; justify-content:center; padding:1rem }
.mo.open { display:flex }
.mb { background:var(--nd); border:1px solid rgba(192,136,32,.28); padding:2rem; max-width:480px; width:100%; position:relative; animation:fadeUp .3s ease }
.mcl { position:absolute; top:.9rem; right:.9rem; background:none; border:none; color:rgba(244,234,210,.48); font-size:1.45rem; cursor:pointer; line-height:1 }
.mcl:hover { color:#fff }
.mi { font-size:2.8rem; text-align:center; margin-bottom:.9rem }

/* ═══ LIGHTBOX ══════════════════════════════════════════════ */
#lbx { position:fixed; inset:0; background:rgba(0,0,0,.96); z-index:9000; display:none; align-items:center; justify-content:center; cursor:pointer; padding:1rem }
#lbx.open { display:flex }
#lbx img { max-width:92vw; max-height:88vh; display:block }
#lbx-close { position:fixed; top:1rem; right:1.5rem; background:none; border:none; color:#fff; font-size:2.2rem; cursor:pointer; z-index:9001; line-height:1 }

/* ═══ GUIDE OVERLAY — come San Basso Termoli ════════════════════════ */
.guide-overlay { position:fixed; inset:0; background:rgba(13,27,42,.97); z-index:8000; display:flex; align-items:center; justify-content:center; padding:1.5rem; animation:fadeUp .4s ease }
.guide-box { background:var(--nd); max-width:420px; width:100%; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.5); border:1px solid rgba(192,136,32,.28) }
.guide-box-header { background:linear-gradient(135deg,var(--red),#8B1A1A); padding:1.5rem 2rem; text-align:center }
.guide-box-header h2 { font-family:var(--fn); color:#fff; font-size:1.3rem; margin-bottom:.3rem }
.guide-box-header p { font-size:.75rem; color:rgba(255,255,255,.7); margin:0 }
.guide-box-body { padding:2rem }
.guide-box h2 { font-family:var(--fn); font-size:1.3rem; color:#fff; margin-bottom:.4rem }
.guide-box p { font-family:var(--fc); font-size:.97rem; color:rgba(244,234,210,.62); margin-bottom:1.5rem; line-height:1.7 }
.guide-entra { display:block; width:100%; padding:1rem; background:linear-gradient(135deg,var(--red),#8B1A1A); color:#fff; border:none; font-family:var(--fn); font-size:.85rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; margin-top:1.2rem; transition:.22s }
.guide-entra:hover { background:linear-gradient(135deg,#D04030,var(--red)) }

/* ═══ BANNER PARCHEGGI ══════════════════════════════════════ */
.park-banner { background:var(--nd); border-top:1px solid rgba(184,48,32,.28); border-bottom:1px solid rgba(184,48,32,.28); padding:1.5rem 2rem }
.park-banner-inner { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; justify-content:space-between; max-width:1080px; margin:0 auto }
.park-banner-ico { font-size:2.2rem; flex-shrink:0 }
.park-banner-txt h3 { font-family:var(--fn); font-size:.8rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:.28rem }
.park-banner-txt p { font-size:.84rem; color:rgba(244,234,210,.52); font-family:var(--fc) }
.park-banner-btn { display:inline-flex; align-items:center; gap:.5rem; background:var(--red); color:#fff; text-decoration:none; padding:.78rem 1.8rem; font-family:var(--fn); font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; flex-shrink:0; transition:.22s; clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px)) }
.park-banner-btn:hover { background:#D04030 }

/* ═══ CARTA NAUTICA / OVERLAY MAPS ══════════════════════════ */
#carta-nautica-overlay { display:none; position:fixed; inset:0; z-index:9500; background:#EEE0C0; align-items:center; justify-content:center; flex-direction:column }
#carta-nautica-overlay.show { display:flex }
#cn-label { position:absolute; bottom:22%; left:0; right:0; text-align:center; font-family:var(--fm); font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(7,15,26,.5) }
#cn-dest { position:absolute; top:22%; left:0; right:0; text-align:center; font-family:var(--fn); font-size:1.1rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--nd) }

/* ═══ FOOTER ════════════════════════════════════════════════ */
footer { background:var(--nd); color:rgba(244,234,210,.38); padding:2.5rem 2rem; text-align:center }
.footer-rose,.flo-ico { margin-bottom:.55rem; opacity:.28 }
.footer-nome,.flo { font-family:var(--fn); font-size:1.3rem; color:var(--gl); margin-bottom:.55rem }
.footer-tag,.ftg { font-family:var(--fc); font-style:italic; font-size:.9rem; color:rgba(244,234,210,.26); margin-bottom:1.6rem }
.footer-links,.flk { display:flex; justify-content:center; gap:1.8rem; flex-wrap:wrap; list-style:none; margin-bottom:1.5rem }
.footer-links a,.flk a { color:rgba(244,234,210,.28); text-decoration:none; font-family:var(--fn); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; transition:color .2s }
.footer-links a:hover,.flk a:hover { color:var(--gold) }
.footer-copy,.fcp { font-size:.66rem; color:rgba(244,234,210,.17) }
.footer-adm { margin-top:.5rem }
.footer-adm a { font-size:.58rem; color:rgba(244,234,210,.08)!important; text-decoration:none }
.footer-adm a:hover { color:rgba(244,234,210,.28)!important }

/* ═══ RESPONSIVE ════════════════════════════════════════════ */
@media(max-width:900px) { .tgr{grid-template-columns:repeat(2,1fr)} }
@media(max-width:768px) {
  .nav-links{display:none} .nav-ham{display:flex}
  .abgr,.about-g,.ctf,.collab-grid{grid-template-columns:1fr;gap:2rem}
  .hero-compass-rose,.halo{display:none}
  .mob-bar{display:grid}
  body{padding-bottom:64px}
  .gst{grid-template-columns:1fr 1fr}
  .frw{grid-template-columns:1fr!important}
  .bon-grid{grid-template-columns:1fr}
}
@media(max-width:500px) {
  .tgr{grid-template-columns:1fr 1fr}
  .instruments{flex-wrap:wrap}
  .gauge{min-width:78px;padding:.9rem 1.1rem 1.1rem}
  .gauge-face{width:72px;height:72px}
  .gauge-num{font-size:1.55rem}
  .h-btns,.hbtns{flex-direction:column;align-items:center}
  .h-btns .btn-primary,.h-btns .btn-ghost,.hbtns .btnp,.hbtns .btns{width:100%;justify-content:center;text-align:center}
  .instrument-strip,.cstrip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:380px) { .tgr{grid-template-columns:1fr} }

.park-banner-txt h3{font-family:var(--fn);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:.28rem}
.park-banner-txt p{font-size:.84rem;color:rgba(244,234,210,.52);font-family:var(--fc)}


/* ═══ BUSSOLA NAVBAR ═════════════════════════════════════════ */
@keyframes compassSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
/* Accelera al hover sulla navbar brand */
.navbar-brand:hover #compass-rose {
  animation-duration: 3s !important;
}
/* Sestante nascosto su schermi stretti */
@media(max-width:1100px) { #nav-sextant { display:none!important } }


/* ═══ PATCH MOBILE SANBASSO2 — leggibilità, countdown e donazioni ═══
   Intervento solo responsive: nessuna modifica alla grafica desktop. */
@media (max-width: 680px) {
  html, body { overflow-x: hidden; }
  .hero, .h, .dn-s, .sp-section, .program-section, .park-section { max-width: 100%; }

  /* Countdown sempre orizzontale e compatto */
  .instruments {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    width: min(100%, 392px) !important;
    max-width: calc(100vw - 22px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
  }
  .instruments::before {
    font-size: .43rem !important;
    letter-spacing: .08em !important;
    top: -20px !important;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .gauge {
    flex: 1 1 25% !important;
    min-width: 0 !important;
    padding: .58rem .25rem .7rem !important;
  }
  .gauge + .gauge { border-left: 1px solid rgba(192,136,32,.22) !important; }
  .gauge-face {
    width: clamp(54px, 17.5vw, 68px) !important;
    height: clamp(54px, 17.5vw, 68px) !important;
    margin-bottom: .48rem !important;
  }
  .gauge-num { font-size: clamp(1.12rem, 5.2vw, 1.42rem) !important; }
  .gauge-label { font-size: .42rem !important; letter-spacing: .14em !important; }
  .gauge-needle { height: 25px !important; }

  /* Donazioni: una sola colonna su telefono, senza sovrapposizioni */
  .tgr {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
    margin-top: 1.4rem !important;
  }
  .tc {
    min-width: 0 !important;
    width: 100% !important;
    padding: 1.25rem 1.05rem !important;
    box-sizing: border-box !important;
  }
  .tc.ft::before { font-size: .48rem !important; padding: .18rem .48rem !important; }
  .tam { font-size: 1.72rem !important; }
  .tnm { font-size: .62rem !important; line-height: 1.25 !important; }
  .tpk { font-size: .74rem !important; line-height: 1.72 !important; }

  .dfrm { padding: 1.15rem !important; margin-top: 1.35rem !important; }
  .frw { grid-template-columns: 1fr !important; gap: .72rem !important; }
  .fg input, .fg select, .fg textarea, .ctg input, .ctg select, .ctg textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    font-size: .92rem !important;
  }
  .dbr { flex-direction: column !important; align-items: stretch !important; }
  .dbr .dbb, .dbr a { width: 100% !important; justify-content: center !important; text-align: center !important; }
  .bon-section, .bon-box { overflow-wrap: anywhere !important; word-break: break-word !important; }
  .bon-section *, .bon-box * { max-width: 100% !important; }

  /* Collegamenti rapidi senza taglio laterale */
  .quick-route, .rotta, .hero-route, .nav-quick, .rnav {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    max-width: 100% !important;
  }
  .quick-route a, .rotta a, .hero-route a, .nav-quick a, .rnav a { white-space: nowrap !important; }
}
@media (max-width: 390px) {
  .instruments { max-width: calc(100vw - 14px) !important; }
  .gauge { padding-left: .16rem !important; padding-right: .16rem !important; }
  .gauge-face { width: 52px !important; height: 52px !important; }
  .gauge-num { font-size: 1.08rem !important; }
  .gauge-label { font-size: .38rem !important; letter-spacing: .1em !important; }
}
@media (max-width: 340px) {
  .gauge-face { width: 46px !important; height: 46px !important; }
  .gauge-num { font-size: .98rem !important; }
  .gauge-label { font-size: .34rem !important; }
}

/* ═══ FONT PIÙ GRANDI SU DESKTOP ════════════════════════════ */
/* Nav-links: da .6rem a .72rem per leggibilità desktop */
@media(min-width:769px){
  .nav-links a { font-size:.72rem; padding:.42rem 1.05rem }
  .rotta-link { font-size:.62rem; padding:.35rem .9rem }
  .rotta-label { font-size:.6rem }
  .gauge-label { font-size:.6rem }
  .ticker-item,.ti { font-size:.82rem }
  .instr-lbl,.clbl { font-size:.74rem }
  .slbl { font-size:.72rem }
  .bon-label,.bon-lbl { font-size:.68rem }
  .pub-card-cat { font-size:.64rem }
  .bio-cat { font-size:.6rem }
}

/* ═══ OTTIMIZZAZIONE MOBILE COMPLETA ════════════════════════ */
@media(max-width:768px){

  /* Navbar mobile */
  .navbar { height:58px; padding:0 1rem }
  .brand-text-top { font-size:.78rem }
  .brand-text-sub { display:none }

  /* Hero */
  section { padding:3.5rem 1.2rem }
  .hero-inner,.hcont { padding:5rem 1.2rem 4rem }
  .h-anno,.hyr { font-size:clamp(.9rem,2.5vw,1.2rem); letter-spacing:.2em }
  .h-titolo,.htit { font-size:clamp(2.6rem,12vw,5rem) }
  .h-sub,.hsub { font-size:clamp(.92rem,3.5vw,1.1rem) }
  .h-stamp,.hpre { font-size:.64rem; gap:.6rem }
  .h-stamp::before,.h-stamp::after,.hpre::before,.hpre::after { width:24px }

  /* Countdown strumentazione */
  .instruments { flex-wrap:wrap; max-width:calc(100vw - 2.4rem) }
  .gauge { min-width:calc(50% - 1px); padding:.8rem 1rem 1rem; border-left:none }
  .gauge:nth-child(3) { border-top:1px solid rgba(192,136,32,.22) }
  .gauge:nth-child(4) { border-top:1px solid rgba(192,136,32,.22) }
  .gauge+.gauge { border-left:none }
  .gauge:nth-child(odd) { border-right:1px solid rgba(192,136,32,.22) }
  .gauge-face { width:70px; height:70px }
  .gauge-num { font-size:1.65rem }
  .gauge-label { font-size:.52rem }

  /* Counter strip */
  .instrument-strip,.cstrip { grid-template-columns:repeat(2,1fr) }
  .instr-val,.cnum { font-size:clamp(1.3rem,6vw,1.9rem) }
  .instr-lbl,.clbl { font-size:.6rem }

  /* Rotta bar */
  .rotta-bar { padding:.4rem .8rem; gap:.3rem }
  .rotta-link { font-size:.5rem; padding:.25rem .55rem }

  /* Ticker */
  .ticker-bar { height:36px }
  .ticker-item,.ti { font-size:.68rem; padding:0 1rem }

  /* Sezioni testo */
  .stit { font-size:clamp(1.55rem,6vw,2.2rem) }
  .sbod { font-size:1rem }

  /* Griglia Basso stats */
  #ciurma-basso > div > div[style*="grid-template-columns:repeat(auto-fit"] {
    grid-template-columns:repeat(2,1fr)!important;
  }

  /* Ciurma griglia foto */
  #ciurma-grid { grid-template-columns:repeat(3,1fr)!important; gap:.6rem }

  /* Manifesto */
  #manifesto-rotta .container { padding:0 1rem }
  #manifesto-rotta [style*="padding:3rem 3.5rem"] { padding:1.5rem 1.2rem!important }
  #manifesto-rotta [style*="font-size:clamp(2rem"] { font-size:clamp(1.8rem,8vw,2.8rem)!important }

  /* Modal coordinate */
  #termoli-coord-modal > div > div:last-child { padding:1.2rem 1.2rem 1.5rem!important }
  #termoli-coord-modal > div { max-width:95vw!important }

  /* Donazione tier */
  .tgr { grid-template-columns:repeat(2,1fr); gap:.6rem }
  .tam { font-size:1.55rem }
  .tnm { font-size:.58rem }
  .tpk { font-size:.66rem }

  /* Sponsor */
  .sp-section .container > div[style*="grid-template-columns"] {
    grid-template-columns:1fr!important;
  }

  /* Gallery */
  .gst { grid-template-columns:1fr 1fr }

  /* Bio grid */
  .bio-grid { grid-template-columns:1fr }

  /* Comp grid */
  .comp-grid { grid-template-columns:1fr }

  /* Contatti */
  .ctf { grid-template-columns:1fr; gap:2rem }

  /* Form */
  .frw { grid-template-columns:1fr!important }
  .bon-grid,.bon-fields { grid-template-columns:1fr }

  /* Form ciurma */
  #basso-form-wrap { margin:0 }
  #basso-form-wrap > div { padding:1.5rem 1.1rem }
  #ciurma-grid .basso-card > div:first-child { width:100%!important }

  /* Parcheggi */
  .park-banner-inner { flex-direction:column; align-items:flex-start; gap:1rem }
  .park-banner-btn { width:100%; justify-content:center }

  /* Programma TL */
  .tl { padding-left:1.2rem }
  .tlt,.prog-body h3 { font-size:1.1rem }

  /* Footer */
  .footer-links,.flk { gap:1rem }
  footer { padding:2rem 1.2rem }

  /* Bottoni hero */
  .h-btns > *,.hbtns > * { width:100%; text-align:center; justify-content:center }
}

@media(max-width:420px){
  .gauge { min-width:calc(50% - 1px) }
  .instr-val,.cnum { font-size:clamp(1.1rem,5vw,1.5rem) }
  #ciurma-grid { grid-template-columns:repeat(2,1fr)!important }
  .tgr { grid-template-columns:1fr }
  .h-titolo,.htit { font-size:clamp(2.2rem,11vw,4rem) }
  .h-stamp,.hpre { display:none }
  section { padding:2.8rem 1rem }
}

/* ═══ OTTIMIZZAZIONI TOUCH / ACCESSIBILITÀ ═════════════════ */
* { -webkit-tap-highlight-color: rgba(192,136,32,.15) }
button,a,.tc,.basso-card,.game-card,.sp-card,.comp-card,.prog-item,.gim,.gc {
  -webkit-tap-highlight-color: transparent;
}
input,select,textarea { font-size:16px; } /* previene zoom automatico iOS */
@media(max-width:768px){
  input,select,textarea { font-size:16px!important }
  button { min-height:44px }           /* touch target minimo Apple HIG */
  .rotta-link { min-height:36px; display:inline-flex; align-items:center }
  .nav-item,.nav-links a { min-height:44px; display:flex; align-items:center }
}

/* ═══ LOCANDINA ESTRAZIONE — responsive ════════════════════ */
#estrazione .rv[style*="grid-template-columns:1fr 1fr"] {
  display:grid;
}
@media(max-width:768px){
  #estrazione [style*="grid-template-columns:1fr 1fr;gap:2.5rem"] {
    grid-template-columns:1fr!important;
    gap:1.5rem!important;
  }
  /* Su mobile: locandina prima, info dopo */
  #estrazione [style*="grid-template-columns:1fr 1fr;gap:2.5rem"] > div:first-child {
    order:2;
  }
  #estrazione [style*="grid-template-columns:1fr 1fr;gap:2.5rem"] > div:last-child {
    order:1;
  }
}
/* Hover locandina */
#estrazione a[style*="cursor:zoom-in"]:hover {
  transform:translateY(-3px);
  box-shadow:0 12px 48px rgba(0,0,0,.7),0 0 0 2px rgba(200,168,80,.5)!important;
}


/* ═══════════════════════════════════════════════════════════════
   FIX FINALE MOBILE — countdown orizzontale, donazioni, ticker
   Non modifica la grafica desktop: forza solo la resa smartphone.
   ═══════════════════════════════════════════════════════════════ */
.ticker-scroll{overflow:hidden!important;min-width:0!important;}
.ticker-track{display:inline-flex!important;flex-wrap:nowrap!important;white-space:nowrap!important;min-width:max-content!important;will-change:transform;animation:tickMov 36s linear infinite!important;}
.ticker-item,.ti{flex:0 0 auto!important;white-space:nowrap!important;}

@media(max-width:768px){
  html,body{overflow-x:hidden!important;}

  /* Countdown: sempre 4 quadranti in orizzontale */
  .instruments{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:stretch!important;
    justify-content:center!important;
    gap:0!important;
    width:min(100%,430px)!important;
    max-width:calc(100vw - 18px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    overflow:visible!important;
    flex-wrap:nowrap!important;
  }
  .instruments .gauge-sep{display:none!important;}
  .instruments .gauge{
    min-width:0!important;
    width:auto!important;
    padding:.62rem .18rem .72rem!important;
    border-top:0!important;
    border-right:0!important;
    border-left:1px solid rgba(192,136,32,.22)!important;
    box-sizing:border-box!important;
  }
  .instruments .gauge:first-child{border-left:0!important;}
  .instruments .gauge-face{
    width:clamp(48px,16vw,66px)!important;
    height:clamp(48px,16vw,66px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    margin-bottom:.42rem!important;
  }
  .instruments .gauge-num{font-size:clamp(1rem,4.9vw,1.42rem)!important;}
  .instruments .gauge-label{font-size:clamp(.34rem,1.8vw,.46rem)!important;letter-spacing:.09em!important;line-height:1.1!important;}
  .instruments .gauge-needle{height:24px!important;}
  .instruments::before{font-size:.42rem!important;letter-spacing:.07em!important;top:-19px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}

  /* Donazioni: nessuna sovrapposizione dei livelli e del form */
  .dn-s .container,.dn-in{max-width:100%!important;overflow:hidden!important;}
  .tgr{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:.88rem!important;
    width:100%!important;
    max-width:100%!important;
  }
  .tgr .tc{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .tc .tam,.tc .tnm,.tc .tpk,.tc .tbdg{max-width:100%!important;overflow-wrap:anywhere!important;word-break:normal!important;}
  .dfrm,.bon-section,.bon-box{width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important;}
  .frw,.bon-grid,.bon-fields{display:grid!important;grid-template-columns:1fr!important;gap:.75rem!important;}
  .fg,.fg input,.fg select,.fg textarea{min-width:0!important;max-width:100%!important;box-sizing:border-box!important;}
  .bon-value,.bon-value.mono,#iban-display{font-size:clamp(.73rem,3.2vw,.92rem)!important;line-height:1.5!important;white-space:normal!important;overflow-wrap:anywhere!important;}
  .dbr{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:.8rem!important;}
  .dbr .dbb,.dbr .gfb{width:100%!important;text-align:center!important;justify-content:center!important;}

  /* Donatori: ticker sempre scorrevole e leggibile */
  .ticker-bar{height:40px!important;max-width:100vw!important;overflow:hidden!important;}
  .ticker-tag{height:40px!important;padding:0 .78rem!important;font-size:.55rem!important;}
  .ticker-item,.ti{height:40px!important;font-size:.72rem!important;padding:0 1rem!important;}
  .ticker-track{animation-duration:28s!important;}
}
@media(max-width:380px){
  .instruments{max-width:calc(100vw - 10px)!important;}
  .instruments .gauge{padding-left:.1rem!important;padding-right:.1rem!important;}
  .instruments .gauge-face{width:46px!important;height:46px!important;}
  .instruments .gauge-num{font-size:.98rem!important;}
  .instruments .gauge-label{font-size:.32rem!important;letter-spacing:.05em!important;}
  .ticker-tag{padding:0 .55rem!important;}
  .ticker-item,.ti{font-size:.68rem!important;padding:0 .82rem!important;}
}

/* ═══ SAN BASSO EMERGE DAL MARE — animazione fluttuante ════ */
@keyframes sbFloat {
  0%,100% { transform: translateY(0px)   rotate(0deg)   }
  33%      { transform: translateY(-8px)  rotate(.4deg)  }
  66%      { transform: translateY(-4px)  rotate(-.3deg) }
}

/* Su schermi < 768 si riduce ma resta visibile */
@media(max-width:768px){
  /* il div assoluto va sopra la costa anche su mobile */
  .hero > div[aria-hidden="true"]{
    width:clamp(140px,42vw,260px)!important;
    opacity:.82!important;
  }
}

/* Nasconde su schermi molto stretti se sovrasta il testo */
@media(max-width:400px){
  .hero > div[aria-hidden="true"]{
    width:clamp(110px,36vw,180px)!important;
    opacity:.65!important;
  }
}

/* ═══ SEZIONE CURIOSITÀ ════════════════════════════════════ */
@media(max-width:768px){
  #curiosita [style*="grid-template-columns:1fr 1fr;gap:3rem"] {
    grid-template-columns:1fr!important;
    gap:2rem!important;
  }
  /* Su mobile: immagine prima del testo */
  #curiosita [style*="grid-template-columns:1fr 1fr;gap:3rem"] > div:first-child {
    order:2;
  }
  #curiosita [style*="grid-template-columns:1fr 1fr;gap:3rem"] > div:last-child {
    order:1;
  }
}


/* ============================================================
   RESPONSIVE FINAL FIX — desktop/tablet/mobile
   Non altera identità grafica: corregge solo leggibilità, spazi,
   menu, countdown, donazioni, ticker e sezioni dense.
   ============================================================ */

html, body {
  max-width: 100%;
  overflow-x: hidden;
}

img, video, iframe {
  max-width: 100%;
  height: auto;
}

* {
  box-sizing: border-box;
}

/* NAV DESKTOP: evita taglio voci su schermi medi */
.navbar {
  min-height: 76px;
}

.navbar-brand {
  min-width: 255px;
  flex-shrink: 0;
}

.brand-text-top {
  line-height: 1.05;
}

.nav-links {
  min-width: 0;
  flex: 1 1 auto;
  justify-content: flex-end;
  gap: clamp(.35rem, .75vw, 1rem);
}

.nav-links > li > a {
  white-space: nowrap;
  padding-left: clamp(.55rem, .9vw, 1rem);
  padding-right: clamp(.55rem, .9vw, 1rem);
  font-size: clamp(.66rem, .76vw, .82rem);
  line-height: 1.25;
}

.nav-links .cta,
.nav-links a.cta {
  padding-left: .85rem;
  padding-right: .85rem;
  flex-shrink: 0;
}

/* quando lo spazio non basta, passa a navigazione mobile */
@media (max-width: 1340px) {
  .nav-links {
    display: none !important;
  }
  .hamb,
  .hamburger,
  .mobile-menu-toggle,
  .menu-toggle {
    display: flex !important;
  }
  .navbar {
    padding-right: 1rem;
  }
}

/* quick route: non deve tagliare né comprimere */
.route-bar,
.quick-route,
.rot-bar,
.subnav,
.radar-route {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.route-bar a,
.quick-route a,
.rot-bar a,
.subnav a,
.radar-route a {
  white-space: nowrap;
  flex: 0 0 auto;
}

/* COUNTDOWN: sempre leggibile e orizzontale */
.instruments,
#cd-banner,
.countdown,
.cd-wrap {
  width: 100%;
  max-width: 100%;
}

.instruments {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center;
  align-items: stretch;
  gap: clamp(.35rem, 1vw, 1rem);
}

.inst,
.cd-card,
.count-card,
.instrument {
  min-width: 0;
}

.instruments .inst,
#cd-banner .inst {
  flex: 1 1 0;
  max-width: 150px;
}

.instruments .num,
.instruments .val,
.instruments [id^="cd-"] {
  font-size: clamp(1.15rem, 5vw, 2.6rem) !important;
  line-height: 1 !important;
}

.instruments .lbl,
.instruments .lab,
.instruments small {
  font-size: clamp(.48rem, 1.7vw, .7rem) !important;
  letter-spacing: .08em !important;
}

/* TICKER DONATORI/LUMINARIE: scorrimento più stabile */
.donor-ticker,
.ticker,
.marquee,
.donor-marquee,
.luminarie-ticker,
.ticker-track {
  overflow: hidden;
  max-width: 100%;
}

.ticker-track,
.marquee-track,
.donor-track,
.donors-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  min-width: 100%;
  will-change: transform;
}

.ticker-track > *,
.marquee-track > *,
.donor-track > *,
.donors-track > * {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* DONAZIONI DESKTOP/TABLET: evita sovrapposizioni */
.don-s,
.donation-section,
#donazione {
  overflow: hidden;
}

.donation-grid,
.don-grid,
.tier-grid,
.don-levels,
.don-tiers,
.donation-levels {
  max-width: 100%;
}

.frw {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
}

.fg,
.fg input,
.fg select,
.fg textarea {
  min-width: 0;
  width: 100%;
}

#don-form-el input,
#don-form-el select,
#don-form-el textarea {
  font-size: 1rem;
  min-height: 46px;
}

#don-msg {
  word-break: normal;
  overflow-wrap: anywhere;
}

/* IBAN: non deve uscire fuori */
.mono,
.bon-value,
#iban-display {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.bon-grid {
  grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)) !important;
}

.bon-item.full,
.bon-item.highlight.full {
  grid-column: 1 / -1;
}

/* PROGRAMMA: date visibili e non tagliate */
.prog-item {
  max-width: 100%;
}

.prog-date {
  min-width: 74px;
}

.prog-date .day {
  text-align: center;
}

.prog-body {
  min-width: 0;
}

.prog-body p,
.prog-body span,
.prog-body div {
  overflow-wrap: anywhere;
}

/* PAGINE SECONDARIE */
.pg-wrap,
.prog-main,
.parking-main,
.storia-wrap,
.page-wrap {
  max-width: min(1120px, calc(100vw - 2rem));
}

/* TABLET */
@media (max-width: 900px) {
  .navbar {
    min-height: 68px;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .navbar-brand {
    min-width: 0;
    max-width: calc(100vw - 90px);
  }

  .brand-text-top {
    font-size: .95rem !important;
    letter-spacing: .06em !important;
  }

  .brand-text-sub {
    font-size: .62rem !important;
  }

  .hero,
  .hero-section,
  .h-wrap {
    min-height: auto !important;
    padding-top: 6rem !important;
    padding-bottom: 3.5rem !important;
  }

  .frw {
    grid-template-columns: 1fr !important;
    gap: .8rem !important;
  }

  .donation-grid,
  .don-grid,
  .tier-grid,
  .don-levels,
  .don-tiers,
  .donation-levels {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .8rem !important;
  }

  .bon-section {
    padding: 1.1rem !important;
  }

  .prog-s {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .prog-item {
    grid-template-columns: 74px minmax(0, 1fr) !important;
  }

  .prog-body {
    padding: .9rem .95rem !important;
  }
}

/* MOBILE */
@media (max-width: 560px) {
  body {
    padding-bottom: 76px;
  }

  .navbar {
    min-height: 62px;
  }

  .brand-compass,
  .brand-icon,
  .logo-icon {
    transform: scale(.88);
    transform-origin: left center;
  }

  .brand-text-top {
    font-size: .78rem !important;
    letter-spacing: .055em !important;
  }

  .brand-text-sub {
    font-size: .52rem !important;
    line-height: 1.15 !important;
  }

  .route-bar,
  .quick-route,
  .rot-bar,
  .subnav,
  .radar-route {
    justify-content: flex-start !important;
    padding-left: .85rem !important;
    padding-right: .85rem !important;
  }

  .route-bar a,
  .quick-route a,
  .rot-bar a,
  .subnav a,
  .radar-route a {
    font-size: .62rem !important;
    padding: .5rem .72rem !important;
  }

  .instruments {
    gap: .3rem !important;
    padding-left: .2rem !important;
    padding-right: .2rem !important;
  }

  .instruments .inst,
  #cd-banner .inst {
    flex: 1 1 25% !important;
    max-width: none !important;
    padding: .6rem .28rem !important;
  }

  .instruments .num,
  .instruments .val,
  .instruments [id^="cd-"] {
    font-size: clamp(1.25rem, 8vw, 1.9rem) !important;
  }

  .instruments .lbl,
  .instruments .lab,
  .instruments small {
    font-size: .48rem !important;
    letter-spacing: .06em !important;
  }

  .donation-grid,
  .don-grid,
  .tier-grid,
  .don-levels,
  .don-tiers,
  .donation-levels {
    grid-template-columns: 1fr !important;
  }

  #don-form-el {
    width: 100%;
  }

  #don-form-el .dbb,
  #don-form-el button[type="submit"],
  #don-form-el .gfb {
    width: 100%;
    justify-content: center;
    text-align: center;
    min-height: 48px;
  }

  .dbr {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .8rem !important;
  }

  .bon-grid {
    grid-template-columns: 1fr !important;
  }

  .bon-copy {
    width: 100%;
    margin-top: .55rem;
  }

  .prog-item {
    grid-template-columns: 62px minmax(0, 1fr) !important;
    margin-bottom: .7rem !important;
  }

  .prog-date {
    min-width: 62px !important;
    padding: .55rem .3rem !important;
  }

  .prog-date .day {
    font-size: 1.28rem !important;
  }

  .prog-date .month {
    font-size: .44rem !important;
    letter-spacing: .08em !important;
  }

  .prog-body {
    padding: .8rem .72rem !important;
  }

  .prog-body h3 {
    font-size: 1.02rem !important;
    line-height: 1.2 !important;
  }

  .prog-body p,
  .prog-body span,
  .prog-body div {
    font-size: .9rem !important;
    line-height: 1.5 !important;
  }

  .mob-bar {
    display: grid !important;
  }

  .ctf,
  .collab-grid,
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
  }

  .gst {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* VERY SMALL MOBILE */
@media (max-width: 380px) {
  .brand-text-top {
    font-size: .68rem !important;
  }

  .brand-text-sub {
    display: none !important;
  }

  .instruments {
    gap: .2rem !important;
  }

  .instruments .inst,
  #cd-banner .inst {
    padding: .48rem .18rem !important;
  }

  .instruments .num,
  .instruments .val,
  .instruments [id^="cd-"] {
    font-size: 1.15rem !important;
  }

  .prog-item {
    grid-template-columns: 56px minmax(0, 1fr) !important;
  }

  .prog-date {
    min-width: 56px !important;
  }
}


/* ============================================================
   NAVBAR OVERLAP FIX v27
   Corregge sovrapposizione scritte nella barra superiore.
   ============================================================ */

/* desktop ampio: compatta meglio il blocco sinistro e il menu */
.navbar,
.nav,
.site-nav,
.topbar {
  display: flex;
  align-items: center;
  gap: 0;
}

.navbar-brand,
.brand,
.site-brand {
  display: flex;
  align-items: center;
  gap: .7rem !important;
  min-width: 210px !important;
  max-width: 360px;
  flex: 0 1 360px !important;
}

.brand-compass,
.brand-icon,
.logo-icon {
  flex: 0 0 auto;
}

.brand-meta,
.brand-copy,
.brand-text,
.brand-wrap {
  min-width: 0;
}

.brand-text-top {
  font-size: clamp(.92rem, 1.15vw, 1.45rem) !important;
  line-height: 1.02 !important;
  letter-spacing: .06em !important;
}

.brand-text-sub {
  font-size: clamp(.56rem, .72vw, .82rem) !important;
  line-height: 1.12 !important;
}

.brand-coords,
.coords,
.coord-wrap,
.nav-coords {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 0 1 96px !important;
  min-width: 72px !important;
  max-width: 96px !important;
  overflow: hidden;
  font-size: clamp(.42rem, .50vw, .56rem) !important;
  line-height: 1.1 !important;
  letter-spacing: .06em !important;
  white-space: nowrap;
}

.nav-links,
.menu,
.main-menu,
.site-menu {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: clamp(.2rem, .5vw, .65rem) !important;
}

.nav-links > li,
.menu > li,
.main-menu > li,
.site-menu > li {
  min-width: 0;
}

.nav-links > li > a,
.menu > li > a,
.main-menu > li > a,
.site-menu > li > a {
  white-space: nowrap !important;
  font-size: clamp(.68rem, .72vw, .85rem) !important;
  line-height: 1.2 !important;
  letter-spacing: .08em !important;
  padding-left: clamp(.45rem, .6vw, .8rem) !important;
  padding-right: clamp(.45rem, .6vw, .8rem) !important;
}

.nav-links .cta,
.nav-links a.cta,
.menu .cta,
.menu a.cta,
.main-menu .cta,
.main-menu a.cta {
  padding-left: .9rem !important;
  padding-right: .9rem !important;
}

/* evita che il blocco brand invada il menu */
@media (min-width: 1351px) and (max-width: 1600px) {
  .navbar-brand,
  .brand,
  .site-brand {
    min-width: 185px !important;
    max-width: 315px !important;
    flex-basis: 315px !important;
    gap: .55rem !important;
  }

  .brand-text-top {
    font-size: .98rem !important;
  }

  .brand-text-sub {
    font-size: .58rem !important;
  }

  .brand-coords,
  .coords,
  .coord-wrap,
  .nav-coords {
    flex-basis: 82px !important;
    max-width: 82px !important;
    font-size: .47rem !important;
  }

  .nav-links > li > a,
  .menu > li > a,
  .main-menu > li > a,
  .site-menu > li > a {
    font-size: .73rem !important;
    padding-left: .48rem !important;
    padding-right: .48rem !important;
  }
}

/* su schermi medi passa prima al menu mobile, così non si sovrappone */
@media (max-width: 1500px) {
  .nav-links,
  .menu,
  .main-menu,
  .site-menu {
    display: none !important;
  }

  .hamb,
  .hamburger,
  .mobile-menu-toggle,
  .menu-toggle,
  .nav-toggle,
  .burger {
    display: flex !important;
    align-items: center;
    justify-content: center;
  }

  .navbar-brand,
  .brand,
  .site-brand {
    max-width: calc(100vw - 110px) !important;
    flex: 1 1 auto !important;
  }
}

/* tablet */
@media (max-width: 900px) {
  .navbar-brand,
  .brand,
  .site-brand {
    min-width: 0 !important;
    max-width: calc(100vw - 88px) !important;
    gap: .5rem !important;
  }

  .brand-text-top {
    font-size: .84rem !important;
  }

  .brand-text-sub {
    font-size: .52rem !important;
  }

  .brand-coords,
  .coords,
  .coord-wrap,
  .nav-coords {
    max-width: 70px !important;
    font-size: .43rem !important;
  }
}

/* smartphone */
@media (max-width: 560px) {
  .navbar-brand,
  .brand,
  .site-brand {
    max-width: calc(100vw - 76px) !important;
  }

  .brand-coords,
  .coords,
  .coord-wrap,
  .nav-coords {
    display: none !important;
  }

  .brand-text-top {
    font-size: .76rem !important;
  }

  .brand-text-sub {
    font-size: .5rem !important;
  }
}


/* ============================================================
   NAVBAR PROGRAMMA / PAGINE SPECIALI ALIGN FIX v31
   Centra verticalmente le voci menu, incluse quelle su due righe.
   ============================================================ */

.nav-links > li > a,
.menu > li > a,
.main-menu > li > a,
.site-menu > li > a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 54px !important;
  text-align: center !important;
  line-height: 1.28 !important;
  white-space: normal !important;
}

.nav-links > li,
.menu > li,
.main-menu > li,
.site-menu > li {
  display: flex !important;
  align-items: center !important;
}

/* La voce PROGRAMMA / PAGINE SPECIALI resta compatta e centrata */
.nav-links > li > a[href*="programma"],
.nav-links > li > a[href*="pagine"],
.menu > li > a[href*="programma"],
.menu > li > a[href*="pagine"],
.main-menu > li > a[href*="programma"],
.main-menu > li > a[href*="pagine"],
.site-menu > li > a[href*="programma"],
.site-menu > li > a[href*="pagine"] {
  line-height: 1.22 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Forza il testo su due righe a stare al centro della cella */
.nav-links a br,
.menu a br,
.main-menu a br,
.site-menu a br {
  display: block;
  content: "";
}

/* Desktop: mantiene altezza barra coerente */
@media (min-width: 1501px) {
  .nav-links,
  .menu,
  .main-menu,
  .site-menu {
    align-items: stretch !important;
  }

  .nav-links > li,
  .menu > li,
  .main-menu > li,
  .site-menu > li {
    align-items: stretch !important;
  }

  .nav-links > li > a,
  .menu > li > a,
  .main-menu > li > a,
  .site-menu > li > a {
    height: 100% !important;
  }
}



/* ═════════════════════════════════════════════════════════════
   FIX RISOLUTIVO NAVBAR + TICKER DONATORI v46
   ═════════════════════════════════════════════════════════════ */
.navbar{
  display:grid !important;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:center;
  column-gap:1rem;
  height:72px;
  padding:0 18px;
}
.navbar-brand{
  min-width:0;
  gap:.65rem;
}
#nav-sextant{
  margin:0 !important;
}
.nav-links{
  min-width:0;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
  margin:0;
  padding:0;
  overflow:visible;
}
.nav-links li{
  display:flex;
  align-items:stretch;
  min-width:0;
}
.nav-links a{
  height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 clamp(.42rem,.55vw,.72rem);
  font-size:clamp(.49rem,.43vw,.59rem);
  letter-spacing:.08em;
  line-height:1.15;
  text-align:center;
}
.nav-links a.cta{
  height:48px;
  align-self:center;
  margin-left:.35rem;
  padding:0 .95rem;
}
.mob-menu{top:72px}
.hero{padding-top:72px}

@media (max-width:1650px){
  #nav-sextant{display:none !important}
  .navbar{grid-template-columns:auto minmax(0,1fr)}
  .nav-links a{padding:0 .48rem;font-size:.5rem}
}
@media (max-width:1320px){
  .nav-links .nav-optional{display:none}
  .brand-text-sub{display:none}
}
@media (max-width:1050px){
  .navbar{display:flex !important;height:66px;padding:0 1rem}
  .nav-links,#nav-sextant{display:none !important}
  .nav-ham{display:flex !important;margin-left:auto}
  .mob-menu{top:66px}
  .hero{padding-top:66px}
}

/* Ticker donatori */
.donor-ticker-bar{
  width:100%;
  display:flex;
  align-items:stretch;
  overflow:hidden;
}
.donor-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:18px;
  margin-left:7px;
  padding:0 5px;
  border-radius:10px;
  background:rgba(255,255,255,.14);
  font-family:var(--fm);
  font-size:.66rem;
  letter-spacing:0;
}
.donor-ticker-scroll{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
}
#ticker-donatori{
  animation:none !important;
  transform:none;
}
#ticker-donatori.is-static{
  width:100%;
  min-width:100%;
  display:grid;
  grid-template-columns:repeat(var(--donor-columns,1),minmax(0,1fr));
  align-items:stretch;
}
#ticker-donatori.is-static .donor-item{
  min-width:0;
  width:100%;
  justify-content:center;
  padding:0 .7rem;
  overflow:hidden;
  text-overflow:ellipsis;
}
#ticker-donatori.is-marquee{
  display:flex;
  width:max-content;
  min-width:100%;
  will-change:transform;
  animation:donorMarquee var(--donor-duration,30s) linear infinite !important;
}
#ticker-donatori.is-marquee:hover{
  animation-play-state:paused !important;
}
#ticker-donatori.is-marquee .donor-item{
  flex:0 0 auto;
}
@keyframes donorMarquee{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(var(--donor-distance,-50%),0,0)}
}

@media (max-width:767px){
  .donor-ticker-bar{height:46px}
  .donor-ticker-bar .ticker-tag{
    height:46px;
    padding:0 .72rem;
    font-size:.54rem;
  }
  #ticker-donatori,
  #ticker-donatori.is-static,
  #ticker-donatori.is-marquee{
    position:relative;
    display:block;
    width:100%;
    min-width:0;
    height:46px;
    animation:none !important;
    transform:none !important;
  }
  #ticker-donatori .donor-item{
    position:absolute;
    inset:0;
    width:100%;
    height:46px;
    display:flex !important;
    align-items:center;
    justify-content:center;
    padding:0 .7rem;
    border:0;
    opacity:0;
    visibility:hidden;
    transform:translateY(7px);
    transition:opacity .3s ease,transform .3s ease,visibility .3s;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #ticker-donatori .donor-item.is-active{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  #ticker-donatori .donor-item[aria-hidden="true"]{
    display:none !important;
  }
}


/* Barra superiore riallineata — revisione post evento 02/08/2026 */
.navbar{
  grid-template-columns:auto auto minmax(0,1fr);
  column-gap:.8rem;
}
.nav-links{
  justify-content:flex-end;
  align-items:center;
}
.nav-links > li{
  height:72px;
  align-items:center;
}
.nav-links > li > a{
  height:44px;
  min-height:44px;
  padding:0 clamp(.42rem,.48vw,.68rem);
  white-space:nowrap;
  border-radius:6px;
  line-height:1;
  font-size:clamp(.5rem,.44vw,.61rem);
}
.nav-links > li > a.cta{
  height:44px;
  margin-left:.4rem;
  padding:0 1rem;
}
@media (max-width:1500px){
  #nav-sextant{display:none !important}
  .navbar{grid-template-columns:auto minmax(0,1fr)}
  .nav-links > li > a{padding:0 .46rem;font-size:.52rem}
}
@media (max-width:1220px){
  .nav-links .nav-optional{display:none}
  .brand-text-sub{display:none}
}
@media (max-width:1050px){
  .navbar{display:flex !important}
  .nav-links{display:none !important}
}
