/* estilo.css — visual da prévia da Visa Imóveis (versão 2, 23/10/2026).
   A ideia é a vitrine do corretor: a busca na capa é a pergunta que ele faz na primeira conversa
   (comprar ou alugar, tipo, bairro, até quanto), ao lado da foto do imóvel em destaque com a placa de preço.
   Azul-marinho de tinta, cinza-pedra claro no fundo (Cachoeiro é cidade de pedra) e uma placa amarela só nos preços.
   O V do logo deles (duas faces, cinza e branca) é a marca. Bricolage Grotesque nos títulos, Albert Sans no texto. */
:root {
  --marinho: #0f2238;
  --marinho-escuro: #0a1727;
  --marinho-claro: #1b3556;
  --marinho-2: #b9c3d2;        /* texto secundário sobre o marinho (tingido do azul, não cinza) */
  --papel: #edf0f3;          /* cinza-pedra claro, do lado do V cinza do logo */
  --papel-claro: #f7f9fb;
  --papel-2: #dde3e9;
  --papel-3: #c1cad4;
  --tinta: #151a22;
  --cinza: #4b525d;
  --pedra: #aab0b8;            /* o cinza da face esquerda do V */
  --placa: #f5c518;
  --placa-escura: #d9a900;
  --zap: #1a7f45;
  --zap-escuro: #146a39;
  --foco: var(--marinho);
  --altura-topo: 104px;
  --largura: 1180px;
  --titulo: "Bricolage Grotesque", "Avenir Next Condensed", "Helvetica Neue", Arial, sans-serif;
  --texto: "Albert Sans", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
}
html { color: var(--tinta); background: var(--papel); }
body { font: 400 17px/1.55 var(--texto); }
::selection { background: var(--placa); color: var(--tinta); }
input, select, textarea { caret-color: var(--marinho); }
a { text-underline-offset: 3px; }
@media (min-width: 900px) { :root { --altura-topo: 102px; } }

