
:root{
  color-scheme: dark;
  --bg:#2A2A2A; --surface:#333333; --block:#606060; --ink:#F2F0EB; --muted:#A3A3A3; --gold:#D1AF6D; --on-gold:#1F1F1F; --line:#4A4A48;
  --display:"Archivo", "Helvetica Neue", Arial, sans-serif;
  --text:"Source Serif 4", Georgia, "Times New Roman", serif;
  --s1:12px; --s2:24px; --s3:36px; --s4:60px; --s5:96px; --s6:156px;
  --angle:52deg;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg); color:var(--ink); font-family:var(--text); font-size:1.0625rem; line-height:1.6; margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px}
.wrap{max-width:1160px; margin:0 auto; padding-inline:max(16px,4vw)}
h1,h2,h3{font-family:var(--display); font-stretch:112.5%; line-height:1.08; margin:0; text-wrap:balance; letter-spacing:-0.01em}
h1{font-size:clamp(2.369rem, 5.2vw, 4.209rem); font-weight:700}
h2{font-size:clamp(1.777rem, 3.4vw, 3.157rem); font-weight:700}
h3{font-size:1.333rem; font-weight:600}
p{margin:0; max-width:62ch}
.muted{color:var(--muted)}
.proto{background:var(--gold); color:var(--on-gold); font-family:var(--display); font-size:.75rem; padding:6px 16px; text-align:center}

/* header */
.top{position:sticky; top:env(safe-area-inset-top,0px); z-index:20; background:rgba(42,42,42,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:var(--s2); padding-block:14px}
.logo img{display:block; height:44px; width:auto}
.nav{display:flex; gap:var(--s2); font-family:var(--display); font-size:.9rem}
.nav a{text-decoration:none; color:var(--muted)}
.nav a:hover{color:var(--ink)}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 22px; font-family:var(--display); font-weight:600; font-size:.95rem; text-decoration:none; border:1px solid var(--gold); cursor:pointer}
.btn-gold{background:var(--gold); color:var(--on-gold)}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--gold)}
.top .btn{min-height:42px; padding:0 16px; font-size:.85rem}

