/* ==========================================================================
   Campanha 2026 - novo layout do portal
   Carregado DEPOIS de style.css e custom.css: so muda a aparencia.
   As posicoes de modulo, menus e scripts continuam os mesmos do IDG 2019.
   ========================================================================== */

:root {
	/* cores do site original: amarelo #f4af02, texto #222, cinza #f1f1f1, fundo branco */
	--cp-escuro: #222222;
	--cp-link: #8a6100;
	--cp-claro: #fdf3d6;
	--cp-ouro: #f4af02;
	--cp-ouro-escuro: #8a6100;
	--cp-fundo: #ffffff;
	--cp-cinza: #f1f1f1;
	--cp-branco: #ffffff;
	--cp-texto: #222222;
	--cp-texto-suave: #5c5c5c;
	--cp-linha: #dedede;
	--cp-raio: 14px;
	--cp-sombra: 0 1px 2px rgba(0, 0, 0, .06), 0 8px 24px rgba(0, 0, 0, .08);
	--cp-sombra-forte: 0 2px 4px rgba(0, 0, 0, .08), 0 16px 36px rgba(0, 0, 0, .16);
}

body {
	background: var(--cp-fundo);
	color: var(--cp-texto);
	-webkit-font-smoothing: antialiased;
}

a { transition: color .15s ease, background-color .15s ease, border-color .15s ease; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--cp-ouro); outline-offset: 2px; }

/* ---------- Barra superior (redes sociais + links rapidos) ---------- */
/* mantem o amarelo original da barra */
#barra-brasil .link-barra { letter-spacing: .04em; }
#barra-brasil .espacador { opacity: .35; }

/* ---------- Cabecalho ---------- */
header.topo {
	background: var(--cp-branco);
}
/* o tema original usa 45px aqui: 25px no celular, 20px a partir de 800px */
header.topo { padding-top: 25px; }
@media (min-width: 800px) { header.topo { padding-top: 20px; } }
header .header-wrapper {
	height: auto;
	min-height: 0;
	padding: 16px 0;
	gap: 24px;
}
/* sem o recuo e a folga de baixo do tema original: a logo fica centralizada na altura com os botoes */
header .logo22,
header #logo.logo22 { margin: 0; padding: 0; }

/* Cabecalho por largura de tela:
   - 1050px ou mais: logo a esquerda com recuo de 140px, contraste e botoes de letra a direita
   - de 800px a 1049px: logo no centro da pagina, so o icone do contraste
   - abaixo de 800px: versao celular (logo centralizada, sem os botoes) */
