/* =====================================================================
   imovel.css — FICHA (imovel.html?codigo=…). Depende de tokens, base e
   componentes. Refeito em 13/10 (DIRECAO §R):
   - nada de numeração editorial nos blocos ("01 Ficha técnica" saiu);
   - toda moldura de foto é .foto (símbolo da Pulse enquanto carrega ou se falhar);
   - escala contida: h1 = --t-h1 (32 → 52 px), blocos com título de 22 → 28 px;
   - "todas as fotos" em miniaturas compactas, não mais um paredão de 28 fotos grandes.
   Blocos: .trilha · .galeria · .ficha__rosto · .contato-ficha · .tecnica ·
   .bloco (descrição, características, localização, simulador) · .fotos-todas ·
   .semelhantes · .nao-achado · .barra-ficha · .caderno
   ===================================================================== */

/* Sem JS a ficha não tem dados: só o <noscript> aparece (com contato e lista). */
html:not(.js) [data-galeria],
html:not(.js) [data-ficha-corpo],
html:not(.js) .trilha { display: none; }

/* =====================================================================
   Trilha (Início / Imóveis à venda / PUL-117)
   ===================================================================== */
.trilha { padding-top: var(--e-4); }
.trilha__lista {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--e-2);
  font-size: var(--t-small); line-height: 1.4; color: var(--tinta-2);
}
.trilha__lista li { display: inline-flex; align-items: center; gap: var(--e-2); min-width: 0; }
.trilha__lista li + li::before { content: "/"; color: var(--fio-forte); }
.trilha__lista a { display: inline-flex; align-items: center; min-height: 36px; color: var(--tinta-2); }
.trilha__lista a:hover { color: var(--tinta); }
.trilha__lista [aria-current] { color: var(--tinta); font-weight: 600; font-variant-numeric: lining-nums; }

/* =====================================================================
   Galeria de abertura
   Fotos do acervo são quase todas em pé (960×1280).
   Celular: faixa sangrando até a borda, uma foto por vez, contador "1 / N".
   Tablet: faixa de fotos em pé lado a lado.
   Desktop: mosaico com a foto 1 nas colunas 1–8 e três menores empilhadas nas
   9–12 (as escolhidas por galeria.js, marcadas com data-pos), numa altura que
   deixa o título à vista. As outras fotos da faixa ficam display:none (e, lazy,
   nem são baixadas).
   ===================================================================== */
.galeria { padding-top: var(--e-3); }
.galeria__moldura { position: relative; }
.galeria__lista {
  display: flex; gap: 6px;
  margin-inline: calc(-1 * var(--margem));
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scrollbar-width: none;
}
.galeria__lista::-webkit-scrollbar { display: none; }
.galeria__item {
  flex: 0 0 100%;
  height: min(118vw, 64svh);
  scroll-snap-align: center;
}
.galeria__botao { display: block; width: 100%; height: 100%; position: relative; cursor: zoom-in; }
.galeria__botao:disabled { cursor: default; }
.galeria__img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--d-cartao) var(--ease-entrada);
}
.galeria__botao:focus-visible { outline: 3px solid var(--branco); outline-offset: -7px; box-shadow: inset 0 0 0 8px var(--marinho); }

.galeria__contador {
  position: absolute; left: 0; bottom: 12px;
  padding: 4px 10px; border-radius: 0 var(--raio-controle) var(--raio-controle) 0;
  background: var(--veu); color: var(--branco);
  font-size: var(--t-small); font-weight: 600; line-height: 1.3;
  pointer-events: none;
}
.galeria__todas {
  position: absolute; right: 0; bottom: 12px;
  min-height: 40px; padding: 0 14px;
  background: var(--superficie); color: var(--tinta); border-color: var(--fio);
  font-size: var(--t-small);
}
.galeria__todas:hover { background: var(--papel); border-color: var(--tinta); }

@media (min-width: 640px) and (max-width: 1023px) {
  .galeria__lista { padding-inline: var(--margem); scroll-padding-inline: var(--margem); }
  .galeria__item { flex: 0 0 auto; height: min(58svh, 520px); aspect-ratio: 3 / 4; scroll-snap-align: start; border-radius: var(--raio-controle); }
  .galeria__lista[data-total="1"] .galeria__item { flex-basis: 100%; aspect-ratio: auto; }
  .galeria__contador { left: var(--margem); border-radius: var(--raio-controle); }
}