/* ---------- títulos ---------- */
h1, h2, h3 { font-family: var(--titulo); font-optical-sizing: auto; }
.titulo { font-size: clamp(30px, 4.2vw, 44px); font-weight: 600; line-height: 1.06; letter-spacing: -.02em; color: var(--marinho); text-wrap: balance; }
.titulo--claro { color: #fff; }
.bloco__intro { max-width: 60ch; margin-top: 12px; font-size: 18px; color: var(--cinza); text-wrap: pretty; }
.bloco__intro--claro { color: var(--marinho-2); }
h3 { font-size: 22px; font-weight: 600; line-height: 1.15; letter-spacing: -.01em; color: var(--marinho); text-wrap: balance; }

/* ---------- a marca ---------- */
.marca { width: 30px; height: 30px; flex: none; color: var(--marinho); }

/* ---------- botões ---------- */
.botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 22px; border: 1.5px solid transparent; border-radius: 6px; text-decoration: none; font: 600 17px/1.2 var(--texto); cursor: pointer; text-align: center; }
.botao svg { width: 22px; height: 22px; flex: none; }
.botao--placa { background: var(--placa); border-color: var(--placa); color: var(--tinta); }
.botao--placa:hover { background: #ffd43a; border-color: #ffd43a; }
.botao--claro { background: #fff; border-color: #fff; color: var(--marinho); }
.botao--claro:hover { background: var(--papel); border-color: var(--papel); }
.botao--linha { border-color: rgba(255, 255, 255, .5); color: #fff; background: transparent; }
.botao--linha:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.botao--escuro { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.botao--escuro:hover { background: var(--marinho-claro); border-color: var(--marinho-claro); }
.botao--linha-escura { border-color: var(--marinho); color: var(--marinho); background: transparent; }
.botao--linha-escura:hover { background: rgba(15, 34, 56, .06); }
.botao--wa-texto { background: var(--zap); border-color: var(--zap); color: #fff; }
.botao--wa-texto:hover { background: var(--zap-escuro); border-color: var(--zap-escuro); }

/* ---------- a placa de preço (a assinatura) ---------- */
.placa { display: inline-flex; flex-direction: column; align-items: flex-start; padding: 6px 12px 7px; border-radius: 4px; background: var(--placa); color: var(--tinta); font: 700 18px/1.1 var(--titulo); letter-spacing: -.01em; font-variant-numeric: tabular-nums; box-shadow: 0 2px 0 var(--placa-escura), 0 6px 14px -8px rgba(0, 0, 0, .5); }
.placa small { font: 600 11px/1.2 var(--texto); letter-spacing: .02em; }
.placa--grande { padding: 9px 16px 10px; font-size: 26px; }
.placa--consulta { background: #fff; box-shadow: 0 2px 0 var(--papel-3); font-size: 15px; font-weight: 600; }

/* ---------- faixa de prévia e topo ---------- */
.fixo { position: sticky; top: 0; z-index: 50; }
.faixa-previa { margin: 0; padding: 7px 16px; background: var(--tinta); color: var(--papel); text-align: center; font-size: 13px; font-weight: 500; line-height: 1.4; }
.topo { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 8px 16px; background: var(--papel); border-bottom: 1px solid var(--papel-3); }
.topo__marca { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font: 700 20px/1 var(--titulo); letter-spacing: -.02em; color: var(--marinho); }
.topo__nav { display: none; gap: 22px; margin-left: 20px; }
.topo__nav a { text-decoration: none; font-weight: 500; font-size: 16px; color: var(--tinta); padding: 6px 0; border-bottom: 2px solid transparent; }
.topo__nav a:hover { border-bottom-color: var(--placa); }
.topo__zap { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 6px; background: var(--marinho); color: #fff; text-decoration: none; font-weight: 600; }
.topo__zap:hover { background: var(--marinho-claro); }
.topo__zap svg { width: 22px; height: 22px; }
@media (max-width: 400px) { .topo__zap span { display: none; } .topo__zap { padding: 0 11px; } }
@media (min-width: 900px) { .topo { padding: 10px 40px; } .topo__nav { display: flex; } .topo__marca { font-size: 22px; } }

/* ---------- capa ---------- */
.capa { position: relative; padding: 40px 16px 0; background: var(--marinho); color: #fff; }
.capa :focus-visible { outline-color: var(--placa); }
.capa__grade { max-width: var(--largura); margin: 0 auto; display: grid; gap: 36px; }
.capa__grade > * { min-width: 0; }
.capa__creci { font-size: 15px; color: var(--marinho-2); }
.capa h1 { margin-top: 12px; font-size: clamp(36px, 6.2vw, 62px); font-weight: 700; line-height: 1.02; letter-spacing: -.03em; text-wrap: balance; }
.capa__lead { margin-top: 18px; max-width: 54ch; font-size: 18px; color: var(--marinho-2); text-wrap: pretty; }

/* entrada: um movimento só, texto, busca e foto, a partir de um estado já visível */
@keyframes entrar { from { opacity: .5; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.capa__texto > * { animation: entrar .6s cubic-bezier(.16, 1, .3, 1) both; }
.capa .busca { animation-delay: .08s; }
.capa__foto { animation: entrar .7s .14s cubic-bezier(.16, 1, .3, 1) both; }

/* a busca */
.busca { margin-top: 28px; padding: 22px 18px 20px; border-radius: 8px; background: var(--papel-claro); color: var(--tinta); box-shadow: 0 24px 40px -24px rgba(0, 0, 0, .6); }
.busca :focus-visible { outline-color: var(--marinho); }
.busca__titulo { font-size: 22px; font-weight: 600; letter-spacing: -.015em; color: var(--marinho); }
.segmento { display: grid; grid-template-columns: 1fr 1fr; width: 100%; max-width: 300px; margin-top: 14px; padding: 4px; border-radius: 6px; background: var(--papel-2); }
.segmento button { min-height: 42px; border: 0; border-radius: 4px; background: transparent; color: var(--marinho); font: 600 16px/1 var(--texto); cursor: pointer; }
.segmento button[aria-pressed="true"] { background: var(--marinho); color: #fff; }
.busca__campos { display: grid; gap: 12px; margin-top: 16px; }
.campo { display: grid; gap: 4px; }
.campo > span { font-size: 14px; font-weight: 600; color: var(--marinho); }
.campo select { width: 100%; min-height: 46px; padding: 0 36px 0 12px; border: 1.5px solid var(--papel-3); border-radius: 6px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%230f2238' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center; appearance: none; -webkit-appearance: none; font-size: 16px; color: var(--tinta); cursor: pointer; }
.campo select:focus-visible { outline: none; border-color: var(--marinho); box-shadow: 0 0 0 3px rgba(15, 34, 56, .18); }
.busca__botao { width: 100%; margin-top: 16px; }
.busca__aluguel { margin-top: 16px; font-size: 16px; line-height: 1.5; color: var(--cinza); }
@media (min-width: 560px) { .busca__campos { grid-template-columns: 1fr 1fr 1fr; } }

/* a foto em destaque, com a ficha e a placa */
.destaque { position: relative; display: block; overflow: hidden; border-radius: 8px 8px 0 0; text-decoration: none; color: var(--tinta); }
.destaque img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; background: var(--marinho-claro); }
.destaque:hover img { filter: brightness(1.05); }
.destaque__ficha { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; background: var(--papel-claro); }
.destaque__texto { display: grid; gap: 2px; min-width: 0; }
.destaque__onde { font-size: 13px; font-weight: 600; color: var(--cinza); }
.destaque__titulo { font: 600 19px/1.15 var(--titulo); letter-spacing: -.015em; color: var(--marinho); text-wrap: balance; }
.destaque .placa { flex: none; }
@media (min-width: 1000px) {
  .capa { padding: 56px 40px 0; }
  .capa__grade { grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: end; }
  .capa__texto { padding-bottom: 48px; }
  .destaque img { aspect-ratio: 4 / 4.6; }
  .destaque__ficha { padding: 18px 20px; }
}

/* ---------- blocos ---------- */
.imoveis__dentro, .vendidos__dentro, .sobre__dentro, .perguntas__dentro, .como__dentro { max-width: var(--largura); margin: 0 auto; }

/* ---------- imóveis ---------- */
.imoveis { padding: 56px 16px 64px; }
.filtros { display: grid; gap: 10px; margin-top: 26px; }
.chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 2px 16px 6px; }
.chips::-webkit-scrollbar { display: none; }
.chips button { flex: none; min-height: 42px; padding: 0 16px; border: 1.5px solid var(--papel-3); border-radius: 999px; background: var(--papel-claro); color: var(--marinho); font: 600 15px/1 var(--texto); cursor: pointer; white-space: nowrap; }
.chips button[aria-pressed="true"] { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.filtros__resumo { font-size: 15px; color: var(--cinza); }
.filtros__resumo:empty { display: none; }
.filtros__limpar { padding: 0; border: 0; background: none; color: var(--marinho); font: 600 15px/1 var(--texto); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cards { display: grid; gap: 20px; margin-top: 18px; }
.card { display: grid; grid-template-rows: auto 1fr; overflow: hidden; border: 1px solid var(--papel-3); border-radius: 8px; background: var(--papel-claro); }
.card__foto { position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--papel-2); cursor: pointer; aspect-ratio: 4 / 3; overflow: hidden; }
.card__foto img { width: 100%; height: 100%; object-fit: cover; }
.card__foto:hover img { filter: brightness(1.05); }
.card__foto:focus-visible { outline: 3px solid var(--placa); outline-offset: -3px; }
.card__foto .placa { position: absolute; left: 12px; bottom: 12px; }
.card__fotos { position: absolute; right: 12px; bottom: 14px; padding: 4px 10px; border-radius: 999px; background: rgba(10, 23, 39, .78); color: #fff; font-size: 13px; font-weight: 600; }
.card__selo { position: absolute; left: 12px; top: 12px; padding: 4px 10px; border-radius: 4px; background: var(--papel-claro); color: var(--marinho); font-size: 13px; font-weight: 700; }
.card__corpo { display: grid; gap: 8px; align-content: start; padding: 16px 16px 18px; }
.card__onde { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; font-weight: 600; color: var(--cinza); }
.card__quando { font-weight: 400; }
.card__titulo { font-size: 21px; }
.specs { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 15px; color: var(--cinza); }
.specs span { display: inline-flex; align-items: center; gap: 6px; }
.specs svg { width: 20px; height: 20px; color: var(--marinho); }
.card__acoes { display: flex; gap: 8px; margin-top: 8px; }
.card__acoes .botao { min-height: 46px; padding: 0 16px; font-size: 15px; }
.botao--ver { flex: 1; background: var(--marinho); border-color: var(--marinho); color: #fff; }
.botao--ver:hover { background: var(--marinho-claro); border-color: var(--marinho-claro); }
.botao--wa { padding: 0 14px; background: var(--zap); border-color: var(--zap); color: #fff; }
.botao--wa:hover { background: var(--zap-escuro); border-color: var(--zap-escuro); }
.vazio { margin-top: 20px; padding: 28px 22px; border: 1.5px dashed var(--papel-3); border-radius: 8px; background: var(--papel-claro); }
.vazio p { margin-top: 8px; max-width: 54ch; color: var(--cinza); }
.vazio .botoes { margin-top: 18px; }
@media (min-width: 640px) { .cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .imoveis { padding: 80px 40px 88px; } .chips { margin: 0; padding: 2px 0 6px; } }
@media (min-width: 1000px) { .cards { grid-template-columns: 1fr 1fr 1fr; gap: 24px; } }

/* ---------- como funciona ---------- */
.como { padding: 64px 16px; background: var(--marinho); color: #fff; }
.como :focus-visible { outline-color: var(--placa); }
.como__grade { display: grid; gap: 36px; margin-top: 36px; }
.como__col { padding-top: 20px; border-top: 1px solid rgba(185, 195, 210, .35); }
.como__col h3 { color: #fff; }
.como__col p { margin-top: 12px; max-width: 46ch; color: var(--marinho-2); text-wrap: pretty; }
.como__col .botao { margin-top: 22px; }
.passos { margin: 18px 0 0; padding: 0; list-style: none; counter-reset: passo; display: grid; gap: 16px; }
.passos li { position: relative; display: grid; gap: 4px; padding-left: 46px; counter-increment: passo; }
.passos li::before { content: counter(passo); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border-radius: 4px; background: var(--placa); color: var(--tinta); font: 700 17px/32px var(--titulo); text-align: center; }
.passos strong { font: 600 18px/1.25 var(--titulo); letter-spacing: -.01em; }
.passos span { font-size: 16px; color: var(--marinho-2); text-wrap: pretty; }
@media (min-width: 860px) { .como { padding: 96px 40px; } .como__grade { grid-template-columns: 1fr 1fr 1fr; gap: 40px; } }

/* ---------- vendidos ---------- */
.vendidos { padding: 56px 16px; background: var(--papel-2); }
.vendidos__lista { display: grid; gap: 12px; margin-top: 24px; }
.vendido { display: grid; grid-template-columns: 88px 1fr; gap: 14px; align-items: center; padding: 10px; border-radius: 8px; background: var(--papel-claro); }
.vendido img, .vendido__sem { width: 88px; height: 88px; object-fit: cover; border-radius: 6px; background: var(--papel-3); }
.vendido__selo { display: inline-block; margin-bottom: 4px; padding: 2px 8px; border-radius: 4px; background: var(--marinho); color: #fff; font-size: 12px; font-weight: 700; }
.vendido strong { display: block; font: 600 17px/1.2 var(--titulo); letter-spacing: -.01em; color: var(--marinho); }
.vendido__onde { display: block; margin-top: 3px; font-size: 14px; color: var(--cinza); }
@media (min-width: 700px) { .vendidos__lista { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .vendidos { padding: 72px 40px; } }
@media (min-width: 1100px) { .vendidos__lista { grid-template-columns: repeat(3, 1fr); } }

/* ---------- quem anuncia ---------- */
.sobre { padding: 64px 16px; }
.sobre__dentro { display: grid; gap: 36px; }
.sobre__texto p { margin-top: 14px; max-width: 58ch; text-wrap: pretty; }
.sobre__texto a:not(.botao) { color: var(--marinho); font-weight: 600; }
.sobre__fatos { display: grid; gap: 0; align-content: start; }
.sobre__fatos > div { display: grid; gap: 4px; padding: 16px 0; border-top: 1px solid var(--papel-3); }
.sobre__fatos > div:last-child { border-bottom: 1px solid var(--papel-3); }
.sobre__fatos dt { font-size: 14px; font-weight: 600; color: var(--cinza); }
.sobre__fatos dd { font: 600 19px/1.3 var(--titulo); letter-spacing: -.01em; color: var(--marinho); }
@media (min-width: 860px) { .sobre { padding: 96px 40px; } .sobre__dentro { grid-template-columns: 1.2fr .8fr; gap: 64px; } }

/* ---------- perguntas ---------- */
.perguntas { padding: 64px 16px; background: var(--papel-claro); }
.perguntas__lista { max-width: 800px; margin-top: 24px; }
.pergunta { border-top: 1px solid var(--papel-3); }
.pergunta:last-child { border-bottom: 1px solid var(--papel-3); }
.pergunta summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 0; list-style: none; cursor: pointer; font: 600 18px/1.35 var(--titulo); letter-spacing: -.01em; color: var(--marinho); }
.pergunta summary::-webkit-details-marker { display: none; }
.pergunta summary::after { content: ""; flex: none; width: 10px; height: 10px; margin-right: 4px; border-right: 2px solid var(--marinho); border-bottom: 2px solid var(--marinho); transform: rotate(45deg); transition: transform .25s; }
.pergunta[open] summary::after { transform: rotate(-135deg); }
.pergunta p { padding: 0 0 20px; max-width: 64ch; color: var(--cinza); text-wrap: pretty; }
@media (min-width: 900px) { .perguntas { padding: 96px 40px; } }

/* ---------- chamada final ---------- */
.chamada { padding: 72px 16px; background: var(--marinho-escuro); color: #fff; text-align: center; }
.chamada :focus-visible { outline-color: var(--placa); }
.chamada__dentro { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.marca--chamada { width: 44px; height: 44px; margin-bottom: 18px; color: #fff; }
.chamada p { margin-top: 14px; max-width: 52ch; color: var(--marinho-2); text-wrap: pretty; }
.chamada .botoes { justify-content: center; }
.chamada__contatos { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 32px; margin-top: 36px; font-size: 15px; }
.chamada__contatos div { display: grid; gap: 2px; }
.chamada__contatos dt { color: var(--marinho-2); font-size: 13px; font-weight: 600; }
.chamada__contatos a { color: #fff; text-decoration-color: rgba(255, 255, 255, .4); }
.chamada__contatos a:hover { text-decoration-color: #fff; }
@media (min-width: 900px) { .chamada { padding: 104px 40px; } }

/* ---------- rodapé ---------- */
.rodape { padding: 28px 16px 40px; background: #061020; color: var(--marinho-2); font-size: 14px; line-height: 1.6; text-align: center; }
.rodape__nome { font: 700 18px/1.2 var(--titulo); letter-spacing: -.02em; color: #fff; }
.rodape__previa { max-width: 70ch; margin: 16px auto 0; font-size: 13px; }

/* ---------- janela de detalhes do imóvel ---------- */
.detalhe { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; padding: 0; border: 0; background: var(--papel); color: var(--tinta); overflow: auto; overscroll-behavior: contain; }
.detalhe::backdrop { background: rgba(6, 16, 32, .78); }
.detalhe__fechar-area { position: sticky; top: 0; z-index: 3; height: 0; margin: 0; }
.detalhe__fechar { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; color: var(--tinta); font-size: 26px; line-height: 1; cursor: pointer; box-shadow: 0 2px 10px rgba(0, 0, 0, .3); }
.detalhe__corpo { display: grid; }
.galeria { position: relative; background: var(--marinho-escuro); }
.galeria__faixa { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.galeria__faixa::-webkit-scrollbar { display: none; }
.galeria__faixa > figure { flex: 0 0 100%; margin: 0; scroll-snap-align: center; }
.galeria__faixa img { width: 100%; aspect-ratio: 4 / 5; max-height: 72dvh; object-fit: cover; background: var(--marinho-escuro); }
.galeria__nav { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; color: #fff; pointer-events: none; }
.galeria__nav button { width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .94); color: var(--tinta); font-size: 24px; line-height: 1; cursor: pointer; pointer-events: auto; }
.galeria__contador { padding: 4px 10px; border-radius: 999px; background: rgba(6, 16, 32, .75); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.detalhe__info { display: grid; gap: 16px; align-content: start; padding: 22px 16px 110px; }
.detalhe__onde { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; font-weight: 600; color: var(--cinza); }
.detalhe__onde span { font-weight: 400; }
.detalhe__titulo { font-size: clamp(26px, 5.6vw, 34px); font-weight: 600; line-height: 1.08; letter-spacing: -.02em; color: var(--marinho); text-wrap: balance; }
.detalhe__preco { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.detalhe__de { font-size: 15px; color: var(--cinza); text-decoration: line-through; }
.tag { display: inline-block; padding: 5px 10px; border-radius: 4px; background: var(--papel-2); color: var(--marinho); font-size: 13px; font-weight: 600; }
.tag--alerta { background: #f6e7b8; color: #5d4200; }
.detalhe__texto p + p { margin-top: 10px; }
.detalhe h3 { margin-top: 6px; font-size: 18px; }
.lista-check { display: grid; gap: 6px; }
.lista-check li { position: relative; padding-left: 26px; font-size: 16px; }
.lista-check li::before { content: ""; position: absolute; left: 1px; top: 7px; width: 12px; height: 6px; border-left: 2px solid var(--marinho); border-bottom: 2px solid var(--marinho); transform: rotate(-45deg); }
.detalhe__acoes { display: grid; gap: 10px; margin-top: 8px; }
.detalhe__fonte { font-size: 13px; color: var(--cinza); }
@media (min-width: 900px) {
  .detalhe { width: min(1120px, 94vw); height: auto; max-height: 92dvh; border-radius: 10px; }
  .detalhe__corpo { grid-template-columns: 1.05fr .95fr; }
  .galeria { min-height: 100%; }
  .galeria__faixa { height: 100%; }
  .galeria__faixa > figure { height: 100%; }
  .galeria__faixa img { height: 100%; max-height: 92dvh; aspect-ratio: auto; }
  .detalhe__info { max-height: 92dvh; overflow-y: auto; padding: 36px 36px 40px; }
  .detalhe__acoes { grid-template-columns: 1fr 1fr; }
  .detalhe__acoes .botao--wa-texto { grid-column: 1 / -1; }
}

/* ---------- botão flutuante: some enquanto a busca está na tela ---------- */
.wa-flutuante { border-radius: 6px; transition: opacity .25s, transform .25s; }
html.na-busca .wa-flutuante { opacity: 0; transform: translateY(8px); pointer-events: none; }
