/* gala-custom.css — utilities mancanti dopo la conversione Tailwind → Bootstrap */

html { scroll-behavior: smooth; }
html, body{
  font-family: var(--gala-font-main);
}
a {
  color: inherit;
  text-decoration: none;
  transition: color .25s ease;
}
a:hover {
  color: hsl(var(--gala-fluo));
}
a.bg-gala-fluo:hover {
  background-color: hsl(var(--gala-fluo) / .7);
  color: hsl(var(--gala-white));
}

button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]) {
    background-color: transparent;
    background-image: none
}
button,input,optgroup,select,textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
    padding: 0
}
button,select {
    text-transform: none;
    border: 0;
}


/* ===== Hamburger (pulsante menù mobile) ===== */
.hamburger-box{
  position:relative;
  display:inline-block;
  width:40px;
  height:24px;
}
.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after{
  box-sizing: border-box;
  left: 0;
  display: block;
  width:40px;
  height:4px;
  border-radius:4px;
  background-color: hsl(var(--gala-fluo));
}
.hamburger-inner{
  position:absolute;
  top:50%;
  transform: translate3d(0,-50%,0); /* <-- centratura “vera”, no margin-top */
  transition-property: transform;
  transition-duration:.22s;
  transition-timing-function:cubic-bezier(.55,.055,.675,.19);
}
.hamburger-inner::before,
.hamburger-inner::after{
  content:"";
  position:absolute;
  transition-property: transform, top, bottom, opacity;
  transition-duration:.15s;
  transition-timing-function:ease;
}
.hamburger-inner::before{ top:-10px; }
.hamburger-inner::after{ bottom:-10px; }
/* Stato attivo = X */
.hamburger.active .hamburger-inner{
  transform: translate3d(0,-50%,0) rotate(225deg); /* <-- mantiene la centratura anche ruotando */
  transition-delay:.12s;
  transition-timing-function:cubic-bezier(.215,.61,.355,1);
}
.hamburger.active .hamburger-inner::before{
  top:0;
  opacity:0;
  transition: top .1s ease-in .25s, opacity .1s ease-in;
}
.hamburger.active .hamburger-inner::after{
  bottom:0;
  transform: rotate(-90deg);
  transition: bottom .1s ease-out, transform .25s cubic-bezier(.215,.61,.355,1) .12s;
}

/* ===== Mobile menù GALA ===== */
/* Menù Desktop */
#mainNav a.group > span { width: 0; }
#mainNav a.group:hover > span { width: 100%; }
/* Blocca scroll quando menu mobile aperto */
.body-lock {
  overflow: hidden;
  height: 100vh;
}


/* ===== Scrollbar stile GALA ===== */
/* =========================
   Scrollbar stile GALA (match versione Tailwind)
========================= */
/* Scrollbar (come index-9YN3GZ5M.css) */
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:hsl(var(--gala-black))}
::-webkit-scrollbar-thumb{background:hsl(var(--gala-gray));border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:hsl(var(--gala-fluo))}
/* Tentativo rimozione frecce (dipende da browser/OS) */
::-webkit-scrollbar-button{display:none;width:0;height:0}


/* ===== FONT WEIGHTS (Tailwind compatibility) ===== */
.font-thin { font-weight:100; }
.font-extralight { font-weight:200; }
.font-light { font-weight:300; }

.font-normal { font-weight:400; }
.font-medium { font-weight:500; }
.font-semibold { font-weight:600; }

.font-bold { font-weight:700; }
.font-extrabold { font-weight:800; }
.font-black { font-weight:900; }

/* ===== GALA Container Bootstrap Override ===== */
/* XL */
@media (min-width:1200px){
  .container-xl{
    max-width:1150px;
  }
}

/* XXL */
@media (min-width:1400px){
  .container-xl{
    max-width:1400px;
  }
}

*,*::before,*::after{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0deg;--tw-scale-x:1;--tw-scale-y:1;--tw-blur: ;--tw-contrast: ;--tw-grayscale: ;--tw-backdrop-blur: ;--tw-gradient-from: ;--tw-gradient-to: ;--tw-gradient-stops: ;}