@media (min-width: 1024px) {
  .galeria { padding-top: var(--e-2); }
  .galeria__lista {
    margin-inline: 0; overflow: visible;
    display: grid; gap: 8px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(6, minmax(0, 1fr));
    height: clamp(420px, calc(100svh - var(--cabecalho-h) - 200px), 620px);
  }
  .galeria__item { display: none; height: auto; min-height: 0; flex: none; border-radius: var(--raio-controle); }
  .galeria__item[data-pos] { display: block; }
  .galeria__item[data-pos="1"] { grid-column: 1 / 9; grid-row: 1 / 7; }
  .galeria__item[data-pos="2"] { grid-column: 9 / 13; grid-row: 1 / 3; }
  .galeria__item[data-pos="3"] { grid-column: 9 / 13; grid-row: 3 / 5; }
  .galeria__item[data-pos="4"] { grid-column: 9 / 13; grid-row: 5 / 7; }
  /* Poucas fotos: a composição se ajusta ao que existe. */
  .galeria__lista[data-total="1"] .galeria__item[data-pos="1"] { grid-column: 1 / -1; }
  .galeria__lista[data-total="2"] .galeria__item[data-pos="2"] { grid-row: 1 / 7; }
  .galeria__lista[data-total="3"] .galeria__item[data-pos="2"] { grid-row: 1 / 4; }
  .galeria__lista[data-total="3"] .galeria__item[data-pos="3"] { grid-row: 4 / 7; }
  .galeria__contador { display: none; }
  .galeria__todas { right: 12px; bottom: 12px; min-height: 44px; padding: 0 18px; font-size: .9375rem; }
}
@media (hover: hover) and (pointer: fine) {
  .galeria__botao:not(:disabled):hover .galeria__img { transform: scale(1.025); }
}

/* =====================================================================
   Rosto, contato e corpo
   ===================================================================== */
.ficha__grade { padding-top: var(--e-6); padding-bottom: var(--secao); row-gap: 0; align-items: start; }

.ficha__codigo { display: flex; flex-wrap: wrap; gap: 0 .4em; margin-bottom: var(--e-2); font-variant-numeric: lining-nums; }
.ficha__codigo .rotulo--laterita { color: var(--laterita); }
.ficha__titulo { font-size: var(--t-h1); line-height: 1.08; letter-spacing: -0.018em; max-width: 22ch; overflow-wrap: anywhere; }
/* Com nome próprio ("Casa Leal" no h1), a linha de baixo diz o tipo e o lugar. */
.ficha__fina {
  margin-top: var(--e-3);
  font-family: var(--f-sans); font-weight: 500;
  font-size: 1.0625rem; line-height: 1.4; color: var(--tinta-2);
  max-width: 48ch; overflow-wrap: anywhere;
}
.ficha__lugar {
  margin-top: var(--e-3);
  display: inline-flex; align-items: center; gap: .45em;
  font-size: .9375rem; font-weight: 500; color: var(--tinta);
}
.ficha__lugar::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; flex: none;
  border: 2px solid var(--marinho);
}

