/* =====================
   UTILITY ANIMATIONS
   (fadeIn, pulse, float, glow)
   ===================== */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); }
}
@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}
@keyframes glow {
  0% { box-shadow: 0 0 5px rgba(255, 140, 0, 0.5); }
  50% { box-shadow: 0 0 20px rgba(255, 140, 0, 0.8); }
  100% { box-shadow: 0 0 5px rgba(255, 140, 0, 0.5); }
}
.fade-in { animation: fadeIn 1s ease-out; }
.pulse { animation: pulse 5s infinite; }
.float { animation: float 6s ease-in-out infinite; }
.glow { animation: glow 2s infinite; }

/* =====================
   BAGLIORE DI SFONDO
   ===================== */
.bg-bagliore {
  background-image: 
    radial-gradient(circle at 20% 30%, rgba(255, 140, 0, 0.15) 0%, transparent 30%),
    radial-gradient(circle at 80% 70%, rgba(255, 140, 0, 0.1) 0%, transparent 40%);
}
@keyframes bgGlowMove { /* ...già presente... */ }
@keyframes bgGlowPulse { /* ...già presente... */ }
.bg-bagliore-animata {
  animation: bgGlowMove 12s ease-in-out infinite, bgGlowPulse 4s ease-in-out infinite;
}
.bg-bagliore-animata-pulse {
  animation: bgGlowMove 12s ease-in-out infinite, bgGlowPulse 2.5s ease-in-out infinite;
}

/* =====================
   NAVBAR PARTICELLE
   ===================== */
@keyframes navParticle1 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-8px)translateX(5px)scale(1.3);opacity:1;} }
@keyframes navParticle2 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}33%{transform:translateY(-6px)translateX(-3px)scale(1.2);opacity:.8;}66%{transform:translateY(-12px)translateX(4px)scale(1.4);opacity:.6;} }
@keyframes navParticle3 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}50%{transform:translateY(-10px)translateX(6px)scale(1.3);opacity:1;} }
@keyframes navParticle4 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-5px)translateX(-2px)scale(1.1);opacity:.9;}50%{transform:translateY(-9px)translateX(3px)scale(1.2);opacity:.7;}75%{transform:translateY(-4px)translateX(-4px)scale(1.05);opacity:.8;} }
@keyframes navParticle5 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-7px)translateX(-5px)scale(1.2);opacity:1;} }
@keyframes navParticle6 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-11px)translateX(7px)scale(1.4);opacity:.9;} }
@keyframes navParticle7 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-8px)translateX(-4px)scale(1.3);opacity:.8;} }
@keyframes navParticle8 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}33%{transform:translateY(-6px)translateX(3px)scale(1.2);opacity:1;}66%{transform:translateY(-9px)translateX(-2px)scale(1.1);opacity:.7;} }
@keyframes navParticle9 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.4;}50%{transform:translateY(-12px)translateX(8px)scale(1.5);opacity:.7;} }
@keyframes navParticle10 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.9;}50%{transform:translateY(-5px)translateX(-6px)scale(1.2);opacity:1;} }
@keyframes navParticle11 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-7px)translateX(2px)scale(1.3);opacity:.9;}50%{transform:translateY(-13px)translateX(-3px)scale(1.4);opacity:.5;}75%{transform:translateY(-3px)translateX(5px)scale(1.1);opacity:.8;} }
@keyframes navParticle12 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-9px)translateX(4px)scale(1.3);opacity:1;} }
@keyframes navParticle13 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-14px)translateX(7px)scale(1.2);opacity:.9;} }
@keyframes navParticle14 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}33%{transform:translateY(-10px)translateX(-6px)scale(1.3);opacity:1;}66%{transform:translateY(-16px)translateX(8px)scale(1.5);opacity:.8;} }
@keyframes navParticle15 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-12px)translateX(10px)scale(1.4);opacity:.7;} }
@keyframes navParticle16 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}25%{transform:translateY(-8px)translateX(-5px)scale(1.1);opacity:1;}75%{transform:translateY(-15px)translateX(6px)scale(1.3);opacity:.6;} }
@keyframes navParticle17 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-15px)translateX(9px)scale(1.3);opacity:1;} }
@keyframes navParticle18 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}33%{transform:translateY(-11px)translateX(-7px)scale(1.2);opacity:.8;}66%{transform:translateY(-17px)translateX(5px)scale(1.4);opacity:.6;} }
@keyframes navParticle19 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}50%{transform:translateY(-13px)translateX(8px)scale(1.3);opacity:1;} }
@keyframes navParticle20 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-6px)translateX(-3px)scale(1.1);opacity:.9;}50%{transform:translateY(-10px)translateX(4px)scale(1.2);opacity:.7;}75%{transform:translateY(-5px)translateX(-5px)scale(1.05);opacity:.8;} }
@keyframes navParticle21 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-9px)translateX(-7px)scale(1.2);opacity:1;} }
@keyframes navParticle22 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-12px)translateX(9px)scale(1.4);opacity:.9;} }
@keyframes navParticle23 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-10px)translateX(-8px)scale(1.3);opacity:.8;} }
@keyframes navParticle24 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}33%{transform:translateY(-7px)translateX(4px)scale(1.2);opacity:1;}66%{transform:translateY(-11px)translateX(-3px)scale(1.1);opacity:.7;} }