@media (min-width: 800px) {
	header .logo222 { display: none; }
	header .logo22 { display: block; }
	header .header-accessibility { display: block; }
	header .header-wrapper { position: relative; }
	header .header-accessibility { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
}
@media (min-width: 1050px) {
	header #logo.logo22 { margin-left: 140px; }
}
@media (min-width: 1050px) and (max-width: 1199px) { header #logo.logo22 img { max-height: 72px; } }
@media (min-width: 800px) and (max-width: 1049px) {
	header .header-wrapper { justify-content: center; }
	header #logo.logo22 { flex: 0 1 auto; }
	header #logo.logo22 img { max-height: 62px; }
}
/* abaixo de 1200px fica so o icone do alto contraste, sem o texto, para nao encostar na logo */
@media (min-width: 800px) and (max-width: 1199px) {
	header.topo .header-accessibility #siteaction-contraste > a { width: 36px; padding: 0; font-size: 0; overflow: hidden; }
	header.topo .header-accessibility #siteaction-contraste > a:before { left: 8px; }
}
@media (min-width: 800px) and (max-width: 991px) { header #logo.logo22 img { max-height: 46px; } }
header .logo22 img,
header #logo img {
	float: none;
	margin: 0;
	width: auto;
	height: auto;
	max-height: 86px;
	max-width: 100%;
	display: block;
}
header .logo222 { cursor: pointer; }

header .header-accessibility { flex-shrink: 0; width: auto; line-height: 1; }
header .header-accessibility ul { margin: 0; padding: 0; list-style: none; }
header .header-accessibility li { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
header .header-accessibility #siteaction-contraste > a {
	display: inline-flex;
	align-items: center;
	height: 36px;
	margin: 0;
	padding: 0 14px 0 34px;
	line-height: 1;
	border: 1px solid var(--cp-linha);
	border-radius: 999px;
	color: var(--cp-texto);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: none;
	background-position: 12px center;
}
header .header-accessibility #siteaction-contraste > a:before { left: 10px; top: 50%; margin-top: -9px; }
header .header-accessibility #siteaction-contraste > a:hover { border-color: var(--cp-escuro); background-color: var(--cp-claro); }
header .header-accessibility button {
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--cp-linha);
	border-radius: 50%;
	background: var(--cp-branco);
	color: var(--cp-texto);
	font-size: .8rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
header .header-accessibility button:hover { border-color: var(--cp-escuro); background: var(--cp-claro); }

/* ---------- Faixa de navegacao ---------- */
nav.menu-principal > .container { position: relative; }

header .search-wrapper {
	margin: 0;
	padding: 10px 0;
	gap: 8px;
	background: var(--cp-cinza);
	/* estende o fundo cinza ate as bordas da tela sem mexer no HTML */
	box-shadow: 0 0 0 100vmax var(--cp-cinza);
	clip-path: inset(0 -100vmax);
}

header .header-icons { flex-shrink: 0; }
header .header-icons .ico-navegacao {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: auto;
	height: 42px;
	padding: 0 18px 0 46px;
	position: relative;
	background: var(--cp-ouro);
	border-radius: 999px;
	color: var(--cp-escuro);
	font-size: .9rem;
	font-weight: 700;
	text-indent: 0;
	text-decoration: none;
}
header .header-icons .ico-navegacao:before {
	content: "";
	position: absolute;
	left: 18px;
	top: 50%;
	width: 18px;
	height: 2px;
	margin-top: -1px;
	border-radius: 2px;
	background: var(--cp-escuro);
	box-shadow: 0 -6px 0 var(--cp-escuro), 0 6px 0 var(--cp-escuro);
}
header .header-icons .ico-navegacao:hover { background: #ffc21f; color: var(--cp-escuro); }

header .links-destaque ul { margin: 0; padding-left: 10px; display: flex; flex-wrap: wrap; gap: 2px; list-style: none; }
header .links-destaque li { margin: 0; display: block; font-size: .95rem; font-weight: 500; }
header .links-destaque a {
	display: block;
	padding: 10px 14px;
	border-radius: 999px;
	color: var(--cp-texto);
	text-decoration: none;
}
header .links-destaque a:hover,
header .links-destaque li.active > a,
header .links-destaque li.current > a { background: var(--cp-ouro); color: var(--cp-escuro); }

header #portal-searchbox { flex-shrink: 0; }
header #portal-searchbox .btn-busca {
	padding: 11px 52px 11px 20px;
	min-width: 230px;
	background: var(--cp-branco);
	border: 1px solid #cfcfcf;
	border-radius: 999px;
	color: #555;
	font-size: .88rem;
	text-decoration: none;
}
header #portal-searchbox .btn-busca:hover { border-color: var(--cp-escuro); color: var(--cp-escuro); }
header #portal-searchbox .btn-busca:after {
	background: none;
	right: 20px;
	top: 50%;
	width: 13px;
	height: 13px;
	margin-top: -9px;
	border: 2px solid var(--cp-escuro);
	border-radius: 50%;
	box-shadow: none;
}
header #portal-searchbox .btn-busca:before {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 7px;
	height: 2px;
	margin-top: 5px;
	background: var(--cp-escuro);
	border-radius: 2px;
	transform: rotate(45deg);
}

