:root{
 --primary:#00ff88;
 --primary-dark:#00cc6d;
 --secondary:#0f172a;
 --dark:#020617;
 --dark-soft:#0b1120;
 --light:#ffffff;
 --gray:#94a3b8;
 --gray-soft:#cbd5e1;
 --border:rgba(255,255,255,.08);
 --glass:rgba(255,255,255,.04);
 --radius:24px;
 --radius-lg:32px;
 --shadow:0 25px 80px rgba(0,0,0,.35);
 --container:1280px;
 --transition:.35s ease;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
 font-family:Inter,Arial,sans-serif;
 background:var(--dark);
 color:var(--light);
 line-height:1.7;
 overflow-x:hidden;
}

body::before{
 content:"";
 position:fixed;
 inset:0;
 background:
 radial-gradient(circle at 10% 10%,rgba(0,255,136,.12),transparent 30%),
 radial-gradient(circle at 90% 20%,rgba(0,255,136,.08),transparent 25%),
 radial-gradient(circle at 50% 100%,rgba(0,255,136,.06),transparent 30%);
 pointer-events:none;
}

.container{
 width:min(calc(100% - 40px), var(--container));
 margin:auto;
}

section{
    padding:120px 0;
    position:relative;
}

h1,h2,h3,h4{
 line-height:1.1;
 letter-spacing:-.03em;
}

p{color:var(--gray)}

.section-tag{
 display:inline-flex;
 padding:10px 18px;
 border-radius:999px;
 color:var(--primary);
 border:1px solid rgba(0,255,136,.25);
 background:rgba(0,255,136,.08);
 margin-bottom:24px;
}
.section-header{
 max-width:850px;
 margin:0 auto 70px;
 text-align:center;
}
.section-header h2{
 font-size:clamp(2rem,4vw,4rem);
 margin-bottom:20px;
}
.btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:10px;
 padding:18px 34px;
 border-radius:16px;
 font-weight:700;
 text-decoration:none;
 transition:var(--transition);
}
.btn-primary{
 background:var(--primary);
 color:#000;
}
.btn-primary:hover{
 transform:translateY(-5px);
 box-shadow:0 15px 40px rgba(0,255,136,.25);
}
.btn-secondary{
 border:1px solid var(--border);
 color:#fff;
}

/* HERO */
.hero-contato{
 min-height:100vh;
 display:flex;
 align-items:center;
 text-align:center;
}
.hero-content{
 max-width:980px;
 margin:auto;
}
.hero-content h1{
 font-size:clamp(2rem,4vw,6rem);
 margin-bottom:25px;
}
.hero-content p{
 font-size:1.2rem;
 max-width:800px;
 margin:0 auto 40px;
}
.hero-buttons{
 display:flex;
 justify-content:center;
 gap:18px;
 flex-wrap:wrap;
}

/* CONTACT CARDS */
.contact-grid{
 display:grid;
 grid-template-columns:repeat(4,1fr);
 gap:24px;
}
.contact-card{
 background:var(--glass);
 backdrop-filter:blur(16px);
 border:1px solid var(--border);
 border-radius:var(--radius);
 padding:32px;
 transition:.4s;
}
.contact-card:hover{
 transform:translateY(-8px);
 border-color:rgba(0,255,136,.3);
}
.contact-card h3{
 margin-bottom:15px;
}