/* ---------- Cartão de preço e contato ---------- */
.contato-ficha {
  margin-top: var(--e-6);
  background: var(--superficie);
  border: 1px solid var(--fio); border-radius: var(--raio-painel);
  padding: var(--e-5);
  display: grid; gap: var(--e-5);
}
.contato-ficha__rotulo { font-size: var(--t-small); font-weight: 600; color: var(--tinta-2); }
.contato-ficha__rotulo .rotulo--laterita { color: var(--laterita); }
.contato-ficha__valor {
  margin-top: 2px;
  font-family: var(--f-sans); font-size: var(--t-dado); font-weight: 600; line-height: 1.1;
  font-variant-numeric: lining-nums proportional-nums; letter-spacing: -0.015em;
  overflow-wrap: anywhere;
}
.contato-ficha__valor--consulta { font-size: var(--t-h3); font-weight: 600; }
.contato-ficha__extras { margin-top: var(--e-3); display: grid; font-size: var(--t-small); }
.contato-ficha__extras div {
  display: flex; justify-content: space-between; gap: var(--e-4);
  padding-block: 8px; border-top: 1px solid var(--fio);
}
.contato-ficha__extras dt { color: var(--tinta-2); }
.contato-ficha__extras dd { font-weight: 600; font-variant-numeric: lining-nums proportional-nums; text-align: right; }
.contato-ficha__extras:empty { display: none; }
.contato-ficha__acoes { display: grid; gap: var(--e-2); }
.contato-ficha__linha {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0 var(--e-4);
  margin-top: var(--e-1);
}
.contato-ficha__mini {
  display: inline-flex; align-items: center; gap: .45em; min-height: 44px;
  font-size: .9375rem; font-weight: 600; color: var(--marinho);
  text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .22em;
  transition: text-decoration-color var(--d-link) linear;
}
.contato-ficha__mini:hover { text-decoration-color: currentColor; }
.contato-ficha__mini .num { font-weight: 500; color: var(--tinta); }
.contato-ficha__aviso { font-size: var(--t-small); font-weight: 600; color: var(--marinho); overflow-wrap: anywhere; }
.contato-ficha__aviso:empty { display: none; }
.contato-ficha__pe {
  display: grid; gap: 2px;
  padding-top: var(--e-4); border-top: 1px solid var(--fio);
  font-size: var(--t-small); line-height: 1.45; color: var(--tinta-2);
}
.contato-ficha__pe strong { color: var(--tinta); font-weight: 600; }
/* Enquanto o JSON chega: altura reservada e preço neutro ("R$ —"), sem salto de layout. */
.contato-ficha--carregando { min-height: 300px; }
.contato-ficha--carregando .contato-ficha__valor { color: var(--fio-forte); }
.contato-ficha--carregando .contato-ficha__pe:empty { display: none; }