/* ---------- Menu completo (abre pelo botao "Menu") ---------- */
header .box-menu,
#interna header .box-menu {
	top: 100%;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	transform: translateX(-50%);
	z-index: 900;
	padding: 34px 0 30px;
	border-top: 3px solid var(--cp-ouro);
	box-shadow: 0 24px 40px rgba(0, 0, 0, .18);
}
header .box-menu .container:before { display: none; }
header .box-menu .coluna-menu { border-right: 1px solid var(--cp-linha); }

.box-menu .titulo-menu {
	margin-bottom: 14px;
	padding-bottom: 10px;
	position: relative;
	color: var(--cp-escuro);
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.box-menu .titulo-menu:after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 28px;
	height: 3px;
	border-radius: 3px;
	background: var(--cp-ouro);
}
.box-menu ul li a {
	margin-bottom: 0;
	padding: 6px 0;
	color: var(--cp-texto);
	font-size: .92rem;
	line-height: 1.35;
	text-decoration: none;
}
.box-menu ul li a:hover { color: var(--cp-link); text-decoration: underline; text-decoration-color: var(--cp-ouro); text-underline-offset: 4px; }

/* ---------- Busca (janela) ---------- */

/* ---------- Pagina inicial ---------- */
.np-home { display: block; padding-bottom: 20px; }
.np-home > .row-fluid.module { margin: 0; }

/* banner rotativo */
.np-home .slideshowck {
	margin-top: 32px !important;
	margin-bottom: 0 !important;
	border-radius: var(--cp-raio);
	overflow: hidden;
	box-shadow: var(--cp-sombra);
}

/* titulos de secao */
.np-home .np-cabecalho { margin-top: 56px; margin-bottom: 22px; }
.np-home .np-cabecalho h2.np-titulo {
	margin: 0;
	padding: 0 0 0 16px;
	height: auto;
	min-height: 0;
	text-align: left;
	text-transform: none;
	background: none;
	border-left: 5px solid var(--cp-ouro);
	color: var(--cp-escuro);
	font-size: 1.75rem;
	font-weight: 900;
	line-height: 1.15;
}
.np-sub { margin: 6px 0 0 21px; color: var(--cp-texto-suave); font-size: .98rem; }

/* noticias */
.np-home .mosaico { padding: 0; }
.np-home .mosaico .row { row-gap: 24px; }
.np-home .mosaico .item-mosaico {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	background: var(--cp-branco);
	border: 1px solid var(--cp-linha);
	border-radius: var(--cp-raio);
	overflow: hidden;
	box-shadow: var(--cp-sombra);
	transition: transform .2s ease, box-shadow .2s ease;
}
.np-home .mosaico .item-mosaico:hover { transform: translateY(-4px); box-shadow: var(--cp-sombra-forte); }
.np-home .mosaico .item-mosaico:before,
.np-home .mosaico .item-mosaico:after { display: none; }
.np-home .mosaico .foto-mosaico {
	display: block;
	position: static;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center top;
	filter: none;
}
.np-home .mosaico .item-mosaico .chamada-mosaico {
	position: static;
	bottom: auto !important;
	width: auto;
	padding: 18px 20px 20px;
	background: none;
	flex-grow: 1;
}
.np-home .mosaico .item-mosaico .chamada-mosaico a {
	display: block;
	color: var(--cp-texto);
	font-size: 1.12rem;
	font-weight: 700;
	line-height: 1.3;
	text-shadow: none;
}
.np-home .mosaico .item-mosaico .chamada-mosaico a:after {
	content: "Leia a notícia →";
	display: block;
	margin-top: 12px;
	color: var(--cp-link);
	font-size: .85rem;
	font-weight: 700;
}
.np-home .mosaico .item-mosaico .chamada-mosaico a:hover { color: var(--cp-link); }

