/**
 * [CEGOVBR] Funções de Acessibilidade - CSS
 * - Define variável de escala de fonte na raiz.
 * - Fornece modo de alto contraste.
 * - Ajustes não intrusivos para manter compatibilidade com temas.
 */

/* Escala de fonte na raiz. A ideia é que elementos em rem escalem juntos. */
:root {
    --cegovbr-font-scale: 1;
}

/* Aplica a escala na raiz do documento. 
     Isso é mais seguro do que tentar multiplicar cada seletor individual. */
html {
    font-size: calc(100% * var(--cegovbr-font-scale));
}

/* Alto Contraste: aplicado quando a classe .cegovbr-contrast está no <html>. */
html.cegovbr-contrast,
html.cegovbr-contrast body {
    background: #000 !important;
    color: #fff !important;
}

/* Links em alto contraste */
html.cegovbr-contrast a,
html.cegovbr-contrast a:visited {
    color: #fff !important;
    /* alterado de #ffeb3b para #fff conforme pedido */
    /* Removemos sublinhado para manter aparência limpa em menus; foco ainda terá outline */
    text-decoration: none !important;
}

/* Foco visível reforçado em alto contraste */
html.cegovbr-contrast :focus {
    outline: 0.125rem solid #fff !important;
    outline-offset: 0.125rem;
}

/* Evita transições "piscando" quando o contraste alterna */
html.cegovbr-contrast * {
    transition: none !important;
}

/* Evita que estilos de hover do tema fiquem verdes em modo alto contraste. */
html.cegovbr-contrast .btn:hover,
html.cegovbr-contrast .btn:focus,
html.cegovbr-contrast .btn-icon-cc:hover,
html.cegovbr-contrast .btn-icon-cc:focus,
html.cegovbr-contrast .menu-accessibility__link--contraste:hover,
html.cegovbr-contrast .menu-accessibility__link--contraste:focus,
html.cegovbr-contrast .accessibility-icon-link:hover,
html.cegovbr-contrast .accessibility-icon-link:focus,
html.cegovbr-contrast aside a:hover,
html.cegovbr-contrast aside a:focus,
html.cegovbr-contrast .aside a:hover,
html.cegovbr-contrast .aside a:focus {
    background: transparent !important;
    background-color: transparent !important;
    color: #fff !important;
    border-color: #fff !important;
}

/* Remover sublinhado especificamente nos itens do menu superior em alto contraste */
html.cegovbr-contrast header #main-menu a,
html.cegovbr-contrast header #main-menu a:hover,
html.cegovbr-contrast header #main-menu a:focus {
    text-decoration: none !important;
    color: #fff !important;
}

/* Mantém indicação de foco fortemente visível (importante para acessibilidade) */
html.cegovbr-contrast a:focus,
html.cegovbr-contrast button:focus,
html.cegovbr-contrast .btn:focus {
    outline: 0.1875rem solid #fff !important;
    outline-offset: 0.125rem !important;
}

/* --- PAGINA 404 --- */

html.cegovbr-contrast .ce404-main-card,
html.cegovbr-contrast .ce404-secondary-card {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    box-shadow: none !important;
}

html.cegovbr-contrast .ce404-title,
html.cegovbr-contrast .ce404-subtitle,
html.cegovbr-contrast .ce404-intro,
html.cegovbr-contrast .ce404-list,
html.cegovbr-contrast .ce404-btn-text,
html.cegovbr-contrast .ce404-back-icon {
    color: #fff !important;
}

html.cegovbr-contrast .ce404-back-link:hover .ce404-btn-text,
html.cegovbr-contrast .ce404-back-link:focus-visible .ce404-btn-text {
    color: #fff !important;
    text-decoration: underline !important;
}

/* --- PAGINA DE BUSCA (Search Page) --- */

/* Header & Search Box */
html.cegovbr-contrast .pgbusca-search-box {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}

/* Header Search Input specifically */
html.cegovbr-contrast .cc-header-search .input-group,
html.cegovbr-contrast #input-search,
html.cegovbr-contrast #input-search:focus,
html.cegovbr-contrast .cc-header-search .input-group-text {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
    background-color: #000 !important;
    color: #fff !important;
}

html.cegovbr-contrast #input-search::placeholder,
body.contrast-active #input-search::placeholder,
body.body-contraste #input-search::placeholder {
    color: #fff !important;
    opacity: 1;
}

html.cegovbr-contrast .cc-header-search .input-group {
    border: 0.0625rem solid #fff !important;
}

