/* ============================================================================
   PRAÇA & Cia. — caderno de corretagem
   Paradigma LEDGER: papel-creme, lombada fixa, réguas (hairlines), mono-tabular.
   ZERO foto-herói, ZERO serifa, ZERO gradiente decorativo.
   ========================================================================== */

:root{
  --paper:#F4F0E6;   /* fundo papel/creme */
  --ink:#1A1815;     /* tinta quase-preta */
  --stamp:#C2362B;   /* vermelho-carimbo */
  --green:#2F5D4A;   /* verde-contábil */
  --graphite:#6B6458;/* cinza-grafite */
  --rust:#3E5C7E;    /* azul-ferrugem (links) */
  --hair:rgba(26,24,21,.16);
  --hair-strong:rgba(26,24,21,.34);
  --paper-2:#EFE9DB; /* faixa levemente mais escura */
  --lombada:64px;
}

*{ box-sizing:border-box; }
html{ background:var(--paper); -webkit-text-size-adjust:100%; }
html,body{ overflow-x:hidden; max-width:100%; }
body{
  margin:0; color:var(--ink); background:var(--paper);
  font-family:'Spline Sans Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  font-size:15px; line-height:1.55; letter-spacing:.005em;
  font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.tnum{ font-variant-numeric:tabular-nums; }

h1,h2,h3,.headline{ font-family:'Archivo', system-ui, sans-serif; }
a{ color:var(--rust); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }
img{ max-width:100%; }
:focus-visible{ outline:2.5px solid var(--rust); outline-offset:2px; border-radius:1px; }

/* ====================== ESTRUTURA LIVRO-RAZÃO ============================ */
.ledger{
  display:grid;
  grid-template-columns:var(--lombada) minmax(0,1fr);
  min-height:100vh;
  max-width:min(94vw,1680px); margin-inline:auto;
  border-inline:1px solid var(--hair);
}
@media (min-width:1600px){ .ledger{ max-width:1760px; } }

/* ---- Lombada (coluna esquerda fixa) — DESKTOP --------------------------- */
.lombada{
  position:sticky; top:0; align-self:start; height:100vh;
  border-right:1px solid var(--hair-strong);
  background:
    repeating-linear-gradient(90deg, transparent, transparent 11px, var(--hair) 11px, var(--hair) 12px),
    var(--paper-2);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:18px 0; gap:12px;
}
.lombada-top, .lombada-mid, .lombada-bot{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.brand-vert{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-family:'Archivo', sans-serif; font-weight:900;
  font-size:26px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink); white-space:nowrap; line-height:1;
}
.brand-amp{ color:var(--stamp); }
.lombada-rule{ width:18px; height:1px; background:var(--hair-strong); }
.sumario{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.sumario li{ writing-mode:vertical-rl; }
.sumario a{
  display:block; writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--graphite); padding:10px 6px; white-space:nowrap;
}
.sumario a .n{ color:var(--ink); font-weight:600; }
.sumario a:hover{ color:var(--ink); text-decoration:none; }
.sumario a.is-active{ color:var(--stamp); }
.sumario a.is-active .n{ color:var(--stamp); }
.edicao{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--graphite); white-space:nowrap;
}
.edicao b{ color:var(--ink); font-weight:500; }

/* ---- Coluna direita (páginas de relatório) ----------------------------- */
.pages{ min-width:0; padding:0; }
.page{
  border-bottom:1px solid var(--hair);
  padding:40px clamp(20px,4vw,56px);
  position:relative;
}
/* Numeração de linha à esquerda de cada bloco */
.block{ position:relative; padding-left:clamp(0px,6vw,76px); }
.block-ln{
  position:absolute; left:0; top:2px;
  font-size:11px; letter-spacing:.08em; color:var(--graphite);
  text-transform:uppercase;
}
.block + .block{ margin-top:30px; padding-top:30px; border-top:1px solid var(--hair); }

.kicker{
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--graphite); margin:0 0 6px;
}
.kicker .seq{ color:var(--stamp); font-weight:600; }

/* Selo persistente "demonstração" */
.selo-demo{
  position:fixed; z-index:60; right:10px; bottom:10px;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--stamp); border:1px solid var(--stamp);
  background:var(--paper); padding:5px 9px; border-radius:2px;
  transform:rotate(-2deg); pointer-events:none;
  box-shadow:1px 1px 0 rgba(194,54,43,.18);
}