.np-home .botoes-centro { height: auto; margin: 0; padding: 30px 0 0; text-align: center; }
.np-home .botoes-centro .btn-padrao {
	display: inline-block;
	padding: 13px 30px;
	background: var(--cp-escuro);
	border: 2px solid var(--cp-escuro);
	border-radius: 999px;
	color: #fff;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
}
.np-home .botoes-centro .btn-padrao:hover { background: var(--cp-ouro); border-color: var(--cp-ouro); color: var(--cp-escuro); }

/* servicos (lista em servicos.php, icones desenhados em SVG) */
.np-servicos { padding-bottom: 8px; }
.np-servicos-grade {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.np-servico {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 20px;
	background: var(--cp-branco);
	border: 1px solid var(--cp-linha);
	border-radius: var(--cp-raio);
	color: var(--cp-texto);
	text-decoration: none;
	box-shadow: var(--cp-sombra);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.np-servico:hover,
.np-servico:focus {
	transform: translateY(-3px);
	border-color: var(--cp-ouro);
	box-shadow: var(--cp-sombra-forte);
	color: var(--cp-texto);
	text-decoration: none;
}
.np-servico-ico {
	flex: 0 0 60px;
	width: 60px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	background: var(--cp-ouro);
	color: var(--cp-escuro);
	transition: background-color .2s ease, color .2s ease;
}
.np-servico-ico svg { display: block; width: 32px; height: 32px; }
.np-servico:hover .np-servico-ico,
.np-servico:focus .np-servico-ico { background: var(--cp-escuro); color: var(--cp-ouro); }
.np-servico-txt { flex: 1 1 auto; min-width: 0; text-align: left; }
.np-servico-nome { display: block; font-size: 1.02rem; font-weight: 800; line-height: 1.25; }
.np-servico-desc { display: block; margin-top: 3px; color: var(--cp-texto-suave); font-size: .84rem; line-height: 1.3; }
.np-servico-seta {
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	margin-right: 4px;
	border-top: 2px solid #b5b5b5;
	border-right: 2px solid #b5b5b5;
	transform: rotate(45deg);
	transition: border-color .2s ease, margin .2s ease;
}
.np-servico:hover .np-servico-seta { border-color: var(--cp-escuro); margin-right: 0; }

/* ---------- Voltar ao topo ---------- */
#footer-conteudo { margin: 0; padding: 36px 0 32px; display: flex; justify-content: flex-end; }
#footer-conteudo .texto-copyright { display: none; }
#footer-conteudo .voltar-topo { width: auto; float: none; padding: 0; margin: 0; text-align: right; }
#footer-conteudo .voltar-topo a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 6px 6px 6px 20px;
	background: var(--cp-branco);
	border: 1px solid var(--cp-linha);
	border-radius: 999px;
	color: var(--cp-escuro);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1;
	text-decoration: none;
}
#footer-conteudo .voltar-topo a:after {
	content: "";
	display: block;
	float: none;
	width: 34px;
	height: 34px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	background: var(--cp-escuro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
	transition: background-color .2s ease;
}
#footer-conteudo .voltar-topo a:hover { border-color: var(--cp-ouro); }
#footer-conteudo .voltar-topo a:hover:after { background-color: var(--cp-ouro-escuro); }

/* ---------- Rodape (cinza original, com faixa amarela em cima) ---------- */
section.footer {
	background: var(--cp-cinza);
	border-top: 4px solid var(--cp-ouro);
	color: var(--cp-texto);
}
.footer .box-menu,
#interna .footer .box-menu {
	background: transparent;
	padding: 48px 0 12px;
	border: 0;
	box-shadow: none;
	color: inherit;
}
.footer .box-menu .coluna-menu { border-right: 0; margin-bottom: 28px; }
.footer .box-menu a,
.footer .box-menu ul li a { color: #333; font-size: .9rem; }
.footer .box-menu ul li a:hover { color: var(--cp-escuro); }
/* uma unica linha separando os menus do endereco */
.footer .footer-capes {
	margin: 0;
	padding: 24px 0 32px;
	border: 0;
	border-top: 1px solid #d2d2d2;
	color: #333;
	text-align: center;
	font-size: .92rem;
	line-height: 1.6;
}
.footer .footer-capes > .row:first-child > .col-md-7:empty,
.footer .footer-capes span:empty { display: none; }
.footer .footer-capes .endereco { margin-top: 0; padding-top: 0; border-top: 0; font-size: inherit; }
.footer .footer-capes a { color: var(--cp-ouro-escuro); }

/* ---------- Paginas internas ---------- */
#interna .breadcrumb,
#interna .rastro-navegacao,
#interna #breadcrumbs {
	margin: 22px 0 0;
	padding: 0;
	background: none;
	color: var(--cp-texto-suave);
	font-size: .85rem;
}
#interna .breadcrumb a, #interna #breadcrumbs a { color: var(--cp-link); }

