*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Arial, Helvetica, sans-serif;
}

.sr-only{
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0;
}

body{
background:#FAF9F7;
color:#3E4348;
}


h1, h2, h3{
font-family:'Lora', Georgia, serif;
font-weight:600;
color:#3E4348;
}

h2{
font-size:32px;
margin-bottom:20px;
}

header h1{
font-size:24px;
}


.container{

width:90%;
max-width:1100px;
margin:auto;

}



/* HEADER */

header{

background:white;
padding:20px 0;

box-shadow:0 2px 10px rgba(0,0,0,0.05);

position:sticky;
top:0;
z-index:100;

}


/* HEADER ACOES (btn-login + hamburger) */

.header-acoes{

display:flex;
align-items:center;
gap:14px;

}


/* HAMBURGER — 3 linhas via ::before, span e ::after */

.hamburger{

display:none;
width:28px;
height:20px;
position:relative;
background:none;
border:none;
cursor:pointer;
padding:0;
flex-shrink:0;

}

.hamburger::before,
.hamburger span,
.hamburger::after{

content:'';
display:block;
position:absolute;
left:0;
width:100%;
height:2.5px;
background:#3E4348;
border-radius:3px;
transition:all 0.4s cubic-bezier(0.23,1,0.32,1);

}

.hamburger::before{ top:0; }

.hamburger span{
top:50%;
transform:translateY(-50%);
}

.hamburger::after{ bottom:0; }


/* X: traço do meio some, os dois rotacionam */

.hamburger.ativo::before{
top:50%;
transform:translateY(-50%) rotate(45deg);
}

.hamburger.ativo span{
opacity:0;
transform:translateY(-50%) scaleX(0);
}

.hamburger.ativo::after{
bottom:50%;
transform:translateY(50%) rotate(-45deg);
}

/* Quando o menu abre, o X sai do stacking context do header
   e fica fixo na tela com z-index acima do overlay */
@media (max-width:768px){

  .hamburger.ativo{
    position:fixed;
    top:22px;
    right:5%;
    z-index:200;
  }

  .hamburger.ativo::before,
  .hamburger.ativo::after{
    background:white;
  }

}


header .container{

display:flex;
justify-content:space-between;
align-items:center;

}


nav a{

margin-left:20px;
text-decoration:none;
color:#3E4348;
font-weight:bold;

}



/* HERO */

.hero{

height:80vh;

background:#7A9E7E;

display:flex;
align-items:center;
justify-content:center;
text-align:center;

color:white;

}



.hero h2{

font-family:'Lora', Georgia, serif;
font-size:42px;
font-weight:600;
margin-bottom:20px;

}



.cta{

display:inline-block;

margin-top:20px;

background:#C98B73;

color:white;

padding:15px 30px;

border-radius:8px;

text-decoration:none;

font-weight:bold;

}



/* SOBRE */

.sobre{

padding:80px 0;

background:white;

}



.sobre-grid{

display:grid;

grid-template-columns:1fr 1fr;

gap:40px;

align-items:center;

margin-top:40px;

}



/* IMAGENS */

.img-card{

width:100%;
max-width:420px;

border-radius:18px;

box-shadow:
0 10px 25px rgba(0,0,0,0.15);

}



/* BENEFICIOS */

.beneficios{

background:white;

padding:80px 0;

text-align:center;

border-top:1px solid rgba(0,0,0,0.06);

}



.cards{

display:flex;

flex-wrap:wrap;

justify-content:center;

gap:25px;

margin-top:40px;

}



.card{

flex:0 1 calc(33.333% - 17px);

min-width:220px;

background:white;

color:#3E4348;

text-align:left;

padding:30px;

border-radius:12px;

border-top:3px solid #7A9E7E;

box-shadow:0 4px 18px rgba(0,0,0,0.06);

transition:0.3s;

}



.card h3{

color:#7A9E7E;

font-family:'Lora', Georgia, serif;

font-size:19px;

margin-bottom:10px;

}



.card p{

font-size:15px;

line-height:1.6;

color:#5b6167;

}



.card:hover{

transform:translateY(-6px);

box-shadow:0 10px 26px rgba(0,0,0,0.1);

}



/* VIDEO */

.video-section{

padding:80px 0;

text-align:center;

background:white;

border-top:1px solid rgba(0,0,0,0.06);

}

