/*================ RESET ================*/
*{
margin:0;
padding:0;
box-sizing:border-box;
scroll-behavior:smooth;
}

:root{
--primary:#e5007d;
--primary-dark:#c8006d;
--primary-light:#ffe7f3;
--accent:#ff4ca7;

--dark:#242424;
--text:#555;
--bg:#fff8fc;
--white:#ffffff;

--shadow:0 10px 30px rgba(229,0,125,.12);
}

body{
font-family:'Inter',sans-serif;
background:var(--bg);
color:var(--dark);
line-height:1.6;
overflow-x:hidden;
}

.container{
max-width:1150px;
margin:auto;
padding:0 20px;
}


/*================ HEADER ================*/

header{
background:#fff;
position:sticky;
top:0;
z-index:999;
box-shadow:0 3px 20px rgba(0,0,0,.06);
}

header .container{
display:flex;
justify-content:space-between;
align-items:center;
padding:18px 20px;
}

.logo{
max-width:180px;
height:auto;
}

#menu{
display:flex;
gap:35px;
}

#menu a{
text-decoration:none;
color:var(--dark);
font-weight:600;
position:relative;
transition:.3s;
}

#menu a:hover{
color:var(--primary);
}

#menu a:after{
content:"";
position:absolute;
left:0;
bottom:-6px;
width:0;
height:2px;
background:var(--primary);
transition:.3s;
}

#menu a:hover:after{
width:100%;
}

.menu-toggle{
display:none;
font-size:32px;
cursor:pointer;
}

.close-menu{
display:none;
}

.menu-overlay{
position:fixed;
inset:0;
background:rgba(0,0,0,.4);
opacity:0;
pointer-events:none;
transition:.3s;
}

.menu-overlay.active{
opacity:1;
pointer-events:auto;
}



/*================ HERO ================*/

.home{
background:
linear-gradient(rgba(229,0,125,.45),rgba(199,0,105,.50)),
url("img/header.png");
background-size:cover;
background-position:center;
background-repeat:no-repeat;
padding:180px 20px;
text-align:center;
color:white;
}

.home h2{
font-family:'Poppins';
font-size:56px;
max-width:850px;
line-height:1.15;
margin:auto auto 25px;
}

.home p{
font-size:22px;
max-width:750px;
margin:auto auto 40px;
}

.btn-whatsapp{
display:inline-block;
background:linear-gradient(135deg,#25d366,#1ebe5d);
padding:18px 42px;
border-radius:60px;
font-weight:700;
font-size:19px;
text-decoration:none;
color:white;
box-shadow:0 10px 30px rgba(0,0,0,.25);
animation:pulseZap 1.5s infinite;
transition:.3s;
}

.btn-whatsapp:hover{
transform:translateY(-4px) scale(1.03);
}

@keyframes pulseZap{
0%{
box-shadow:0 0 0 0 rgba(37,211,102,.6);
}
70%{
box-shadow:0 0 0 22px rgba(37,211,102,0);
}
100%{
box-shadow:0 0 0 0 rgba(37,211,102,0);
}
}



/*================ SOBRE ================*/

.sobre{
padding:110px 20px;
background:white;
}

.sobre-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:70px;
align-items:center;
}

.sobre-texto h2{
font-size:42px;
color:var(--primary);
margin-bottom:25px;
}

.sobre-texto p{
font-size:18px;
color:var(--text);
margin-bottom:30px;
}

.sobre-itens{
display:flex;
flex-wrap:wrap;
gap:15px;
}

.sobre-itens span{
background:var(--primary-light);
padding:14px 22px;
border-radius:40px;
font-weight:600;
color:var(--primary-dark);
box-shadow:var(--shadow);
}

.sobre-img img{
width:100%;
border-radius:28px;
box-shadow:0 18px 40px rgba(0,0,0,.10);
}



/*================ NUMEROS ================*/

.numeros{
background:linear-gradient(135deg,var(--primary),var(--accent));
color:white;
display:flex;
justify-content:center;
gap:90px;
flex-wrap:wrap;
padding:80px 20px;
text-align:center;
}

.num h3{
font-size:54px;
}

.num p{
font-size:18px;
opacity:.95;
}



/*================ SERVIÇOS ================*/

.servicos{
padding:110px 20px;
text-align:center;
background:#fff8fc;
}

.servicos h2{
font-size:42px;
margin-bottom:60px;
color:var(--primary);
}

.servicos-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:35px;
max-width:1100px;
margin:auto;
}

