/* NIGHTSHOT V73 — compact utility / support / partner page rhythm
   Scoped deliberately so HOME/Eventi/Locali/Portfolio are not altered. */

/* Utility pages that use the shared .wrap > .hero pattern:
   Contatti, Segnalazioni, Partner login/register and legal utility pages. */
main.wrap{
  min-height:0!important;
}

main.wrap > .hero{
  min-height:0!important;
  height:auto!important;
  display:block!important;
  place-items:initial!important;
  align-items:initial!important;
  justify-content:initial!important;
  text-align:left!important;
  margin:0!important;
  padding:clamp(22px,3.2vw,42px) 0 clamp(14px,1.8vw,24px)!important;
}

main.wrap > .hero::before,
main.wrap > .hero::after{
  pointer-events:none;
}

main.wrap > .hero h1{
  width:auto!important;
  max-width:900px!important;
  margin:0!important;
  font-size:clamp(2rem,3.6vw,3.45rem)!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
  white-space:normal!important;
}

main.wrap > .hero p{
  max-width:720px!important;
  margin:9px 0 0!important;
  font-size:clamp(.9rem,1.05vw,1rem)!important;
  line-height:1.55!important;
  color:#b8b1c0!important;
}

/* Content must follow the title immediately, never after a viewport-sized gap. */
main.wrap > .hero + .panel,
main.wrap > .hero + form,
main.wrap > .hero + .err,
main.wrap > .hero + .ok,
main.wrap > .hero + .msg{
  margin-top:0!important;
}

main.wrap > .panel,
main.wrap > form.panel{
  position:relative!important;
  top:auto!important;
  transform:none!important;
}

/* Keep the registration form visually connected to its introduction. */
main.wrap > .hero + .err + .ok + form.panel,
main.wrap > .hero + .err + form.panel,
main.wrap > .hero + .ok + form.panel{
  margin-top:0!important;
}

/* Support is intentionally concise: strong hierarchy without billboard typography. */
.ns-support{
  padding-top:clamp(28px,3.4vw,48px)!important;
}
.ns-support-hero{
  margin-bottom:clamp(22px,2.8vw,34px)!important;
}
.ns-support-hero h1{
  font-size:clamp(2.2rem,4.4vw,4rem)!important;
  line-height:.95!important;
}
.ns-support-hero p{
  margin-top:10px!important;
}

/* Legal pages stay readable and compact, without giant headings. */
.ns-legal-page .hero{
  min-height:0!important;
  height:auto!important;
  display:block!important;
  padding:18px 0 22px!important;
}
.ns-legal-page .hero h1{
  font-size:clamp(2rem,3.8vw,3.3rem)!important;
  line-height:1!important;
}
.ns-legal-page .hero p{
  margin:9px 0 0!important;
}

@media (max-width:760px){
  main.wrap{
    padding-top:18px!important;
  }
  main.wrap > .hero{
    padding:18px 0 14px!important;
  }
  main.wrap > .hero h1{
    font-size:clamp(1.9rem,9vw,2.7rem)!important;
    line-height:1.02!important;
  }
  main.wrap > .hero p{
    margin-top:7px!important;
    font-size:.92rem!important;
    line-height:1.5!important;
  }
  main.wrap > .panel,
  main.wrap > form.panel{
    padding:18px!important;
    border-radius:18px!important;
  }
  .ns-support{
    padding-top:22px!important;
  }
  .ns-support-hero h1{
    font-size:clamp(2.1rem,11vw,3.1rem)!important;
  }
}

@media (min-width:761px) and (max-width:1180px){
  main.wrap > .hero{
    padding:24px 0 18px!important;
  }
  main.wrap > .hero h1{
    font-size:clamp(2.1rem,4.8vw,3.15rem)!important;
  }
}

@media (min-width:1400px){
  main.wrap > .hero{
    padding-top:32px!important;
  }
}