:where([class*="translate-"],[class*="rotate-"],[class*="scale-"]){transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));}
:where([class*="blur-"],[class*="contrast-"],.grayscale){filter:var(--tw-blur) var(--tw-contrast) var(--tw-grayscale);}
:where([class*="backdrop-blur-"]){-webkit-backdrop-filter:var(--tw-backdrop-blur);backdrop-filter:var(--tw-backdrop-blur);}

.bg-gala-black{background-color:hsl(var(--gala-black));}
.bg-gala-dark{background-color:hsl(var(--gala-dark));}
.bg-gala-fluo{background-color:hsl(var(--gala-fluo));}
.bg-gala-white{background-color:hsl(var(--gala-white));}
.text-gala-black{color:hsl(var(--gala-black));}
.text-gala-fluo{color:hsl(var(--gala-fluo));}
.bg-gala-black\/50{background-color:hsl(var(--gala-black) / 0.5);}
.bg-gala-black\/95{background-color:hsl(var(--gala-black) / 0.95);}
.bg-gala-dark\/50{background-color:hsl(var(--gala-dark) / 0.5);}
.bg-gala-fluo\/5{background-color:hsl(var(--gala-fluo) / 0.05);}
.bg-gala-fluo\/10{background-color:hsl(var(--gala-fluo) / 0.10);}
.bg-gala-fluo\/15{background-color:hsl(var(--gala-fluo) / 0.15);}
.bg-gala-fluo\/20{background-color:hsl(var(--gala-fluo) / 0.20);}
.bg-white\/5{background-color:rgb(255 255 255 / 0.05);}
.text-black\/80{color:rgb(0 0 0 / 0.80);}
.text-white\/40{color:rgb(255 255 255 / 0.40);}
.text-white\/50{color:rgb(255 255 255 / 0.50);}
.text-white\/60{color:rgb(255 255 255 / 0.60);}
.text-white\/70{color:rgb(255 255 255 / 0.70);}
.text-white\/80{color:rgb(255 255 255 / 0.80);}
.text-gala-fluo\/\[0\.03\]{color:hsl(var(--gala-fluo) / 0.03);}
.opacity-\[0\.03\]{opacity:0.03;}
.bg-transparent{background-color:transparent;}
.bg-span{background-color:hsl(var(--gala-black)); padding: 0 0.2em;}

.border{border-width:1px;border-style:solid;}
.border-2{border-width:2px;border-style:solid;}
.border-l-2{border-left-width:2px;border-left-style:solid;}
.border-t{border-top-width:1px;border-top-style:solid;}
.border-white\/10{border-color:rgb(255 255 255 / 0.10);}
.border-white\/20{border-color:rgb(255 255 255 / 0.20);}
.border-gala-fluo\/30{border-color:hsl(var(--gala-fluo) / 0.30);}
.border-gala-fluo\/50{border-color:hsl(var(--gala-fluo) / 0.50);}

/* =====================================================
   POSITION UTILITIES – Scala coerente (0.25rem step)
   ===================================================== */

/* ===== INSET ===== */
.inset-0{ inset:0; }

/* ===== ZERO ===== */
.top-0{ top:0; }
.right-0{ right:0; }
.bottom-0{ bottom:0; }
.left-0{ left:0; }

/* ===== FRACTIONS ===== */
.top-1\/2{ top:50%; }
.left-1\/2{ left:50%; }
.top-1\/4{ top:25%; }
.left-1\/4{ left:25%; }
.right-1\/4{ right:25%; }
.bottom-1\/4{ bottom:25%; }

/* =====================================================
   POSITIVE SCALE (1 → 8)
   1 = 0.25rem
   2 = 0.5rem
   3 = 0.75rem
   4 = 1rem
   5 = 1.25rem
   6 = 1.5rem
   7 = 1.75rem
   8 = 2rem
   ===================================================== */

