
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background:#000; }
body { margin:0; background:#000; color:#fff; font-family: Arial, Helvetica, sans-serif; overflow-x:hidden; }
a { color:inherit; }

/* PRIMA SCHERMATA: usa esattamente l'immagine approvata */
.hero {
  width:100vw;
  height:100vh;
  background:#000;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-frame {
  position:relative;
  width:min(100vw, calc(100vh * 1.7747));
  height:min(100vh, calc(100vw / 1.7747));
}
.hero-frame img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.hotspot {
  position:absolute;
  display:block;
  background:transparent;
  border:0;
  text-decoration:none;
  z-index:3;
}
.hotspot:focus-visible {
  outline:2px solid #d9ac2b;
  outline-offset:3px;
}
.hotspot:hover { cursor:pointer; }

/* Menu: aree cliccabili sopra le voci già stampate nell'immagine */
.hs-home      { left:44.5%; top:3.3%; width:6.2%; height:7.4%; }
.hs-company   { left:51.1%; top:3.3%; width:10.8%; height:7.4%; }
.hs-shows     { left:63.3%; top:3.3%; width:9.3%; height:7.4%; }
.hs-archive   { left:73.2%; top:3.3%; width:8.4%; height:7.4%; }
.hs-news      { left:82.0%; top:3.3%; width:6.0%; height:7.4%; }
.hs-contacts  { left:88.5%; top:3.3%; width:8.7%; height:7.4%; }

.hs-uilt {
  left:1.3%; top:77.0%; width:14.0%; height:19.5%;
}
.hs-discover {
  left:43.0%; top:82.0%; width:14.0%; height:13.0%;
}



/* UILT: logo cliccabile + invito testuale */
.hs-uilt:hover {
  box-shadow:0 0 18px rgba(217,172,43,.32);
  border-radius:4px;
}
.uilt-visit {
  position:absolute;
  left:5.3%;
  top:96.2%;
  z-index:4;
  color:#fff;
  font-size:clamp(8px,.58vw,11px);
  line-height:1;
  font-weight:400;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
  white-space:nowrap;
}
.uilt-visit:hover {
  color:#d9ac2b;
}

/* SECONDA SCHERMATA: nove foto in dissolvenza */
.gallery-section {
  position:relative;
  width:100%;
  height:calc(100vh - 235px);
  min-height:500px;
  background:#000;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.slideshow {
  position:relative;
  width:100%;
  height:82vh;
  max-height:900px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.slide {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition:opacity .65s ease-in-out;
  pointer-events:none;
}
.slide.active { opacity:1; }
.slide img {
  display:block;
  max-height:100%;
  max-width:96vw;
  width:auto;
  height:auto;
  object-fit:contain;
}


/* FOOTER: usa esattamente l'immagine definitiva approvata */
.footer {
  position:relative;
  width:100%;
  background:#000;
  line-height:0;
}
.footer img {
  width:100%;
  height:auto;
  display:block;
  transform:scaleY(.90);
  transform-origin:bottom center;
  margin-top:-22px;
}
.footer-link {
  position:absolute;
  z-index:3;
  display:block;
  background:transparent;
  text-decoration:none;
  cursor:pointer;
}
.footer-link:focus-visible {
  outline:2px solid #d9ac2b;
  outline-offset:2px;
}
.ft-mailing   { left:80.3%; top:19.9%; width:15.5%; height:16.2%; }
.ft-facebook  { left:80.4%; top:61.3%; width:3.0%; height:17.1%; }
.ft-instagram { left:83.9%; top:61.3%; width:3.0%; height:17.1%; }
.ft-email     { left:87.4%; top:61.3%; width:3.0%; height:17.1%; }
.ft-whatsapp  { left:90.8%; top:61.3%; width:3.0%; height:17.1%; }
.ft-youtube   { left:94.3%; top:61.3%; width:3.0%; height:17.1%; }
.ft-privacy   { left:42.1%; top:86.8%; width:3.9%; height:9.9%; }
.ft-cookie    { left:46.1%; top:86.8%; width:3.9%; height:9.9%; }

/* Su schermi stretti preserviamo le immagini senza tagliarle. */
@media (max-width: 720px) {
  .gallery-section { min-height:460px; }
  .slideshow { height:70vh; }
}



/* Spazio tecnico invisibile: consente alla seconda schermata di arrivare
   esattamente a filo del bordo superiore senza mostrare la HOME precedente. */
body::after {
  content:"";
  display:block;
  height:32px;
  background:#000;
}