/* ====================== CAPA — TABELA-CAPA =============================== */
.capa-head{ display:grid; grid-template-columns:1fr; gap:6px; }
.manchete{
  font-family:'Archivo', sans-serif; font-weight:900;
  font-size:clamp(38px,7.2vw,86px); line-height:.92;
  letter-spacing:-.02em; text-transform:uppercase; margin:.1em 0 0;
  color:var(--ink);
}
.manchete em{ font-style:normal; color:var(--stamp); }
.subhead{ color:var(--graphite); max-width:62ch; margin:14px 0 0; font-size:15px; }
.capa-meta{
  display:flex; flex-wrap:wrap; gap:6px 22px; margin-top:18px;
  font-size:12px; color:var(--graphite); letter-spacing:.04em;
}
.capa-meta b{ color:var(--ink); }

/* Cota do dia (sparklines) */
.cota{ margin-top:4px; }
.cota-head{
  display:grid; grid-template-columns:54px 1fr 100px 120px; gap:12px;
  font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--graphite); padding:0 0 8px; border-bottom:1px solid var(--hair-strong);
}
.cota-row{
  display:grid; grid-template-columns:54px 1fr 100px 120px; gap:12px;
  align-items:center; padding:11px 0; border-bottom:1px solid var(--hair);
}
.cota-ln{ font-size:11px; color:var(--graphite); }
.cota-bairro{ color:var(--ink); font-weight:500; }
.cota-bairro:hover{ color:var(--rust); }
.cota-spark{ color:var(--graphite); display:flex; }
.spark{ display:block; }
.cota-rs{ text-align:right; font-weight:600; color:var(--ink); }
.cota-rs i{ display:block; font-style:normal; font-size:11px; color:var(--graphite); letter-spacing:.08em; text-transform:uppercase; }

/* Prévia da carteira */
.prev-row{
  display:grid; grid-template-columns:54px 1.3fr 1.6fr 80px 120px; gap:12px;
  align-items:center; padding:12px 0; border-bottom:1px solid var(--hair);
  color:var(--ink);
}
.prev-row:hover{ background:var(--paper-2); text-decoration:none; }
.prev-ln{ font-size:11px; color:var(--graphite); }
.prev-bairro{ font-weight:500; }
.prev-bairro i{ display:block; font-style:normal; font-size:11px; color:var(--graphite); }
.prev-meta{ font-size:12.5px; color:var(--graphite); }
.prev-valor{ text-align:right; font-weight:600; }
.tag--venda,.tag--aluguel{
  font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  padding:3px 7px; border-radius:2px; justify-self:start; white-space:nowrap;
}
.tag--venda{ color:var(--green); border:1px solid var(--green); }
.tag--aluguel{ color:var(--rust); border:1px solid var(--rust); }
.prev-tag{ justify-self:start; }

/* Botões/links de seção */
.btn{
  display:inline-flex; align-items:center; gap:8px; min-height:44px;
  padding:10px 16px; border:1.5px solid var(--ink); color:var(--ink);
  background:transparent; font:inherit; font-size:13px; letter-spacing:.04em;
  text-transform:uppercase; cursor:pointer; border-radius:2px;
  transition:transform .15s ease, background .15s ease;
}
.btn:hover{ background:var(--ink); color:var(--paper); text-decoration:none; transform:translateY(-1px); }
.btn--stamp{ border-color:var(--stamp); color:var(--stamp); }
.btn--stamp:hover{ background:var(--stamp); color:var(--paper); }
.btn--sm{ min-height:38px; padding:7px 12px; font-size:12px; }

.lede{ font-size:18px; line-height:1.5; max-width:60ch; }
.muted{ color:var(--graphite); }

