:root{
  --pedra:#EFECE6;
  --papel:#FFFFFF;
  --tinta:#15171A;
  --fumo:#6E6E68;
  --linha:#D8D3C8;
  --brasa:#9A7B4F;
  --serif:'Jost',system-ui,sans-serif;
  --corpo:'Inter',system-ui,sans-serif;
  --gut:clamp(20px,5vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--pedra);color:var(--tinta);font-family:var(--corpo);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
::selection{background:var(--tinta);color:var(--pedra)}
:focus-visible{outline:2px solid var(--brasa);outline-offset:3px}

.wrap{max-width:1280px;margin:0 auto;padding:0 var(--gut)}
.sec{padding:clamp(64px,10vw,132px) 0}
.eyebrow{font-family:var(--serif);font-weight:400;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--brasa);display:flex;align-items:center;gap:14px}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--linha);max-width:120px}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.08;letter-spacing:-.015em}
h2{font-size:clamp(30px,4.6vw,54px)}
h3{font-size:clamp(21px,2.4vw,27px);font-weight:400;letter-spacing:0}
p{max-width:62ch;color:#3A3C3E}
.lead{font-size:clamp(18px,2vw,21px);color:#3A3C3E}
.muted{color:var(--fumo)}

/* botoes */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif);font-size:13px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:17px 30px;border:1px solid var(--tinta);background:var(--tinta);color:var(--pedra);transition:.35s cubic-bezier(.2,.7,.3,1);border-radius:2px}
.btn:hover{background:transparent;color:var(--tinta)}
.btn.ghost{background:transparent;color:var(--tinta);border-color:var(--linha)}
.btn.ghost:hover{border-color:var(--tinta)}
.btn.light{background:var(--pedra);color:var(--tinta);border-color:var(--pedra)}
.btn.light:hover{background:transparent;color:var(--pedra)}
.btn svg{width:15px;height:15px;flex:none}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:60;transition:.4s;padding:20px 0}
header.scrolled{background:rgba(239,236,230,.9);backdrop-filter:blur(14px);padding:12px 0;border-bottom:1px solid var(--linha)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}
.nav img{height:52px;width:auto;transition:.4s}
header.scrolled .nav img{height:40px}
.links{display:flex;gap:30px;font-family:var(--serif);font-size:12.5px;letter-spacing:.13em;text-transform:uppercase}
.links a{text-decoration:none;color:var(--pedra);opacity:.92;position:relative;padding-bottom:3px}
.links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:.3s}
.links a:hover::after{width:100%}
header.scrolled .links a{color:var(--tinta)}
header .btn{padding:12px 20px;font-size:11.5px}
header:not(.scrolled) .btn{background:transparent;border-color:rgba(239,236,230,.55);color:var(--pedra)}
header:not(.scrolled) .btn:hover{background:var(--pedra);color:var(--tinta)}
@media(max-width:900px){.links{display:none}header .btn span{display:none}header .btn{padding:12px 14px}}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--pedra);isolation:isolate}
.hero picture,.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,11,12,.55) 0%,rgba(10,11,12,.15) 38%,rgba(10,11,12,.82) 100%)}
.hero-in{padding-bottom:clamp(46px,7vw,86px);padding-top:140px;width:100%}
.hero h1{font-size:clamp(38px,6.4vw,84px);max-width:16ch}
.hero .lead{color:rgba(239,236,230,.86);margin-top:22px;max-width:52ch}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero .eyebrow{color:rgba(239,236,230,.8);margin-bottom:20px}
.hero .eyebrow::after{background:rgba(239,236,230,.3)}

/* faixa */
.faixa{border-top:1px solid rgba(239,236,230,.22);margin-top:clamp(38px,6vw,64px);padding-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;font-family:var(--serif);font-size:13px;letter-spacing:.06em;color:rgba(239,236,230,.8)}
@media(max-width:760px){.faixa{grid-template-columns:1fr;gap:10px;font-size:12.5px}}

/* manifesto */
.dark{background:var(--tinta);color:var(--pedra)}
.dark p{color:rgba(239,236,230,.75)}
.dark .eyebrow::after{background:rgba(239,236,230,.22)}
.manifesto-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,88px);align-items:center}
.manifesto-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.quote{font-family:var(--serif);font-weight:300;font-size:clamp(25px,3.3vw,40px);line-height:1.24;letter-spacing:-.01em;color:var(--pedra);max-width:20ch;margin:26px 0}
.assina{display:flex;align-items:center;gap:14px;margin-top:34px;font-family:var(--serif);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:rgba(239,236,230,.65)}
.assina::before{content:"";width:42px;height:1px;background:var(--brasa)}
@media(max-width:860px){.manifesto-grid{grid-template-columns:1fr}.manifesto-grid img{aspect-ratio:3/2}}