/* hero carousel */
.hero{position:relative; background:#1d1d1d; overflow:hidden; min-height:clamp(520px,72vh,720px); display:grid}
.slides{position:absolute; inset:0}
.slide{position:absolute; inset:0; opacity:0; transition:opacity .01s linear .9s}
.slide.on{opacity:1; transition:none; z-index:1}
.slide.enter{opacity:1; z-index:2; animation:wipe 1.1s cubic-bezier(.6,0,.2,1) both}
@keyframes wipe{from{clip-path:polygon(0 0,0 0,-45% 100%,-45% 100%)} to{clip-path:polygon(0 0,145% 0,100% 100%,0 100%)}}
.beam{position:absolute; z-index:3; top:-25%; bottom:-25%; width:22px; left:-30%; background:var(--gold); transform:rotate(calc(90deg - var(--angle))); opacity:0; pointer-events:none}
.beam.go{animation:beam 1.1s cubic-bezier(.6,0,.2,1) both}
@keyframes beam{0%{left:-30%;opacity:.95} 85%{opacity:.95} 100%{left:130%;opacity:0}}
.slide img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%}
.slide.portrait{background:#1d1d1d}
.slide.portrait img{left:auto; right:0; width:min(58%,760px); object-position:center}
.slide.portrait::before{content:""; position:absolute; top:0; bottom:0; right:min(58%,760px); width:140px; transform:translateX(70px); background:linear-gradient(90deg,#1d1d1d,rgba(29,29,29,0)); z-index:1}
.hero::after{content:""; position:absolute; inset:0; z-index:4; background:linear-gradient(90deg,rgba(29,29,29,.92) 0%,rgba(29,29,29,.7) 38%,rgba(29,29,29,0) 70%),linear-gradient(0deg,rgba(29,29,29,.85),transparent 35%); pointer-events:none}
.hero-inner{position:relative; z-index:5; align-self:center; width:100%; padding-block:var(--s5) calc(var(--s5) + 40px)}
.hero-copy{display:grid; gap:var(--s2); max-width:34rem}
.hero-copy p{font-size:1.2rem; color:#D6D3CC}
.ctas{display:flex; flex-wrap:wrap; gap:var(--s1)}
.slide-bar{position:absolute; z-index:6; left:0; right:0; bottom:0}
.slide-bar .wrap{display:flex; justify-content:space-between; align-items:flex-end; gap:var(--s2); padding-block:0 var(--s2)}
.cap{display:grid; gap:2px; font-family:var(--display)}
.cap b{font-size:1rem; font-weight:600}
.cap span{font-size:.8rem; color:var(--muted)}
.ctrl{display:flex; align-items:center; gap:8px}
#dots{display:flex; gap:2px}
.dot{width:28px; height:28px; border:0; background:transparent; cursor:pointer; display:grid; place-items:center; padding:0}
.dot::before{content:""; width:14px; height:4px; background:#77736c; transform:skewX(-38deg)}
.dot[aria-current="true"]::before{background:var(--gold); width:24px}
.arrow{width:40px; height:40px; border:1px solid var(--line); background:rgba(42,42,42,.6); color:var(--ink); font-family:var(--display); cursor:pointer}
.pause{font-family:var(--display); font-size:.75rem; color:var(--muted); background:none; border:0; cursor:pointer; padding:8px}
@media (prefers-reduced-motion:reduce){.slide.enter{animation:none}.beam{display:none}}

/* sobre */
.about{display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--s4); align-items:center}
.portrait{position:relative; max-width:100%}
.portrait img{display:block; width:100%; height:auto; clip-path:polygon(0 0,100% 0,100% calc(100% - 44px),50% 100%,0 calc(100% - 44px))}
.portrait::before{content:""; position:absolute; z-index:1; left:-14px; top:24px; width:18px; height:120px; background:var(--gold); transform:skewY(calc(-1 * (90deg - var(--angle))))}
.about-copy{display:grid; gap:var(--s2)}
.about-copy .sig{font-family:var(--display); display:grid; gap:2px}
.about-copy .sig b{font-weight:600}
.about-copy .sig span{color:var(--gold); font-weight:600}

/* sections */
section{padding-block:var(--s5)}
.sec-head{display:grid; gap:var(--s1); margin-bottom:var(--s3)}
.rule{border-top:1px solid var(--line)}

.duo{display:grid; grid-template-columns:1fr 1fr; gap:var(--s2)}
.duo article{background:var(--surface); padding:var(--s3); display:grid; gap:var(--s1); align-content:start}
.duo article .tag{font-family:var(--display); color:var(--gold); font-size:.85rem; font-weight:600}
.duo ul{margin:0; padding-left:1.1em; color:var(--muted)}

.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:var(--s3)}
.chip{font-family:var(--display); font-size:.82rem; padding:8px 14px; border:1px solid var(--line); background:transparent; color:var(--muted); cursor:pointer}
.chip[aria-pressed="true"]{border-color:var(--gold); color:var(--ink)}
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s2)}
.card{background:var(--surface); clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),50% 100%,0 calc(100% - 26px)); padding-bottom:44px; display:grid}
.ph{position:relative; aspect-ratio:4/3; max-width:100%; background:linear-gradient(160deg,#3a3a3a,#232323); overflow:hidden}
.ph img{display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.card:hover .ph img{transform:scale(1.03)}
.ilus{position:absolute; right:8px; bottom:8px; font-family:var(--display); font-size:.68rem; color:#EDEBE6; background:rgba(29,29,29,.7); padding:3px 8px}
.noimg{position:absolute; inset:0; display:grid; place-items:center; padding:24px; text-align:center; font-family:var(--display); font-size:.82rem; color:var(--muted)}
.concept{font-size:.95rem; color:#CFCCC5}
.by{font-family:var(--display); font-size:.78rem; color:var(--muted)}
.reg{font-family:var(--display); font-size:.7rem; color:#8E8B85}
.filters.f2{margin-top:calc(-1 * var(--s2))}
.card[hidden]{display:none}
.card-cta{grid-column:span 2; border:1px solid var(--line); padding:var(--s3); display:grid; gap:var(--s1); align-content:center; justify-items:start; position:relative; overflow:hidden}
.card-cta::after{content:""; position:absolute; right:40px; top:-30px; width:22px; height:140%; background:var(--gold); opacity:.18; transform:rotate(calc(90deg - var(--angle)))}
.badge{position:absolute; left:0; top:12px; font-family:var(--display); font-size:.72rem; font-weight:600; background:var(--gold); color:var(--on-gold); padding:5px 12px 5px 10px; clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%)}
.badge.soft{background:rgba(29,29,29,.78); color:var(--ink)}
.card-wa{margin-top:6px; font-family:var(--display); font-size:.85rem; font-weight:600; color:var(--gold); text-decoration:none; justify-self:start; border-bottom:1px solid transparent}
.card-wa:hover{border-bottom-color:var(--gold)}
.card-body{padding:var(--s2); display:grid; gap:8px}
.card .where{font-family:var(--display); font-size:.82rem; color:var(--gold)}
.specs{display:flex; gap:16px; flex-wrap:wrap; font-family:var(--display); font-size:.82rem; color:var(--muted); font-variant-numeric:tabular-nums}
.note{margin-top:var(--s2); font-size:.9rem; color:var(--muted)}

.bairros{display:grid; grid-template-columns:1fr 1fr; gap:var(--s4)}
.bairros h3{margin-bottom:var(--s1); color:var(--muted); font-size:1rem; font-weight:500}
.b-list{list-style:none; margin:0; padding:0}
.b-list li{display:grid; grid-template-columns:11rem 1fr; gap:var(--s2); padding-block:14px; border-bottom:1px solid var(--line)}
.b-list strong{font-family:var(--display); font-weight:600}
.b-list span{color:var(--muted)}

.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s2); counter-reset:s; list-style:none; padding:0; margin:0}
.steps li{display:grid; gap:8px; align-content:start; padding-top:var(--s2); border-top:2px solid var(--block)}
.steps li:first-child{border-top-color:var(--gold)}
.steps li::before{counter-increment:s; content:counter(s); font-family:var(--display); font-weight:700; font-size:1.333rem; color:var(--gold)}

.owner{background:var(--surface); display:grid; grid-template-columns:1.1fr 1fr; gap:var(--s4); padding:var(--s4) var(--s3); position:relative; overflow:hidden}
.owner::before{content:""; position:absolute; right:-30px; top:-40px; width:70px; height:160%; background:var(--gold); opacity:.14; transform:rotate(calc(90deg - var(--angle)))}

form{display:grid; gap:14px}
label{display:grid; gap:6px; font-family:var(--display); font-size:.85rem; color:var(--muted)}
input,select,textarea{font:inherit; font-family:var(--text); font-size:1rem; color:var(--ink); background:var(--bg); border:1px solid var(--line); padding:12px 14px; min-height:48px; width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--gold); outline:none}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.lgpd{font-size:.8rem; color:var(--muted)}
.ok{font-family:var(--display); font-size:.9rem; color:var(--gold)}

.contact{display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); align-items:start}
.contact dl{display:grid; grid-template-columns:auto 1fr; gap:10px 20px; margin:var(--s2) 0 0; font-variant-numeric:tabular-nums}
.contact dt{font-family:var(--display); color:var(--muted); font-size:.85rem}
.contact dd{margin:0; user-select:all}

footer{border-top:1px solid var(--line); padding-block:var(--s4) calc(var(--s4) + 60px)}
.foot{display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--s3); align-items:end}
.foot img{height:56px; width:auto}
.ident{font-family:var(--display); display:grid; gap:2px}
.ident .name{font-size:1.05rem; font-weight:600}
.ident .creci{font-size:1.05rem; font-weight:600; color:var(--gold)}
.small{font-size:.8rem; color:var(--muted)}