/* TOP */
.top-1{ top:.25rem; }
.top-2{ top:.5rem; }
.top-3{ top:.75rem; }
.top-4{ top:1rem; }
.top-5{ top:1.25rem; }
.top-6{ top:1.5rem; }
.top-7{ top:1.75rem; }
.top-8{ top:2rem; }

/* RIGHT */
.right-1{ right:.25rem; }
.right-2{ right:.5rem; }
.right-3{ right:.75rem; }
.right-4{ right:1rem; }
.right-5{ right:1.25rem; }
.right-6{ right:1.5rem; }
.right-7{ right:1.75rem; }
.right-8{ right:2rem; }

/* BOTTOM */
.bottom-1{ bottom:.25rem; }
.bottom-2{ bottom:.5rem; }
.bottom-3{ bottom:.75rem; }
.bottom-4{ bottom:1rem; }
.bottom-5{ bottom:1.25rem; }
.bottom-6{ bottom:1.5rem; }
.bottom-7{ bottom:1.75rem; }
.bottom-8{ bottom:2rem; }

/* LEFT */
.left-1{ left:.25rem; }
.left-2{ left:.5rem; }
.left-3{ left:.75rem; }
.left-4{ left:1rem; }
.left-5{ left:1.25rem; }
.left-6{ left:1.5rem; }
.left-7{ left:1.75rem; }
.left-8{ left:2rem; }

/* =====================================================
   NEGATIVE SCALE (-1 → -8)
   ===================================================== */

/* TOP */
.-top-1{ top:-.25rem; }
.-top-2{ top:-.5rem; }
.-top-3{ top:-.75rem; }
.-top-4{ top:-1rem; }
.-top-5{ top:-1.25rem; }
.-top-6{ top:-1.5rem; }
.-top-7{ top:-1.75rem; }
.-top-8{ top:-2rem; }

/* RIGHT */
.-right-1{ right:-.25rem; }
.-right-2{ right:-.5rem; }
.-right-3{ right:-.75rem; }
.-right-4{ right:-1rem; }
.-right-5{ right:-1.25rem; }
.-right-6{ right:-1.5rem; }
.-right-7{ right:-1.75rem; }
.-right-8{ right:-2rem; }

/* BOTTOM */
.-bottom-1{ bottom:-.25rem; }
.-bottom-2{ bottom:-.5rem; }
.-bottom-3{ bottom:-.75rem; }
.-bottom-4{ bottom:-1rem; }
.-bottom-5{ bottom:-1.25rem; }
.-bottom-6{ bottom:-1.5rem; }
.-bottom-7{ bottom:-1.75rem; }
.-bottom-8{ bottom:-2rem; }

/* LEFT */
.-left-1{ left:-.25rem; }
.-left-2{ left:-.5rem; }
.-left-3{ left:-.75rem; }
.-left-4{ left:-1rem; }
.-left-5{ left:-1.25rem; }
.-left-6{ left:-1.5rem; }
.-left-7{ left:-1.75rem; }
.-left-8{ left:-2rem; }


.w-0{width:0;}
.w-1\/2{width:50%;}
.w-auto{width:auto;}
.h-auto{height:auto;}
.h-0\.5{height:0.125rem;}
.w-4{width:1rem;}
.h-4{height:1rem;}
.w-5{width:1.25rem;}
.h-5{height:1.25rem;}
.w-6{width:1.5rem;}
.h-6{height:1.5rem;}
.w-10{width:2.5rem;}
.h-10{height:2.5rem;}
.w-12{width:3rem;}
.h-12{height:3rem;}
.w-16{width:4rem;}
.h-16{height:4rem;}
.w-20{width:5rem;}
.h-20{height:5rem;}
.w-24{width:6rem;}
.h-24{height:6rem;}
.w-64{width:16rem;}
.h-64{height:16rem;}
.w-80{width:20rem;}
.h-80{height:20rem;}
.w-96{width:24rem;}
.h-96{height:24rem;}
.w-100{width:100%;}
.h-100{height:100%;}
.w-\[600px\]{width:600px;}
.h-\[300px\]{height:300px;}
.min-h-\[120px\]{min-height:120px;}
.max-w-md{max-width:28rem;}
.max-w-xl{max-width:36rem;}
.max-w-2xl{max-width:42rem;}
.max-w-4xl{max-width:56rem;}