/* ====================== ÍNDICE DE BAIRROS =============================== */
.bairros-head{
  display:grid; grid-template-columns:54px 1fr 110px 110px 110px 28px; gap:12px;
  font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--graphite); padding:0 0 8px; border-bottom:1px solid var(--hair-strong);
}
.bairro-row{
  display:grid; grid-template-columns:54px 1fr 110px 110px 110px 28px; gap:12px;
  align-items:center; padding:14px 0; border-bottom:1px solid var(--hair);
  color:var(--ink);
}
.bairro-row:hover{ background:var(--paper-2); text-decoration:none; }
.bairro-ln{ font-size:11px; color:var(--graphite); }
.bairro-nome{ font-weight:600; font-size:16px; }
.bairro-n,.bairro-faixa,.bairro-rs{ text-align:right; font-weight:600; }
.bairro-n i,.bairro-faixa i,.bairro-rs i{
  display:block; font-style:normal; font-size:11px; color:var(--graphite);
  letter-spacing:.06em; text-transform:uppercase; font-weight:400;
}
.bairro-go{ text-align:right; color:var(--graphite); }

/* ====================== CARTEIRA FILTRÁVEL ============================== */
.filtros{ display:flex; flex-direction:column; gap:16px; }
.filtro-grupo{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.filtro-label{
  font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--graphite); min-width:84px;
}
.seg{ display:inline-flex; border:1px solid var(--hair-strong); border-radius:2px; overflow:hidden; }
.seg button{
  font:inherit; font-size:13px; min-height:40px; padding:8px 16px;
  background:transparent; color:var(--graphite); border:0; cursor:pointer;
  border-right:1px solid var(--hair); letter-spacing:.04em;
}
.seg button:last-child{ border-right:0; }
.seg button.is-on{ background:var(--ink); color:var(--paper); }
.chip{
  font:inherit; font-size:13px; min-height:40px; padding:7px 13px;
  background:transparent; border:1px solid var(--hair-strong); color:var(--graphite);
  border-radius:2px; cursor:pointer; letter-spacing:.02em;
}
.chip.is-on{ border-color:var(--ink); background:var(--ink); color:var(--paper); }
.chip:hover{ border-color:var(--ink); color:var(--ink); }
.chip.is-on:hover{ color:var(--paper); }

.preco-wrap{ display:flex; align-items:center; gap:14px; flex:1; min-width:240px; }
.preco-wrap input[type=range]{ flex:1; min-width:140px; accent-color:var(--stamp); height:40px; }
#preco-val{ font-weight:600; white-space:nowrap; min-width:120px; text-align:right; }

.carteira-bar{
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between;
  gap:12px; padding:14px 0; border-top:1px solid var(--hair-strong);
  border-bottom:1px solid var(--hair-strong); margin-top:18px;
}
#carteira-counter{ font-size:14px; color:var(--graphite); }
#carteira-counter .cnt{ color:var(--stamp); font-weight:700; }
#carteira-counter strong{ color:var(--ink); }

/* fichas-linha */
.ficha{ border-bottom:1px solid var(--hair); }
.ficha-row{
  width:100%; display:grid;
  grid-template-columns:54px 1.5fr 70px 70px 70px 84px 1fr 22px;
  gap:12px; align-items:center; padding:15px 0; text-align:left;
  background:transparent; border:0; font:inherit; color:var(--ink); cursor:pointer;
}
.ficha-row:hover{ background:var(--paper-2); }
.ficha-ln{ font-size:11px; color:var(--graphite); }
.ficha-bairro{ font-weight:600; font-size:16px; }
.ficha-cod{ display:block; font-size:11px; color:var(--graphite); font-weight:400; }
.ficha-cell{ text-align:right; font-weight:600; }
.ficha-cell i{ display:block; font-style:normal; font-size:11px; color:var(--graphite); letter-spacing:.06em; text-transform:uppercase; font-weight:400; }
.ficha-valor{ text-align:right; font-weight:700; font-size:16px; }
.ficha-valor .per{ font-size:11px; color:var(--graphite); font-weight:400; }
.ficha-chev{ color:var(--graphite); text-align:center; transition:transform .2s ease; }
.ficha.is-open .ficha-chev{ transform:rotate(90deg); color:var(--stamp); }
.ficha.is-open .ficha-row{ background:var(--paper-2); }

.ficha-detalhe{ padding:4px 0 22px clamp(54px,6vw,66px); }
.ficha-obs{ color:var(--graphite); margin:6px 0 14px; max-width:64ch; }
.ficha-pares{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--hair); border:1px solid var(--hair); margin:0 0 16px; }
.ficha-pares > div{ background:var(--paper); padding:9px 12px; display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.ficha-pares dt{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--graphite); }
.ficha-pares dd{ margin:0; font-weight:600; }

