/* ============================================================
   Diário Latino — folha de estilos
   ============================================================ */

:root {
  --papel: #f4f3ef;
  --texto: #1f1f1c;
  --verde: #1f4d3d;
  --terracota: #a1503a;
  --linha: #ddd9d0;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--papel);
  color: var(--texto);
  font-family: 'Source Sans 3', sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { font-family: inherit; }

.wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ===== BARRA SUPERIOR (estilo clássico de jornal) ===== */
.topbar {
  background: var(--terracota);
  color: var(--papel);
  font-size: 11.5px;
  letter-spacing: 0.03em;
}
.topbar .wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 7px;
  padding-bottom: 7px;
}
.topbar .edicao {
  opacity: 0.85;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.topbar-direita {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* ===== SELETOR DE IDIOMA ===== */
.seletor-idioma {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.botao-idioma {
  background: none;
  border: none;
  color: var(--papel);
  opacity: 0.6;
  cursor: pointer;
  font: inherit;
  padding: 2px 1px;
  transition: opacity 0.15s ease;
}
.botao-idioma:hover { opacity: 0.9; }
.botao-idioma.ativo { opacity: 1; border-bottom: 1.5px solid currentColor; }
.separador-idioma { opacity: 0.35; }

/* ===== MASTHEAD (nameplate clássico, à la NYT/WSJ/The Economist) ===== */
.masthead {
  text-align: center;
  padding: 26px 20px 22px;
}
.masthead .kicker {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--verde);
  margin-bottom: -35px;
}
.masthead-titulo,
.masthead-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}
.masthead-logo {
  display: block;
  height: 78px;
  width: auto;
}
.masthead-logo--home {
  transform: translateY(7px);
}
.masthead h1 {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: clamp(46px, 9vw, 88px);
  letter-spacing: -0.01em;
  color: var(--terracota);
  line-height: 1;
}
.masthead .tagline {
  margin-top: -30px;
  font-size: 13px;
  color: #55554e;
  font-style: italic;
  letter-spacing: 0.01em;
}
.regua-dupla {
  max-width: 1180px;
  margin: 0 auto;
  height: 5px;
  border-top: 3px solid var(--texto);
  border-bottom: 1px solid var(--texto);
}

/* ===== NAV DE CATEGORIAS (filtro dinâmico) ===== */
nav.categorias {
  border-bottom: 1px solid var(--linha);
  background: var(--papel);
  position: sticky;
  top: 0;
  z-index: 30;
  box-shadow: 0 1px 0 var(--linha);
}
nav.categorias .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: nowrap;
}
nav.categorias ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
  min-width: 0;
  flex: 1 1 auto;
}
nav.categorias ul::-webkit-scrollbar { display: none; }
/* quando a lista de categorias é o único filho da barra (página de
   matéria, sem a busca ao lado), centraliza em vez de grudar na esquerda */
nav.categorias .wrap > ul:only-child {
  flex: 0 1 auto;
  margin: 0 auto;
}
nav.categorias li { position: relative; }
nav.categorias li + li::before {
  content: "";
  position: absolute;
  left: 0; top: 30%; bottom: 30%;
  border-left: 1px solid var(--linha);
}
nav.categorias a,
nav.categorias button.categoria-link {
  position: relative;
  display: block;
  padding: 14px 18px;
  font: inherit;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--texto);
  white-space: nowrap;
  transition: color 0.15s ease;
}
nav.categorias button.categoria-link::after {
  content: "";
  position: absolute;
  left: 18px; right: 18px; bottom: 8px;
  height: 2px;
  background: var(--terracota);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.22s ease;
}
nav.categorias a:hover,
nav.categorias button.categoria-link:hover { color: var(--terracota); }
nav.categorias button.categoria-link:hover::after { transform: scaleX(1); }
nav.categorias button.categoria-link.ativo { color: var(--terracota); }
nav.categorias button.categoria-link.ativo::after { transform: scaleX(1); }

/* ===== BUSCA + FILTRO DE PAÍS (unificados numa só pílula) ===== */
.busca-nav {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  padding: 8px 0;
}

