:root{
  /* superfícies */
  --ink:#13202A;          /* slate profundo, carrega o site */
  --ink-deep:#0D171E;
  --ink-soft:#33373D;
  --bronze:#C1986F;
  --bronze-lt:#D9BC98;
  --bronze-dk:#A87D53;
  --paper:#FEFEFE;
  --mist:#EEEEEE;
  --mist-2:#E4E4E4;
  --gray:#7A7A7A;
  --gray-lt:#ADADAD;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --mark:'Cormorant Garamond',Georgia,serif;
  --w:1298px;      /* 1250px de conteúdo + 24px de respiro de cada lado */
  --r:20px;       /* blocos, cards, figuras */
  --r-sm:12px;    /* campos de formulario e itens de menu */
  --pill:100px;   /* botoes e selos */
  --e:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:16px;line-height:calc(1em + 10px);letter-spacing:-.011em;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--w);margin:0 auto;padding:0 24px}

/* tipografia: assinatura da referência = display apertado, lh 1, sem caixa alta */
.d1{font-size:clamp(40px,7.6vw,82px);font-weight:500;letter-spacing:-.072em;line-height:.98}
.d2{font-size:clamp(31px,4.9vw,54px);font-weight:400;letter-spacing:-.068em;line-height:1}
.d3{font-size:clamp(23px,2.7vw,30px);font-weight:500;letter-spacing:-.042em;line-height:1.08}
.d4{font-size:20px;font-weight:500;letter-spacing:-.028em;line-height:1.2}
.lbl{font-size:13.5px;font-weight:500;color:var(--bronze-dk);letter-spacing:-.01em;margin-bottom:18px;display:block}
.on-dark .lbl{color:var(--bronze)}
.body-lg{font-size:clamp(16.5px,1.5vw,19px);line-height:calc(1em + 10px);color:var(--gray);font-weight:400;max-width:64ch}
p,li,dd{line-height:calc(1em + 10px)}
p{color:var(--gray)}
/* itens de interface ficam fora da regra de entrelinha */
.btn,.faixa li,.eco-pill,.slide-tag span,.nav-links a,.lbl,.bt-n,.bt-who{line-height:1.3}

.btn{display:inline-flex;align-items:center;gap:9px;font-size:15.5px;font-weight:500;letter-spacing:-.022em;padding:15px 26px;border-radius:var(--pill);border:1px solid transparent;cursor:pointer;transition:.35s var(--e);font-family:inherit;white-space:nowrap}
.btn-d{background:var(--ink);color:var(--paper)}
.btn-d:hover{background:var(--ink-soft)}
.btn-l{background:var(--mist);color:var(--ink)}
.btn-l:hover{background:var(--paper)}
.btn-b{background:var(--bronze);color:#fff}
.btn-b:hover{background:var(--bronze-dk)}
.btn-o{background:transparent;color:var(--paper);border-color:rgba(254,254,254,.32)}
.btn-o:hover{background:rgba(254,254,254,.1);border-color:rgba(254,254,254,.6)}
.btn svg{width:15px;height:15px;flex:0 0 auto;transition:transform .35s var(--e)}
.btn:hover svg{transform:translateX(3px)}

/* ============ NAV ============ */
nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:.4s var(--e);padding:26px 0;background:rgba(13,23,30,.13);backdrop-filter:blur(7px) saturate(115%);-webkit-backdrop-filter:blur(7px) saturate(115%)}
nav.solid{background:rgba(19,32,42,.94);backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%);padding:16px 0}
nav .in{max-width:var(--w);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px}
.logo{display:flex;align-items:center;gap:12px}
.logo svg{width:31px;height:37px;flex:0 0 auto}
.logo b{font-family:var(--mark);font-size:28px;font-weight:400;color:var(--paper);line-height:1.02;display:block;letter-spacing:.012em;white-space:nowrap}
.logo i{font-style:normal;font-size:8px;line-height:1.3;letter-spacing:.19em;text-transform:uppercase;color:var(--bronze);display:block;margin-top:3px;white-space:nowrap;font-weight:500}
.nav-side{display:flex;align-items:center;min-width:0}
.nav-side.centro{grid-column:2;grid-row:1;justify-self:center;gap:2px}
.nav-side.dir{grid-column:3;grid-row:1;justify-self:end;gap:14px}
.logo{grid-column:1;grid-row:1;justify-self:start}
.nav-links{display:contents}
.nav-side a{font-size:15px;font-weight:500;letter-spacing:-.015em;color:rgba(254,254,254,.84);transition:.25s var(--e);white-space:nowrap;padding:9px 14px;border-radius:var(--pill)}
.nav-side a:hover{color:#fff;background:rgba(254,254,254,.1)}
.nav-cta{background:var(--mist);color:var(--ink)!important;padding:12px 22px;border-radius:var(--pill);font-weight:500!important}
.nav-cta:hover{background:var(--bronze);color:#fff!important}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;flex:0 0 auto;grid-column:3;grid-row:1;justify-self:end}
.burger span{display:block;width:23px;height:1.5px;background:var(--paper);margin:5px 0;transition:.35s var(--e)}
.burger.on span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.on span:nth-child(2){opacity:0}
.burger.on span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ============ HERO ============ */
header{position:relative;height:100svh;min-height:620px;overflow:hidden;background:var(--ink-deep)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.15s var(--e);pointer-events:none}
.slide.on{opacity:1;pointer-events:auto}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.07);transition:transform 9s linear}
.slide.on .slide-bg{transform:scale(1)}
.veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,23,30,.44) 0%,rgba(13,23,30,.24) 24%,rgba(13,23,30,.24) 44%,rgba(13,23,30,.9) 100%)}
.slide-in{position:relative;height:100%;display:flex;align-items:flex-end;padding-bottom:clamp(96px,11vh,132px)}
.slide-in .wrap{width:100%}
.slide-c{max-width:870px;transform:translateY(24px);opacity:0;transition:1s var(--e) .3s}
.slide.on .slide-c{transform:none;opacity:1}
.slide-tag{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;padding:8px 16px 8px 12px;border-radius:var(--pill);background:rgba(254,254,254,.09);border:1px solid rgba(254,254,254,.14)}
.slide-tag em{width:6px;height:6px;border-radius:50%;background:var(--bronze);display:block;flex:0 0 auto}
.slide-tag span{font-size:13.5px;font-weight:500;color:rgba(254,254,254,.9);letter-spacing:-.015em}
/* mira a classe, não a tag: só o primeiro slide é h1, os outros dois são
   h2 para não competir na hierarquia da página. */
