/* Gabriel Ferreira, corretor de imóveis.
   Identidade a partir dos posts dele: foto do imóvel com o lugar em caixa alta bem grossa e a metragem
   numa etiqueta arredondada. Aqui isso vira o sistema do site: Archivo larga e pesada nos títulos,
   verde-mata escuro de base e um amarelo de sol só no que é preço e ação. */
:root {
  --tinta: #101714;
  --papel: #F2F2EE;
  --branco: #FFFFFF;
  --mata: #1C4434;
  --mata-2: #2C6B52;
  --sol: #F0B43C;
  --suave: #5C6862;
  --linha: rgba(16, 23, 20, .12);
  --raio: 14px;
  --fonte: 'Archivo', system-ui, sans-serif;
  --borda-pagina: max(20px, calc((100vw - 1240px) / 2));
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--papel); color: var(--tinta); font: 400 16px/1.6 var(--fonte); font-stretch: 100%; }
img { display: block; max-width: 100%; }
a { color: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--sol); outline-offset: 3px; }
h1, h2, h3 { margin: 0; line-height: 1.05; }
.largo { font-stretch: 120%; font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; }

/* ---------- botões ---------- */
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 24px; border-radius: 999px; border: 1px solid transparent;
  font: 700 14px/1 var(--fonte); font-stretch: 112%; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  background: var(--sol); color: var(--tinta); transition: background .2s, color .2s, transform .15s; }
.botao:hover { background: #F5C462; }
.botao:active { transform: translateY(1px); }
.botao svg { width: 18px; height: 18px; }
.botao--escuro { background: var(--mata); color: var(--branco); }
.botao--escuro:hover { background: var(--mata-2); }
.botao--linha { background: transparent; border-color: currentColor; color: inherit; }
.botao--linha:hover { background: var(--tinta); color: var(--branco); border-color: var(--tinta); }

/* ---------- topo ---------- */
.topo { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 14px var(--borda-pagina); background: rgba(242, 242, 238, .92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--linha); }
.topo--sobre-foto { position: absolute; left: 0; right: 0; background: transparent; backdrop-filter: none; border-color: rgba(255, 255, 255, .18); color: var(--branco); }
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; }
svg.gf { width: 40px; height: 48px; flex: none; } /* logo GF: proporção 487 × 580 */
.marca svg { width: 46px; height: 55px; flex: none; }
.marca b { display: block; font-size: 15px; font-weight: 800; font-stretch: 118%; letter-spacing: .06em; text-transform: uppercase; line-height: 1.1; }
.marca small { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.topo nav { display: none; gap: 28px; }
.topo nav a { font-size: 14px; font-weight: 600; text-decoration: none; opacity: .85; }
.topo nav a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 6px; }
@media (min-width: 900px) { .topo nav { display: flex; } }
.topo .botao { padding: 11px 18px; font-size: 13px; }
.topo .botao span { display: none; }
@media (min-width: 560px) { .topo .botao span { display: inline; } }

/* ---------- capa da home: Gabriel no centro, nome gigante atrás, paisagem desfocada ---------- */
.capa { position: relative; height: 100svh; min-height: 640px; color: var(--branco); overflow: hidden; isolation: isolate; background: var(--mata); }
.capa__fundo { position: absolute; inset: -40px; z-index: -3; }
.capa__fundo img { width: 100%; height: 100%; object-fit: cover; filter: blur(14px) saturate(1.15); transform: scale(1.06); }
.capa__fundo::after { content: ''; position: absolute; inset: 0;
  background: radial-gradient(60% 55% at 50% 38%, rgba(28, 68, 52, .25) 0%, rgba(28, 68, 52, .7) 70%), linear-gradient(180deg, rgba(16, 23, 20, .45) 0%, rgba(28, 68, 52, .35) 45%, rgba(16, 23, 20, .7) 100%); }
