/* HAC-593: /livros/ (PT) e /en/books/ (EN) — seção de livros e audiolivros.
   Escopo NEWS: listas de tendências, lançamentos e notícias de audiolivros.
   CSS em arquivo próprio (CSP live: style-src 'self', nada de inline).
   Press Sheet: rankings como tabela de jornal — posição em Bodoni itálico no acento,
   linhas separadas por fio tracejado, nada de cartões. Tokens do /style.css. */

.lista-pagina .secao-sub {
  margin: 0 0 6px;
  max-width: 68ch;
  color: var(--tinta-2);
}

/* "Mais vendidos nos EUA" + linha de serviço (fonte e semana) em mono */
.lista-pagina section > h3 {
  margin: 30px 0 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--fio-forte);
  font: 600 clamp(1.3rem, 2vw, 1.55rem)/1.15 var(--serif);
}

.livros-semana {
  display: block;
  margin: 6px 0 0;
  font: 500 .72rem/1.4 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--tinta-3);
}

.grade-livros {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr));
  column-gap: 44px;
}

.item-livro {
  min-width: 0;
  padding: 16px 0 18px;
  border-bottom: 1px dashed var(--fio);
}

/* item de ranking: número na coluna da esquerda, texto na da direita */
.item-livro:has(.livro-pos) {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr);
  column-gap: 16px;
  align-content: start;
}

.item-livro:has(.livro-pos) > * { grid-column: 2; }

.item-livro .livro-pos {
  grid-column: 1;
  grid-row: 1 / span 5;
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  font: italic 600 2.4rem/.9 var(--serif);
  font-variation-settings: "opsz" 96;
  font-variant-numeric: lining-nums;
  color: var(--acento);
  background: none;
  border-radius: 0;
}

.item-livro h3,
.card-livro h3 {
  margin: 0 0 4px;
  font: 600 1.25rem/1.2 var(--serif);
  letter-spacing: -.004em;
}

.livro-meta {
  margin: 0 0 8px;
  font: 500 .72rem/1.45 var(--mono);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--tinta-3);
}

.item-livro .texto { margin: 0; font-size: .98rem; line-height: 1.55; color: var(--tinta-2); }
.item-livro .texto a { color: var(--tinta); text-decoration-color: var(--acento); }

/* lançamentos: data em mono no acento, como o chapéu das páginas de título */
.livro-data {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px;
  font: 600 .72rem/1 var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--acento);
}

.livro-data::before { content: ""; width: 22px; height: 3px; flex: none; background: var(--acento); }

.item-livro .livro-ficha {
  display: inline-block;
  margin: 10px 0 0;
  justify-self: start;
  font: 600 .74rem/1.2 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--tinta);
  border-bottom: 1px solid var(--acento);
  padding-bottom: 3px;
}

.item-livro .livro-ficha:hover { color: var(--acento); }

.livros-fontes {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--fio);
  columns: 2 22rem;
  column-gap: 44px;
}

.livros-fontes li {
  margin: 0;
  padding: 9px 0;
  border-bottom: 1px dashed var(--fio);
  break-inside: avoid;
}

.livros-fontes a {
  font: 500 .78rem/1.35 var(--mono);
  letter-spacing: .04em;
  text-decoration-color: var(--acento);
}

.livros-verificado {
  margin: 14px 0 0;
  font: 400 .74rem/1.45 var(--mono);
  letter-spacing: .03em;
  color: var(--tinta-3);
}

@media (max-width: 760px) {
  .item-livro:has(.livro-pos) { grid-template-columns: 2.6rem minmax(0, 1fr); column-gap: 12px; }
  .item-livro .livro-pos { font-size: 1.9rem; }
}

/* HAC-640: capa do livro hospedada no site (/img/livros/, img-src 'self'); a capa NÃO é link (escopo NEWS).
   Sem capa -> sem-capa.svg, mesmo layout. Com capa o item vira capa | corpo, e a posição do ranking
   (dentro do .livro-corpo) fica em cima do título. Vem depois das regras do ranking para valer sobre elas. */
.livro-capa {
  display: block;
  width: 96px;
  height: auto;
  border: 1px solid var(--fio-forte);
}

.item-livro:has(> .livro-capa) {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 18px;
  align-items: start;
}

.item-livro:has(> .livro-capa) > .livro-capa { grid-column: 1; grid-row: 1; }
.item-livro:has(> .livro-capa) > .livro-corpo { grid-column: 2; grid-row: 1; min-width: 0; }
.item-livro .livro-corpo .livro-pos { margin: 0 0 6px; font-size: 1.9rem; }

/* celular: capa em cima do texto (HAC-640) */
@media (max-width: 640px) {
  .item-livro:has(> .livro-capa) { grid-template-columns: 1fr; row-gap: 12px; }
  .item-livro:has(> .livro-capa) > .livro-corpo { grid-column: 1; grid-row: 2; }
  .livro-capa { width: 88px; }
}

/* HAC-1496: botões de afiliado "Comprar na Amazon" / "Ouvir no Audible" — placeholders de
   monetização (tag opcional no config.json; vazio mantém links comuns). Links
   rel="sponsored noopener" + aviso curto na página (regra de /divulgacao/). */
.livro-botoes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 0;
}

.livro-botao {
  display: inline-block;
  padding: 6px 12px;
  border: 1px solid var(--fio-forte);
  border-radius: 6px;
  font: 600 .78rem/1.3 var(--sans, sans-serif);
  letter-spacing: .01em;
  color: var(--tinta-1, #e8e6e3);
  background: transparent;
  text-decoration: none;
  white-space: nowrap;
}

.livro-botao:hover, .livro-botao:focus-visible {
  border-color: var(--acento, #8fd0a8);
  color: var(--acento, #8fd0a8);
}

.livro-afiliado-nota {
  margin: 10px 0 0;
  font: 400 .72rem/1.5 var(--mono, monospace);
  letter-spacing: .02em;
  color: var(--tinta-3, #9a938b);
}