/* FORM */
.contact-form{
 max-width:1100px;
 margin:auto;
 padding:50px;
 border-radius:var(--radius-lg);
 background:var(--glass);
 border:1px solid var(--border);
 backdrop-filter:blur(20px);
}
.form-grid{
 display:grid;
 grid-template-columns:repeat(2,1fr);
 gap:22px;
}
.form-group{
 margin-bottom:22px;
}
.form-group label{
 display:block;
 margin-bottom:8px;
}
.form-group input,
.form-group textarea,
.form-group select{
 width:100%;
 padding:18px;
 border-radius:16px;
 border:1px solid var(--border);
 background:var(--dark-soft);
 color:#fff;
 outline:none;
 transition:.3s;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{
 border-color:var(--primary);
}

/* NEWSLETTER */
.newsletter-box{
 background:linear-gradient(135deg,#07101d,#12233f);
 border-radius:32px;
 padding:80px;
 text-align:center;
 box-shadow:var(--shadow);
}
.newsletter-box h2{
 font-size:clamp(2rem,4vw,3.5rem);
 margin-bottom:20px;
}
.newsletter-form{
 margin-top:30px;
 display:flex;
 gap:16px;
 justify-content:center;
 flex-wrap:wrap;
}
.newsletter-form input{
 min-width:350px;
 padding:18px;
 border-radius:16px;
 border:none;
}
.newsletter-form button{
 padding:18px 30px;
 border:none;
 border-radius:16px;
 background:var(--primary);
 font-weight:700;
}

/* MAP */
.map-wrapper{
 overflow:hidden;
 border-radius:32px;
 border:1px solid var(--border);
 box-shadow:var(--shadow);
}

/* SERVICES */
.services-grid{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:24px;
}
.services-grid article{
 background:var(--glass);
 border:1px solid var(--border);
 border-radius:24px;
 padding:30px;
 transition:.3s;
}
.services-grid article:hover{
 transform:translateY(-6px);
}
.services-grid h3{
 margin-bottom:15px;
}

/* FAQ */
.faq-list{
    max-width:900px;
    margin:auto;
}
.faq-list details{
    background:#0f172a;
    border:1px solid rgba(255,255,255,.08);
    border-radius:20px;
    margin-bottom:18px;
    overflow:hidden;
    transition:.35s ease;
}
.faq-list details:hover{
    border-color:rgba(0,255,136,.3);
}
.faq-list summary{
    list-style:none;
    cursor:pointer;
    padding:24px;
    font-size:1.1rem;
    font-weight:700;
    color:#fff;
    position:relative;
}
.faq-list summary::-webkit-details-marker{
    display:none;
}
.faq-list summary::after{
    content:"+";
    position:absolute;
    right:24px;
    top:50%;
    transform:translateY(-50%);
    color:var(--primary);
    font-size:1.5rem;
}
.faq-list details[open] summary::after{
    content:"−";
}
.faq-list p{
    padding:0 24px 24px;
    color:#94a3b8;
    line-height:1.8;
}



/* CTA */
.cta-box{
 padding:90px 50px;
 text-align:center;
 border-radius:40px;
 background:linear-gradient(135deg,#08111f,#182c4f);
 box-shadow:var(--shadow);
}
.cta-box h2{
 font-size:clamp(2rem,4vw,4.5rem);
 margin-bottom:20px;
}
.cta-box p{
 max-width:750px;
 margin:0 auto 30px;
}

/* ANIMATIONS */
.contact-card,
.services-grid article,
.cta-box,
.newsletter-box{
 animation:fadeUp .8s ease both;
}

@keyframes fadeUp{
 from{
  opacity:0;
  transform:translateY(30px);
 }
 to{
  opacity:1;
  transform:translateY(0);
 }
}

/* 1200 */

@media(max-width:1200px){
 .contact-grid{
  grid-template-columns:repeat(2,1fr);
 }
}

/* 992 */

@media(max-width:992px){

 section{
  padding:90px 0;
 }

 .services-grid{
  grid-template-columns:repeat(2,1fr);
 }

 .contact-form{
  padding:35px;
 }
}

/* 768 */

@media(max-width:768px){

 .hero-content h1{
  font-size:3rem;
 }

 .form-grid,
 .contact-grid,
 .services-grid{
  grid-template-columns:1fr;
 }

 .newsletter-box{
  padding:50px 25px;
 }

 .contact-form{
  padding:25px;
 }

 .newsletter-form input{
  min-width:100%;
 }

 .cta-box{
  padding:50px 25px;
 }

 .hero-buttons{
  flex-direction:column;
 }

 .btn{
  width:100%;
 }
}

/* 480 */

@media(max-width:480px){

 .container{
  width:min(calc(100% - 24px),1280px);
 }

 section{
  padding:70px 0;
 }

 .hero-content h1{
  font-size:2.2rem;
 }

 .section-header h2{
  font-size:2rem;
 }
}



.contact-card,
.services-grid article,
.newsletter-box,
.cta-box{
    opacity:0;
    transform:translateY(30px);
    transition:.8s ease;
}

.revealed{
    opacity:1 !important;
    transform:translateY(0) !important;
}