#interna .conteudo-interna {
	margin: 22px 0 48px;
	padding: 36px 40px 44px;
	background: var(--cp-branco);
	border: 1px solid var(--cp-linha);
	border-radius: var(--cp-raio);
	box-shadow: var(--cp-sombra);
}
#interna h1.documentFirstHeading,
#interna .documentFirstHeading,
#interna .conteudo-interna h1 {
	color: var(--cp-escuro);
	font-weight: 900;
	line-height: 1.15;
}
#interna .conteudo-interna img { border-radius: 8px; }
#interna .conteudo-interna table { border-color: var(--cp-linha); }
#interna .conteudo-interna .btn-primary,
#interna .conteudo-interna .btn.btn-primary {
	background: var(--cp-escuro);
	border-color: var(--cp-escuro);
	color: #fff;
}
#interna .conteudo-interna .pagination a,
#interna .conteudo-interna .pagination span { border-radius: 8px; }

/* ---------- Alto contraste: mantem o comportamento original ---------- */
.contraste header .search-wrapper { box-shadow: 0 0 0 100vmax #000; }
.contraste header .header-icons .ico-navegacao { background: #000 !important; border: 1px solid #ff0; color: #ff0 !important; }
.contraste header .header-icons .ico-navegacao:before { background: #ff0 !important; box-shadow: 0 -6px 0 #ff0, 0 6px 0 #ff0; }
.contraste .np-servico,
.contraste .np-servico-ico,
.contraste .np-home .mosaico .item-mosaico,
.contraste #interna .conteudo-interna { border-color: #fff; }

/* ---------- Telas menores ---------- */
@media (max-width: 1024px) {
	.np-servicos-grade { grid-template-columns: repeat(2, 1fr); }
	header .search-wrapper { justify-content: space-between; }
	header #portal-searchbox .btn-busca { min-width: 0; }
	header .box-menu { max-height: calc(100vh - 150px); overflow-y: auto; }
}

@media (max-width: 799px) {
	header .header-wrapper { padding: 0; gap: 0; }
	/* logo centralizada, como no site original */
	header .logo222 { flex-grow: 1; background-size: contain; background-position: center; padding: 37px 0; margin: 0; }
}

@media (max-width: 899px) {
	.np-cabecalho { margin-top: 40px; }
	.np-titulo { font-size: 1.4rem; }
	#interna .conteudo-interna { padding: 24px 18px 30px; }
	.footer .box-menu { padding-top: 36px; }
}

@media (max-width: 767px) {
	.np-home .slideshowck { margin-top: 18px !important; border-radius: 10px; }
	.np-home .mosaico .col-md-4 { margin-bottom: 0; }
	.np-servicos-grade { grid-template-columns: 1fr; gap: 12px; }
	#footer-conteudo { justify-content: center; }
}

@media (max-width: 480px) {
	header .header-wrapper { height: auto; }
	header .header-icons .ico-navegacao { padding-right: 14px; }
	header #portal-searchbox .btn-busca { font-size: .8rem; padding-left: 14px; }
	header .box-menu { top: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
}
