:root{--text:#f5f5f2;--muted:rgba(245,245,242,.78)}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:#202223;color:var(--text);font-family:Arial,Helvetica,sans-serif}
body{overflow:hidden}
a{color:inherit;text-decoration:none}
.home{width:100vw;height:100vh;position:relative;overflow:hidden}
.hero{position:relative;width:100vw;height:100vh;overflow:hidden;background:#777}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block}

/* Hamburger: menu testuale, senza pannello o fascia. */
.menu-wrap{position:absolute;z-index:40;top:2.4%;right:3.2%;width:min(330px,34vw);height:50px}
.menu-button{position:absolute;z-index:42;top:0;right:0;width:42px;height:42px;border:0;background:transparent;cursor:pointer;padding:7px 2px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.menu-button span{display:block;width:26px;height:1px;background:rgba(255,255,255,.95);margin-left:auto;transition:transform .22s ease,opacity .22s ease}
.menu-wrap:has(.menu-panel.open) .menu-button span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-wrap:has(.menu-panel.open) .menu-button span:nth-child(2){opacity:0}
.menu-wrap:has(.menu-panel.open) .menu-button span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu-panel{position:absolute;top:46px;right:0;width:max-content;min-width:180px;padding:14px 16px 16px;background:rgba(15,20,24,.72);border:1px solid rgba(255,255,255,.16);border-radius:2px;box-shadow:0 10px 30px rgba(0,0,0,.18);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease,visibility .22s ease}
.menu-panel.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.menu-inner{width:max-content;text-align:right}
.menu-links{display:grid;justify-items:end;gap:12px}
.menu-links a{font-size:clamp(13px,1.15vw,16px);line-height:1.2;letter-spacing:.16em;font-weight:300;padding:0;background:transparent;border:0;white-space:nowrap;transition:opacity .2s ease,letter-spacing .2s ease}
.menu-links a:hover,.menu-links a:focus-visible{opacity:.65;letter-spacing:.20em}

.menu-item-submenu{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.menu-submenu-toggle{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;background:none;border:0;padding:0;cursor:pointer;white-space:nowrap;transition:opacity .2s ease,letter-spacing .2s ease}
.menu-submenu-toggle:hover,.menu-submenu-toggle:focus-visible{opacity:.65;letter-spacing:.20em}
.contact-submenu{display:grid;justify-items:end;gap:8px;max-height:0;overflow:hidden;opacity:0;transform:translateY(-4px);transition:max-height .22s ease,opacity .22s ease,transform .22s ease}
.menu-item-submenu.open .contact-submenu{max-height:120px;opacity:1;transform:translateY(0)}
.opere-item-submenu.open .opere-submenu{max-height:260px}
.contact-submenu a{font-size:clamp(10px,.9vw,13px);line-height:1.2;letter-spacing:.12em;font-weight:300;color:inherit;white-space:nowrap}
.contact-submenu a:hover,.contact-submenu a:focus-visible{opacity:.65;letter-spacing:.16em}



@media (max-width:900px){.menu-wrap{width:min(300px,42vw)}}
@media (max-width:600px){.hero{height:100svh;min-height:560px}.hero-bg{object-position:center center}.menu-wrap{top:1.5%;right:2%;width:88vw;height:48px}.menu-panel{right:0}}


/* Indicatore sopra i nomi: cerchio piccolo con semplice freccia a V. */
.discover-guide{
  position:absolute;
  z-index:31;
  left:50%;
  bottom:12.2%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  pointer-events:none;
}
.discover-text{
  color:rgba(255,255,255,.9);
  font-size:clamp(10px,.9vw,13px);
  line-height:1;
  letter-spacing:.28em;
  font-weight:300;
  font-family:"Segoe UI Light","Helvetica Neue",Helvetica,Arial,sans-serif;
  white-space:nowrap;
  text-shadow:0 1px 5px rgba(0,0,0,.4);
}
.discover-circle{
  width:21px;
  height:21px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.discover-chevron{
  width:6px;
  height:6px;
  border-right:1.5px solid rgba(255,255,255,.95);
  border-bottom:1.5px solid rgba(255,255,255,.95);
  transform:rotate(45deg) translate(-2px,-2px);
}
@media (max-width:900px){
  .discover-guide{bottom:11.5%}
}
@media (max-width:600px){
  .discover-guide{bottom:18%;gap:7px}
  .discover-text{font-size:10px;letter-spacing:.20em}
  .discover-circle{width:19px;height:19px}
}

/* Solo i nomi delle società, in basso e interattivi. Nessuna fascia o sfondo aggiunto. */
.company-labels{
  position:absolute;
  z-index:30;
  left:2.5%;
  right:2.5%;
  bottom:5.5%;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  align-items:end;
  gap:1.2vw;
  pointer-events:none;
}
.company-labels a{
  pointer-events:auto;
  display:block;
  color:rgba(255,255,255,.96);
  text-align:center;
  font-size:clamp(10px,.95vw,14px);
  line-height:1.15;
  letter-spacing:.10em;
  font-weight:600;
  font-family:"Segoe UI Light","Helvetica Neue",Helvetica,Arial,sans-serif;
  white-space:nowrap;
  text-shadow:0 1px 5px rgba(0,0,0,.45);
  transition:opacity .2s ease,letter-spacing .2s ease;
}
.company-labels a:hover,.company-labels a:focus-visible{
  opacity:.72;
  letter-spacing:.13em;
}
.company-labels a:focus-visible{
  outline:1px solid rgba(255,255,255,.95);
  outline-offset:4px;
}
@media (max-width:900px){
  .company-labels{left:1.5%;right:1.5%;gap:.5vw;bottom:4.5%}
  .company-labels a{font-size:clamp(9px,1.35vw,14px);letter-spacing:.06em}
}
@media (max-width:600px){
  .company-labels{
    left:3%;right:3%;bottom:4%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    row-gap:10px;
  }
  .company-labels a{font-size:12px;letter-spacing:.07em;white-space:normal}
}
.contact-card{max-width:620px;margin:32px auto 0;text-align:center}
.contact-page .contact-card{transform:translateY(-28px)}
.contact-card h2{font-size:clamp(18px,2vw,28px);font-weight:300;letter-spacing:.12em;margin:0 0 34px}
.contact-card h3{font-size:12px;font-weight:300;letter-spacing:.18em;margin:24px 0 8px}
.contact-card p{font-size:16px;font-weight:300;line-height:1.7;margin:0}
.contact-card a{color:inherit;text-decoration:none}
.contact-card a:hover{text-decoration:underline}
