/*
 * ALTO CONTRASTE
 * (":is(..., #_hc)" só eleva a especificidade para vencer as regras !important de estilo.css)
 * Padrão e-MAG / gov.br (WCAG 2.1 – critérios 1.4.3, 1.4.6, 1.4.11 e 2.4.7):
 *   fundo preto, texto branco (21:1), links amarelos sublinhados (19,6:1),
 *   bordas brancas e foco visível amarelo.
 * Este arquivo é carregado sempre, depois de estilo.css e site.css, e só tem efeito
 * quando <html> recebe a classe "contraste" (botão da barra de acessibilidade).
 */

html.contraste {
	--hc-fundo: #000;
	--hc-texto: #FFF;
	--hc-link: #FF0;
	--hc-borda: #FFF;
	color-scheme: dark;
}

/* ---------------------------------------------------------------------- */
/*	BASE: tudo preto e branco, sem sombras nem transparências decorativas
/* ---------------------------------------------------------------------- */
html.contraste,
html.contraste body {
	background: var(--hc-fundo) !important;
	color: var(--hc-texto) !important;
}

html.contraste body :is(*, #_hc),
html.contraste body :is(*, #_hc)::before,
html.contraste body :is(*, #_hc)::after {
	color: var(--hc-texto) !important;
	border-color: var(--hc-borda) !important;
	text-shadow: none !important;
	box-shadow: none !important;
}

html.contraste body :is(*, #_hc) {
	background-color: var(--hc-fundo) !important;
}

/* Fundos decorativos (faixas, texturas) saem; imagens de conteúdo (<img>) ficam */
html.contraste body :is(header, #_hc),
html.contraste body :is(footer, #_hc),
html.contraste body :is(footer .l, #_hc),
html.contraste body :is(.banner, #_hc),
html.contraste body :is(.faixa, #_hc) {
	background-image: none !important;
}

html.contraste body :is(.faixa, #_hc) {
	background-color: var(--hc-borda) !important;
	height: 2px;
}

/* Textos esmaecidos ficam com opacidade total */
html.contraste body :is(.resultados-busca .rotulo, #_hc),
html.contraste body :is(.text-muted, #_hc),
html.contraste body :is(.opacity-75, #_hc),
html.contraste body :is(.opacity-50, #_hc) {
	opacity: 1 !important;
}

/* ---------------------------------------------------------------------- */
/*	LINKS: amarelos e sublinhados (não dependem só da cor – WCAG 1.4.1)
/* ---------------------------------------------------------------------- */
html.contraste body :is(a, #_hc),
html.contraste body :is(a *, #_hc),
html.contraste body :is(a:visited, #_hc),
html.contraste body :is(.accordion-button, #_hc),
html.contraste body :is(.accordion-button *, #_hc) {
	color: var(--hc-link) !important;
}

html.contraste body :is(a, #_hc) {
	text-decoration: underline !important;
	text-underline-offset: 2px;
}

html.contraste body :is(a:hover, #_hc),
html.contraste body :is(a:focus, #_hc) {
	text-decoration-thickness: 2px !important;
}

/* Links/botões em bloco (cartões, menus laterais, acesso rápido): contorno branco */
html.contraste body :is(.acesso-rapido-home li a, #_hc),
html.contraste body :is(.menu .t a, #_hc),
html.contraste body :is(.compartilhar a, #_hc),
html.contraste body :is(.interna .lista-pdf a, #_hc),
html.contraste body :is(.arquivos .lista-pdf a.btn, #_hc),
html.contraste body :is(.menu_esquerda .accordion-button, #_hc),
html.contraste body :is(.menu_direita .accordion-button, #_hc) {
	border: 1px solid var(--hc-borda) !important;
}

/* Item de menu ativo / hover: inverte (amarelo com texto preto) */
html.contraste body :is(.menu ul li .hx1 a.active, #_hc),
html.contraste body :is(.menu ul li .hx1 a:hover, #_hc),
html.contraste body :is(.menu .sub-menu .hx2 a:hover, #_hc),
html.contraste body :is(.acesso-rapido-home li a:hover, #_hc),
html.contraste body :is(.acesso-rapido-home li a:focus, #_hc) {
	background-color: var(--hc-link) !important;
	color: var(--hc-fundo) !important;
}
html.contraste body :is(.menu ul li .hx1 a.active *, #_hc),
html.contraste body :is(.menu ul li .hx1 a:hover *, #_hc),
html.contraste body :is(.acesso-rapido-home li a:hover *, #_hc),
html.contraste body :is(.acesso-rapido-home li a:focus *, #_hc) {
	color: var(--hc-fundo) !important;
}
/* Ícones brancos do acesso rápido continuam visíveis no hover amarelo */
html.contraste body :is(.acesso-rapido-home li a:hover img, #_hc),
html.contraste body :is(.acesso-rapido-home li a:focus img, #_hc) {
	filter: invert(1);
}

/* ---------------------------------------------------------------------- */
/*	BOTÕES
/* ---------------------------------------------------------------------- */
html.contraste body :is(.btn, #_hc),
html.contraste body :is(button:not(.accordion-button):not([data-bs-target]):not(.btn-close), #_hc),
html.contraste body :is(input[type="submit"], #_hc),
html.contraste body :is(input[type="button"], #_hc) {
	background-color: var(--hc-fundo) !important;
	color: var(--hc-link) !important;
	border: 2px solid var(--hc-link) !important;
}
html.contraste body :is(.btn *, #_hc),
html.contraste body :is(.btn i, #_hc) {
	color: var(--hc-link) !important;
}
html.contraste body :is(.btn:hover, #_hc),
html.contraste body :is(.btn:focus, #_hc) {
	background-color: var(--hc-link) !important;
	color: var(--hc-fundo) !important;
}
html.contraste body :is(.btn:hover *, #_hc),
html.contraste body :is(.btn:focus *, #_hc) {
	color: var(--hc-fundo) !important;
	background-color: transparent !important;
}

/* Barra de acessibilidade e botões só com ícone: sem moldura extra */
html.contraste body :is(.acessibilidade-footer, #_hc) {
	border: 1px solid var(--hc-borda) !important;
}
html.contraste body :is(.acessibilidade-footer button, #_hc),
html.contraste body :is(.btn-menu, #_hc),
html.contraste body :is(.btn-menu-close, #_hc) {
	border: 0 !important;
}

/* Botão "voltar ao topo" e WhatsApp */
html.contraste body :is(.scroll-top, #_hc),
html.contraste body :is(.icon-bar a, #_hc) {
	background-color: var(--hc-fundo) !important;
	border: 2px solid var(--hc-link) !important;
}
html.contraste body :is(.scroll-top i, #_hc),
html.contraste body :is(.icon-bar svg, #_hc) {
	color: var(--hc-link) !important;
	fill: var(--hc-link) !important;
}

/* Setas dos acordeões (SVG em background-image) ficam brancas */
html.contraste body :is(.accordion-button, #_hc)::after {
	filter: brightness(0) invert(1);
}

/* Indicadores do carrossel */
html.contraste body :is(.carousel-indicators [data-bs-target], #_hc) {
	background-color: var(--hc-fundo) !important;
	border: 2px solid var(--hc-texto) !important;
	opacity: 1 !important;
}
html.contraste body :is(.carousel-indicators .active, #_hc) {
	background-color: var(--hc-link) !important;
	border-color: var(--hc-link) !important;
}
html.contraste body :is(.carousel-control-prev-icon, #_hc),
html.contraste body :is(.carousel-control-next-icon, #_hc) {
	background-color: transparent !important;
	filter: none;
}

/* ---------------------------------------------------------------------- */
/*	FORMULÁRIOS
/* ---------------------------------------------------------------------- */
html.contraste body :is(input, #_hc),
html.contraste body :is(select, #_hc),
html.contraste body :is(textarea, #_hc),
html.contraste body :is(.form-control, #_hc),
html.contraste body :is(.form-select, #_hc) {
	background-color: var(--hc-fundo) !important;
	color: var(--hc-texto) !important;
	border: 1px solid var(--hc-borda) !important;
}
html.contraste body :is(*, #_hc)::placeholder {
	color: #D0D0D0 !important; /* 13,7:1 sobre preto */
	opacity: 1;
}
html.contraste body :is(.form-check-input:checked, #_hc) {
	background-color: var(--hc-link) !important;
	border-color: var(--hc-link) !important;
}

/* ---------------------------------------------------------------------- */
/*	TABELAS E CALENDÁRIO
/* ---------------------------------------------------------------------- */
html.contraste body :is(table, #_hc),
html.contraste body :is(th, #_hc),
html.contraste body :is(td, #_hc) {
	border-color: var(--hc-borda) !important;
}
html.contraste body :is(.agenda-home .calendario .calendar .day a, #_hc) {
	background-color: var(--hc-link) !important;
	color: var(--hc-fundo) !important;
	text-decoration: none !important;
	font-weight: bold;
}

/* ---------------------------------------------------------------------- */
/*	ALERTAS (sem depender de cor: borda + texto)
/* ---------------------------------------------------------------------- */
html.contraste body :is(.red, #_hc),
html.contraste body :is(.yellow, #_hc),
html.contraste body :is(.green, #_hc),
html.contraste body :is(.alert, #_hc),
html.contraste body :is(.aviso-suspensao, #_hc) {
	border: 2px solid var(--hc-borda) !important;
}

/* ---------------------------------------------------------------------- */
/*	FOCO VISÍVEL (WCAG 2.4.7)
/* ---------------------------------------------------------------------- */
html.contraste body :is(a:focus-visible, #_hc),
html.contraste body :is(button:focus-visible, #_hc),
html.contraste body :is(input:focus-visible, #_hc),
html.contraste body :is(select:focus-visible, #_hc),
html.contraste body :is(textarea:focus-visible, #_hc),
html.contraste body :is(.accordion-button:focus-visible, #_hc),
html.contraste body :is([tabindex]:focus-visible, #_hc) {
	outline: 3px solid var(--hc-link) !important;
	outline-offset: 2px !important;
}

/* Links de salto */
html.contraste body :is(.skip-link, #_hc) {
	background-color: var(--hc-link) !important;
	color: var(--hc-fundo) !important;
}

/* Overlay do menu mobile */
html.contraste body :is(.menu-bg, #_hc) {
	background-color: rgba(0, 0, 0, .9) !important;
}

/* Preloader */
html.contraste body :is(#preloader, #_hc)::before {
	border-color: var(--hc-link) transparent var(--hc-link) transparent !important;
}

/* "Validar Documentos" é um <input type="submit"> dentro do menu: mesma aparência dos demais botões */
html.contraste body :is(.form-menu .button, #menu .form-menu .button, #_hc) {
	color: var(--hc-link) !important;
	background-color: var(--hc-fundo) !important;
	border: 2px solid var(--hc-link) !important;
	text-decoration: underline !important;
}
html.contraste body #menu .form-menu .button {
	color: var(--hc-link) !important;
	border: 2px solid var(--hc-link) !important;
}