.capa__nome { position: absolute; left: 0; right: 0; top: 12%; z-index: -2; margin: 0; text-align: center; pointer-events: none; user-select: none;
  font: 800 clamp(90px, 17.5vw, 300px)/.8 var(--fonte); font-stretch: 112%; letter-spacing: -.01em; text-transform: uppercase;
  background: linear-gradient(180deg, rgba(255, 255, 255, .85) 0%, rgba(255, 255, 255, .35) 65%, rgba(255, 255, 255, 0) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent; }
.capa__retrato { position: absolute; left: 50%; bottom: 0; z-index: -1; height: 86%; width: auto; max-width: none; transform: translateX(-50%);
  -webkit-mask: linear-gradient(180deg, #000 80%, transparent 100%); mask: linear-gradient(180deg, #000 80%, transparent 100%); }
.capa__frente { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(16, 23, 20, 0) 55%, rgba(16, 23, 20, .55) 80%, rgba(16, 23, 20, .85) 100%); }
.capa__base { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 22px; align-items: end; padding: 0 var(--borda-pagina) 96px; }
@media (min-width: 900px) { .capa__base { grid-template-columns: 1.3fr 1fr; gap: 48px; padding-bottom: 110px; } }
.capa__selos { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.capa__selos li { padding: 8px 16px; border: 1px solid rgba(255, 255, 255, .7); border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  background: rgba(16, 23, 20, .25); backdrop-filter: blur(6px); }
.capa h1 { max-width: 15ch; font-size: clamp(38px, 4.6vw, 72px); line-height: .95; text-shadow: 0 4px 40px rgba(0, 0, 0, .35); }
.capa h1 em { font-style: normal; color: var(--sol); }
.capa__lado p { max-width: 26rem; margin: 0 0 20px; font-size: 17px; line-height: 1.55; color: rgba(255, 255, 255, .9); }
.capa__botoes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; }
.capa__link { font-size: 14px; font-weight: 700; font-stretch: 112%; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; padding-bottom: 5px; border-bottom: 1.5px solid currentColor; cursor: pointer; }
.capa__link:hover { color: var(--sol); }
@media (max-width: 899px) {
  .capa { min-height: 720px; }
  .capa__nome { top: 13%; font-size: 18.5vw; }
  .capa__retrato { height: 52%; bottom: 40%; }
  .capa__base { gap: 14px; padding-bottom: 84px; }
  .capa__selos { margin-bottom: 12px; }
  .capa__selos li { padding: 6px 12px; font-size: 10px; letter-spacing: .1em; }
  .capa h1 { font-size: 36px; }
  .capa__lado p { margin-bottom: 14px; }
  .capa__frente { background: linear-gradient(180deg, rgba(16, 23, 20, 0) 45%, rgba(16, 23, 20, .85) 60%, #101714 72%); }
  .capa__lado p { font-size: 15px; }
}
@media (prefers-reduced-motion: no-preference) {
  .capa__nome { animation: gf-sobe 1.4s cubic-bezier(.22, 1, .36, 1) .1s both; }
  .capa__retrato { animation: gf-retrato 1.2s cubic-bezier(.22, 1, .36, 1) .3s both; }
  .capa__base { animation: gf-sobe 1s cubic-bezier(.22, 1, .36, 1) .7s both; }
}
@keyframes gf-sobe { from { opacity: 0; transform: translateY(30px); } }
@keyframes gf-retrato { from { opacity: 0; transform: translate(-50%, 40px); } }

/* busca: metade sobre a capa, metade sobre a lista */
.busca-faixa { position: relative; z-index: 5; padding: 0 var(--borda-pagina); margin-top: -46px; }
.busca-faixa .busca { margin: 0 auto; }
.busca-faixa + .secao { padding-top: 72px; }

/* busca rápida */
.busca { display: grid; gap: 10px; padding: 12px; border-radius: 20px; background: var(--branco); color: var(--tinta); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .5); max-width: 980px; }
@media (min-width: 820px) { .busca { grid-template-columns: auto 1fr 1fr auto; align-items: center; } }
.busca__modo { display: flex; padding: 4px; border-radius: 999px; background: var(--papel); }
.busca__modo button { flex: 1; padding: 10px 16px; border: 0; border-radius: 999px; background: transparent; font: 700 14px/1 var(--fonte); cursor: pointer; color: var(--suave); }
.busca__modo button[aria-pressed="true"] { background: var(--mata); color: var(--branco); }
.campo { display: grid; gap: 2px; padding: 8px 14px; border-radius: 12px; border: 1px solid var(--linha); }
.campo span { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--suave); }
.campo select, .campo input { border: 0; padding: 2px 0; background: transparent; font: 600 16px/1.3 var(--fonte); color: var(--tinta); outline-offset: 6px; }

/* ---------- seções ---------- */
.secao { padding: 88px var(--borda-pagina); }
@media (min-width: 900px) { .secao { padding: 120px var(--borda-pagina); } }
.secao__topo { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 18px 40px; margin-bottom: 36px; }
.secao__topo h2 { font-size: clamp(32px, 4.6vw, 60px); }
.secao__topo p { margin: 0; max-width: 30rem; color: var(--suave); }

/* tipos de imóvel */
.tipos { display: flex; gap: 10px; overflow-x: auto; padding: 4px 2px 14px; margin: 0 -2px 24px; scrollbar-width: none; }
.tipos::-webkit-scrollbar { display: none; }
.tipos button { flex: none; display: flex; align-items: center; gap: 10px; padding: 11px 18px; border-radius: 999px; border: 1px solid var(--linha); background: var(--branco);
  font: 600 15px/1 var(--fonte); color: var(--tinta); cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.tipos button small { font-size: 12px; color: var(--suave); }
.tipos button[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: var(--branco); }
.tipos button[aria-pressed="true"] small { color: rgba(255, 255, 255, .7); }

/* filtros */
.filtros { display: grid; gap: 10px; margin-bottom: 28px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .filtros { grid-template-columns: repeat(4, 1fr) auto; align-items: stretch; } }
.filtros .campo { background: var(--branco); }
.filtros .botao--linha { font-size: 12px; padding: 12px 18px; }
.contagem { margin: -12px 0 22px; font-size: 14px; color: var(--suave); }

/* cards */
.grade { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
.card { display: flex; flex-direction: column; border-radius: var(--raio); overflow: hidden; background: var(--branco); text-decoration: none;
  box-shadow: 0 1px 0 var(--linha); transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
.card:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -28px rgba(16, 23, 20, .45); }
.card__foto { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #DDE1DC; }
.card__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.card:hover .card__foto img { transform: scale(1.04); }
.card__foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .7) 100%); }
.card__sobre { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 1; display: flex; flex-wrap: wrap; align-items: end; gap: 4px 10px; color: var(--branco); }
.card__tipo { width: 100%; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: .9; }
.card__lugar { font-size: 24px; font-weight: 800; font-stretch: 122%; line-height: 1; text-transform: uppercase; letter-spacing: -.01em; }
.card__m2 { padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .22); backdrop-filter: blur(6px); font-size: 13px; font-weight: 700; }
.card__selo { position: absolute; top: 12px; left: 12px; z-index: 1; padding: 6px 12px; border-radius: 999px; background: var(--sol); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.card__selo--fechado { background: var(--tinta); color: var(--branco); }
.card--fechado .card__foto img { filter: grayscale(.6); }
.card__corpo { display: grid; gap: 8px; padding: 18px 18px 20px; flex: 1; }
.card__cidade { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--suave); }
.card__cidade svg { width: 15px; height: 15px; }
.card h3 { font-size: 18px; font-weight: 700; line-height: 1.3; }
.ficha { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; color: var(--suave); }
.ficha span { display: inline-flex; align-items: center; gap: 6px; }
.ficha svg { width: 17px; height: 17px; }
.card__preco { margin: 6px 0 0; padding-top: 12px; border-top: 1px solid var(--linha); font-size: 20px; font-weight: 800; font-stretch: 110%; }
.vazio { padding: 40px; border-radius: var(--raio); border: 1px dashed var(--linha); text-align: center; color: var(--suave); }
.vazio .botao { margin-top: 14px; }

/* sobre o Gabriel */
.sobre { background: var(--mata); color: var(--branco); }
.sobre__grade { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .sobre__grade { grid-template-columns: 1fr 1.1fr; gap: 72px; } }
.sobre__foto { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 5; max-width: 480px; }
.sobre__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.sobre__foto figcaption { position: absolute; left: 12px; right: 12px; bottom: 12px; padding: 10px 14px; border-radius: 12px; background: rgba(16, 23, 20, .72);
  backdrop-filter: blur(6px); font-size: 13px; }
.sobre h2 { font-size: clamp(34px, 4.6vw, 62px); }
.sobre h2 em { font-style: normal; color: var(--sol); }
.sobre__texto p { max-width: 36rem; color: rgba(255, 255, 255, .84); font-size: 17px; }
.pontos { display: grid; gap: 0; margin: 28px 0 32px; padding: 0; list-style: none; }
.pontos li { display: grid; grid-template-columns: 34px 1fr; gap: 14px; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.pontos li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .16); }
.pontos b { display: block; font-size: 16px; }
.pontos span { color: rgba(255, 255, 255, .72); font-size: 15px; }
.pontos svg { width: 26px; height: 26px; color: var(--sol); }

