/*
Theme Name: Folha do Condomínio
Theme URI: https://folhadocondominio.com.br
Author: Folha do Condomínio
Description: Tema jornalístico da Folha do Condomínio — manchete, destaques, editorias, colunistas, acervo e espaços de anúncio.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: folha
*/

/* ─── Tema claro (padrão) ─── */
:root {
  --background: #ffffff;
  --foreground: #111111;
  --brand-green: #0b5d3b;
  --brand-green-dark: #084529;
  --brand-black: #111111;
  --brand-accent: #e8741e;
  --brand-red: #b3261e;
  --rule: #e0e0e0;
  --muted: #777777;
  --surface: #f7f7f6;
  --texto-suave: #525252;

  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans: "DM Sans", Arial, Helvetica, sans-serif;
}

/* ─── Tema noturno ─── */
html.dark {
  --background: #141412;
  --foreground: #e8e6e1;
  --brand-green: #19a06a;
  --brand-green-dark: #0f7a4e;
  --brand-black: #e8e6e1;
  --brand-accent: #f08040;
  --brand-red: #e05a52;
  --rule: #2a2a27;
  --muted: #8a8a84;
  --surface: #1c1c1a;
  --texto-suave: #b5b3ad;
}

/* ─── Base ─── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--background);
  color: var(--foreground);
  font-family: var(--sans);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  transition: background .2s ease, color .2s ease;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, figure, ul { margin: 0; }
ul { padding: 0; list-style: none; }
main { flex: 1; }
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

.container { max-width: 84rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 768px) { .container { padding: 0 2rem; } }
@media (min-width: 1280px) { .container { padding: 0 2.5rem; } }
.container-estreito { max-width: 48rem; margin: 0 auto; padding: 0 1rem; }

/* ─── Tipografia ─── */
.font-headline {
  font-family: var(--serif);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.05;
  color: var(--brand-black);
}
.kicker {
  display: inline-block;
  font-family: var(--sans);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-size: .7rem;
}
a.kicker:hover { text-decoration: underline; }
html.dark .kicker-editoria { color: var(--foreground) !important; }
.muted { color: var(--muted); }
.title-link:hover { color: var(--brand-green); }
.verde { color: var(--brand-green); }
.vermelho { color: var(--brand-red); }

/* ─── Cabeçalho ─── */
.site-header { border-bottom: 1px solid var(--rule); background: var(--background); }
.barra-topo { border-bottom: 1px solid var(--rule); }
.barra-topo .container {
  position: relative; display: flex; align-items: center; justify-content: space-between;
  padding-top: .5rem; padding-bottom: .5rem;
}
.redes { display: flex; align-items: center; gap: .75rem; color: color-mix(in srgb, var(--foreground) 60%, transparent); }
.redes a { transition: color .15s; }
.redes a:hover { color: var(--brand-green); }
.redes svg { display: block; }
.btn-newsletter {
  position: absolute; left: 50%; transform: translateX(-50%);
  display: none; align-items: center; gap: .375rem;
  border: 1px solid var(--rule); padding: .375rem 1rem;
  font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em;
  transition: color .15s, border-color .15s;
}
.btn-newsletter:hover { border-color: var(--brand-green); color: var(--brand-green); }
@media (min-width: 640px) { .btn-newsletter { display: inline-flex; } }
.botao-tema {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 999px;
  border: 1px solid var(--rule); background: none; color: var(--foreground); cursor: pointer;
  transition: color .15s, border-color .15s;
}
.botao-tema:hover { border-color: var(--brand-green); color: var(--brand-green); }
.botao-tema .icone-sol { display: none; }
html.dark .botao-tema .icone-sol { display: block; }
html.dark .botao-tema .icone-lua { display: none; }

.masthead { display: flex; justify-content: center; padding: 2rem 1rem 1rem; }
.masthead-data {
  text-align: center; padding-bottom: 1rem; font-size: .75rem; color: var(--muted);
  letter-spacing: .04em;
}
.masthead img { width: 100%; max-width: 420px; }
@media (min-width: 640px) { .masthead img { max-width: 558px; } }
@media (min-width: 1280px) { .masthead img { max-width: 640px; } }
html.dark .masthead img { filter: invert(1); }