/* =====================
   MOBILE PARTICELLE
   ===================== */
@keyframes mobileParticle1 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-8px)translateX(5px)scale(1.3);opacity:1;} }
@keyframes mobileParticle2 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}33%{transform:translateY(-6px)translateX(-3px)scale(1.2);opacity:.8;}66%{transform:translateY(-12px)translateX(4px)scale(1.4);opacity:.6;} }
@keyframes mobileParticle3 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}50%{transform:translateY(-10px)translateX(6px)scale(1.3);opacity:1;} }
@keyframes mobileParticle4 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-5px)translateX(-2px)scale(1.1);opacity:.9;}50%{transform:translateY(-9px)translateX(3px)scale(1.2);opacity:.7;}75%{transform:translateY(-4px)translateX(-4px)scale(1.05);opacity:.8;} }
@keyframes mobileParticle5 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-7px)translateX(-5px)scale(1.2);opacity:1;} }
@keyframes mobileParticle6 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-11px)translateX(7px)scale(1.4);opacity:.9;} }
@keyframes mobileParticle7 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-8px)translateX(-4px)scale(1.3);opacity:.8;} }
@keyframes mobileParticle8 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}33%{transform:translateY(-6px)translateX(3px)scale(1.2);opacity:1;}66%{transform:translateY(-9px)translateX(-2px)scale(1.1);opacity:.7;} }
@keyframes mobileParticle9 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-13px)translateX(7px)scale(1.2);opacity:.9;} }
@keyframes mobileParticle10 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}33%{transform:translateY(-9px)translateX(-5px)scale(1.3);opacity:1;}66%{transform:translateY(-15px)translateX(6px)scale(1.5);opacity:.8;} }
@keyframes mobileParticle11 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-11px)translateX(9px)scale(1.4);opacity:.7;} }
@keyframes mobileParticle12 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}25%{transform:translateY(-7px)translateX(-4px)scale(1.1);opacity:1;}75%{transform:translateY(-14px)translateX(5px)scale(1.3);opacity:.6;} }
@keyframes mobileParticle13 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-15px)translateX(8px)scale(1.2);opacity:.9;} }
@keyframes mobileParticle14 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}33%{transform:translateY(-11px)translateX(-7px)scale(1.3);opacity:1;}66%{transform:translateY(-17px)translateX(9px)scale(1.5);opacity:.8;} }
@keyframes mobileParticle15 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-13px)translateX(11px)scale(1.4);opacity:.7;} }
@keyframes mobileParticle16 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}25%{transform:translateY(-9px)translateX(-6px)scale(1.1);opacity:1;}75%{transform:translateY(-16px)translateX(7px)scale(1.3);opacity:.6;} }
@keyframes mobileParticle17 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-16px)translateX(10px)scale(1.3);opacity:1;} }
@keyframes mobileParticle18 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}33%{transform:translateY(-12px)translateX(-8px)scale(1.2);opacity:.8;}66%{transform:translateY(-18px)translateX(6px)scale(1.4);opacity:.6;} }
@keyframes mobileParticle19 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}50%{transform:translateY(-14px)translateX(11px)scale(1.3);opacity:1;} }
@keyframes mobileParticle20 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-8px)translateX(-4px)scale(1.1);opacity:.9;}50%{transform:translateY(-12px)translateX(5px)scale(1.2);opacity:.7;}75%{transform:translateY(-6px)translateX(-6px)scale(1.05);opacity:.8;} }
@keyframes mobileParticle21 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-10px)translateX(-8px)scale(1.2);opacity:1;} }
@keyframes mobileParticle22 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-14px)translateX(12px)scale(1.4);opacity:.9;} }
@keyframes mobileParticle23 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-12px)translateX(-10px)scale(1.3);opacity:.8;} }
@keyframes mobileParticle24 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}33%{transform:translateY(-8px)translateX(5px)scale(1.2);opacity:1;}66%{transform:translateY(-12px)translateX(-4px)scale(1.1);opacity:.7;} }

/* =====================
   FOOTER PARTICELLE
   ===================== */