.z-40 { z-index: 1040; }  /* sopra contenuti */
.z-50 { z-index: 1050; }  /* sopra overlay/hero */

.visible{visibility: visible;}
.invisible{visibility:hidden;}
.opacity-0{opacity:0;}
.opacity-30{opacity:0.30;}
.opacity-100 {opacity: 1;}

.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}

.gap-2{gap:0.5rem;}
.gap-3{gap:0.75rem;}
.gap-4{gap:1rem;}
.gap-5{gap:1.25rem;}
.gap-8{gap:2rem;}
.gap-10{gap:2.5rem;}
.gap-12{gap:3rem;}
.gap-16{gap:4rem;}
.gap-20{gap:5rem;}

.space-y-2>:not([hidden])~:not([hidden]){margin-top:0.5rem;}
.space-y-3>:not([hidden])~:not([hidden]){margin-top:0.75rem;}
.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem;}
.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem;}
.space-y-8>:not([hidden])~:not([hidden]){margin-top:2rem;}

.text-xs{font-size:0.75rem;line-height:1rem;}
.text-sm{font-size:0.875rem;line-height:1.25rem;}
.text-base{font-size:1rem;line-height:1.5rem;}
.text-lg{font-size:1.125rem;line-height:1.75rem;}
.text-xl{font-size:1.25rem;line-height:1.75rem;}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.text-3xl{font-size:1.875rem;line-height:2.25rem;}
.text-4xl{font-size:2.25rem;line-height:2.5rem;}
.text-\[150px\]{font-size:150px;}
.leading-none{line-height:1;}
.leading-tight{line-height:1.25;}
.leading-relaxed{line-height:1.625;}
.leading-\[1\.1\]{line-height:1.1;}
.tracking-tight{letter-spacing:-0.025em;}
.tracking-wide{letter-spacing:0.025em;}
.tracking-wider{letter-spacing:0.05em;}
.tracking-\[0\.3em\]{letter-spacing:0.3em;}

.blur-xl{--tw-blur:blur(24px);}
.blur-2xl{--tw-blur:blur(40px);}
.blur-3xl{--tw-blur:blur(64px);}

.contrast-110{--tw-contrast:contrast(1.10);}
.grayscale{--tw-grayscale:grayscale(1);}
.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);}
.backdrop-blur-lg{--tw-backdrop-blur:blur(16px);}

.-translate-x-1\/2{--tw-translate-x:-50%;}
.-translate-y-1\/2{--tw-translate-y:-50%;}
.rotate-45{--tw-rotate:45deg;}
.scale-90{--tw-scale-x:0.9;--tw-scale-y:0.9;}

.cursor-pointer{cursor:pointer;}
.pointer-events-none{pointer-events:none;}
.select-none{user-select:none;}
.object-cover{object-fit:cover;}
.transition-all{transition:all .2s ease-in-out;}
.transition-colors{transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,fill .2s ease-in-out,stroke .2s ease-in-out;}
.transition-transform{transition:transform .2s ease-in-out;}
.duration-300{transition-duration:300ms;}
.duration-500{transition-duration:500ms;}
.uppercase{text-transform:uppercase;}
.w-100{width:100%;}
.h-100{height:100%;}

.shadow-fluo{box-shadow:0 0 0 1px hsl(var(--gala-fluo) / .25),0 10px 30px hsl(var(--gala-fluo) / .12);}
.text-glow-fluo {text-shadow: 0 0 10px hsl(var(--gala-fluo) / .4),0 0 20px hsl(var(--gala-fluo) / .3),0 0 30px hsl(var(--gala-fluo) / .2)}
.gradient-fluo-radial{background-image:radial-gradient(circle at 30% 30%,hsl(var(--gala-fluo) / .18),transparent 60%);}

