/*
 * Tema Nova Israel: o portal de notícias Nova Israel, com a Rádio e a Igreja Nova Israel como abas. Componentes que o
 * theme.json não cobre. Identidade: azuis do logotipo da rádio, Montserrat nos títulos e Inter no texto. Dois modos: o escuro (o original,
 * fundo noite) e o claro, escolhidos pelo botão do cabeçalho ou, sem escolha, pelo aparelho (ver functions.php).
 */

:root {
	--ni-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--ni-raio: 20px;
}

/*
 * Cores do tema. Toda cor de texto, fundo e borda da página passa por estes tokens, nunca por um valor solto, porque o
 * modo claro troca os valores. O rodapé e a faixa do Instagram ficam escuros nos dois modos: recebem os do escuro.
 */
:root,
:root[data-tema='claro'] :is(.ni-rodape, .ni-faixa__caixa) {
	--ni-cor-fundo: var(--wp--preset--color--noite-900);
	--ni-cor-brilho: rgb(24 134 194 / 0.3);
	--ni-cor-texto: var(--wp--preset--color--texto);
	--ni-cor-suave: var(--wp--preset--color--texto-suave);
	--ni-cor-forte: #fff;
	--ni-cor-destaque: var(--wp--preset--color--azul-claro);
	--ni-cor-superficie: linear-gradient(180deg, rgb(255 255 255 / 0.05), rgb(255 255 255 / 0.02));
	--ni-cor-superficie-plana: rgb(255 255 255 / 0.04);
	--ni-cor-imagem: var(--wp--preset--color--noite-800);
	--ni-cor-chip: rgb(91 184 236 / 0.1);
	--ni-cor-chip-borda: rgb(91 184 236 / 0.28);
	--ni-cor-realce-borda: rgb(91 184 236 / 0.4);
	--ni-borda: rgb(255 255 255 / 0.1);
	--ni-borda-forte: rgb(255 255 255 / 0.2);
	--ni-sombra: 0 24px 60px -24px rgb(0 0 0 / 0.65);
	--ni-cor-cabecalho: var(--wp--preset--color--noite-800);
	color-scheme: dark;
}

/* Modo claro: <html data-tema="claro">. Contraste conferido: texto suave 6,2:1 e destaque 5,4:1 sobre o fundo. */
:root[data-tema='claro'] {
	--ni-cor-fundo: #f3f6fa;
	--ni-cor-brilho: rgb(24 134 194 / 0.12);
	--ni-cor-texto: #0a1a31;
	--ni-cor-suave: #4a5d78;
	--ni-cor-forte: #071428;
	--ni-cor-destaque: #0f6aa3;
	--ni-cor-superficie: #fff;
	--ni-cor-superficie-plana: #fff;
	--ni-cor-imagem: #dbe5f0;
	--ni-cor-chip: rgb(20 120 180 / 0.08);
	--ni-cor-chip-borda: rgb(20 120 180 / 0.24);
	--ni-cor-realce-borda: rgb(20 120 180 / 0.45);
	--ni-borda: rgb(10 26 49 / 0.1);
	--ni-borda-forte: rgb(10 26 49 / 0.2);
	--ni-sombra: 0 18px 40px -22px rgb(10 26 49 / 0.28);
	--ni-cor-cabecalho: #fff;
	color-scheme: light;
}

/* ---------- base ---------- */

/* O WordPress não muda o box-sizing; os componentes do tema contam a borda e o espaçamento na largura. */
:where([class^='ni-'], [class*=' ni-']),
:where([class^='ni-'], [class*=' ni-']) *,
:where([class^='ni-'], [class*=' ni-']) ::before,
:where([class^='ni-'], [class*=' ni-']) ::after {
	box-sizing: border-box;
}

body {
	background-image: radial-gradient(70% 560px at 50% -140px, var(--ni-cor-brilho), transparent 70%);
	background-repeat: no-repeat;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

.wp-site-blocks > * {
	margin-block: 0;
}

::selection {
	background: var(--wp--preset--color--azul-vibrante);
	color: #fff;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--ni-cor-destaque);
	outline-offset: 3px;
	border-radius: 8px;
}

main:focus {
	outline: none;
}

h1,
h2,
h3 {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
	word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
	position: fixed !important;
	top: 12px;
	left: 12px;
	z-index: 100001;
	width: auto;
	height: auto;
	padding: 12px 18px;
	margin: 0;
	clip: auto;
	border-radius: 12px;
	background: #fff;
	color: var(--wp--preset--color--texto-escuro);
	font-weight: 700;
	text-decoration: none;
}

/* ---------- etiquetas e botões ---------- */

.ni-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: fit-content;
	padding: 5px 12px;
	border: 1px solid var(--ni-cor-chip-borda);
	border-radius: 999px;
	background: var(--ni-cor-chip);
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

.ni-botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 22px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	background: transparent;
	color: var(--ni-cor-texto);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition:
		transform 0.2s var(--ni-ease),
		background-color 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		color 0.2s ease;
}

