/* Tema Gladson Cameli — o que o theme.json não expressa.
   Tokens em theme.json; regras em conteudo/direcao-visual.md. */

:root {
	accent-color: var(--wp--preset--color--primary);
	--flag-h: var(--wp--custom--flag-height);
	--azul: var(--wp--preset--color--primary);
	--azul-escuro: var(--wp--preset--color--primary-dark);
	--amarelo: var(--wp--preset--color--accent-yellow);
	--verde: var(--wp--preset--color--accent-green);
}

html { scroll-padding-top: 5rem; }
img { height: auto; max-width: 100%; }
:where(input, select, textarea, button, .chip, .wp-block-query-pagination a, .wp-block-query-pagination span) { box-sizing: border-box; max-width: 100%; }
::selection { background: var(--amarelo); color: var(--wp--preset--color--contrast); }

/* Foco visível: escuro sobre claro, amarelo sobre azul (contraste medido). */
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--azul-escuro);
	outline-offset: 3px;
}
:where(.has-primary-dark-background-color, .has-primary-background-color, .site-footer)
	:where(a, button, input, textarea, select):focus-visible {
	outline-color: var(--amarelo);
}

.skip-link:focus { z-index: 1000; }

/* ---------- Diagonal da bandeira ---------- */
.has-flag-edge {
	position: relative;
	z-index: 1;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--flag-h)), 0 100%);
	padding-bottom: calc(var(--wp--preset--spacing--60) + var(--flag-h)) !important;
}
/* Faixa amarela e verde colada à diagonal (o gradiente "to bottom right" tem a linha de 50% exatamente
   na diagonal da caixa: amarelo em cima, verde embaixo, como na bandeira). */
.has-flag-edge::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	z-index: 2;
	height: var(--flag-h);
	background: linear-gradient(to bottom right, transparent calc(50% - 1.25rem), var(--amarelo) 0 calc(50% - 0.625rem), var(--verde) 0 50%, transparent 0);
	pointer-events: none;
}
.has-flag-edge-top {
	clip-path: polygon(0 var(--flag-h), 100% 0, 100% 100%, 0 100%);
	padding-top: calc(var(--wp--preset--spacing--60) + var(--flag-h)) !important;
}
/* Duas faixas escuras seguidas: a segunda entra por baixo da diagonal da primeira, sem cunha clara. */
.has-flag-edge + .has-primary-dark-background-color {
	z-index: 0;
	margin-top: calc(-1 * var(--flag-h)) !important;
	padding-top: calc(var(--wp--preset--spacing--60) + var(--flag-h)) !important;
}
.flag-divider {
	height: 0.5rem;
	margin: 0 !important;
	background: linear-gradient(100deg, var(--amarelo) 0 50%, var(--verde) 50% 100%);
}

/* Canto de card cortado, com o triângulo da bandeira. */
.card-flag {
	position: relative;
	clip-path: polygon(0 0, calc(100% - 2rem) 0, 100% 2rem, 100% 100%, 0 100%);
}
.card-flag::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 2rem;
	height: 2rem;
	background: var(--wp--preset--gradient--flag-diagonal);
	clip-path: polygon(0 0, 100% 100%, 0 100%);
}

/* Card inteiro clicável pelo link do título. */
.card-flag :where(.wp-block-post-title, h3) a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.card-flag :where(.wp-block-post-title, h3) a { text-decoration: none; }
.card-flag:hover :where(.wp-block-post-title, h3) a { text-decoration: underline; }
/* O clip-path do card corta o contorno do link esticado: o foco vai para o card inteiro. */
.card-flag:focus-within { outline: 3px solid var(--azul-escuro); outline-offset: -3px; }
.card-flag :where(.wp-block-post-title, h3) a:focus-visible { outline: none; }
.etiqueta a:hover, .etiqueta a:focus-visible { text-decoration: underline; }
.card-flag .etiqueta a { position: relative; z-index: 1; display: inline-block; min-height: 24px; padding-block: 0.15rem; }
.card-flag .wp-block-post-featured-image img,
.card-flag .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

/* Etiqueta (área, município): caixa normal, curta, em verde. */
.etiqueta a,
.etiqueta {
	color: var(--verde);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	text-decoration: none;
}