.video-box{

margin-top:40px;

max-width:350px;

margin-left:auto;
margin-right:auto;

border-radius:20px;

overflow:hidden;

box-shadow:0 15px 35px rgba(0,0,0,0.2);

}



/* CONTATO */

.contato{

padding:80px 0;

text-align:center;

background:white;

border-top:1px solid rgba(0,0,0,0.06);

}



/* FOOTER */

footer{

background:#3E4348;
color:white;

text-align:center;

padding:20px;

}



/* ANIMAÇÃO */

.reveal{

opacity:0;
transform:translateY(60px);
transition:all 0.8s ease;

}

.reveal.active{

opacity:1;
transform:translateY(0);

}


/* depoimentos */

.depoimentos{

padding:80px 0;

text-align:center;

background:white;

border-top:1px solid rgba(0,0,0,0.06);

}


.slider{

width:60%;

margin:auto;

font-style:italic;

margin-top:30px;

}


.slide{

display:none;

}


.slide.active{

display:block;

}


.depoimento-img{

margin-top:50px;

}

/* CONTATO FORM */

.contato{
padding:80px 0;
text-align:center;
background:#ffffff;
}

.contato h2{
font-size:32px;
margin-bottom:40px;
color:#7A9E7E;
}


/* FORM */

.contato form{

max-width:700px;
margin:auto;

display:grid;

grid-template-columns:1fr 1fr;
gap:20px;

background:white;

padding:40px;

border-radius:15px;

border:1px solid rgba(0,0,0,0.08);

box-shadow:0 10px 25px rgba(0,0,0,0.06);

}


/* INPUTS */

.contato input,
.contato textarea{

width:100%;

padding:14px;

border:1px solid #ddd;

border-radius:8px;

font-size:15px;

outline:none;

transition:0.3s;

}


.contato input:focus,
.contato textarea:focus{

border-color:#7A9E7E;

box-shadow:0 0 0 2px rgba(122,158,126,0.2);

}


/* TEXTAREA ocupa linha inteira */

.contato textarea{

grid-column:span 2;

min-height:120px;

resize:vertical;

}


/* BOTÃO */

.contato button{

grid-column:span 2;

background:#7A9E7E;

color:white;

border:none;

padding:14px;

font-size:16px;

font-weight:bold;

border-radius:8px;

cursor:pointer;

transition:0.3s;

}


.contato button:hover{

background:#5e7f61;

transform:translateY(-2px);

}

/* SOBRE TEXTO */

.sobre-texto{

display:flex;
flex-direction:column;
gap:20px;

font-family:'Lora', Georgia, serif;
font-size:16.5px;
line-height:1.9;
color:#3E4348;
text-align:left;

background:white;
border-radius:18px;
padding:38px 42px;
box-shadow:0 6px 24px rgba(0,0,0,0.07);
border:1px solid rgba(122,158,126,0.22);

}

/* Primeiro parágrafo como saudação em destaque */
.sobre-texto p:first-child{
font-size:18px;
font-weight:600;
font-style:italic;
color:#7A9E7E;
}

/* Frase de destaque com separador */
.sobre-texto .destaque{
font-family:'Lora', Georgia, serif;
font-size:15.5px;
font-weight:600;
font-style:italic;
color:#7A9E7E;
margin-top:4px;
padding-top:18px;
border-top:1px solid rgba(122,158,126,0.25);
}

.destaque{

font-size:18px;

font-weight:bold;

color:#7A9E7E;

margin-top:8px;

}


/* REDES SOCIAIS — seção Quem sou eu */

.sobre-social{

display:none;
flex-direction:column;
gap:10px;
padding-top:18px;
border-top:1px solid rgba(122,158,126,0.22);
margin-top:4px;

}

.sobre-social-label{

font-family:'Lora', Georgia, serif;
font-size:13px;
font-style:italic;
color:#aaa;

}

.sobre-social-links{

display:flex;
gap:10px;
flex-wrap:wrap;
list-style:none;

}

.social-btn{

display:none;
width:42px;
height:42px;
border-radius:50%;
background:rgba(122,158,126,0.08);
border:1.5px solid rgba(122,158,126,0.28);
color:#7A9E7E;
align-items:center;
justify-content:center;
transition:all 0.25s ease;
flex-shrink:0;
text-decoration:none;

}