.servico{
background:white;
padding:45px 30px;
border-radius:25px;
box-shadow:var(--shadow);
font-size:40px;
transition:.3s;
border-top:5px solid var(--primary);
}

.servico:hover{
transform:translateY(-8px);
}

.servico h4{
font-size:23px;
margin:20px 0 15px;
}

.servico p{
font-size:15px;
color:var(--text);
}



/*================ AVALIAÇÕES ================*/

.avaliacoes{
padding:110px 20px;
background:white;
text-align:center;
}

.avaliacoes h2{
font-size:42px;
margin-bottom:60px;
color:var(--primary);
}

.avaliacoes-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:30px;
}

.avaliacao{
background:white;
padding:35px;
border-radius:24px;
box-shadow:var(--shadow);
}

.stars{
font-size:24px;
color:#f6b500;
margin-bottom:15px;
}

.avaliacao p{
color:var(--text);
}

.avaliacao h4{
margin-top:18px;
}

.garantia-box{
margin-top:60px;
}

.garantia-img{
width:260px;
}



/*================ SOCIAL ================*/

.social-section{
padding:100px 20px;
background:var(--primary-light);
text-align:center;
}

.social-section h2{
font-size:38px;
margin-bottom:15px;
color:var(--primary);
}

.social-section p{
margin-bottom:35px;
}

.social-icons{
display:flex;
justify-content:center;
gap:20px;
flex-wrap:wrap;
}

.social{
width:58px;
height:58px;
background:var(--primary);
border-radius:50%;
display:flex;
justify-content:center;
align-items:center;
transition:.3s;
}

.social:hover{
background:var(--primary-dark);
transform:translateY(-6px);
}

.social svg{
fill:white;
width:24px;
}




/*================ MAPA ================*/

.localizacao-intro{
padding:100px 20px 50px;
text-align:center;
}

.localizacao-icon{
font-size:48px;
margin-bottom:15px;
}

.localizacao-intro h2{
font-size:40px;
color:var(--primary);
margin-bottom:18px;
}

.localizacao-intro p{
max-width:700px;
margin:auto;
font-size:18px;
color:var(--text);
}

.divider{
width:90px;
height:4px;
margin:35px auto 0;
background:linear-gradient(90deg,var(--primary),var(--accent));
border-radius:20px;
}

.mapa iframe{
display:block;
max-width:1100px;
margin:auto;
border-radius:30px;
box-shadow:0 18px 40px rgba(0,0,0,.1);
}



/*================ FOOTER ================*/

.footer{
background:#1f1f1f;
color:white;
text-align:center;
padding:70px 20px;
}

.logo-footer-box{
background:white;
padding:14px 24px;
display:inline-block;
border-radius:14px;
margin-bottom:25px;
}

.footer-logo{
max-width:160px;
}

.footer p{
margin:10px 0;
}

.copy{
margin-top:30px;
opacity:.5;
}



/*================ BOTÃO FLUTUANTE ================*/

.zap{
position:fixed;
right:22px;
bottom:22px;
width:62px;
height:62px;
display:flex;
align-items:center;
justify-content:center;
background:#25d366;
border-radius:50%;
font-size:30px;
text-decoration:none;
box-shadow:0 8px 25px rgba(0,0,0,.3);
z-index:999;
}



/*================ ANIMAÇÃO ================*/

.reveal{
opacity:0;
transform:translateY(40px);
transition:.8s;
}

.reveal.show{
opacity:1;
transform:none;
}



/*================ MOBILE ================*/

@media(max-width:768px){

.menu-toggle{
display:block;
}

#menu{
position:fixed;
top:0;
right:-100%;
height:100vh;
width:280px;
background:var(--primary);
flex-direction:column;
justify-content:center;
align-items:center;
transition:.4s;
z-index:999;
}

#menu.active{
right:0;
}

#menu a{
color:white;
font-size:22px;
}

#menu a:after{
background:white;
}

.close-menu{
display:block;
position:absolute;
top:30px;
right:30px;
color:white;
font-size:30px;
cursor:pointer;
}

.home{
padding:140px 20px;
}

.home h2{
font-size:38px;
}

.home p{
font-size:18px;
}

.sobre-grid{
grid-template-columns:1fr;
text-align:center;
}

.sobre-itens{
justify-content:center;
}

.numeros{
gap:45px;
}

.num h3{
font-size:40px;
}

.servicos h2,
.avaliacoes h2,
.localizacao-intro h2{
font-size:32px;
}

}

@media(max-width:600px){

.logo{
max-width:150px;
}

.home h2{
font-size:32px;
}

.btn-whatsapp{
font-size:16px;
padding:16px 28px;
}

}