.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops));}
.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);}
.from-gala-fluo\/5{--tw-gradient-from:hsl(var(--gala-fluo) / 0.05);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to, transparent);}

/* NAV states (replica del comportamento Tailwind originale) */
#mainNav.nav--top {
  background: transparent;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
#mainNav.nav--scrolled {
  -webkit-backdrop-filter: blur(12px);
  background-color: hsl(var(--gala-black) / 0.90) !important;
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgb(255 255 255 / 0.10);
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

#navLogo.logo--large { height: 2.5rem; } /* ~h-10 */
#navLogo.logo--small { height: 2rem; }   /* ~h-8 */

.nav-link-gala {
  position: relative;
  color: rgba(255,255,255,.7);
  transition: color .3s ease;
}
.nav-link-gala:hover {
  color: hsl(var(--gala-fluo));
}
.nav-link-gala::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 2px;
  background: hsl(var(--gala-fluo));
  transition: width .3s ease;
}
.nav-link-gala:hover::after {
  width: 100%;
}

/* ===== BUTTON HOVER GALA CTA ===== */
.btn-gala-cta:hover,
.btn-gala-cta:focus-visible {
  background: hsl(var(--gala-fluo) / .9);
  color: hsl(var(--gala-black)) !important;
  box-shadow: 0 0 20px hsl(var(--gala-fluo) / .2),
              0 0 40px hsl(var(--gala-fluo) / .1);
}

/* ===== BUTTON HOVER GALA ===== */
/* CTA principale stile Tailwind originale */
.btn-gala {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: hsl(var(--gala-fluo));
  color: hsl(var(--gala-black)) !important; /* testo sempre scuro */
  text-decoration: none;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.5rem;
  padding: 0.5rem 2rem;
  border-radius: 9999px;
  transition: transform .3s ease, box-shadow .3s ease, background-color .3s ease;
  will-change: transform;
}
.btn-gala:hover,
.btn-gala:focus-visible {
  background: hsl(var(--gala-fluo) / .9);
  color: hsl(var(--gala-black)) !important;
  transform: scale(1.05);
  box-shadow: 0 0 20px hsl(var(--gala-fluo) / .4),
              0 0 40px hsl(var(--gala-fluo) / .2);
}
.btn-gala:active {
  transform: scale(.95);
}
/* Freccia/icone */
.btn-gala .btn-icon {
  margin-left: .5rem;
  display: inline-block;
  transition: transform .3s ease;
}
.btn-gala:hover .btn-icon,
.btn-gala:focus-visible .btn-icon {
  transform: translateX(.25rem);
}

/* LABEL “A BANDA” che parte dal bordo sinistro viewport */
.section-label{
  position: relative;
  display: inline-block;
  padding: .35rem .75rem;
  line-height: 1;
  z-index: 1;
}

/* estende lo sfondo fino al bordo sinistro dello schermo,
   anche se sei dentro un .container */
.section-label::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left: calc(-100vw + 100%);
  width: 100vw;
  z-index: -1;
}

/* --- VARIANTI COLORE basate sui TUOI token --- */

/* sfondo fluo, testo scuro */
.section-label--fluo{ 
  color: hsl(var(--gala-dark));
}
.section-label--fluo::before{
  background: hsl(var(--gala-fluo));
}

/* sfondo scuro, testo fluo */
.section-label--dark{
  color: hsl(var(--gala-fluo));
}
.section-label--dark::before{
  background: hsl(var(--gala-dark));
}

/* ===== SERVIZI  ===== */
.gala-service-tile:hover{
  transform: translateY(-4px);
  box-shadow: 0 10px 25px hsl(var(--gala-black) / .10), 0 0 0 1px hsl(var(--gala-fluo) / .15);
}
.gala-service-tile{
  background: #fff;
}