.slide .d1,
.slide-c h1,.slide-c h2,.slide-c h3{color:var(--paper)}
.slide .d1 b,
.slide-c h1 b,.slide-c h2 b,.slide-c h3 b{font-weight:500;color:var(--bronze-lt)}
.slide p.sd{margin-top:22px;font-size:clamp(16px,1.7vw,19px);color:rgba(254,254,254,.72);max-width:50ch;font-weight:400;line-height:calc(1em + 10px);letter-spacing:-.015em}
.slide .acts{margin-top:clamp(28px,3vw,40px);display:flex;gap:11px;flex-wrap:wrap}
.hero-ui{position:absolute;left:0;right:0;bottom:36px;z-index:5}
.hero-ui .wrap{display:flex;align-items:center;justify-content:flex-end;gap:20px}
.dots{display:flex;gap:2px}
/* alvo de clique de 34px de altura, com a barra fina só como aparência */
.dots button{width:56px;height:34px;background:none;border:0;padding:0;cursor:pointer;position:relative;display:block}
.dots button::before{content:"";position:absolute;left:5px;right:5px;top:50%;margin-top:-1.5px;height:3px;background:rgba(254,254,254,.26);border-radius:99px;transition:.25s var(--e)}
.dots button:hover::before{background:rgba(254,254,254,.55);height:5px;margin-top:-2.5px}
.dots button.on::after{content:"";position:absolute;left:5px;top:50%;margin-top:-1.5px;height:3px;width:calc(100% - 10px);background:var(--bronze);border-radius:99px;transform-origin:left;animation:tick 7s linear forwards}
@keyframes tick{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ============ FAIXA ============ */
.faixa{background:var(--ink);color:var(--paper);padding:52px 0}
.faixa .wrap{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:34px;align-items:center}
.faixa p{color:var(--paper);font-size:clamp(19px,2.15vw,27px);font-weight:400;letter-spacing:-.045em;line-height:1.18;max-width:47ch;text-wrap:balance}
.faixa p b{font-weight:500;color:var(--bronze-lt)}
.faixa ul{list-style:none;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.faixa li{font-size:14px;font-weight:500;color:rgba(254,254,254,.82);border:1px solid rgba(254,254,254,.18);padding:9px 18px;border-radius:var(--pill);letter-spacing:-.015em}
@media(max-width:900px){.faixa .wrap{grid-template-columns:1fr;gap:22px}.faixa ul{justify-content:flex-start}.faixa p{max-width:none}}

/* ============ SECOES ============ */
section{padding:clamp(70px,8.5vw,124px) 0}
.head{max-width:760px;margin-bottom:clamp(38px,4.6vw,60px)}
.head .body-lg{margin-top:20px}

/* sobre */
.sobre{background:var(--mist)}
.sobre-top{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(0,.66fr);gap:clamp(26px,3.4vw,58px);align-items:center}
.sobre-top h2{max-width:none;text-wrap:balance}
.sobre-lead{font-size:clamp(17px,1.5vw,19.5px);color:var(--ink-soft);max-width:44ch}
.sobre-mid{margin-top:clamp(38px,4.4vw,62px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,4.6vw,68px);align-items:start}
.sobre-fig{position:relative}
.sobre-fig img{border-radius:var(--r);width:100%;height:clamp(360px,46vw,566px);object-fit:cover}
.sobre-txt p.sobre-open{font-size:clamp(19px,1.7vw,22px);color:var(--ink);font-weight:500;letter-spacing:-.032em;line-height:calc(1em + 8px);max-width:26ch;margin-bottom:24px}
.sobre-txt p{margin-bottom:18px;font-size:16.5px}
.sobre-txt p:last-child{margin-bottom:0}
.sobre-txt p strong{color:var(--ink);font-weight:500}
.sobre-txt p.sobre-quote{margin-top:32px;padding-top:30px;border-top:1px solid var(--mist-2);font-size:clamp(23px,2.55vw,33px);font-weight:400;letter-spacing:-.055em;line-height:1.14;color:var(--ink);max-width:32ch;text-wrap:nowrap}
.sobre-txt p.sobre-quote b{display:block;font-weight:500;color:var(--bronze-dk)}
.sobre-facts{margin-top:clamp(42px,5vw,74px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line,#D9D3C7);border-top-color:var(--mist-2)}
.sobre-facts div{padding:26px 22px 0 0;border-right:1px solid var(--mist-2)}
.sobre-facts div:last-child{border-right:0;padding-right:0}
.sobre-facts div+div{padding-left:22px}
.sobre-facts .ic{width:21px;height:21px;display:block;margin-bottom:15px;stroke:var(--bronze-dk);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.sobre-facts dt{font-size:13px;color:var(--bronze-dk);font-weight:500;margin-bottom:7px}
.sobre-facts dd{font-size:16px;color:var(--ink);letter-spacing:-.018em}

/* ecossistema */
.eco{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.eco-c{border-radius:var(--r);overflow:hidden;background:var(--mist);display:flex;flex-direction:column;transition:.45s var(--e)}
.eco-c:hover{transform:translateY(-5px)}
.eco-fig{position:relative;aspect-ratio:4/3;overflow:hidden}
.eco-fig img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--e)}
.eco-c:hover .eco-fig img{transform:scale(1.05)}
.eco-pill{position:absolute;top:14px;left:14px;background:rgba(19,32,42,.82);backdrop-filter:blur(6px);color:var(--paper);font-size:12.5px;font-weight:500;padding:7px 14px;border-radius:var(--pill);letter-spacing:-.015em}
.eco-b{padding:28px 26px 30px;display:flex;flex-direction:column;flex:1}
.eco-mark{height:40px;width:auto;max-width:104px;object-fit:contain;object-position:left center;margin-bottom:14px;display:block}
.eco-b .role{font-size:14px;color:var(--bronze-dk);font-weight:500;margin:4px 0 14px;letter-spacing:-.015em}
.eco-b p{font-size:15px;flex:1}
.eco-b .go{margin-top:22px;font-size:15px;font-weight:500;color:var(--ink);display:inline-flex;align-items:center;gap:8px;letter-spacing:-.022em}
.eco-b .go svg{width:15px;height:15px;transition:transform .4s var(--e)}
.eco-c:hover .go svg{transform:translateX(4px)}
.eco-c.dark{background:var(--ink)}
.eco-c.dark .d3,.eco-c.dark .go{color:var(--paper)}
.eco-c.dark p{color:rgba(254,254,254,.66)}
.eco-c.dark .role{color:var(--bronze)}

/* solucoes: lista editorial, sem grade de cards iguais */
.sol{background:var(--ink);color:var(--paper)}
.sol .d2,.sol .head .d2{color:var(--paper)}
.sol .body-lg{color:rgba(254,254,254,.66)}
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;grid-auto-rows:minmax(206px,auto)}
.bt{position:relative;border-radius:var(--r);overflow:hidden;background:rgba(254,254,254,.055);border:1px solid rgba(254,254,254,.1);transition:.5s var(--e);color:var(--paper);display:flex}
.bt:hover{transform:translateY(-4px);border-color:rgba(254,254,254,.2)}
.bt-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.bt:hover .bt-img{transform:scale(1.055)}
.bt-veil{position:absolute;inset:0;background:linear-gradient(175deg,rgba(13,23,30,.3) 0%,rgba(13,23,30,.78) 55%,rgba(13,23,30,.95) 100%)}
.bt-in{position:relative;z-index:2;padding:26px 26px 28px;display:flex;flex-direction:column;justify-content:flex-end;width:100%;min-width:0}
.bt-n{font-size:13.5px;font-weight:500;color:var(--bronze);letter-spacing:-.01em;margin-bottom:auto;padding-bottom:22px}
.bt h3{color:var(--paper);margin-bottom:9px}
.bt p{color:rgba(254,254,254,.72);font-size:15px}
.bt-who{margin-top:16px;font-size:13px;color:rgba(254,254,254,.45);letter-spacing:-.015em}
.bt--accent{background:var(--bronze);border-color:var(--bronze)}
.bt--accent:hover{border-color:var(--bronze-lt)}
.bt--accent .bt-n{color:rgba(255,255,255,.62)}
.bt--accent p{color:rgba(255,255,255,.88)}
.bt--accent .bt-who{color:rgba(255,255,255,.7)}
.bt--split{display:grid;grid-template-columns:1.12fr .88fr;gap:0}
.bt--split .bt-in{padding:26px}
.bt-fig{position:relative;overflow:hidden;min-height:100%}
.bt-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.bt:hover .bt-fig img{transform:scale(1.055)}
.bt--split.rev{grid-template-columns:.88fr 1.12fr}
.bt--split.rev .bt-fig{order:-1}
.a1{grid-column:span 2;grid-row:span 2}
.a2{grid-column:span 2}
.sol .head{max-width:none;text-align:center;margin-left:auto;margin-right:auto}
.sol .head h2{font-size:clamp(30px,4.35vw,52px)}
.sol .head .body-lg{margin-left:auto;margin-right:auto}
.sol-cta{margin-top:clamp(38px,4vw,56px);display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center}
.sol-cta span{font-size:15px;color:rgba(254,254,254,.5)}

/* jornada */
/* jornada: grade 2x2 com bordas fechadas e ilustração no canto superior direito */
.jor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--mist-2);border-left:1px solid var(--mist-2)}
.jor-i{position:relative;border-right:1px solid var(--mist-2);border-bottom:1px solid var(--mist-2);
  padding:clamp(28px,3vw,44px);min-height:clamp(250px,25vw,310px);display:flex;flex-direction:column;justify-content:flex-end;transition:.4s var(--e)}
.jor-i:hover{background:var(--mist)}
.jor-i .ill{position:absolute;top:clamp(26px,2.6vw,38px);right:clamp(26px,2.6vw,38px);width:clamp(52px,5.2vw,66px);height:auto}
.jor-i .ill .fl{fill:var(--bronze-lt)}
.jor-i .ill .st{fill:none;stroke:var(--ink);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.jor-i:hover .ill .fl{fill:var(--bronze)}
.brk{display:inline}
.brm{display:none}
@media(max-width:580px){.brm{display:inline}}
/* complemento exato da .brm: quebra no desktop e some no celular,
   para a frase poder ter recorte diferente nos dois tamanhos */
.brd{display:inline}
@media(max-width:580px){.brd{display:none}}
.jor-i .n{font-size:13.5px;color:var(--bronze-dk);font-weight:500;margin-bottom:12px;display:block;line-height:1.3}
.jor-i h3{margin-bottom:9px}
.jor-i p{font-size:15px}
.jor-i .by{margin-top:18px;font-size:13.5px;color:var(--ink);font-weight:500;letter-spacing:-.02em;display:inline-flex;align-items:center;gap:7px}
.jor-i .by::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--bronze);flex:0 0 auto}
/* rótulo de seção com marcador, no formato da referência */
.lbl-ic{display:inline-flex;align-items:center;gap:9px}
.lbl-ic svg{width:15px;height:11px;fill:var(--bronze-dk);flex:0 0 auto}

/* compromissos */
.comp{background:var(--mist)}
.comp-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,84px);align-items:stretch}
.comp-head{display:flex;flex-direction:column}
.comp-head h2{max-width:14ch}
.comp-head .body-lg{margin-top:20px}
.comp-fig{margin-top:clamp(30px,3vw,46px);flex:1;min-height:230px;position:relative;border-radius:var(--r);overflow:hidden}
.comp-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--e)}
.comp-fig:hover img{transform:scale(1.04)}
.comp-list{list-style:none}
.comp-list li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:16px;padding:24px 0;border-top:1px solid var(--mist-2)}
.comp-list li:first-child{border-top:0;padding-top:0}
.comp-list li>span{font-size:13.5px;color:var(--bronze-dk);font-weight:500;padding-top:4px;line-height:1.3}
.comp-list h3{margin-bottom:7px}
.comp-list p{font-size:15.5px}
.credo{margin-top:52px;background:var(--ink);border-radius:var(--r);padding:clamp(30px,4vw,54px);display:grid;grid-template-columns:1fr auto;gap:34px;align-items:center}
.credo p{color:var(--paper);font-size:clamp(19px,2.1vw,26px);font-weight:400;letter-spacing:-.045em;line-height:1.25;max-width:30ch}
.credo p b{font-weight:500;color:var(--bronze-lt)}