/* régua de dinheiro (monocromática, tique vermelho-carimbo) */
.regua{ max-width:520px; }
.regua-cap{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:12px; color:var(--graphite); margin-bottom:7px; }
.regua-cap strong{ color:var(--ink); }
.regua-bar{
  position:relative; height:10px; border:1px solid var(--hair-strong);
  background:repeating-linear-gradient(90deg, var(--hair) 0 1px, transparent 1px 10%);
}
.regua-tick{ position:absolute; top:-4px; width:2px; height:18px; background:var(--stamp); transform:translateX(-1px); }
.regua-tick::after{ content:""; position:absolute; left:-3px; top:-4px; width:8px; height:8px; border-radius:50%; background:var(--stamp); }
.regua-scale{ display:flex; justify-content:space-between; font-size:11px; color:var(--graphite); margin-top:6px; }
.regua-link{ display:inline-block; margin-top:8px; font-size:12px; }

/* >=1500px: a ficha aberta abre lado a lado (ficha/pares | régua), em vez de empilhar */
@media (min-width:1500px){
  .ficha-detalhe{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:32px clamp(28px,3vw,56px); align-items:start; }
  .ficha-detalhe .ficha-obs{ grid-column:1; margin-bottom:10px; }
  .ficha-detalhe .ficha-pares{ grid-column:1; margin-bottom:0; align-self:start; }
  .ficha-detalhe .regua{ grid-column:2; grid-row:1 / span 2; max-width:none; align-self:center; }
  /* fichas só-aluguel não têm régua: detalhe volta a uma coluna */
  .ficha-detalhe:not(:has(.regua)){ grid-template-columns:1fr; }
  /* dá mais ar à régua de dinheiro em tela grande */
  .ficha-detalhe .regua-bar{ height:12px; }
}

#carteira-empty{ padding:28px 0; color:var(--graphite); }
#carteira-empty strong{ color:var(--ink); display:block; margin-bottom:4px; }

/* ====================== SIMULADOR ====================================== */
.sim-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,380px); gap:36px; align-items:start; }
.form-fiscal{ display:flex; flex-direction:column; gap:0; max-width:560px; }
.fline{
  display:grid; grid-template-columns:54px 1fr; gap:14px;
  padding:18px 0; border-bottom:1px solid var(--hair); align-items:start;
}
.fline:first-child{ border-top:1px solid var(--hair-strong); }
.fline-ln{ font-size:11px; color:var(--graphite); padding-top:8px; }
.fline-body{ min-width:0; }
.fline label{ display:block; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--graphite); margin-bottom:8px; }
.fline label b{ color:var(--ink); font-weight:600; }
.field-money{ display:flex; align-items:center; border:1px solid var(--hair-strong); border-radius:2px; background:var(--paper); }
.field-money .cur{ padding:0 10px; color:var(--graphite); font-size:14px; border-right:1px solid var(--hair); align-self:stretch; display:flex; align-items:center; }
.field-money input{ flex:1; min-width:0; border:0; background:transparent; font:inherit; padding:12px; min-height:46px; color:var(--ink); font-variant-numeric:tabular-nums; }
.field-money input:focus{ outline:none; }
.field-money:focus-within{ outline:2.5px solid var(--rust); outline-offset:1px; }

.dual{ display:flex; align-items:center; gap:12px; }
.dual input[type=range]{ flex:1; min-width:120px; accent-color:var(--ink); height:44px; }
.stepper{ display:inline-flex; align-items:stretch; border:1px solid var(--hair-strong); border-radius:2px; }
.stepper button{ width:44px; min-height:44px; font-size:20px; line-height:1; background:transparent; border:0; color:var(--ink); cursor:pointer; }
.stepper button:hover{ background:var(--paper-2); }
.stepper input{ width:62px; text-align:center; border:0; border-inline:1px solid var(--hair); background:transparent; font:inherit; font-variant-numeric:tabular-nums; }
.stepper input:focus{ outline:none; background:var(--paper-2); }
.unit{ color:var(--graphite); font-size:13px; }

