/* O Caminho · LP construção personalizada
   Convertido do template Elementor (nativo-o-caminho.json). */

:root{
  --verde:#12342A; --verde-2:#1B4A3B; --terra:#B26A3B; --terra-2:#C98552;
  --creme:#F6F1E8; --creme-2:#EDE5D6; --tinta:#1E1D1A; --cinza:#5B5750;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--creme); color:var(--tinta); font-family:Outfit,system-ui,sans-serif; font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3,p,ul,ol,blockquote,figure{margin:0;}
img{max-width:100%; height:auto;}
a{color:inherit;}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

.wrap{max-width:1180px; margin-inline:auto; padding-inline:20px;}
.sec{padding-block:96px;}
.duas{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}

/* tipografia base */
.eyebrow{font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); font-weight:600; line-height:1.4;}
h2{font-size:clamp(30px,4.2vw,48px); font-weight:800; color:var(--verde); line-height:1.08; letter-spacing:-.01em; margin:.35em 0 .5em; text-wrap:balance;}
h2 em{font-style:normal; color:var(--terra);}
.lead{font-size:18px; color:var(--cinza); max-width:620px; margin:0 0 16px;}
.forte{color:var(--verde); font-weight:600; font-size:18px;}

/* botões */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:14px; background:var(--verde); color:#fff; font:600 17px/1.3 Outfit,system-ui,sans-serif; padding:17px 26px; border:0; border-radius:999px; box-shadow:0 0 0 1.5px var(--terra) inset; text-decoration:none; cursor:pointer; transition:transform .2s,background .2s;}
.btn:hover{background:var(--verde-2); transform:translateY(-1px);}
.btn:focus-visible,summary:focus-visible,.form :is(input,select):focus-visible{outline:3px solid var(--terra-2); outline-offset:3px;}
.centro{text-align:center; margin-top:44px;}
.micro{font-size:14px; color:var(--cinza); margin-top:12px;}

/* 01 topo */
.topo{position:relative; overflow:hidden; padding-block:40px 90px; min-height:min(860px,100svh); display:flex; align-items:center;
  background:linear-gradient(90deg,var(--creme) 0%,var(--creme) 36%,rgba(246,241,232,.85) 46%,rgba(246,241,232,0) 66%),url(../assets/hero-casa.webp) right center/auto 100% no-repeat,var(--creme);}