.wa-fab{position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:30; display:none; align-items:center; gap:8px; background:var(--gold); color:var(--on-gold); font-family:var(--display); font-weight:600; font-size:.9rem; padding:14px 18px; text-decoration:none; clip-path:polygon(0 0,100% 0,100% 100%,14px 100%,0 calc(100% - 14px))}

@media (max-width:900px){
  .nav{display:none}
  .duo,.bairros,.owner,.contact,.about{grid-template-columns:1fr}
  .hero::after{background:linear-gradient(0deg,rgba(29,29,29,.95) 20%,rgba(29,29,29,.55) 70%,rgba(29,29,29,.35))}
  .portrait{max-width:420px}
  .hero-inner{padding-block:var(--s4) 190px}
  .slide-bar .wrap{flex-direction:column; align-items:flex-start; gap:var(--s1)}
  .top .wrap{justify-content:flex-start}
  .cards{grid-template-columns:1fr 1fr}
  .card-cta{grid-column:1 / -1}
  .steps{grid-template-columns:1fr 1fr}
  .top .btn{display:none}
  .wa-fab{display:inline-flex}
}
@media (max-width:560px){
  .cards,.steps,.row2{grid-template-columns:1fr}
  .card-cta{grid-column:auto}
  #dots,.pause{display:none}
  .slide.portrait img{width:100%}
  .slide.portrait::before{display:none}
  .b-list li{grid-template-columns:1fr; gap:2px}
  .owner{padding:var(--s3) var(--s2)}
  section{padding-block:var(--s4)}
}