.toggle-modo{ display:inline-flex; align-items:center; gap:10px; cursor:pointer; user-select:none; }
.toggle-modo input{ position:absolute; opacity:0; width:1px; height:1px; }
.toggle-track{ width:64px; height:34px; border:1.5px solid var(--ink); border-radius:2px; position:relative; flex:none; }
.toggle-knob{ position:absolute; top:2px; left:2px; width:28px; height:26px; background:var(--ink); transition:transform .2s ease; }
.toggle-modo input:checked + .toggle-track .toggle-knob{ transform:translateX(30px); background:var(--stamp); }
.toggle-modo input:focus-visible + .toggle-track{ outline:2.5px solid var(--rust); outline-offset:2px; }
.toggle-names{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--graphite); }
.toggle-names b{ color:var(--ink); }

/* painel de resultado */
.resultado{ position:sticky; top:20px; border:1px solid var(--hair-strong); background:var(--paper-2); padding:0; }
.resultado-head{ padding:14px 18px; border-bottom:1px solid var(--hair-strong); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--graphite); display:flex; justify-content:space-between; }
.resultado-head b{ color:var(--ink); }
.res-row{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:11px 18px; border-bottom:1px solid var(--hair); font-size:14px; }
.res-row dt{ color:var(--graphite); font-size:12px; letter-spacing:.04em; }
.res-row dd{ margin:0; font-weight:600; color:var(--ink); }
.res-row--big dd{ font-size:18px; }
.res-juros dd{ color:var(--stamp); }
.res-total dd{ color:var(--ink); }

/* CARIMBO — único elemento não-ortogonal */
.stamp-wrap{ padding:22px 18px 8px; display:flex; justify-content:center; }
.stamp{
  border:2.5px solid var(--stamp); color:var(--stamp);
  padding:12px 20px; transform:rotate(-2deg); text-align:center;
  border-radius:3px; position:relative; background:var(--paper);
  box-shadow:2px 2px 0 rgba(194,54,43,.14);
}
.stamp::before{
  content:""; position:absolute; inset:4px; border:1px solid var(--stamp);
  opacity:.45; border-radius:2px; pointer-events:none;
}
.stamp-label{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:600; }
.stamp-value{ font-family:'Archivo', sans-serif; font-weight:900; font-size:30px; line-height:1.05; margin:4px 0 2px; font-variant-numeric:tabular-nums; }
.stamp-sub{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.stamp--ok{ border-color:var(--green); color:var(--green); box-shadow:2px 2px 0 rgba(47,93,74,.14); }
.stamp--ok::before{ border-color:var(--green); }
#sim-veredito{ text-align:center; font-size:12.5px; padding:6px 18px 16px; }
.veredito--ok{ color:var(--green); }
.veredito--no{ color:var(--stamp); }

.dica{ font-size:12px; color:var(--graphite); padding:10px 18px 16px; border-top:1px dashed var(--hair-strong); }

/* ====================== CONTATO / COLOFÃO ============================== */
.colofao{ display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start; }
.registro{ font-size:13px; }
.registro dl{ margin:0; display:grid; grid-template-columns:auto 1fr; gap:8px 16px; }
.registro dt{ color:var(--graphite); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.registro dd{ margin:0; font-weight:600; }
.contato-form .fline{ grid-template-columns:1fr; }
.contato-form input, .contato-form textarea, .contato-form select{
  width:100%; border:1px solid var(--hair-strong); background:var(--paper);
  font:inherit; padding:12px; min-height:46px; border-radius:2px; color:var(--ink);
}
.contato-form textarea{ min-height:96px; resize:vertical; }
.contato-form input:focus, .contato-form textarea:focus, .contato-form select:focus{ outline:2.5px solid var(--rust); outline-offset:1px; }
.contato-form [aria-invalid=true]{ border-color:var(--stamp); }
.field-err{ color:var(--stamp); font-size:12px; margin-top:5px; min-height:1px; display:block; }
#contato-ok{ border:1px solid var(--green); padding:24px; text-align:center; }
.ok-stamp{
  display:inline-block; border:2.5px solid var(--green); color:var(--green);
  padding:10px 18px; transform:rotate(-2deg); border-radius:3px; margin-bottom:14px;
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
}

/* ====================== RODAPÉ ========================================= */
.colofao-foot{
  padding:26px clamp(20px,4vw,56px); border-top:1px solid var(--hair-strong);
  font-size:12px; color:var(--graphite); display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between;
}
.colofao-foot a{ color:var(--graphite); }
.colofao-foot a:hover{ color:var(--ink); }

/* ====================== FAB WhatsApp =================================== */
.fab{
  position:fixed; right:14px; bottom:46px; z-index:55;
  width:52px; height:52px; border-radius:50%; background:#1f8a4c;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.22); transition:transform .15s ease;
}
.fab:hover{ transform:translateY(-2px); text-decoration:none; }
.fab svg{ width:28px; height:28px; }

/* ====================== MOBILE CHROME ================================== */
.mobile-top{ display:none; }
.bottombar{ display:none; }
.sheet{ display:none; }

/* ====================== REVEAL ========================================= */
[data-reveal]{ opacity:0; transform:translateY(8px); transition:opacity .4s ease, transform .4s ease; }
[data-reveal].is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
}

/* ============================================================================
   RESPONSIVO — MOBILE (≤900: empilha; ≤375 validado)
   Lombada vira régua superior + acordeão; barra inferior fixa ao polegar.
   ========================================================================== */
@media (max-width:900px){
  .ledger{ grid-template-columns:1fr; border-inline:0; }
  .lombada{ display:none; }

  /* régua superior fina + sumário colapsável */
  .mobile-top{
    display:block; position:sticky; top:0; z-index:50;
    background:var(--paper); border-bottom:1px solid var(--hair-strong);
  }
  .mobile-top-bar{
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 16px; gap:12px;
  }
  .mobile-brand{ font-family:'Archivo', sans-serif; font-weight:900; font-size:19px; letter-spacing:.08em; text-transform:uppercase; }
  .mobile-brand .brand-amp{ color:var(--stamp); }
  .sumario-toggle{
    display:flex; align-items:center; gap:8px; min-height:44px; padding:6px 12px;
    background:transparent; border:1px solid var(--hair-strong); border-radius:2px;
    font:inherit; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); cursor:pointer;
  }
  .sumario-toggle .chev{ transition:transform .2s ease; }
  .sumario-toggle[aria-expanded=true] .chev{ transform:rotate(90deg); }
  #sumario-mobile{ border-top:1px solid var(--hair); background:var(--paper-2); }
  #sumario-mobile a{
    display:flex; justify-content:space-between; align-items:center;
    padding:14px 18px; min-height:48px; border-bottom:1px solid var(--hair);
    color:var(--ink); font-size:14px; letter-spacing:.04em; text-transform:uppercase;
  }
  #sumario-mobile a .n{ color:var(--stamp); font-weight:700; }
  #sumario-mobile a.is-active{ color:var(--stamp); }
  #sumario-mobile .edicao-m{ writing-mode:initial; transform:none; padding:12px 18px; font-size:11px; }

  .page{ padding:30px 16px; }
  .block{ padding-left:0; }
  .block-ln{ position:static; display:inline-block; margin-bottom:8px; }
  .block + .block{ margin-top:24px; padding-top:24px; }

  .manchete{ font-size:clamp(34px,12vw,52px); }
  .selo-demo{ bottom:78px; }
  .fab{ bottom:84px; }
}

