:root{
    --paper:#F7F5F2; --white:#FFFFFF; --sand:#EFEAE1; --mist:#E8E9ED;
    --ink:#1C2436; --stone:#5C6472; --faint:#98A0AE;
    --navy:#13294B; --navy-2:#0E1F38; --navy-3:#1B3767;
    --red:#C8102E; --red-hi:#E4213F; --amber:#FFB25A;
    --line:rgba(19,41,75,.10); --line-2:rgba(19,41,75,.16);
    --sh-sm:0 1px 2px rgba(19,41,75,.05);
    --sh:0 1px 2px rgba(19,41,75,.04),0 14px 34px -10px rgba(19,41,75,.12);
    --sh-lg:0 30px 60px -24px rgba(19,41,75,.28);
    --disp:'Playfair Display',Georgia,'Times New Roman',serif;
    --body:'Lato',system-ui,-apple-system,'Segoe UI',sans-serif;
    --wrap:1220px; --ease:cubic-bezier(.22,1,.36,1);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  h1,h2,h3{font-family:var(--disp);color:var(--navy);font-weight:600;line-height:1.06;text-wrap:balance;letter-spacing:-.02em}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 30px}
  ::selection{background:rgba(200,16,46,.14);color:var(--navy)}
  .eyebrow{font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:12px}
  .eyebrow::before{content:"";width:26px;height:1.5px;background:var(--red)}
  .eyebrow.on-dark{color:#FF6B7E}.eyebrow.on-dark::before{background:#FF6B7E}

  /* ---- símbolo da marca (SVG real) ---- */
  .sym{width:auto;display:block}
  .sym .tower{fill:var(--navy)}.sym .roof{fill:var(--red)}.sym .pane{fill:var(--navy);transition:fill .7s ease}.sym .cross{fill:#fff}
  .on-dark .sym .tower,.d .sym .tower{fill:#fff}.on-dark .sym .pane,.d .sym .pane{fill:#fff}.on-dark .sym .cross,.d .sym .cross{fill:var(--navy)}
  .sym.lit .pane{fill:var(--red)}
  /* janela do header pulsa suave (acesa) */
  @keyframes paneGlow{0%,100%{fill:var(--navy)}50%{fill:#2a4b82}}
  .logo:hover .sym .pane{fill:var(--red)}

  /* scroll progress */
  .prog{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--red),var(--red-hi));z-index:300;transition:width .1s linear}

  /* cursor */
  .cursor{position:fixed;top:0;left:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--navy);
    pointer-events:none;z-index:9998;mix-blend-mode:difference;transition:width .3s,height .3s,margin .3s,opacity .3s;opacity:0}
  .cursor.on{opacity:1}.cursor.big{width:52px;height:52px;margin:-26px 0 0 -26px;background:#fff}
  .has-cursor,.has-cursor *{cursor:none!important}

  /* ---- loader ---- */
  .loader{position:fixed;inset:0;z-index:9999;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;transition:opacity .7s ease,visibility .7s}
  .loader.done{opacity:0;visibility:hidden}
  .loader .sym{width:82px}
  .loader .lbl{font-size:11px;font-weight:700;letter-spacing:.34em;text-transform:uppercase;color:var(--faint);overflow:hidden}
  .loader .lbl span{display:inline-block;animation:up .7s var(--ease) .3s both}
  @keyframes up{from{transform:translateY(110%)}to{transform:translateY(0)}}

  /* ---- header ---- */
  header.site{position:fixed;inset:0 0 auto;z-index:200;transition:background .4s,box-shadow .4s,backdrop-filter .4s}
  header.site.scrolled{background:rgba(247,245,242,.82);backdrop-filter:blur(12px) saturate(1.4);-webkit-backdrop-filter:blur(12px) saturate(1.4);box-shadow:0 1px 0 var(--line)}
  .head-in{display:flex;align-items:center;justify-content:space-between;height:80px}
  .logo{display:flex;align-items:center;gap:12px}
  .logo .sym{width:38px}
  .logo .wm{font-family:var(--disp);font-size:22px;font-weight:700;color:var(--navy);line-height:1;letter-spacing:.01em}
  .logo .wm small{display:block;font-family:var(--body);font-size:8.5px;font-weight:700;letter-spacing:.3em;color:var(--stone);margin-top:3px}
  .nav{display:flex;gap:32px;align-items:center}
  .nav a:not(.btn){font-size:15px;font-weight:600;color:var(--ink);position:relative;padding:4px 0}
  .nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:0;background:var(--red);transition:width .3s var(--ease)}
  .nav a:not(.btn):hover::after{width:100%}
  @media(max-width:880px){.nav a:not(.btn){display:none}.logo .wm small{display:none}}

  .btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--body);font-weight:700;font-size:15px;padding:14px 28px;border-radius:999px;cursor:pointer;border:none;position:relative;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s,color .35s,background .35s,border-color .35s}
  .btn-red{background:var(--red);color:#fff;box-shadow:0 8px 22px -8px rgba(200,16,46,.45)}
  .btn-red:hover{background:var(--red-hi);box-shadow:0 14px 32px -10px rgba(200,16,46,.5)}
  .btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy-2)}
  .btn-light{background:#fff;color:var(--navy);border:1.5px solid var(--line-2)}.btn-light:hover{border-color:var(--navy)}
  .btn-ghost{background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.45);color:#fff}.btn-ghost:hover{background:rgba(255,255,255,.18)}

  /* ---- HERO ---- */
  .hero{padding-top:80px;position:relative}
  .hero-in{display:grid;grid-template-columns:1.24fr .76fr;min-height:min(88vh,780px)}
  .hero-copy{display:flex;flex-direction:column;justify-content:center;padding:70px 44px 96px 0}
  .hero h1{font-size:clamp(34px,5vw,66px);font-weight:500;margin:24px 0 26px;color:var(--navy);text-wrap:balance;
    opacity:0;animation:heroTitle 1s var(--ease) .35s forwards}
  .hero h1 em{font-style:italic;color:var(--red)}
  .hero h1 .brk{display:none}
  @media(min-width:680px){.hero h1 .brk{display:inline}}
  @keyframes heroTitle{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  .hero .lead{font-size:clamp(17px,1.5vw,20px);font-weight:300;color:var(--stone);max-width:450px;line-height:1.6;opacity:0;animation:fadeUp .9s var(--ease) .7s forwards}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;opacity:0;animation:fadeUp .9s var(--ease) .85s forwards}
  @keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
  .hero-media{position:relative;overflow:hidden;border-radius:24px 0 0 24px;clip-path:inset(0 0 0 100%);animation:heroReveal 1.2s var(--ease) .3s forwards}
  @keyframes heroReveal{to{clip-path:inset(0)}}
  .hero-media .ph{position:absolute;inset:-8%;background:var(--hero) center/cover;animation:ken 26s ease-in-out infinite alternate;will-change:transform}
  @keyframes ken{from{transform:scale(1)}to{transform:scale(1.12)}}
  .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(19,41,75,.34),transparent 46%)}
  .hero-chip{position:absolute;z-index:3;left:0;bottom:40px;background:rgba(247,245,242,.92);backdrop-filter:blur(6px);border-radius:0 14px 14px 0;padding:14px 22px 14px 26px;box-shadow:var(--sh);display:flex;align-items:center;gap:14px;opacity:0;animation:fadeUp .9s var(--ease) 1.15s forwards}
  .hero-chip .sym{width:30px}.hero-chip .tx{font-size:13px;color:var(--navy);font-weight:600;line-height:1.3}.hero-chip .tx b{color:var(--red)}
  @media(max-width:880px){.hero-in{grid-template-columns:1fr}.hero-copy{padding:34px 0 40px}.hero-media{min-height:320px;border-radius:20px;clip-path:none;animation:none}.hero-chip{display:none}}

  .search{position:relative;z-index:20;margin:-46px auto 0;max-width:1000px;background:#fff;border-radius:18px;box-shadow:var(--sh-lg);overflow:hidden;opacity:0;animation:fadeUp .9s var(--ease) 1s forwards}
  .search-tabs{display:flex;border-bottom:1px solid var(--line)}
  .search-tabs button{padding:15px 26px;background:none;border:none;cursor:pointer;font-family:var(--body);font-weight:700;font-size:14.5px;color:var(--stone);border-bottom:2.5px solid transparent;transition:color .2s}
  .search-tabs button.on{color:var(--navy);border-bottom-color:var(--red)}
  .search-body{display:grid;grid-template-columns:1.8fr 1fr 1fr auto;padding:8px}
  .search-body .f{display:flex;flex-direction:column;gap:3px;padding:12px 18px;border-right:1px solid var(--line)}
  .search-body label{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
  .search-body input,.search-body select{border:none;background:none;font-family:var(--body);font-size:15.5px;color:var(--ink);outline:none;padding:2px 0}
  .search-body .fs{display:flex;align-items:center;padding:6px}.search-body .fs .btn{width:100%;justify-content:center}
  @media(max-width:720px){.search-body{grid-template-columns:1fr}.search-body .f{border-right:0;border-bottom:1px solid var(--line)}}

  /* ===== HERO CINEMATOGRÁFICO — vista de BH ao anoitecer (Serra do Curral + janelas acesas) ===== */
  .hero--cine{position:relative;min-height:min(94vh,880px);display:flex;flex-direction:column;justify-content:center;padding:120px 0 44px;overflow:hidden;isolation:isolate;background:var(--navy-2)}
  .hero-cine-media{position:absolute;inset:0;z-index:-2}
  .hero-cine-media .ph{position:absolute;inset:-8%;background:url('../img/photos/bh-hero.jpg') center 44%/cover;will-change:transform}
  .hero--cine::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(97deg,rgba(9,17,33,.9) 0%,rgba(11,21,40,.66) 30%,rgba(11,21,40,.22) 52%,rgba(11,21,40,0) 70%),linear-gradient(to top,rgba(9,17,33,.62) 0%,rgba(9,17,33,0) 34%)}
  .hero-cine-copy{position:relative;max-width:720px}
  .hero--cine .eyebrow--on{color:var(--amber)}
  .hero--cine .eyebrow--on::before{background:var(--amber)}
  .hero--cine .hero-title{color:#fff;font-size:clamp(37px,5.8vw,74px);line-height:1.03;margin:16px 0 18px;text-shadow:0 2px 34px rgba(0,0,0,.28)}
  .hero--cine .hero-title em{color:var(--amber);font-style:italic}
  .hero--cine .lead{color:rgba(255,255,255,.9);max-width:500px;font-weight:300}
  .hero--cine .hero-actions{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
  .btn-glass{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.5);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .btn-glass:hover{background:rgba(255,255,255,.22);border-color:#fff}
  .hero--cine .hero-chip{position:static;left:auto;bottom:auto;margin-top:34px;display:inline-flex;background:rgba(247,245,242,.13);border:1px solid rgba(255,255,255,.3);box-shadow:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;padding:12px 20px}
  .hero--cine .hero-chip .tx{color:#fff}
  .hero--cine .hero-chip .tx b{color:var(--amber)}
  .hero--cine .search{margin-top:42px;box-shadow:var(--sh-lg)}
  .bairros-band{background:var(--paper);border-bottom:1px solid var(--line)}
  .bairros-band .marquee{margin-top:0;border-top:0;border-bottom:0}
  /* Header sobre o hero cinematográfico (topo da home): texto claro até rolar */
  .home header.site:not(.scrolled) .logo .wm{color:#fff}
  .home header.site:not(.scrolled) .logo .wm small{color:rgba(255,255,255,.72)}
  .home header.site:not(.scrolled) .nav a:not(.btn){color:rgba(255,255,255,.92)}
  .home header.site:not(.scrolled) .nav a:not(.btn):hover{color:#fff}
  .home header.site:not(.scrolled) .logo .sym .tower{fill:#fff}
  .home header.site:not(.scrolled) .logo .sym .pane{fill:#fff}
  .home header.site:not(.scrolled) .logo .sym .cross{fill:var(--navy)}
  @media(max-width:880px){
    .hero--cine{min-height:auto;padding:104px 0 40px}
    .hero--cine::after{background:linear-gradient(to top,rgba(9,17,33,.92) 8%,rgba(9,17,33,.5) 52%,rgba(9,17,33,.6) 100%)}
    .hero--cine .hero-chip{display:none}
    .hero--cine .lead{max-width:none}
  }

  .marquee{margin-top:70px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;display:flex;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
  .marquee .track{display:flex;gap:38px;padding-right:38px;animation:mq 40s linear infinite}
  .marquee:hover .track{animation-play-state:paused}
  .marquee span{font-size:13.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--stone);display:inline-flex;align-items:center;gap:38px}
  .marquee span::after{content:"";width:5px;height:5px;background:var(--red);border-radius:50%}
  @keyframes mq{to{transform:translateX(-50%)}}

  section{padding:clamp(70px,9vw,120px) 0;position:relative}
  .sec-head{max-width:600px;margin-bottom:8px}
  .sec-head h2{font-size:clamp(30px,4vw,50px);font-weight:500;margin:16px 0 14px}
  .sec-head p{color:var(--stone);font-size:18px;font-weight:300}
  .sec-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}

  .vitrine{display:grid;grid-template-columns:1.4fr 1fr;gap:26px;margin-top:52px}
  .prop{position:relative;background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--sh-sm);display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s;min-height:230px;transform-style:preserve-3d}
  .prop:hover{box-shadow:var(--sh-lg)}
  .prop-media{position:relative;overflow:hidden;aspect-ratio:3/2}
  .prop.big .prop-media{aspect-ratio:auto;flex:1;min-height:340px}
  .prop-media .ph{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .8s var(--ease)}
  .prop:hover .prop-media .ph{transform:scale(1.07)}
  .prop-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(19,41,75,.5),transparent 45%)}
  .prop.big{grid-row:span 2}
  .prop .tag{position:absolute;top:15px;left:15px;z-index:3;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 13px;border-radius:999px;background:rgba(247,245,242,.92);color:var(--navy);backdrop-filter:blur(4px)}
  .prop-body{padding:22px 24px 24px}
  .prop .bairro{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:8px;display:block}
  .prop .edit{font-family:var(--disp);font-style:italic;font-size:16px;color:var(--stone);margin-bottom:14px;line-height:1.4;display:block}
  .prop.big .edit{font-size:18px}
  .prop .price{font-family:var(--disp);color:var(--navy);font-size:26px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
  .prop.big .price{font-size:32px}
  .prop .price .suf{font-size:14px;color:var(--stone);font-weight:400;font-family:var(--body)}
  .prop h3{font-size:19px;font-weight:600;margin:4px 0 0}
  .prop .specs{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;padding-top:15px;border-top:1px solid var(--line);font-size:14px;color:var(--stone)}
  .prop .specs b{color:var(--navy);font-weight:700}
  @media(max-width:820px){.vitrine{grid-template-columns:1fr}.prop.big{grid-row:auto}}

  .blocos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
  .bloco{position:relative;border-radius:18px;overflow:hidden;padding:34px;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .45s var(--ease),box-shadow .45s}
  .bloco:hover{transform:translateY(-6px);box-shadow:var(--sh-lg)}
  .bloco .t{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}
  .bloco h3{font-size:25px;font-weight:600;margin-bottom:8px}
  .bloco p{font-size:14.5px;margin-bottom:16px}
  .bloco .arrow{font-weight:700;font-size:15px;display:inline-flex;gap:8px;transition:gap .3s var(--ease)}
  .bloco:hover .arrow{gap:15px}
  .b-navy{background:linear-gradient(155deg,var(--navy-3),var(--navy-2))}
  .b-navy .t{color:#FF6B7E}.b-navy h3{color:#fff}.b-navy p{color:#B9C4D8}.b-navy .arrow{color:#fff}
  .b-sand{background:var(--sand)}.b-sand .t{color:var(--red)}.b-sand h3{color:var(--navy)}.b-sand p{color:var(--stone)}.b-sand .arrow{color:var(--red)}
  .b-mist{background:var(--mist)}.b-mist .t{color:var(--red)}.b-mist h3{color:var(--navy)}.b-mist p{color:var(--stone)}.b-mist .arrow{color:var(--red)}
  @media(max-width:820px){.blocos{grid-template-columns:1fr}}

  .proc{background:var(--white)}
  /* "a casa que se acende" — visual fixo + etapas que passam */
  .proc-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start;margin-top:44px}
  .proc-visual{position:sticky;top:112px}
  .house{position:relative;text-align:center}
  .house-svg{width:100%;max-width:340px;display:block;margin:0 auto;overflow:visible}
  .house .facade{fill:#fff}
  .house .glass{fill:#E9ECF2;transition:fill .6s ease}
  .house .win,.house .door{transition:filter .6s ease}
  .house .win.lit .glass,.house .door.lit .glass{fill:var(--amber)}
  .house .win.lit,.house .door.lit{filter:drop-shadow(0 0 9px rgba(255,178,90,.75))}
  .house-glow{opacity:0;transition:opacity 1.1s ease}
  .house.done .house-glow{opacity:1}

  /* ── etapa 04: "a luz acende, a porta abre, e você está em casa" ───────────
     A folha gira na dobradiça (x=186) para dentro da casa; o vão fica exposto
     e a luz âmbar sai em direção ao espectador: bloom no vão, poça no chão,
     feixes em leque e um wash que esquenta a fachada inteira.
     Os tempos são encadeados a partir de --door-delay para a leitura ser
     fresta → abertura → derramamento, e não tudo de uma vez.                */
  .house{
    --door-open:64deg;        /* quanto a folha gira                          */
    --door-persp:220px;       /* profundidade: menor = mais afunilamento      */
    --door-dur:1.05s;         /* tempo da abertura                            */
    --door-delay:.34s;        /* respiro depois que a fresta acende           */
    --door-ease:cubic-bezier(.34,.86,.26,1); /* peso: sai devagar, chega leve */
  }
  /* com a porta aberta quem faz o brilho é o wash, não o drop-shadow do grupo */
  .house.done .door.lit{filter:none}
  .house.done .door-frame{filter:drop-shadow(0 0 10px rgba(255,178,90,.7));transition:filter .6s ease var(--door-delay)}

  /* a folha — o <g transform="translate(186,299)"> no markup já colocou a
     dobradiça na origem, então fill-box + left center cai exatamente nela  */
  .house .door-leaf{transform-box:fill-box;transform-origin:left center;
    transition:transform var(--door-dur) var(--door-ease) var(--door-delay)}
  .house.done .door-leaf{transform:perspective(var(--door-persp)) rotateY(var(--door-open))}
  /* vidro: acende em âmbar (fresta), depois cai em silhueta quando a folha vira.
     O tom final tem que ser nitidamente mais escuro que a fachada branca, senão
     a folha some contra a casa e a porta não parece aberta.                    */
  @keyframes doorGlass{0%{fill:#E9ECF2}18%{fill:var(--amber)}38%{fill:var(--amber)}100%{fill:#94A5C0}}
  .house.done .door-leaf .glass{animation:doorGlass calc(var(--door-dur) + var(--door-delay)) var(--ease) forwards}

  /* o vão exposto */
  .house .door-void,.house .door-sill,.house .door-bloom,.house .door-spill,.house .door-rays,.house .door-wash,.house .door-shade{opacity:0}
  .house .door-shade{transition:opacity .6s ease calc(var(--door-delay) + .25s)}
  .house.done .door-shade{opacity:1}
  .house .door-void,.house .door-sill{transition:opacity .5s ease var(--door-delay)}
  .house.done .door-void{opacity:1}
  .house.done .door-sill{opacity:.5}
  .house .door-bloom{transition:opacity .9s ease calc(var(--door-delay) + .18s)}
  .house.done .door-bloom{opacity:.5}

  /* derramamento: entra depois, quando já há vão por onde a luz sair */
  .house .door-spill{transform-box:view-box;transform-origin:65.94% 91.94%;transform:scaleY(.35);
    transition:opacity .8s ease calc(var(--door-delay) + .3s),transform 1s var(--ease) calc(var(--door-delay) + .3s)}
  .house.done .door-spill{opacity:1;transform:none}
  .house .door-rays{transform-box:view-box;transform-origin:65.94% 91.94%;transform:scale(.8,.2);
    transition:opacity 1s ease calc(var(--door-delay) + .42s),transform 1.3s var(--ease) calc(var(--door-delay) + .42s)}
  .house.done .door-rays{opacity:.85;transform:none}
  .house .door-wash{transition:opacity 1.2s ease calc(var(--door-delay) + .5s)}
  .house.done .door-wash{opacity:1}

  @media(prefers-reduced-motion:reduce){
    /* mesma cena, sem movimento: a porta já está aberta e a luz já derramou */
    .house .door-leaf{transition:none}
    .house.done .door-leaf .glass{animation:none;fill:#AFBED6}
    .house .door-void,.house .door-bloom,.house .door-spill,.house .door-rays,.house .door-wash{transition:opacity .01s}
    .house .door-spill,.house .door-rays{transform:none}
  }
  .house-cap{margin-top:24px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
  .house-cap b{font-family:var(--disp);font-size:22px;color:var(--red);letter-spacing:0;margin-right:2px}
  .proc-steps .pstep{padding:42px 0;border-top:1px solid var(--line);transition:opacity .5s var(--ease)}
  .proc-steps .pstep:first-child{border-top:0;padding-top:8px}
  .proc-steps.js .pstep{opacity:.38}
  .proc-steps.js .pstep.active{opacity:1}
  .pstep-head{display:flex;align-items:center;gap:16px;margin-bottom:12px}
  .pstep-n{font-family:var(--disp);font-size:30px;font-weight:600;color:var(--line-2);line-height:1;transition:color .5s}
  .proc-steps.js .pstep.active .pstep-n{color:var(--red)}
  .pstep h3{font-size:23px;font-weight:600;margin:0}
  .pstep p{font-size:15.5px;color:var(--stone);font-weight:300;max-width:440px}
  @media(max-width:860px){
    .proc-grid{grid-template-columns:1fr;gap:30px}
    .proc-visual{position:relative;top:0;margin-bottom:6px}
    .house-svg{max-width:230px}
    .proc-steps.js .pstep{opacity:1}
    .pstep{padding:30px 0}
  }

  .sobre-in{display:grid;grid-template-columns:.82fr 1.18fr;gap:60px;align-items:center}
  .sobre-fig{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sh)}
  .sobre-fig .ph{position:absolute;inset:0;background:var(--sobre) center 18%/cover;animation:ken 30s ease-in-out infinite alternate}
  .sobre-fig .cap{position:absolute;z-index:2;left:20px;bottom:18px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff}
  .sobre-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(19,41,75,.55),transparent 50%)}
  .sobre blockquote{font-family:var(--disp);font-size:clamp(24px,3.1vw,38px);color:var(--navy);line-height:1.3;font-style:italic;font-weight:500;margin:16px 0 22px}
  .sobre blockquote b{color:var(--red);font-style:normal}
  .sobre .founder-note{margin:0 0 18px;max-width:540px;color:var(--stone);font-weight:300}
  .sobre .hist{border-left:2.5px solid var(--red);padding-left:24px;color:var(--stone);max-width:540px;font-weight:300}
  @media(max-width:820px){.sobre-in{grid-template-columns:1fr;gap:34px}.sobre-fig{max-width:340px}}

  .cta{padding:0 0 clamp(72px,9vw,124px)}
  .cta .box{position:relative;background:linear-gradient(180deg,#0B1A38 0%,var(--navy-2) 55%,#060E1F 100%);border-radius:26px;padding:clamp(64px,9vw,116px) 30px clamp(120px,16vw,190px);text-align:center;overflow:hidden}
  /* estrelas/brilho do céu */
  .cta .box::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 12%,rgba(120,150,210,.18),transparent 60%);z-index:0}
  /* skyline de prédios na base */
  .cta .skyline{position:absolute;left:0;right:0;bottom:0;height:62%;z-index:1;display:flex;align-items:flex-end;justify-content:center;gap:4px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
  .cta .bld{background:linear-gradient(#0A1730,#050C1A);border-radius:4px 4px 0 0;display:grid;align-content:end;justify-content:center;gap:9px;padding:16px 11px 0;box-shadow:0 -1px 0 rgba(255,255,255,.04)}
  .cta .win{width:9px;height:12px;background:rgba(255,178,90,.06);border-radius:1.5px;transition:background .6s ease,box-shadow .6s ease}
  .cta .win.on{background:var(--amber);box-shadow:0 0 9px rgba(255,178,90,.85)}
  .cta .win.on.red{background:#FF7A88;box-shadow:0 0 9px rgba(255,122,136,.8)}
  .cta .win.flick{animation:flick var(--fd,4s) ease-in-out infinite}
  @keyframes flick{0%,100%{opacity:1}44%{opacity:.35}}
  /* névoa/chão para os prédios assentarem */
  .cta .box::after{content:"";position:absolute;left:0;right:0;bottom:0;height:24%;z-index:2;background:linear-gradient(transparent,rgba(6,14,31,.9) 70%);pointer-events:none}
  .cta .box>.inner{position:relative;z-index:3}
  .cta .box .sym{width:54px;margin:0 auto 20px}
  .cta h2{color:#fff;font-size:clamp(30px,4.4vw,54px);font-weight:500;margin-bottom:16px}
  .cta p{color:#B9C4D8;max-width:520px;margin:0 auto 32px;font-size:18px;font-weight:300}

  footer.site{background:var(--navy-2);color:#9FB0C9;padding:64px 0 34px}
  .foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:44px;padding-bottom:44px}
  .foot-brand .logo .wm{color:#fff}.foot-brand .logo .wm small{color:#8FA0BC}
  .foot-brand p{font-family:var(--disp);font-style:italic;font-size:17px;color:#C9D2E2;margin-top:16px;max-width:280px}
  footer.site h3{color:#fff;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:15px}
  footer.site ul{list-style:none}footer.site li{margin-bottom:9px}footer.site a{color:#B9C4D8;font-size:14.5px}footer.site a:hover{color:#FF6B7E}
  .foot-base{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#7E8DA6}
  @media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:30px}}

  /* diferenciais */
  .difs{background:var(--white)}
  .difs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:52px}
  .dif .ic{width:48px;height:48px;border-radius:13px;background:var(--sand);display:flex;align-items:center;justify-content:center;color:var(--red);margin-bottom:18px}
  .dif .ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .dif h3{font-size:19px;font-weight:600;margin-bottom:8px}
  .dif p{font-size:14.5px;color:var(--stone);font-weight:300}
  @media(max-width:820px){.difs-grid{grid-template-columns:1fr 1fr;gap:30px 24px}}
  @media(max-width:460px){.difs-grid{grid-template-columns:1fr}}

  /* banner split (captação / canal) */
  .banner{border-radius:var(--r-lg);overflow:hidden;display:grid;grid-template-columns:1fr 1fr;min-height:420px;background:linear-gradient(155deg,var(--navy-3),var(--navy-2));position:relative}
  .banner-media{position:relative;overflow:hidden;min-height:260px}
  .banner-media .ph{position:absolute;inset:-6%;background-size:cover;background-position:center;animation:ken 30s ease-in-out infinite alternate}
  .banner-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 40%,rgba(14,31,56,.6))}
  .banner--flip .banner-media::after{background:linear-gradient(270deg,transparent 40%,rgba(14,31,56,.6))}
  .banner-copy{padding:clamp(34px,4vw,64px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1}
  .banner-copy .eyebrow{color:#FF6B7E}.banner-copy .eyebrow::before{background:#FF6B7E}
  .banner-copy h2{color:#fff;font-size:clamp(28px,3.4vw,46px);font-weight:500;margin:14px 0 14px}
  .banner-copy p{color:#B9C4D8;font-weight:300;margin-bottom:28px;max-width:430px}
  .banner-actions{display:flex;gap:12px;flex-wrap:wrap}
  .banner--flip .banner-media{order:-1}
  @media(max-width:820px){.banner,.banner--flip{grid-template-columns:1fr}.banner--flip .banner-media{order:0}}

  /* ferramentas */
  .tools{background:var(--sand)}
  .tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:48px}
  .tool{background:#fff;border-radius:16px;padding:32px;box-shadow:var(--sh-sm);transition:transform .4s var(--ease),box-shadow .4s;display:flex;flex-direction:column}
  .tool:hover{transform:translateY(-5px);box-shadow:var(--sh)}
  .tool .ic{width:46px;height:46px;border-radius:12px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
  .tool .ic svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .tool h3{font-size:19px;font-weight:600;margin-bottom:8px}
  .tool p{font-size:14px;color:var(--stone);font-weight:300;margin-bottom:20px;flex:1}
  .tool .arrow{font-weight:700;font-size:14px;color:var(--red);display:inline-flex;gap:8px;transition:gap .25s}
  .tool:hover .arrow{gap:14px}
  @media(max-width:820px){.tools-grid{grid-template-columns:1fr}}

  /* depoimentos */
  .depos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
  .depo{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;display:flex;flex-direction:column;box-shadow:var(--sh-sm)}
  .depo .stars{color:var(--red);font-size:13px;letter-spacing:2px;margin-bottom:14px}
  .depo .q{font-family:var(--disp);font-style:italic;font-size:19px;color:var(--navy);line-height:1.42;margin-bottom:22px;flex:1}
  .depo .who{display:flex;align-items:center;gap:13px}
  .depo .av{width:44px;height:44px;border-radius:50%;background:linear-gradient(150deg,var(--navy-3),var(--navy));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:700;font-size:17px}
  .depo .who b{display:block;font-size:14.5px;color:var(--navy);font-weight:700}
  .depo .who span{font-size:12.5px;color:var(--stone)}
  @media(max-width:820px){.depos-grid{grid-template-columns:1fr}}

  /* newsletter */
  .news .box{background:var(--sand);border-radius:var(--r-lg);padding:clamp(40px,5vw,68px);display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
  .news h2{font-size:clamp(26px,3.2vw,40px);font-weight:500;margin-bottom:10px}
  .news p{color:var(--stone);font-weight:300}
  .news form{display:flex;gap:12px;flex-wrap:wrap}
  .news input{flex:1;min-width:210px;padding:15px 20px;border:1.5px solid var(--mist);border-radius:999px;background:#fff;font-family:var(--body);font-size:15px;color:var(--ink)}
  .news input:focus{outline:none;border-color:var(--navy)}
  .news .note{font-size:12.5px;color:var(--faint);margin-top:12px}
  @media(max-width:760px){.news .box{grid-template-columns:1fr;gap:26px}}

  /* ============ PÁGINAS INTERNAS ============ */
  /* empurra o conteúdo abaixo do header fixo (a home usa o hero p/ isso) */
  body.archive #conteudo,body.page #conteudo,body.single #conteudo,body.search #conteudo,body.error404 #conteudo{padding-top:80px}
  .btn-block{display:flex;width:100%;justify-content:center}
  .btn-lg{padding:16px 34px;font-size:16px}
  .btn-outline{background:#fff;color:var(--navy);border:1.5px solid var(--line-2)}
  .btn-outline:hover{border-color:var(--navy)}

  /* cabeçalho de página interna */
  .page-hero{padding:52px 0 44px;background:var(--white);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
  .page-hero::after{content:"";position:absolute;top:-40%;right:-5%;width:40%;height:180%;background:radial-gradient(circle,rgba(200,16,46,.05),transparent 65%)}
  .page-hero .wrap{position:relative}
  .page-hero h1{font-size:clamp(30px,4vw,50px);font-weight:500;margin:14px 0 10px}
  .page-hero p{color:var(--stone);font-weight:300;font-size:18px;max-width:580px}

  /* filtros da busca */
  .filtros{background:var(--white);border-bottom:1px solid var(--line);padding:22px 0}
  .filtros form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
  .filtros .field{display:flex;flex-direction:column;gap:5px}
  .filtros label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
  .filtros input,.filtros select{padding:11px 13px;border:1.5px solid var(--line-2);border-radius:10px;font-family:var(--body);font-size:14.5px;background:#fff;color:var(--ink);min-width:135px}
  .filtros input:focus,.filtros select:focus{outline:none;border-color:var(--navy)}
  .filtros .field-wide input{min-width:210px}
  @media(max-width:760px){.filtros .field{flex:1 1 140px}}

  .archive-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:14px;margin:44px 0 6px}
  .archive-head h1{font-size:clamp(26px,3vw,40px);font-weight:500}
  .archive-count{color:var(--stone);font-size:15px;margin-top:6px}
  .archive-sort select{padding:11px 14px;border:1.5px solid var(--line-2);border-radius:10px;background:#fff;font-family:var(--body);font-size:14.5px;color:var(--ink)}
  .imoveis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px;margin-top:32px}
  .lapa-pagination{display:flex;gap:8px;justify-content:center;margin:52px 0 90px;flex-wrap:wrap}
  .lapa-pagination a,.lapa-pagination span{padding:11px 16px;border:1.5px solid var(--line-2);border-radius:10px;color:var(--navy);font-weight:700;font-size:14.5px}
  .lapa-pagination .current{background:var(--navy);color:#fff;border-color:var(--navy)}
  .lapa-pagination a:hover{border-color:var(--red);color:var(--red)}
  .empty-state{text-align:center;padding:70px 20px 100px;color:var(--stone)}
  .empty-state h3{margin-bottom:10px;font-size:24px}

  /* página do imóvel */
  .imovel-hero{background:var(--white)}
  .imovel-gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px;max-width:var(--wrap);margin:0 auto;padding:24px 30px 0}
  .imovel-gallery .g-main{grid-row:1/3}
  .imovel-gallery figure{margin:0;overflow:hidden;border-radius:16px;background:var(--mist)}
  .imovel-gallery img{width:100%;height:100%;object-fit:cover;min-height:180px}
  .imovel-gallery .g-main img{min-height:380px}
  @media(max-width:760px){.imovel-gallery{grid-template-columns:1fr;grid-template-rows:auto}.imovel-gallery .g-side{display:none}}
  .imovel-layout{display:grid;grid-template-columns:1fr 360px;gap:48px;margin:44px 0 90px}
  .imovel-main h1{font-size:clamp(28px,3.4vw,42px);font-weight:500}
  .imovel-local{color:var(--stone);font-size:17px;margin-top:8px}
  .imovel-specrow{display:flex;flex-wrap:wrap;gap:30px;margin:28px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .imovel-spec{display:flex;flex-direction:column}
  .imovel-spec b{font-size:26px;color:var(--navy);font-family:var(--disp);font-weight:600}
  .imovel-spec span{font-size:13px;color:var(--stone);margin-top:2px}
  .imovel-desc{font-size:17px;line-height:1.8;color:var(--ink)}
  .imovel-desc p{margin-bottom:16px}
  .imovel-carac{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
  .imovel-carac span{background:var(--sand);border-radius:999px;padding:8px 18px;font-size:14px;color:var(--navy);font-weight:600}
  .imovel-video{margin-top:16px;aspect-ratio:16/9;border-radius:16px;overflow:hidden}
  .imovel-video iframe{width:100%;height:100%;border:0}
  .imovel-sidebar{align-self:start;position:sticky;top:100px}
  .contact-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh);padding:28px}
  .contact-card .price{font-family:var(--disp);font-weight:600;font-size:32px;color:var(--navy)}
  .contact-card .price .suf{font-size:15px;color:var(--stone);font-weight:400;font-family:var(--body)}
  .contact-card .cod{color:var(--stone);font-size:13.5px;margin:6px 0 4px}
  .contact-card .btn{margin-top:14px}
  .contact-card .fee{font-size:13px;color:var(--faint);text-align:center;margin-top:12px}
  .contact-card .broker{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
  .contact-card .broker img{width:46px;height:46px;border-radius:12px;object-fit:cover}
  .imovel-map{margin-top:16px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
  .imovel-map iframe{width:100%;height:250px;border:0;display:block}
  @media(max-width:900px){.imovel-layout{grid-template-columns:1fr}.imovel-sidebar{position:static}}

  /* contato */
  .contato-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;padding:56px 0 90px}
  .lapa-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .form-field{margin-bottom:18px;display:flex;flex-direction:column}
  .lapa-form label{font-weight:700;font-size:14.5px;color:var(--navy);margin-bottom:6px}
  .lapa-form input,.lapa-form textarea{padding:14px 15px;border:1.5px solid var(--line-2);border-radius:12px;font-family:var(--body);font-size:15.5px;color:var(--ink);background:#fff;width:100%}
  .lapa-form input:focus,.lapa-form textarea:focus{outline:none;border-color:var(--navy)}
  .form-consent{display:flex;gap:9px;margin:6px 0 20px}
  .form-consent label{display:flex;gap:9px;align-items:flex-start;font-weight:400;color:var(--stone);font-size:14.5px;margin:0}
  .form-consent input{width:auto;margin-top:3px}
  .form-note{color:var(--faint);font-size:13px;margin-top:12px}
  .hp{position:absolute;left:-9999px}
  .form-alert{border-radius:16px;padding:24px 26px;font-size:16px}
  .form-ok{background:#eef7f0;border:1px solid #cfe6d5;color:#2b7a4b}
  .form-erro{background:#fdeef0;border:1px solid #f2ccd2;color:var(--red);margin-bottom:22px}
  .contato-info{background:var(--sand);border-radius:18px;padding:32px;align-self:start}
  .contato-info h3{font-size:20px;margin-bottom:16px}
  .contato-info ul{list-style:none}
  .contato-info li{display:flex;flex-direction:column;padding:13px 0;border-bottom:1px solid var(--line)}
  .contato-info li:last-child{border-bottom:none}
  .ci-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:3px}
  .contato-info a{color:var(--navy);font-weight:700}
  .contato-info a:hover{color:var(--red)}
  @media(max-width:820px){.contato-layout{grid-template-columns:1fr;gap:32px}.lapa-form .form-row{grid-template-columns:1fr}}

  /* sobre (página) */
  .sobre-page{display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;align-items:center;padding:56px 0}
  .sobre-page-fig{aspect-ratio:4/5;border-radius:20px;overflow:hidden;box-shadow:var(--sh);position:relative;background:linear-gradient(160deg,var(--navy-3),var(--navy-2))}
  .sobre-page-fig img{width:100%;height:100%;object-fit:cover}
  .sobre-page-fig .ph{position:absolute;inset:0;background:var(--sobre) center/cover}
  .sobre-page-txt h2{font-size:clamp(26px,3vw,36px);font-weight:500;margin-bottom:14px}
  .sobre-page-txt p{margin-bottom:14px;color:var(--stone);font-weight:300}
  @media(max-width:820px){.sobre-page{grid-template-columns:1fr;gap:30px}.sobre-page-fig{max-width:340px}}

  /* Bloco da fundadora — retrato + bio, ritmo alternado (texto esq. / foto dir.) */
  .founder{padding:64px 0;border-top:1px solid var(--line)}
  .founder-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
  .founder-txt h2{font-size:clamp(28px,3.4vw,40px);font-weight:500;margin:14px 0 18px}
  .founder-txt p{margin-bottom:15px;color:var(--stone);font-weight:300}
  .founder-mantra{font-family:var(--disp);font-style:italic;font-size:clamp(19px,2.1vw,24px);font-weight:500;color:var(--navy);line-height:1.3;margin-top:22px;padding-left:20px;border-left:2px solid var(--red)}
  .founder-fig{margin:0;position:relative}
  .founder-fig::before{content:"";position:absolute;top:-16px;right:-16px;width:56%;aspect-ratio:1;background:var(--sand);border-radius:18px;z-index:0}
  .founder-photo{aspect-ratio:4/5;border-radius:20px;overflow:hidden;box-shadow:var(--sh-lg);position:relative;z-index:1;background:linear-gradient(160deg,var(--navy-3),var(--navy-2))}
  .founder-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
  .founder-fig figcaption{margin-top:18px;display:flex;flex-direction:column;gap:2px;position:relative;z-index:1}
  .founder-fig figcaption strong{font-family:var(--disp);font-size:20px;font-weight:600;color:var(--navy)}
  .founder-fig figcaption span{font-size:13px;color:var(--faint);font-weight:600;letter-spacing:.02em}
  @media(max-width:820px){.founder-grid{grid-template-columns:1fr;gap:34px}.founder-fig{max-width:360px;margin:0 auto}.founder-fig::before{display:none}}

  /* conteúdo de página comum */
  .page-body{max-width:760px;margin:0 auto;padding:56px 0 90px}
  .page-body h2{font-size:26px;margin:28px 0 12px}
  .page-body p{margin-bottom:16px}

  /* ============ CALCULADORAS ============ */
  .calc{max-width:720px;margin:44px auto 0;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh);padding:clamp(28px,4vw,44px)}
  .calc-field{margin-bottom:18px}
  .calc-field label{display:block;font-weight:700;font-size:14.5px;color:var(--navy);margin-bottom:8px}
  .calc-money{display:flex;align-items:center;border:1.5px solid var(--line-2);border-radius:12px;overflow:hidden;background:#fff;transition:border-color .2s}
  .calc-money:focus-within{border-color:var(--navy)}
  .calc-money>span{padding:0 2px 0 16px;color:var(--stone);font-weight:700}
  .calc-money input{flex:1;border:0;outline:0;padding:14px 12px;font-family:var(--body);font-size:18px;color:var(--navy);font-weight:700;background:none;min-width:0}
  .calc-rm{border:0;background:none;color:var(--faint);font-size:22px;line-height:1;cursor:pointer;padding:0 14px}
  .calc-rm:hover{color:var(--red)}
  .calc-field-extra{margin-bottom:12px}
  .calc-add{background:none;border:1.5px dashed var(--line-2);border-radius:12px;color:var(--navy);font-family:var(--body);font-weight:700;font-size:14.5px;padding:12px 18px;cursor:pointer;width:100%;transition:.2s;display:inline-flex;align-items:center;justify-content:center;gap:8px}
  .calc-add:hover{border-color:var(--red);color:var(--red)}
  .calc-add>span{font-size:18px}
  .calc-hint{font-size:13px;color:var(--faint);margin:10px 2px 22px}
  .calc-go{width:100%;justify-content:center}
  .calc-result{margin-top:30px;padding-top:28px;border-top:1px solid var(--line);animation:calcIn .5s var(--ease)}
  @keyframes calcIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  .calc-eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
  .calc-value{font-family:var(--disp);font-size:clamp(40px,7vw,60px);font-weight:600;color:var(--navy);line-height:1;letter-spacing:-.02em}
  .calc-value span{font-family:var(--body);font-size:20px;font-weight:400;color:var(--stone);letter-spacing:0;margin-left:4px}
  .calc-sub{color:var(--stone);font-size:16px;margin:14px 0 20px;font-weight:300}
  .calc-sub b{color:var(--navy);font-weight:700}
  .calc-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;background:var(--sand);border-radius:12px;margin-bottom:12px}
  .calc-line span{font-size:14.5px;color:var(--stone)}
  .calc-line b{font-family:var(--disp);font-size:20px;color:var(--navy)}
  .calc-note{font-size:13px;color:var(--faint);margin-bottom:24px}
  .calc-note b{color:var(--stone)}
  .calc-result .btn-block{margin-bottom:22px}
  .calc-lead{border-top:1px dashed var(--line-2);padding-top:22px}
  .calc-lead-txt{font-size:14.5px;color:var(--navy);font-weight:600;margin-bottom:12px}
  .calc-lead-row{display:flex;gap:10px;flex-wrap:wrap}
  .calc-lead-row input{flex:1;min-width:200px;padding:13px 16px;border:1.5px solid var(--line-2);border-radius:999px;font-family:var(--body);font-size:15px;color:var(--ink)}
  .calc-lead-row input:focus{outline:none;border-color:var(--navy)}
  .calc-lead-ok{color:#2b7a4b;font-weight:700;font-size:15px}
  @media(max-width:520px){.calc-lead-row .btn{width:100%}}
  /* financiamento */
  .calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
  .calc-select{width:100%;padding:14px 12px;border:1.5px solid var(--line-2);border-radius:12px;font-family:var(--body);font-size:16px;color:var(--navy);font-weight:700;background:#fff}
  .calc-select:focus{outline:none;border-color:var(--navy)}
  .calc-money--suffix>span{padding:0 16px 0 4px}
  .calc-money--suffix input{font-size:18px}
  .calc-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
  .calc-card{background:var(--sand);border-radius:14px;padding:20px}
  .calc-card-lab{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:8px}
  .calc-card-val{font-family:var(--disp);font-size:28px;font-weight:600;color:var(--navy);line-height:1}
  .calc-card-val span{font-family:var(--body);font-size:14px;font-weight:400;color:var(--stone)}
  .calc-card-sub{font-size:12.5px;color:var(--stone);margin-top:8px}
  .calc-card-sub b{color:var(--navy)}
  @media(max-width:560px){.calc-grid,.calc-two{grid-template-columns:1fr}}
  /* abas da calculadora de custos */
  .calc-tabs{display:flex;gap:4px;background:var(--sand);border-radius:12px;padding:4px;margin-bottom:24px}
  .calc-tab{flex:1;padding:12px;border:0;background:none;border-radius:9px;font-family:var(--body);font-weight:700;font-size:14.5px;color:var(--stone);cursor:pointer;transition:.2s}
  .calc-tab.on{background:#fff;color:var(--navy);box-shadow:var(--sh-sm)}
  #cus-lines{margin:16px 0 4px}

  .reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
  .reveal.in{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){
    *{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
    .hero h1,.hero .lead,.hero-actions,.hero-chip,.search{opacity:1!important;transform:none!important}
    .hero-media{clip-path:none!important}.hero-media .ph,.sobre-fig .ph{animation:none!important}.reveal{opacity:1;transform:none}
  }

/* =====================================================================
   COMO FUNCIONA — "A jornada até a sua porta" (scroll-narrative)
   Seção dark cinematográfica. Palco animado (GSAP/ScrollTrigger) só
   aparece com JS + movimento permitido; senão, fica o fallback em lista.
   ===================================================================== */
  .jornada{ --gold:#E8C07A; --amber-hi:#FFD9A8;
    position:relative; color:#fff;
    background:radial-gradient(150% 100% at 50% 20%, #17294a 0%, #0b1a33 44%, #05101e 100%);
    background-color:#05101e; }

  /* palco animado — escondido até o JS ativar (add .jornada--anim) */
  .jornada-sticky{ display:none; }
  .jornada--anim{ height:340vh; }
  .jornada--anim .jornada-sticky{ display:flex; position:sticky; top:0; height:100vh; align-items:center; justify-content:center; overflow:hidden; padding:14px; z-index:1; }
  .jornada--anim .jornada-fallback{ display:none; }
  .jornada-stage{ width:min(92vw,58vh); aspect-ratio:720/1120; overflow:hidden; }
  .jornada-stage svg{ width:100%; height:100%; overflow:hidden; display:block; }

  /* elementos da cena (SVG) */
  .jornada .jr-jamb{ fill:none; stroke:var(--gold); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  .jornada .jr-jamb.jr-inner{ stroke-width:1.2; stroke:rgba(232,192,122,.55); }
  .jornada .jr-thresh{ fill:none; stroke:rgba(232,192,122,.28); stroke-width:1.5; }
  .jornada .jr-leafFace{ fill:url(#jrLeaf); }
  .jornada .jr-panel{ fill:rgba(255,255,255,.012); stroke:rgba(232,192,122,.3); stroke-width:1.1; }
  .jornada .jr-leafRim{ fill:var(--amber-hi); opacity:0; }
  .jornada .jr-lockBody{ fill:#0b1a30; stroke:var(--gold); stroke-width:1.2; }
  .jornada .jr-ringTrack{ fill:none; stroke:rgba(232,192,122,.28); stroke-width:3; }
  .jornada .jr-ringFill{ fill:none; stroke:var(--amber); stroke-width:3; stroke-linecap:round; }
  .jornada .jr-lineBase{ fill:none; stroke:rgba(232,192,122,.28); stroke-width:1.5; stroke-dasharray:1.5 7; stroke-linecap:round; }
  .jornada .jr-lineLit{ fill:none; stroke:url(#jrTg); stroke-width:2; stroke-linecap:round; }
  .jornada .jr-node{ fill:#0a1730; stroke:rgba(232,192,122,.5); stroke-width:1.6; }
  .jornada .jr-nodeDot{ fill:#0a1730; }
  .jornada .jr-connector{ stroke:rgba(232,192,122,.32); stroke-width:1; }
  .jornada .jr-stepNum{ font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:.3em; fill:var(--amber); }
  .jornada .jr-stepTitle{ font-family:var(--disp); font-size:28px; font-weight:500; fill:#fff; font-style:italic; }
  .jornada .jr-stepDesc{ font-family:var(--body); font-size:14px; fill:rgba(247,245,242,.64); }
  .jornada .jr-finalNum{ font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:.4em; }
  .jornada .jr-finalTitle{ font-family:var(--disp); font-size:34px; font-weight:500; }

  /* fallback acessível (sem JS / reduzir movimento) — mesma jornada em texto */
  .jornada-fallback{ max-width:840px; margin:0 auto; padding:96px 30px; }
  .jornada-fallback .sec-head h2{ color:#fff; }
  .jornada-fallback .sec-head p{ color:rgba(247,245,242,.66); }
  .jornada-fallback .eyebrow{ color:var(--amber); }
  .jornada-fallback .eyebrow::before{ background:var(--amber); }
  .jornada-list{ list-style:none; margin:44px 0 0; padding:0; }
  .jornada-list li{ display:flex; gap:20px; align-items:flex-start; padding:22px 0; border-top:1px solid rgba(232,192,122,.16); }
  .jornada-list li:last-child{ border-bottom:1px solid rgba(232,192,122,.16); }
  .jornada-list .jn{ font-family:var(--disp); font-size:22px; color:var(--amber); min-width:40px; line-height:1.3; }
  .jornada-list h3{ font-family:var(--disp); color:#fff; font-size:22px; margin-bottom:5px; }
  .jornada-list p{ color:rgba(247,245,242,.62); font-size:15px; line-height:1.55; }

  @media(max-width:640px){
    .jornada-stage{ width:min(92vw,52vh); }
    .jornada .jr-stepTitle{ font-size:24px; }
  }

  /* imersão: luz full-screen + título (camadas HTML por cima do SVG) */
  .jornada--anim{ position:relative; }
  .jornada-flash{ position:absolute; inset:0; pointer-events:none; opacity:0; will-change:opacity;
    background:radial-gradient(150% 120% at 50% 44%, #FFFBF2 0%, #FBF0DC 46%, #F7F5F2 100%); }
  .jornada-final{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
    justify-content:center; text-align:center; padding:24px; opacity:0; pointer-events:none; will-change:opacity; }
  .jornada-final .jf-num{ font-family:var(--body); font-size:13px; font-weight:700; letter-spacing:.4em;
    text-transform:uppercase; color:var(--red); }
  .jornada-final .jf-title{ font-family:var(--disp); font-size:clamp(30px,5vw,60px); font-weight:500;
    color:var(--navy); line-height:1.05; margin-top:14px; letter-spacing:-.01em; }
  .jornada-final .jf-title em{ font-style:italic; color:var(--red); }

  /* camada quente no nível da SEÇÃO — elimina faixas escuras na transição */
  .jornada{ position:relative; }
  .jornada-warm{ position:absolute; inset:0; z-index:0; pointer-events:none; opacity:0; will-change:opacity;
    background:radial-gradient(150% 120% at 50% 44%, #FFFBF2 0%, #FBF0DC 46%, #F7F5F2 100%); }
  .jornada--anim .jornada-sticky{ z-index:2; }
