/*
 * Recursos de Acessibilidade - Portal da Transparência
 * Conformidade: WCAG 2.1 / e-MAG / Lei Brasileira de Inclusão (Lei nº 13.146/2015)
 */

/* ===================================================================
   Link de salto ("Ir para o conteúdo principal")
   =================================================================== */
.skip-link {
    position: absolute;
    top: -3em;
    left: 0;
    z-index: 10000;
    padding: 0.75em 1.25em;
    background: #1d3557;
    color: #ffffff;
    font-weight: bold;
    text-decoration: none;
    border-radius: 0 0 4px 0;
    transition: top 0.2s ease-in-out;
}

.skip-link:focus,
.skip-link:active {
    top: 0;
    color: #ffffff;
    outline: 3px solid #ffd60a;
    outline-offset: 2px;
}

/* ===================================================================
   Barra de Acessibilidade
   =================================================================== */
.barra-acessibilidade {
    background: #1d3557;
    color: #ffffff;
    padding: 6px 12px;
    font-size: 13px;
}

.barra-acessibilidade .container-fluid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.barra-acessibilidade button,
.barra-acessibilidade a.btn-acessibilidade {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.6);
    color: #ffffff;
    border-radius: 3px;
    padding: 3px 10px;
    font-size: 13px;
    line-height: 1.4;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.barra-acessibilidade button:hover,
.barra-acessibilidade button:focus,
.barra-acessibilidade a.btn-acessibilidade:hover,
.barra-acessibilidade a.btn-acessibilidade:focus {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
    outline: 2px solid #ffd60a;
    outline-offset: 1px;
}

.barra-acessibilidade .separador-acessibilidade {
    width: 1px;
    height: 20px;
    background: rgba(255, 255, 255, 0.4);
    margin: 0 6px;
}

/* Símbolo internacional de acessibilidade, sempre visível */
.simbolo-acessibilidade {
    font-size: 18px;
}

/* ===================================================================
   Foco visível para navegação por teclado (e-MAG recomendação 5.4)
   =================================================================== */
body.navegacao-teclado a:focus,
body.navegacao-teclado button:focus,
body.navegacao-teclado input:focus,
body.navegacao-teclado select:focus,
body.navegacao-teclado textarea:focus,
body.navegacao-teclado [tabindex]:focus {
    outline: 3px solid #ffd60a !important;
    outline-offset: 2px !important;
}

/* ===================================================================
   Alto contraste
   =================================================================== */
body.alto-contraste,
body.alto-contraste #wrapper,
body.alto-contraste .container-fluid,
body.alto-contraste section {
    background: #000000 !important;
    color: #ffff00 !important;
}

body.alto-contraste a {
    color: #ffff00 !important;
    text-decoration: underline !important;
}

body.alto-contraste a:visited {
    color: #ffd60a !important;
}

body.alto-contraste a:hover,
body.alto-contraste a:focus {
    color: #000000 !important;
    background: #ffff00 !important;
}

body.alto-contraste .panel,
body.alto-contraste .panel-body,
body.alto-contraste .panel-default,
body.alto-contraste .panel-heading,
body.alto-contraste .panel-title,
body.alto-contraste .well,
body.alto-contraste table,
body.alto-contraste td,
body.alto-contraste th,
body.alto-contraste .breadcrumb,
body.alto-contraste .dropdown-menu {
    background: #000000 !important;
    color: #ffff00 !important;
    border-color: #ffff00 !important;
}

body.alto-contraste .btn,
body.alto-contraste button,
body.alto-contraste input,
body.alto-contraste select,
body.alto-contraste textarea {
    background: #000000 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
}

body.alto-contraste img {
    filter: grayscale(100%) contrast(120%);
}

body.alto-contraste h1,
body.alto-contraste h2,
body.alto-contraste h3,
body.alto-contraste h4,
body.alto-contraste h5,
body.alto-contraste h6,
body.alto-contraste strong,
body.alto-contraste b {
    color: #ffffff !important;
}

/* ===================================================================
   Redimensionamento de fonte
   =================================================================== */
body.fonte-aumentada,
body.fonte-aumentada p,
body.fonte-aumentada li,
body.fonte-aumentada td,
body.fonte-aumentada th,
body.fonte-aumentada label,
body.fonte-aumentada span,
body.fonte-aumentada a {
    font-size: 1.15em !important;
    line-height: 1.5 !important;
}

body.fonte-reduzida,
body.fonte-reduzida p,
body.fonte-reduzida li,
body.fonte-reduzida td,
body.fonte-reduzida th,
body.fonte-reduzida label,
body.fonte-reduzida span,
body.fonte-reduzida a {
    font-size: 0.9em !important;
    line-height: 1.4 !important;
}