/* fase */
.fases{margin-top:46px;border-top:1px solid var(--linha)}
.fase{border-bottom:1px solid var(--linha)}
.fase-head{width:100%;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--serif);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:26px 4px;color:var(--tinta);transition:.3s}
.fase-head:hover{padding-left:12px}
.fase-num{font-size:12px;letter-spacing:.16em;color:var(--brasa)}
.fase-tit{font-size:clamp(20px,2.7vw,31px);font-weight:300;letter-spacing:-.01em}
.fase-plus{width:22px;height:22px;position:relative;flex:none}
.fase-plus::before,.fase-plus::after{content:"";position:absolute;background:var(--tinta);transition:.35s}
.fase-plus::before{left:0;top:10.5px;width:22px;height:1px}
.fase-plus::after{left:10.5px;top:0;width:1px;height:22px}
.fase[aria-expanded="true"] .fase-plus::after{transform:rotate(90deg);opacity:0}
.fase-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.7,.3,1)}
.fase[aria-expanded="true"] .fase-body{grid-template-rows:1fr}
.fase-inner{overflow:hidden}
.fase-content{padding:0 0 34px 0;max-width:60ch;margin-left:clamp(0px,4vw,52px)}
.fase-content p{margin-bottom:20px}

/* materiais */
.mats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px);margin-top:52px}
.mat img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px;transition:.6s}
.mat{overflow:hidden}
.mat:hover img{transform:scale(1.035)}
.mat h3{margin:20px 0 8px}
.mat p{font-size:15.5px;color:var(--fumo);line-height:1.6}
.mat .tag{font-family:var(--serif);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brasa)}
@media(max-width:920px){.mats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.mats{grid-template-columns:1fr}.mat img{aspect-ratio:4/3}}

.destaque{border:1px solid var(--linha);padding:clamp(24px,4vw,44px);margin-top:52px;display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,46px);align-items:start;border-radius:2px;background:rgba(255,255,255,.5)}
.destaque .eyebrow{white-space:nowrap}
@media(max-width:760px){.destaque{grid-template-columns:1fr}}

/* portfolio */
.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.4vw,18px);margin-top:52px}
.galeria figure{position:relative;cursor:zoom-in;border-radius:2px;overflow:hidden;background:#E4E0D8}
.galeria img{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.galeria figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 16px 14px;font-family:var(--serif);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#fff;background:linear-gradient(transparent,rgba(10,11,12,.78));opacity:0;transform:translateY(6px);transition:.45s}
.galeria figure:hover img{transform:scale(1.05)}
.galeria figure:hover figcaption{opacity:1;transform:none}
@media(hover:none){.galeria figcaption{opacity:1;transform:none}}
@media(max-width:900px){.galeria{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.galeria{grid-template-columns:1fr;gap:12px}}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(12,13,14,.94);z-index:100;display:none;align-items:center;justify-content:center;padding:24px}
.lb.on{display:flex}
.lb img{max-width:92vw;max-height:88vh;object-fit:contain}
.lb button{position:absolute;top:22px;right:24px;background:none;border:1px solid rgba(239,236,230,.4);color:var(--pedra);width:44px;height:44px;cursor:pointer;font-size:20px;line-height:1;border-radius:2px}

/* processo */
.passos{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,2vw,28px);margin-top:56px;counter-reset:p}
.passo{border-top:1px solid rgba(239,236,230,.28);padding-top:22px}
.passo .n{font-family:var(--serif);font-size:12px;letter-spacing:.18em;color:var(--brasa);display:block;margin-bottom:14px}
.passo h3{color:var(--pedra);margin-bottom:10px;font-size:20px}
.passo p{font-size:15px;line-height:1.6}
@media(max-width:980px){.passos{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.passos{grid-template-columns:1fr}}
.promessa{font-family:var(--serif);font-weight:300;font-size:clamp(22px,3vw,34px);line-height:1.3;max-width:24ch;margin-top:clamp(48px,7vw,84px);color:var(--pedra)}

/* diferenciais */
.difs{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:52px;border-top:1px solid var(--linha)}
.dif{border-bottom:1px solid var(--linha);padding:32px 0;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}
.dif:nth-child(odd){padding-right:clamp(16px,4vw,60px)}
.dif:nth-child(even){padding-left:clamp(16px,4vw,60px);border-left:1px solid var(--linha)}
.dif .n{font-family:var(--serif);font-size:12px;letter-spacing:.16em;color:var(--brasa);padding-top:6px}
.dif p{font-size:15.5px;color:var(--fumo);margin-top:8px}
@media(max-width:760px){.difs{grid-template-columns:1fr}.dif:nth-child(even){padding-left:0;border-left:0}.dif:nth-child(odd){padding-right:0}}

/* arquitetos */
.arq{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,6vw,80px);align-items:center}
@media(max-width:860px){.arq{grid-template-columns:1fr}}

/* faq */
.faq{margin-top:48px;border-top:1px solid var(--linha);max-width:940px}
.q{border-bottom:1px solid var(--linha)}
.q button{width:100%;background:none;border:0;cursor:pointer;text-align:left;padding:24px 40px 24px 0;font-family:var(--serif);font-size:clamp(17px,2vw,21px);font-weight:400;color:var(--tinta);position:relative}
.q button::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--brasa);transition:.3s}
.q[aria-expanded="true"] button::after{content:"–"}
.q-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.2,.7,.3,1)}
.q[aria-expanded="true"] .q-body{grid-template-rows:1fr}
.q-inner{overflow:hidden}
.q p{padding:0 40px 28px 0;font-size:16px;color:var(--fumo)}