.icon-social path {
  fill: hsl(var(--gala-white) / .7);
  transition: fill .3s ease;
}
.icon-social:hover path {
  fill: hsl(var(--gala-fluo));
}

/* ===== Contact form helpers ===== */
.gala-hp{
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-response{
  border-radius: .75rem;
  padding: .875rem 1rem;
  font-size: .95rem;
  line-height: 1.5;
  border: 1px solid transparent;
}

.form-response.is-success{
  background: hsl(var(--gala-fluo) / .10);
  border-color: hsl(var(--gala-fluo) / .35);
  color: hsl(var(--gala-white));
}

.form-response.is-error{
  background: rgba(220, 38, 38, .12);
  border-color: rgba(220, 38, 38, .35);
  color: #fff;
}

.form-gala.is-invalid,
.form-check-input.is-invalid{
  border-color: rgba(220, 38, 38, .9) !important;
  box-shadow: 0 0 0 .2rem rgba(220, 38, 38, .20) !important;
}

#contactSubmitBtn[disabled]{
  opacity: .7;
  pointer-events: none;
}

.gala-hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px;
  height:1px;
  overflow:hidden;
}

.form-response{
  border-radius:.75rem;
  padding:.875rem 1rem;
  font-size:.95rem;
  line-height:1.5;
  border:1px solid transparent;
}

.form-response.is-success{
  background:hsl(var(--gala-fluo) / .10);
  border-color:hsl(var(--gala-fluo) / .35);
  color:hsl(var(--gala-white));
}

.form-response.is-error{
  background:rgba(220,38,38,.12);
  border-color:rgba(220,38,38,.35);
  color:#fff;
}

.form-gala.is-invalid,
.form-check-input.is-invalid{
  border-color:rgba(220,38,38,.9) !important;
  box-shadow:0 0 0 .2rem rgba(220,38,38,.20) !important;
}

#contactSubmitBtn[disabled]{
  opacity:.7;
  pointer-events:none;
}

#contactSubmitBtn[disabled] .ms-2{
  opacity:.7;
}



/* ===== Decorative floating square GALA ===== */
.decor-square, .decor-square-small{
  position: absolute;
  width: 5rem;
  height: 5rem;
  border: 1px solid hsl(var(--gala-fluo) / .30);
  border-radius: .5rem;
  animation: floatSoft var(--float-duration, 9s) cubic-bezier(.45,.05,.55,.95) infinite;
  pointer-events: none;
  box-shadow: 0 0 15px hsl(var(--gala-fluo) / .15);
}
.decor-square-small{
  width: 3rem;
  height: 3rem;
  animation: floatSoftSmall var(--float-duration, 10s) cubic-bezier(.45,.05,.55,.95) infinite;
}
.decor-square-br{
  bottom: -1rem;   /* -bottom-4 */
  right: -1rem;    /* -right-4 */
}
.decor-square-tl{
  top: -1rem;
  left: -1rem;
}
.decor-square-tr{
  top: -1rem;
  right: -1rem;
}

/* Animazione diversa dal quadrato grande */
@keyframes floatSoftSmall {
  0%   { transform: translate3d(0,0,0); }
  25%  { transform: translate3d(6px,-8px,0); }
  50%  { transform: translate3d(-4px,-14px,0); }
  75%  { transform: translate3d(3px,-6px,0); }
  100% { transform: translate3d(0,0,0); }
}
/* Animazione morbida con micro drift */
@keyframes floatSoft {
  0%   { transform: translate3d(0px, 0px, 0); }
  20%  { transform: translate3d(-4px, -8px, 0); }
  40%  { transform: translate3d(3px, -14px, 0); }
  60%  { transform: translate3d(-6px, -6px, 0); }
  80%  { transform: translate3d(2px, -12px, 0); }
  100% { transform: translate3d(0px, 0px, 0); }
}

/* ===== FORM GALA (match stile Tailwind originale) ===== */

