.df-nav{ --nv-bg:#000; --nv-text:#fff; --nv-muted:rgba(255,255,255,.62); --nv-accent:#e10916; --nv-card:#181818; --nv-line:rgba(255,255,255,.12); --nv-open:#7CF0A6; --nv-closed:#ff8f8a; --nv-icon:23px; --nv-radius:0px; --nv-gap:40px;
	box-sizing:border-box; width:100%; background:var(--nv-bg); color:var(--nv-text); font-family:inherit; }
.df-nav *{ box-sizing:border-box; }
.df-nav-inner{ display:flex; align-items:center; justify-content:center; gap:var(--nv-gap); flex-wrap:nowrap; padding:12px 20px; max-width:100%; }
.df-nav[data-align="between"] .df-nav-inner{ justify-content:space-between; }
.df-nav[data-align="evenly"] .df-nav-inner{ justify-content:space-evenly; }
.df-nav[data-align="start"] .df-nav-inner{ justify-content:flex-start; }
.df-nav--fixed-bottom{ position:fixed; left:0; right:0; bottom:0; z-index:9990; box-shadow:0 -6px 24px rgba(0,0,0,.35); }
.df-nav--fixed-top{ position:fixed; left:0; right:0; top:0; z-index:9990; box-shadow:0 6px 24px rgba(0,0,0,.35); }

.df-nav-logo{ display:inline-flex; align-items:center; margin-right:auto; }
.df-nav-logo img{ display:block; height:var(--nv-logo,38px); width:auto; }

.df-nav-item{ display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center; color:var(--nv-text); text-decoration:none; background:none; border:none; cursor:pointer; padding:4px 2px; font-family:inherit; line-height:1.1; -webkit-tap-highlight-color:transparent; transition:transform .4s cubic-bezier(.22,1,.36,1); }
.df-nav-ico{ position:relative; display:inline-flex; align-items:center; justify-content:center; font-size:var(--nv-icon); line-height:1; color:var(--nv-accent); transition:transform .4s cubic-bezier(.34,1.45,.5,1), color .25s ease; }
.df-nav-ico::before{ content:""; position:absolute; inset:-45%; border-radius:50%; background:radial-gradient(circle, var(--nv-accent) 0%, transparent 68%); opacity:0; filter:blur(7px); transform:scale(.55); transition:opacity .35s ease, transform .45s cubic-bezier(.34,1.45,.5,1); pointer-events:none; z-index:-1; }
.df-nav-ico svg{ width:1em; height:1em; fill:currentColor; }
.df-nav-label{ font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--nv-text); text-align:center; transition:color .25s ease, letter-spacing .35s cubic-bezier(.22,1,.36,1); }
.df-nav-item:hover .df-nav-ico{ transform:translateY(-3px) scale(1.12); }
.df-nav-item:hover .df-nav-ico::before{ opacity:.34; transform:scale(1); }
.df-nav-item:hover .df-nav-label{ letter-spacing:1.5px; }
.df-nav-item:active{ transform:scale(.92); }
.df-nav-item:active .df-nav-ico{ transition-duration:.12s; }

/* Bottom-sheet selettore sede (dentro il wrapper → stilizzabile da Elementor) */
.df-nav-sheet[hidden]{ display:none; }
.df-nav-sheet{ position:fixed; inset:0; z-index:10000; display:flex; align-items:flex-end; justify-content:center; }
.df-nav-sheet-scrim{ position:absolute; inset:0; background:rgba(0,0,0,.62); opacity:0; -webkit-backdrop-filter:blur(0px); backdrop-filter:blur(0px); transition:opacity .4s ease, backdrop-filter .4s ease, -webkit-backdrop-filter .4s ease; }
.df-nav-sheet.is-open .df-nav-sheet-scrim{ opacity:1; -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); }
.df-nav-sheet-box{ position:relative; width:100%; max-width:100%; background:var(--nv-sheet-bg,var(--nv-bg)); color:var(--nv-text); padding:16px 20px 26px; box-shadow:0 -14px 50px rgba(0,0,0,.55); transform:translateY(101%); transition:transform .46s cubic-bezier(.16,1,.3,1); will-change:transform; }
.df-nav-sheet.is-open .df-nav-sheet-box{ transform:none; }
@keyframes dfNavCardIn{ from{ opacity:0; transform:translateY(18px) scale(.98); } to{ opacity:1; transform:none; } }
@keyframes dfNavFade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.df-nav-sheet.is-open .df-nav-sheet-close{ animation:dfNavFade .5s ease .06s both; }
.df-nav-sheet.is-open .df-nav-sheet-title{ animation:dfNavFade .5s ease .12s both; }
.df-nav-sheet-close{ display:flex; align-items:center; justify-content:center; gap:7px; margin:0 auto 8px; background:none; border:none; color:var(--nv-text); font:inherit; font-size:13px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; text-align:center; cursor:pointer; padding:6px 10px 12px; -webkit-tap-highlight-color:transparent; }
.df-nav-sheet-close .df-nav-chev{ font-size:14px; line-height:1; }
.df-nav-sheet-title{ font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--nv-muted); text-align:center; margin:0 0 14px; }
.df-nav-sheet-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.df-nav-sede{ display:flex; flex-direction:column; align-items:center; gap:7px; padding:16px 12px; background:var(--nv-card); border:1px solid var(--nv-line); border-bottom:2px solid var(--nv-line); border-radius:var(--nv-radius); text-decoration:none; color:var(--nv-text); text-align:center; transition:border-color .25s ease, transform .35s cubic-bezier(.22,1,.36,1), background .25s ease, box-shadow .35s ease; animation:dfNavCardIn .55s cubic-bezier(.16,1,.3,1) backwards; }
.df-nav-sede:hover{ border-bottom-color:var(--nv-accent); transform:translateY(-4px); box-shadow:0 16px 34px -14px rgba(0,0,0,.6); }
.df-nav-sede-st{ transition:color .25s ease, border-color .25s ease; }
.df-nav-sede-n{ font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; }
.df-nav-sede-st{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:2px 9px; border-radius:20px; border:1px solid currentColor; background:transparent; }
.df-nav-sede-st.is-open{ color:var(--nv-open); }
.df-nav-sede-st.is-closed{ color:var(--nv-closed); }