@keyframes particle1 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}25%{transform:translateY(-15px)translateX(10px)scale(1.3);opacity:1;}50%{transform:translateY(-25px)translateX(-5px)scale(1.6);opacity:.8;}75%{transform:translateY(-10px)translateX(15px)scale(1.2);opacity:.9;} }
@keyframes particle2 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}33%{transform:translateY(-20px)translateX(-10px)scale(1.4);opacity:.8;}66%{transform:translateY(-30px)translateX(20px)scale(1.8);opacity:.6;} }
@keyframes particle3 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}50%{transform:translateY(-18px)translateX(12px)scale(1.5);opacity:1;} }
@keyframes particle4 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-12px)translateX(-8px)scale(1.2);opacity:.9;}50%{transform:translateY(-22px)translateX(6px)scale(1.4);opacity:.7;}75%{transform:translateY(-8px)translateX(-12px)scale(1.1);opacity:.8;} }
@keyframes particle5 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-16px)translateX(-10px)scale(1.3);opacity:1;} }
@keyframes particle6 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}33%{transform:translateY(-14px)translateX(8px)scale(1.3);opacity:.9;}66%{transform:translateY(-24px)translateX(-6px)scale(1.6);opacity:.7;} }
@keyframes particle7 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-19px)translateX(11px)scale(1.4);opacity:.8;} }
@keyframes particle8 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}25%{transform:translateY(-11px)translateX(-7px)scale(1.2);opacity:1;}50%{transform:translateY(-21px)translateX(9px)scale(1.5);opacity:.9;}75%{transform:translateY(-7px)translateX(-9px)scale(1.1);opacity:.8;} }
@keyframes particle9 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.4;}33%{transform:translateY(-17px)translateX(-9px)scale(1.3);opacity:.7;}66%{transform:translateY(-27px)translateX(13px)scale(1.7);opacity:.5;} }
@keyframes particle10 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.9;}50%{transform:translateY(-13px)translateX(8px)scale(1.2);opacity:1;} }
@keyframes particle11 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-20px)translateX(-12px)scale(1.4);opacity:.9;}50%{transform:translateY(-30px)translateX(10px)scale(1.8);opacity:.7;}75%{transform:translateY(-15px)translateX(-8px)scale(1.3);opacity:.8;} }
@keyframes particle12 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}33%{transform:translateY(-16px)translateX(9px)scale(1.3);opacity:1;}66%{transform:translateY(-26px)translateX(-7px)scale(1.6);opacity:.8;} }
@keyframes particle13 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-22px)translateX(14px)scale(1.3);opacity:.9;} }
@keyframes particle14 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}33%{transform:translateY(-18px)translateX(-12px)scale(1.4);opacity:1;}66%{transform:translateY(-28px)translateX(16px)scale(1.7);opacity:.8;} }
@keyframes particle15 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-24px)translateX(20px)scale(1.5);opacity:.7;} }
@keyframes particle16 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}25%{transform:translateY(-16px)translateX(-10px)scale(1.2);opacity:1;}75%{transform:translateY(-30px)translateX(12px)scale(1.4);opacity:.6;} }
@keyframes particle17 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-25px)translateX(15px)scale(1.3);opacity:1;} }
@keyframes particle18 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}33%{transform:translateY(-21px)translateX(-13px)scale(1.2);opacity:.8;}66%{transform:translateY(-31px)translateX(7px)scale(1.4);opacity:.6;} }
@keyframes particle19 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}50%{transform:translateY(-23px)translateX(16px)scale(1.3);opacity:1;} }
@keyframes particle20 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}25%{transform:translateY(-10px)translateX(-5px)scale(1.1);opacity:.9;}50%{transform:translateY(-18px)translateX(8px)scale(1.2);opacity:.7;}75%{transform:translateY(-9px)translateX(-7px)scale(1.05);opacity:.8;} }
@keyframes particle21 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.7;}50%{transform:translateY(-17px)translateX(-13px)scale(1.2);opacity:1;} }
@keyframes particle22 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.6;}50%{transform:translateY(-22px)translateX(17px)scale(1.4);opacity:.9;} }
@keyframes particle23 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.5;}50%{transform:translateY(-20px)translateX(-15px)scale(1.3);opacity:.8;} }
@keyframes particle24 { 0%,100%{transform:translateY(0)translateX(0)scale(1);opacity:.8;}33%{transform:translateY(-12px)translateX(6px)scale(1.2);opacity:1;}66%{transform:translateY(-18px)translateX(-5px)scale(1.1);opacity:.7;} }

@keyframes footerGlow { 0%, 100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } }
@keyframes borderGlow { 0%, 100% { opacity: 0.5; box-shadow: 0 0 10px rgba(255, 140, 0, 0.2); } 50% { opacity: 1; box-shadow: 0 0 20px rgba(255, 140, 0, 0.4); } }
@keyframes footerFadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* --- LIGHTGALLERY CUSTOM --- */
.lg-next, .lg-prev {
  background: rgba(30,30,30,0.85) !important;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 12px #0008;
  color: #FF8C00 !important;
  font-size: 2.2rem !important;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.lg-next:hover, .lg-prev:hover {
  background: #FF8C00 !important;
  color: #fff !important;
  transform: scale(1.12);
}
.lg-next:after, .lg-prev:after {
  filter: drop-shadow(0 0 6px #FF8C00);
}

.lg-current, .lg-img-wrap, .lg-object, .lg-item.lg-complete {
  animation: lg-fadein-img 0.55s cubic-bezier(.4,0,.2,1);
}
@keyframes lg-fadein-img {
  from { opacity: 0; transform: scale(0.97); }
  to   { opacity: 1; transform: scale(1); }
} 