:root{--ink:#141414;--graf:#3c3c3c;--mid:#8a8a8a;--line:#e3e3e0;--paper:#f5f5f2;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Montserrat,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
.wrap{width:min(1200px,100% - 48px);margin:0 auto}
.eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:var(--mid)}
h2{font-size:clamp(28px,3.6vw,46px);font-weight:300;line-height:1.12;margin:14px 0 0;letter-spacing:-.01em}
h2 b{font-weight:700}
section.bloco{padding:120px 0}
@media(max-width:700px){section.bloco{padding:80px 0}}

/* botões */
.bt{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;border-radius:999px;background:#fff;color:var(--ink);font-weight:600;font-size:13px;letter-spacing:.04em;border:0;cursor:pointer;font-family:inherit;transition:transform .2s}
.bt:hover{transform:translateY(-1px)}
.bt.escuro{background:var(--ink);color:#fff}
.bt.contorno{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}
.bt svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.bt.wa svg{fill:currentColor;stroke:none;width:18px;height:18px}

/* topo */
.topo{position:fixed;inset:0 0 auto;z-index:50;transition:background .4s,box-shadow .4s}
.topo .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
.topo .marca svg{height:46px;width:auto}
.topo nav{display:flex;gap:30px;align-items:center;font-size:13px;font-weight:500;letter-spacing:.06em;color:#fff}
.topo nav a.lk{opacity:.85}.topo nav a.lk:hover,.topo nav a.lk.at{opacity:1}
.topo nav a.lk.at{border-bottom:1px solid #fff;padding-bottom:3px}
.topo.solido{background:rgba(20,20,20,.92);backdrop-filter:blur(10px)}
#atualizar{padding:9px 14px;font-size:12px}
@media(max-width:860px){.topo nav a.lk{display:none}.topo .marca svg{height:36px}}

/* rodapé */
footer{background:#0d0d0d;color:rgba(255,255,255,.6);padding:56px 0 40px;font-size:13px}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
footer .marca svg{height:44px;width:auto}
.dev{display:flex;align-items:center;gap:12px}
.dev img{height:22px;width:auto;filter:brightness(0) invert(1);opacity:.85}

/* contato */
.contato{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media(max-width:860px){.contato{grid-template-columns:1fr}}
form{display:grid;gap:14px}
input,textarea{font:inherit;font-size:15px;padding:16px 18px;border:1px solid var(--line);border-radius:4px;background:#fff;width:100%}
textarea{min-height:120px;resize:vertical}

/* carrossel de imagens */
.carrossel{position:relative;border-radius:6px;overflow:hidden;background:#222;aspect-ratio:4/5;max-height:82vh;width:100%}
.trilho{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.trilho::-webkit-scrollbar{display:none}
.trilho>img{flex:0 0 100%;height:100%;object-fit:cover;scroll-snap-align:start}
.selo-marcas{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:22px;padding:60px 24px 22px;background:linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,0));pointer-events:none}
.selo-marcas svg{height:40px;width:auto}.selo-marcas img{height:30px;width:auto}
.selo-marcas span{width:1px;height:30px;background:rgba(255,255,255,.45)}
.seta{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.9);display:grid;place-items:center;cursor:pointer;z-index:3}
.seta.e{left:16px}.seta.d{right:16px}
.seta svg{width:20px;height:20px;stroke:var(--ink);fill:none;stroke-width:1.6}
.pontos{position:absolute;top:18px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:3}
.pontos i{width:26px;height:2px;background:rgba(255,255,255,.4)}.pontos i.on{background:#fff}

.status{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:9px 16px;border:1px solid rgba(255,255,255,.5);border-radius:999px;color:#fff}
.status i{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulsa 1.6s infinite}
@keyframes pulsa{50%{opacity:.25}}

/* grades com zoom */
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-top:30px}
.grade button{border:0;padding:0;background:#e9e8e3;border-radius:4px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/5}
.grade img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.grade button:hover img{transform:scale(1.05)}
#lb{position:fixed;inset:0;z-index:90;background:rgba(10,10,10,.94);display:none;place-items:center;padding:24px;cursor:zoom-out}
#lb.on{display:grid}#lb img{max-height:92vh;max-width:92vw;border-radius:4px}

.revela{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}
.revela.on{opacity:1;transform:none}

/* ===== HOME ===== */
#voo{position:relative;height:594vh;background:#000}
#voo .palco{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}
#voo video,#voo .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#voo .veu{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,0) 70%),linear-gradient(0deg,rgba(0,0,0,.45),rgba(0,0,0,0) 35%)}
.cena{position:absolute;left:max(24px,calc((100vw - 1200px)/2));bottom:16vh;width:min(560px,100% - 48px);color:#fff;opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s;pointer-events:none}
.cena.on{opacity:1;transform:none;pointer-events:auto}
.cena .eyebrow{color:rgba(255,255,255,.7)}
.cena h1,.cena h2{font-size:clamp(26px,3.4vw,44px);font-weight:300;line-height:1.15;margin:14px 0 18px}
.cena b{font-weight:700}
.cena p{font-size:16px;line-height:1.7;color:rgba(255,255,255,.86);margin:0 0 22px}
.aviso{position:absolute;right:24px;bottom:20px;color:rgba(255,255,255,.6);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.barra{position:absolute;left:0;bottom:0;height:3px;background:#fff;width:0}
.rolar{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);color:#fff;font-size:11px;letter-spacing:.3em;text-transform:uppercase;opacity:.75;text-align:center;transition:opacity .4s}
.rolar i{display:block;width:1px;height:38px;margin:10px auto 0;background:linear-gradient(#fff,transparent);animation:desce 1.8s infinite}
@keyframes desce{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
#carga{position:absolute;right:24px;top:96px;color:rgba(255,255,255,.7);font-size:11px;letter-spacing:.14em}
.cab{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:56px;flex-wrap:wrap}
.cab p{max-width:420px;color:#555;line-height:1.7;margin:0}
.villa{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
@media(max-width:960px){.villa{grid-template-columns:1fr;gap:36px}}
.ficha{background:var(--ink);color:#fff;border-radius:6px;padding:56px 48px}
.ficha .logo-ve{width:min(300px,80%);margin:0 0 30px}
.ficha p{line-height:1.8;color:rgba(255,255,255,.75);margin:24px 0 30px}
.ficha .dados{display:flex;gap:28px;flex-wrap:wrap;margin:0 0 34px;padding:22px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.ficha .dados div{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.ficha .dados b{display:block;font-size:20px;letter-spacing:0;text-transform:none;color:#fff;font-weight:600;margin-top:6px}
.loft{margin-top:90px;position:relative;border-radius:6px;overflow:hidden;background:var(--ink);color:#fff;padding:72px 56px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.loft:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 80px)}
.loft>*{position:relative}
.loft h3{font-size:clamp(34px,5vw,64px);font-weight:200;letter-spacing:.3em;margin:10px 0 0}
.loft .eyebrow{color:rgba(255,255,255,.55)}
.loft .data{font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.escuro-sec{background:var(--ink);color:#fff}
.escuro-sec .eyebrow{color:rgba(255,255,255,.5)}
.pilares{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.12);margin-top:60px}
@media(max-width:860px){.pilares{grid-template-columns:1fr}}
.pilar{background:var(--ink);padding:44px 34px}
.pilar svg{width:40px;height:40px;stroke:#fff;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.pilar h4{font-size:18px;font-weight:600;margin:26px 0 12px;letter-spacing:.02em}
.pilar p{color:rgba(255,255,255,.66);line-height:1.75;margin:0;font-size:15px}
.manifesto{font-size:clamp(22px,2.6vw,34px);font-weight:300;line-height:1.5;max-width:900px;margin:18px 0 0}
.manifesto b{font-weight:600}

/* ===== VILLA ENEIDA ===== */
.ve-hero{position:relative;height:100vh;height:100dvh;min-height:620px;color:#fff;overflow:hidden;background:#111}
.ve-hero>img.fundo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;transform:scale(1.06);animation:aproxima 14s ease-out forwards}
@keyframes aproxima{to{transform:scale(1)}}
.ve-hero .veu{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.15) 60%),linear-gradient(0deg,rgba(0,0,0,.55),transparent 40%)}
.ve-hero .txt{position:absolute;left:max(24px,calc((100vw - 1200px)/2));bottom:12vh;width:min(560px,100% - 48px)}
.ve-hero .logo-ve{width:min(340px,75%);margin:0 0 26px}
.ve-hero p{font-size:18px;line-height:1.6;color:rgba(255,255,255,.85);margin:20px 0 28px;font-weight:300}
.ve-hero .tags{display:flex;gap:12px;flex-wrap:wrap}
.ve-hero .marcas{position:absolute;right:max(24px,calc((100vw - 1200px)/2));bottom:12vh;display:flex;align-items:center;gap:18px}
.ve-hero .marcas svg{height:38px;width:auto}.ve-hero .marcas img{height:28px}
.ve-hero .marcas span{width:1px;height:28px;background:rgba(255,255,255,.45)}
@media(max-width:860px){.ve-hero .marcas{top:96px;bottom:auto;left:24px;right:auto}}

/* carrossel-história */
.historia{background:var(--ink);color:#fff;padding:110px 0}
.historia .topo-h{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.historia .eyebrow{color:rgba(255,255,255,.5)}
.historia .contador{font-size:13px;letter-spacing:.2em;color:rgba(255,255,255,.6)}
.historia .contador b{font-size:34px;color:#fff;font-weight:300;letter-spacing:0}
.capitulos{position:relative;overflow:hidden;border-radius:6px}
.cap-trilho{display:flex;transition:transform .8s cubic-bezier(.7,0,.2,1)}
.cap{flex:0 0 100%;display:grid;grid-template-columns:1.25fr 1fr;min-height:560px;background:#1d1d1d}
.cap .foto{position:relative;overflow:hidden}
.cap .foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 6s ease-out}
.cap.on .foto img{transform:scale(1)}
.cap .texto{padding:64px 56px;display:flex;flex-direction:column;justify-content:center}
.cap .num{font-size:72px;font-weight:200;line-height:1;color:rgba(255,255,255,.18);margin-bottom:22px}
.cap h3{font-size:clamp(24px,2.6vw,34px);font-weight:300;line-height:1.2;margin:0 0 20px}
.cap h3 b{font-weight:700}
.cap p{color:rgba(255,255,255,.72);line-height:1.85;margin:0 0 14px;font-size:15.5px}
.cap ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px}
.cap li{display:flex;gap:12px;align-items:center;font-size:15px;color:rgba(255,255,255,.88)}
.cap li svg{width:20px;height:20px;flex:0 0 20px;stroke:#fff;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cap blockquote{margin:0 0 18px;font-size:22px;font-weight:300;line-height:1.5;font-style:italic;color:#fff}
.cap .texto>*{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}
.cap.on .texto>*{opacity:1;transform:none}
.cap.on .texto>*:nth-child(2){transition-delay:.12s}.cap.on .texto>*:nth-child(3){transition-delay:.24s}.cap.on .texto>*:nth-child(4){transition-delay:.36s}
@media(max-width:900px){.cap{grid-template-columns:1fr;min-height:0}.cap .foto{aspect-ratio:4/3}.cap .texto{padding:36px 26px}}
.cap-nav{display:flex;align-items:center;gap:18px;margin-top:28px}
.cap-nav button.s{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;display:grid;place-items:center;cursor:pointer}
.cap-nav button.s svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:1.6}
.cap-nav button.s:hover{background:rgba(255,255,255,.1)}
.cap-indice{display:flex;gap:6px;flex:1;flex-wrap:wrap}
.cap-indice button{flex:1;min-width:90px;background:none;border:0;border-top:2px solid rgba(255,255,255,.18);color:rgba(255,255,255,.45);padding:12px 0 0;text-align:left;font:inherit;font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;position:relative}
.cap-indice button.on{color:#fff}
.cap-indice button i{position:absolute;left:0;top:-2px;height:2px;background:#fff;width:0}
.cap-indice button.on i{animation:enche 9s linear forwards}
.cap-indice button.feito i{width:100%}
@keyframes enche{to{width:100%}}
@media(max-width:700px){.cap-indice button span{display:none}.cap-indice button{min-width:0}}

/* ficha técnica */
.ficha-tec{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:50px}
@media(max-width:860px){.ficha-tec{grid-template-columns:repeat(2,1fr)}}
.ficha-tec div{background:var(--paper);padding:34px 28px}
.ficha-tec svg{width:30px;height:30px;stroke:var(--ink);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.ficha-tec b{display:block;font-size:22px;font-weight:600;margin:18px 0 6px}
.ficha-tec span{font-size:13px;color:#666;line-height:1.5}
.ficha-tec{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:860px){.ficha-tec{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.ficha-tec div{padding:24px 16px}.ficha-tec b{font-size:17px;overflow-wrap:anywhere}.ve-hero .lado-txt{padding:36px 24px 56px}}
.cap{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.cap .texto{min-width:0}@media(max-width:900px){.cap{grid-template-columns:minmax(0,1fr)}}
.topo:before{content:"";position:absolute;left:0;right:0;top:0;height:150px;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.3) 50%,rgba(0,0,0,0) 100%);pointer-events:none;transition:opacity .4s;z-index:-1}.topo.solido:before{opacity:0}
footer .legal{font-size:12px;letter-spacing:.06em;line-height:1.7;text-align:center}

/* ---- 04/11 ajustes ---- */
/* cena final do voo: texto baixo, sem cobrir a TV */
.cena.final{bottom:6vh;width:min(470px,100% - 48px)}
.cena.final h2{font-size:clamp(22px,2.3vw,32px);margin:10px 0 12px}
.cena.final p{font-size:14.5px;margin:0 0 16px}

/* Empreendimentos: título + Villa Eneida cabem numa tela, caixas alinhadas */
#empreendimentos{padding-top:104px}
.cab-emp{margin-bottom:30px;align-items:end}
.cab-emp h2{font-size:clamp(26px,3vw,40px)}
.cab-emp p{max-width:none;font-size:15px;text-align:right}
@media(min-width:961px){
  .emp-tela .villa{height:max(460px,calc(100vh - 104px - 150px - 40px));align-items:stretch;gap:32px}
  .emp-tela .carrossel{aspect-ratio:auto;height:100%;max-height:none}
  .emp-tela .ficha{height:100%;display:flex;flex-direction:column;justify-content:center;padding:44px 48px}
  .emp-tela .ficha .logo-ve{width:min(340px,85%);margin-bottom:24px}
  .emp-tela .ficha p{margin:18px 0 22px}
  .emp-tela .ficha .dados{margin-bottom:26px}
  .emp-tela .ficha .bt{align-self:flex-start}
}
@media(max-width:960px){.cab-emp p{text-align:left}.cab-emp p br{display:none}}

/* rodapé: Instagram */
.rod-esq{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.insta{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:13px;opacity:.85;transition:opacity .2s}
.insta:hover{opacity:1}
.insta svg{width:22px;height:22px;fill:#fff}

/* pilares: ilustrações animadas */
.pilar .ilu{width:100%;max-width:240px;height:auto;display:block;margin-bottom:6px;overflow:visible}
.ilu path,.ilu rect,.ilu circle{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ilu .grade path{stroke:rgba(255,255,255,.08);stroke-width:1}
.ilu .traco{stroke-dasharray:1;stroke-dashoffset:1}
.pilares.on .ilu-arq .traco{animation:desenha 7s ease-in-out infinite}
.pilares.on .ilu-arq .t2{animation-delay:.5s}.pilares.on .ilu-arq .t3{animation-delay:1s}
.pilares.on .ilu-arq .t4{animation-delay:1.5s;stroke:rgba(255,255,255,.6)}.pilares.on .ilu-arq .t5{animation-delay:0s}
@keyframes desenha{0%{stroke-dashoffset:1}25%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:-1}}
.ilu-arq .esquadro path{stroke:rgba(255,255,255,.5);fill:rgba(255,255,255,.04)}
.pilares.on .ilu-arq .esquadro{animation:esquadro 7s ease-in-out infinite}
@keyframes esquadro{0%{transform:translateX(30px);opacity:0}15%,80%{transform:none;opacity:1}100%{opacity:0}}
.ilu-eng .chao{stroke:rgba(255,255,255,.5)}
.ilu-eng .fund{stroke:rgba(255,255,255,.35)}
.ilu-eng .andar{opacity:0}
.ilu-eng .andar path{stroke:rgba(255,255,255,.45)}
.pilares.on .ilu-eng .andar{animation:sobe 7s cubic-bezier(.2,.8,.2,1) infinite}
.pilares.on .ilu-eng .a2{animation-delay:.6s}.pilares.on .ilu-eng .a3{animation-delay:1.2s}.pilares.on .ilu-eng .a4{animation-delay:1.8s}
@keyframes sobe{0%{opacity:0;transform:translateY(-26px)}12%{opacity:1;transform:none}82%{opacity:1}96%,100%{opacity:0}}
.ilu-eng .grua path{stroke:rgba(255,255,255,.75)}
.ilu-eng .cabo,.ilu-eng .carga{transform-box:fill-box}
.pilares.on .ilu-eng .carga,.pilares.on .ilu-eng .cabo{animation:balanca 3.5s ease-in-out infinite;transform-origin:160px 18px}
@keyframes balanca{50%{transform:translateY(6px)}}
.ilu-val .eixo{stroke:rgba(255,255,255,.4)}
.ilu-val .barras rect{stroke:rgba(255,255,255,.3);fill:rgba(255,255,255,.05);transform-origin:center bottom;transform-box:fill-box;transform:scaleY(0)}
.pilares.on .ilu-val .barras rect{animation:cresce 7s cubic-bezier(.2,.8,.2,1) infinite}
.pilares.on .ilu-val .b2{animation-delay:.25s}.pilares.on .ilu-val .b3{animation-delay:.5s}.pilares.on .ilu-val .b4{animation-delay:.75s}.pilares.on .ilu-val .b5{animation-delay:1s}
@keyframes cresce{0%{transform:scaleY(0)}18%,82%{transform:scaleY(1)}100%{transform:scaleY(0)}}
.ilu-val .linha{stroke-width:2.2;stroke-dasharray:1;stroke-dashoffset:1}
.pilares.on .ilu-val .linha{animation:desenha 7s ease-in-out infinite;animation-delay:1s}
.ilu-val .seta,.ilu-val .ponto{opacity:0}
.ilu-val .ponto{fill:#fff}
.pilares.on .ilu-val .seta,.pilares.on .ilu-val .ponto{animation:aparece 7s ease-in-out infinite;animation-delay:1s}
@keyframes aparece{0%,22%{opacity:0}30%,80%{opacity:1}90%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.ilu *{animation:none!important;opacity:1!important;transform:none!important;stroke-dashoffset:0!important}}
@media(min-width:961px){.emp-tela .villa{height:max(460px,calc(100vh - 104px - 150px - 64px))}.emp-tela .ficha{padding:36px 44px}.emp-tela .ficha .logo-ve{width:min(280px,80%);margin-bottom:18px}}.ilu-val .ponta{opacity:0}.pilares.on .ilu-val .ponta{animation:aparece 7s ease-in-out infinite;animation-delay:1s}
/* logo Villa Eneida no box preto: recortado, centralizado e maior */
.ficha .logo-ve,.emp-tela .ficha .logo-ve{display:block;width:min(420px,92%);margin:0 auto 26px}
@media(min-width:961px){.emp-tela .ficha .logo-ve{width:min(400px,90%);margin:0 auto 22px}}

/* ===== páginas internas: termos, privacidade, FAQ ===== */
section.doc-topo{padding-top:170px}
.doc{max-width:820px}
.doc h1,.faq-tit{font-size:clamp(34px,4.6vw,58px);font-weight:300;line-height:1.08;margin:14px 0 0;letter-spacing:-.01em}
.doc h1 b,.faq-tit b{font-weight:700}
.doc-lead{font-size:18px;line-height:1.8;color:#444;margin:30px 0 10px}
.doc-data{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);margin:0 0 40px}
.doc-indice{display:flex;flex-wrap:wrap;gap:8px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:20px}
.doc-indice a{font-size:13px;color:var(--graf);text-decoration:none;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;transition:background .2s}
.doc-indice a:hover{background:var(--ink);color:#fff}
.doc h2{font-size:22px;font-weight:600;margin:52px 0 14px;scroll-margin-top:110px}
.doc p,.doc li{font-size:16px;line-height:1.85;color:#3a3a3a}
.doc ul{padding-left:20px;margin:10px 0}.doc li{margin:6px 0}
.doc a{color:var(--ink)}
.pendente{background:#e6e6e2;padding:2px 8px;border-radius:4px;font-weight:600}
/* FAQ */
.faq-wrap{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start}
.faq-nav{position:sticky;top:110px;display:flex;flex-direction:column;gap:4px}
.faq-nav a{font-size:14px;color:var(--graf);text-decoration:none;padding:12px 16px;border-left:2px solid var(--line);transition:all .2s}
.faq-nav a:hover{border-color:var(--ink);color:var(--ink);background:#fff}
.faq-grupo{margin-bottom:56px;scroll-margin-top:110px}
.faq-grupo h2{font-size:13px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;color:var(--mid);margin:0 0 14px}
.faq-lista details{border-bottom:1px solid var(--line);background:transparent;transition:background .3s}
.faq-lista details[open]{background:#fff}
.faq-lista summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 22px;font-size:17px;font-weight:500;color:var(--ink)}
.faq-lista summary::-webkit-details-marker{display:none}
.faq-lista summary i{flex:none;width:14px;height:14px;position:relative}
.faq-lista summary i:before,.faq-lista summary i:after{content:'';position:absolute;left:0;top:6px;width:14px;height:1.6px;background:var(--ink);transition:transform .3s}
.faq-lista summary i:after{transform:rotate(90deg)}
.faq-lista details[open] summary i:after{transform:rotate(0)}
.faq-lista details p{margin:0;padding:0 22px 26px;font-size:15.5px;line-height:1.85;color:#444;max-width:680px}
.faq-lista details a{color:var(--ink)}
@media(max-width:900px){.faq-wrap{grid-template-columns:1fr;gap:20px}.faq-nav{position:static;flex-direction:row;flex-wrap:wrap}.faq-nav a{border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:#fff}}
/* rodapé: links legais */
.rod-links{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 28px;padding-top:26px;margin-top:6px;border-top:1px solid rgba(255,255,255,.1)}
.rod-links a{color:rgba(255,255,255,.6);text-decoration:none;font-size:13px}.rod-links a:hover{color:#fff}
/* sustentabilidade */
.sust{display:grid;grid-template-columns:1.05fr 1fr;gap:72px;align-items:center}
.sust .txt p{color:#555;line-height:1.85;font-size:16px;margin:24px 0 0}
.sust-itens{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.sust-itens div{background:var(--paper);display:flex;gap:20px;padding:30px 28px;align-items:flex-start}
.sust-itens svg{width:34px;height:34px;flex:none;fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.sust-itens b{display:block;font-size:16px;font-weight:600;margin-bottom:6px}
.sust-itens span{font-size:14.5px;line-height:1.7;color:#555}
.sust-itens .sol-gira{animation:gira 24s linear infinite;transform-origin:12px 12px}
@keyframes gira{to{transform:rotate(360deg)}}
@media(max-width:900px){.sust{grid-template-columns:1fr;gap:40px}}
@media(prefers-reduced-motion:reduce){.sust-itens .sol-gira{animation:none}}

/* ===== lightbox de conteúdo (FAQ, sustentabilidade, termos, privacidade) ===== */
#modal{position:fixed;inset:0;z-index:200;background:rgba(10,10,10,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:4vh 20px;opacity:0;pointer-events:none;transition:opacity .3s}
#modal.on{opacity:1;pointer-events:auto}
.modal-caixa{position:relative;background:var(--paper);width:min(1040px,100%);max-height:92vh;overflow-y:auto;border-radius:8px;padding:64px 64px 56px;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(18px) scale(.98);transition:transform .35s cubic-bezier(.2,.8,.2,1);overscroll-behavior:contain}
#modal.on .modal-caixa{transform:none}
.modal-x{position:sticky;top:0;float:right;margin:-40px -40px 0 0;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:26px;line-height:1;cursor:pointer;color:var(--ink);z-index:2}
.modal-x:hover{background:var(--ink);color:#fff}
.modal-carga{padding:80px 0;text-align:center;color:var(--mid);letter-spacing:.2em;text-transform:uppercase;font-size:12px}
.modal-corpo .doc{max-width:none}
.modal-corpo .faq .cab{margin-bottom:36px}
.modal-corpo .faq-nav{top:0}
.modal-corpo .sust{gap:48px}
.sust-chamada{margin-top:64px;text-align:center}
.sust-chamada .bt svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}
@media(max-width:700px){#modal{padding:0}.modal-caixa{max-height:100vh;height:100%;border-radius:0;padding:64px 22px 40px}.modal-x{margin:-48px -6px 0 0}}

.topo nav a.entrar{display:inline-flex;align-items:center;gap:7px;opacity:.85}.topo nav a.entrar:hover{opacity:1}

/* menu Empreendimentos (dropdown) */
.topo nav .dd{position:relative}
.topo nav .dd>button.lk{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;padding:0;opacity:.85}
.topo nav .dd>button.lk:hover,.topo nav .dd.on>button.lk,.topo nav .dd:hover>button.lk{opacity:1}
.topo nav .dd>button.lk.at{border-bottom:1px solid #fff;padding-bottom:3px}
.topo nav .dd>button svg{transition:transform .25s}.topo nav .dd:hover>button svg,.topo nav .dd.on>button svg{transform:rotate(180deg)}
.topo nav .dd-menu{position:absolute;top:100%;left:50%;transform:translate(-50%,6px);padding-top:14px;min-width:210px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s}
.topo nav .dd-menu:before{content:"";position:absolute;inset:14px 0 0;background:rgba(20,20,20,.94);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:12px;z-index:-1}
.topo nav .dd:hover .dd-menu,.topo nav .dd:focus-within .dd-menu,.topo nav .dd.on .dd-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.topo nav .dd-menu a{display:block;padding:12px 20px;color:#fff;opacity:.8;white-space:nowrap;letter-spacing:.04em}
.topo nav .dd-menu a:first-child{margin-top:6px}.topo nav .dd-menu a:last-child{margin-bottom:6px}
.topo nav .dd-menu a:hover,.topo nav .dd-menu a.at{opacity:1;background:rgba(255,255,255,.06)}
@media(max-width:860px){.topo nav .dd{display:none}}
.topo nav .dd-menu{left:0;transform:translateY(6px);padding-top:12px;min-width:0}.topo nav .dd:hover .dd-menu,.topo nav .dd:focus-within .dd-menu,.topo nav .dd.on .dd-menu{transform:translateY(0)}.topo nav .dd-menu:before{display:none}.topo nav .dd-menu a{padding:6px 0;margin:0!important;text-shadow:0 1px 8px rgba(0,0,0,.55)}.topo nav .dd-menu a:hover,.topo nav .dd-menu a.at{background:none;opacity:1}

/* ---------- pilares v2: ilustrações técnicas animadas ---------- */
.pilares .pilar{position:relative;transition:background .5s}
.pilares .pilar:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);opacity:0;transition:opacity .5s}
.pilares .pilar:hover{background:#181818}.pilares .pilar:hover:before{opacity:1}
.pilar .num{display:block;font-size:11px;letter-spacing:.3em;color:rgba(255,255,255,.4);margin-bottom:10px}
.pilar .ilx{width:100%;max-width:330px;height:auto;display:block;overflow:visible;margin:0 0 4px -6px;fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round}
.ilx text{fill:rgba(255,255,255,.55);stroke:none;font:500 8.5px Montserrat,sans-serif;letter-spacing:.08em}
.ilx .halo{stroke:none;opacity:.8;transform-box:fill-box;transform-origin:center;animation:ilxRespira 6s ease-in-out infinite}
@keyframes ilxRespira{50%{opacity:.35;transform:scale(.94)}}
@keyframes ilxDesenha{to{stroke-dashoffset:0}}
@keyframes ilxSurge{to{opacity:1}}
/* arquitetura */
.ilx-arq .grade{stroke:rgba(255,255,255,.07);stroke-width:.6}

.ilx-arq .tr{stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:1}
.ilx-arq .det{stroke:rgba(255,255,255,.45);stroke-width:.8;opacity:0}
.ilx-arq .cotas{opacity:0}.ilx-arq .cotas path{stroke:rgba(255,255,255,.4);stroke-width:.7}
.ilx-arq .pena{fill:#fff;stroke:none;opacity:0;filter:drop-shadow(0 0 4px #fff)}
.play .ilx-arq .tr1{animation:ilxDesenha 1.2s linear forwards}
.play .ilx-arq .tr2{animation:ilxDesenha .6s ease-out 1.15s forwards}
.play .ilx-arq .tr3{animation:ilxDesenha 1s ease-in-out 1.4s forwards}
.play .ilx-arq .tr4{animation:ilxDesenha .5s ease-out 2.3s forwards}

.play .ilx-arq .det{animation:ilxSurge 1s ease 2.8s forwards}
.play .ilx-arq .cotas{animation:ilxSurge .8s ease 3.3s forwards}
.play .ilx-arq .pena{animation:ilxPena 1.5s linear forwards}
@keyframes ilxPena{0%,80%{opacity:1}100%{opacity:0}}
/* engenharia */
.ilx-eng .terreno{stroke:rgba(255,255,255,.35);stroke-width:.9}
.ilx-eng .estacas{stroke:rgba(255,255,255,.35);stroke-width:.9;stroke-dasharray:2 3}
.ilx-eng .pav{opacity:0;transform:translateY(-26px)}
.ilx-eng .pav path{stroke-width:1.2}
.ilx-eng .grua path{stroke:rgba(255,255,255,.8);stroke-width:.9}.ilx-eng .grua .mastro{stroke-width:.7}.ilx-eng .cp{fill:rgba(255,255,255,.15)}
.ilx-eng .carro rect{fill:#fff;stroke:none}.ilx-eng .viga{fill:rgba(255,255,255,.18)}
.ilx-eng .carro{animation:ilxCarro 9s ease-in-out infinite}
@keyframes ilxCarro{0%,12%{transform:translateX(0)}45%,60%{transform:translateX(62px)}92%,100%{transform:translateX(0)}}
.ilx-eng .nivel path{stroke:rgba(255,255,255,.3);stroke-width:.7}.ilx-eng .nivel text{opacity:0}
.play .ilx-eng .pav{animation:ilxCai .7s cubic-bezier(.3,1.4,.5,1) forwards}
.play .ilx-eng .p2{animation-delay:.45s}.play .ilx-eng .p3{animation-delay:.9s}.play .ilx-eng .p4{animation-delay:1.35s}.play .ilx-eng .p5{animation-delay:1.8s}
@keyframes ilxCai{to{opacity:1;transform:none}}
.play .ilx-eng .nivel text{animation:ilxSurge .4s ease forwards}
.play .ilx-eng .nivel text:nth-of-type(2){animation-delay:.45s}.play .ilx-eng .nivel text:nth-of-type(3){animation-delay:.9s}.play .ilx-eng .nivel text:nth-of-type(4){animation-delay:1.35s}.play .ilx-eng .nivel text:nth-of-type(5){animation-delay:1.8s}
/* valorização */
.ilx-val .gl{stroke:rgba(255,255,255,.06);stroke-width:.6}
.ilx-val .eixo-x path{stroke:rgba(255,255,255,.3);stroke-width:.8}
.ilx-val .area{fill:url(#gVal);stroke:none}
.ilx-val .varre{transform:scaleX(0);transform-box:fill-box;transform-origin:left}
.ilx-val .curva{stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1}
.ilx-val .pt{fill:#141414;stroke:#fff;stroke-width:1.4;opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(0)}
.ilx-val .nucleo{fill:#fff;stroke:none;opacity:0}
.ilx-val .onda{stroke:rgba(255,255,255,.6);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
.ilx-val .tag{opacity:0;transform:translateY(6px)}.ilx-val .tag path{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.35);stroke-width:.8}
.ilx-val .tag .sobe{fill:none;stroke:#fff;stroke-width:1.3}.ilx-val .tag text{fill:#fff;font-weight:600;font-size:9.5px;letter-spacing:.06em}
.play .ilx-val .varre{animation:ilxVarre 1.8s cubic-bezier(.6,0,.3,1) forwards}
@keyframes ilxVarre{to{transform:scaleX(1)}}
.play .ilx-val .curva{animation:ilxDesenha 1.8s cubic-bezier(.6,0,.3,1) forwards}
.play .ilx-val .pt{animation:ilxPop .4s cubic-bezier(.3,1.6,.5,1) forwards}
.play .ilx-val .pt1{animation-delay:.45s}.play .ilx-val .pt2{animation-delay:.8s}.play .ilx-val .pt3{animation-delay:1.1s}.play .ilx-val .pt4{animation-delay:1.4s}
@keyframes ilxPop{to{opacity:1;transform:scale(1)}}
.play .ilx-val .nucleo{animation:ilxSurge .3s ease 1.75s forwards}
.play .ilx-val .onda{animation:ilxOnda 2.6s ease-out 1.9s infinite}.play .ilx-val .o2{animation-delay:3.2s}
@keyframes ilxOnda{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(3.4)}}
.play .ilx-val .tag{animation:ilxTag .6s cubic-bezier(.2,.8,.2,1) 2s forwards}
@keyframes ilxTag{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ilx *{animation:none!important}.ilx .tr,.ilx .curva{stroke-dashoffset:0}.ilx .faces path,.ilx .det,.ilx .cotas,.ilx .pav,.ilx .pt,.ilx .nucleo,.ilx .tag,.ilx text{opacity:1!important;transform:none!important}.ilx .varre{transform:none}}
.ilx .faces path,.ilx-eng .pav .fl,.ilx-eng .pav .fr,.ilx-eng .pav .ft{stroke:none}
.ilx .fl{fill:#191919}.ilx .fr{fill:#202020}.ilx .ft{fill:#2a2a2a}
.ilx-arq .faces{opacity:0}.play .ilx-arq .faces{animation:ilxSurge 1s ease 2.4s forwards}
.ilx-eng .pav .jan{stroke:rgba(255,255,255,.45);stroke-width:.8}
.pilar .num{letter-spacing:.15em}

/* menu do celular (três barras) */
.burger,.menu-mob{display:none}
@media(max-width:860px){
  .topo nav{gap:14px}.topo nav a.entrar{display:none}
  .burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:0 10px;background:none;border:1px solid rgba(255,255,255,.55);border-radius:999px;cursor:pointer}
  .burger span{display:block;height:1.5px;background:#fff;border-radius:2px}
  .menu-mob{display:flex;position:fixed;inset:0;z-index:200;background:rgba(14,14,14,.97);backdrop-filter:blur(12px);padding:96px 32px 40px;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
  .menu-mob.on{opacity:1;visibility:visible}
  .menu-mob nav{display:flex;flex-direction:column;gap:6px;transform:translateY(12px);transition:transform .35s}
  .menu-mob.on nav{transform:none}
  .menu-mob nav a{color:#fff;font-size:24px;font-weight:500;letter-spacing:.01em;padding:10px 0;opacity:.85}
  .menu-mob nav a.at{opacity:1;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
  .mm-grupo{display:flex;flex-direction:column;padding:6px 0 6px 16px;border-left:1px solid rgba(255,255,255,.2);margin:4px 0}
  .mm-grupo small{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:2px}
  .mm-grupo a{font-size:20px!important}
  .menu-mob nav a.mm-p{font-size:16px;opacity:.65;margin-top:18px}
  .menu-mob nav a.mm-entrar{display:inline-flex;align-items:center;gap:10px;font-size:16px;margin-top:6px;padding:12px 20px;border:1px solid rgba(255,255,255,.4);border-radius:999px;align-self:flex-start}
  .menu-mob-x{position:absolute;top:20px;right:20px;width:44px;height:44px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:none;cursor:pointer}
  .menu-mob-x span{position:absolute;left:12px;right:12px;top:21px;height:1.5px;background:#fff;transform:rotate(45deg)}.menu-mob-x span+span{transform:rotate(-45deg)}
  html.mm-aberto,html.mm-aberto body{overflow:hidden}
}