/* cta */
.cta{position:relative;overflow:hidden;background:var(--ink-deep);color:var(--paper)}
.cta-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.2}
.cta-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,23,30,.97),rgba(13,23,30,.72))}
.cta .wrap{position:relative;z-index:2}
.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,74px);align-items:center}
.cta .d2{color:var(--paper)}
.cta .body-lg{color:rgba(254,254,254,.7);margin-top:20px}
.chan{margin-top:32px;display:flex;flex-direction:column;gap:11px}
.chan a,.chan span{display:inline-flex;align-items:center;gap:11px;font-size:15.5px;color:rgba(254,254,254,.78);letter-spacing:-.02em}
.chan svg{width:17px;height:17px;flex:0 0 auto;opacity:.55}
.pend{color:var(--bronze);opacity:.8}
form{background:rgba(254,254,254,.05);border:1px solid rgba(254,254,254,.13);border-radius:var(--r);padding:clamp(26px,3.2vw,38px)}
form label{display:block;font-size:13.5px;color:rgba(254,254,254,.55);margin-bottom:7px;letter-spacing:-.015em}
form input,form select,form textarea{width:100%;background:rgba(254,254,254,.05);border:1px solid rgba(254,254,254,.15);border-radius:var(--r-sm);color:var(--paper);font:inherit;font-size:15.5px;letter-spacing:-.02em;padding:13px 15px;margin-bottom:18px;outline:none;transition:.3s}
form input::placeholder,form textarea::placeholder{color:rgba(254,254,254,.3)}
form input:focus,form select:focus,form textarea:focus{border-color:var(--bronze);background:rgba(254,254,254,.08)}
form select option{background:var(--ink);color:var(--paper)}
form textarea{resize:vertical;min-height:74px}
form .btn{width:100%;justify-content:center;margin-top:4px}
form .lgpd{margin-top:14px;font-size:12.5px;color:rgba(254,254,254,.38)}
/* Isca de robo. Nao pode ser display:none nem type=hidden: robo bom
   ignora os dois. Fica na pagina, so que fora da area visivel. */
.hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;
  opacity:0!important;margin:0!important;padding:0!important;border:0!important;pointer-events:none}
.form-ok{margin-top:14px;font-size:14.5px;letter-spacing:-.02em;color:var(--bronze-lt)}
.form-erro{margin-top:14px;font-size:14.5px;letter-spacing:-.02em;color:#E8A48C}

/* footer */
footer{background:var(--ink);color:var(--paper);padding:70px 0 30px}
footer .f-grid{display:grid;grid-template-columns:minmax(0,1.55fr) repeat(4,minmax(0,1fr));gap:clamp(26px,2.8vw,44px);padding-bottom:46px;border-bottom:1px solid rgba(254,254,254,.12);align-items:start}
.f-brand p{margin-top:22px;font-size:15px;color:rgba(254,254,254,.55);max-width:30ch}
.f-col h4{font-size:14px;font-weight:500;color:var(--bronze);margin-bottom:17px;letter-spacing:-.02em}
.f-col a,.f-col p{display:block;font-size:15px;color:rgba(254,254,254,.6);margin-bottom:10px;transition:.25s;letter-spacing:-.02em}
.f-col a:hover{color:var(--bronze-lt)}
.legal{padding:28px 0 6px;border-bottom:1px solid rgba(254,254,254,.12);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px clamp(28px,3vw,48px)}
.legal p{font-size:13px;color:rgba(254,254,254,.42);margin:0 0 8px;letter-spacing:-.01em}
.legal b{color:rgba(254,254,254,.68);font-weight:500}
.legal-obs{padding:16px 0 0;font-size:12.5px;color:rgba(254,254,254,.34);max-width:82ch;line-height:1.55;margin:0}
footer .f-col .pend{color:var(--bronze);opacity:.6}
@media(max-width:1060px){.legal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.legal{grid-template-columns:1fr}}
.f-bot{padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;color:rgba(254,254,254,.35)}
.f-bot a{color:rgba(254,254,254,.5)}
.f-bot a:hover{color:var(--bronze-lt)}

.wa{position:fixed;right:20px;bottom:20px;z-index:90;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.26);transition:.35s var(--e)}
.wa:hover{transform:scale(1.08)}
.wa svg{width:28px;height:28px;fill:#fff}

.rv{opacity:0;transform:translateY(24px);transition:.95s var(--e)}
.rv.in{opacity:1;transform:none}

/* ============ RESPONSIVO ============ */
@media(max-width:1080px){
  .eco{grid-template-columns:1fr;gap:14px}
  .eco-c{flex-direction:row}
  .eco-fig{flex:0 0 40%;aspect-ratio:auto}
  .eco-b{flex:1}
  .sobre-top,.sobre-mid,.cta-grid,.credo{grid-template-columns:1fr}
  .sobre-top{align-items:start;gap:20px}
  .sobre-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
  .sobre-facts div{border-right:0;padding-right:0;border-bottom:1px solid var(--mist-2);padding-bottom:22px}
  .sobre-facts div+div{padding-left:0}
  footer .f-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
  .bento{grid-template-columns:repeat(2,1fr)}
  .a1{grid-row:span 1}
  /* barra do celular: burger à esquerda, logo ao centro */
  .burger{grid-column:3;justify-self:end;margin-right:-8px}
  .logo{grid-column:1;justify-self:start}
  .nav-side{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%}
  .nav-side a{font-size:19px;padding:16px 0;width:100%;border-bottom:1px solid rgba(254,254,254,.09);letter-spacing:-.03em}
  .nav-links{display:flex;position:fixed;inset:0 0 0 auto;width:min(340px,88vw);height:100svh;background:var(--ink);flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;padding:92px 30px 40px;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateX(101%);transition:.5s var(--e);box-shadow:-16px 0 44px rgba(0,0,0,.32)}
  .nav-links.open{transform:none}
  .nav-links a{font-size:19px;padding:16px 0;width:100%;border-bottom:1px solid rgba(254,254,254,.09);letter-spacing:-.03em}
  .nav-cta{margin-top:24px;text-align:center;justify-content:center;display:block;font-size:16px!important;padding:16px 22px;border-bottom:0!important}
  .burger{display:block;z-index:110;position:relative}
  nav,nav.solid{padding:15px 0;background:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none}
  .hero-ui .wrap{justify-content:flex-start}
}
@media(max-width:720px){
  body{font-size:16.5px}
  header{min-height:580px;height:93svh}
  .veil{background:linear-gradient(180deg,rgba(13,23,30,.72) 0%,rgba(13,23,30,.93) 68%)}
  .slide-in{align-items:flex-end;padding-bottom:118px}
  .slide .acts{flex-direction:column;align-items:stretch}
  .slide .acts .btn{justify-content:center;font-size:16px;padding:16px 24px}
  .hero-ui{bottom:22px}
  .logo svg{width:27px;height:33px}
  .logo b{font-size:24px}
  .logo i{font-size:7px;letter-spacing:.16em}
  .faixa p{font-size:clamp(18px,5vw,24px)}
  .eco-c{flex-direction:column}
  .eco-fig{flex:none;aspect-ratio:16/10}
  .bento{grid-template-columns:1fr;gap:12px;grid-auto-rows:auto}
  .a1,.a2{grid-column:span 1}
  .bt{min-height:250px}
  .bt--split,.bt--split.rev{grid-template-columns:1fr;grid-template-rows:170px auto}
  .bt--split .bt-fig,.bt--split.rev .bt-fig{order:-1;min-height:170px}
  .bt-n{padding-bottom:16px}
  .comp-wrap{grid-template-columns:1fr;gap:28px}
  .comp-fig{flex:none;height:clamp(200px,42vw,280px);min-height:0;margin-top:30px}
  .jor{grid-template-columns:1fr}
  .jor-i{min-height:0;padding:26px 24px 28px}
  .jor-i .ill{width:46px;top:24px;right:22px}
  .brk{display:none}
  footer .f-grid{grid-template-columns:1fr;gap:32px}
  .credo{padding:30px 26px}
  .sobre-facts{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}

/* ============ SUBMENU DO ECOSSISTEMA ============ */
.nav-side a.atv{color:var(--bronze-lt)}

/* ============ HERO DE PÁGINA INTERNA ============ */
.phero{position:relative;height:auto;min-height:clamp(620px,72vh,800px);display:flex;align-items:flex-end;overflow:hidden;background:var(--ink-deep);padding:clamp(170px,18vh,220px) 0 clamp(70px,7.4vw,104px)}
.phero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.phero .veil{background:linear-gradient(180deg,rgba(13,23,30,.9) 0%,rgba(13,23,30,.58) 42%,rgba(13,23,30,.95) 100%)}
.phero .wrap{position:relative;z-index:2;width:100%}
.crumb{font-size:14px;color:rgba(254,254,254,.5);margin-bottom:20px;letter-spacing:-.015em}
.crumb a{transition:.2s}
.crumb a:hover{color:var(--bronze-lt)}
.phero h1{color:var(--paper);max-width:none}
.phero h1 b{font-weight:500;color:var(--bronze-lt)}
.phero p.pl{color:rgba(254,254,254,.74);font-size:clamp(16.5px,1.6vw,19px);max-width:62ch;margin-top:20px;letter-spacing:-.015em}
.phero .acts{margin-top:32px;display:flex;gap:11px;flex-wrap:wrap}
.pmark{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.pmark img{width:46px;height:46px;object-fit:contain;flex:0 0 auto}
.pmark span{font-size:14px;color:rgba(254,254,254,.62);letter-spacing:-.015em}

/* ============ BLOCOS DAS PÁGINAS INTERNAS ============ */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4.6vw,72px);align-items:center}
.duo--tight{align-items:start}
.duo figure{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.duo figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.duo .txt h2{margin-bottom:20px}
.duo .txt p+p{margin-top:16px}
.rev-duo figure{order:-1}

.lista{border-top:1px solid var(--mist-2);margin-top:clamp(30px,3.6vw,48px)}
.lista .it{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1.2fr);gap:22px;padding:26px 0;border-bottom:1px solid var(--mist-2);align-items:start}
.lista .it .n{font-size:13.5px;color:var(--bronze-dk);font-weight:500;padding-top:5px;line-height:1.3}
.lista .it h3{margin-bottom:6px}
.lista .it .who{font-size:13.5px;color:var(--gray)}
.lista .it p{font-size:15.5px}
.on-dark .lista{border-top-color:rgba(254,254,254,.14)}
.on-dark .lista .it{border-bottom-color:rgba(254,254,254,.14)}
.on-dark .lista .it h3{color:var(--paper)}
.on-dark .lista .it p{color:rgba(254,254,254,.7)}
.on-dark .lista .it .who{color:rgba(254,254,254,.45)}
.on-dark .lista .it .n{color:var(--bronze)}

.tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tri .cx{background:var(--mist);border-radius:var(--r);padding:30px 28px}
.tri .cx .ic2{width:25px;height:25px;stroke:var(--bronze-dk);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:20px;display:block}
.tri .cx h3{margin-bottom:9px}
.tri .cx p{font-size:15px}

.ficha{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:clamp(30px,3.6vw,52px)}
.ficha h2{color:var(--paper);margin-bottom:8px}
.ficha .sub2{color:rgba(254,254,254,.6);max-width:60ch;margin-bottom:clamp(26px,3vw,38px)}
.ficha dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,4vw,64px)}
.ficha dl div{padding:19px 0;border-top:1px solid rgba(254,254,254,.12)}
.ficha dt{font-size:13.5px;color:rgba(254,254,254,.5);margin-bottom:5px}
.ficha dd{font-size:16.5px;color:var(--paper);letter-spacing:-.02em}
.ficha .obs{margin-top:26px;font-size:13px;color:rgba(254,254,254,.42);max-width:74ch}