.topo .wrap{width:100%;}
.logo{display:block; height:58px; width:auto; margin-bottom:60px;}
h1{font-size:clamp(40px,5.6vw,70px); font-weight:800; text-transform:uppercase; color:var(--verde); line-height:1.04; letter-spacing:-.015em; margin:16px 0 22px; max-width:600px;}
h1 span{color:var(--terra);}
.sub{font-size:clamp(17px,1.7vw,20px); color:#3c3a35; max-width:520px; margin-bottom:30px;}
.sub::after{content:""; display:block; width:56px; height:3px; background:var(--terra); margin-top:28px;}

/* 02 números */
.numeros{background:var(--verde); color:#fff;}
.numeros .grade{display:grid; grid-template-columns:repeat(4,1fr);}
.numeros .n{padding:34px 22px; border-left:1px solid rgba(255,255,255,.12);}
.numeros .n:first-child{border-left:0;}
.numeros b{display:block; font-size:clamp(28px,3vw,38px); font-weight:700; color:var(--terra-2); line-height:1.1;}
.numeros small{font-size:14.5px; opacity:.85; display:block; margin-top:6px; line-height:1.4;}
.numeros .ast{font-size:12.5px; opacity:.6; padding:0 22px 20px;}

/* 03 dor */
.medos{display:grid; gap:12px;}
.medo{background:#fff; border-radius:18px; padding:20px 22px; display:flex; gap:16px; align-items:flex-start;}
.medo i{flex:none; width:34px; height:34px; border-radius:50%; background:#F3E2D5; color:var(--terra); display:grid; place-items:center; font-style:normal; font-weight:700;}
.medo strong{display:block; color:var(--verde);}
.medo s{color:var(--cinza); text-decoration-color:var(--terra);}

/* 04 como funciona */
.passos{background:#fff;}
.trilha{list-style:none; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:48px; position:relative;}
.trilha::before{content:""; position:absolute; top:27px; left:6%; right:6%; height:2px; background:repeating-linear-gradient(90deg,var(--terra) 0 8px,transparent 8px 16px);}
.trilha li{position:relative;}
.bola{width:56px; height:56px; border-radius:50%; background:var(--verde); color:#fff; display:grid; place-items:center; font-weight:700; font-size:20px; margin-bottom:18px; box-shadow:0 0 0 6px #fff;}
.trilha h3{font-size:20px; color:var(--verde); margin-bottom:6px;}
.trilha p{font-size:15.5px; color:var(--cinza); line-height:1.5;}

/* 05 incluso */
.caixa{display:grid; grid-template-columns:1fr 1fr; border-radius:28px; overflow:hidden; background:var(--verde); color:#fff;}
.caixa .txt{padding:56px;}
.caixa .eyebrow{color:var(--terra-2);}
.caixa h2{font-size:clamp(30px,4.2vw,44px); line-height:1.1; margin:.35em 0 .4em; color:#fff;}
.caixa .foto{background:url(../assets/casa-acacia.webp) center/cover; min-height:420px;}
.caixa ul{list-style:none; display:grid; gap:14px; margin:26px 0 30px; padding:0;}
.caixa li{display:flex; gap:12px; align-items:center; font-size:18px;}
.caixa li::before{content:""; flex:none; width:22px; height:22px; border-radius:50%; background:var(--terra) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/13px no-repeat;}
.preco{border-top:1px solid rgba(255,255,255,.15); padding-top:22px; font-size:15px; opacity:.9;}
.preco b{font-size:30px; color:var(--terra-2); display:block;}

/* 06 lugares */
.lugares .grade{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:18px; margin-top:40px;}
.lugar{border-radius:18px; overflow:hidden; position:relative; min-height:360px; background:var(--verde) center/cover no-repeat; color:#fff; display:flex; align-items:flex-end;}
.lugar::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(18,52,42,.92),rgba(18,52,42,.05) 65%);}
.lugar > div{position:relative; z-index:1; padding:26px;}
.lugar h3{font-size:24px; color:#fff;}
.lugar small{color:#F0C9A8; font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:12.5px;}
.lugar p{font-size:15.5px; opacity:.9; margin-top:6px;}

/* 07 projetos */
.projetos{background:var(--creme-2);}
.cards{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:24px;}
.card{background:#fff; border-radius:18px; overflow:hidden;}
.card img{aspect-ratio:4/3; object-fit:cover; width:100%; display:block;}
.card > div{padding:18px 18px 22px;}
.card h3{font-size:19px; color:var(--verde);}
.card small{color:var(--terra); font-weight:600; font-size:13px; letter-spacing:.04em; text-transform:uppercase;}
.card p{font-size:15px; color:var(--cinza); margin-top:4px;}

/* 08 + 09 terreno e pagamento */
.terreno-pag{padding-block:96px 0;}
.terreno-pag .duas{gap:18px; align-items:stretch;}
.bloco{border-radius:28px; padding:48px;}
.terreno{background:var(--terra); color:#fff;}
.terreno .eyebrow{color:#FBE3CF;}
.terreno h2{color:#fff;}
.terreno h2 em{color:var(--verde);}
.terreno .txt{font-size:18px; margin-bottom:24px;}
.pagamento{background:#fff;}
.chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
.chips span{border:1.5px solid var(--verde); color:var(--verde); border-radius:999px; padding:10px 18px; font-weight:600; font-size:15.5px;}

/* 10 depoimentos */
.depo .grade{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:24px;}
.depo blockquote{background:#fff; border-radius:18px; padding:36px; font-size:18px; color:#3c3a35;}
.depo blockquote::before{content:"\201C"; font-size:90px; line-height:.6; color:var(--terra); display:block; height:38px; font-weight:700;}
.depo cite{display:block; margin-top:18px; font-style:normal; font-weight:700; color:var(--verde);}


/* 11 faq */
.faq .duas{align-items:start;}
.faq details{border-bottom:1px solid #DCD3C2; padding:22px 0;}
.faq summary{cursor:pointer; font-weight:600; font-size:19px; color:var(--verde); list-style:none; display:flex; justify-content:space-between; gap:20px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; color:var(--terra); font-size:26px; line-height:1; transition:transform .25s;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details p{color:var(--cinza); margin-top:12px;}

/* 12 contato + formulário */
.contato{background:linear-gradient(rgba(14,40,32,.86),rgba(14,40,32,.86)),url(../assets/ninho-verde.webp) center/cover; color:#fff; scroll-margin-top:0;}
.contato .eyebrow{color:#FBE3CF;}
.contato h2{color:#fff; font-size:clamp(34px,4.6vw,56px);}
.contato h2 em{color:var(--terra-2);}
.contato .txt{color:rgba(255,255,255,.88); font-size:19px;}
.form{background:var(--creme); color:var(--tinta); border-radius:24px; padding:34px;}
.form-titulo{font-size:22px; color:var(--verde); line-height:1.25;}
.etapa-ind{color:var(--terra); font-weight:600; font-size:14px; margin:4px 0 18px;}
.etapa{border:0; padding:0; margin:0; min-width:0;}
.etapa-titulo{padding:0; font-weight:700; color:var(--verde); font-size:17px; margin-bottom:14px;}
.form label{display:block; font-size:14px; font-weight:600; color:#3c3a35; margin-bottom:14px;}
.form :is(input,select){display:block; width:100%; margin-top:6px; font:400 16px Outfit,system-ui,sans-serif; padding:14px 16px; border-radius:12px; border:1.5px solid #D8CFBF; background:#fff; color:var(--tinta); min-height:50px;}
.form select{appearance:none; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B26A3B' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center/18px no-repeat; padding-right:42px;}
.form [aria-invalid="true"]{border-color:#B3261E;}
.erro{display:block; color:#B3261E; font-size:13px; font-weight:500; margin-top:4px;}
.btn-form{width:100%; background:var(--terra); box-shadow:none; font-size:16px; padding:16px 22px; margin-top:6px;}
.btn-form:hover{background:var(--terra-2);}
.btn-voltar{width:100%; background:transparent; color:var(--verde); box-shadow:inset 0 0 0 1.5px var(--verde); font-size:15px; padding:12px 22px; margin-top:10px;}
.btn-voltar:hover{background:rgba(18,52,42,.06);}
.form-msg{font-size:14px; margin-top:12px; color:var(--verde); font-weight:500;}
.form-msg:empty{display:none;}

/* rodapé */
.rodape{background:#0D271F; color:#cfd8d3; padding-block:48px 110px; font-size:15px;}
.rodape .wrap{display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px;}
.rodape b{color:#fff;}
.ass{color:var(--terra-2); font-weight:600;}
.zap{position:fixed; right:calc(18px + env(safe-area-inset-right,0px)); bottom:calc(18px + env(safe-area-inset-bottom,0px)); z-index:50; width:60px; height:60px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 8px 24px rgba(0,0,0,.25);}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} .btn,.faq summary::after{transition:none;}}

/* celular */
@media (max-width:900px){
  .sec{padding-block:68px;}
  .topo{min-height:auto; padding-block:28px 340px; background:url(../assets/hero-casa.webp) center bottom/100% 300px no-repeat,var(--creme);}
  .logo{height:46px; margin-bottom:36px;}
  .numeros .grade{grid-template-columns:1fr 1fr;}
  .numeros .n:nth-child(3){border-left:0;}
  .numeros .n{border-top:1px solid rgba(255,255,255,.12);}
  .duas{grid-template-columns:1fr; gap:32px;}
  .trilha{grid-template-columns:1fr; gap:26px;}
  .trilha::before{top:10px; bottom:10px; left:27px; right:auto; width:2px; height:auto; background:repeating-linear-gradient(180deg,var(--terra) 0 8px,transparent 8px 16px);}
  .trilha li{display:grid; grid-template-columns:56px 1fr; gap:0 18px;}
  .bola{grid-row:span 2; margin:0;}
  .caixa{grid-template-columns:1fr;}
  .caixa .txt{padding:34px 24px;}
  .caixa .foto{min-height:240px; order:-1;}
  .lugares .grade{grid-template-columns:1fr;}
  .lugar{min-height:260px;}
  .cards{grid-template-columns:1fr 1fr; gap:12px;}
  .depo .grade{grid-template-columns:1fr;}
  .terreno-pag .duas{gap:18px;}
  .bloco{padding:32px 24px;}
  .form{padding:26px 20px;}
}
@media (max-width:420px){.cards{grid-template-columns:1fr;}}