/* ---------- Dados-chave ---------- */
.ficha__dados { margin-top: var(--e-8); }
.ficha__dados--carregando { min-height: 176px; border-top: 1px solid var(--tinta); }
.tecnica {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--gutter);
  border-top: 1px solid var(--tinta);
}
.tecnica__item {
  display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 2px;
  padding-block: var(--e-4); border-bottom: 1px solid var(--fio); min-width: 0;
}
.tecnica__rotulo { font-size: var(--t-small); color: var(--tinta-2); line-height: 1.35; }
.tecnica__valor { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .25em; }
.tecnica__valor .dado { font-size: clamp(1.375rem, 1.2rem + .7vw, 1.875rem); font-weight: 500; font-variant-numeric: lining-nums proportional-nums; letter-spacing: -0.01em; }
.tecnica__unidade { font-size: var(--t-small); color: var(--tinta-2); font-weight: 500; }
.dado--texto .dado { font-size: 1.125rem; line-height: 1.3; }
@media (min-width: 640px) { .tecnica { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .tecnica { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- Blocos do corpo ---------- */
.ficha__conteudo { margin-top: var(--e-4); }
.bloco {
  padding-block: var(--e-8);
  border-bottom: 1px solid var(--fio);
  min-width: 0;
}
.bloco:last-child { border-bottom: 0; padding-bottom: 0; }
.bloco__titulo {
  font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); line-height: 1.2; letter-spacing: -0.01em;
  margin-bottom: var(--e-5);
}

@media (min-width: 1024px) {
  .ficha__grade { padding-top: var(--e-8); }
  .ficha__rosto { grid-column: 1 / 9; grid-row: 1; }
  .ficha__dados { grid-column: 1 / 9; grid-row: 2; }
  .ficha__conteudo { grid-column: 1 / 9; grid-row: 3; }
  .contato-ficha {
    grid-column: 9 / 13; grid-row: 1 / 4; align-self: start;
    margin-top: 0; padding: var(--e-6);
    position: sticky; top: calc(var(--cabecalho-h) + var(--e-4));
  }
  .bloco { padding-block: var(--e-10); }
}
@media (min-width: 1280px) {
  .ficha__rosto, .ficha__dados, .ficha__conteudo { grid-column: 1 / 8; }
  .contato-ficha { grid-column: 9 / 13; }
}

/* ---------- Descrição ---------- */
.descricao { overflow-wrap: anywhere; line-height: 1.75; }
.descricao li + li { margin-top: 0; }
.descricao__lead { font-size: var(--t-lead); line-height: 1.5; }
.descricao__abre { font-style: italic; font-size: var(--t-lead); line-height: 1.35; color: var(--tinta-2); }
/* Recolhida por LINHAS INTEIRAS (8 × 1.75em); a máscara apaga a última, nada fica cortado ao meio. */
.descricao--recolhida {
  max-height: calc(1.75em * 8); overflow: hidden;
  -webkit-mask-image: linear-gradient(#000 60%, transparent); mask-image: linear-gradient(#000 60%, transparent);
}
.descricao__mais { margin-top: var(--e-3); }
.descricao__mais::after { content: "↓"; }
.descricao__mais[aria-expanded="true"]::after { content: "↑"; }

/* ---------- Características ---------- */
/* Vídeos do imóvel (30/10/2026): a largura da coluna, no fundo da faixa de foto. */
.video-imovel { display: block; width: 100%; max-height: 80vh; background: var(--papel-2); border-radius: 4px; }
.video-imovel + .video-imovel { margin-top: var(--gutter); }
.caracteristicas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--gutter); }
.caracteristicas li { padding-block: 10px; border-top: 1px solid var(--fio); font-size: .9375rem; line-height: 1.4; }
@media (max-width: 359px) { .caracteristicas { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Localização ---------- */
.local { display: grid; gap: 2px; }
.local__linha { font-family: var(--f-serifa); font-size: var(--t-h3); line-height: 1.3; overflow-wrap: anywhere; }
.local__cidade { font-size: .9375rem; font-weight: 500; color: var(--tinta-2); }
.local:has(> :only-child) .local__cidade { font-family: var(--f-serifa); font-size: var(--t-h3); font-weight: 400; color: var(--tinta); }
.local__nota { margin-top: var(--e-3); font-size: var(--t-small); color: var(--tinta-2); }
.local__mapa { margin-top: var(--e-2); }

/* ---------- Simulador ---------- */
.simulador__intro { max-width: 56ch; color: var(--tinta-2); }
.simulador__campos {
  margin-top: var(--e-5);
  display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-4) var(--gutter);
}
.simulador__campos .campo__entrada { font-variant-numeric: lining-nums proportional-nums; }
.simulador__campos .campo__rotulo .secundario { font-weight: 500; }
@media (min-width: 480px) { .simulador__campos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.simulador__resultado { margin-top: var(--e-6); }
.simulador__financiado { max-width: 60ch; font-size: .9375rem; }
.simulador__financiado strong { font-weight: 600; }
.simulador__erro { font-weight: 600; color: var(--laterita); }
.simulador__tabelas {
  margin-top: var(--e-4);
  display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-4) var(--gutter);
}
@media (min-width: 640px) { .simulador__tabelas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.simulador__tabela {
  background: var(--superficie); border: 1px solid var(--fio); border-radius: var(--raio-painel);
  padding: var(--e-2) var(--e-4) var(--e-1);
}
.simulador__nome { display: grid; gap: 0; padding-block: var(--e-2); }
.simulador__nome .rotulo { color: var(--marinho); }
.simulador__nome .legenda { font-size: .8125rem; }
.simulador__tabela dd {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--e-4);
  padding-block: 9px; border-top: 1px solid var(--fio);
  font-size: var(--t-small);
}
.simulador__val { font-size: 1rem; font-weight: 600; text-align: right; }
.simulador__tabela dd:first-of-type .simulador__val { font-size: var(--t-preco); }

.simulador__grafico { margin-top: var(--e-6); }
.simulador__grafico svg { width: 100%; height: 110px; overflow: visible; }
.simulador__chave { display: flex; flex-wrap: wrap; gap: var(--e-1) var(--e-6); margin-bottom: var(--e-2); color: var(--tinta-2); }
.simulador__chave span { display: inline-flex; align-items: center; gap: 8px; }
.simulador__chave-sac::before, .simulador__chave-price::before { content: ""; width: 20px; border-top: 2px solid var(--tinta); }
.simulador__chave-price::before { border-top-style: dashed; border-color: var(--marinho); }
.simulador__chave-eixo { margin-left: auto; }
.simulador__eixo { stroke: var(--fio-forte); stroke-width: 1; }
.simulador__linha-sac { fill: none; stroke: var(--tinta); stroke-width: 2; }
.simulador__linha-price { stroke: var(--marinho); stroke-width: 2; stroke-dasharray: 6 4; }
.simulador__grafico .legenda { margin-top: var(--e-2); max-width: 64ch; }
.simulador__aviso { margin-top: var(--e-5); max-width: 64ch; }
.simulador__whats { margin-top: var(--e-2); }

/* =====================================================================
   Todas as fotos: miniaturas compactas (abrem o caderno)
   ===================================================================== */
.fotos-todas { border-top: 1px solid var(--fio); }
.fotos-todas__lista {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px;
}
@media (min-width: 640px) { .fotos-todas__lista { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; } }
@media (min-width: 1024px) { .fotos-todas__lista { grid-template-columns: repeat(10, minmax(0, 1fr)); } }
.fotos-todas__botao { display: block; width: 100%; aspect-ratio: 3 / 4; border-radius: 3px; cursor: zoom-in; }
.fotos-todas__botao img { transition: transform var(--d-cartao) var(--ease-entrada); }
.fotos-todas__botao:focus-visible { outline: 3px solid var(--marinho); outline-offset: 2px; }
.fotos-todas__mais { margin-top: var(--e-3); }
@media (hover: hover) and (pointer: fine) {
  .fotos-todas__botao:hover img { transform: scale(1.05); }
}
@media (max-width: 479px) {
  .fotos-todas .cabeca__acao { display: none; } /* no celular o toque numa miniatura já abre a tela cheia */
}

/* =====================================================================
   Semelhantes
   ===================================================================== */
.semelhantes [data-semelhantes-faixa] { font-variant-numeric: lining-nums proportional-nums; }

/* =====================================================================
   Não encontrado (e aviso sem JavaScript)
   ===================================================================== */
.nao-achado__texto { max-width: 44rem; }
.nao-achado__titulo { font-size: var(--t-h1); line-height: 1.1; letter-spacing: -0.018em; max-width: 20ch; }
.nao-achado__lead { margin-top: var(--e-4); }
.nao-achado__busca {
  margin-top: var(--e-8); display: flex; align-items: flex-end; gap: var(--e-3); flex-wrap: wrap;
  background: var(--superficie); border: 1px solid var(--fio); border-radius: var(--raio-painel); padding: var(--e-4);
}
.nao-achado__campo { flex: 1 1 16rem; }
.nao-achado__busca .botao { flex: 0 0 auto; }
@media (max-width: 479px) { .nao-achado__busca .botao { flex: 1 1 100%; } }
.nao-achado__acoes { margin-top: var(--e-6); gap: var(--e-3) var(--e-6); }
.nao-achado__recentes { margin-top: var(--e-16); }
.nao-achado__recentes-titulo { font-size: var(--t-h2); margin-bottom: var(--respiro-titulo); }

/* =====================================================================
   Barra fixa do celular (WhatsApp 2/3 + Ligar 1/3)
   ===================================================================== */
.barra-ficha {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: grid; grid-template-columns: 2fr 1fr; gap: var(--e-2);
  padding: var(--e-2) var(--margem) calc(var(--e-2) + env(safe-area-inset-bottom));
  background: var(--papel); border-top: 1px solid var(--fio);
  transition: transform var(--d-painel-in) var(--ease-estado);
}
.barra-ficha .botao { padding-inline: 12px; white-space: nowrap; }
.barra-ficha--oculta { transform: translateY(110%); }
body.com-barra-ficha main { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
@media (min-width: 1024px) {
  .barra-ficha { display: none; }
  body.com-barra-ficha main { padding-bottom: 0; }
}

/* =====================================================================
   Caderno de fotos (<dialog> em tela cheia, marinho profundo)
   ===================================================================== */
html.caderno-aberto { overflow: hidden; }
.caderno {
  width: 100%; height: 100%; height: 100dvh; max-width: 100%; max-height: 100%;
  margin: 0; inset: 0;
  background: var(--noite); color: var(--branco);
  --fio: var(--fio-noite); --tinta-2: var(--noite-2);
  overflow: hidden; overscroll-behavior: contain;
}
.caderno[open] {
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto; grid-template-columns: minmax(0, 1fr);
  animation: caderno-entra var(--d-painel-in) var(--ease-entrada);
}
.caderno.caderno--saindo { animation: caderno-sai var(--d-painel-out) var(--ease-saida) forwards; }
.caderno::backdrop { background: var(--noite); }
@keyframes caderno-entra { from { opacity: 0; } }
@keyframes caderno-sai { to { opacity: 0; } }
.caderno :focus-visible { outline-color: var(--azul-claro); }
.caderno ::selection { background: var(--azul-claro); color: var(--noite); }

.caderno__topo {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--e-4);
  min-height: var(--cabecalho-h); padding-inline: var(--margem);
  border-bottom: 1px solid var(--fio-noite);
}
.caderno__legenda {
  font-family: var(--f-serifa); font-style: italic; font-size: var(--t-small); line-height: 1.3; color: var(--noite-2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.caderno__contador { font-size: 1.125rem; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums lining-nums; }
.caderno__fechar { min-height: var(--alvo); min-width: var(--alvo); padding: 0 14px; margin-right: -14px; font-weight: 600; }

.caderno__palco { position: relative; min-height: 0; min-width: 0; }
.caderno__topo, .caderno__pe { min-width: 0; }
.caderno__trilho {
  display: flex; height: 100%;
  overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scrollbar-width: none;
}
.caderno__trilho::-webkit-scrollbar { display: none; }
.caderno__slide {
  flex: 0 0 100%; height: 100%;
  scroll-snap-align: center; scroll-snap-stop: always;
  display: grid; place-items: center;
  padding: var(--e-2) 0;
  background: url("../marca/simbolo-branco.svg") center / 56px no-repeat;
}
.caderno__slide img { width: 100%; height: 100%; object-fit: contain; }
.caderno__img--entra { animation: caderno-foto 240ms var(--ease-estado); }
@keyframes caderno-foto { from { opacity: 0; } }

.caderno__seta {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: var(--alvo); height: var(--alvo);
  display: grid; place-items: center;
  background: var(--veu); color: var(--branco); border-radius: var(--raio-controle);
  font-size: 1.25rem;
  transition: background-color var(--d-micro) linear, opacity var(--d-micro) linear;
}
.caderno__seta:hover { background: var(--marinho); }
.caderno__seta:disabled { opacity: 0; pointer-events: none; }
.caderno__seta--ant { left: var(--e-2); }
.caderno__seta--prox { right: var(--e-2); }
@media (min-width: 1024px) {
  .caderno__seta--ant { left: var(--margem); }
  .caderno__seta--prox { right: var(--margem); }
  .caderno__slide { padding: var(--e-4) calc(var(--margem) + var(--alvo) + var(--e-4)); background-size: 72px; }
}

.caderno__pe {
  display: grid; gap: var(--e-3);
  padding: var(--e-3) var(--margem) calc(var(--e-3) + env(safe-area-inset-bottom));
  border-top: 1px solid var(--fio-noite);
}
.caderno__filme {
  display: flex; gap: 4px; overflow-x: auto; scrollbar-width: thin;
  scrollbar-color: var(--fio-noite) transparent;
  padding: 4px 2px;
}
.caderno__filme li { flex: 0 0 auto; }
.caderno__mini {
  display: block; width: 42px; aspect-ratio: 3 / 4; background: #0C2557;
  opacity: .55; transition: opacity var(--d-micro) linear;
  outline-offset: 2px; border-radius: 2px; overflow: hidden;
}
.caderno__mini img { width: 100%; height: 100%; object-fit: cover; }
.caderno__mini:hover { opacity: .85; }
.caderno__mini[aria-current="true"] { opacity: 1; outline: 2px solid var(--azul-claro); }
.caderno__whats { justify-self: stretch; }
@media (min-width: 640px) {
  .caderno__pe { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--e-6); }
  .caderno__mini { width: 48px; }
  .caderno__legenda { font-size: 1rem; }
}

/* ---------- Movimento reduzido: troca seca ---------- */
@media (prefers-reduced-motion: reduce) {
  .caderno[open], .caderno.caderno--saindo, .caderno__img--entra { animation: none; }
  .galeria__img, .fotos-todas__botao img { transition: none; }
}