.galeria{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;grid-auto-rows:minmax(180px,auto)}
.galeria a,.galeria figure{position:relative;border-radius:var(--r);overflow:hidden;background:var(--mist-2)}
.galeria img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.galeria figure:hover img{transform:scale(1.05)}
.galeria .g2{grid-column:span 2}
.galeria .g2r{grid-column:span 2;grid-row:span 2}
.aviso{margin-top:20px;font-size:13.5px;color:var(--gray)}

.faixa-cta{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:clamp(30px,4vw,56px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center}
.faixa-cta h2{color:var(--paper);max-width:20ch}
.faixa-cta p{color:rgba(254,254,254,.66);margin-top:14px;max-width:52ch}

@media(max-width:1060px){
  .duo,.faixa-cta{grid-template-columns:1fr}
  .faixa-cta .btn{white-space:normal;text-align:center;justify-content:center}
  .tri{grid-template-columns:repeat(2,minmax(0,1fr))}
  .galeria{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ficha dl{grid-template-columns:1fr;gap:0}
}
@media(max-width:720px){
  .phero{min-height:0;padding:124px 0 56px}
  .lista .it{grid-template-columns:1fr;gap:8px;padding:24px 0}
  .lista .it .n{padding-top:0}
  .tri{grid-template-columns:1fr}
  .galeria{grid-template-columns:1fr;grid-auto-rows:auto}
  .galeria .g2,.galeria .g2r{grid-column:span 1;grid-row:span 1}
  .galeria figure{aspect-ratio:16/10}
  .rev-duo figure{order:0}
  .duo figure{aspect-ratio:16/10}
}

/* ================================================================
   PÁGINA DREAM HOUSE
   Só layout. Fonte, cor, título, botão e rótulo são os mesmos do
   resto do site: o que muda aqui é o arranjo das seções.
   ================================================================ */
/* faixas de fundo. Sem escopo de página: quem usa é a Dream House e
   também as páginas de empreendimento. */
.bg-w{background:var(--paper)}
.bg-areia{background:var(--mist)}
.bg-esc{background:var(--ink);color:var(--paper)}
.bg-esc h1,.bg-esc h2,.bg-esc h3{color:var(--paper)}
.bg-esc p,.bg-esc .body-lg{color:rgba(254,254,254,.72)}
.bg-esc .lbl{color:var(--bronze)}

/* números da abertura */
.dh .nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--mist-2)}
.dh .nums div{padding:clamp(26px,3vw,38px) 26px clamp(26px,3vw,38px) 0;border-right:1px solid var(--mist-2)}
.dh .nums div:last-child{border-right:0;padding-right:0}
.dh .nums div+div{padding-left:26px}
.dh .nums dt{font-size:clamp(34px,3.8vw,48px);font-weight:500;color:var(--bronze-dk);
  line-height:1;letter-spacing:-.05em}
.dh .nums dd{font-size:14px;color:var(--gray);margin-top:10px;line-height:1.45}

/* cards de serviço com foto no topo */
.dh .carr-i{flex:0 0 clamp(266px,30%,344px);display:flex;flex-direction:column}
.dh .carr-i p{flex:1}
.dh .carr-i .mais{margin-top:22px;align-self:flex-start;font-size:14.5px;font-weight:500;
  letter-spacing:-.02em;color:var(--ink);border-bottom:1px solid var(--bronze);padding-bottom:4px}
.dh .carr-i .mais:hover{color:var(--bronze-dk)}
.dh .carr-i--foto{padding:0;overflow:hidden}
.dh .carr-fig{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--mist-2)}
.dh .carr-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.dh .carr-i--foto:hover .carr-fig img{transform:scale(1.05)}
.dh .carr-corpo{padding:clamp(24px,2.5vw,30px) clamp(22px,2.3vw,28px) clamp(26px,2.7vw,32px);
  display:flex;flex-direction:column;flex:1}
.dh .carr-i--foto .et{margin-bottom:12px}
.dh .carr-i--foto .mais{margin-top:20px}


/* processo: cabecalho fixo na coluna da esquerda e etapas numeradas
   em display grande na direita. Cores vem dos tokens do tema. */
.proc{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(34px,5.4vw,92px);align-items:start}
.proc-cab{position:sticky;top:120px}
.proc-cab .d2{max-width:13ch}
.proc-cab p{margin-top:20px;font-size:16px;max-width:34ch}
.proc-obs{margin-top:clamp(22px,2.4vw,32px);font-size:13.5px}
.proc-lista{list-style:none;counter-reset:none}
.proc-p{display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(18px,2.4vw,34px);padding:clamp(24px,2.8vw,36px) 0;
  border-top:1px solid var(--mist-2)}
.proc-p:first-child{border-top:0;padding-top:0}
.proc-n{font-size:clamp(34px,4vw,54px);font-weight:500;line-height:.86;
  letter-spacing:-.06em;color:var(--bronze-lt);font-variant-numeric:tabular-nums}
.proc-quem{display:inline-block;font-size:12.5px;font-weight:500;letter-spacing:-.01em;
  color:var(--bronze-dk);border:1px solid var(--mist-2);
  border-radius:var(--pill);padding:6px 14px;margin-bottom:15px}
.proc-p h3{margin-bottom:9px}
.proc-p p{font-size:15.5px;color:var(--gray);max-width:54ch}
@media(max-width:1060px){
  .proc{grid-template-columns:1fr;gap:clamp(28px,4vw,40px)}
  .proc-cab{position:static}
  .proc-cab .d2,.proc-cab p{max-width:none}
}
@media(max-width:640px){
  .proc-p{grid-template-columns:1fr;gap:10px}
  .proc-n{font-size:32px;line-height:1}
}

/* faixa de ambientes em perspectiva: a fita anda sozinha conforme a pagina
   rola e cada foto inclina de acordo com a distancia do centro da tela.
   O transform quem aplica e o app.js; aqui ficam so as medidas. */
.cvf{position:relative;perspective:1400px;padding:clamp(10px,1.4vw,20px) 0;
  overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;
  touch-action:pan-x;cursor:grab;overscroll-behavior-x:contain}
.cvf::-webkit-scrollbar{display:none}
.cvf.arrastando{cursor:grabbing}
.cvf-in{display:flex;gap:clamp(14px,1.8vw,26px);width:max-content;transform-style:preserve-3d}
.cvf-i{position:relative;flex:0 0 clamp(228px,25vw,352px);aspect-ratio:4/5;
  border-radius:var(--r);overflow:hidden;background:var(--mist-2);
  transform-origin:center center;user-select:none}
.cvf-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  -webkit-user-drag:none;user-select:none;pointer-events:none}

/* cabecalho e nota centralizados */
.head-c{max-width:660px;margin-left:auto;margin-right:auto;text-align:center}
.aviso-c{text-align:center}

/* quadro comparativo: o jeito comum de um lado, o nosso do outro */
.vs-head{max-width:660px;margin-left:auto;margin-right:auto;text-align:center}
.vs-head .lbl{margin-left:auto;margin-right:auto}
.versus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,1.8vw,22px);align-items:start}
.vs-c{border-radius:var(--r);padding:clamp(26px,3vw,42px)}
.vs-c h3{font-size:clamp(17px,1.6vw,19px);font-weight:500;letter-spacing:-.01em;
  margin-bottom:clamp(20px,2.2vw,28px)}
.vs-c ul{list-style:none;display:grid;gap:clamp(13px,1.4vw,17px)}
.vs-c li{display:grid;grid-template-columns:17px minmax(0,1fr);gap:13px;align-items:start;
  font-size:15.5px;line-height:calc(1em + 9px)}