/* anuncie seu imóvel */
.anuncie { display: grid; gap: 24px; align-items: center; padding: 40px; border-radius: 24px; background: var(--sol); }
@media (min-width: 900px) { .anuncie { grid-template-columns: 1fr auto; padding: 56px 64px; } }
.anuncie h2 { font-size: clamp(28px, 3.6vw, 46px); }
.anuncie p { margin: 10px 0 0; max-width: 38rem; font-size: 17px; }

/* rodapé */
.rodape { padding: 64px var(--borda-pagina) 32px; background: var(--tinta); color: rgba(255, 255, 255, .75); font-size: 15px; }
.rodape__grade { display: grid; gap: 36px; padding-bottom: 36px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
@media (min-width: 800px) { .rodape__grade { grid-template-columns: 1.4fr 1fr 1fr; } }
.rodape .marca { color: var(--branco); margin-bottom: 14px; }
.rodape h3 { margin-bottom: 14px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--branco); }
.rodape ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.rodape a { text-decoration: none; } .rodape a:hover { color: var(--sol); }
.rodape__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 22px; font-size: 13px; color: rgba(255, 255, 255, .55); }

/* botão flutuante de WhatsApp */
.zap-fixo { position: fixed; right: 18px; bottom: 18px; z-index: 60; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%;
  background: #1FA855; color: var(--branco); box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .45); }
.zap-fixo svg { width: 28px; height: 28px; }

/* ---------- página do imóvel ---------- */
.migalha { margin: 0 0 16px; font-size: 14px; color: var(--suave); }
.migalha a { text-decoration: none; } .migalha a:hover { text-decoration: underline; }
.galeria { display: grid; gap: 8px; margin-bottom: 36px; }
@media (min-width: 800px) { .galeria { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; height: min(68vh, 620px); } }
.galeria button { position: relative; padding: 0; border: 0; border-radius: 12px; overflow: hidden; cursor: zoom-in; background: #DDE1DC; }
.galeria button:first-child { aspect-ratio: 4 / 3; }
@media (min-width: 800px) { .galeria button:first-child { grid-row: 1 / 3; aspect-ratio: auto; } }
.galeria button:not(:first-child) { display: none; }
@media (min-width: 800px) { .galeria button:nth-child(2), .galeria button:nth-child(3) { display: block; } }
.galeria img { width: 100%; height: 100%; object-fit: cover; }
.galeria__mais { position: absolute; right: 12px; bottom: 12px; padding: 8px 14px; border-radius: 999px; background: rgba(16, 23, 20, .78); color: var(--branco); font: 700 13px/1 var(--fonte); }
.imovel { display: grid; gap: 40px; align-items: start; }
@media (min-width: 980px) { .imovel { grid-template-columns: 1fr 380px; gap: 56px; } }
.imovel h1 { font-size: clamp(30px, 4vw, 52px); margin: 6px 0 10px; }
.imovel__lugar { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--suave); }
.imovel__lugar svg { width: 18px; height: 18px; }
.imovel__ficha { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 1px; margin: 28px 0; border-radius: var(--raio); overflow: hidden; background: var(--linha); border: 1px solid var(--linha); }
.imovel__ficha div { padding: 16px 18px; background: var(--branco); }
.imovel__ficha dt { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.imovel__ficha dd { margin: 4px 0 0; font-size: 20px; font-weight: 800; font-stretch: 110%; }
.imovel h2 { margin: 36px 0 14px; font-size: 22px; font-weight: 800; font-stretch: 112%; text-transform: uppercase; }
.imovel__descricao { font-size: 17px; line-height: 1.75; max-width: 46rem; white-space: pre-line; }
.lista-destaques { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.lista-destaques li { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--branco); font-size: 15px; }
.lista-destaques li::before { content: ''; flex: none; width: 8px; height: 8px; margin-top: 8px; border-radius: 50%; background: var(--mata-2); }
.mapa { aspect-ratio: 16 / 9; border-radius: var(--raio); overflow: hidden; background: #DDE1DC; }
.mapa iframe { width: 100%; height: 100%; border: 0; }
.mapa-nota { margin: 8px 0 0; font-size: 13px; color: var(--suave); }
.lateral { position: sticky; top: 92px; display: grid; gap: 16px; padding: 26px; border-radius: 20px; background: var(--branco); box-shadow: 0 30px 60px -40px rgba(16, 23, 20, .4); }
.lateral__preco { font-size: 34px; font-weight: 800; font-stretch: 112%; line-height: 1; }
.lateral__finalidade { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.lateral__cond { padding: 12px 14px; border-radius: 12px; background: #FFF4DA; font-size: 14px; line-height: 1.5; }
.lateral .botao { width: 100%; }
.lateral__corretor { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--linha); font-size: 14px; color: var(--suave); }
.lateral__corretor svg { width: 37px; height: 44px; flex: none; color: var(--mata); }
.lateral__corretor b { display: block; color: var(--tinta); }

/* foto em tela cheia */
.visor { width: 100vw; height: 100svh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(8, 12, 10, .96); color: var(--branco); }
.visor[open] { display: grid; grid-template-rows: auto 1fr auto; }
.visor::backdrop { background: rgba(8, 12, 10, .96); }
.visor__topo { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; font-size: 14px; }
.visor__topo button, .visor__nav button { width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: var(--branco); font-size: 22px; cursor: pointer; }
.visor__img { display: flex; align-items: center; justify-content: center; min-height: 0; padding: 0 12px; touch-action: pan-y; }
.visor__img img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; }
.visor__nav { display: flex; justify-content: center; gap: 16px; padding: 16px; }

/* ---------- painel ---------- */
.painel { min-height: 100svh; }
.painel__topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px var(--borda-pagina); background: var(--tinta); color: var(--branco); }
.painel__topo .marca small { opacity: .6; }
.painel__acoes { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.painel__acoes a, .painel__acoes button { white-space: nowrap; color: var(--branco); background: rgba(255, 255, 255, .1); border: 0; padding: 9px 14px; border-radius: 999px; font: 600 13px/1 var(--fonte); cursor: pointer; text-decoration: none; }
.aviso-teste { margin: 0; padding: 10px var(--borda-pagina); background: #FFF4DA; font-size: 14px; }
.aviso-teste button { margin-left: 8px; border: 0; background: none; text-decoration: underline; cursor: pointer; font: inherit; }
.login { display: grid; place-items: center; min-height: 100svh; padding: 24px; background: var(--mata); }
.login form { width: min(400px, 100%); display: grid; gap: 14px; padding: 32px; border-radius: 22px; background: var(--branco); }
.login h1 { font-size: 26px; font-weight: 800; font-stretch: 115%; text-transform: uppercase; }
.login p { margin: 0; color: var(--suave); font-size: 14px; }
.rotulo { display: grid; gap: 6px; font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.rotulo small { font-weight: 400; color: var(--suave); letter-spacing: 0; }
.rotulo input, .rotulo select, .rotulo textarea { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--linha); background: var(--branco); font: 400 16px/1.4 var(--fonte); color: var(--tinta); }
.rotulo textarea { min-height: 120px; resize: vertical; }
.erro { margin: 0; padding: 10px 12px; border-radius: 10px; background: #FDECEC; color: #8A1C1C; font-size: 14px; }
.ok { margin: 0; padding: 10px 12px; border-radius: 10px; background: #E5F4EC; color: #1F5B3C; font-size: 14px; }
.painel__miolo { padding: 28px var(--borda-pagina) 80px; }
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 24px; }
.numeros div { padding: 18px; border-radius: 14px; background: var(--branco); }
.numeros b { display: block; font-size: 32px; font-weight: 800; font-stretch: 112%; line-height: 1; }
.numeros span { font-size: 13px; color: var(--suave); }
.barra { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.barra input { flex: 1; min-width: 220px; max-width: 420px; padding: 12px 14px; border-radius: 999px; border: 1px solid var(--linha); font: 400 15px/1 var(--fonte); }
.itens { display: grid; gap: 10px; }
.item { display: grid; grid-template-columns: 96px 1fr; gap: 16px; align-items: center; padding: 12px; border-radius: 14px; background: var(--branco); }
@media (min-width: 900px) { .item { grid-template-columns: 120px 1fr auto auto; } }
.item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; background: #DDE1DC; }
.item h3 { font-size: 17px; }
.item p { margin: 4px 0 0; font-size: 14px; color: var(--suave); }
.item__status { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
@media (min-width: 900px) { .item__status { grid-column: auto; } }
.item select { padding: 9px 10px; border-radius: 10px; border: 1px solid var(--linha); font: 600 14px/1 var(--fonte); background: var(--branco); }
.estrela { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--linha); background: var(--branco); cursor: pointer; font-size: 18px; color: #B9BFBB; }
.estrela[aria-pressed="true"] { color: var(--sol); border-color: var(--sol); background: #FFF8E6; }
.item__botoes { grid-column: 1 / -1; display: flex; gap: 8px; }
@media (min-width: 900px) { .item__botoes { grid-column: auto; } }
.item__botoes button, .item__botoes a { padding: 10px 14px; border-radius: 10px; border: 1px solid var(--linha); background: var(--branco); font: 600 14px/1 var(--fonte); cursor: pointer; text-decoration: none; color: var(--tinta); }
.item__botoes .perigo { color: #A32020; }

/* formulário do imóvel */
.editor { width: min(880px, calc(100vw - 16px)); max-height: calc(100svh - 16px); padding: 0; border: 0; border-radius: 20px; background: var(--papel); color: var(--tinta); }
.editor::backdrop { background: rgba(8, 12, 10, .6); }
.editor form { display: grid; gap: 18px; padding: 26px; }
@media (min-width: 700px) { .editor form { padding: 34px 40px; } }
.editor__topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.editor__topo h2 { font-size: 24px; font-weight: 800; font-stretch: 115%; text-transform: uppercase; }
.editor__topo button { width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(16, 23, 20, .08); font-size: 22px; cursor: pointer; }
.editor fieldset { display: grid; gap: 14px; margin: 0; padding: 18px; border: 0; border-radius: 14px; background: var(--branco); }
.editor legend { float: left; width: 100%; margin-bottom: 4px; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--mata); }
.duas { display: grid; gap: 14px; }
@media (min-width: 640px) { .duas { grid-template-columns: 1fr 1fr; } .tres { grid-template-columns: repeat(3, 1fr); } .quatro { grid-template-columns: repeat(4, 1fr); } }
.marcar { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; }
.marcar input { width: 20px; height: 20px; accent-color: var(--mata); }
.fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.fotos figure { position: relative; margin: 0; border-radius: 10px; overflow: hidden; background: #DDE1DC; aspect-ratio: 4 / 3; }
.fotos img { width: 100%; height: 100%; object-fit: cover; }
.fotos figure:first-child::after { content: 'Capa'; position: absolute; top: 6px; left: 6px; padding: 3px 8px; border-radius: 999px; background: var(--sol); font-size: 11px; font-weight: 800; }
.fotos__acoes { position: absolute; right: 4px; bottom: 4px; display: flex; gap: 4px; }
.fotos__acoes button { width: 30px; height: 30px; border: 0; border-radius: 8px; background: rgba(16, 23, 20, .78); color: var(--branco); cursor: pointer; font-size: 14px; }
.subir { display: grid; place-items: center; gap: 6px; padding: 20px; border: 2px dashed var(--linha); border-radius: 12px; text-align: center; color: var(--suave); cursor: pointer; font-size: 14px; }
.subir.arrastando { border-color: var(--mata); background: #EAF2EE; }
.subir input { display: none; }
.editor__rodape { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; padding: 14px 0 0; background: linear-gradient(180deg, rgba(242, 242, 238, 0), var(--papel) 30%); }

/* ---------- vitrine de imóveis em carrossel coverflow (Skiper49) ---------- */
.vitrine { position: relative; margin: 0 calc(-1 * var(--borda-pagina)); }
.vitrine .swiper { width: 100%; padding: 20px 0 56px; }
/* troca suave: desacelera no fim, sem tranco; os vizinhos clareiam devagar enquanto chegam ao centro */
.vitrine .swiper-wrapper { transition-timing-function: cubic-bezier(.45, 0, .2, 1) !important; }
.vitrine .swiper-slide { width: min(78vw, 380px); height: auto; display: flex; transition-property: transform, opacity !important; transition-timing-function: cubic-bezier(.45, 0, .2, 1) !important; }
.vitrine .swiper-slide:not(.swiper-slide-active) { opacity: .7; }
.vitrine .swiper-slide .card { width: 100%; box-shadow: 0 30px 50px -34px rgba(16, 23, 20, .5); }
.vitrine .swiper-slide:not(.swiper-slide-active) .card { pointer-events: none; }
.vitrine .card:hover { transform: none; }
.vitrine .swiper-pagination-bullet { width: 8px; height: 8px; background: var(--tinta); opacity: .22; transition: width .3s, opacity .3s; }
.vitrine .swiper-pagination-bullet-active { width: 26px; border-radius: 4px; opacity: 1; background: var(--mata); }
.vitrine__seta { position: absolute; top: calc(50% - 28px); z-index: 10; display: none; place-items: center; width: 52px; height: 52px; border: 0; border-radius: 50%;
  background: var(--branco); color: var(--tinta); cursor: pointer; box-shadow: 0 12px 28px -12px rgba(16, 23, 20, .45); transition: background .2s, color .2s; }
.vitrine__seta:hover { background: var(--tinta); color: var(--branco); }
.vitrine__seta svg { width: 22px; height: 22px; }
.vitrine__seta--ant { left: calc(var(--borda-pagina) - 8px); }
.vitrine__seta--prox { right: calc(var(--borda-pagina) - 8px); }
@media (min-width: 700px) { .vitrine__seta { display: grid; } }
.vitrine--um .vitrine__seta, .vitrine--um .swiper-pagination { display: none; }
.tipos button:disabled { opacity: .4; cursor: not-allowed; }
.busca__modo button[hidden] { display: none !important; }

/* MFA e troca de senha */
.mfa-qr { display: grid; justify-items: center; gap: 10px; padding: 14px; border-radius: 14px; background: var(--papel); text-align: center; font-size: 13px; color: var(--suave); }
.mfa-qr img { width: 200px; height: 200px; background: #fff; border-radius: 8px; }
.mfa-qr code { display: inline-block; margin-top: 4px; padding: 4px 8px; border-radius: 6px; background: var(--branco); font-size: 13px; color: var(--tinta); word-break: break-all; user-select: all; }
.editor--estreito { width: min(480px, calc(100vw - 16px)); }

/* ---------- aba "Na planta" ---------- */
.planta { background: var(--mata); color: var(--branco); }
.planta .secao__topo p { color: rgba(255, 255, 255, .78); }
.tipos--escuro button { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); color: var(--branco); }
.tipos--escuro button small { color: rgba(255, 255, 255, .6); }
.tipos--escuro button[aria-pressed="true"] { background: var(--sol); border-color: var(--sol); color: var(--tinta); }
.tipos--escuro button[aria-pressed="true"] small { color: rgba(16, 23, 20, .7); }
.planta .grade { margin-top: 8px; }
.planta .vazio { color: rgba(255, 255, 255, .7); border-color: rgba(255, 255, 255, .2); }
.planta__cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin-top: 40px; padding: 26px 30px;
  border-radius: 18px; border: 1px dashed rgba(255, 255, 255, .3); }
.planta__cta p { margin: 0; font-size: 17px; }
.card--planta .card__corpo { gap: 10px; }
.card__selos { position: absolute; top: 12px; left: 12px; right: 12px; z-index: 1; display: flex; flex-wrap: wrap; gap: 6px; }
.selo-fase { padding: 5px 11px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--tinta); font-size: 12px; font-weight: 700; letter-spacing: .02em; }
.selo-fase--lancamento { background: var(--sol); }
.selo-fase--em_obras { background: #DDEBFF; color: #1D3F7A; }
.selo-fase--pronto { background: #DDF3E6; color: #1F5B3C; }
.plantas { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.plantas li { padding: 4px 10px; border-radius: 8px; background: var(--papel); font-size: 13px; font-weight: 600; }
.card__cond { margin: 0; font-size: 14px; line-height: 1.45; color: var(--mata-2); font-weight: 600; }
.obra { position: relative; height: 26px; border-radius: 8px; background: var(--papel); overflow: hidden; }
.obra i { position: absolute; inset: 0 auto 0 0; background: #CFE3D8; }
.obra span { position: relative; display: block; padding: 4px 10px; font-size: 13px; font-weight: 700; }
.imovel .obra { max-width: 46rem; margin-top: 14px; background: var(--branco); }
/* planta baixa desenhada, pra lançamento ainda sem foto */
.planta-baixa { position: relative; width: 100%; height: 100%; display: grid; place-items: center; background: #13324F; color: #BFD9F2; }
.planta-baixa svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.planta-baixa span { position: absolute; bottom: 64px; padding: 4px 10px; border-radius: 999px; background: rgba(19, 50, 79, .85); font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.card--planta .card__foto::after { background: linear-gradient(180deg, rgba(0, 0, 0, .25) 0%, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .7) 100%); }
.galeria--planta { display: block; height: auto; aspect-ratio: 21 / 9; border-radius: 12px; overflow: hidden; }
.galeria--planta .planta-baixa span { bottom: 16px; }
.rotulo textarea.curto { min-height: 90px; }
.dica-campo { margin: 0; font-size: 13px; color: var(--suave); }
.planta .card { color: var(--tinta); }

/* ---------- auditoria: alvos de toque, CTA fixo no celular, cookies, páginas legais e 404 ---------- */
.tipos button, .busca__modo button { min-height: 44px; }
.link-botao { padding: 0; border: 0; background: none; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rodape__legal { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rodape__legal a, .rodape__legal .link-botao { color: rgba(255, 255, 255, .75); min-height: 32px; display: inline-flex; align-items: center; }
.rodape__base--solo { border: 0; padding: 0; }
.zap-fixo__texto { display: none; }
/* celular: o botão redondo vira uma barra fixa embaixo, com texto, respeitando a área segura do aparelho;
   o corpo ganha espaço no fim pra barra nunca cobrir o rodapé */
@media (max-width: 699px) {
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .zap-fixo { left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom)); width: auto; height: 52px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; font-size: 16px; text-decoration: none; }
  .zap-fixo svg { width: 24px; height: 24px; }
  .zap-fixo__texto { display: inline; }
}
.zap-fixo:focus-visible { outline: 3px solid var(--sol); outline-offset: 3px; }

.cookies { position: fixed; z-index: 80; left: 16px; right: 16px; bottom: 16px; max-width: 760px; margin: 0 auto; display: grid; gap: 14px; padding: 18px 20px;
  border-radius: 16px; background: var(--tinta); color: var(--branco); box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .6); font-size: 15px; line-height: 1.5; }
.cookies p { margin: 0; }
.cookies a { color: var(--sol); }
.cookies__botoes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cookies .botao { min-height: 44px; padding: 12px 20px; }
.cookies .botao--escuro { background: var(--sol); color: var(--tinta); }
.cookies .botao--linha { color: var(--branco); }
.cookies__config { min-height: 44px; padding: 0 8px; border: 0; background: none; color: var(--branco); font: 600 14px/1 var(--fonte); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
@media (max-width: 699px) { .cookies { left: 10px; right: 10px; bottom: calc(72px + env(safe-area-inset-bottom)); } }
.cookies-painel { width: min(520px, calc(100vw - 20px)); padding: 0; border: 0; border-radius: 18px; background: var(--papel); color: var(--tinta); }
.cookies-painel::backdrop { background: rgba(8, 12, 10, .6); }
.cookies-painel form { display: grid; gap: 16px; padding: 26px; }
.cookies-painel h2 { font-size: 22px; font-weight: 800; font-stretch: 115%; text-transform: uppercase; }
.cookies-item { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 14px 16px; border-radius: 12px; background: var(--branco); cursor: pointer; }
.cookies-item p { margin: 4px 0 0; font-size: 14px; color: var(--suave); }
.cookies-item input { width: 24px; height: 24px; flex: none; accent-color: var(--mata); }
.cookies-fixo { flex: none; font-size: 13px; font-weight: 700; color: var(--mata-2); }
.cookies-nota { margin: 0; font-size: 14px; color: var(--suave); }

.texto-legal { max-width: 860px; margin: 0 auto; }
.texto-legal h1 { font-size: clamp(30px, 4.4vw, 52px); }
.texto-legal h2 { margin: 36px 0 10px; font-size: 20px; font-weight: 800; font-stretch: 112%; text-transform: uppercase; }
.texto-legal p, .texto-legal li { font-size: 16px; line-height: 1.7; }
.texto-legal__data { color: var(--suave); }
.texto-legal table { width: 100%; border-collapse: collapse; font-size: 14px; display: block; overflow-x: auto; }
.texto-legal th, .texto-legal td { padding: 10px 12px; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: top; min-width: 140px; }
.texto-legal th { background: var(--branco); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.pagina-404 { background: var(--mata); color: var(--branco); }
.erro404 { min-height: 100svh; display: grid; align-content: center; justify-items: start; gap: 18px; max-width: 760px; margin: 0 auto; padding: 40px 20px; }
.erro404 .marca { margin-bottom: 20px; }
.erro404__codigo { margin: 0; font: 900 clamp(90px, 22vw, 200px)/.8 var(--fonte); font-stretch: 125%; color: var(--sol); }
.erro404 h1 { font-size: clamp(32px, 5vw, 56px); }
.erro404 p { margin: 0; max-width: 34rem; font-size: 18px; color: rgba(255, 255, 255, .85); }
.erro404__botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }
.erro404 .botao--linha { color: var(--branco); }

.mapa__abrir { width: 100%; height: 100%; display: grid; place-content: center; justify-items: center; gap: 6px; border: 0; cursor: pointer;
  background: repeating-linear-gradient(45deg, #E3E7E2 0 12px, #DDE1DC 12px 24px); color: var(--tinta); font: 700 16px var(--fonte); }
.mapa__abrir svg { width: 32px; height: 32px; color: var(--mata); }
.mapa__abrir small { font-weight: 400; font-size: 13px; color: var(--suave); }
.mapa__abrir:hover span { text-decoration: underline; }
.topo .botao, .filtros .botao--linha { min-height: 44px; }
.erro404 .erro404__codigo { font-size: clamp(90px, 22vw, 200px); color: var(--sol); }

/* plantas com imagem: página do imóvel */
.plantas-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; margin: 0 0 16px; }
.planta-cartao { display: grid; gap: 0; padding: 0; border: 1px solid var(--linha); border-radius: 12px; overflow: hidden; background: var(--branco); color: var(--tinta); font: inherit; text-align: left; cursor: zoom-in; }
.planta-cartao img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; padding: 10px; background: var(--branco); }
.planta-cartao span { padding: 10px 14px; border-top: 1px solid var(--linha); font-size: 15px; font-weight: 700; }
.planta-cartao:hover span { background: var(--papel); }
.visor__img img { background: var(--branco); } /* planta com fundo transparente continua legível no visor escuro */

/* plantas com imagem: painel */
.plantas-editor { display: grid; gap: 10px; margin: 0 0 12px; padding: 0; list-style: none; }
.planta-item { display: grid; grid-template-columns: 84px 1fr; gap: 8px 12px; align-items: center; padding: 10px; border: 1px solid var(--linha); border-radius: 12px; }
.planta-item img, .planta-item__vazia { grid-row: span 2; width: 84px; height: 64px; border-radius: 8px; object-fit: contain; background: var(--branco); border: 1px solid var(--linha); }
.planta-item__vazia { display: grid; place-items: center; font-size: 11px; color: var(--suave); text-align: center; }
.planta-item input[name=planta-nome] { width: 100%; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--linha); background: var(--branco); font: 400 16px/1.4 var(--fonte); color: var(--tinta); }
.planta-item__botoes { display: flex; flex-wrap: wrap; gap: 6px; }
.planta-item__botoes button, .planta-item__enviar { min-height: 36px; padding: 6px 12px; border: 1px solid var(--linha); border-radius: 8px; background: var(--branco); color: var(--tinta); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; position: relative; }
.planta-item__enviar:focus-within { outline: 2px solid var(--mata); outline-offset: 2px; }
.planta-item__enviar input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.planta-item__botoes .perigo { color: #A3261B; }