[hidden]{display:none!important}
img{max-width:100%}
/* ---------- página de empreendimento ---------- */
.crumb{font-family:var(--display); font-size:.82rem; color:var(--muted); padding-block:var(--s2) 0}
.crumb a{color:var(--muted)}
.e-hero{display:grid; grid-template-columns:1fr 1.15fr; gap:var(--s4); align-items:center; padding-block:var(--s3) var(--s5)}
.e-hero .copy{display:grid; gap:var(--s2); align-content:center}
.e-hero .meta{display:flex; flex-wrap:wrap; gap:10px; align-items:center; font-family:var(--display); font-size:.85rem; color:var(--muted)}
.pill{font-family:var(--display); font-size:.75rem; font-weight:600; padding:5px 12px; background:var(--gold); color:var(--on-gold); clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%)}
.pill.soft{background:var(--surface); color:var(--ink)}
.e-hero h1{font-size:clamp(2rem,4vw,3.157rem)}
.e-hero .name{font-family:var(--display); font-weight:600; font-size:1.05rem; color:var(--gold)}
.e-hero .lead{font-size:1.15rem; color:#D6D3CC}
.e-visual{position:relative; max-width:100%; clip-path:polygon(0 0,100% 0,100% calc(100% - 40px),calc(100% - 40px) 100%,0 100%)}
.e-visual img{display:block; width:100%; height:auto; max-height:640px; object-fit:cover}
.ilus2{position:absolute; left:10px; bottom:10px; font-family:var(--display); font-size:.7rem; color:#EDEBE6; background:rgba(29,29,29,.72); padding:3px 8px}
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.stat{padding:var(--s2) var(--s2) var(--s2) 0; display:grid; gap:4px; align-content:start}
.stat + .stat{padding-left:var(--s2); border-left:1px solid var(--line)}
.stat b{font-family:var(--display); font-weight:700; font-size:1.333rem; line-height:1.15}
.stat span{font-family:var(--display); font-size:.82rem; color:var(--muted)}
.two{display:grid; grid-template-columns:1.2fr .8fr; gap:var(--s4); align-items:start}
.prose{display:grid; gap:var(--s2)}
.prose p{color:#CFCCC5}
.aside{border-left:2px solid var(--gold); padding-left:var(--s2); display:grid; gap:var(--s1)}
.aside .q{font-family:var(--display); font-size:1.15rem; font-weight:600}
.aside .src{font-family:var(--display); font-size:.78rem; color:var(--muted)}
.gal{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:190px; gap:10px}
.gal button{display:block; width:100%; height:100%; padding:0; border:0; background:var(--surface); cursor:zoom-in; position:relative; overflow:hidden}
.gal button:first-child{grid-column:span 2; grid-row:span 2}
.gal button.last{grid-column:span var(--d)}
.gal img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease}
.gal button:hover img{transform:scale(1.03)}
.lb{position:fixed; inset:0; z-index:60; background:rgba(15,15,15,.94); display:grid; place-items:center; padding:56px 16px}
.lb img{max-width:100%; max-height:calc(100vh - 140px); object-fit:contain}
.lb .x,.lb .pv,.lb .nx{position:absolute; background:rgba(42,42,42,.8); color:var(--ink); border:1px solid var(--line); font-family:var(--display); cursor:pointer; min-width:44px; min-height:44px}
.lb .x{top:calc(12px + env(safe-area-inset-top,0px)); right:12px}
.lb .pv{left:12px; top:50%} .lb .nx{right:12px; top:50%}
.lb .cnt{position:absolute; bottom:16px; left:0; right:0; text-align:center; font-family:var(--display); font-size:.8rem; color:var(--muted)}
.tbl-wrap{overflow-x:auto}
table.tip{width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums}
table.tip th{font-family:var(--display); font-weight:600; font-size:.8rem; color:var(--muted); text-align:left; padding:10px 16px 10px 0; border-bottom:1px solid var(--block)}
table.tip td{padding:14px 16px 14px 0; border-bottom:1px solid var(--line); vertical-align:top}
table.tip td:first-child{font-family:var(--display); font-weight:600}
table.tip td:nth-child(2){color:var(--gold); font-family:var(--display); white-space:nowrap}
.lazer{list-style:none; margin:0; padding:0; columns:2; column-gap:var(--s4)}
.lazer li{break-inside:avoid; padding:10px 0 10px 26px; position:relative; border-bottom:1px solid var(--line)}
.lazer li::before{content:""; position:absolute; left:4px; top:17px; width:5px; height:12px; background:var(--gold); transform:skewX(-38deg)}
.cta-band{background:var(--surface); display:grid; grid-template-columns:auto 1fr auto; gap:var(--s3); align-items:center; padding:var(--s3)}
.cta-band img{width:96px; height:96px; object-fit:cover; object-position:center 20%; clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),50% 100%,0 calc(100% - 16px))}
.cta-band h2{font-size:1.777rem}
.legal{font-size:.8rem; color:var(--muted); display:grid; gap:6px}
.related{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s2)}
.rel{display:grid; gap:10px; text-decoration:none; color:inherit}
.rel img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block}
.rel b{font-family:var(--display); font-weight:600}
.rel span{font-family:var(--display); font-size:.8rem; color:var(--muted)}
.maplink{font-family:var(--display); font-weight:600; color:var(--gold); text-decoration:none; font-size:.9rem}
@media (max-width:900px){
  .e-hero,.two{grid-template-columns:1fr}
  .e-visual{order:-1}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){padding-left:0; border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .gal{grid-template-columns:1fr 1fr; grid-auto-rows:150px}
  .gal button.last{grid-column:span var(--m)}
  .lazer{columns:1}
  .cta-band{grid-template-columns:auto 1fr}
  .cta-band .btn{grid-column:1 / -1}
  .related{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){ .related{grid-template-columns:1fr} }

.consent{position:fixed; left:16px; right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:70; max-width:560px; background:#333; border:1px solid var(--line); padding:16px; display:grid; gap:10px; font-size:.9rem}
.consent .row{display:flex; gap:10px; flex-wrap:wrap}
.consent .btn{min-height:40px}
.legalpage{max-width:760px}
.legalpage h2{font-size:1.333rem; margin-top:var(--s3)}
.legalpage p,.legalpage li{color:#CFCCC5}
