/* Site público - Prefeitura de Taiobeiras. CSS próprio, sem framework.
   Layout de referência: docs/referencias/home-rascunho-v3.html */
:root {
  --azul: #1f4fd8;
  --azul-claro: #3692ef;
  --ardosia: #505c6b;
  --cinza: #77818c;          /* só decorativo: não atinge 4,5:1 sobre branco */
  --fundo: #eceff4;
  --borda: #dae1e6;
  --branco: #fff;
  --texto: #2b3440;
  --azul-escuro: #183fae;
  --azul-pale: #e5edfb;
  --img-vazia: #c3cfda;
  --superficie: #fff;
  --link-rodape: #fff;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Segoe UI", Roboto, Arial, sans-serif;
  background: var(--fundo);
  color: var(--texto);
  line-height: 1.45;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; }
.wrap { max-width: 1140px; margin: 0 auto; padding: 0 16px; }

/* Foco visível em tudo que é interativo */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--azul-claro);
  outline-offset: 2px;
}
.topo a:focus-visible, .topo button:focus-visible, .rodape a:focus-visible, .cookies button:focus-visible {
  outline-color: #fff;
}
.so-leitor {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.pular {
  position: absolute; left: 8px; top: -60px; z-index: 100;
  background: var(--azul); color: #fff; padding: 10px 16px; border-radius: 0 0 6px 6px; font-weight: 700;
}
.pular:focus { top: 0; }
#conteudo:focus { outline: none; }

/* Faixa superior */
.topo { background: var(--azul); color: #fff; font-size: 13px; }
.topo .wrap { display: flex; gap: 8px 18px; justify-content: space-between; flex-wrap: wrap; padding-top: 6px; padding-bottom: 6px; }
.topo-links { display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: center; }
.topo a:hover, .topo button:hover { text-decoration: underline; }
.topo button { background: none; border: 1px solid rgba(255,255,255,.7); color: #fff; border-radius: 4px; font: inherit; padding: 1px 8px; cursor: pointer; }
.topo button[aria-pressed="true"] { background: #fff; color: var(--azul); }

/* Cabeçalho */
.cabecalho { background: var(--branco); border-bottom: 1px solid var(--borda); position: relative; z-index: 20; }
.cabecalho-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 80px; padding-top: 8px; padding-bottom: 8px; }
.logo { flex: none; }
.logo img { display: block; width: 200px; max-width: none; height: auto; }
.menu { min-width: 0; }
.menu > ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; font-weight: 600; font-size: 15px; color: var(--ardosia); }
.menu a { overflow-wrap: anywhere; }
.menu > ul > li { position: relative; }
.menu a { display: block; padding: 10px 12px; border-radius: 6px; }
.menu a:hover { color: var(--azul); background: var(--azul-pale); }
.submenu {
  display: none; position: absolute; left: 0; top: 100%; min-width: 220px;
  background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; padding: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.menu > ul > li:nth-last-child(-n+2) > .submenu { left: auto; right: 0; } /* não vaza à direita */
.menu li:hover > .submenu, .menu li:focus-within > .submenu { display: block; }
.submenu a { font-weight: 500; }
.menu-botao { display: none; background: var(--azul); color: #fff; border: 0; border-radius: 6px; padding: 10px 16px; font: inherit; font-weight: 700; cursor: pointer; }

/* Banner */
.banner { position: relative; margin: 18px 0 10px; border-radius: 8px; overflow: hidden; background: var(--azul); }
.banner-slide { display: none; }
.banner-slide.ativo, html:not(.js) .banner-slide:first-child { display: block; }
.banner-slide img { display: block; width: 100%; max-height: 340px; object-fit: cover; }
.carrossel-controles { position: absolute; right: 12px; bottom: 12px; display: flex; gap: 6px; z-index: 2; }
.carrossel-controles button { min-width: 36px; height: 36px; border-radius: 18px; border: 1px solid #fff; background: rgba(0,0,0,.7); color: #fff; font-size: 16px; line-height: 1; cursor: pointer; }
.carrossel-controles button:focus-visible { outline-color: #fff; }

/* Destaques */
.area { display: grid; grid-template-columns: 76px 1fr 260px; gap: 14px; margin-top: 14px; }
.atalhos { display: flex; flex-direction: column; gap: 10px; }
.atalho {
  background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; min-height: 62px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-size: 11px; color: var(--ardosia); text-align: center; padding: 4px;
}
.atalho:hover { border-color: var(--azul); }
.atalho i { font-style: normal; font-size: 18px; color: var(--azul); }
.atalho.busca { background: var(--azul); color: #fff; }
.atalho.busca i { color: #fff; }
.destaque-carrossel { position: relative; min-width: 0; }
.destaque-carrossel .destaque { display: none; height: 100%; padding-bottom: 60px; }
.destaque-carrossel .destaque.ativo, html:not(.js) .destaque-carrossel .destaque:first-child { display: flex; }
.destaque {
  border-radius: 8px; min-height: 340px; color: #fff; display: flex; align-items: flex-end; padding: 22px;
  background: linear-gradient(0deg, rgba(0,0,0,.7), rgba(0,0,0,0) 60%), linear-gradient(135deg, #4d6075, #8798ab);
  background-size: cover; background-position: center;
}
.destaque strong { display: block; font-size: 22px; line-height: 1.25; }
.destaque:hover strong { text-decoration: underline; }
.lado { display: flex; flex-direction: column; gap: 12px; }
.mini { background: var(--superficie); border-radius: 8px; overflow: hidden; border: 1px solid var(--borda); display: block; }
.mini img, .mini-img { display: block; width: 100%; height: 72px; object-fit: cover; background: var(--img-vazia); }
.mini p { margin: 0; padding: 8px 10px; font-size: 13px; font-weight: 600; border-left: 3px solid var(--azul); }
.mini:hover p { color: var(--azul); }

/* Portais */
.portais { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 22px 0; }
.portal { background: var(--superficie); border-radius: 10px; border: 1px solid var(--borda); padding: 16px; display: flex; gap: 12px; align-items: center; }
.portal:hover { border-color: var(--azul); }
.portal .circ { width: 52px; height: 52px; border-radius: 50%; border: 3px solid var(--azul-claro); flex: none; }
.portal small { display: block; font-size: 11px; letter-spacing: 2px; color: var(--ardosia); }
.portal b { color: var(--azul); font-style: italic; font-size: 18px; }

/* Títulos de seção */
.titulo { display: flex; align-items: center; gap: 10px; margin: 26px 0 12px; font-size: 16px; font-weight: 700; letter-spacing: .5px; color: var(--ardosia); }
.titulo::before { content: ""; width: 4px; height: 18px; background: var(--azul); border-radius: 2px; }
.titulo::after { content: ""; flex: 1; height: 1px; background: var(--borda); }
.titulo a { order: 3; font-size: 13px; font-weight: 600; color: var(--azul); letter-spacing: 0; }
.titulo a:hover { text-decoration: underline; }

/* Serviços */
.servicos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.servico {
  background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; min-height: 90px; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  font-weight: 700; color: var(--ardosia); text-align: center; padding: 8px;
}
.servico:hover { border-color: var(--azul); color: var(--azul); }
.servico img { max-height: 36px; width: auto; }

/* Notícias + lateral */
.duas { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; }
.duas.so-lateral { grid-template-columns: 1fr; }
/* Cartões de notícia com altura uniforme: foto fixa, título e resumo cortados em 2 linhas */
.noticia { background: var(--superficie); border-radius: 8px; display: grid; grid-template-columns: 200px 1fr; grid-template-rows: 156px; overflow: hidden; margin-bottom: 12px; border: 1px solid var(--borda); }
/* sem foto (ou foto que não carregou): brasão discreto em vez de caixa cinza lisa */
.noticia .img { display: block; width: 100%; height: 156px; object-fit: cover; background: var(--img-vazia) url("../img/brasao-horizontal.489e746bf38c.png") center / 60% auto no-repeat; }
.video.galeria.sem-capa { background: var(--img-vazia) url("../img/brasao-horizontal.489e746bf38c.png") center 28% / 45% auto no-repeat; justify-content: flex-end; }
.video.galeria.sem-capa .video-titulo { background: rgba(0, 0, 0, .72); color: #fff; padding: 6px 10px; border-radius: 4px; }
.noticia .txt { overflow: hidden; }
.noticia .txt h2, .noticia .txt h3, .noticia .txt p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.etiquetas { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.tag-sigla { background: var(--fundo); color: var(--ardosia); }
a.tag-sigla:hover { text-decoration: underline; }
.botao-link { display: inline-block; background: var(--azul); color: #fff; padding: 9px 18px; border-radius: 6px; font-weight: 700; }
.botao-link:hover { text-decoration: underline; }
.erro .filtros { margin: 14px 0; }
.vazio { color: var(--ardosia); font-size: 13px; padding: 12px 14px; margin: 0; }
.noticia .txt { padding: 12px 16px; }
.noticia h3 { margin: 0 0 6px; font-size: 16px; }
.noticia h3 a:hover { color: var(--azul); text-decoration: underline; }
.noticia p { margin: 0 0 6px; font-size: 13px; color: var(--ardosia); }
.noticia time { font-size: 12px; color: var(--ardosia); }
.tag { display: inline-block; font-size: 11px; background: var(--azul-pale); color: var(--azul); padding: 2px 8px; border-radius: 20px; margin-bottom: 6px; font-weight: 600; }
.tag-clara { background: #fff; }

/* Agenda */
.agenda { background: var(--superficie); border-radius: 8px; overflow: hidden; border: 1px solid var(--borda); }
.agenda .cab { background: var(--azul); color: #fff; padding: 12px 14px; font-weight: 700; }
.agenda .ev { padding: 12px 14px; border-bottom: 1px solid var(--borda); font-size: 13px; }
.agenda .ev b { display: block; color: var(--azul); margin-bottom: 3px; }
.agenda .ev a:hover { text-decoration: underline; }
.agenda .ev span { color: var(--ardosia); font-size: 12px; }
.agenda .mais { color: var(--azul); font-weight: 600; border-bottom: 0; }

/* Instagram */
.insta { background: var(--superficie); border-radius: 8px; overflow: hidden; border: 1px solid var(--borda); margin-top: 16px; }
.insta .cab { background: linear-gradient(90deg, var(--azul), var(--azul-claro)); color: #fff; padding: 12px 14px; font-size: 16px; font-weight: 700; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.insta .feed { max-height: 430px; overflow-y: auto; }
.post { display: block; padding: 10px 12px; border-bottom: 1px solid var(--borda); font-size: 12px; }
.post:hover .legenda { text-decoration: underline; }
.post .ft { display: block; width: 100%; height: 150px; object-fit: cover; border-radius: 6px; margin-bottom: 6px; background: var(--img-vazia); }
.post .quando { display: block; color: var(--ardosia); margin-top: 2px; }
.insta .seg { display: block; padding: 10px 14px; color: var(--azul); font-weight: 600; font-size: 13px; }
.insta .seg:hover { text-decoration: underline; }

/* Vídeos e fotos */
.videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.video {
  position: relative; min-height: 150px; border-radius: 8px; background: #3d4652 center/cover; color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 12px; text-align: center;
}
.video .play { font-size: 34px; }
.video-titulo { font-size: 14px; font-weight: 600; }
.video:hover .video-titulo { text-decoration: underline; }
.video.galeria { background-color: #4a5a6b; }

/* Rodapé */
.rodape { background: var(--azul); color: #fff; margin-top: 34px; padding-top: 28px; }
.rodape .colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 18px; font-size: 14px; padding-bottom: 24px; }
.rodape h2 { font-size: 15px; margin-bottom: 10px; }
.rodape p { margin: 0 0 6px; }
.rodape li { margin-bottom: 6px; }
.rodape a { color: var(--link-rodape); text-decoration: underline; text-underline-offset: 2px; }
.rodape .base { background: var(--azul-escuro); color: #fff; font-size: 12px; padding: 10px 0; text-align: center; }

/* Popup de banner */
.popup { position: fixed; inset: 0; z-index: 110; background: rgba(0,0,0,.7); display: flex; align-items: center; justify-content: center; padding: 16px; }
.popup[hidden] { display: none; }
.popup-caixa { position: relative; background: var(--superficie); border-radius: 10px; max-width: 640px; max-height: 90vh; overflow: auto; padding: 44px 12px 12px; }
.popup-caixa img { display: block; width: 100%; border-radius: 6px; }
.popup-titulo { font-size: 16px; position: absolute; left: 14px; top: 12px; right: 56px; color: var(--ardosia); }
.popup-fechar { position: absolute; right: 8px; top: 6px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--ardosia); background: var(--superficie); color: var(--texto); font-size: 22px; line-height: 1; cursor: pointer; }

/* Barra de cookies */
.cookies {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--ardosia); color: #fff;
  display: flex; gap: 16px; align-items: center; justify-content: center; flex-wrap: wrap; padding: 12px 16px;
  font-size: 14px; box-shadow: 0 -4px 16px rgba(0,0,0,.2);
}
.cookies[hidden] { display: none; }
.cookies p { margin: 0; max-width: 760px; }
.cookies a { color: #fff; text-decoration: underline; }
.cookies-botoes { display: flex; gap: 10px; }
/* Aceitar e Recusar com o mesmo peso visual (Guia de Cookies da ANPD) */
.cookies button.botao-cookie { background: #fff; color: var(--azul); border: 2px solid #fff; border-radius: 6px; padding: 8px 18px; font: inherit; font-weight: 700; cursor: pointer; min-width: 110px; }

/* Clique para carregar (mapa, vídeo) */
.embed-adiado { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; aspect-ratio: 16 / 9; width: 100%; padding: 20px; border-radius: 8px; background: var(--fundo); border: 1px dashed var(--ardosia); color: var(--texto); font-size: 14px; }
.embed-adiado p { margin: 0; max-width: 520px; }
.embed-adiado a { color: var(--azul); text-decoration: underline; }
.botao-embed { background: var(--azul); color: #fff; border: 0; border-radius: 6px; padding: 9px 18px; font: inherit; font-weight: 700; cursor: pointer; }
.botao-embed:focus-visible, .vlibras-botao:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }

/* Botão do VLibras: o widget só é baixado no clique */
.vlibras-botao { position: fixed; right: 0; top: 50%; z-index: 80; transform: translateY(-50%); background: var(--azul); color: #fff; border: 0; border-radius: 8px 0 0 8px; padding: 12px 10px; font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; writing-mode: vertical-rl; }
.vlibras-botao[hidden] { display: none; }

/* Alto contraste (classe em <html>, lembrada no localStorage) */
html.alto-contraste {
  --azul: #000; --azul-claro: #ffd400; --ardosia: #fff; --cinza: #fff; --fundo: #000; --borda: #fff;
  --texto: #fff; --azul-escuro: #000; --azul-pale: #000; --img-vazia: #333; --superficie: #000; --link-rodape: #ffd400;
}
html.alto-contraste a { color: #ffd400; text-decoration: underline; }
html.alto-contraste .topo, html.alto-contraste .rodape, html.alto-contraste .insta .cab,
html.alto-contraste .agenda .cab, html.alto-contraste .cookies { background: #000; color: #fff; border: 1px solid #fff; }
html.alto-contraste .cabecalho { background: #000; }
html.alto-contraste .topo button, html.alto-contraste .menu-botao, html.alto-contraste .cookies button { background: #ffd400; color: #000; border: 1px solid #fff; }
html.alto-contraste .atalho.busca, html.alto-contraste .pular { background: #000; color: #ffd400; border: 1px solid #fff; }
html.alto-contraste .atalho i, html.alto-contraste .atalho.busca i, html.alto-contraste .portal b,
html.alto-contraste .agenda .ev b, html.alto-contraste .tag { color: #ffd400; background: #000; border: 1px solid #ffd400; }
html.alto-contraste .tag-clara { background: #000; }
html.alto-contraste .logo img { background: #fff; border-radius: 6px; padding: 4px; }
html.alto-contraste *:focus-visible { outline-color: #ffd400 !important; }

/* Mobile: uma coluna, 16px de margem lateral, sem rolagem horizontal */
@media (max-width: 820px) {
  .area, .duas, .portais, .servicos, .videos, .rodape .colunas { grid-template-columns: 1fr; }
  .atalhos { flex-direction: row; overflow-x: auto; padding-bottom: 4px; }
  .atalho { min-width: 84px; }
  .destaque { min-height: 240px; }
  .noticia { grid-template-columns: 1fr; grid-template-rows: 160px auto; }
  .noticia .img { height: 160px; }
  .menu-botao { display: block; }
  .menu { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--superficie); border-bottom: 1px solid var(--borda); padding: 8px 16px; }
  .menu.aberto { display: block; }
  .menu > ul { flex-direction: column; gap: 0; }
  .submenu { display: block; position: static; box-shadow: none; border: 0; padding: 0 0 0 14px; }
  html:not(.js) .menu { display: block; position: static; }
  html:not(.js) .menu-botao { display: none; }
  .logo img { width: 160px; }
  .cookies { font-size: 12.5px; line-height: 1.35; padding: 8px 12px; gap: 6px 10px; justify-content: space-between; }
  .cookies p { flex: 1 1 220px; }
  .cookies button { padding: 6px 14px; }
}
/* Páginas internas */
.migalhas { margin: 18px 0 6px; font-size: 13px; color: var(--ardosia); }
.migalhas ol { display: flex; flex-wrap: wrap; gap: 4px 6px; list-style: none; margin: 0; padding: 0; }
.migalhas li + li::before { content: "›"; margin-right: 6px; color: var(--cinza); }
.migalhas a { color: var(--azul); }
.migalhas a:hover { text-decoration: underline; }
.pagina-titulo { font-size: 28px; line-height: 1.2; color: var(--ardosia); margin: 6px 0 18px; overflow-wrap: anywhere; }
.noticia h2 { margin: 0 0 6px; font-size: 16px; }
.noticia h2 a:hover { color: var(--azul); text-decoration: underline; }
.meta, .resumo { color: var(--ardosia); }
.resumo { font-size: 18px; }
.filtros { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; padding: 12px 14px; margin-bottom: 16px; }
.filtros label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ardosia); }
.filtros select, .filtros input { font: inherit; padding: 7px 8px; border: 1px solid var(--ardosia); border-radius: 6px; background: var(--superficie); color: var(--texto); min-width: 0; max-width: 100%; }
.filtros button { background: var(--azul); color: #fff; border: 0; border-radius: 6px; padding: 9px 18px; font: inherit; font-weight: 700; cursor: pointer; }
.paginacao { display: flex; gap: 14px; align-items: center; justify-content: center; flex-wrap: wrap; margin: 18px 0; color: var(--ardosia); }
.paginacao a { color: var(--azul); font-weight: 600; padding: 6px 10px; border: 1px solid var(--borda); border-radius: 6px; background: var(--superficie); }
.paginacao a:hover { border-color: var(--azul); }
.detalhe, .ficha > section, .perfil { background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; }
.detalhe figure { margin: 0 0 14px; }
.detalhe figcaption, .grade-fotos figcaption { font-size: 12px; color: var(--ardosia); }
.prosa { overflow-wrap: anywhere; max-width: 75ch; }
.prosa table { border-collapse: collapse; display: block; overflow-x: auto; max-width: 100%; }
.prosa th, .prosa td { border: 1px solid var(--borda); padding: 6px 10px; }
.prosa a, .cartoes a, .lista-arquivos a, .dados a, .resultados h2 a { color: var(--azul); text-decoration: underline; text-underline-offset: 2px; }
.prosa iframe, .player iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.player { margin: 0 0 16px; }
.grade-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.grade-fotos figure { margin: 0; }
.grade-fotos img { display: block; width: 100%; height: 160px; object-fit: cover; border-radius: 6px; }
.cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.cartoes li { background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; padding: 14px; overflow-wrap: anywhere; }
.cartoes li:hover { border-color: var(--azul); }
.dados { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 0; }
.dados dt { font-weight: 700; color: var(--ardosia); }
.dados dd { margin: 0; overflow-wrap: anywhere; }
.foto-chefe, .banner-unidade { display: block; max-width: 160px; border-radius: 8px; margin-bottom: 12px; }
.banner-unidade { max-width: 100%; width: 100%; max-height: 260px; object-fit: cover; margin-bottom: 16px; }
.abas-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }
.abas-links a { background: var(--azul); color: #fff; padding: 8px 16px; border-radius: 20px; font-weight: 600; }
.lista-arquivos li { background: var(--superficie); border: 1px solid var(--borda); border-radius: 6px; padding: 10px 14px; margin-bottom: 8px; overflow-wrap: anywhere; }
.faq { background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; padding: 10px 16px; margin-bottom: 8px; }
.faq summary { cursor: pointer; font-weight: 700; color: var(--ardosia); }
.resultados { list-style: none; margin: 0; padding: 0; }
.resultados li { background: var(--superficie); border: 1px solid var(--borda); border-radius: 8px; padding: 12px 16px; margin-bottom: 10px; }
.resultados h2 { font-size: 17px; margin: 4px 0; }
.resultados p { margin: 0 0 4px; color: var(--ardosia); font-size: 14px; }
.organograma, .organograma ul { list-style: none; margin: 0; padding: 0; }
.organograma ul { margin-left: 14px; padding-left: 14px; border-left: 2px solid var(--borda); }
.organograma li { margin: 8px 0; overflow-wrap: anywhere; }
.organograma a { color: var(--azul); text-decoration: underline; text-underline-offset: 2px; }
html.alto-contraste .abas-links a, html.alto-contraste .filtros button { background: #ffd400; color: #000; }
@media (max-width: 820px) {
  .pagina-titulo { font-size: 23px; }
  .dados { grid-template-columns: 1fr; }
  .dados dt { margin-top: 6px; }
  .filtros label, .filtros select, .filtros input { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Política de privacidade */
.a-preencher { background: #fff3cd; color: #6b4e00; border: 1px dashed #b38600; padding: 1px 6px; border-radius: 4px; font-weight: 600; }
.privacidade .tabela { width: 100%; border-collapse: collapse; font-size: 13px; margin: 8px 0 16px; display: block; overflow-x: auto; }
.privacidade .tabela th, .privacidade .tabela td { border: 1px solid var(--borda); padding: 6px 8px; text-align: left; vertical-align: top; }