/* fichas/listas reflow -> pares chave→valor (≤640) */
@media (max-width:640px){
  /* cota do dia */
  .cota-head{ display:none; }
  .cota-row{ grid-template-columns:1fr auto; grid-template-areas:"ln rs" "bairro spark"; gap:4px 12px; padding:13px 0; }
  .cota-ln{ grid-area:ln; }
  .cota-bairro{ grid-area:bairro; font-size:16px; }
  .cota-spark{ grid-area:spark; justify-content:flex-end; }
  .cota-rs{ grid-area:rs; }

  /* prévia da capa */
  .prev-row{ grid-template-columns:1fr auto; grid-template-areas:"ln valor" "bairro valor" "meta tag"; gap:3px 12px; }
  .prev-ln{ grid-area:ln; } .prev-bairro{ grid-area:bairro; } .prev-meta{ grid-area:meta; } .prev-tag{ grid-area:tag; justify-self:end; } .prev-valor{ grid-area:valor; align-self:start; }

  /* índice de bairros */
  .bairros-head{ display:none; }
  .bairro-row{ grid-template-columns:1fr 1fr; grid-template-areas:"nome nome" "n faixa" "rs go"; gap:6px 12px; padding:16px 0; }
  .bairro-ln{ display:none; }
  .bairro-nome{ grid-area:nome; }
  .bairro-n{ grid-area:n; text-align:left; } .bairro-faixa{ grid-area:faixa; } .bairro-rs{ grid-area:rs; text-align:left; }
  .bairro-n i,.bairro-rs i{ }
  .bairro-go{ grid-area:go; }

  /* fichas da carteira -> ficha empilhada (pares à direita) */
  .ficha-row{
    grid-template-columns:1fr auto; gap:8px 12px;
    grid-template-areas:
      "ln valor"
      "bairro valor"
      "tag tag"
      "m2 m2"
      "dorm dorm"
      "vagas vagas"
      "chev chev";
    padding:16px 0; align-items:center;
  }
  .ficha-ln{ grid-area:ln; }
  .ficha-bairro{ grid-area:bairro; font-size:17px; }
  .ficha-valor{ grid-area:valor; align-self:start; font-size:17px; }
  .ficha-tag{ grid-area:tag; justify-self:start; margin:4px 0; }
  .ficha-cell{ display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid var(--hair); padding-top:7px; text-align:right; }
  .ficha-cell i{ display:inline; }
  .ficha-cell:nth-of-type(3){ grid-area:m2; }
  .ficha-cell:nth-of-type(4){ grid-area:dorm; }
  .ficha-cell:nth-of-type(5){ grid-area:vagas; }
  .ficha-chev{ grid-area:chev; text-align:right; }
  .ficha-detalhe{ padding-left:0; }
  .ficha-pares{ grid-template-columns:1fr; }

  /* simulador empilha; resultado vira barra inferior */
  .sim-grid{ grid-template-columns:1fr; gap:20px; }
  .fline{ grid-template-columns:1fr; }
  .fline-ln{ padding-top:0; }
  .resultado{ position:static; }
  .colofao{ grid-template-columns:1fr; gap:24px; }

  /* BARRA INFERIOR FIXA ao polegar (carteira) */
  .bottombar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:54;
    background:var(--paper); border-top:1px solid var(--hair-strong);
    padding:8px 12px env(safe-area-inset-bottom,8px); gap:8px; align-items:center;
    box-shadow:0 -4px 14px rgba(0,0,0,.08);
  }
  .bottombar .seg{ flex:1; }
  .bottombar .seg button{ flex:1; min-height:44px; padding:10px 8px; }
  .bottombar .bb-faixa{
    min-height:44px; padding:8px 14px; border:1px solid var(--hair-strong);
    background:transparent; border-radius:2px; font:inherit; font-size:13px; color:var(--ink); white-space:nowrap;
  }
  body.has-bottombar{ padding-bottom:72px; }
  .selo-demo{ bottom:84px; }
  .fab{ bottom:90px; }

  /* sheet de faixa de preço */
  .sheet{
    display:block; position:fixed; left:0; right:0; bottom:0; z-index:70;
    background:var(--paper); border-top:2px solid var(--ink);
    padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));
    transform:translateY(105%); transition:transform .28s ease;
    box-shadow:0 -8px 30px rgba(0,0,0,.18);
  }
  .sheet.is-open{ transform:translateY(0); }
  .sheet-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
  .sheet-head h3{ margin:0; font-size:14px; letter-spacing:.1em; text-transform:uppercase; }
  .sheet-faixa-rotulo{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; }
  .sheet-faixa-rotulo .ink{ font-weight:700; color:var(--ink); font-size:15px; }
  #sheet-faixa .preco-wrap input[type=range]{ min-height:44px; }
  #sheet-faixa.faixa-off .preco-wrap{ opacity:.4; }
  #sheet-faixa.faixa-off .preco-wrap input[type=range]{ cursor:not-allowed; }
  #sheet-faixa.faixa-off .sheet-faixa-rotulo .ink{ color:var(--graphite); }
  .sheet-close{ width:44px; height:44px; border:1px solid var(--hair-strong); background:transparent; border-radius:2px; font-size:18px; cursor:pointer; color:var(--ink); }
  .sheet-backdrop{ display:none; }
  .sheet.is-open + .sheet-backdrop, .sheet-backdrop.is-open{ display:block; position:fixed; inset:0; background:rgba(26,24,21,.32); z-index:69; }
}

/* desktop: esconder elementos mobile-only sempre */
@media (min-width:901px){
  .mobile-top, .bottombar, .sheet, .sheet-backdrop{ display:none !important; }
}