.nav-editorias { border-top: 1px solid var(--rule); }
.nav-editorias .container {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
}
@media (max-width: 767px) {
  .nav-editorias .container { padding: .25rem .5rem; column-gap: .125rem; }
  .nav-editorias a, .nav-outros > button { padding: .5rem .4rem; letter-spacing: .04em; }
  .nav-editorias .sep, .nav-editorias .nav-inicio { display: none; }
  .nav-outros ul { left: auto; right: 0; transform: none; }
}
.nav-editorias a {
  white-space: nowrap; padding: .75rem;
  font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .1em;
  transition: color .15s;
}
.nav-editorias a.forte { font-weight: 600; }
.nav-editorias a:hover { color: var(--brand-green); }
.nav-editorias a.anuncie { color: var(--brand-green); font-weight: 600; }
.nav-editorias a.anuncie:hover { color: var(--brand-green-dark); }
.nav-editorias .sep { color: var(--rule); font-size: 1.125rem; font-weight: 300; user-select: none; }

/* Menu "Outros" (editorias além das 4 principais) */
.nav-outros { position: relative; }
.nav-outros > button {
  display: flex; align-items: center; gap: .25rem; padding: .75rem; border: 0; background: none; cursor: pointer;
  font: inherit; font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .1em; color: var(--foreground);
  transition: color .15s;
}
.nav-outros > button:hover, .nav-outros.aberto > button { color: var(--brand-green); }
.nav-outros > button span { font-size: .6rem; transition: transform .15s; }
.nav-outros.aberto > button span { transform: rotate(180deg); }
.nav-outros ul {
  display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 40;
  min-width: 13rem; padding: .375rem 0; background: var(--background);
  border: 1px solid var(--rule); border-top: 2px solid var(--brand-green); box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.nav-outros.aberto ul { display: block; }
@media (hover: hover) { .nav-outros:hover ul, .nav-outros:focus-within ul { display: block; } }
.nav-outros li a { display: block; padding: .5rem 1rem; text-align: left; }
.nav-outros li a:hover { background: var(--surface); }

/* ─── Cards de matéria ─── */
.card { display: flex; flex-direction: column; }
.card-imagem { display: block; overflow: hidden; background: var(--surface); }
.card-imagem img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s;
}
.card:hover .card-imagem img { transform: scale(1.03); }
.proporcao-16-9 { aspect-ratio: 16 / 9; }
.proporcao-16-10 { aspect-ratio: 16 / 10; }
.card-corpo { margin-top: .75rem; }
.card-titulo { margin-top: .25rem; font-size: 1.125rem; line-height: 1.3; }
.card--destaque .card-titulo { font-size: 1.25rem; }
.card-resumo { margin-top: .5rem; font-size: .875rem; color: var(--texto-suave); }

.card--manchete .card-corpo { margin-top: 1rem; }
.card--manchete .card-titulo { margin-top: .5rem; font-size: 1.875rem; line-height: 1.2; }
@media (min-width: 640px) { .card--manchete .card-titulo { font-size: 2.25rem; } }
.card-subtitulo { margin-top: .75rem; font-size: 1.125rem; color: var(--texto-suave); }
.card-meta { margin-top: .75rem; font-size: .875rem; color: var(--muted); }

/* ─── Grades ─── */
.grade { display: grid; grid-template-columns: 1fr; column-gap: 1.5rem; row-gap: 2rem; }
@media (min-width: 640px) { .grade--2, .grade--3, .grade--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
  .grade--3 { grid-template-columns: repeat(3, 1fr); }
  .grade--4 { grid-template-columns: repeat(4, 1fr); }
}

/* ─── Home ─── */
.bloco-manchete { display: grid; grid-template-columns: 1fr; gap: 2rem; padding: 2.5rem 0 2rem; }
.bloco-manchete-principal { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }
.bloco-destaques { border-top: 1px solid var(--rule); padding-top: 1.5rem; }
.bloco-destaques .grade { gap: 1rem; }
@media (min-width: 640px) { .bloco-destaques .grade { grid-template-columns: repeat(3, 1fr); } }
.coluna-lateral { display: flex; flex-direction: column; gap: 1.5rem; align-items: center; }
@media (min-width: 1024px) {
  .bloco-manchete { grid-template-columns: minmax(0, 1fr) 325px; gap: 2.5rem; }
  .coluna-lateral { border-left: 1px solid var(--rule); padding-left: 1.5rem; }
}

.secao { padding: 2rem 0; }
.secao-cabecalho {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 1.25rem; padding-bottom: .5rem; border-bottom: 2px solid var(--brand-green);
}
.secao-cabecalho h2 { font-size: 1.5rem; }
.secao-cabecalho a { color: var(--brand-green); }