.vs-c li svg{width:17px;height:17px;margin-top:3px;fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.vs-a{background:rgba(254,254,254,.055);border:1px solid rgba(254,254,254,.12)}
.bg-esc .vs-a h3{color:rgba(254,254,254,.6)}
.vs-a li{color:rgba(254,254,254,.5)}
.vs-a li svg{stroke:rgba(254,254,254,.38)}
.vs-b{background:var(--paper);border:1px solid var(--paper)}
.bg-esc .vs-b h3{color:var(--ink)}
.vs-b li{color:var(--ink-soft)}
.vs-b li svg{stroke:var(--bronze-dk)}
.vs-acao{margin-top:clamp(28px,3.2vw,42px);display:flex;justify-content:center}
@media(max-width:820px){
  .versus{grid-template-columns:1fr}
  .vs-head{text-align:left;margin-left:0}
  .vs-head .lbl{margin-left:0}
  .vs-acao{justify-content:flex-start}
}

@media(max-width:1060px){
  .dh .nums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dh .nums div:nth-child(2n){border-right:0;padding-right:0}
}
@media(max-width:640px){
  .dh .nums{grid-template-columns:1fr}
  .dh .nums div{border-right:0;padding:22px 0;border-bottom:1px solid var(--mist-2)}
  .dh .nums div+div{padding-left:0}
}

/* ================================================================
   NEWSLETTER e REDES
   ================================================================ */
.news{position:relative;overflow:hidden;border-radius:var(--r);min-height:clamp(260px,24vw,330px);display:flex;align-items:center;justify-content:center;text-align:center;padding:clamp(40px,3.8vw,58px) 24px}
.news-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.02)}
.news-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,23,30,.74) 0%,rgba(13,23,30,.8) 50%,rgba(13,23,30,.9) 100%)}
.news-in{position:relative;z-index:2;max-width:660px;width:100%}
.news h2{color:#fff}
.news .sub{color:rgba(254,254,254,.76);margin-top:14px;font-size:clamp(15.5px,1.4vw,17.5px);max-width:52ch;margin-left:auto;margin-right:auto}
.news form{margin-top:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;align-items:center;gap:20px}
.news input{width:100%;max-width:440px;background:transparent;border:0;border-bottom:1px solid rgba(254,254,254,.4);color:#fff;font:inherit;font-size:16.5px;letter-spacing:-.015em;padding:13px 2px;outline:none;text-align:center;transition:.3s;border-radius:0}
.news input::placeholder{color:rgba(254,254,254,.5)}
.news input:focus{border-color:var(--bronze)}
.news .lgpd2{margin-top:16px;font-size:12.5px;color:rgba(254,254,254,.44);max-width:54ch;margin-left:auto;margin-right:auto;line-height:1.55}
.news .ok{color:var(--bronze-lt);font-size:16px;margin-top:8px}

.redes{text-align:center;padding-top:clamp(40px,4.4vw,62px)}
.redes p{font-size:15px;color:var(--gray);margin-bottom:18px}
.redes ul{list-style:none;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.redes a{width:46px;height:46px;border:1px solid var(--mist-2);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.3s var(--e)}
.redes a:hover{background:var(--ink);border-color:var(--ink);transform:translateY(-3px)}
.redes svg{width:19px;height:19px;stroke:var(--ink);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.redes a:hover svg{stroke:#fff}
.redes .obs{font-size:12.5px;color:var(--gray-lt);margin-top:16px;margin-bottom:0}

@media(max-width:720px){
  .news{padding:40px 20px;min-height:0}
  .news input{max-width:none;text-align:left}
  .news form .btn{width:100%;justify-content:center}
}

/* ================================================================
   RODAPÉ: faixa das marcas do ecossistema e redes na coluna da marca
   ================================================================ */
.f-social{display:flex;gap:10px;margin-top:24px}
.f-social a{width:37px;height:37px;border:1px solid rgba(254,254,254,.16);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.28s var(--e)}
.f-social a:hover{background:rgba(254,254,254,.1);border-color:rgba(254,254,254,.42);transform:translateY(-2px)}
.f-social svg{width:16px;height:16px;stroke:rgba(254,254,254,.68);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.f-social a:hover svg{stroke:#fff}
.f-social + .pend{margin-top:10px;font-size:12px;opacity:.55}

.eco-strip{padding:clamp(32px,3.6vw,50px) 0;border-bottom:1px solid rgba(254,254,254,.12);text-align:center}
.eco-strip .tit{font-size:13px;color:rgba(254,254,254,.42);margin-bottom:clamp(20px,2.4vw,30px);letter-spacing:-.005em}
.eco-strip ul{list-style:none;display:flex;align-items:center;justify-content:center;gap:clamp(28px,5.4vw,78px);flex-wrap:wrap}
.eco-strip a{display:flex;align-items:center;gap:11px;opacity:.7;transition:.32s var(--e)}
.eco-strip a:hover{opacity:1}
.eco-strip svg{flex:0 0 auto}
.m-hosp svg{width:25px;height:30px}
.m-hosp b{font-family:var(--mark);font-size:26px;font-weight:400;color:#fff;letter-spacing:.012em;line-height:1}
.m-kore img{height:40px;width:40px;object-fit:contain;display:block}
.m-dh b{font-size:18px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:#fff;line-height:1}
.m-dh i{font-style:normal;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(254,254,254,.42);display:block;margin-top:4px;line-height:1}
@media(max-width:720px){
  .eco-strip ul{flex-direction:column;gap:26px}
}

/* ================================================================
   PÁGINA DE INFORMAÇÕES LEGAIS
   ================================================================ */
.sem-hero-topo{padding-top:clamp(38px,4vw,58px)}
.leg-bloco{margin-top:clamp(38px,4vw,56px);padding-top:clamp(28px,3vw,38px);border-top:1px solid var(--mist-2)}
.leg-bloco h2{margin-bottom:6px}
.leg-esc{color:var(--gray);margin-bottom:22px;font-size:15.5px}
.leg-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(26px,3vw,48px)}
.leg-dl div{padding:14px 0;border-top:1px solid var(--mist-2);display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.leg-dl dt{font-size:14.5px;color:var(--gray);flex:0 0 auto}
.leg-dl dd{font-size:15.5px;color:var(--ink);font-weight:500;letter-spacing:-.02em;text-align:right}
.leg-sub{font-size:14px;font-weight:500;color:var(--bronze-dk);margin:26px 0 4px;letter-spacing:-.01em}
.leg-rt{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(26px,3vw,48px)}
.leg-rt li{padding:13px 0;border-top:1px solid var(--mist-2)}
.leg-rt b{display:block;font-size:15.5px;font-weight:500;color:var(--ink);letter-spacing:-.02em}
.leg-rt span{display:block;font-size:13.5px;color:var(--gray);margin-top:2px}
.leg-obs{margin-top:20px;font-size:14px;color:var(--gray);max-width:78ch}
@media(max-width:720px){
  .leg-dl,.leg-rt{grid-template-columns:1fr}
  .leg-dl div{flex-direction:column;gap:3px;align-items:flex-start}
  .leg-dl dd{text-align:left}
}

/* Submenu e menu no celular. Fica no fim do arquivo de propósito:
   precisa vir depois das regras base do painel para vencer a cascata. */
@media(max-width:1060px){
  .nav-side a{padding:16px 0;border-radius:0}
  .nav-side a:hover{background:none}
}

/* ================================================================
   BLOCOS DE LAYOUT (modelo dropbox): faixa de credibilidade e
   blocos alternados altos de texto e imagem. Identidade Hospedar.
   ================================================================ */
.verif{background:var(--ink);color:#fff;border-radius:var(--r);padding:clamp(30px,3.2vw,46px);
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,4vw,64px);align-items:start}
.verif h2{color:#fff;font-size:clamp(22px,2.2vw,28px);font-weight:500;letter-spacing:-.035em;line-height:1.14;max-width:18ch}
.verif p{color:rgba(254,254,254,.62);font-size:15px;margin-top:14px;max-width:34ch}
.verif .conf{margin-top:20px;display:inline-flex;align-items:center;gap:9px;font-size:14.5px;font-weight:500;
  color:var(--bronze-lt);letter-spacing:-.02em;border-bottom:1px solid rgba(216,188,152,.35);padding-bottom:3px}
.verif .conf:hover{color:#fff;border-color:#fff}
.verif dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,44px)}
.verif dl div{padding:16px 0;border-top:1px solid rgba(254,254,254,.14)}
.verif dl div:nth-child(-n+2){border-top:0;padding-top:0}
.verif dt{font-size:12.5px;color:rgba(254,254,254,.5);margin-bottom:5px}
.verif dd{font-size:17.5px;color:#fff;font-weight:500;letter-spacing:-.028em;line-height:1.25}
.verif dd small{display:block;font-size:12.5px;font-weight:400;color:rgba(254,254,254,.45);margin-top:3px;letter-spacing:0}

.duo-alto{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:clamp(32px,4.6vw,74px);align-items:center}
.duo-alto + .duo-alto{margin-top:clamp(56px,7vw,112px)}
.duo-alto.inv .fig{order:-1}
.duo-alto .fig{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--mist)}
.duo-alto .fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--e)}
.duo-alto .fig:hover img{transform:scale(1.04)}
.duo-alto .num{font-size:13px;font-weight:500;color:var(--bronze-dk);margin-bottom:18px;display:inline-flex;align-items:center;gap:10px;letter-spacing:-.005em}
.duo-alto .num::before{content:'';width:24px;height:1px;background:var(--bronze);flex:0 0 auto}
/* o tamanho vem da classe .d2 no HTML, para o título ficar na mesma
   escala das outras seções. Aqui fica só o que é do bloco. */
.duo-alto h3{margin-bottom:18px;color:var(--ink)}
.duo-alto p+p{margin-top:14px}
/* link de texto com seta, usado solto em barras e blocos */
.saiba{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:500;
  letter-spacing:-.022em;color:var(--ink);white-space:nowrap}
.saiba svg{width:15px;height:15px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.6;
  transition:transform .35s var(--e)}
.saiba:hover svg{transform:translateX(4px)}
.saiba:hover{color:var(--bronze-dk)}
.duo-alto .saiba{margin-top:24px;display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:500;letter-spacing:-.022em;color:var(--ink)}
.duo-alto .saiba svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6;transition:transform .35s var(--e)}
.duo-alto .saiba:hover svg{transform:translateX(4px)}

@media(max-width:1060px){
  .duo-alto,.duo-alto.inv{grid-template-columns:1fr;gap:26px}
  .duo-alto.inv .fig{order:0}
}

/* faixa alternada nos blocos, pra criar ritmo em vez de rolagem plana */
.bloco-alt{background:var(--mist);border-radius:var(--r);padding:clamp(34px,4vw,64px) clamp(28px,3.4vw,56px)}

/* perguntas frequentes com details nativo */
.faq{border-top:1px solid var(--mist-2)}
.faq details{border-bottom:1px solid var(--mist-2)}
.faq summary{list-style:none;cursor:pointer;padding:24px 52px 24px 0;position:relative;
  font-size:clamp(17px,1.6vw,19.5px);font-weight:500;letter-spacing:-.03em;color:var(--ink);line-height:1.35;transition:.25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--bronze-dk)}
.faq summary::after{content:'';position:absolute;right:8px;top:32px;width:10px;height:10px;
  border-right:1.7px solid var(--bronze-dk);border-bottom:1.7px solid var(--bronze-dk);transform:rotate(45deg);transition:transform .3s var(--e)}
.faq details[open] summary::after{transform:rotate(-135deg);top:36px}
.faq details p{padding:0 64px 26px 0;font-size:16.5px;margin:0;max-width:74ch}

/* entregáveis: lista em duas colunas com marcador */
.entrega{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(30px,4vw,64px);list-style:none}
.entrega li{padding:16px 0;border-top:1px solid var(--mist-2);display:flex;gap:13px;align-items:flex-start}
.entrega li svg{width:16px;height:16px;flex:0 0 auto;margin-top:5px;stroke:var(--bronze-dk);fill:none;stroke-width:2}
.entrega li b{display:block;font-size:16.5px;font-weight:500;letter-spacing:-.025em;color:var(--ink)}
.entrega li span{display:block;font-size:14.5px;color:var(--gray);margin-top:2px}

@media(max-width:1060px){
  .verif{grid-template-columns:1fr;gap:26px}
  .verif dl div:nth-child(2){border-top:1px solid rgba(254,254,254,.14);padding-top:16px}
}
@media(max-width:720px){
  .verif dl{grid-template-columns:1fr}
  .verif dl div:nth-child(2){padding-top:16px}
  .entrega{grid-template-columns:1fr}
  .faq summary{padding-right:40px;font-size:17px}
  .faq details p{padding-right:20px}
}

/* ================================================================
   IMÓVEIS: listagem com filtros e página do imóvel
   ================================================================ */
.demo-av{background:var(--bronze);color:#fff;text-align:center;padding:11px 24px;font-size:13.5px;letter-spacing:-.01em}
.demo-av b{font-weight:600}

/* barra de filtros */
.filtros{background:var(--mist);border-radius:var(--r);padding:clamp(20px,2.4vw,28px)}
.filtros h2{font-size:15px;font-weight:500;letter-spacing:-.02em;margin-bottom:16px;color:var(--ink)}
.filtros .f-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.f-campo label{display:block;font-size:12.5px;color:var(--gray);margin-bottom:6px;letter-spacing:-.01em}
.f-campo select,.f-campo input{width:100%;background:#fff;border:1px solid var(--mist-2);border-radius:var(--r-sm);padding:12px 13px;font:inherit;font-size:14.5px;letter-spacing:-.015em;color:var(--ink);outline:none;transition:.25s;appearance:none;-webkit-appearance:none}
.f-campo select{background-repeat:no-repeat;background-position:right 12px center;background-size:12px;padding-right:32px}
.f-campo select:focus,.f-campo input:focus{border-color:var(--bronze)}
.f-acoes{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;flex-wrap:wrap}
.f-limpar{font-size:14px;color:var(--gray);cursor:pointer;background:none;border:0;font-family:inherit;text-decoration:underline;text-underline-offset:3px;padding:0}
.f-limpar:hover{color:var(--ink)}

.barra-res{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:clamp(28px,3vw,42px) 0 22px;flex-wrap:wrap}
.barra-res .cont{font-size:15px;color:var(--gray)}
.barra-res .cont b{color:var(--ink);font-weight:500}
.barra-res .ord{display:flex;align-items:center;gap:10px}
.barra-res .ord label{font-size:14px;color:var(--gray);white-space:nowrap}
.barra-res select{background:#fff;border:1px solid var(--mist-2);border-radius:var(--r-sm);padding:10px 32px 10px 13px;font:inherit;font-size:14.5px;letter-spacing:-.015em;outline:none;appearance:none;-webkit-appearance:none;background-repeat:no-repeat;background-position:right 12px center;background-size:12px}

/* grade de imóveis */
.grade-im{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
.card-im{display:block;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--mist-2);transition:.42s var(--e)}
.card-im:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(19,32,42,.1)}
.card-im .foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--mist)}
.card-im .foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.card-im:hover .foto img{transform:scale(1.05)}
.selo{position:absolute;top:12px;left:12px;font-size:12px;font-weight:500;letter-spacing:-.01em;padding:6px 12px;border-radius:var(--pill);color:#fff}
.selo.disp{background:rgba(63,110,80,.94)}
.selo.res{background:rgba(185,143,66,.96)}
.selo.ind{background:rgba(19,32,42,.88)}
.selo-fin{position:absolute;top:12px;right:12px;font-size:12px;font-weight:500;padding:6px 12px;border-radius:var(--pill);background:rgba(254,254,254,.94);color:var(--ink)}
.card-im .corpo{padding:20px 20px 22px}
.card-im .loc{font-size:13px;color:var(--bronze-dk);font-weight:500;letter-spacing:-.01em}
.card-im h3{font-size:20px;font-weight:500;letter-spacing:-.028em;line-height:1.22;margin:5px 0 3px;color:var(--ink)}
.card-im .un{font-size:14px;color:var(--gray)}
.card-im .specs{display:flex;flex-wrap:wrap;gap:14px;margin-top:15px;padding-top:15px;border-top:1px solid var(--mist-2)}
.card-im .specs span{font-size:13.5px;color:var(--gray);display:inline-flex;align-items:center;gap:6px;letter-spacing:-.01em}
.card-im .specs svg{width:15px;height:15px;stroke:var(--gray-lt);fill:none;stroke-width:1.5;flex:0 0 auto}
.card-im .preco{margin-top:16px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.card-im .preco b{font-size:21px;font-weight:500;letter-spacing:-.03em;color:var(--ink)}
.card-im .preco i{font-style:normal;font-size:13px;color:var(--gray)}

.vazio{text-align:center;padding:70px 20px;border:1px dashed var(--mist-2);border-radius:var(--r)}
.vazio h3{font-size:22px;font-weight:500;letter-spacing:-.03em;margin-bottom:8px}
.vazio p{color:var(--gray)}

/* ---------- página do imóvel ---------- */
.im-voltar{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;color:var(--gray);margin-bottom:22px;transition:.2s}
.im-voltar:hover{color:var(--ink)}
.im-voltar svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6}
.im-topo{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;padding-bottom:26px;border-bottom:1px solid var(--mist-2)}
.im-topo .ref{font-size:13.5px;color:var(--bronze-dk);font-weight:500;margin-bottom:8px}
.im-topo h1{font-size:clamp(29px,3.8vw,44px);font-weight:500;letter-spacing:-.045em;line-height:1.06;color:var(--ink)}
.im-topo .un{font-size:17px;color:var(--gray);margin-top:7px}
.im-topo .val b{display:block;font-size:clamp(25px,2.8vw,33px);font-weight:500;letter-spacing:-.035em;color:var(--ink);text-align:right;line-height:1.1}
.im-topo .val i{font-style:normal;display:block;font-size:14px;color:var(--gray);text-align:right;margin-top:4px}

.im-specs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--mist-2)}
.im-specs div{padding:22px 20px 22px 0;border-right:1px solid var(--mist-2)}
.im-specs div:last-child{border-right:0;padding-right:0}
.im-specs div+div{padding-left:20px}
.im-specs dt{font-size:12.5px;color:var(--gray);margin-bottom:5px}
.im-specs dd{font-size:18px;font-weight:500;letter-spacing:-.025em;color:var(--ink)}

.im-corpo{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);gap:clamp(28px,3.6vw,58px);align-items:start;margin-top:clamp(34px,4vw,52px)}
.im-galeria{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.im-galeria figure{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--mist)}
.im-galeria figure:first-child{grid-column:span 2;aspect-ratio:16/10}
.im-galeria img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--e)}
.im-galeria figure:hover img{transform:scale(1.04)}
.im-bloco{margin-top:clamp(34px,3.6vw,48px)}
.im-bloco h2{font-size:23px;font-weight:500;letter-spacing:-.035em;margin-bottom:16px;color:var(--ink)}
.im-bloco p{font-size:16.5px}
.im-abas{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.im-abas button{font:inherit;font-size:14.5px;letter-spacing:-.02em;padding:10px 18px;border-radius:var(--pill);border:1px solid var(--mist-2);background:#fff;color:var(--gray);cursor:pointer;transition:.25s}
.im-abas button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.im-carac{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px;list-style:none}
.im-carac li{font-size:15.5px;color:var(--ink);padding:11px 0;border-bottom:1px solid var(--mist-2);display:flex;gap:10px;align-items:flex-start}
.im-carac li svg{width:15px;height:15px;flex:0 0 auto;margin-top:5px;stroke:var(--bronze-dk);fill:none;stroke-width:2}

.im-lado{position:sticky;top:96px;background:var(--ink);color:#fff;border-radius:var(--r);padding:clamp(24px,2.6vw,32px)}
.im-lado .lv{font-size:13.5px;color:rgba(254,254,254,.55)}
.im-lado .lp{font-size:clamp(26px,2.6vw,32px);font-weight:500;letter-spacing:-.035em;margin:4px 0 2px}
.im-lado .lu{font-size:13.5px;color:rgba(254,254,254,.5);margin-bottom:20px}
.im-lado dl div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid rgba(254,254,254,.12);font-size:14.5px}
.im-lado dt{color:rgba(254,254,254,.55)}
.im-lado dd{color:#fff;font-weight:500;letter-spacing:-.02em}
.im-lado .btn{width:100%;justify-content:center;margin-top:20px}
.im-lado .obs{margin-top:14px;font-size:12.5px;color:rgba(254,254,254,.42);line-height:1.55}

@media(max-width:1060px){
  .filtros .f-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grade-im{grid-template-columns:repeat(2,minmax(0,1fr))}
  .im-corpo{grid-template-columns:1fr}
  .im-lado{position:static}
  .im-specs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .im-specs div:nth-child(3n){border-right:0}
}
@media(max-width:720px){
  .filtros .f-grid{grid-template-columns:1fr}
  .grade-im{grid-template-columns:1fr}
  .im-topo{grid-template-columns:1fr;gap:16px;align-items:start}
  .im-topo .val b,.im-topo .val i{text-align:left}
  .im-specs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .im-specs div{border-right:0;padding:18px 0;border-bottom:1px solid var(--mist-2)}
  .im-specs div+div{padding-left:0}
  .im-galeria{grid-template-columns:1fr}
  .im-galeria figure:first-child{grid-column:span 1;aspect-ratio:4/3}
  .im-carac{grid-template-columns:1fr}
}

/* Duas seções seguidas sem troca de fundo somam o padding das duas e o
   vão passa de 240px. A segunda usa metade. */
section:not([class]) + section:not([class]){padding-top:clamp(36px,4.2vw,62px)}

/* Faixas em caixa (CTA e newsletter) já têm respiro interno próprio.
   Sem isto o padding da seção soma com o da caixa e o rodapé da página
   fica com quase 200px de branco entre um bloco e outro. */
section:has(> .wrap > .faixa-cta),
.sec-cta,
.news-sec{
  padding-top:clamp(54px,6.2vw,92px);
  padding-bottom:clamp(54px,6.2vw,92px);
}
/* duas faixas seguidas não dobram o espaço entre elas */
.sec-cta + .news-sec,
section:has(> .wrap > .faixa-cta) + .news-sec{padding-top:0}
/* a seção logo antes de uma faixa também encurta o fecho */
section:has(+ .sec-cta),
section:has(+ .news-sec){padding-bottom:clamp(50px,5.6vw,84px)}

/* Acima da faixa em caixa o vão somava o fecho da seção anterior (76px) com
   o respiro da própria faixa (84px) e passava de 160px, com cara de padding
   dobrado. Cada lado fica na metade, e o vão iguala o que já existe entre a
   faixa e a newsletter.
   As duas formas de mirar a mesma seção precisam aparecer aqui: a mesma faixa
   é pega por .sec-cta e por section:has(> .wrap > .faixa-cta), e a segunda é
   mais específica, então sozinha a primeira não vence.
   Cuidado: :has() dentro de :has() é inválido e derruba a regra inteira. */
section:has(+ .sec-cta){padding-bottom:clamp(26px,2.8vw,42px)}
section + .sec-cta,
section + section:has(> .wrap > .faixa-cta){padding-top:clamp(28px,3.1vw,46px)}

/* ================================================================
   CARROSSEL horizontal
   ================================================================ */
.carrossel{position:relative}
.carr-topo{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(24px,2.6vw,34px);flex-wrap:wrap}
.carr-nav{display:flex;gap:9px;flex:0 0 auto}
.carr-nav button{width:46px;height:46px;border-radius:50%;border:1px solid var(--mist-2);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.28s var(--e);padding:0}
.carr-nav button:hover:not(:disabled){background:var(--ink);border-color:var(--ink)}
.carr-nav button:disabled{opacity:.32;cursor:default}
.carr-nav svg{width:16px;height:16px;stroke:var(--ink);fill:none;stroke-width:1.7}
.carr-nav button:hover:not(:disabled) svg{stroke:#fff}
.carr-trilha{display:flex;gap:clamp(14px,1.6vw,20px);overflow-x:auto;padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;touch-action:pan-x;overscroll-behavior-x:contain}
.carr-trilha.arrastando{cursor:grabbing;user-select:none}
.carr-trilha.arrastando a{pointer-events:none}
.carr-trilha img{-webkit-user-drag:none}
.carr-trilha::-webkit-scrollbar{display:none}
.carr-i{flex:0 0 clamp(268px,29%,352px);border:1px solid var(--mist-2);border-radius:var(--r);padding:30px 28px 32px;background:#fff;transition:.4s var(--e)}
.carr-i:hover{border-color:var(--bronze);box-shadow:0 16px 40px rgba(19,32,42,.08)}
.carr-i .ic3{width:26px;height:26px;stroke:var(--bronze-dk);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;display:block;margin-bottom:20px}
.carr-i .et{font-size:12.5px;font-weight:500;color:var(--bronze-dk);letter-spacing:.02em;display:block;margin-bottom:9px}
.carr-i h3{font-size:20px;font-weight:500;letter-spacing:-.03em;line-height:1.2;margin-bottom:9px;color:var(--ink)}
.carr-i p{font-size:15px}
.carr-dica{font-size:13.5px;color:var(--gray-lt);margin-top:16px}

/* bento em tom claro, para páginas de fundo branco */
.bt--foto{position:relative}
.bento-luz .bt{background:#fff;border-color:var(--mist-2);color:var(--ink)}
.bento-luz .bt h3,.bento-luz .bt .d3,.bento-luz .bt .d4{color:var(--ink)}
.bento-luz .bt p{color:var(--gray)}
.bento-luz .bt-n{color:var(--bronze-dk)}
.bento-luz .bt-who{color:var(--gray-lt)}
.bento-luz .bt:hover{border-color:var(--bronze)}
.bento-luz .bt .ic3{width:28px;height:28px;stroke:var(--bronze-dk);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:auto}
.bento-luz .bt--foto{border-color:transparent}
.bento-luz .bt--accent{background:var(--bronze);border-color:var(--bronze)}
/* o tile em bronze também pede texto claro */
.bento-luz .bt--accent .d3,.bento-luz .bt--accent .d4,.bento-luz .bt--accent h3{color:#fff}
.bento-luz .bt--accent p{color:rgba(255,255,255,.88)}
.bento-luz .bt--accent .bt-n{color:rgba(255,255,255,.68)}
.bento-luz .bt--accent .ic3{stroke:#fff}
/* o tile com foto tem véu escuro: precisa de texto claro, e os seletores
   com a mesma contagem de classes da regra clara para vencer a cascata */
.bento-luz .bt--foto .bt-in,.bento-luz .bt--foto .d3,.bento-luz .bt--foto .d4,
.bento-luz .bt--foto h3,.bento-luz .bt--foto p{color:#fff}
.bento-luz .bt--foto p{color:rgba(254,254,254,.74)}
.bento-luz .bt--foto .bt-n{color:var(--bronze-lt)}

@media(max-width:720px){
  .carr-i{flex:0 0 82%}
  .carr-topo{align-items:flex-start}
}

/* ================================================================
   BENTO DA HOSPEDAR: arranjo assimétrico, diferente do da home
   ================================================================ */
.bento-h{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;grid-auto-rows:minmax(210px,auto)}
.bento-h .bh{position:relative;border-radius:var(--r);overflow:hidden;background:rgba(254,254,254,.055);
  border:1px solid rgba(254,254,254,.1);padding:30px 28px 32px;display:flex;flex-direction:column;transition:.45s var(--e)}
.bento-h .bh:hover{transform:translateY(-4px);border-color:rgba(254,254,254,.24)}
.bento-h .bh .ic4{width:27px;height:27px;stroke:var(--bronze);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:auto}
.bento-h .bh .n4{font-size:13px;font-weight:500;color:var(--bronze);letter-spacing:.02em;display:block;padding-top:24px}
.bento-h .bh h3{color:var(--paper);margin:8px 0 9px}
.bento-h .bh p{color:rgba(254,254,254,.68);font-size:15px}
.bento-h .bh .who4{margin-top:16px;padding-top:14px;border-top:1px solid rgba(254,254,254,.12);font-size:13px;color:rgba(254,254,254,.45)}
.bento-h .destaque{background:var(--bronze);border-color:var(--bronze)}
.bento-h .destaque .ic4{stroke:#fff}
.bento-h .destaque .n4{color:rgba(255,255,255,.7)}
.bento-h .destaque p{color:rgba(255,255,255,.88)}
.bento-h .destaque .who4{color:rgba(255,255,255,.7);border-top-color:rgba(255,255,255,.28)}
.bento-h .foto4{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bento-h .veu4{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,23,30,.28),rgba(13,23,30,.9))}
.bento-h .com-foto{padding:0;border-color:transparent}
.bento-h .com-foto .dentro{position:relative;z-index:2;padding:30px 28px 32px;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
/* arranjo: grande à esquerda, alta à direita, duas no meio, larga embaixo */
.bento-h .p1{grid-column:1/3}
.bento-h .p2{grid-column:3;grid-row:1/3}
.bento-h .p6{grid-column:2/4}

/* seção escura que absorve o card de CTA, sem caixa dentro de caixa */
.sec-escura{background:var(--ink);color:var(--paper)}
.sec-escura h2,.sec-escura h3{color:var(--paper)}
.sec-escura p,.sec-escura .body-lg{color:rgba(254,254,254,.68)}
.sec-escura .lbl{color:var(--bronze)}
.sec-escura .aviso{color:rgba(254,254,254,.42)}
.cta-dentro{margin-top:clamp(44px,5vw,72px);padding-top:clamp(34px,3.6vw,48px);border-top:1px solid rgba(254,254,254,.14);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center}
.cta-dentro h2{max-width:20ch;margin-bottom:12px}
.cta-dentro p{max-width:52ch}

@media(max-width:1060px){
  .bento-h{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bento-h .p1,.bento-h .p6{grid-column:span 2}
  .bento-h .p2{grid-column:auto;grid-row:auto}
  .cta-dentro{grid-template-columns:1fr;gap:22px}
}
@media(max-width:640px){
  .bento-h{grid-template-columns:1fr}
  .bento-h .p1,.bento-h .p6{grid-column:span 1}
}

/* Páginas sem hero escuro: a barra já nasce sólida, senão o texto
   branco fica invisível sobre o fundo claro. */
body.sem-hero{padding-top:80px}
body.sem-hero nav{background:rgba(19,32,42,.94);backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%);padding:16px 0}
@media(max-width:1060px){body.sem-hero{padding-top:66px}body.sem-hero nav{background:var(--ink);backdrop-filter:none}}

/* Seção de perguntas: cabeçalho centralizado e título sem cap de largura,
   para caber em uma linha. A lista fica numa coluna central legível. */
.faq-sec .head{max-width:none;text-align:center;margin-left:auto;margin-right:auto}
.faq-sec .head .body-lg{margin-left:auto;margin-right:auto}
.faq-sec .head .lbl{display:inline-block}
.dh .faq-sec .head .lbl{display:inline-block}
.faq{max-width:920px;margin-left:auto;margin-right:auto}
.faq summary{text-align:left}

/* ================================================================
   LOGOTIPO REAL (arquivos png) — trava de tamanho no menu, rodapé
   e faixa do ecossistema. Adicionado depois da troca do svg desenhado.
   ================================================================ */
.logo .lg-simb{height:34px;width:auto;flex:0 0 auto;display:block}
.logo .lg-txt{height:25px;width:auto;flex:0 0 auto;display:block}
footer .logo .lg-simb{height:38px}
footer .logo .lg-txt{height:28px}
.eco-strip .m-hosp img{height:44px;width:auto;object-fit:contain;display:block}
@media(max-width:720px){
  .logo .lg-simb{height:29px}
  .logo .lg-txt{height:21px}
}

/* seta e quebra de linha do link de registros dentro da faixa .verif */
.verif .conf{white-space:nowrap}
.verif .conf svg{width:15px;height:15px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.7}

/* páginas sem hero (imóveis, imóvel, informações legais): o menu já nasce
   sólido e a primeira seção desce abaixo dele. */
body.sem-hero nav{background:rgba(19,32,42,.96);backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%);padding:16px 0}
body.sem-hero .sem-hero-topo{padding-top:clamp(112px,11vw,152px)}
.eco-strip .m-dh img{height:56px;width:auto;object-fit:contain;display:block}

/* link secundário ao lado do botão da faixa de CTA, e a dupla de links
   dentro da faixa de credenciais */
.cta-lado{display:flex;flex-direction:column;align-items:flex-start;gap:15px}
.cta-sec{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:500;
  color:var(--bronze-lt);letter-spacing:-.02em;border-bottom:1px solid rgba(216,188,152,.35);
  padding-bottom:3px;white-space:nowrap}
.cta-sec:hover{color:#fff;border-color:#fff}
.cta-sec svg{width:15px;height:15px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.7}
.verif-acoes{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:20px}
.verif-acoes .conf{margin-top:0}
@media(max-width:720px){
  .cta-lado{align-items:stretch}
  .cta-sec{justify-content:center}
}

/* cards de empreendimento: resumo e lista de diferenciais dentro do card
   de imóvel, que é o mesmo desenho reaproveitado */
.emp-resumo{font-size:14.5px;color:var(--gray);margin-top:10px}
.emp-dif{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.emp-dif li{font-size:12.5px;color:var(--gray);background:var(--mist);
  border-radius:var(--pill);padding:5px 12px;letter-spacing:-.01em;line-height:1.3}
.card-im .preco b.pend{font-size:16px;font-weight:500;letter-spacing:-.02em}

/* variação de quatro colunas do bloco de caixas */
.tri--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1060px){.tri--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.tri--4{grid-template-columns:1fr}}

/* página de contato: papel da empresa e passo dentro das caixas do bloco de três */
.tri .cx .role-cx{font-size:14px;color:var(--bronze-dk);font-weight:500;margin:-4px 0 12px;letter-spacing:-.015em}
.tri .cx .et{font-size:12.5px;font-weight:500;color:var(--bronze-dk);letter-spacing:.02em;display:block;margin-bottom:8px}
.tri .cx .eco-mark{margin-bottom:18px}
.tri .cx .saiba{font-size:14.5px}

/* título que deve ficar em uma linha só. Abaixo de 640px o texto volta a
   quebrar, senão em celular estreito ele empurra a página para o lado. */
.d2-1linha{white-space:nowrap}
@media(max-width:640px){.d2-1linha{white-space:normal}}

/* ================================================================
   TARJA EM LOOP
   A lista aparece duas vezes e a fita anda metade da própria largura,
   então a volta é sem emenda. A regra global de reduced-motion já
   desliga a animação para quem pediu menos movimento.
   ================================================================ */
.tarja{background:var(--bronze);overflow:hidden;padding:14px 0}
.tarja-in{display:flex;width:max-content;animation:tarja-anda 38s linear infinite}
.tarja-l{display:flex;align-items:center;list-style:none;margin:0;padding:0}
.tarja-l li{display:inline-flex;align-items:center;white-space:nowrap;
  font-size:14.5px;font-weight:500;color:var(--ink);letter-spacing:-.015em;line-height:1.3;
  padding:0 clamp(20px,2.6vw,38px)}
.tarja-l li::after{content:'';width:5px;height:5px;border-radius:50%;
  background:rgba(19,32,42,.42);margin-left:clamp(20px,2.6vw,38px)}
@keyframes tarja-anda{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ================================================================
   SEGMENTOS DE ATUAÇÃO
   Grid de cards com foto, selo de ícone sobre ela e barra de acento.
   ================================================================ */
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
.seg-i{display:block;background:var(--paper);border:1px solid var(--mist-2);
  border-radius:var(--r);overflow:hidden;transition:.42s var(--e)}
.seg-i:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(19,32,42,.1)}
.seg-fig{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--mist);
  border-bottom:3px solid var(--bronze)}
.seg-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--e)}
.seg-i:hover .seg-fig img{transform:scale(1.05)}
.seg-ic{position:absolute;left:18px;bottom:-1px;width:46px;height:46px;border-radius:14px 14px 0 0;
  background:var(--bronze);display:flex;align-items:center;justify-content:center}
.seg-ic svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round}
.seg-b{padding:24px 24px 26px}
.seg-b h3{margin-bottom:9px}
.seg-b p{font-size:15px}
.seg-go{margin-top:18px;display:inline-flex;align-items:center;gap:9px;font-size:14.5px;
  font-weight:500;letter-spacing:-.022em;color:var(--ink)}
.seg-go svg{width:15px;height:15px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.6;
  transition:transform .35s var(--e)}
.seg-i:hover .seg-go{color:var(--bronze-dk)}
.seg-i:hover .seg-go svg{transform:translateX(4px)}
@media(max-width:1060px){.seg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.seg{grid-template-columns:1fr}}


/* ================================================================
   PLANTAS
   A imagem é um desenho técnico, então cabe inteira dentro do card
   em vez de preencher cortando, como acontece com foto.
   ================================================================ */
.plantas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,22px)}
.plantas figure{background:var(--paper);border:1px solid var(--mist-2);border-radius:var(--r);
  padding:clamp(16px,1.8vw,22px);text-align:center;transition:.4s var(--e)}
.plantas figure:hover{border-color:var(--bronze);box-shadow:0 16px 40px rgba(19,32,42,.08)}
.plantas img{width:100%;height:clamp(210px,24vw,300px);object-fit:contain;display:block}
.plantas figcaption{margin-top:16px;font-size:15.5px;font-weight:500;letter-spacing:-.025em;color:var(--ink)}
.plantas figcaption span{display:block;font-size:13.5px;font-weight:400;color:var(--gray);
  margin-top:4px;letter-spacing:-.01em}
@media(max-width:900px){.plantas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.plantas{grid-template-columns:1fr}}

/* ==================================================================
   FICHA DE CAPTACAO
   Formulario longo em fundo escuro. Os campos reaproveitam as regras
   de form label/input do formulario de contato; aqui entra so o
   arranjo: blocos numerados, grade de dois campos, grade de itens de
   lazer e a caixa de anexo.
   ================================================================== */
.capt{max-width:880px;margin:0 auto}
.capt-b{border-top:1px solid rgba(254,254,254,.14);padding:clamp(26px,3vw,40px) 0}
.capt-b:first-of-type{border-top:0;padding-top:0}
.capt-b>h3{font-size:clamp(18px,1.9vw,22px);font-weight:500;color:var(--paper);letter-spacing:-.032em;line-height:1.2}
.capt-b>p{font-size:14.5px;color:rgba(254,254,254,.55);margin:8px 0 24px;max-width:62ch;line-height:1.5}
.capt-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.capt-2{grid-column:1/-1}
.capt-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px}
.capt-checks label{display:flex;align-items:center;gap:10px;margin:0;font-size:14.5px;color:rgba(254,254,254,.82);cursor:pointer}
.capt-checks input[type=checkbox]{width:17px;height:17px;flex:0 0 auto;margin:0;padding:0;accent-color:var(--bronze)}
.capt-anexo{border:1px dashed rgba(254,254,254,.3);border-radius:var(--r-sm);padding:clamp(18px,2vw,24px);text-align:center}
.capt-anexo input[type=file]{width:100%;background:none;border:0;margin:0;padding:0;color:rgba(254,254,254,.8);font:inherit;font-size:14.5px;cursor:pointer}
.capt-anexo p{font-size:13px;color:rgba(254,254,254,.45);margin-top:12px}
.capt-aceite{display:flex;align-items:flex-start;gap:12px;margin:24px 0 26px}
.capt-aceite input[type=checkbox]{width:18px;height:18px;flex:0 0 auto;margin:2px 0 0;padding:0;accent-color:var(--bronze)}
.capt-aceite label{margin:0;font-size:13.5px;line-height:1.55;color:rgba(254,254,254,.62)}
@media(max-width:1060px){.capt-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.capt-g,.capt-checks{grid-template-columns:1fr}}