.busca-caixa {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--linha);
  border-radius: 999px;
  padding: 6px 6px 6px 14px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.busca-caixa .icone-busca {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  stroke: #8a8a80;
  fill: none;
  transition: stroke 0.2s ease;
}
.busca-caixa:focus-within {
  border-color: var(--terracota);
  box-shadow: 0 0 0 3px rgba(161, 80, 58, 0.1);
}
.busca-caixa:focus-within .icone-busca { stroke: var(--terracota); }
.busca-caixa input {
  font: inherit;
  font-size: 12.5px;
  border: none;
  outline: none;
  background: none;
  color: var(--texto);
  width: 150px;
  transition: width 0.2s ease;
}
.busca-caixa input::placeholder { color: #a3a399; }
.busca-caixa:focus-within input { width: 190px; }

/* botão de filtro (ícone), embutido dentro da própria caixa de busca */
.filtro-pais-dropdown { position: relative; flex-shrink: 0; }
.filtro-pais-botao {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background: none;
  color: #8a8a80;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.icone-filtro {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  transition: transform 0.2s ease;
}
.filtro-pais-botao:hover { background: #f2f1ec; color: var(--terracota); }
.filtro-pais-botao.ativo,
.filtro-pais-dropdown.aberto .filtro-pais-botao {
  background: var(--terracota);
  color: var(--papel);
}
.filtro-pais-dropdown.aberto .icone-filtro { transform: scale(0.92); }

.filtro-pais-painel {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  min-width: 240px;
  max-height: 380px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--linha);
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(31, 31, 28, 0.12);
  padding: 8px;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity 0.16s ease, transform 0.16s ease;
  z-index: 40;
}
.filtro-pais-dropdown.aberto .filtro-pais-painel {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.filtro-pais-item,
.filtro-pais-regiao {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: 7px;
  padding: 8px 10px;
  color: var(--texto);
  transition: background 0.12s ease, color 0.12s ease;
}
.filtro-pais-item--todos {
  font-weight: 700;
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--verde);
  border-bottom: 1px solid var(--linha);
  border-radius: 0;
  margin-bottom: 6px;
  padding-bottom: 10px;
}
.filtro-pais-grupo { padding-top: 4px; }
.filtro-pais-regiao {
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8a8a80;
}
.filtro-pais-regiao:hover { color: var(--terracota); background: #f8f7f3; }
.filtro-pais-grupo .filtro-pais-item {
  font-size: 13.5px;
  padding-left: 20px;
}
.filtro-pais-item:hover { background: #f8f7f3; color: var(--terracota); }
.filtro-pais-item.ativo,
.filtro-pais-regiao.ativo {
  background: var(--terracota);
  color: var(--papel);
}

@media (max-width: 860px) {
  .busca-caixa input { width: 90px; }
  .busca-caixa:focus-within input { width: 120px; }
  .filtro-pais-painel { left: auto; right: 0; }
}
@media (max-width: 600px) {
  .busca-caixa input { width: 64px; }
  .busca-caixa:focus-within input { width: 84px; }
}

/* ===== SELOS (categoria · país) ===== */
.selo {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--terracota);
  border: 1px solid var(--terracota);
  border-radius: 999px;
  padding: 3px 10px;
  margin-bottom: 10px;
}
.selo-ia-inline { font-size: 11px; color: #8a8a80; font-style: italic; }

/* ===== CARDS CLICÁVEIS (link esticado — só a área do card leva à matéria) ===== */
.cartao-clicavel,
article.coluna,
.item-ultima {
  position: relative;
}
.link-esticado::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
/* imagens têm o próprio link, sempre por cima do overlay esticado */
.cartao-clicavel figure a,
article.coluna > a,
.item-ultima-foto,
.leia-tambem-foto {
  position: relative;
  z-index: 2;
}

/* ===== ESTADO VAZIO / SEM RESULTADOS ===== */
.sem-resultados {
  padding: 50px 0;
  text-align: center;
  color: #6f6f66;
  font-style: italic;
}

/* ===== DESTAQUE PRINCIPAL ===== */
.destaque {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 44px;
  padding: 40px 0 36px;
  border-bottom: 1px solid var(--linha);
}
.destaque figure { margin: 0 0 16px; }
.destaque img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  filter: grayscale(15%) contrast(1.05);
}
.credito-foto {
  font-size: 10.5px;
  color: #8a8a80;
  margin-top: 6px;
  line-height: 1.5;
}
.credito-foto a { border-bottom: 1px dotted #8a8a80; position: relative; z-index: 2; }

.destaque h2 {
  font-family: 'Playfair Display', serif;
  font-size: 34px;
  line-height: 1.15;
  font-weight: 700;
  margin: 0 0 12px;
}
.destaque h2 a:hover { color: var(--terracota); }
.destaque .lead {
  font-size: 17px;
  line-height: 1.5;
  color: #3d3d38;
  margin: 0 0 14px;
}
.destaque .meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 11.5px;
  color: #8a8a80;
}
.destaque .meta .link-fonte { position: relative; z-index: 2; }

/* ===== LATERAL — ÚLTIMAS ===== */
.lateral-ultimas {
  border-left: 1px solid var(--linha);
  padding-left: 30px;
}
.lateral-ultimas h3 {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--terracota);
  border-bottom: 2px solid var(--terracota);
  padding-bottom: 8px;
  margin: 0 0 14px;
}
.item-ultima {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--linha);
}
.item-ultima:last-child { border-bottom: none; }
.item-ultima-foto {
  flex-shrink: 0;
  display: block;
  width: 64px;
  height: 64px;
}
.item-ultima-foto img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  display: block;
  filter: grayscale(15%) contrast(1.05);
}
.item-ultima-corpo { flex: 1; min-width: 0; }
.item-ultima .selo { font-size: 9px; padding: 2px 8px; margin-bottom: 6px; }
.item-ultima h4 {
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  line-height: 1.28;
  font-weight: 600;
  margin: 0;
  color: var(--texto);
}
.item-ultima h4 a { position: relative; z-index: 2; }
.item-ultima:hover h4 { color: var(--verde); }
.item-ultima .hora { font-size: 10.5px; color: #8a8a80; margin-top: 4px; }

/* ===== GRADE (12 matérias, 3 colunas × 4 linhas) ===== */
.grade {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px 28px;
  padding: 38px 0;
  border-bottom: 1px solid var(--linha);
}
article.coluna { display: flex; flex-direction: column; }
article.coluna img {
  width: 100%;
  height: 168px;
  object-fit: cover;
  margin-bottom: 12px;
  filter: grayscale(15%) contrast(1.05);
  transition: filter 0.2s ease;
}
article.coluna:hover img { filter: grayscale(0%) contrast(1.05); }
article.coluna h3 {
  font-family: 'Playfair Display', serif;
  font-size: 19px;
  line-height: 1.25;
  font-weight: 700;
  margin: 0 0 8px;
}
article.coluna h3 a { position: relative; z-index: 2; }
article.coluna:hover h3 { color: var(--terracota); }
article.coluna .dek {
  font-size: 13.5px;
  line-height: 1.5;
  color: #55554e;
  margin: 0 0 10px;
  flex: 1;
}
article.coluna .meta { font-size: 10.5px; color: #8a8a80; }

/* ===== MOSAICO (opção B) — grande + linha + 3 sem foto + linha + grande ===== */
.mosaico {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  padding: 38px 0;
  border-bottom: 1px solid var(--linha);
}
.mosaico-coluna { position: relative; padding: 0 28px; }
.mosaico-coluna:first-child { padding-left: 0; }
.mosaico-coluna:last-child { padding-right: 0; }
.mosaico-meio,
.mosaico-coluna:last-child { border-left: 1px solid var(--linha); }

.mosaico-principal img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  margin-bottom: 14px;
  filter: grayscale(15%) contrast(1.05);
  transition: filter 0.2s ease;
}
.mosaico-principal:hover img { filter: grayscale(0%) contrast(1.05); }
.mosaico-principal h3 {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 700;
  margin: 0 0 8px;
}
.mosaico-principal h3 a { position: relative; z-index: 2; }
.mosaico-principal:hover h3 { color: var(--terracota); }
.mosaico-principal .dek {
  font-size: 13.5px;
  line-height: 1.5;
  color: #55554e;
  margin: 0 0 10px;
}
.mosaico-principal .meta { font-size: 10.5px; color: #8a8a80; }

.mosaico-meio { display: flex; flex-direction: column; justify-content: space-between; }
.mosaico-item { padding: 14px 0; border-bottom: 1px solid var(--linha); position: relative; }
.mosaico-item:last-child { border-bottom: none; }
.mosaico-item .selo { font-size: 9px; padding: 2px 8px; margin-bottom: 6px; }
.mosaico-item h4 {
  font-family: 'Playfair Display', serif;
  font-size: 15.5px;
  line-height: 1.3;
  font-weight: 700;
  margin: 0;
  color: var(--texto);
}
.mosaico-item h4 a { position: relative; z-index: 2; }
.mosaico-item:hover h4 { color: var(--terracota); }
.mosaico-item .hora { font-size: 10.5px; color: #8a8a80; margin-top: 6px; }

@media (max-width: 860px) {
  .mosaico { grid-template-columns: 1fr; }
  .mosaico-coluna { padding: 24px 0 !important; border-left: none !important; border-top: 1px solid var(--linha); }
  .mosaico-coluna:first-child { border-top: none; }
}

/* ===== DIGEST (opção A) — lista compacta com foto, 5 linhas x 3, estilo "What's News" ===== */
.digest { padding: 38px 0; border-bottom: 1px solid var(--linha); }
.digest-grade {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 28px;
}
.digest-item {
  display: flex;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--linha);
  position: relative;
}
.digest-grade .digest-item:nth-last-child(-n+3) { border-bottom: none; }
.digest-grade .digest-item:nth-child(3n+2),
.digest-grade .digest-item:nth-child(3n) {
  padding-left: 24px;
  border-left: 1px solid var(--linha);
}
.digest-foto { flex-shrink: 0; display: block; width: 56px; height: 56px; position: relative; z-index: 2; }
.digest-foto img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  display: block;
  filter: grayscale(15%) contrast(1.05);
}
.digest-corpo { flex: 1; min-width: 0; }
.digest-corpo .selo { font-size: 9px; padding: 2px 8px; margin-bottom: 5px; }
.digest-corpo h4 {
  font-family: 'Playfair Display', serif;
  font-size: 13.5px;
  line-height: 1.28;
  font-weight: 700;
  margin: 0;
  color: var(--texto);
}
.digest-corpo h4 a { position: relative; z-index: 2; }
.digest-item:hover h4 { color: var(--terracota); }
.digest-corpo .hora { font-size: 10px; color: #8a8a80; margin-top: 4px; }

@media (max-width: 860px) {
  .digest-grade { grid-template-columns: repeat(2, 1fr); }
  .digest-grade .digest-item:nth-child(3n),
  .digest-grade .digest-item:nth-child(3n+2) { padding-left: 0; border-left: none; }
  .digest-grade .digest-item:nth-child(2n) { padding-left: 24px; border-left: 1px solid var(--linha); }
  .digest-grade .digest-item:nth-last-child(-n+3) { border-bottom: 1px solid var(--linha); }
  .digest-grade .digest-item:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 560px) {
  .digest-grade { grid-template-columns: 1fr; }
  .digest-grade .digest-item { padding-left: 0 !important; border-left: none !important; border-bottom: 1px solid var(--linha) !important; }
  .digest-grade .digest-item:last-child { border-bottom: none !important; }
}

/* ===== RADAR (mais notícias, sem foto) ===== */
.radar { padding: 30px 0 44px; }
.radar h3 {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--verde);
  margin: 0 0 16px;
}
.radar-lista {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px 40px;
}
.radar-item {
  display: block;
  padding: 9px 0;
  border-bottom: 1px solid var(--linha);
  font-size: 14px;
  line-height: 1.4;
  transition: color 0.15s ease;
}
.radar-item:hover { color: var(--terracota); }
.radar-item .pais {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-right: 8px;
}

/* ===== PAGINAÇÃO ===== */
.paginacao {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 20px 0 46px;
  border-top: 1px solid var(--linha);
}
.paginacao-botao {
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  border: 1px solid var(--linha);
  border-radius: 999px;
  background: #fff;
  padding: 9px 20px;
  color: var(--verde);
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.paginacao-botao:hover:not(:disabled) {
  border-color: var(--terracota);
  color: var(--terracota);
  background: #faf9f6;
}
.paginacao-botao:disabled {
  opacity: 0.35;
  cursor: default;
}
.paginacao-info {
  font-size: 12px;
  letter-spacing: 0.04em;
  color: #8a8a80;
  text-transform: uppercase;
}

/* ===== LEIA TAMBÉM (rodapé de cada matéria) ===== */
.leia-tambem {
  max-width: 760px;
  margin: 40px auto 0;
  padding: 26px 20px 56px;
  border-top: 4px double var(--terracota);
}
.leia-tambem h3 {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--verde);
  margin: 0 0 16px;
}
.leia-tambem-grade {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.leia-tambem-item { position: relative; }
.leia-tambem-item img {
  width: 100%;
  height: 110px;
  object-fit: cover;
  display: block;
  filter: grayscale(15%) contrast(1.05);
}
.leia-tambem-item a.leia-tambem-foto { display: block; margin-bottom: 8px; }
.leia-tambem-item .selo { font-size: 9px; padding: 2px 8px; }
.leia-tambem-item h4 {
  font-family: 'Playfair Display', serif;
  font-size: 15.5px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--texto);
  margin: 6px 0 0;
}
.leia-tambem-item h4 a { position: relative; z-index: 2; }
.leia-tambem-item:hover h4 { color: var(--terracota); }

@media (max-width: 860px) {
  .destaque { grid-template-columns: 1fr; gap: 30px; }
  .lateral-ultimas { border-left: none; border-top: 1px solid var(--linha); padding-left: 0; padding-top: 24px; }
  .grade { grid-template-columns: repeat(2, 1fr); }
  .radar-lista { grid-template-columns: 1fr; }
  .leia-tambem-grade { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .grade { grid-template-columns: 1fr; }
  .destaque h2 { font-size: 27px; }
}

/* ===== MATÉRIA — AÇÕES (compartilhar) ===== */
.acoes-materia {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin: 4px 0 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--linha);
  font-size: 12px;
  color: #6f6f66;
}
.acoes-materia .compartilhar-botoes { display: flex; gap: 10px; }
.acoes-materia button {
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: none;
  border: 1px solid var(--linha);
  padding: 6px 14px;
  cursor: pointer;
  color: var(--verde);
  transition: border-color 0.15s ease, color 0.15s ease;
}
.acoes-materia button:hover { border-color: var(--verde); color: var(--terracota); }

/* ===== VOLTAR AO TOPO ===== */
.voltar-topo {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--verde);
  color: var(--papel);
  border: none;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 30;
}
.voltar-topo.visivel { opacity: 0.9; pointer-events: auto; transform: translateY(0); }
.voltar-topo:hover { opacity: 1; background: var(--terracota); }