.colunistas { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px) { .colunistas { grid-template-columns: repeat(2, 1fr); } }
.colunista { display: flex; gap: 1rem; border: 1px solid var(--rule); background: var(--surface); padding: 1.25rem; }
.colunista-foto { width: 80px; height: 80px; flex-shrink: 0; border-radius: 999px; overflow: hidden; background: #e5e5e5; }
.colunista-foto img { width: 100%; height: 100%; object-fit: cover; }
.colunista h3 { margin-top: .25rem; font-size: 1.125rem; line-height: 1.3; }
.colunista p.resumo {
  margin-top: .5rem; font-size: .875rem; color: var(--texto-suave);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.colunista .data { margin-top: .5rem; font-size: .75rem; color: var(--muted); }

/* ─── Anúncios ───
   Cada espaço recebe --w/--h/--ar (computador: -d, celular: -m) e reserva
   a área antes do anúncio carregar, para a página não "pular". */
.slot { text-align: center; font-family: var(--sans); }
.slot[hidden] { display: none; }
.slot-rotulo { display: block; margin-bottom: .375rem; color: var(--muted); font-size: .625rem; }
.slot-area {
  width: var(--w-d, 100%); max-width: 100%; margin: 0 auto;
  aspect-ratio: var(--ar-d, auto);
  display: flex; align-items: center; justify-content: center;
  background: var(--surface);
}
.slot--adsense .slot-area { aspect-ratio: auto; min-height: var(--h-d, 0); background: none; }
/* AdSense só aparece depois do "Aceitar" no aviso de cookies (LGPD). */
html:not(.cookies-aceitos) .slot--adsense { display: none; }
.slot-area > [hidden] { display: none !important; }
.anuncio-item { display: block; width: 100%; height: 100%; }
@keyframes folha-surgir { from { opacity: 0; } to { opacity: 1; } }
.slot-area .anuncio-item:not([hidden]) { animation: folha-surgir .4s ease; }
@media (prefers-reduced-motion: reduce) { .slot-area .anuncio-item:not([hidden]) { animation: none; } }
.anuncio-item picture, .anuncio-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
ins.adsbygoogle--display { display: block; width: 100%; height: var(--h-d); }
.slot--fixo { position: sticky; top: 1rem; }

@media (max-width: 767px) {
  .slot-area { width: var(--w-m, 100%); aspect-ratio: var(--ar-m, auto); }
  .slot--adsense .slot-area { min-height: var(--h-m, 0); }
  ins.adsbygoogle--display { height: var(--h-m); }
  .so-desktop { display: none !important; }
}
@media (min-width: 768px) { .so-mobile { display: none !important; } }

/* Faixas que separam os espaços do conteúdo */
.faixa-anuncio { padding: 1.25rem 0; border-bottom: 1px solid var(--rule); }
.faixa-anuncio--borda { border-top: 1px solid var(--rule); }
.slot--no-texto { margin: 2rem auto; padding: 1rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.article-body .slot img { margin: 0; }
.slot--lista { grid-column: 1 / -1; padding: 1rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }

/* Âncora do celular */
.ancora { display: none; }
@media (max-width: 767px) {
  .ancora {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
    padding: 4px 0; background: var(--background); border-top: 1px solid var(--rule);
    box-shadow: 0 -2px 10px rgba(0,0,0,.12);
  }
  .ancora .slot-rotulo { display: none; }
  .ancora .slot-area { background: none; }
  body.tem-ancora { padding-bottom: 60px; }
}
.ancora-fechar {
  position: absolute; top: -22px; right: 6px; width: 22px; height: 22px; padding: 0;
  border: 1px solid var(--rule); border-bottom: 0; border-radius: 4px 4px 0 0;
  background: var(--background); color: var(--muted); font-size: 16px; line-height: 1; cursor: pointer;
}

/* Mapa de anúncios (só editores, com ?mapa-anuncios=1) */
.slot-mapa {
  width: var(--w-d, 100%); max-width: 100%; aspect-ratio: var(--ar-d, auto); min-height: 90px; margin: 0 auto;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; padding: .5rem;
  border: 2px dashed var(--brand-accent); background: color-mix(in srgb, var(--brand-accent) 8%, transparent);
  color: var(--foreground); font-family: var(--sans); text-align: center; line-height: 1.3;
}
@media (max-width: 767px) { .slot-mapa { width: var(--w-m, 100%); aspect-ratio: var(--ar-m, auto); } }
.slot-mapa strong {
  display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 999px;
  background: var(--brand-accent); color: #fff; font-size: .875rem;
}
.slot-mapa span { font-weight: 700; font-size: .875rem; }
.slot-mapa small { font-size: .7rem; color: var(--muted); }
.slot--mapa .slot-mapa { min-height: 60px; }

/* ─── Matéria ─── */
.trilha { margin-bottom: 1rem; color: var(--muted); }
.trilha a:hover { text-decoration: underline; }
.materia-titulo { margin-top: .5rem; font-size: 1.875rem; line-height: 1.2; }
@media (min-width: 640px) { .materia-titulo { font-size: 3rem; } }
.materia-subtitulo { margin-top: 1rem; font-size: 1.25rem; color: var(--texto-suave); }
.materia-assinatura {
  margin-top: 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  padding: .75rem 0; font-size: .875rem; color: var(--muted);
}
.materia-assinatura strong { color: var(--brand-black); }
.materia-datas { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.materia-atualizada { font-size: .75rem; }

/* "Leia também" no meio do texto */
.article-body .leia-tambem-texto {
  margin: 2rem 0; padding: 1rem 1.25rem;
  border-left: 4px solid var(--brand-green); background: var(--surface);
}
.leia-tambem-texto .kicker { color: var(--brand-green); }
.article-body .leia-tambem-texto ul { margin: .5rem 0 0; padding: 0; list-style: none; }
.article-body .leia-tambem-texto li { margin: .5rem 0 0; font-family: var(--serif); font-weight: 700; font-size: 1.0625rem; line-height: 1.35; }
.article-body .leia-tambem-texto li::before { content: "→ "; color: var(--brand-accent); }
.article-body .leia-tambem-texto a { color: var(--foreground); text-decoration: none; }
.article-body .leia-tambem-texto a:hover { color: var(--brand-green); text-decoration: underline; }
.materia-foto { margin: 1.5rem 0; }
.materia-foto .card-imagem img { width: 100%; height: 100%; object-fit: cover; }
.materia-foto figcaption { margin-top: .5rem; font-size: .75rem; color: var(--muted); }
.materia-tags { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.materia-tags a {
  border: 1px solid var(--rule); padding: .25rem .625rem; font-size: .75rem; color: var(--muted);
}
.materia-tags a:hover { border-color: var(--brand-green); color: var(--brand-green); }

.article-body {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem; line-height: 1.8; color: var(--foreground);
}
.article-body p, .article-body ul, .article-body ol { margin: 0 0 1.5rem; }
.article-body ul { list-style: disc; padding-left: 1.5rem; }
.article-body ol { padding-left: 1.5rem; }
.article-body h2, .article-body h3 {
  font-family: var(--serif); font-weight: 800; color: var(--brand-black);
  margin: 2rem 0 1rem; line-height: 1.2;
}
.article-body h2 { font-size: 1.55rem; }
.article-body h3 { font-size: 1.25rem; }
.article-body a { color: var(--brand-green); text-decoration: underline; }
.article-body blockquote {
  border-left: 3px solid var(--brand-green); padding-left: 1.25rem;
  font-style: italic; color: var(--muted); margin: 1.75rem 0;
}
.article-body img { margin: 1.5rem auto; }
.article-body figure { margin: 1.5rem 0; }
.article-body figcaption { font-family: var(--sans); font-size: .75rem; color: var(--muted); margin-top: .5rem; }

/* ─── Editoria / Acervo / páginas ─── */
.pagina { padding-top: 2rem; padding-bottom: 2rem; }
.pagina--alta { padding-top: 3rem; padding-bottom: 3rem; }
.cabecalho-pagina { margin-bottom: 1.5rem; padding-bottom: .75rem; border-bottom: 4px solid var(--cor-editoria, var(--brand-green)); }
.cabecalho-pagina h1 { font-size: 2.25rem; }
.cabecalho-pagina p.descricao { margin-top: .5rem; color: var(--muted); }

.busca-acervo { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 2rem; }
@media (min-width: 640px) { .busca-acervo { flex-direction: row; } }
.campo {
  border: 1px solid var(--rule); border-radius: 2px; padding: .5rem 1rem;
  background: var(--background); color: var(--foreground); font: inherit; outline: none;
}
.campo:focus { border-color: var(--brand-green); }
.busca-acervo .campo[type="search"] { flex: 1; }
.botao {
  display: inline-block; border: 0; cursor: pointer; font: inherit;
  background: var(--brand-green); color: #fff; padding: .5rem 1.5rem;
  font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em;
  transition: background .15s;
}
.botao:hover { background: var(--brand-green-dark); }
.botao--laranja { background: var(--brand-accent); }
.botao--laranja:hover { background: var(--brand-accent); filter: brightness(.95); }
.botao--grande { padding: 1rem 2.5rem; font-size: .875rem; }

.paginacao { margin-top: 3rem; display: flex; justify-content: center; gap: .25rem; flex-wrap: wrap; }
.paginacao .page-numbers {
  min-width: 2.25rem; padding: .375rem .625rem; text-align: center;
  border: 1px solid var(--rule); font-size: .875rem;
}
.paginacao .page-numbers.current { background: var(--brand-green); border-color: var(--brand-green); color: #fff; }
.paginacao a.page-numbers:hover { border-color: var(--brand-green); color: var(--brand-green); }

/* ─── Anuncie (mídia kit) ─── */
.mk-secao { border-bottom: 1px solid var(--rule); padding: 4rem 0; }
.mk-secao--surface { background: var(--surface); }
.mk-hero { padding: 5rem 0; text-align: center; }
.mk-hero h1 { font-size: 3rem; line-height: 1.15; }
@media (min-width: 640px) { .mk-hero h1 { font-size: 3.75rem; } }
.mk-hero p { margin: 1.5rem auto 0; max-width: 36rem; font-size: 1.125rem; color: var(--muted); line-height: 1.7; }
.mk-hero .botao { margin-top: 2rem; }
.mk-titulo { text-align: center; font-size: 1.875rem; margin-bottom: 2.5rem; }
.mk-numeros { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 640px) { .mk-numeros { grid-template-columns: repeat(4, 1fr); } }
.mk-numero { display: flex; flex-direction: column; align-items: center; gap: .25rem; border: 1px solid var(--rule); padding: 1.5rem; text-align: center; }
.mk-numero strong { font-family: var(--serif); font-weight: 800; font-size: 2.25rem; color: var(--brand-green); }
.mk-numero span { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.mk-duas { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 768px) { .mk-duas { grid-template-columns: 1fr 1fr; } }
.mk-lista li { display: flex; gap: .75rem; font-size: .875rem; margin-bottom: .75rem; }
.mk-lista li::before { content: "✓"; color: var(--brand-green); }
.mk-formatos { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .mk-formatos { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mk-formatos { grid-template-columns: repeat(3, 1fr); } }
.mk-formato { border: 1px solid var(--rule); background: var(--background); display: flex; flex-direction: column; }
.mk-formato-preview { display: flex; align-items: center; justify-content: center; min-height: 180px; padding: 1.5rem 0; background: var(--surface); border-bottom: 1px solid var(--rule); }
.mk-formato-caixa {
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--brand-green); background: color-mix(in srgb, var(--brand-green) 10%, transparent);
  font-size: 10px; font-weight: 600; color: var(--brand-green); text-align: center;
}
.mk-formato-info { padding: 1.25rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.mk-formato-info .topo { display: flex; justify-content: space-between; gap: .5rem; align-items: flex-start; }
.mk-formato-info h3 { font-size: 1.125rem; line-height: 1.2; }
.mk-formato-info .preco { font-weight: 600; color: var(--brand-green); font-size: .875rem; white-space: nowrap; }
.mk-formato-info .onde { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--brand-green); font-weight: 600; }
.mk-formato-info .desc { font-size: .75rem; color: var(--muted); line-height: 1.6; }
.mk-formato-info .tam { margin-top: auto; padding-top: .5rem; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.mk-caixas { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .mk-caixas { grid-template-columns: 1fr 1fr; } }
.mk-caixa { border: 1px solid var(--rule); background: var(--background); padding: 1.5rem; }
.mk-caixa h3 { font-size: 1.25rem; margin-bottom: .5rem; }
.mk-caixa p { font-size: .875rem; line-height: 1.7; color: var(--muted); }
.mk-contato { display: grid; gap: 1rem; margin-top: 2.5rem; }
@media (min-width: 640px) { .mk-contato { grid-template-columns: 1fr 1fr; } }
.mk-contato a {
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
  border: 1px solid var(--rule); background: var(--surface); padding: 2rem; transition: border-color .15s;
}
.mk-contato a:hover { border-color: var(--brand-green); }
.mk-contato svg { color: var(--brand-green); }
.mk-contato .rotulo { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: .25rem; }

/* ─── Newsletter ─── */
.form-newsletter { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: .75rem; text-align: left; }
.form-newsletter .campo { flex: 1 1 100%; padding: .75rem 1rem; }
.form-newsletter .botao { flex: 1 1 100%; }
@media (min-width: 640px) {
  .form-newsletter .campo { flex: 1 1 12rem; }
  .form-newsletter .botao { flex: 0 0 auto; }
}
.form-newsletter-consentimento { flex: 1 1 100%; display: flex; gap: .6rem; align-items: flex-start; font-size: .8125rem; line-height: 1.45; color: var(--texto-suave); cursor: pointer; }
.form-newsletter-consentimento input { margin-top: .2rem; width: 1rem; height: 1rem; accent-color: var(--brand-green); flex: none; }
.form-newsletter-consentimento a { color: var(--brand-green); text-decoration: underline; }
.form-newsletter-isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.aviso-newsletter { margin-top: 2rem; padding: 1rem 1.25rem; border-left: 4px solid; text-align: left; font-size: .9375rem; }
.aviso-newsletter--sucesso { border-color: var(--brand-green); background: var(--surface); }
.aviso-newsletter--erro { border-color: var(--brand-red); background: var(--surface); }

/* ─── Rodapé ─── */
.site-footer { margin-top: 4rem; border-top: 4px solid var(--brand-green); background: #0e0e0c; color: rgba(255,255,255,.7); }
html.dark .site-footer { background: #0a0a09; }
.rodape-grade { display: grid; gap: 2rem; padding-top: 3rem; padding-bottom: 3rem; }
@media (min-width: 640px) { .rodape-grade { grid-template-columns: repeat(2, 1fr); } .rodape-marca { grid-column: span 2; } }
@media (min-width: 768px) { .rodape-grade { grid-template-columns: repeat(4, 1fr); } .rodape-marca { grid-column: span 1; } }
.rodape-marca img { max-width: 220px; filter: brightness(0) invert(1); }
.rodape-marca p { margin-top: .5rem; font-size: .875rem; color: rgba(255,255,255,.5); }
.site-footer h3 { color: rgba(255,255,255,.9); }
.site-footer ul { margin-top: .75rem; font-size: .875rem; }
.site-footer li { margin-bottom: .5rem; }
.site-footer a:hover { color: #fff; }
.rodape-base { border-top: 1px solid rgba(255,255,255,.1); }
.rodape-base .container { padding-top: 1.5rem; padding-bottom: 1.5rem; text-align: center; font-size: .75rem; color: rgba(255,255,255,.4); }
.rodape-base p + p { margin-top: .25rem; }

/* ─── Utilidades ─── */
.mt-1 { margin-top: .25rem; } .mt-2 { margin-top: .5rem; } .mt-3 { margin-top: .75rem; } .mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; } .mt-8 { margin-top: 2rem; } .mt-12 { margin-top: 3rem; }
.mb-2 { margin-bottom: .5rem; } .mb-3 { margin-bottom: .75rem; } .mb-4 { margin-bottom: 1rem; } .mb-8 { margin-bottom: 2rem; } .mb-10 { margin-bottom: 2.5rem; }
.my-10 { margin-top: 2.5rem; margin-bottom: 2.5rem; }
.centro { text-align: center; }
.pequeno { font-size: .75rem; }

/* ─── Matéria com coluna lateral (computador) ─── */
.materia-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; }
.materia-lateral { display: none; }
@media (min-width: 1024px) {
  .materia-layout { grid-template-columns: minmax(0, 1fr) 325px; }
  .materia-lateral { display: flex; flex-direction: column; gap: 2rem; border-left: 1px solid var(--rule); padding-left: 1.5rem; }
}
.materia-principal { max-width: 46rem; min-width: 0; }

/* ─── Anuncie: mapa dos espaços ───
   Cada desenho é montado em tamanho real (1152 px / 375 px) e reduzido com zoom,
   para manter a proporção exata entre anúncios e página. */
.mk-mapas { display: grid; gap: 2rem; justify-content: center; align-items: start; grid-template-columns: max-content; }
@media (min-width: 900px) { .mk-mapas { grid-template-columns: repeat(3, max-content); } }
.mk-mapa { justify-self: center; margin: 0; }
.mk-tela { width: max-content; }
.mk-mapa figcaption { margin-bottom: .5rem; text-align: center; font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.mk-tela {
  padding: 8px; border: 1px solid var(--rule); border-radius: 6px; background: var(--background);
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
}
.mk-mapa--celular .mk-tela { border-radius: 16px; }
.mk-real { --z: .28; zoom: var(--z); position: relative; width: 1152px; padding: 16px; box-sizing: border-box; }
.mk-real--cel { --z: .42; width: 375px; padding-bottom: 80px; }
.mk-r-grade { display: grid; gap: 32px; }
.mk-r-bloco { border-radius: 4px; background: color-mix(in srgb, var(--foreground) 11%, transparent); }
.mk-r-linhas { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.mk-r-linhas i { display: block; border-radius: 3px; background: color-mix(in srgb, var(--foreground) 16%, transparent); }
.mk-r-lateral { display: flex; flex-direction: column; align-items: center; gap: 24px; padding-left: 24px; border-left: 2px solid var(--rule); }
.mk-r-ad {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; max-width: 100%; box-sizing: border-box;
  background: color-mix(in srgb, var(--brand-green) 16%, transparent);
  border: calc(1.5px / var(--z)) solid var(--brand-green); border-radius: 4px;
}
.mk-r-ad b, .mk-formato-numero {
  display: inline-flex; align-items: center; justify-content: center; border-radius: 999px;
  background: var(--brand-green); color: #fff; font-family: var(--sans); font-weight: 700;
}
.mk-r-ad b { width: calc(22px / var(--z)); height: calc(22px / var(--z)); font-size: calc(12px / var(--z)); }
.mk-r-nota { margin-top: 12px; font-size: calc(10px / var(--z)); color: var(--brand-green); }
.mk-formato-preview { position: relative; }
.mk-formato-numero { position: absolute; top: .75rem; left: .75rem; width: 26px; height: 26px; font-size: .8rem; }

.mk-specs { display: grid; gap: 2rem; }
@media (min-width: 768px) { .mk-specs { grid-template-columns: 1fr 1fr; } }
.mk-specs h3 { font-size: 1.25rem; margin-bottom: 1rem; }

/* ─── Editoria: matéria de abertura com foto ao lado do texto ─── */
@media (min-width: 768px) {
  .abertura-editoria .card--manchete { display: grid; grid-template-columns: 3fr 2fr; gap: 2rem; align-items: center; }
  .abertura-editoria .card--manchete .card-corpo { margin-top: 0; }
}
.mk-formato-info .preco small, .preco-publi small { font-weight: 400; font-size: .75em; color: var(--muted); }
.mk-formato-info .exib { font-size: .75rem; font-weight: 600; color: var(--foreground); }
.preco-publi { display: block; margin-top: .375rem; font-family: var(--sans); font-size: .95rem; font-weight: 600; color: var(--brand-green); }

/* Selo de conteúdo patrocinado (identificação obrigatória de publicidade) */
.selo-patrocinado {
  display: inline-block; margin-left: .5rem; padding: .1rem .4rem; vertical-align: middle;
  border: 1px solid var(--brand-accent); color: var(--brand-accent);
  font-family: var(--sans); font-size: .6rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em;
}


/* ─── Home no estilo dos grandes jornais ─── */

/* Manchete de abertura: texto à esquerda, foto grande ao lado */
.card--abertura { display: flex; flex-direction: column-reverse; gap: 1.25rem; }
.card--abertura .card-imagem { aspect-ratio: 4 / 3; }
.card--abertura .card-corpo { margin-top: 0; }
.card--abertura .card-titulo { margin-top: .5rem; font-size: 2rem; line-height: 1.12; }
.card--abertura .card-subtitulo {
  margin-top: 1rem; font-family: Georgia, "Times New Roman", serif;
  font-size: 1.1rem; line-height: 1.55; color: var(--texto-suave);
}
.card--abertura .card-meta { margin-top: 1.25rem; font-size: .8rem; line-height: 1.5; }
.card--abertura .card-meta strong { color: var(--foreground); }
@media (min-width: 900px) {
  .card--abertura { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 2.5rem; align-items: center; }
  .card--abertura .card-titulo { font-size: clamp(2rem, 2.5vw, 2.6rem); }
}

/* Faixa de chamadas compactas (destaques) com fios verticais */
.faixa-chamadas { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--rule); padding-top: 1.25rem; }
.card--faixa { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: .875rem; align-items: start; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.card--faixa:last-child { border-bottom: 0; }
.card--faixa .card-imagem { aspect-ratio: 4 / 3; }
.card--faixa .card-titulo { margin-top: .25rem; font-size: 1rem; line-height: 1.25; }
/* Computador: foto em cima, texto embaixo, colunas iguais com fio vertical no meio do espaço. */
@media (min-width: 768px) {
  .faixa-chamadas { grid-template-columns: repeat(var(--itens, 3), minmax(0, 1fr)); column-gap: 2.5rem; align-items: start; }
  .card--faixa { position: relative; display: flex; flex-direction: column; gap: .75rem; padding: 0; border-bottom: 0; }
  .card--faixa + .card--faixa::before {
    content: ""; position: absolute; top: 0; bottom: 0; left: -1.25rem; border-left: 1px solid var(--rule);
  }
  .card--faixa .card-imagem { aspect-ratio: 16 / 10; }
  .card--faixa .card-titulo {
    font-size: 1.1rem; line-height: 1.28;
    display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
  }
}

/* Blocos de editoria: mais respiro e fios verticais entre as colunas */
.secao { padding: 2.5rem 0; }
.card-titulo { font-size: 1.2rem; }
/* Fios desenhados no meio do espaço entre colunas: todas as fotos ficam do mesmo tamanho. */
@media (min-width: 1024px) {
  .secao--editoria .grade--4 { column-gap: 2.5rem; }
  .secao--editoria .grade--4 > .card { position: relative; }
  .secao--editoria .grade--4 > .card:not(:nth-child(4n+1))::before {
    content: ""; position: absolute; top: 0; bottom: 0; left: -1.25rem; border-left: 1px solid var(--rule);
  }
}

/* Matéria: texto (46rem) + lateral centralizados, sem vão no meio. */
@media (min-width: 1024px) {
  .container.materia-layout { max-width: calc(46rem + 325px + 3rem + 5rem); }
}

/* Últimas notícias (abaixo dos destaques, preenche ao lado da coluna de anúncios) */
.ultimas { margin-top: 1.5rem; border-top: 1px solid var(--rule); padding-top: 1.25rem; }
.ultimas-titulo { color: var(--brand-red); margin: 0 0 .75rem; }
.ultimas-lista { display: grid; grid-template-columns: 1fr; column-gap: 2.5rem; }
.ultimas-lista li { padding: .875rem 0; border-bottom: 1px solid var(--rule); }
.ultimas-meta { display: flex; align-items: baseline; gap: .5rem; margin-bottom: .25rem; }
.ultimas-meta time { font-size: .75rem; color: var(--muted); }
.ultimas-meta time::before { content: "·"; margin-right: .5rem; }
.ultimas-lista a { display: block; font-size: 1.05rem; line-height: 1.3; }
@media (max-width: 767px) { .ultimas-lista li:nth-child(n+5) { display: none; } }
@media (min-width: 768px) {
  .ultimas-lista { grid-template-columns: 1fr 1fr; }
  .ultimas-lista li:nth-last-child(-n+2) { border-bottom: 0; }
}

/* ─── Aviso de cookies (LGPD): faixa em destaque, sem travar o site ─── */
.rodape-cookies { color: inherit; text-decoration: underline; }
.aviso-cookies {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
  padding: 1.1rem max(1rem, calc((100vw - 72rem) / 2));
  display: flex; align-items: center; gap: 1rem 2rem; flex-wrap: wrap;
  background: #0b5d3b; color: #fff;
  box-shadow: 0 -6px 30px rgba(0,0,0,.25);
  font-family: var(--sans); font-size: .9375rem; line-height: 1.5;
  animation: folha-surgir .3s ease-out;
}
.aviso-cookies[hidden] { display: none; }
.aviso-cookies p { flex: 1 1 24rem; margin: 0; }
.aviso-cookies strong { font-weight: 700; }
.aviso-cookies a { color: #fff; text-decoration: underline; white-space: nowrap; }
.aviso-cookies-botoes { display: flex; gap: .75rem; margin-left: auto; }
.aviso-cookies button {
  font: 700 .9375rem/1 var(--sans); padding: .9rem 1.6rem; cursor: pointer;
  border: 2px solid #fff; border-radius: 2px;
}
.aviso-cookies-recusar { background: transparent; color: #fff; }
.aviso-cookies-recusar:hover { background: rgba(255,255,255,.12); }
.aviso-cookies-aceitar { background: #fff; color: #0b5d3b; padding-left: 2.4rem !important; padding-right: 2.4rem !important; }
.aviso-cookies-aceitar:hover { background: #e9f3ee; }
.aviso-cookies button:focus-visible { outline: 3px solid #e8741e; outline-offset: 2px; }
@media (max-width: 640px) {
  .aviso-cookies { padding: 1rem; font-size: .875rem; }
  .aviso-cookies-botoes { width: 100%; }
  .aviso-cookies-botoes button { flex: 1; }
  .aviso-cookies-aceitar { flex: 2 !important; }
}
