*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:'Poppins',sans-serif;
  background:#1C202B;
  color:#3abbb5;
  overflow-x:hidden;
  scroll-behavior:smooth;
}

/* Navbar */
header{
  position:fixed;width:100%;
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 60px;z-index:1000;
  transition:background .4s,box-shadow .4s;
}
header.scrolled{
  background:rgba(0,0,0,0.9);
  box-shadow:0 2px 20px rgba(58,187,181,0.2);
}
.logo{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;font-size:1.6em;
  color:#3abbb5;letter-spacing:1px;
}
.logo span{color:#fff;}
nav a{
  margin-left:25px;text-decoration:none;
  color:#3abbb5;transition:color .3s;
}
nav a:hover{
  color:#4bc37a;
  border-bottom:2px solid #4bc37a;
  padding-bottom:2px;
}

/* Hero */
.hero{
  position:relative;
  height:100vh;
  display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;
}
.hero .overlay{
  position:absolute;top:0;left:0;width:100%;height:100%;
  background:linear-gradient(-45deg,#1C202B,#00463f,#005c33,#1C202B);
  background-size:400% 400%;
  animation:gradient 10s ease infinite;
  z-index:-1;
}
@keyframes gradient{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
.hero h1{
  font-size:3rem;line-height:1.2;
  color:#fff;text-shadow:0 0 20px rgba(58,187,181,0.8);
  animation:fadein 2s ease;
}
.hero h1 span{color:#3abbb5;}
.hero p{
  margin-top:20px;color:#bbb;
  max-width:600px;margin-inline:auto;
  animation:fadein 3s ease;
}
@keyframes fadein{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
.btn{
  display:inline-block;margin-top:30px;
  background:#3abbb5;color:#fff;
  padding:14px 32px;border-radius:8px;
  text-decoration:none;font-weight:600;
  box-shadow:0 0 20px rgba(58,187,181,0.6);
  transition:transform .3s,box-shadow .3s;
}
.btn:hover{
  background:#4bc37a;
  transform:translateY(-3px);
  box-shadow:0 0 35px rgba(75,195,122,1);
}

/* Sections */
section{
  padding:100px 60px;
  text-align:center;
  scroll-margin-top:100px; /* evita che il titolo venga coperto dal menu */
}
h2{
  font-size:2rem;
  margin-bottom:20px;
  color:#3abbb5;
}
.about p{
  max-width:700px;
  margin:auto;
  color:#ccc;
  line-height:1.7;
}

/* Servizi */
.services{
  background:radial-gradient(circle at top,#1C202B 0%,#1C202B 100%);
}
.service-cards{
  display:flex;flex-wrap:wrap;justify-content:center;gap:40px;margin-top:50px;
}
.service-card{
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(58,187,181,0.2);
  border-radius:12px;
  padding:40px 25px;width:300px;
  transition:transform .3s,box-shadow .3s;
}
.service-card:hover{
  transform:translateY(-8px);
  box-shadow:0 0 25px rgba(75,195,122,0.4);
}
.service-card h3{margin:15px 0;color:#fff;}
.service-card p{color:#aaa;}

/* Contatti */
.contact{
  background:linear-gradient(180deg,#1C202B 0%,#000000 100%);
}
.contact p{
  color:#ccc;
  margin-bottom:25px;
}
.neon-btn{
  border:2px solid #3abbb5;
  background:transparent;
  box-shadow:0 0 15px rgba(58,187,181,0.3);
}
.neon-btn:hover{
  background:#3abbb5;
  color:#000;
  box-shadow:0 0 40px rgba(75,195,122,0.8);
}

/* Footer */
footer{
  background:#000;
  text-align:center;
  padding:40px 15px;
  border-top:1px solid rgba(58,187,181,0.2);
}
footer p{
  color:#777;
  margin-bottom:15px;
}
footer .social a img{
  width:35px;
  margin:0 10px;
  transition:transform .3s;
}
footer .social a img:hover{
  transform:scale(1.2);
}

.slogan {
  font-size: 1.3rem;
  font-weight: 500;
  color: #3abbb5 !important;
  text-shadow: 0 0 10px rgba(58,187,181,0.5), 0 0 25px rgba(75,195,122,0.3);
  animation: glowSoft 2.5s ease-in-out infinite alternate;
}
/* Responsive */
@media(max-width:768px){
  header{padding:15px 25px;}
  .hero h1{font-size:2.2rem;}
  .service-card{width:90%;}
  section{scroll-margin-top:80px;}
}

/* --- CONTACT SECTION --- */
.contact {
  text-align: center;
  padding: 100px 20px;
  background: radial-gradient(circle at top, rgba(58,187,181,0.1), transparent 70%);
}

.contact h2 {
  font-size: 2.5em;
  color: #3abbb5;
  margin-bottom: 15px;
}

.contact p {
  color: #ccc;
  font-size: 1.1em;
  margin-bottom: 40px;
}

.contact-form {
  max-width: 650px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.contact-form .form-group {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  width: 100%;
}

.contact-form input,
.contact-form textarea {
  flex: 1;
  width: 100%;
  padding: 15px 18px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  background-color: rgba(255, 255, 255, 0.05);
  color: #fff;
  font-size: 1em;
  outline: none;
  transition: 0.3s ease;
}

.contact-form input:focus,
.contact-form textarea:focus {
  border-color: #3abbb5;
  box-shadow: 0 0 10px rgba(58,187,181,0.5);
}

.contact-form textarea {
  resize: none;
  min-height: 120px;
}

.contact-form .btn {
  border: 2px solid #3abbb5;
  background: transparent;
  color: #3abbb5;
  font-weight: 600;
  letter-spacing: 0.5px;
  padding: 12px 30px;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.contact-form .btn:hover {
  background: #3abbb5;
  color: #fff;
  box-shadow: 0 0 15px #3abbb5;
}