/* ===== RODAPÉ DO SITE ===== */
footer {
  background: var(--terracota);
  color: var(--papel);
  margin-top: 20px;
  padding: 34px 0 26px;
}
.grid-footer {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 30px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(244, 243, 239, 0.18);
}
footer h5 {
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  margin: 0 0 10px;
}
footer p { font-size: 12.5px; line-height: 1.6; color: rgba(244, 243, 239, 0.78); margin: 0; }
footer h6 {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(244, 243, 239, 0.6);
  margin: 0 0 10px;
}
footer ul { list-style: none; margin: 0; padding: 0; }
footer li {
  font-size: 12.5px;
  color: rgba(244, 243, 239, 0.85);
  padding: 4px 0;
  line-height: 1.5;
}
footer .baixo {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  justify-content: space-between;
  padding-top: 18px;
  font-size: 11px;
  color: rgba(244, 243, 239, 0.65);
}

/* Rodapé compacto usado nas páginas de matéria (só a linha "baixo") */
footer.rodape-compacto { padding: 16px 0; }
footer.rodape-compacto .baixo { font-size: 10px; padding-top: 0; }

@media (max-width: 860px) {
  .grid-footer { grid-template-columns: 1fr; gap: 22px; }
}

/* ===== IMPRESSÃO ===== */
@media print {
  .topbar, nav.categorias, footer, .voltar-topo, .acoes-materia, .leia-tambem { display: none !important; }
  body { background: #fff; }
  img { filter: none !important; }
}