.social-btn:hover{

background:#7A9E7E;
border-color:#7A9E7E;
color:white;
transform:translateY(-3px);
box-shadow:0 6px 16px rgba(122,158,126,0.35);

}

.social-btn svg{

width:17px;
height:17px;

}


/* METODO */

.metodo{

padding:80px 0;

background:white;

text-align:center;

border-top:1px solid rgba(0,0,0,0.06);

}

.metodo h2{

font-size:32px;

margin-bottom:20px;

color:#7A9E7E;

}

.metodo-intro{

max-width:700px;

margin:auto;

margin-bottom:30px;

font-size:18px;

color:#3E4348;

}

.metodo-subtitulo{

font-size:18px;

font-weight:bold;

color:#3E4348;

margin-bottom:20px;

}

.metodo-lista{

list-style:none;

max-width:500px;

margin:auto;

margin-bottom:40px;

text-align:left;

}

.metodo-lista li{

padding:10px 0 10px 30px;

font-size:17px;

color:#3E4348;

border-bottom:1px solid #e4ddd5;

position:relative;

}

.metodo-lista li::before{

content:"";
position:absolute;
left:0;
top:19px;
width:8px;
height:8px;
border-radius:50%;
background:#7A9E7E;

}

.metodo-encerramento{

max-width:700px;

margin:auto;

font-size:17px;

font-style:italic;

color:#3E4348;

line-height:1.7;

}


/* HISTÓRIA */

.historia{

padding:100px 0;

background:#7A9E7E;

text-align:center;

color:white;

}

.historia h2{

font-family:'Lora', Georgia, serif;
font-size:36px;
font-weight:600;
margin-bottom:40px;

}

.historia-content{

max-width:700px;

margin:auto;

display:flex;

flex-direction:column;

gap:18px;

font-size:18px;

line-height:1.8;

}

.historia .destaque{

color:#F5F1EA;

font-size:20px;

margin-top:10px;

}


/* CHAMADA FINAL */

.chamada-final{

padding:100px 0;

background:#7A9E7E;

text-align:center;

color:white;

}

.chamada-final h2{

font-size:34px;

margin-bottom:20px;

}

.chamada-final p{

font-size:18px;

max-width:650px;

margin:auto;

margin-bottom:40px;

line-height:1.7;

opacity:0.92;

}

.chamada-final .cta{

background:white;

color:#7A9E7E;

font-size:18px;

padding:16px 40px;

}

.chamada-final .cta:hover{

background:#F5F1EA;

}



/* ================================
   AUTH BUTTON
   ================================ */

.btn-login{

margin-left:20px;
padding:8px 18px;
background:#C98B73;
color:white;
border:none;
border-radius:8px;
font-weight:bold;
font-size:14px;
cursor:pointer;
transition:0.3s;

}

.btn-login:hover{

background:#b57860;

}


/* ================================
   MODAL AUTH
   ================================ */

.modal-overlay{

display:none;
position:fixed;
inset:0;
background:rgba(0,0,0,0.55);
z-index:200;
align-items:center;
justify-content:center;

}

.modal-overlay.ativo{

display:flex;

}

.modal-box{

background:white;
border-radius:18px;
padding:40px;
width:90%;
max-width:420px;
position:relative;

}

.modal-fechar{

position:absolute;
top:14px;
right:18px;
background:none;
border:none;
font-size:26px;
cursor:pointer;
color:#3E4348;
line-height:1;

}

.modal-tabs{

display:flex;
gap:10px;
margin-bottom:28px;

}

.tab-btn{

flex:1;
padding:10px;
border:2px solid #7A9E7E;
border-radius:8px;
background:white;
color:#7A9E7E;
font-weight:bold;
cursor:pointer;
transition:0.3s;

}

.tab-btn.active{

background:#7A9E7E;
color:white;

}

.modal-form{

display:none;
flex-direction:column;
gap:14px;

}

.modal-form.active{

display:flex;

}

.modal-form h3{

font-size:22px;
color:#3E4348;
margin-bottom:4px;

}

.modal-form input{

padding:13px;
border:1px solid #ddd;
border-radius:8px;
font-size:15px;
outline:none;
transition:0.3s;

}