html.cegovbr-contrast .pgbusca-search-box input {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-search-box input::placeholder {
    color: #ccc !important;
}
html.cegovbr-contrast .pgbusca-search-box button {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-div-infor-titulos::before {
    background-color: #000 !important;
}

/* Filters */
html.cegovbr-contrast .pgbusca-filter-card {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-filter-card.pgbusca-filter-active {
    background: #fff !important;
    border-color: #fff !important;
    color: #000 !important;
}
html.cegovbr-contrast .pgbusca-filter-card.pgbusca-filter-active .material-symbols-outlined,
html.cegovbr-contrast .pgbusca-filter-card.pgbusca-filter-active .pgbusca-filter-text,
html.cegovbr-contrast .pgbusca-filter-card.pgbusca-filter-active .pgbusca-filter-count {
    color: #000 !important;
}
html.cegovbr-contrast .pgbusca-filter-text,
html.cegovbr-contrast .pgbusca-filter-count {
    color: #fff !important;
}

/* Advanced Search */
html.cegovbr-contrast .pgbusca-advanced-search {
    color: #fff !important;
}

/* Section Header & Titles */
html.cegovbr-contrast .pgbusca-section-title h2,
html.cegovbr-contrast .pgbusca-section-title .material-symbols-outlined,
html.cegovbr-contrast .pgbusca-section-count {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-ordenacao-label {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-section-separator {
    background-color: #fff !important;
}

/* Dropdown */
html.cegovbr-contrast .pgbusca-dropdown-btn {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-dropdown-btn .material-symbols-outlined {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-dropdown-menu {
    background: #000 !important;
    border-color: #fff !important;
}
html.cegovbr-contrast .pgbusca-dropdown-item {
    background: #000 !important;
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-dropdown-item:hover,
html.cegovbr-contrast .pgbusca-dropdown-item.active {
    background: #fff !important;
    color: #000 !important;
}

/* Service Cards */
html.cegovbr-contrast .pgbusca-service-card {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .pgbusca-service-titulo {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-service-tipo,
html.cegovbr-contrast .pgbusca-service-orgao {
    background: #fff !important;
    color: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .pgbusca-service-categoria .material-symbols-outlined {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-service-link-descricao {
    color: #fff !important;
    text-decoration: underline !important;
}
html.cegovbr-contrast .pgbusca-service-link-acessar {
    color: #fff !important;
    border: 0.0625rem solid #fff !important;
    background: #000 !important;
    padding: 0.125rem 0.625rem !important;
}

/* News Cards */
html.cegovbr-contrast .pgbusca-noticia-card {
    border-color: #fff !important;
    background: #000 !important;
}
html.cegovbr-contrast .pgbusca-noticia-titulo a,
html.cegovbr-contrast .pgbusca-noticia-excerpt,
html.cegovbr-contrast .pgbusca-noticia-data,
html.cegovbr-contrast .pgbusca-noticia-hora {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-noticia-categoria {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-noticia-ler-mais {
    color: #fff !important;
    text-decoration: underline !important;
}

/* Other Cards */
html.cegovbr-contrast .pgbusca-outro-card {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .pgbusca-outro-titulo a,
html.cegovbr-contrast .pgbusca-outro-subtitle,
html.cegovbr-contrast .pgbusca-outro-data {
    color: #fff !important;
}

/* Feedback Section */
html.cegovbr-contrast .pgbusca-avise-btn {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .pgbusca-avise-text,
html.cegovbr-contrast .pgbusca-avise-btn .material-symbols-outlined {
    color: #fff !important;
}

/* Ver Mais Links */
html.cegovbr-contrast .pgbusca-ver-mais-link,
html.cegovbr-contrast .pgbusca-ver-mais-link .pgbusca-ver-mais-text,
html.cegovbr-contrast .pgbusca-ver-mais-link .material-symbols-outlined {
    color: #fff !important;
    background: transparent !important;
}
html.cegovbr-contrast .pgbusca-ver-mais-link:hover,
html.cegovbr-contrast .pgbusca-ver-mais-link:focus {
    color: #ccc !important;
}

/* Pagination */
html.cegovbr-contrast .pgbusca-pagination-prev,
html.cegovbr-contrast .pgbusca-pagination-next,
html.cegovbr-contrast .pgbusca-pagination-link {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-pagination-numbers {
    background: #333 !important;
}
html.cegovbr-contrast .pgbusca-pagination-current {
    background: #fff !important;
    color: #000 !important;
}

/* Modals */
html.cegovbr-contrast .pgbusca-modal {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .pgbusca-modal-header h2,
html.cegovbr-contrast .pgbusca-modal-subtitle,
html.cegovbr-contrast .pgbusca-feedback-textarea,
html.cegovbr-contrast .pgbusca-textarea-counter {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-feedback-textarea {
    background: #000 !important;
    border-color: #fff !important;
}
html.cegovbr-contrast .pgbusca-btn-enviar.active {
    background: #fff !important;
    color: #000 !important;
}
html.cegovbr-contrast .pgbusca-modal-close {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-success-icon .material-symbols-outlined,
html.cegovbr-contrast .pgbusca-success-title,
html.cegovbr-contrast .pgbusca-success-text {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-btn-entendi {
    background: #fff !important;
    color: #000 !important;
}

/* Suggestion Box */
html.cegovbr-contrast .pgbusca-suggestion-box {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-suggestion-box .material-symbols-outlined {
    color: #fff !important;
}

/* Breadcrumb */
html.cegovbr-contrast .cegov-breadcrumb,
html.cegovbr-contrast .cegov-breadcrumb a,
html.cegovbr-contrast .cegov-breadcrumb .current-page,
html.cegovbr-contrast .cegov-breadcrumb li::before,
html.cegovbr-contrast .cegov-breadcrumb-mobile,
html.cegovbr-contrast .cegov-breadcrumb-mobile .breadcrumb-back-link,
html.cegovbr-contrast .cegov-breadcrumb-mobile .breadcrumb-current-page-mobile {
    color: #fff !important;
}

/* Communication Wrapper */
html.cegovbr-contrast .pgbusca-comunicacao-wrapper {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .pgbusca-comunicacao-nome,
html.cegovbr-contrast .pgbusca-comunicacao-setor {
    color: #fff !important;
}
html.cegovbr-contrast .pgbusca-comunicacao-divisoria {
    border-left-color: #fff !important;
}

/* --- PAGINA DE APLICATIVOS OFICIAIS --- */

html.cegovbr-contrast .app-oficiais-titulo-da-pagina {
    background-color: #000 !important;
}
html.cegovbr-contrast .app-oficiais-titulo-da-pagina-atual,
html.cegovbr-contrast .app-oficiais-page-description {
    color: #fff !important;
}

/* Grid & Cards */
html.cegovbr-contrast .app-oficiais-card,
html.cegovbr-contrast .servico-app .box {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}
html.cegovbr-contrast .app-oficiais-image-wrap,
html.cegovbr-contrast .servico-app .box figure img {
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .app-oficiais-name,
html.cegovbr-contrast .app-oficiais-desc,
html.cegovbr-contrast .servico-app .box figcaption h3,
html.cegovbr-contrast .servico-app .box figcaption {
    color: #fff !important;
}

/* Store Buttons Effects (Corrected Selectors) */
html.cegovbr-contrast .download a img {
    transition: all 0.2s ease-in-out !important;
}

html.cegovbr-contrast .download a:hover img {
    width: 7.5rem !important; /* 120px */
    height: 2.313rem !important; /* 37px */
    box-shadow: 0 0 0.451rem 0 rgba(0, 0, 0, 0.25) !important;
}

html.cegovbr-contrast .download a:focus img {
    width: 6.6875rem !important; /* 107px */
    height: 2.0625rem !important; /* 33px */
    border-radius: 0.25rem !important;
    border: 0.0625rem solid #fff !important;
    outline: 0.0625rem solid #545FFF !important;
    opacity: 1 !important;
}

/* Filters */

html.cegovbr-contrast .app-off-filters-header h2,
html.cegovbr-contrast .app-off-filters-header .material-symbols-outlined,
html.cegovbr-contrast .app-off-filters-sheet-header h3,
html.cegovbr-contrast .app-off-filters-sheet-header .material-symbols-outlined,
html.cegovbr-contrast .app-off-filters-dropdown-label,
html.cegovbr-contrast .app-off-filters-dropdown-icon {
    color: #fff !important;
}
html.cegovbr-contrast .app-off-filters-separator {
    background: #fff !important;
}

/* Dropdown & Inputs */
html.cegovbr-contrast .form-check-label {
    color: #fff !important;
}
html.cegovbr-contrast .form-check-input {
    background-color: #000 !important;
    border-color: #fff !important;
}
html.cegovbr-contrast .form-check-input:checked {
    background-color: #fff !important;
    border-color: #fff !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") !important;
}

/* Mobile Bottom Sheet */
@media (max-width: 61.9375rem) {
    html.cegovbr-contrast .app-off-filters-content-wrapper {
        background: #000 !important;
        border: 0.0625rem solid #fff !important;
        border-bottom: none !important;
    }
    html.cegovbr-contrast .app-off-filters-content-wrapper::before {
        background: #fff !important;
    }
}

/* Pagination */
html.cegovbr-contrast .pgindex-pagination-link {
    color: #fff !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .pgindex-pagination-current {
    background: #fff !important;
    color: #000 !important;
    border: 0.0625rem solid #fff !important;
}

/* --- PLUGIN OCR-DOE --- */

html.cegovbr-contrast .ocrdoe {
    --primary: #fff !important;
    --muted: #000 !important;
    --text: #fff !important;
}

/* Tabs */
html.cegovbr-contrast .ocrdoe-tab {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}
html.cegovbr-contrast .ocrdoe-tab.is-active {
    background: #fff !important;
    color: #000 !important;
}

/* Items/Cards */
html.cegovbr-contrast .ocrdoe-item,
html.cegovbr-contrast .ocrdoe-publications-results .card {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .ocrdoe-item__hd,
html.cegovbr-contrast .ocrdoe-item__title,
html.cegovbr-contrast .ocrdoe-item__snippet,
html.cegovbr-contrast .ocrdoe-publications-results .card-subtitle {
    color: #fff !important;
}

/* Buttons (Treating as P&B Buttons for clarity in this list) */
html.cegovbr-contrast .ocrdoe-btn,
html.cegovbr-contrast .ocrdoe .ocrdoe-btn,
html.cegovbr-contrast .ocrdoe-publications-results .btn,
html.cegovbr-contrast .ocrdoe-publications-form .btn,
html.cegovbr-contrast .ocrdoe-search-form .btn,
html.cegovbr-contrast .ocr-toolbar .btn {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
    text-decoration: none !important;
}
html.cegovbr-contrast .ocrdoe-btn:hover,
html.cegovbr-contrast .ocrdoe-btn:focus,
html.cegovbr-contrast .ocrdoe-publications-results .btn:hover,
html.cegovbr-contrast .ocrdoe-publications-results .btn:focus,
html.cegovbr-contrast .ocrdoe-publications-form .btn:hover,
html.cegovbr-contrast .ocrdoe-publications-form .btn:focus,
html.cegovbr-contrast .ocrdoe-search-form .btn:hover,
html.cegovbr-contrast .ocrdoe-search-form .btn:focus,
html.cegovbr-contrast .ocr-toolbar .btn:hover,
html.cegovbr-contrast .ocr-toolbar .btn:focus {
    background: #fff !important;
    color: #000 !important;
    outline: none !important;
}

/* Pagination */
html.cegovbr-contrast .ocrdoe-page-btn {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}
html.cegovbr-contrast .ocrdoe-page-btn.is-active {
    background: #fff !important;
    color: #000 !important;
}

/* Modal */
html.cegovbr-contrast .ocrdoe-modal__dialog {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .ocrdoe-modal__hd {
    background: #000 !important;
    border-bottom: 0.0625rem solid #fff !important;
}
html.cegovbr-contrast .ocrdoe-modal__title,
html.cegovbr-contrast .ocrdoe-modal__close {
    color: #fff !important;
}
html.cegovbr-contrast .ocrdoe-modal__close {
    background: transparent !important;
    border: 0.0625rem solid #fff !important;
}

/* Doc Viewer */
html.cegovbr-contrast .ocrdoe-docimg {
    background: #fff !important;
    border: none !important;
}
html.cegovbr-contrast .ocrdoe-doctext,
html.cegovbr-contrast .ocrdoe-modal .ocrdoe-doctext {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}

/* Thumbs (Removed borders/background) */
html.cegovbr-contrast .ocrdoe-pub__thumbs,
html.cegovbr-contrast .ocrdoe-thumb {
    border: none !important;
}
html.cegovbr-contrast .ocrdoe-thumb img {
    filter: none !important; /* Mantém original para identificação visual rápida */
}
html.cegovbr-contrast .ocrdoe-thumb::after {
    background: #fff !important;
    color: #000 !important;
    border: 0.0625rem solid #000 !important;
}

/* Search Form */
html.cegovbr-contrast .ocrdoe-publications-form,
html.cegovbr-contrast .ocrdoe-search-form {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    box-shadow: none !important;
}
html.cegovbr-contrast .ocrdoe-publications-form label,
html.cegovbr-contrast .ocrdoe-search-form label {
    color: #fff !important;
}
html.cegovbr-contrast .ocrdoe-publications-form input,
html.cegovbr-contrast .ocrdoe-publications-form select,
html.cegovbr-contrast .ocrdoe-search-form input,
html.cegovbr-contrast .ocrdoe-search-form select {
    background: #000 !important;
    border: 0.0625rem solid #fff !important;
    color: #fff !important;
}