/* Base campo */
.form-gala{
  background-color: hsl(var(--gala-black) / .50);
  border: 1px solid hsl(var(--gala-white) / .20);
  color: hsl(var(--gala-white));
  border-radius: .375rem;          /* rounded-md */
  padding: .75rem 1rem;            /* py-3 px-4 */
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
/* Placeholder come "placeholder:text-white/30" */
.form-gala::placeholder{
  color: rgba(255,255,255,.30);
  opacity: 1;
}
/* Focus come "focus:border-gala-fluo focus:ring-gala-fluo/20" */
.form-gala:focus{
  background-color: hsl(var(--gala-black) / .50);
  border-color: hsl(var(--gala-fluo));
  box-shadow: 0 0 0 .25rem hsl(var(--gala-fluo) / .20);
  color: hsl(var(--gala-white));
}
/* Disabilitato */
.form-gala:disabled{
  opacity: .6;
}
/* Textarea: altezza minima come min-h-[120px] */
.form-gala-textarea{
  min-height: 120px;
  resize: vertical;
}
/* Checkbox GALA — bordo fluo */
input[type="checkbox"].form-check-input {
  background-color: hsl(var(--gala-black) / .50);
  border: 1px solid hsl(var(--gala-white) / .20);
  width: 1.15em;  /* un po’ più grande per visibilità */
  height: 1.15em;
  transition: background-color .2s ease, border-color .2s ease;
}
/* Checkbox GALA — spunta fluo quando checked */
input[type="checkbox"].form-check-input:checked {
  border-color: hsl(var(--gala-fluo));
}
input[type="checkbox"].form-check-input:checked::before {
  display: block;
  color: hsl(var(--gala-white));
  font-size: 0.85rem;
  text-align: center;
  line-height: 1.15em;
}
input[type="checkbox"].form-check-input:hover,
input[type="checkbox"].form-check-input:focus {
  border-color: hsl(var(--gala-fluo));
  box-shadow: 0 0 0 .2rem hsl(var(--gala-fluo) / .25);
}

@media (min-width:640px){
  .sm\:flex-row{flex-direction:row;}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sm\:px-8{padding-left:2rem;padding-right:2rem;}
  .sm\:text-base{font-size:1rem;line-height:1.5rem;}
  .sm\:text-lg{font-size:1.125rem;line-height:1.75rem;}
  .sm\:text-2xl{font-size:1.5rem;line-height:2rem;}
  .sm\:text-4xl{font-size:2.25rem;line-height:2.5rem;}
  .sm\:text-5xl{font-size:3rem;line-height:1;}
  .sm\:text-\[200px\]{font-size:200px;}
}
@media (min-width:768px){
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1024px){
  .lg\:gap-8{gap:2rem;}
  .lg\:gap-12{gap:3rem;}
  .lg\:gap-16{gap:4rem;}
  .lg\:gap-20{gap:5rem;}
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
  .lg\:h-20{height:5rem;}
  .lg\:justify-end{justify-content:flex-end;}
  .lg\:ml-auto{margin-left:auto;}
  .lg\:mx-0{margin-left:0;margin-right:0;}
  .lg\:order-1{order:1;}
  .lg\:order-2{order:2;}
  .lg\:p-8{padding:2rem;}
  .lg\:px-16{padding-left:4rem;padding-right:4rem;}
  .lg\:py-16{padding-top:4rem;padding-bottom:4rem;}
  .lg\:py-32{padding-top:8rem;padding-bottom:8rem;}
  .lg\:sticky{position:sticky;}
  .lg\:text-5xl{font-size:3rem;line-height:1;}
  .lg\:text-6xl{font-size:3.75rem;line-height:1;}
  .lg\:text-\[300px\]{font-size:300px;}
  .lg\:top-32{top:8rem;}
}
@media (min-width:1024px){.lg\:space-y-8>:not([hidden])~:not([hidden]){margin-top:2rem;}}
@media (min-width:1280px){
  .xl\:px-24{padding-left:6rem;padding-right:6rem;}
  .xl\:text-7xl{font-size:4.5rem;line-height:1;}
}