.modal-form input:focus{

border-color:#7A9E7E;
box-shadow:0 0 0 2px rgba(122,158,126,0.2);

}

.modal-form button[type="submit"]{

background:#C98B73;
color:white;
border:none;
padding:13px;
border-radius:8px;
font-size:16px;
font-weight:bold;
cursor:pointer;
transition:0.3s;
margin-top:4px;

}

.modal-form button[type="submit"]:hover{

background:#b57860;

}

.modal-msg-erro{

color:#C98B73;
font-size:14px;
font-weight:bold;
min-height:18px;

}

.footer-dev-link{

display:block;
margin-top:8px;
color:rgba(255,255,255,0.4);
font-size:12px;
text-decoration:none;

}

.footer-dev-link:hover{

color:rgba(255,255,255,0.75);

}


/* ================================
   HAMBURGER / NAV OVERLAY (até 768px)
   ================================ */

@media (max-width:768px){

  .hamburger{
    display:block;
  }

  /* Nav vira overlay fixo, tela cheia */
  nav#nav-menu{

    position:fixed;
    inset:0;
    background:rgba(42,47,52,0.93);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    z-index:90;

    opacity:0;
    pointer-events:none;
    transition:opacity 0.35s ease;

    gap:0;

  }

  nav#nav-menu.ativo{
    opacity:1;
    pointer-events:all;
  }

  nav#nav-menu a{

    display:block;
    width:280px;
    text-align:center;

    padding:20px 0;
    margin:0;

    color:rgba(255,255,255,0.88);
    font-size:18px;
    font-weight:bold;
    letter-spacing:0.5px;
    text-decoration:none;

    border-bottom:1px solid rgba(255,255,255,0.1);

    transition:all 0.25s ease;

  }

  nav#nav-menu a:first-child{
    border-top:1px solid rgba(255,255,255,0.1);
  }

  nav#nav-menu a:hover{
    background:rgba(255,255,255,0.07);
    color:#a5c2a8;
    letter-spacing:2px;
  }

}


/* ================================
   TABLET (até 900px)
   ================================ */

@media (max-width:900px){

  .hero h2{
    font-size:32px;
  }

  .sobre-grid{
    grid-template-columns:1fr;
    text-align:center;
  }

  .img-card{
    margin:auto;
  }

  .card{
    flex:0 1 calc(50% - 13px);
  }

  .historia h2{
    font-size:30px;
  }

  .historia-content{
    font-size:16px;
    padding:0 20px;
  }

  .chamada-final h2{
    font-size:28px;
  }

  .video-box{
    max-width:100%;
  }

}



/* ================================
   MOBILE (até 600px)
   ================================ */

@media (max-width:600px){

  .btn-login{
    font-size:12px;
    padding:6px 12px;
  }

  .hero{
    height:auto;
    padding:80px 20px;
  }

  .hero h2{
    font-size:24px;
  }

  .hero p{
    font-size:15px;
  }

  .sobre{
    padding:60px 0;
  }

  .sobre-grid{
    grid-template-columns:1fr;
    text-align:center;
  }

  .sobre-texto{
    padding:24px 22px;
    border-radius:14px;
    font-size:15.5px;
  }

  .img-card{
    margin:auto;
  }

  .card{
    flex:0 1 100%;
  }

  .beneficios{
    padding:60px 0;
  }

  .slider{
    width:90%;
  }

  .contato form{
    grid-template-columns:1fr;
    padding:25px 20px;
  }

  .contato textarea,
  .contato button{
    grid-column:span 1;
  }

  .metodo{
    padding:60px 0;
  }

  .metodo h2,
  .contato h2{
    font-size:26px;
  }

  .metodo-lista{
    padding:0 10px;
  }

  .historia{
    padding:60px 0;
  }

  .historia h2{
    font-size:26px;
  }

  .historia-content{
    font-size:15px;
    padding:0 20px;
  }

  .chamada-final{
    padding:60px 20px;
  }

  .chamada-final h2{
    font-size:24px;
  }

  .chamada-final p{
    font-size:16px;
  }

  .video-section{
    padding:60px 0;
  }

  .video-box{
    max-width:100%;
  }

  .depoimentos{
    padding:60px 20px;
  }

  .depoimento-img img{
    max-width:90%;
  }

}