/* ---------- Seções ---------- */
.wp-site-blocks > main, .wp-site-blocks > footer { margin-block-start: 0; }
main > .wp-block-post-content > * + * { margin-block-start: 0; }
.secao { padding-block: var(--wp--preset--spacing--60); }
/* Seções claras seguidas dividem o respiro; depois de uma seção com fundo, o respiro volta inteiro. */
.secao:not(.has-background) + .secao:not(.has-background) { padding-block-start: 0; }
/* Abertura da seção: título e texto na borda do conteúdo, medida de leitura de ~70 caracteres. */
.secao-abertura > *, .secao-texto > * { max-width: 42rem; }
.secao-abertura > .filtro { max-width: none; }
.secao-abertura + * { margin-block-start: var(--wp--preset--spacing--50); }
.fontes, .fontes a { color: var(--wp--preset--color--muted); }
.has-primary-dark-background-color .fontes,
.has-primary-dark-background-color .fontes a { color: var(--wp--preset--color--primary-light); }

/* ---------- Hero: foto e texto empilhados no mesmo espaço da grade ---------- */
.hero {
	display: grid;
	min-height: min(78svh, 46rem);
	margin-block-start: 0 !important;
	padding: 0 !important;
	color: #fff;
}
.hero > * { grid-area: 1 / 1; margin: 0 !important; }
/* A foto não define a altura do hero (retrato em tela larga ficaria enorme): ela cobre a área. */
.hero .hero-foto { position: relative; margin: 0; min-height: 100%; }
.hero .hero-foto img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 25%;
	border-radius: 0;
}
.hero .hero-foto::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--gradient--photo-scrim);
}
.hero .hero-texto {
	position: relative;
	align-self: end;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30) calc(var(--wp--preset--spacing--60) + var(--flag-h)) !important;
}
.hero h1, .hero .hero-lead { color: #fff; }
.hero .hero-lead { max-width: 36rem; }
.hero .wp-block-button__link { background: var(--amarelo); color: var(--wp--preset--color--contrast); }
.hero .wp-block-button__link:hover { background: #fff; }
.hero-pagina { min-height: min(56svh, 32rem); }
@media (max-width: 63.99rem) {
	.hero, .hero-pagina { min-height: 0; grid-template-rows: auto auto; }
	.hero > * { grid-area: auto; }
	.hero .hero-foto { min-height: 0; aspect-ratio: 4 / 3; }
	.hero .hero-foto::after { background: linear-gradient(to top, var(--azul-escuro) 0, rgba(8, 33, 79, 0) 30%); }
	.hero .hero-texto { padding-top: var(--wp--preset--spacing--30) !important; }
}
.hero.sem-foto { min-height: 0; }

/* ---------- Texto com foto: foto maior que o texto, lado alternado ---------- */
.texto-foto { align-items: center; gap: var(--wp--preset--spacing--60); }
@media (min-width: 48rem) {
	.texto-foto.texto-foto { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	.texto-foto.texto-foto.invertido { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
	.texto-foto.invertido > .foto-secao { order: -1; }
}
.foto-secao { margin: 0; }
.foto-secao img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-radius: 0; }
.wp-element-caption { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }

/* ---------- Cards e grades ---------- */
.cards { gap: var(--wp--preset--spacing--40); }
.card-corpo { padding: var(--wp--preset--spacing--30) !important; }
.card-flag > .wp-block-image { margin: 0; }
/* Card de canto reto: a foto também (o raio do theme.json é para foto solta). */
.card-flag img { border-radius: 0; }
/* Cards da mesma linha com a mesma altura. */
.wp-block-post-template.is-layout-grid > li { display: flex; }
.wp-block-post-template.is-layout-grid > li > .card-flag { flex: 1; }
.regionais { gap: var(--wp--preset--spacing--40); grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr)) !important; }
.lista-municipios { list-style: none; padding: 0 !important; }
.lista-municipios li { padding-block: 0.35rem; border-bottom: 1px solid var(--wp--preset--color--primary-light); }
.lista-municipios a { display: block; min-height: 24px; text-decoration: none; font-weight: 600; }
.lista-municipios a:hover { text-decoration: underline; }

/* ---------- Citação: aspas grandes em amarelo, texto em tipo de display ---------- */
.citacao .secao-texto > * { max-width: 54rem; }
.citacao .wp-block-quote { margin: 0; padding: 0; border: 0; color: #fff; font-size: var(--wp--preset--font-size--x-large); line-height: 1.3; }
.citacao .wp-block-quote::before {
	content: "\201C";
	display: block;
	height: 0.55em;
	color: var(--amarelo);
	font: 400 clamp(6rem, 4rem + 8vw, 10rem) / 1 var(--wp--preset--font-family--display);
}
.citacao .wp-block-quote cite { display: block; margin-top: var(--wp--preset--spacing--30); color: var(--wp--preset--color--primary-light); }

/* ---------- Números: livro de registro, uma frase por linha, número dentro dela ---------- */
.numeros h2 { color: #fff; }
.numeros-lista { border-top: 1px solid rgba(220, 232, 248, 0.25); }
.numero-linha {
	display: grid;
	gap: 0.25rem var(--wp--preset--spacing--50);
	padding-block: var(--wp--preset--spacing--40);
	border-bottom: 1px solid rgba(220, 232, 248, 0.25);
}
.numero-linha > * { margin: 0 !important; }
.numero { color: #fff; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--x-large); line-height: 1.2; }
.numero strong { color: var(--amarelo); font-size: 1.6em; font-weight: 400; white-space: nowrap; }
.numero-compl { color: var(--wp--preset--color--primary-light); }
.numero-compl a { color: #fff; }
@media (min-width: 48rem) {
	.numero-linha { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: baseline; }
}

/* ---------- Linha do tempo ---------- */
.linha-do-tempo { border-left: 3px solid var(--azul); padding-left: var(--wp--preset--spacing--40) !important; }
.linha-do-tempo .marco { position: relative; }
.linha-do-tempo .marco::before {
	content: "";
	position: absolute;
	left: calc(-1 * var(--wp--preset--spacing--40) - 0.6rem - 1.5px);
	top: 0.4rem;
	width: 1.2rem;
	height: 1.2rem;
	background: var(--amarelo);
	border: 2px solid var(--azul-escuro);
	transform: rotate(45deg);
}
.marco-ano {
	color: var(--azul);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.1;
	margin: 0;
}

/* ---------- Mapa das regionais (Pelo Acre) ---------- */
.mapa-colunas { display: grid; gap: var(--wp--preset--spacing--50); align-items: center; }
@media (min-width: 56rem) { .mapa-colunas { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); } }
.mapa { margin: 0; }
.mapa-acre { display: block; width: 100%; height: auto; }
.mapa-acre path { stroke: var(--wp--preset--color--base); stroke-width: 1; stroke-linejoin: round; }
.mapa-acre text { font: 700 15px/1 var(--wp--preset--font-family--text); pointer-events: none; }
.mapa-regional { text-decoration: none; }
.mapa-regional g { transition: opacity var(--wp--custom--motion--fast); }
.mapa-acre:has(.mapa-regional:hover, .mapa-regional:focus-visible) .mapa-regional:not(:hover, :focus-visible) g { opacity: 0.45; }
.mapa-acre:has(.mapa-regional:hover, .mapa-regional:focus-visible) .mapa-regional:not(:hover, :focus-visible) text { fill: var(--wp--preset--color--contrast); }
.mapa-regional:focus-visible { outline: none; }
.mapa-regional:focus-visible path { stroke: var(--wp--preset--color--contrast); stroke-width: 3; }
.regional:target h3 { text-decoration: underline 0.25rem var(--amarelo); text-underline-offset: 0.3em; }

/* ---------- Ficha biográfica (Imprensa) ---------- */
.ficha { display: grid; margin: var(--wp--preset--spacing--40) 0 0; border-top: 2px solid var(--azul); }
.ficha > div { display: grid; gap: 0.25rem 2rem; padding-block: 0.875rem; border-bottom: 1px solid var(--wp--preset--color--primary-light); }
@media (min-width: 40rem) { .ficha > div { grid-template-columns: 14rem minmax(0, 1fr); } }
.ficha dt { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.ficha dd { margin: 0; }

/* ---------- Fecho: a última frase antes do rodapé ---------- */
.fecho { padding-block: var(--wp--preset--spacing--70) !important; }
.fecho-frase {
	margin: 0;
	color: var(--azul-escuro);
	font: 400 var(--wp--preset--font-size--huge) / 1.05 var(--wp--preset--font-family--display);
	text-wrap: balance;
}
.fecho .secao-texto > .fecho-frase { max-width: 20ch; }
.fecho-texto { font-size: var(--wp--preset--font-size--large); }

/* ---------- Realização individual ---------- */
/* Moldura de 74rem (foto larga) e texto na coluna de 42rem à esquerda, como nas páginas. */
.realizacao-artigo.realizacao-artigo > :not(.alignwide, .alignfull) {
	max-width: 42rem;
	margin-left: max(0px, calc((100% - 74rem) / 2)) !important;
	margin-right: auto !important;
}
.realizacao-artigo .wp-block-post-title { margin-bottom: 0; text-wrap: balance; }
.realizacao-dados { gap: 0.25rem 0.75rem; margin-block-start: var(--wp--preset--spacing--30) !important; color: var(--wp--preset--color--muted); font-weight: 600; }
.realizacao-dados > * { margin: 0 !important; }
.realizacao-dados > * + *::before { content: "·"; margin-right: 0.75rem; color: var(--verde); }
.realizacao-ano { color: var(--azul); font-family: var(--wp--preset--font-family--display); }
.realizacao-artigo .wp-block-post-featured-image { margin-block: var(--wp--preset--spacing--50) !important; }
.realizacao-artigo .wp-block-post-featured-image img { border-radius: 0; }
.fonte-bloco { margin-block-start: var(--wp--preset--spacing--50) !important; padding-top: var(--wp--preset--spacing--30); border-top: 2px solid var(--azul); }
.fonte-rotulo { margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.fonte-bloco .wp-block-button__link {
	padding: 0.5rem 0;
	background: none;
	color: var(--azul);
	font-size: var(--wp--preset--font-size--large);
	text-align: left;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.fonte-bloco .wp-block-button__link:hover { background: none; color: var(--azul-escuro); }
.fonte-bloco .wp-block-button__link::after { content: " \2197"; }
.relacionadas .card-flag { background-color: var(--wp--preset--color--base) !important; }

/* ---------- Índice da página (Trajetória) ---------- */
.indice-secao { padding-block: var(--wp--preset--spacing--40) 0 !important; }
.indice ol { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.indice a {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 44px;
	padding: 0.5rem 1rem;
	border-bottom: 3px solid var(--amarelo);
	color: var(--azul-escuro);
	font-weight: 700;
	text-decoration: none;
}
.indice a:hover { background: var(--wp--preset--color--surface); }

/* ---------- Fonte curta no fim do texto do marco ---------- */
.fonte-curta {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
	white-space: nowrap;
}
.fonte-curta::after { content: " \2197"; }

/* ---------- Títulos e medalhas: placas, não linha do tempo ---------- */
.honraria .card-corpo > * { margin-block: 0 0.5rem; }
/* 7 placas: 4 colunas na tela larga (4 + 3), sem uma sozinha na última linha. */
.cards:has(> .honraria) { grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)) !important; }
.honraria-ano {
	color: var(--azul);
	font: 400 var(--wp--preset--font-size--xx-large) / 1 var(--wp--preset--font-family--display);
}
.honraria h3 { font-size: var(--wp--preset--font-size--large); }

/* ---------- Galeria: crédito embaixo da foto, cada foto abre o arquivo ---------- */
.galeria.wp-block-gallery.has-nested-images figure.wp-block-image { flex-direction: column; }
.galeria.wp-block-gallery.has-nested-images figure.wp-block-image a { display: block; }
.galeria.wp-block-gallery.has-nested-images figure.wp-block-image img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; border-radius: 0; }
.galeria.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static;
	max-height: none;
	margin: 0;
	padding: 0.35rem 0 0;
	background: none;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
	text-align: left;
	text-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	mask: none;
	-webkit-mask: none;
}
.galeria.wp-block-gallery.has-nested-images figure.wp-block-image::before { display: none; }
.galeria figure.wp-block-image a:hover img { opacity: 0.88; }

/* ---------- Busca (404 e resultados) ---------- */
.busca { max-width: 36rem; }
.busca .wp-block-search__label { font-weight: 700; }
.busca .wp-block-search__inside-wrapper { gap: 0.5rem; }
.busca .wp-block-search__input {
	box-sizing: border-box;
	min-height: 48px;
	padding: 0.75rem;
	border: 2px solid var(--wp--preset--color--muted);
	border-radius: var(--wp--custom--radius);
	font: inherit;
}
.busca .wp-block-search__button {
	box-sizing: border-box;
	min-height: 48px;
	margin: 0;
	padding: 0.75rem 1.5rem;
	border: 2px solid var(--azul);
	border-radius: var(--wp--custom--radius);
	background: var(--azul);
	color: #fff;
	font-weight: 700;
}
.busca .wp-block-search__button:hover { background: var(--azul-escuro); }
.caminhos { margin-block-start: var(--wp--preset--spacing--50) !important; padding-left: 0 !important; list-style: none; }
.caminhos li { border-bottom: 1px solid var(--wp--preset--color--primary-light); }
.caminhos a { display: block; padding-block: 0.75rem; font-size: var(--wp--preset--font-size--large); font-weight: 600; text-decoration: none; }
.caminhos a:hover { text-decoration: underline; }
.resultados .wp-block-post-title { margin-block-start: var(--wp--preset--spacing--40); }

/* ---------- Tela larga: a coluna da direita trabalha ---------- */
.linha-corpo { max-width: 42rem; }
.realizacao-corpo > * { max-width: 42rem; }
@media (min-width: 64rem) {
	.linha-colunas { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--wp--preset--spacing--60); align-items: start; }
	.linha-colunas > * { margin: 0 !important; }
	.linha-colunas > .secao-abertura { position: sticky; top: 6rem; }
	.realizacao-corpo { display: grid; grid-template-columns: minmax(0, 42rem) minmax(0, 1fr); gap: var(--wp--preset--spacing--60); align-items: start; }
	.realizacao-corpo > * { margin: 0 !important; }
	.realizacao-corpo > .fonte-bloco { position: sticky; top: 6rem; }
}
.honraria { border-top: 4px solid var(--azul); }

/* Títulos equilibrados e parágrafos sem palavra sozinha na última linha. */
:where(h1, h2, h3) { text-wrap: balance; }
:where(p, li, dd) { text-wrap: pretty; }

/* ---------- Rodapé ---------- */
.site-footer { color: var(--wp--preset--color--primary-light); }
.site-footer a { color: #fff; }
.estrela { color: var(--wp--preset--color--accent-red); width: 1.25rem; height: 1.25rem; vertical-align: -0.15em; }

/* Alvos de toque de 44 px. */
.wp-block-button__link,
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { min-height: 44px; min-width: 44px; }
.wp-block-navigation-item__content { padding-block: 0.6rem; }

/* Ícones sociais do rodapé: alvo de 44 px. */
/* margem negativa: o ícone (24 px) fica alinhado ao texto, e o alvo de 44 px sobra para os lados */
.site-footer .wp-block-social-links { gap: 0.25rem; margin-inline-start: -10px; }
.site-footer .wp-block-social-link-anchor { display: grid; place-items: center; min-width: 44px; min-height: 44px; }

/* ---------- Controles: campos, select, botões de envio ---------- */
:where(.wpcf7, .filtro) :is(input:not([type="submit"], [type="checkbox"]), textarea, select) {
	width: 100%;
	min-height: 48px;
	padding: 0.75rem;
	border: 2px solid var(--wp--preset--color--muted);
	border-radius: var(--wp--custom--radius);
	background-color: #fff;
	color: var(--wp--preset--color--contrast);
	font: inherit;
}
.filtro select {
	appearance: none;
	padding-right: 2.75rem;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2310419A' stroke-width='2.5' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.75rem center / 1.25rem;
	cursor: pointer;
}
:where(.wpcf7, .filtro) :is(input, textarea, select):hover { border-color: var(--azul); }
:is(.wpcf7 input[type="submit"], .filtro button) {
	min-height: 48px;
	padding: 0.75rem 1.5rem;
	border: 2px solid var(--azul);
	border-radius: var(--wp--custom--radius);
	background: var(--azul);
	color: #fff;
	font: 700 var(--wp--preset--font-size--medium) var(--wp--preset--font-family--text);
	cursor: pointer;
}
:is(.wpcf7 input[type="submit"], .filtro button):hover { background: var(--azul-escuro); border-color: var(--azul-escuro); }
.wpcf7 input[type="submit"]:disabled {
	border: 2px dashed var(--wp--preset--color--muted);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
	cursor: not-allowed;
}

/* Filtro de realizações: áreas em chips, município em select + "Ver". */
.filtro { display: grid; gap: var(--wp--preset--spacing--30); margin-block-start: var(--wp--preset--spacing--40); }
.chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.chip {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.5rem 1rem;
	border: 2px solid var(--azul);
	border-radius: 999px;
	color: var(--azul);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}
.chip:hover { background: var(--wp--preset--color--primary-light); }
.chip[aria-current] { background: var(--azul); color: #fff; }
.chip-n { margin-left: 0.25rem; font-weight: 400; opacity: 0.85; }
/* Área sem nenhuma entrega no município escolhido: visível (o leitor sabe que existe), sem link. */
.chip-vazio { border-style: dashed; border-color: var(--wp--preset--color--muted); color: var(--wp--preset--color--muted); }
.filtro-municipio label { display: block; margin-bottom: 0.35rem; font-weight: 700; }
.filtro-linha { display: flex; gap: 0.5rem; max-width: 30rem; }
.filtro-linha select { flex: 1; }
.filtro-resumo { margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }

/* Paginação: alvos de 44 px e página atual destacada. */
.wp-block-query-pagination { gap: 0.5rem; margin-block-start: var(--wp--preset--spacing--50); }
.wp-block-query-pagination-numbers { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.wp-block-query-pagination :is(.page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.75rem;
	border: 2px solid var(--wp--preset--color--primary-light);
	border-radius: var(--wp--custom--radius);
	text-decoration: none;
}
.wp-block-query-pagination a:hover { border-color: var(--azul); }
.wp-block-query-pagination .page-numbers.current { border-color: var(--azul); background: var(--azul); color: #fff; }
.wp-block-query-pagination .page-numbers.dots { border-color: transparent; }

/* Formulário de contato (Contact Form 7). */
.wpcf7-form > p { margin-block: 0 var(--wp--preset--spacing--30); }
.wpcf7-form label { display: block; font-weight: 700; }
.wpcf7-form label > .wpcf7-form-control-wrap { display: block; margin-top: 0.35rem; font-weight: 400; }
.obrigatorio { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); font-weight: 400; }
.wpcf7-acceptance label { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; }
.wpcf7-acceptance input { width: 1.5rem; height: 1.5rem; margin-top: 0.1rem; flex: none; }
.wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-not-valid { border-color: var(--wp--preset--color--accent-red); }
.wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.35rem;
	color: var(--wp--preset--color--accent-red);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}
.wpcf7 form .wpcf7-response-output {
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0.875rem 1rem;
	border: 2px solid var(--azul);
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--surface);
}
.wpcf7 form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam) .wpcf7-response-output { border-color: var(--wp--preset--color--accent-red); }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--verde); }
.site-footer .wp-block-navigation__container { gap: 0.25rem; }

/* ---------- Movimento ---------- */
@media (prefers-reduced-motion: no-preference) {
	@view-transition { navigation: auto; }
}
::view-transition-old(root),
::view-transition-new(root) { animation-duration: 200ms; }

@keyframes revela {
	from { opacity: 0; transform: translateY(1rem); }
	to { opacity: 1; transform: none; }
}
@supports (animation-timeline: view()) {
	.revela {
		animation: revela linear both;
		animation-timeline: view();
		animation-range: entry 0% entry 35%;
	}
}
/* Fallback do tema.js (IntersectionObserver): só com JS ativo. */
.revela-js .revela:not(.visivel) { opacity: 0; transform: translateY(1rem); }
.revela-js .revela {
	transition: opacity var(--wp--custom--motion--base) var(--wp--custom--motion--ease),
		transform var(--wp--custom--motion--base) var(--wp--custom--motion--ease);
}

a, .wp-block-button__link { transition: color var(--wp--custom--motion--fast), background-color var(--wp--custom--motion--fast); }

/* Tudo o que é linha se traça: a faixa da bandeira, o eixo da linha do tempo e as réguas dos números.
   Só CSS; sem suporte ou com movimento reduzido, as linhas já aparecem prontas. */
@keyframes traca { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes preenche { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes regua { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes acende { from { background-color: var(--wp--preset--color--base); } to { background-color: var(--amarelo); } }
@media (prefers-reduced-motion: no-preference) {
	/* Ao chegar na página, a faixa do topo se estende da esquerda para a direita. */
	.hero.has-flag-edge::after { animation: traca 900ms cubic-bezier(0.16, 1, 0.3, 1) 150ms both; }
	@supports (animation-timeline: view()) {
		.has-flag-edge:not(.hero)::after {
			animation: traca linear both;
			animation-timeline: view();
			animation-range: entry 0% cover 40%;
		}
		/* O eixo se preenche até a altura do meio da tela, e cada marco acende quando o preenchimento chega nele. */
		.linha-do-tempo {
			position: relative;
			border-left-color: color-mix(in srgb, var(--azul) 22%, transparent);
			view-timeline: --linha block;
			view-timeline-inset: 45%;
		}
		.linha-do-tempo::after {
			content: "";
			position: absolute;
			top: 0;
			bottom: 0;
			left: -3px;
			width: 3px;
			background: var(--azul);
			transform-origin: top;
			animation: preenche linear both;
			animation-timeline: --linha;
			animation-range: cover 0% cover 100%;
		}
		.linha-do-tempo .marco::before {
			z-index: 1;
			animation: acende linear both;
			animation-timeline: view(block 45%);
			animation-range: cover 0% cover 100%;
		}
		/* Livro de registro: a régua sob cada linha se traça quando ela entra. */
		.numero-linha { position: relative; border-bottom-color: transparent; }
		.numero-linha::after {
			content: "";
			position: absolute;
			inset: auto 0 -1px;
			height: 1px;
			background: rgba(220, 232, 248, 0.25);
			transform-origin: left;
			animation: regua linear both;
			animation-timeline: view();
			animation-range: entry 0% cover 45%;
		}
	}
}

@media (prefers-reduced-motion: reduce) {
	*, ::before, ::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
	.revela-js .revela:not(.visivel) { opacity: 1; transform: none; }
}

/* Menu sem overlay (sem a Interactivity API): no celular quebra em duas linhas abaixo do nome, tudo à vista. */
.menu-principal .wp-block-navigation__container { gap: 0 1.25rem; }
.wp-block-navigation-item.current-menu-item > a,
.wp-block-navigation-item.current-menu-ancestor > a {
	font-weight: 800;
	text-decoration: underline 0.25rem var(--amarelo);
	text-underline-offset: 0.4em;
	box-shadow: inset 0 -2px 0 var(--azul-escuro);
}
.site-footer .wp-block-navigation-item:is(.current-menu-item, .current-menu-ancestor) > a { box-shadow: none; }
@media (max-width: 63.99rem) {
	.site-header .wp-block-group { row-gap: 0; }
	.menu-principal { width: 100%; }
	.menu-principal .wp-block-navigation__container { gap: 0 1rem; justify-content: flex-start; }
}
@media (min-width: 64rem) {
	.wp-site-blocks > header:has(.site-header) { position: sticky; top: 0; z-index: 50; }
	/* Tela larga: foto nos 60% da direita, texto à esquerda sobre o azul sólido do hero. */
	.hero .hero-foto { width: 60%; justify-self: end; }
	.hero .hero-foto img { object-position: 50% 30%; }
	.hero .hero-foto::after {
		background: linear-gradient(90deg, var(--azul-escuro) 0%, rgba(8, 33, 79, 0) 35%);
	}
	.hero .hero-texto { align-self: center; }
	.hero .hero-texto > * {
		max-width: 34rem;
		margin-left: max(var(--wp--preset--spacing--30), calc((100% - 74rem) / 2)) !important;
		margin-right: auto !important;
	}
}