/* cta final */
.final{position:relative;color:var(--pedra);isolation:isolate;background:var(--tinta)}
.final img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;opacity:.5}
.final::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(15,17,20,.86),rgba(15,17,20,.94))}
.final p,.final .lead{color:rgba(239,236,230,.85)}
.final .atalho{color:rgba(239,236,230,.75)}
.final-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,86px);align-items:start}
@media(max-width:900px){.final-grid{grid-template-columns:1fr}}
.form{display:grid;gap:16px}
.field label{display:block;font-family:var(--serif);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(239,236,230,.6);margin-bottom:7px}
.field input,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(239,236,230,.3);color:var(--pedra);font-family:var(--corpo);font-size:16px;padding:11px 0;border-radius:0}
.field select option{background:#15171A;color:#EFECE6}
.field input:focus,.field select:focus{outline:none;border-bottom-color:var(--brasa)}
.form .btn{margin-top:12px;justify-content:center;border:0;cursor:pointer;font-family:var(--serif)}
.form .btn[disabled]{opacity:.38;cursor:not-allowed;background:transparent;color:rgba(239,236,230,.7);border:1px solid rgba(239,236,230,.3)}
.form .btn[disabled]:hover{background:transparent;color:rgba(239,236,230,.7)}
.field input.erro,.field select.erro{border-bottom-color:#C4574B}
.form-nota{font-size:13px;color:rgba(239,236,230,.5)}
.atalho{margin-top:26px;font-size:15px;color:rgba(239,236,230,.7)}
.atalho a{color:var(--pedra)}

/* footer */
footer{background:var(--tinta);color:rgba(239,236,230,.62);border-top:1px solid rgba(239,236,230,.14);padding:clamp(48px,7vw,80px) 0 34px}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:clamp(28px,5vw,60px)}
footer img{height:70px;margin-bottom:22px}
footer h4{font-family:var(--serif);font-weight:400;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--pedra);margin-bottom:16px}
footer a{text-decoration:none}
footer a:hover{color:var(--pedra)}
footer p,footer li{font-size:14.5px;line-height:1.85;color:rgba(239,236,230,.62)}
footer ul{list-style:none}
.cidades{margin-top:44px;padding-top:24px;border-top:1px solid rgba(239,236,230,.14);font-size:13px;color:rgba(239,236,230,.45);display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between}
@media(max-width:800px){.foot-grid{grid-template-columns:1fr}}

/* flutuante */
.float{position:fixed;right:20px;bottom:20px;z-index:70;width:56px;height:56px;border-radius:50%;background:var(--tinta);color:var(--pedra);display:grid;place-items:center;text-decoration:none;opacity:0;transform:translateY(14px);pointer-events:none;transition:.45s;box-shadow:0 10px 30px rgba(0,0,0,.22)}
.float.on{opacity:1;transform:none;pointer-events:auto}
.float:hover{background:var(--brasa)}
.float svg{width:26px;height:26px}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}
/* destaque do formulario quando chamado por um CTA */
.form{transition:box-shadow .45s ease, transform .45s ease}
.form.destaque{box-shadow:0 0 0 2px rgba(255,255,255,.55), 0 24px 60px rgba(0,0,0,.28);transform:translateY(-2px)}
@media (prefers-reduced-motion: reduce){.form.destaque{transform:none}}