.ni-botao:hover {
	transform: translateY(-2px);
}

.ni-botao:active {
	transform: translateY(0) scale(0.98);
}

.ni-botao .ni-icone {
	width: 20px;
	height: 20px;
}

.ni-botao--primario {
	background: var(--wp--preset--color--azul-acao);
	color: #fff;
	box-shadow: 0 0 0 1px rgb(91 184 236 / 0.25), 0 18px 44px -14px rgb(24 134 194 / 0.6);
}

.ni-botao--primario:hover,
.ni-botao--primario:focus-visible {
	background: var(--wp--preset--color--azul-acao-forte);
	color: #fff;
}

.ni-botao--secundario {
	background: var(--ni-cor-superficie-plana);
	border-color: var(--ni-borda-forte);
}

.ni-botao--secundario:hover,
.ni-botao--secundario:focus-visible {
	background: var(--ni-cor-chip);
	border-color: var(--ni-cor-destaque);
	color: var(--ni-cor-forte);
}

.ni-botao--claro {
	background: #fff;
	color: var(--wp--preset--color--azul-escuro);
}

.ni-botao--claro:hover,
.ni-botao--claro:focus-visible {
	background: var(--wp--preset--color--azul-gelo);
	color: var(--wp--preset--color--azul-escuro);
}

/* Nos celulares mais estreitos (320 px), o texto quebra a linha em vez de vazar para o lado. */
.ni-botao--whatsapp {
	max-width: 100%;
	background: var(--ni-cor-superficie-plana);
	border-color: var(--ni-borda-forte);
	text-align: center;
	white-space: normal;
}

.ni-botao--whatsapp .ni-icone {
	color: #25d366;
}

.ni-botao--whatsapp:hover,
.ni-botao--whatsapp:focus-visible {
	border-color: #25d366;
	color: var(--ni-cor-forte);
}

/* Botão "Ouça ao vivo" ligado */
.ni-botao[aria-pressed='true'] {
	box-shadow: 0 0 0 3px rgb(91 184 236 / 0.45), 0 18px 44px -14px rgb(24 134 194 / 0.8);
}

/* ---------- cabeçalho do portal ---------- */

/*
 * O portal de notícias Nova Israel: o nome e a data, as abas (Notícias, Rádio Nova Israel e Igreja Nova Israel), a
 * busca e o modo claro. Embaixo, as seções de notícias ou os atalhos da aba aberta. A faixa da rádio fica presa no topo
 * (plugin); o cabeçalho rola com a página e deixa a tela para as notícias.
 */
.ni-topo {
	padding: 0;
}

.ni-cabecalho {
	border-bottom: 1px solid var(--ni-borda);
	background: var(--ni-cor-cabecalho);
}

/* Só a margem do fluxo do WordPress: a linha de cima precisa do margin-inline: auto para centralizar. */
.ni-cabecalho > * {
	margin-block: 0 !important;
}

.ni-cabecalho__linha {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px 28px;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-inline: auto;
	padding: 14px clamp(16px, 3vw, 24px);
}

.ni-marca {
	display: grid;
	gap: 5px;
	min-width: 0;
}

.ni-marca > * {
	margin: 0;
}