/* ===== Reset stati tema: NIENTE fucsia su hover/focus/active/visited/selected ===== */
.df-nav a,.df-nav button{ -webkit-tap-highlight-color:transparent; }
.df-nav ::selection{ background:rgba(225,9,22,.28); color:#fff; }
.df-nav-item:link,.df-nav-item:visited,.df-nav-item:hover,.df-nav-item:focus,.df-nav-item:active{ color:var(--nv-text) !important; background:transparent !important; outline:none !important; box-shadow:none !important; text-decoration:none !important; }
.df-nav-item:hover .df-nav-label,.df-nav-item:focus .df-nav-label{ color:var(--nv-hover,var(--nv-accent)) !important; }
.df-nav-item:hover .df-nav-ico,.df-nav-item:focus .df-nav-ico{ color:var(--nv-accent) !important; }
.df-nav-sede:link,.df-nav-sede:visited,.df-nav-sede:hover,.df-nav-sede:focus,.df-nav-sede:active{ color:var(--nv-text) !important; outline:none !important; box-shadow:none !important; text-decoration:none !important; }
.df-nav-sede:hover{ border-bottom-color:var(--nv-accent) !important; }
.df-nav-sheet-close:link,.df-nav-sheet-close:visited{ color:var(--nv-text) !important; }
.df-nav-sheet-close:hover,.df-nav-sheet-close:focus,.df-nav-sheet-close:active{ color:var(--nv-accent) !important; background:transparent !important; outline:none !important; box-shadow:none !important; }
.df-nav :focus-visible{ outline:2px solid var(--nv-accent); outline-offset:2px; }
.df-nav button:focus:not(:focus-visible){ outline:none !important; }

/* Pagina evento: una o due CTA vere al posto delle icone (colore = accento della barra) */
/* barra stretta attorno al bottone: vince sullo "Spazio interno barra" del widget, pensato per le icone */
.df-nav--evento .df-nav-inner{ gap:10px; padding:6px 12px !important; }
.df-nav--evento .df-nav-item.df-nav-item{ flex-direction:row; gap:8px; flex:0 1 280px; min-height:40px; padding:8px 20px; background:var(--nv-accent) !important; color:var(--nv-ev-text,#fff) !important; border-radius:var(--nv-radius); }
.df-nav--evento .df-nav-item.df-nav-item .df-nav-ico,
.df-nav--evento .df-nav-item.df-nav-item .df-nav-label{ color:var(--nv-ev-text,#fff) !important; }
.df-nav--evento .df-nav-item .df-nav-ico{ font-size:calc(var(--nv-icon) * .8); }
.df-nav--evento .df-nav-item .df-nav-ico::before{ display:none; }
/* misura da bottone: vince sulla tipografia "Etichette voci" del widget, pensata per le icone piccole */
.df-nav--evento .df-nav-item .df-nav-label{ font-size:14px !important; letter-spacing:1.4px !important; }
.df-nav--evento .df-nav-item.df-nav-item:hover{ filter:brightness(1.08); }
.df-nav--evento .df-nav-item:hover .df-nav-ico{ transform:none; }

@media(max-width:768px){
	.df-nav--evento .df-nav-inner{ padding:6px 10px !important; }
	.df-nav--evento .df-nav-item.df-nav-item{ flex:1 1 0; padding:8px 12px; }
	.df-nav{ --nv-gap:22px; --nv-icon:19px; }
	.df-nav-inner{ padding:9px 12px; }
	.df-nav-label{ font-size:10.5px; letter-spacing:.6px; }
	.df-nav-sheet-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (prefers-reduced-motion:reduce){
	.df-nav-sheet-box,.df-nav-sheet-scrim,.df-nav-item,.df-nav-ico,.df-nav-label,.df-nav-sede,.df-nav-sede-st{ transition:none !important; animation:none !important; }
	.df-nav-sheet.is-open .df-nav-sheet-close,.df-nav-sheet.is-open .df-nav-sheet-title{ animation:none !important; }
	.df-nav-ico::before{ display:none; }
}