.ni-marca__nome {
	width: fit-content;
	color: var(--ni-cor-forte);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: clamp(1.55rem, 1.2rem + 1.2vw, 2.1rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.ni-marca__nome:hover {
	color: var(--ni-cor-destaque);
}

/*
 * A logo "Nova Israel" (a arte da igreja só com o nome) no lugar do nome escrito: a azul no modo claro e a branca no
 * escuro, como o fundo do cabeçalho. Sem JavaScript, o site fica escuro e mostra a branca.
 */
.ni-marca__nome--logo {
	display: block;
	line-height: 0;
}

.ni-marca__logo {
	display: block;
	width: auto;
	height: 68px;
}

.ni-marca__logo--azul,
:root[data-tema='claro'] .ni-marca__logo--branco {
	display: none;
}

:root[data-tema='claro'] .ni-marca__logo--azul {
	display: block;
}

.ni-marca__data {
	color: var(--ni-cor-suave);
	font-size: 0.8rem;
	white-space: nowrap;
}

/* Abas: o portal é de notícias; a rádio e a igreja são abas dele. */
.ni-abas {
	justify-self: center;
	min-width: 0;
}

.ni-abas ul {
	display: flex;
	gap: 4px;
	margin: 0;
	padding: 4px;
	border: 1px solid var(--ni-borda);
	border-radius: 999px;
	background: var(--ni-cor-superficie-plana);
	list-style: none;
}

.ni-abas li {
	margin: 0;
}

.ni-aba {
	display: block;
	padding: 9px 18px;
	border-radius: 999px;
	color: var(--ni-cor-texto);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ni-aba:hover {
	background: var(--ni-cor-chip);
	color: var(--ni-cor-forte);
}

.ni-aba[aria-current] {
	background: var(--wp--preset--color--azul-acao);
	color: #fff;
}

.ni-cabecalho__acoes {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Botões redondos do cabeçalho: abrir a busca e trocar o modo. */
.ni-icone-botao {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--ni-borda-forte);
	border-radius: 50%;
	background: transparent;
	color: var(--ni-cor-forte);
	cursor: pointer;
	list-style: none;
	-webkit-tap-highlight-color: transparent;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s var(--ni-ease);
}

.ni-icone-botao::-webkit-details-marker,
.ni-icone-botao::marker {
	display: none;
	content: '';
}

.ni-icone-botao:hover {
	background: var(--ni-cor-chip);
}

.ni-icone-botao:active {
	transform: scale(0.95);
}

.ni-icone-botao svg {
	display: block;
	width: 20px;
	height: 20px;
}

/* Botão do modo claro: no escuro mostra o sol (vai para o claro); no claro, a lua. */
.ni-tema .ni-tema__lua,
:root[data-tema='claro'] .ni-tema .ni-tema__sol {
	display: none;
}

:root[data-tema='claro'] .ni-tema .ni-tema__lua {
	display: block;
}

/* Busca: o botão abre o campo embaixo dele, sem script. */
.ni-procura {
	position: relative;
}

.ni-procura[open] > summary {
	border-color: var(--ni-cor-destaque);
	background: var(--ni-cor-chip);
}

.ni-procura__formulario {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 20;
	display: flex;
	gap: 8px;
	width: min(440px, calc(100vw - 32px));
	padding: 10px;
	border: 1px solid var(--ni-borda-forte);
	border-radius: 20px;
	background: var(--ni-cor-cabecalho);
	box-shadow: var(--ni-sombra);
}

.ni-procura__campo {
	flex: 1;
	min-width: 0;
	min-height: 46px;
	padding: 0 18px;
	border: 1px solid var(--ni-borda-forte);
	border-radius: 999px;
	background: var(--ni-cor-fundo);
	color: var(--ni-cor-texto);
	font: inherit;
}

.ni-procura__campo::placeholder {
	color: var(--ni-cor-suave);
}

.ni-procura__botao {
	min-height: 46px;
	padding: 0 18px;
	font-size: 0.9rem;
}

/* Embaixo das abas: as seções de notícias ou os atalhos da aba aberta. */
.ni-subnav {
	border-top: 1px solid var(--ni-borda);
}

.ni-subnav ul {
	display: flex;
	gap: 4px 28px;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin: 0 auto;
	padding: 0 clamp(16px, 3vw, 24px);
	overflow-x: auto;
	list-style: none;
	scrollbar-width: none;
}

.ni-subnav li {
	margin: 0;
}

.ni-subnav a {
	display: block;
	padding: 13px 0 10px;
	border-bottom: 3px solid transparent;
	color: var(--ni-cor-texto);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.ni-subnav a:hover {
	color: var(--ni-cor-destaque);
}

.ni-subnav a[aria-current] {
	border-bottom-color: var(--ni-cor-destaque);
	color: var(--ni-cor-forte);
}

@media (max-width: 899px) {
	.ni-cabecalho__linha {
		grid-template-columns: minmax(0, 1fr) auto;
		padding-block: 12px;
	}

	.ni-abas {
		grid-column: 1 / -1;
		grid-row: 2;
		justify-self: stretch;
	}

	.ni-abas li {
		flex: 1;
	}

	.ni-aba {
		padding: 9px 8px;
		text-align: center;
	}
}

/* No celular, as abas mostram "Rádio" e "Igreja"; o "Nova Israel" continua para os leitores de tela. */
@media (max-width: 599px) {
	.ni-aba__resto {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.ni-marca__data {
		font-size: 0.74rem;
	}

	.ni-marca__logo {
		height: 48px;
	}
}

/* ---------- listas de notícias ---------- */

.ni-lista {
	padding-top: clamp(36px, 6vw, 64px);
}

.ni-lista > * {
	margin-block: 0;
}

.ni-lista > * + * {
	margin-top: 24px;
}

.ni-titulo-secao {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ni-titulo-secao::before {
	content: '';
	flex: none;
	width: 6px;
	height: 1.1em;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--wp--preset--color--azul-claro), var(--wp--preset--color--azul-vibrante));
}

.ni-grade {
	display: grid;
	gap: clamp(16px, 2vw, 24px);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
	margin-inline: 0;
	margin-bottom: 0;
	padding: 0;
	list-style: none;
}

.ni-grade > li {
	margin: 0;
}

/* ---------- página inicial: manchete, mais recentes e últimas ---------- */

/* A manchete ocupa a coluna larga; as mais recentes ficam ao lado dela (no celular, embaixo). */
.ni-manchete {
	display: grid;
	gap: clamp(28px, 4vw, 40px);
	padding-top: clamp(20px, 3vw, 32px);
}

.ni-manchete > * {
	margin: 0;
}

@media (min-width: 960px) {
	.ni-manchete:has(> .ni-recentes) {
		grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr);
		align-items: start;
	}
}

/* Uma notícia só: ocupa a coluna inteira (a grade comum abriria várias colunas e a deixaria estreita). */
.ni-grade--manchete {
	grid-template-columns: minmax(0, 1fr);
}

.ni-cartao--manchete .ni-cartao__imagem {
	border-radius: 18px;
}

.ni-cartao--manchete .ni-cartao__corpo {
	gap: 12px;
	padding: 18px 0 0;
}

.ni-cartao--manchete .ni-cartao__titulo {
	font-size: clamp(1.6rem, 1.15rem + 1.6vw, 2.4rem);
	line-height: 1.12;
}

.ni-cartao--manchete .ni-cartao__resumo {
	font-size: 1.05rem;
}

.ni-recentes {
	display: grid;
	align-content: start;
	gap: 8px;
}

.ni-recentes > * {
	margin: 0;
}

.ni-recentes__lista {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ni-recentes__lista > li {
	margin: 0;
}

.ni-recentes__lista > li + li {
	border-top: 1px solid var(--ni-borda);
}

/* Cada notícia ao lado abre por um link só, o do título, que cobre a linha. */
.ni-recente {
	position: relative;
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	padding: 14px 0;
}

.ni-recente:not(:has(.ni-recente__imagem)) {
	grid-template-columns: minmax(0, 1fr);
}

.ni-recente > *,
.ni-recente__corpo > * {
	margin: 0;
}

.ni-recente__imagem {
	overflow: hidden;
	border-radius: 12px;
	background: var(--ni-cor-imagem);
}

.ni-recente__imagem img {
	display: block;
	width: 100%;
}

.ni-recente__corpo {
	display: grid;
	gap: 4px;
}

.ni-recente__secao {
	font-size: 0;
}

.ni-recente__secao .wp-block-post-terms__separator {
	display: none;
}

.ni-recente__secao a {
	position: relative;
	z-index: 1;
	margin-right: 8px;
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.ni-recente__secao a:hover {
	text-decoration: underline;
}

.ni-recente__titulo {
	font-size: 1.02rem;
	line-height: 1.3;
}

.ni-recente__titulo a::after {
	content: '';
	position: absolute;
	inset: 0;
}

.ni-recente__titulo a:focus-visible {
	outline: none;
}

.ni-recente:has(.ni-recente__titulo a:focus-visible) {
	border-radius: 12px;
	outline: 3px solid var(--ni-cor-destaque);
	outline-offset: 3px;
}

.ni-recente__data {
	font-size: 0.82rem;
}

/* Últimas notícias: "Ver todas" no alto, à direita do título. */
.ni-ultimas {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 16px;
}

.ni-ultimas > .ni-grade {
	grid-column: 1 / -1;
}

.ni-ultimas > .ni-lista__mais {
	margin-top: 0;
}

.ni-lista__mais a {
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.ni-lista__mais a:hover {
	text-decoration: underline;
}

/*
 * Cartão de notícia como nos portais: sem caixa, a foto com canto arredondado e o texto embaixo. O cartão todo abre a
 * notícia por um link só, o do título (a foto não é outro link igual).
 */
.ni-cartao {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	border-radius: 16px;
}

.ni-cartao > * {
	margin: 0;
}

.ni-cartao:hover .ni-cartao__titulo a {
	color: var(--ni-cor-destaque);
}

/* Notícia sem foto: uma faixa no lugar da imagem */
.ni-cartao:not(:has(.ni-cartao__imagem))::before {
	content: '';
	display: block;
	height: 6px;
	border-radius: 6px;
	background: linear-gradient(90deg, var(--wp--preset--color--azul-escuro), var(--wp--preset--color--azul-claro));
}

.ni-cartao__imagem {
	margin: 0;
	overflow: hidden;
	border-radius: 14px;
	background: var(--ni-cor-imagem);
}

.ni-cartao__imagem img {
	display: block;
	width: 100%;
	transition: transform 0.4s var(--ni-ease);
}

.ni-cartao:hover .ni-cartao__imagem img {
	transform: scale(1.03);
}

.ni-cartao__corpo {
	display: grid;
	flex: 1;
	align-content: start;
	gap: 8px;
	padding: 14px 0 0;
}

.ni-cartao__corpo > * {
	margin: 0;
}

.ni-cartao__titulo {
	font-size: 1.16rem;
	line-height: 1.28;
}

.ni-cartao__titulo a {
	transition: color 0.2s ease;
}

.ni-cartao__titulo a::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.ni-cartao__titulo a:focus-visible {
	outline: none;
}

.ni-cartao:has(.ni-cartao__titulo a:focus-visible) {
	outline: 3px solid var(--ni-cor-destaque);
	outline-offset: 3px;
}

/* Os links da seção ficam por cima do link do cartão. */
.ni-cartao__secao a {
	position: relative;
	z-index: 1;
}

.ni-cartao__resumo p {
	margin: 0;
}

.ni-cartao__secao {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	font-size: 0;
}

.ni-cartao__secao .wp-block-post-terms__separator {
	display: none;
}

.ni-cartao__secao a {
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-decoration: none;
	text-transform: uppercase;
}

.ni-cartao__secao a:hover {
	color: var(--ni-cor-forte);
	text-decoration: underline;
}

.ni-lista__mais {
	display: flex;
	justify-content: center;
}

.ni-vazio {
	padding: 28px;
	border: 1px dashed var(--ni-borda-forte);
	border-radius: var(--ni-raio);
	color: var(--ni-cor-suave);
	text-align: center;
}

.ni-paginacao {
	gap: 8px;
	padding-top: 12px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 700;
}

.ni-paginacao a,
.ni-paginacao .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--ni-borda-forte);
	border-radius: 999px;
	color: var(--ni-cor-texto);
	text-decoration: none;
}

.ni-paginacao a:hover {
	border-color: var(--ni-cor-destaque);
	color: var(--ni-cor-forte);
}

.ni-paginacao .page-numbers.current {
	border-color: var(--wp--preset--color--azul-acao);
	background: var(--wp--preset--color--azul-acao);
	color: #fff;
}

/* ---------- seções na página inicial (editorias) ---------- */

/* Um bloco por seção, como nos portais: o nome em cima, "Ver mais" à direita e as três mais novas. */
.ni-editoria {
	padding-top: clamp(40px, 6vw, 64px);
}

.ni-editoria > * {
	margin-block: 0;
}

.ni-editoria > * + * {
	margin-top: 20px;
}

.ni-editoria__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--ni-borda);
}

.ni-editoria__topo .ni-titulo-secao {
	margin: 0;
}

.ni-editoria__mais {
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.ni-editoria__mais:hover {
	text-decoration: underline;
}

/* Três por seção: três colunas no computador, uma embaixo da outra no celular. */
.ni-grade--editoria {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}

@media (min-width: 900px) {
	.ni-grade--editoria {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* ---------- notícia: linha fina, data com hora e "Leia também" ---------- */

.ni-noticia__linha-fina {
	max-width: 60ch;
	color: var(--ni-cor-suave);
	font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
	line-height: 1.5;
}

.ni-noticia__linha-fina p {
	margin: 0;
}

.ni-noticia__meta {
	align-items: center;
	padding-top: 14px;
	border-top: 1px solid var(--ni-borda);
	font-size: var(--wp--preset--font-size--pequeno);
}

.ni-leia-tambem {
	margin-top: clamp(40px, 6vw, 64px) !important;
	padding-top: 0;
}

/* ---------- abas da Rádio e da Igreja Nova Israel ---------- */

.ni-cabecalho-pagina--aba {
	gap: 16px;
}

.ni-cabecalho-pagina--aba .ni-cabecalho-pagina__texto {
	max-width: 68ch;
	margin-top: 0 !important;
	font-size: 1.08rem;
}

.ni-cabecalho-pagina--aba .ni-cabecalho-pagina__texto > :first-child {
	margin-top: 0;
}

/* Os logotipos da rádio e da igreja, sobre branco como no original, nos dois modos. */
.ni-aba-logo {
	display: inline-grid;
	place-items: center;
	width: fit-content;
	padding: 10px 14px;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--ni-borda), 0 12px 28px -18px rgb(0 0 0 / 0.5);
}

.ni-aba-logo img {
	display: block;
	width: 88px;
	height: auto;
}

/* A logo da igreja é horizontal: vale a altura, para o nome ficar legível. */
.ni-cabecalho-pagina--igreja .ni-aba-logo img {
	width: auto;
	height: 72px;
}

/*
 * Rádio: o player ao lado da programação da rádio. No celular, uma coluna da largura da tela: sem o minmax(0, 1fr), a
 * coluna cresceria até o conteúdo mais largo e a página vazaria para o lado.
 */
.ni-radio-aba {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(28px, 4vw, 40px);
	align-items: start;
	padding-top: clamp(28px, 4vw, 40px);
}

.ni-radio-aba > * {
	margin: 0;
}

@media (min-width: 960px) {
	.ni-radio-aba {
		grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
	}
}

.ni-radio-aba__programacao > * {
	margin-block: 0;
}

.ni-radio-aba__programacao > * + * {
	margin-top: 18px;
}

/* Igreja: os cultos, os eventos e as notícias da seção, depois do pão diário e da agenda. */
.ni-igreja-aba__cultos,
.ni-igreja-aba__eventos {
	padding-top: clamp(40px, 6vw, 64px);
}

.ni-igreja-aba__cultos > * {
	margin-block: 0;
}

.ni-igreja-aba__cultos > * + * {
	margin-top: 18px;
}

/* Os links das abas são frases mais longas: no celular, quebram a linha em vez de vazar. */
.ni-lista__mais--inicio {
	justify-content: flex-start;
}

.ni-lista__mais--inicio a {
	white-space: normal;
}

/* Rodapé: o nome do portal, como no cabeçalho. */
.ni-rodape__marca .ni-marca__nome {
	font-size: 1.7rem;
}

.ni-rodape__coluna .ni-rodape__sede {
	margin-top: 26px;
}

/* ---------- cabeçalho das páginas internas ---------- */

.ni-cabecalho-pagina {
	display: grid;
	gap: 12px;
	padding-top: clamp(32px, 6vw, 64px);
}

.ni-cabecalho-pagina > * {
	margin: 0;
}

.ni-cabecalho-pagina .wp-block-term-description p {
	max-width: 62ch;
	margin: 0;
}

/* ---------- faixa do Instagram ---------- */

.ni-faixa {
	padding-top: clamp(48px, 8vw, 96px);
}

.ni-faixa__caixa {
	display: grid;
	justify-items: center;
	gap: 14px;
	padding: clamp(28px, 6vw, 64px) clamp(20px, 5vw, 56px);
	border-radius: 28px;
	background:
		radial-gradient(80% 120% at 0% 0%, rgb(91 184 236 / 0.35), transparent 60%),
		linear-gradient(135deg, #0f5aa0, var(--wp--preset--color--azul-escuro) 55%, #062f5e);
	box-shadow: var(--ni-sombra);
	text-align: center;
}

.ni-faixa__caixa > * {
	margin: 0;
}

.ni-faixa__caixa p {
	max-width: 56ch;
	color: #dcecfa;
}

.ni-faixa__titulo {
	font-size: var(--wp--preset--font-size--titulo);
}

.ni-faixa__acoes {
	margin-top: 8px !important;
}

/* ---------- notícia ---------- */

.ni-noticia__topo {
	display: grid;
	gap: 14px;
	padding-top: clamp(32px, 6vw, 64px);
}

.ni-noticia__topo > * {
	margin: 0;
}

.ni-noticia__titulo {
	font-size: var(--wp--preset--font-size--titulo);
}

.ni-noticia__meta {
	gap: 4px 18px;
	color: var(--ni-cor-suave);
}

/* O CSS do núcleo dá flex-basis: 0 ao conteúdo do autor e width: 100% ao "Por": o bloco encolhia até a palavra mais
   longa, o nome quebrava uma palavra por linha e o "Por" ficava longe dele. */
.ni-noticia__meta .wp-block-post-author__content {
	display: flex;
	flex: 0 0 auto;
	gap: 0.35em;
	font-size: var(--wp--preset--font-size--pequeno);
}

.ni-noticia__meta .wp-block-post-author__byline,
.ni-noticia__meta .wp-block-post-author__name {
	margin: 0;
	font-size: inherit;
}

.ni-noticia__meta .wp-block-post-author__byline {
	width: auto;
}

.ni-noticia__imagem {
	margin-top: 28px !important;
}

.ni-noticia__imagem img {
	border-radius: 24px;
}

.ni-texto {
	margin-top: 28px !important;
	font-size: 1.1rem;
}

.ni-texto > * + * {
	margin-top: 1.1em;
}

.ni-texto h2,
.ni-texto h3 {
	margin-top: 1.6em;
}

.ni-texto img {
	border-radius: 16px;
}

.wp-block-nova-israel-compartilhar-whatsapp {
	margin-top: 36px !important;
}

.ni-noticia__navegacao {
	gap: 16px;
	margin-top: 48px !important;
	padding-top: 24px;
	border-top: 1px solid var(--ni-borda);
}

.ni-noticia__navegacao a {
	color: var(--ni-cor-texto);
	text-decoration: none;
}

.ni-noticia__navegacao a:hover {
	color: var(--ni-cor-destaque);
}

.ni-noticia__navegacao .post-navigation-link__label {
	display: block;
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ---------- página comum e erro ---------- */

.ni-erro {
	display: grid;
	gap: 18px;
	justify-items: start;
	padding-block: clamp(48px, 8vw, 96px) 0;
}

.ni-erro > * {
	margin: 0;
}

/* ---------- busca ---------- */

.ni-busca {
	width: 100%;
	max-width: 560px;
}

.ni-busca .wp-block-search__inside-wrapper {
	gap: 8px;
	padding: 0;
	border: 0;
}

.ni-busca .wp-block-search__input {
	min-height: 50px;
	padding: 0 20px;
	border: 1px solid var(--ni-borda-forte);
	border-radius: 999px;
	background: var(--ni-cor-superficie-plana);
	color: var(--ni-cor-texto);
	font: inherit;
}

.ni-busca .wp-block-search__input::placeholder {
	color: var(--ni-cor-suave);
}

.ni-busca .wp-block-search__button {
	min-height: 50px;
	margin: 0;
	padding: 0 22px;
}

/* ---------- rodapé ---------- */

.ni-rodape {
	margin-top: clamp(56px, 9vw, 112px);
	padding-block: clamp(40px, 6vw, 64px) 28px;
	border-top: 1px solid rgb(255 255 255 / 0.08);
	background: var(--wp--preset--color--noite-950);
}

.ni-rodape__grade {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

@media (min-width: 900px) {
	.ni-rodape__grade {
		grid-template-columns: 1.3fr 1fr 1fr 1.2fr;
	}
}

.ni-rodape__marca {
	display: grid;
	gap: 14px;
	align-content: start;
}

/* As logos brancas da rádio e da igreja, cada uma levando à sua aba. */
.ni-rodape__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
}

.ni-rodape__logos img {
	display: block;
	width: auto;
	height: 72px;
}

.ni-rodape__marca p {
	max-width: 32ch;
	margin: 0;
	color: var(--ni-cor-suave);
}

.ni-rodape__coluna h2 {
	margin: 0 0 14px;
	color: var(--ni-cor-destaque);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.ni-rodape__coluna ul {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ni-rodape__coluna a,
.ni-rodape__ouvir {
	padding: 0;
	border: 0;
	background: none;
	color: var(--ni-cor-texto);
	font: inherit;
	text-decoration: none;
	cursor: pointer;
}

.ni-rodape__coluna a:hover,
.ni-rodape__ouvir:hover {
	color: var(--ni-cor-destaque);
	text-decoration: underline;
}

.ni-rodape__coluna address,
.ni-rodape__coluna p {
	margin: 0 0 10px;
	color: var(--ni-cor-suave);
	font-style: normal;
}

.ni-rodape__fim {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin-top: 40px !important;
	padding-top: 20px;
	border-top: 1px solid var(--ni-borda);
	color: var(--ni-cor-suave);
	font-size: var(--wp--preset--font-size--pequeno);
}

/* Sublinhado sempre: num texto pequeno, a cor sozinha não basta para mostrar que é link. */
.ni-rodape__fim a {
	color: var(--ni-cor-texto);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ni-rodape__fim a:hover {
	color: var(--ni-cor-destaque);
}

/* ---------- movimento e contraste ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- programação ---------- */

.ni-programacao {
	display: grid;
	gap: clamp(32px, 5vw, 48px);
	padding-top: clamp(24px, 4vw, 40px);
}

@media (min-width: 900px) {
	.ni-programacao {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.ni-programacao__coluna {
	display: grid;
	align-content: start;
	gap: 20px;
}

.ni-programacao__coluna > *,
.ni-programacao > * {
	margin: 0;
}

.ni-grade-semanal {
	display: grid;
	gap: 14px;
}

.ni-grade-semanal__dia {
	padding: 18px 20px 20px;
	border: 1px solid var(--ni-borda);
	border-radius: var(--ni-raio);
	background: var(--ni-cor-superficie);
}

.ni-grade-semanal__dia h3 {
	margin: 0 0 12px;
	color: var(--ni-cor-destaque);
	font-size: 1rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.ni-grade-semanal ul {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ni-grade-semanal__item {
	display: grid;
	grid-template-columns: 8.5rem minmax(0, 1fr);
	gap: 4px 14px;
}

@media (max-width: 480px) {
	.ni-grade-semanal__item {
		grid-template-columns: 1fr;
	}
}

.ni-grade-semanal__hora {
	color: var(--ni-cor-forte);
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 700;
}

.ni-grade-semanal__texto strong {
	color: var(--ni-cor-forte);
	font-family: var(--wp--preset--font-family--montserrat);
}

.ni-grade-semanal__texto p {
	margin: 4px 0 0;
	color: var(--ni-cor-suave);
	font-size: 0.95rem;
	line-height: 1.5;
}

/* ---------- pão diário e agenda (aba da Igreja Nova Israel) ---------- */

.ni-dupla {
	display: grid;
	gap: clamp(32px, 5vw, 48px);
	padding-top: clamp(48px, 8vw, 96px);
}

@media (min-width: 900px) {
	.ni-dupla:has(> :nth-child(2)) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.ni-dupla > * {
	margin: 0;
}

.ni-pao,
.ni-agenda {
	display: grid;
	align-content: start;
	gap: 20px;
}

.ni-pao > *,
.ni-agenda > * {
	margin: 0;
}

.ni-pao__cartao {
	display: grid;
	gap: 14px;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--ni-cor-chip-borda);
	border-radius: 24px;
	background:
		radial-gradient(90% 120% at 100% 0%, var(--ni-cor-brilho), transparent 60%),
		var(--ni-cor-superficie);
}

.ni-pao__cartao > * {
	margin: 0;
}

.ni-pao__titulo {
	font-size: var(--wp--preset--font-size--x-grande);
}

.ni-pao__titulo a {
	color: var(--ni-cor-forte);
	text-decoration: none;
}

.ni-pao__titulo a:hover {
	color: var(--ni-cor-destaque);
}

.ni-pao__texto {
	color: var(--ni-cor-suave);
}

.ni-pao__acoes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
}

.ni-chip a {
	color: inherit;
	text-decoration: none;
}

.ni-agenda__lista {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ni-agenda__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2px 12px;
	padding: 14px 18px;
	border: 1px solid var(--ni-borda);
	border-radius: 16px;
	background: var(--ni-cor-superficie-plana);
}

.ni-agenda__quando {
	grid-column: 1 / -1;
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.85rem;
	font-weight: 700;
}

.ni-agenda__titulo {
	color: var(--ni-cor-forte);
	font-family: var(--wp--preset--font-family--montserrat);
}

.ni-agenda__tipo {
	align-self: center;
	color: var(--ni-cor-suave);
	font-size: 0.85rem;
	white-space: nowrap;
}

.ni-grade-semanal__hora--a-confirmar {
	color: var(--ni-cor-suave);
	font-size: 0.88rem;
	font-weight: 600;
}

.ni-texto--largo {
	margin-top: 16px !important;
}

.ni-texto--largo > * {
	max-width: 62ch;
}

/* ---------- eventos e datas especiais ---------- */

.ni-programacao-eventos {
	padding-top: clamp(40px, 6vw, 64px);
}

.ni-eventos {
	display: grid;
	gap: 20px;
}

.ni-eventos > * {
	margin: 0;
}

.ni-eventos__lista {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.ni-evento {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	padding: 16px 18px;
	border: 1px solid var(--ni-borda);
	border-radius: var(--ni-raio);
	background: var(--ni-cor-superficie);
}

.ni-evento__data {
	display: grid;
	place-items: center;
	width: 58px;
	padding: 8px 0;
	border-radius: 14px;
	background: var(--wp--preset--color--azul-acao);
	color: #fff;
	font-family: var(--wp--preset--font-family--montserrat);
	line-height: 1.1;
}

.ni-evento--data-crista .ni-evento__data {
	background: var(--ni-cor-chip);
	color: var(--ni-cor-destaque);
	box-shadow: inset 0 0 0 1px var(--ni-cor-chip-borda);
}

.ni-evento__dia {
	font-size: 1.35rem;
	font-weight: 800;
}

.ni-evento__mes {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ni-evento__texto > * {
	margin: 0;
}

.ni-evento__quando {
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.85rem;
	font-weight: 700;
}

.ni-evento__titulo {
	margin-top: 4px !important;
	font-size: var(--wp--preset--font-size--grande);
}

.ni-evento__titulo a {
	color: var(--ni-cor-forte);
	text-decoration: none;
}

.ni-evento__titulo a:hover {
	color: var(--ni-cor-destaque);
	text-decoration: underline;
}

.ni-evento__info {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin-top: 6px !important;
	color: var(--ni-cor-suave);
	font-size: 0.9rem;
}

.ni-evento__rotulo {
	color: var(--ni-cor-texto);
	font-weight: 600;
}

.ni-agenda__titulo a {
	color: var(--ni-cor-forte);
	text-decoration: none;
}

.ni-agenda__titulo a:hover {
	color: var(--ni-cor-destaque);
	text-decoration: underline;
}

.ni-evento-detalhes {
	display: grid;
	gap: 14px;
}

.ni-evento-detalhes > * {
	margin: 0;
}

.ni-evento-detalhes dl {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin: 0;
}

.ni-evento-detalhes dt {
	color: var(--ni-cor-destaque);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ni-evento-detalhes dd {
	margin: 2px 0 0;
	color: var(--ni-cor-forte);
	font-weight: 600;
}

.ni-noticia__voltar {
	margin-top: 32px !important;
}

/* Na página do evento, o tipo sobe para cima do título (como a seção nas notícias). */
.ni-noticia__topo .ni-evento-detalhes {
	display: contents;
}

.ni-noticia__topo .ni-evento-detalhes .ni-chip {
	order: -1;
}
