@charset "UTF-8";

/*
|--------------------------------------------------------------------------
| JBILLIT - Estilos de acessibilidade
|--------------------------------------------------------------------------
|
| Compatível com:
| - body.contraste
| - body.alto-contraste
| - body.grayscale
| - body.links-destacados
|
| Esta versão evita seletores universais pesados como:
| .contraste *
| .contraste *::before
| .contraste *::after
|
| Isso reduz travamentos e alto consumo no Google Chrome.
|
*/

/*
|--------------------------------------------------------------------------
| Alto contraste - base
|--------------------------------------------------------------------------
*/

html {
    scroll-behavior: smooth;
}

body.contraste,
body.alto-contraste {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
}

/*
|--------------------------------------------------------------------------
| Estruturas principais
|--------------------------------------------------------------------------
*/

body.contraste main,
body.contraste header,
body.contraste footer,
body.contraste nav,
body.contraste section,
body.contraste article,
body.contraste aside,
body.contraste .container,
body.contraste .container-fluid,
body.contraste .row,
body.contraste .card,
body.contraste .card-header,
body.contraste .card-body,
body.contraste .card-footer,
body.contraste .modal-content,
body.contraste .modal-header,
body.contraste .modal-body,
body.contraste .modal-footer,
body.contraste .dropdown-menu,
body.contraste .breadcrumb,
body.contraste .list-group-item,
body.contraste .alert,
body.contraste .table,
body.contraste .navbar,
body.contraste .nav,
body.alto-contraste main,
body.alto-contraste header,
body.alto-contraste footer,
body.alto-contraste nav,
body.alto-contraste section,
body.alto-contraste article,
body.alto-contraste aside,
body.alto-contraste .container,
body.alto-contraste .container-fluid,
body.alto-contraste .row,
body.alto-contraste .card,
body.alto-contraste .card-header,
body.alto-contraste .card-body,
body.alto-contraste .card-footer,
body.alto-contraste .modal-content,
body.alto-contraste .modal-header,
body.alto-contraste .modal-body,
body.alto-contraste .modal-footer,
body.alto-contraste .dropdown-menu,
body.alto-contraste .breadcrumb,
body.alto-contraste .list-group-item,
body.alto-contraste .alert,
body.alto-contraste .table,
body.alto-contraste .navbar,
body.alto-contraste .nav {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: none !important;
}

/*
|--------------------------------------------------------------------------
| Textos
|--------------------------------------------------------------------------
*/

body.contraste p,
body.contraste span,
body.contraste label,
body.contraste small,
body.contraste strong,
body.contraste em,
body.contraste b,
body.contraste h1,
body.contraste h2,
body.contraste h3,
body.contraste h4,
body.contraste h5,
body.contraste h6,
body.contraste li,
body.contraste th,
body.contraste td,
body.contraste legend,
body.alto-contraste p,
body.alto-contraste span,
body.alto-contraste label,
body.alto-contraste small,
body.alto-contraste strong,
body.alto-contraste em,
body.alto-contraste b,
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 li,
body.alto-contraste th,
body.alto-contraste td,
body.alto-contraste legend {
    color: #fff !important;
    border-color: #fff !important;
    text-shadow: none !important;
}

/*
|--------------------------------------------------------------------------
| Links
|--------------------------------------------------------------------------
*/

body.contraste a,
body.contraste .nav-link,
body.contraste .dropdown-item,
body.contraste .page-link,
body.alto-contraste a,
body.alto-contraste .nav-link,
body.alto-contraste .dropdown-item,
body.alto-contraste .page-link {
    color: #ffff00 !important;
}

body.contraste a:hover,
body.contraste a:focus,
body.contraste .nav-link:hover,
body.contraste .nav-link:focus,
body.contraste .dropdown-item:hover,
body.contraste .dropdown-item:focus,
body.alto-contraste a:hover,
body.alto-contraste a:focus,
body.alto-contraste .nav-link:hover,
body.alto-contraste .nav-link:focus,
body.alto-contraste .dropdown-item:hover,
body.alto-contraste .dropdown-item:focus {
    color: #ffff00 !important;
    text-decoration: underline !important;
}

/*
|--------------------------------------------------------------------------
| Ícones
|--------------------------------------------------------------------------
*/

body.contraste i,
body.contraste .fa,
body.contraste .fas,
body.contraste .far,
body.contraste .fab,
body.contraste svg,
body.alto-contraste i,
body.alto-contraste .fa,
body.alto-contraste .fas,
body.alto-contraste .far,
body.alto-contraste .fab,
body.alto-contraste svg {
    color: #ffff00 !important;
    fill: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Botões
|--------------------------------------------------------------------------
*/

body.contraste .btn,
body.contraste button,
body.contraste input[type="submit"],
body.contraste input[type="button"],
body.contraste input[type="reset"],
body.alto-contraste .btn,
body.alto-contraste button,
body.alto-contraste input[type="submit"],
body.alto-contraste input[type="button"],
body.alto-contraste input[type="reset"] {
    background: #111 !important;
    background-color: #111 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
    box-shadow: none !important;
}

body.contraste .btn:hover,
body.contraste button:hover,
body.contraste input[type="submit"]:hover,
body.contraste input[type="button"]:hover,
body.alto-contraste .btn:hover,
body.alto-contraste button:hover,
body.alto-contraste input[type="submit"]:hover,
body.alto-contraste input[type="button"]:hover {
    background: #222 !important;
    background-color: #222 !important;
    color: #ffff00 !important;
    border-color: #ffff00 !important;
    text-decoration: underline !important;
}

/*
|--------------------------------------------------------------------------
| Campos de formulário
|--------------------------------------------------------------------------
*/

body.contraste input,
body.contraste select,
body.contraste textarea,
body.contraste option,
body.alto-contraste input,
body.alto-contraste select,
body.alto-contraste textarea,
body.alto-contraste option {
    background: #fff !important;
    background-color: #fff !important;
    color: #000 !important;
    border: 1px solid #ffff00 !important;
    box-shadow: none !important;
}

body.contraste input::placeholder,
body.contraste textarea::placeholder,
body.alto-contraste input::placeholder,
body.alto-contraste textarea::placeholder {
    color: #333 !important;
    opacity: 1 !important;
}

/*
|--------------------------------------------------------------------------
| Tabelas
|--------------------------------------------------------------------------
*/

body.contraste table,
body.contraste thead,
body.contraste tbody,
body.contraste tr,
body.contraste th,
body.contraste td,
body.alto-contraste table,
body.alto-contraste thead,
body.alto-contraste tbody,
body.alto-contraste tr,
body.alto-contraste th,
body.alto-contraste td {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

body.contraste thead th,
body.alto-contraste thead th {
    background: #111 !important;
    background-color: #111 !important;
    color: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Cards, caixas e dropdowns
|--------------------------------------------------------------------------
*/

body.contraste .card,
body.contraste .card-header,
body.contraste .card-body,
body.contraste .card-footer,
body.contraste .item,
body.contraste .box,
body.contraste .content,
body.contraste .dropdown-menu,
body.contraste .list-group-item,
body.alto-contraste .card,
body.alto-contraste .card-header,
body.alto-contraste .card-body,
body.alto-contraste .card-footer,
body.alto-contraste .item,
body.alto-contraste .box,
body.alto-contraste .content,
body.alto-contraste .dropdown-menu,
body.alto-contraste .list-group-item {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

body.contraste .dropdown-item,
body.alto-contraste .dropdown-item {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
}

body.contraste .dropdown-item:hover,
body.contraste .dropdown-item:focus,
body.alto-contraste .dropdown-item:hover,
body.alto-contraste .dropdown-item:focus {
    background: #111 !important;
    background-color: #111 !important;
}

/*
|--------------------------------------------------------------------------
| Badges
|--------------------------------------------------------------------------
*/

body.contraste .badge,
body.contraste .badge-success,
body.contraste .badge-danger,
body.contraste .badge-warning,
body.contraste .badge-info,
body.contraste .badge-primary,
body.contraste .badge-secondary,
body.alto-contraste .badge,
body.alto-contraste .badge-success,
body.alto-contraste .badge-danger,
body.alto-contraste .badge-warning,
body.alto-contraste .badge-info,
body.alto-contraste .badge-primary,
body.alto-contraste .badge-secondary {
    background: #111 !important;
    background-color: #111 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Imagens e mídia
|--------------------------------------------------------------------------
*/

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

body.contraste iframe,
body.contraste video,
body.contraste svg,
body.alto-contraste iframe,
body.alto-contraste video,
body.alto-contraste svg {
    -webkit-filter: none !important;
    filter: none !important;
}

/* Logo normal e logo de contraste */
body.contraste #logo,
body.contraste .logo-colorida,
body.alto-contraste #logo,
body.alto-contraste .logo-colorida {
    display: none !important;
}

body.contraste #logo_branca,
body.contraste .logo_branca,
body.contraste .logo-contraste,
body.alto-contraste #logo_branca,
body.alto-contraste .logo_branca,
body.alto-contraste .logo-contraste {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    -webkit-filter: none !important;
    filter: none !important;
}

body.contraste .navbar-brand img,
body.contraste .logo img,
body.alto-contraste .navbar-brand img,
body.alto-contraste .logo img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: transparent !important;
    mix-blend-mode: normal !important;
}

/*
|--------------------------------------------------------------------------
| Topo, menus e rodapé
|--------------------------------------------------------------------------
*/

body.contraste .p_topo,
body.contraste .p_rodape,
body.contraste .first-nav,
body.contraste #mainNav,
body.contraste .secondary-nav,
body.contraste #links-menu,
body.contraste #navbarResponsive,
body.contraste footer,
body.alto-contraste .p_topo,
body.alto-contraste .p_rodape,
body.alto-contraste .first-nav,
body.alto-contraste #mainNav,
body.alto-contraste .secondary-nav,
body.alto-contraste #links-menu,
body.alto-contraste #navbarResponsive,
body.alto-contraste footer {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

body.contraste .first-nav a,
body.contraste #mainNav a,
body.contraste .secondary-nav a,
body.contraste #links-menu a,
body.contraste #navbarResponsive a,
body.alto-contraste .first-nav a,
body.alto-contraste #mainNav a,
body.alto-contraste .secondary-nav a,
body.alto-contraste #links-menu a,
body.alto-contraste #navbarResponsive a {
    color: #ffff00 !important;
}

body.contraste #navbarResponsive ul,
body.contraste #navbarResponsive li,
body.contraste #navbarResponsive .nav-link,
body.contraste #navbarResponsive .dropdown-menu,
body.contraste #navbarResponsive .dropdown-item,
body.alto-contraste #navbarResponsive ul,
body.alto-contraste #navbarResponsive li,
body.alto-contraste #navbarResponsive .nav-link,
body.alto-contraste #navbarResponsive .dropdown-menu,
body.alto-contraste #navbarResponsive .dropdown-item {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border-color: #fff !important;
}

/* Menu no modo normal */
body:not(.contraste):not(.alto-contraste) #navbarResponsive .nav-link,
body:not(.contraste):not(.alto-contraste) #navbarResponsive .dropdown-item,
body:not(.contraste):not(.alto-contraste) #navbarResponsive .text-black {
    color: rgba(0, 0, 0, 0.7) !important;
}

/*
|--------------------------------------------------------------------------
| Paginação
|--------------------------------------------------------------------------
*/

body.contraste .page-link,
body.alto-contraste .page-link {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border-color: #fff !important;
}

body.contraste .page-item.active .page-link,
body.alto-contraste .page-item.active .page-link {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000 !important;
    border-color: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Classes Bootstrap
|--------------------------------------------------------------------------
*/

body.contraste .text-primary,
body.contraste .text-secondary,
body.contraste .text-success,
body.contraste .text-danger,
body.contraste .text-warning,
body.contraste .text-info,
body.contraste .text-muted,
body.contraste .text-dark,
body.contraste .text-black,
body.alto-contraste .text-primary,
body.alto-contraste .text-secondary,
body.alto-contraste .text-success,
body.alto-contraste .text-danger,
body.alto-contraste .text-warning,
body.alto-contraste .text-info,
body.alto-contraste .text-muted,
body.alto-contraste .text-dark,
body.alto-contraste .text-black {
    color: #fff !important;
}

body.contraste .bg-primary,
body.contraste .bg-secondary,
body.contraste .bg-success,
body.contraste .bg-danger,
body.contraste .bg-warning,
body.contraste .bg-info,
body.contraste .bg-light,
body.contraste .bg-white,
body.contraste .bg-dark,
body.alto-contraste .bg-primary,
body.alto-contraste .bg-secondary,
body.alto-contraste .bg-success,
body.alto-contraste .bg-danger,
body.alto-contraste .bg-warning,
body.alto-contraste .bg-info,
body.alto-contraste .bg-light,
body.alto-contraste .bg-white,
body.alto-contraste .bg-dark {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
}

/*
|--------------------------------------------------------------------------
| Foco acessível
|--------------------------------------------------------------------------
*/

body.contraste a:focus,
body.contraste button:focus,
body.contraste .btn:focus,
body.contraste input:focus,
body.contraste select:focus,
body.contraste textarea:focus,
body.contraste .nav-link:focus,
body.contraste .dropdown-item:focus,
body.alto-contraste a:focus,
body.alto-contraste button:focus,
body.alto-contraste .btn:focus,
body.alto-contraste input:focus,
body.alto-contraste select:focus,
body.alto-contraste textarea:focus,
body.alto-contraste .nav-link:focus,
body.alto-contraste .dropdown-item:focus {
    outline: 3px solid #ffff00 !important;
    outline-offset: 3px !important;
}

@supports selector(:focus-visible) {
    body.contraste a:focus:not(:focus-visible),
    body.contraste button:focus:not(:focus-visible),
    body.contraste input:focus:not(:focus-visible),
    body.contraste select:focus:not(:focus-visible),
    body.contraste textarea:focus:not(:focus-visible),
    body.alto-contraste a:focus:not(:focus-visible),
    body.alto-contraste button:focus:not(:focus-visible),
    body.alto-contraste input:focus:not(:focus-visible),
    body.alto-contraste select:focus:not(:focus-visible),
    body.alto-contraste textarea:focus:not(:focus-visible) {
        outline: none !important;
    }
}

/*
|--------------------------------------------------------------------------
| Banners e carrossel
|--------------------------------------------------------------------------
*/

body.contraste .carousel-item,
body.contraste .carousel-item > a,
body.contraste .carousel-inner,
body.contraste .carousel-caption,
body.contraste .carousel-caption p,
body.contraste .carousel-caption span,
body.contraste .carousel-caption h1,
body.contraste .carousel-caption h2,
body.contraste .carousel-caption h3,
body.contraste .carousel-caption h4,
body.contraste .carousel-caption h5,
body.alto-contraste .carousel-item,
body.alto-contraste .carousel-item > a,
body.alto-contraste .carousel-inner,
body.alto-contraste .carousel-caption,
body.alto-contraste .carousel-caption p,
body.alto-contraste .carousel-caption span,
body.alto-contraste .carousel-caption h1,
body.alto-contraste .carousel-caption h2,
body.alto-contraste .carousel-caption h3,
body.alto-contraste .carousel-caption h4,
body.alto-contraste .carousel-caption h5 {
    background: transparent !important;
    background-color: transparent !important;
}

body.contraste .carousel-item img,
body.contraste .carousel-inner img,
body.contraste img.f-transparent,
body.alto-contraste .carousel-item img,
body.alto-contraste .carousel-inner img,
body.alto-contraste img.f-transparent {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: transparent !important;
    -webkit-filter: grayscale(100%) contrast(115%) !important;
    filter: grayscale(100%) contrast(115%) !important;
}

body.contraste .overlay-gradient,
body.contraste .overlay-dark,
body.alto-contraste .overlay-gradient,
body.alto-contraste .overlay-dark {
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.88) 0%,
        rgba(0, 0, 0, 0.48) 50%,
        rgba(0, 0, 0, 0.08) 100%
    ) !important;
}

body.contraste .carousel-caption,
body.contraste .carousel-caption h1,
body.contraste .carousel-caption h2,
body.contraste .carousel-caption h3,
body.contraste .carousel-caption h4,
body.contraste .carousel-caption h5,
body.contraste .carousel-caption p,
body.alto-contraste .carousel-caption,
body.alto-contraste .carousel-caption h1,
body.alto-contraste .carousel-caption h2,
body.alto-contraste .carousel-caption h3,
body.alto-contraste .carousel-caption h4,
body.alto-contraste .carousel-caption h5,
body.alto-contraste .carousel-caption p {
    color: #fff !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.95) !important;
}

/*
|--------------------------------------------------------------------------
| Notícias da home
|--------------------------------------------------------------------------
*/

body.contraste .noticias-home .card a,
body.contraste .noticias-home .card .position-relative,
body.contraste .noticias-home .card-img-overlay,
body.alto-contraste .noticias-home .card a,
body.alto-contraste .noticias-home .card .position-relative,
body.alto-contraste .noticias-home .card-img-overlay {
    background: transparent !important;
    background-color: transparent !important;
}

body.contraste .noticias-home img,
body.alto-contraste .noticias-home img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: transparent !important;
    -webkit-filter: grayscale(100%) contrast(115%) !important;
    filter: grayscale(100%) contrast(115%) !important;
}

body.contraste .noticias-home .carousel-caption,
body.contraste .noticias-home .card-img-overlay,
body.alto-contraste .noticias-home .carousel-caption,
body.alto-contraste .noticias-home .card-img-overlay {
    background: transparent !important;
    background-color: transparent !important;
    color: #fff !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.95) !important;
}

body.contraste .noticias-home .card-img-overlay h6,
body.alto-contraste .noticias-home .card-img-overlay h6 {
    color: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Calendário e estação
|--------------------------------------------------------------------------
*/

body.contraste #calendarioEventos .card,
body.alto-contraste #calendarioEventos .card {
    background: #000 !important;
    background-color: #000 !important;
    border: 1px solid #fff !important;
}

body.contraste #calendarioEventos #imgEstacao,
body.alto-contraste #calendarioEventos #imgEstacao {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-color: transparent !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    -webkit-filter: grayscale(100%) contrast(115%) !important;
    filter: grayscale(100%) contrast(115%) !important;
}

body.contraste #calendarioEventos .overlay-estacao,
body.alto-contraste #calendarioEventos .overlay-estacao {
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.88) 0%,
        rgba(0, 0, 0, 0.48) 50%,
        rgba(0, 0, 0, 0.10) 100%
    ) !important;
}

body.contraste #calendarioEventos #tituloEstacao,
body.contraste #calendarioEventos #mesEstacao,
body.alto-contraste #calendarioEventos #tituloEstacao,
body.alto-contraste #calendarioEventos #mesEstacao {
    background: transparent !important;
    background-color: transparent !important;
    color: #fff !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.95) !important;
}

/*
|--------------------------------------------------------------------------
| Botões modernos
|--------------------------------------------------------------------------
*/

body.contraste .botao-moderno,
body.alto-contraste .botao-moderno {
    background: #111 !important;
    background-color: #111 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
    box-shadow: none !important;
}

body.contraste .botao-moderno .icone-wrapper,
body.contraste .botao-moderno .texto-botao,
body.contraste .botao-moderno i,
body.contraste .botao-moderno svg,
body.alto-contraste .botao-moderno .icone-wrapper,
body.alto-contraste .botao-moderno .texto-botao,
body.alto-contraste .botao-moderno i,
body.alto-contraste .botao-moderno svg {
    color: #ffff00 !important;
    fill: #ffff00 !important;
}

body.contraste .botao-moderno:hover,
body.alto-contraste .botao-moderno:hover {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border-color: #fff !important;
    text-decoration: underline !important;
}

/*
|--------------------------------------------------------------------------
| Logo principal
|--------------------------------------------------------------------------
*/

body.contraste #mainNav .logo-contraste-box,
body.alto-contraste #mainNav .logo-contraste-box {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff !important;
    background-color: #fff !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    border: 1px solid #ffff00 !important;
    min-width: 190px !important;
    min-height: 75px !important;
}

body.contraste #mainNav .logo-principal-site,
body.alto-contraste #mainNav .logo-principal-site {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: transparent !important;
    background-color: transparent !important;
    -webkit-filter: grayscale(100%) contrast(140%) brightness(1.15) !important;
    filter: grayscale(100%) contrast(180%) brightness(1) !important;
    mix-blend-mode: normal !important;
    object-fit: contain !important;
    max-height: 75px !important;
    width: auto !important;
    max-width: 260px !important;
}

/*
|--------------------------------------------------------------------------
| Scrollbar principal
|--------------------------------------------------------------------------
*/

body.contraste::-webkit-scrollbar,
body.alto-contraste::-webkit-scrollbar {
    width: 12px;
    height: 12px;
    background-color: #000;
}

body.contraste::-webkit-scrollbar-track,
body.alto-contraste::-webkit-scrollbar-track {
    background-color: #000;
    border: 1px solid #fff;
}

body.contraste::-webkit-scrollbar-thumb,
body.alto-contraste::-webkit-scrollbar-thumb {
    background-color: #ffff00;
    border: 1px solid #000;
}

/*
|--------------------------------------------------------------------------
| Escala de cinza
|--------------------------------------------------------------------------
*/

body.grayscale {
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
}

/*
|--------------------------------------------------------------------------
| Destaque de links
|--------------------------------------------------------------------------
*/

body.links-destacados a {
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 3px !important;
    outline: 2px solid currentColor !important;
    outline-offset: 2px !important;
}

/*
|--------------------------------------------------------------------------
| Menu de acessibilidade
|--------------------------------------------------------------------------
*/

.acess-icons[aria-hidden="true"] {
    display: none;
}

.jbbutton[aria-expanded="true"] {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

/*
|--------------------------------------------------------------------------
| Usuários com preferência por menos movimento
|--------------------------------------------------------------------------
*/

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}


/*
|--------------------------------------------------------------------------
| CORREÇÕES ESPECÍFICAS — HOME
|--------------------------------------------------------------------------
*/

/*
|--------------------------------------------------------------------------
| Galeria de fotos e destinos turísticos
|--------------------------------------------------------------------------
*/

body.contraste .home-section-wrapper,
body.alto-contraste .home-section-wrapper {
    background: #000 !important;
    background-color: #000 !important;
}

body.contraste .modern-title,
body.alto-contraste .modern-title {
    color: #fff !important;
}

body.contraste .modern-title i,
body.alto-contraste .modern-title i {
    color: #ffff00 !important;
}

/* Card do destino turístico */
body.contraste .tourism-list-item,
body.alto-contraste .tourism-list-item {
    background: #000 !important;
    background-color: #000 !important;
    border: 1px solid #fff !important;
    box-shadow: none !important;
}

/* Título do destino */
body.contraste .tourism-list-info h6,
body.alto-contraste .tourism-list-info h6 {
    color: #ffff00 !important;
}

/* Descrição do destino */
body.contraste .tourism-list-info p,
body.alto-contraste .tourism-list-info p {
    color: #fff !important;
}

/* Link envolvendo o destino */
body.contraste .tourism-list > a,
body.alto-contraste .tourism-list > a {
    background: transparent !important;
    color: #ffff00 !important;
}

/* Hover */
body.contraste .tourism-list-item:hover,
body.alto-contraste .tourism-list-item:hover {
    background: #111 !important;
    background-color: #111 !important;
    border-color: #ffff00 !important;
}

/* Imagem */
body.contraste .tourism-list-img,
body.alto-contraste .tourism-list-img {
    background: transparent !important;
    border: 1px solid #fff !important;
}

/* Botões inferiores */
body.contraste .btn-minimal,
body.alto-contraste .btn-minimal {
    color: #ffff00 !important;
}

body.contraste .btn-minimal i,
body.alto-contraste .btn-minimal i {
    color: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Acesso rápido
|--------------------------------------------------------------------------
*/

body.contraste .titulo-acesso,
body.alto-contraste .titulo-acesso {
    color: #fff !important;
}

/* Linha abaixo do título */
body.contraste .linha-azul,
body.alto-contraste .linha-azul {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
}

/* Área das abas */
body.contraste #myTab,
body.alto-contraste #myTab {
    background: #000 !important;
    background-color: #000 !important;
    border-bottom-color: #fff !important;
}

/* Abas inativas */
body.contraste #myTab .nav-link,
body.alto-contraste #myTab .nav-link {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border-color: #fff !important;
}

/* Aba ativa */
body.contraste #myTab .nav-link.active,
body.alto-contraste #myTab .nav-link.active {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000 !important;
    border-color: #ffff00 !important;
}

/* Conteúdo das abas */
body.contraste #myTabContent,
body.contraste #myTabContent .tab-pane,
body.contraste #servicos,
body.alto-contraste #myTabContent,
body.alto-contraste #myTabContent .tab-pane,
body.alto-contraste #servicos {
    background: #000 !important;
    background-color: #000 !important;
}

/* Cards */
body.contraste .acesso-card,
body.alto-contraste .acesso-card {
    background: #000 !important;
    background-color: #000 !important;
    border: 1px solid #fff !important;
    box-shadow: none !important;
}

/* Link do card */
body.contraste .acesso-card a,
body.alto-contraste .acesso-card a {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
}

/* Nome do acesso */
body.contraste .acesso-card p,
body.alto-contraste .acesso-card p {
    color: #ffff00 !important;
}

/* Ícones */
body.contraste .acesso-card .icon,
body.contraste .acesso-card .icon i,
body.contraste .acesso-card .icon svg,
body.alto-contraste .acesso-card .icon,
body.alto-contraste .acesso-card .icon i,
body.alto-contraste .acesso-card .icon svg {
    color: #ffff00 !important;
    fill: #ffff00 !important;
}

/* Hover */
body.contraste .acesso-card:hover,
body.contraste .acesso-card:hover a,
body.alto-contraste .acesso-card:hover,
body.alto-contraste .acesso-card:hover a {
    background: #111 !important;
    background-color: #111 !important;
    border-color: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Portal da Transparência
|--------------------------------------------------------------------------
*/

/* Seção inteira */
body.contraste section.py-4,
body.alto-contraste section.py-4 {
    background: #000 !important;
    background-color: #000 !important;
}

/* Título */
body.contraste section.py-4 h2,
body.alto-contraste section.py-4 h2 {
    color: #fff !important;
}

body.contraste section.py-4 h2 i,
body.alto-contraste section.py-4 h2 i {
    color: #ffff00 !important;
}

/* Subtítulo */
body.contraste section.py-4 .text-muted,
body.alto-contraste section.py-4 .text-muted {
    color: #fff !important;
}

/* Caixa principal */
body.contraste .content-wrapper-transp,
body.alto-contraste .content-wrapper-transp {
    background: #000 !important;
    background-color: #000 !important;
    border-color: #fff !important;
}

/* Coluna lateral */
body.contraste .content-wrapper-transp > .col-lg-3,
body.alto-contraste .content-wrapper-transp > .col-lg-3 {
    background: #000 !important;
    background-color: #000 !important;
    border-color: #fff !important;
}

/* Abas laterais inativas */
body.contraste .style-vertical-tabs .nav-link,
body.alto-contraste .style-vertical-tabs .nav-link {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border: 1px solid #fff !important;
}

/* Textos e ícones das abas */
body.contraste .style-vertical-tabs .nav-link span,
body.contraste .style-vertical-tabs .nav-link i,
body.alto-contraste .style-vertical-tabs .nav-link span,
body.alto-contraste .style-vertical-tabs .nav-link i {
    color: #ffff00 !important;
}

/* Aba ativa */
body.contraste .style-vertical-tabs .nav-link.active,
body.alto-contraste .style-vertical-tabs .nav-link.active {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000 !important;
    border-color: #ffff00 !important;
}

/* Conteúdo da aba ativa */
body.contraste .style-vertical-tabs .nav-link.active span,
body.contraste .style-vertical-tabs .nav-link.active i,
body.alto-contraste .style-vertical-tabs .nav-link.active span,
body.alto-contraste .style-vertical-tabs .nav-link.active i {
    color: #000 !important;
}

/* Área direita */
body.contraste .content-wrapper-transp > .col-lg-9,
body.alto-contraste .content-wrapper-transp > .col-lg-9 {
    background: #000 !important;
    background-color: #000 !important;
}

/* Campo de busca */
body.contraste #inputBuscaServicos,
body.alto-contraste #inputBuscaServicos {
    background: #fff !important;
    background-color: #fff !important;
    color: #000 !important;
    border: 1px solid #ffff00 !important;
}

body.contraste #inputBuscaServicos::placeholder,
body.alto-contraste #inputBuscaServicos::placeholder {
    color: #333 !important;
}

/* Cards de serviço */
body.contraste .style-menu-link,
body.alto-contraste .style-menu-link {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border: 1px solid #fff !important;
    box-shadow: none !important;
}

/* Nome do serviço */
body.contraste .style-menu-link .text-dark-gray,
body.alto-contraste .style-menu-link .text-dark-gray {
    color: #ffff00 !important;
}

/* Estrela */
body.contraste .style-menu-link .text-star-icon,
body.alto-contraste .style-menu-link .text-star-icon {
    color: #ffff00 !important;
}

/* Hover do serviço */
body.contraste .style-menu-link:hover,
body.alto-contraste .style-menu-link:hover {
    background: #111 !important;
    background-color: #111 !important;
    border-color: #ffff00 !important;
}

/* Mensagem de categoria vazia */
body.contraste .container-aviso-vazio > div,
body.alto-contraste .container-aviso-vazio > div {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

/*
|--------------------------------------------------------------------------
| Mapas incorporados detectados automaticamente
|--------------------------------------------------------------------------
*/

body.contraste iframe.jbillit-iframe-mapa,
body.alto-contraste iframe.jbillit-iframe-mapa {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    background: #fff !important;
    border: 2px solid #fff !important;

    -webkit-filter: grayscale(100%) contrast(130%) !important;
    filter: grayscale(100%) contrast(130%) !important;

    mix-blend-mode: normal !important;
}

/* Destaque no foco por teclado */
body.contraste iframe.jbillit-iframe-mapa:focus,
body.alto-contraste iframe.jbillit-iframe-mapa:focus {
    outline: 3px solid #ffff00 !important;
    outline-offset: 3px !important;
}

body.contraste .foo_top_header_one,
body.alto-contraste .foo_top_header_one {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

body.contraste .foo_top_header_one a,
body.contraste .foo_top_header_one span,
body.contraste .foo_top_header_one p,
body.contraste .foo_top_header_one i,
body.alto-contraste .foo_top_header_one a,
body.alto-contraste .foo_top_header_one span,
body.alto-contraste .foo_top_header_one p,
body.alto-contraste .foo_top_header_one i {
    color: #ffff00 !important;
}
body.contraste .foo_top_header_one h1,
body.contraste .foo_top_header_one h2,
body.contraste .foo_top_header_one h3,
body.contraste .foo_top_header_one h4,
body.contraste .foo_top_header_one h5,
body.contraste .foo_top_header_one h6,
body.alto-contraste .foo_top_header_one h1,
body.alto-contraste .foo_top_header_one h2,
body.alto-contraste .foo_top_header_one h3,
body.alto-contraste .foo_top_header_one h4,
body.alto-contraste .foo_top_header_one h5,
body.alto-contraste .foo_top_header_one h6 {
    color: #fff !important;
}



/*
|--------------------------------------------------------------------------
| ALTO CONTRASTE — ACESSO RÁPIDO
|--------------------------------------------------------------------------
*/

/* Fundo de toda a área */
html body.contraste .titulo-acesso,
html body.alto-contraste .titulo-acesso {
    color: #fff !important;
}

html body.contraste .linha-azul,
html body.alto-contraste .linha-azul {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
}

html body.contraste .acesso-rapido-grid,
html body.contraste #myTabContent,
html body.contraste #myTabContent .tab-pane,
html body.contraste #myTabContent section,
html body.alto-contraste .acesso-rapido-grid,
html body.alto-contraste #myTabContent,
html body.alto-contraste #myTabContent .tab-pane,
html body.alto-contraste #myTabContent section {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
}

/*
|--------------------------------------------------------------------------
| Abas
|--------------------------------------------------------------------------
*/

html body.contraste #myTab,
html body.alto-contraste #myTab {
    background: #000 !important;
    background-color: #000 !important;
    border-bottom: 1px solid #fff !important;
}

html body.contraste #myTab .nav-item,
html body.alto-contraste #myTab .nav-item {
    background: #000 !important;
    background-color: #000 !important;
}

/* Abas inativas */
html body.contraste #myTab .nav-link,
html body.alto-contraste #myTab .nav-link {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border: 1px solid #fff !important;
}

/* Aba ativa */
html body.contraste #myTab .nav-link.active,
html body.alto-contraste #myTab .nav-link.active {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000 !important;
    border-color: #ffff00 !important;
}

/* Hover das abas */
html body.contraste #myTab .nav-link:hover,
html body.contraste #myTab .nav-link:focus,
html body.alto-contraste #myTab .nav-link:hover,
html body.alto-contraste #myTab .nav-link:focus {
    background: #111 !important;
    background-color: #111 !important;
    color: #ffff00 !important;
    border-color: #ffff00 !important;
}

html body.contraste #myTab .nav-link.active:hover,
html body.contraste #myTab .nav-link.active:focus,
html body.alto-contraste #myTab .nav-link.active:hover,
html body.alto-contraste #myTab .nav-link.active:focus {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000 !important;
}

/*
|--------------------------------------------------------------------------
| Cards
|--------------------------------------------------------------------------
*/

html body.contraste .acesso-card,
html body.alto-contraste .acesso-card {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border: 1px solid #fff !important;
    box-shadow: none !important;
}

/* Remove fundos decorativos dos cards */
html body.contraste .acesso-card::before,
html body.contraste .acesso-card::after,
html body.alto-contraste .acesso-card::before,
html body.alto-contraste .acesso-card::after {
    background: transparent !important;
    background-color: transparent !important;
    border-color: #fff !important;
}

/* Link completo do card */
html body.contraste .acesso-card > a,
html body.alto-contraste .acesso-card > a {
    display: block;
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    text-decoration: none !important;
}

/* Texto do card */
html body.contraste .acesso-card p,
html body.alto-contraste .acesso-card p {
    background: transparent !important;
    background-color: transparent !important;
    color: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Ícones
|--------------------------------------------------------------------------
*/

html body.contraste .acesso-card .icon,
html body.alto-contraste .acesso-card .icon {
    background: #111 !important;
    background-color: #111 !important;
    color: #ffff00 !important;
    border-color: #ffff00 !important;
}

/* Font Awesome em SVG */
html body.contraste .acesso-card .icon i,
html body.contraste .acesso-card .icon svg,
html body.contraste .acesso-card .icon svg path,
html body.alto-contraste .acesso-card .icon i,
html body.alto-contraste .acesso-card .icon svg,
html body.alto-contraste .acesso-card .icon svg path {
    color: #ffff00 !important;
    fill: #ffff00 !important;
}

/* Imagens utilizadas como ícone */
html body.contraste .acesso-card .icon img,
html body.alto-contraste .acesso-card .icon img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: transparent !important;
    filter: grayscale(100%) contrast(140%) !important;
    -webkit-filter: grayscale(100%) contrast(140%) !important;
}

/*
|--------------------------------------------------------------------------
| Hover dos cards
|--------------------------------------------------------------------------
*/

html body.contraste .acesso-card:hover,
html body.contraste .acesso-card:hover > a,
html body.alto-contraste .acesso-card:hover,
html body.alto-contraste .acesso-card:hover > a {
    background: #111 !important;
    background-color: #111 !important;
    color: #ffff00 !important;
    border-color: #ffff00 !important;
}

html body.contraste .acesso-card:hover p,
html body.contraste .acesso-card:hover .icon,
html body.alto-contraste .acesso-card:hover p,
html body.alto-contraste .acesso-card:hover .icon {
    color: #ffff00 !important;
}

/*
|--------------------------------------------------------------------------
| Foco pelo teclado
|--------------------------------------------------------------------------
*/

html body.contraste .acesso-card > a:focus,
html body.alto-contraste .acesso-card > a:focus {
    outline: 3px solid #ffff00 !important;
    outline-offset: 3px !important;
}

/*
|--------------------------------------------------------------------------
| ALTO CONTRASTE — DESTINOS TURÍSTICOS
|--------------------------------------------------------------------------
*/

/* Título da seção */
html body.contraste .modern-title,
html body.alto-contraste .modern-title {
    background: transparent !important;
    color: #fff !important;
}

/* Ícone SVG do título */
html body.contraste .modern-title svg,
html body.contraste .modern-title svg path,
html body.alto-contraste .modern-title svg,
html body.alto-contraste .modern-title svg path {
    color: #ffff00 !important;
    fill: #ffff00 !important;
}

/* Lista */
html body.contraste .tourism-list,
html body.alto-contraste .tourism-list {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
}

/* Link que envolve cada destino */
html body.contraste .tourism-list > a,
html body.alto-contraste .tourism-list > a {
    display: block;
    background: transparent !important;
    background-color: transparent !important;
    color: #ffff00 !important;
    text-decoration: none !important;
}

/* Card do destino */
html body.contraste .tourism-list-item,
html body.alto-contraste .tourism-list-item {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border: 1px solid #fff !important;
    box-shadow: none !important;
}

/* Remove fundos decorativos */
html body.contraste .tourism-list-item::before,
html body.contraste .tourism-list-item::after,
html body.alto-contraste .tourism-list-item::before,
html body.alto-contraste .tourism-list-item::after {
    background: transparent !important;
    background-color: transparent !important;
    border-color: #fff !important;
}

/* Área de informações */
html body.contraste .tourism-list-info,
html body.alto-contraste .tourism-list-info {
    background: transparent !important;
    background-color: transparent !important;
    color: #fff !important;
}

/* Nome do destino */
html body.contraste .tourism-list-info h6,
html body.alto-contraste .tourism-list-info h6 {
    background: transparent !important;
    color: #ffff00 !important;
}

/* Descrição */
html body.contraste .tourism-list-info p,
html body.alto-contraste .tourism-list-info p {
    background: transparent !important;
    color: #fff !important;
}

/*
|--------------------------------------------------------------------------
| Imagens
|--------------------------------------------------------------------------
*/

html body.contraste .tourism-list-img,
html body.alto-contraste .tourism-list-img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    background: transparent !important;
    border: 1px solid #fff !important;

    -webkit-filter: grayscale(100%) contrast(125%) !important;
    filter: grayscale(100%) contrast(125%) !important;

    mix-blend-mode: normal !important;
}

/*
|--------------------------------------------------------------------------
| Hover dos destinos
|--------------------------------------------------------------------------
*/

html body.contraste .tourism-list-item:hover,
html body.alto-contraste .tourism-list-item:hover {
    background: #111 !important;
    background-color: #111 !important;
    border-color: #ffff00 !important;
    box-shadow: none !important;
}

html body.contraste .tourism-list > a:hover .tourism-list-info h6,
html body.alto-contraste .tourism-list > a:hover .tourism-list-info h6 {
    color: #ffff00 !important;
    text-decoration: underline !important;
}

/*
|--------------------------------------------------------------------------
| Botão "Explorar roteiros"
|--------------------------------------------------------------------------
*/

html body.contraste .btn-minimal,
html body.alto-contraste .btn-minimal {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;

    border: 1px solid #ffff00 !important;
    border-radius: 4px !important;
    padding: 8px 12px !important;

    text-decoration: none !important;
}

/* Seta SVG */
html body.contraste .btn-minimal svg,
html body.contraste .btn-minimal svg path,
html body.alto-contraste .btn-minimal svg,
html body.alto-contraste .btn-minimal svg path {
    color: #ffff00 !important;
    fill: #ffff00 !important;
}

/* Hover do botão */
html body.contraste .btn-minimal:hover,
html body.contraste .btn-minimal:focus,
html body.alto-contraste .btn-minimal:hover,
html body.alto-contraste .btn-minimal:focus {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000 !important;
    text-decoration: underline !important;
}

html body.contraste .btn-minimal:hover svg,
html body.contraste .btn-minimal:hover svg path,
html body.contraste .btn-minimal:focus svg,
html body.contraste .btn-minimal:focus svg path,
html body.alto-contraste .btn-minimal:hover svg,
html body.alto-contraste .btn-minimal:hover svg path,
html body.alto-contraste .btn-minimal:focus svg,
html body.alto-contraste .btn-minimal:focus svg path {
    color: #000 !important;
    fill: #000 !important;
}

/*
|--------------------------------------------------------------------------
| Foco acessível
|--------------------------------------------------------------------------
*/

html body.contraste .tourism-list > a:focus,
html body.alto-contraste .tourism-list > a:focus {
    outline: 3px solid #ffff00 !important;
    outline-offset: 3px !important;
}


/* ==========================================================
   FALE CONOSCO
   CSS exclusivo para esta seção
   Compatível com Bootstrap 4.6
========================================================== */

.fale-conosco {
    --fc-primary: #0056b3;
    --fc-primary-dark: #003f86;
    --fc-background: #f4f6f8;
    --fc-card-background: #ffffff;
    --fc-title: #17212b;
    --fc-text: #46515c;
    --fc-border: #d6dde4;
    --fc-link: #004b91;

    position: relative;
    width: 100%;
    padding: 55px 0 35px;
    background-color: var(--fc-background);
    color: var(--fc-text);
    overflow: hidden;
}

/* Linha superior decorativa */
.fale-conosco::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background-color: var(--fc-primary);
}

.fale-conosco .container {
    position: relative;
    z-index: 1;
}

/* ==========================================================
   TÍTULO
========================================================== */

.fale-conosco .container > h3 {
    position: relative;
    margin: 0 0 32px;
    padding: 0 15px 17px;
    color: var(--fc-title);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}

.fale-conosco .container > h3 > i {
    margin-right: 8px;
    color: var(--fc-primary);
}

.fale-conosco .container > h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 65px;
    height: 4px;
    border-radius: 20px;
    background-color: var(--fc-primary);
    transform: translateX(-50%);
}

/* ==========================================================
   REDES SOCIAIS
========================================================== */

.fale-conosco .social-icons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 0 35px;
}

.fale-conosco .social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 8px 16px;
    border: 1px solid var(--fc-border);
    border-radius: 9px;
    background-color: #ffffff;
    color: #26323d;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(24, 39, 56, 0.07);
    transition:
        color 0.2s ease,
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.fale-conosco .social-icons a img {
    display: block;
    flex: 0 0 auto;
    width: 25px;
    height: 25px;
    margin-right: 9px;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    object-fit: contain;
    filter: none;
}

.fale-conosco .social-icons a:hover {
    border-color: var(--fc-primary);
    background-color: var(--fc-primary);
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(0, 86, 179, 0.2);
    transform: translateY(-2px);
}

.fale-conosco .social-icons a:hover img {
    filter: none;
}

/* ==========================================================
   CARTÕES
========================================================== */

.fale-conosco .row {
    display: flex;
    flex-wrap: wrap;
}

.fale-conosco .row > [class*="col-"] {
    display: flex;
}

.fale-conosco .contact-card {
    position: relative;
    width: 100%;
    min-height: 100%;
    padding: 32px 24px 28px;
    border: 1px solid var(--fc-border);
    border-radius: 13px;
    background-color: var(--fc-card-background);
    color: var(--fc-text);
    text-align: center;
    box-shadow: 0 6px 20px rgba(24, 39, 56, 0.08);
    overflow: hidden;
    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        transform 0.25s ease;
}

/* Linha superior do cartão */
.fale-conosco .contact-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: var(--fc-primary);
}

.fale-conosco .contact-card:hover {
    border-color: var(--fc-primary);
    box-shadow: 0 13px 30px rgba(24, 39, 56, 0.14);
    transform: translateY(-5px);
}

/* Somente o ícone principal do cartão */
.fale-conosco .contact-card > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    margin-bottom: 20px;
    border-radius: 50%;
    background-color: var(--fc-primary);
    color: #ffffff;
    font-size: 1.55rem;
    box-shadow: 0 7px 17px rgba(0, 86, 179, 0.23);
}

.fale-conosco .contact-card h4 {
    margin: 0 0 12px;
    color: var(--fc-title);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.4;
}

.fale-conosco .contact-card p {
    margin: 0 0 16px;
    color: var(--fc-text);
    font-size: 0.92rem;
    line-height: 1.65;
}

/* Telefones, WhatsApp, e-mail e endereço */
.fale-conosco .contact-card a {
    display: inline-block;
    max-width: 100%;
    margin: 3px 0;
    color: var(--fc-link);
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.55;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
    word-break: break-word;
    transition: color 0.2s ease;
}

.fale-conosco .contact-card a:hover {
    color: var(--fc-primary-dark);
    text-decoration-thickness: 2px;
}

.fale-conosco .contact-card a i {
    color: inherit;
}

/* ==========================================================
   FOCO E ACESSIBILIDADE
========================================================== */

.fale-conosco a:focus,
.fale-conosco button:focus,
#mapsModal button:focus {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px;
    box-shadow: none !important;
}

.fale-conosco a:focus-visible,
.fale-conosco button:focus-visible,
#mapsModal button:focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px;
}

/* ==========================================================
   MODAL DO GOOGLE MAPS
========================================================== */

#mapsModal .modal-dialog {
    max-width: 900px;
}

#mapsModal .modal-content {
    border: 0;
    border-radius: 13px;
    background-color: #ffffff;
    overflow: hidden;
}

#mapsModal .modal-header {
    display: flex;
    align-items: center;
    min-height: 62px;
    padding: 15px 20px;
    border-bottom: 0;
    background-color: #0056b3;
    color: #ffffff;
}

#mapsModal .modal-title {
    margin: 0;
    color: #ffffff;
    font-size: 1.05rem;
    font-weight: 700;
}

#mapsModal .modal-title i {
    margin-right: 7px;
}

#mapsModal .close {
    margin: -5px -5px -5px auto;
    padding: 8px;
    color: #ffffff;
    font-size: 1.8rem;
    line-height: 1;
    text-shadow: none;
    opacity: 1;
}

#mapsModal .close:hover {
    color: #ffffff;
    opacity: 0.8;
}

#mapsModal .modal-body {
    width: 100%;
    min-height: 420px;
    background-color: #e9ecef;
}

#mapsModal .modal-body iframe {
    display: block;
    width: 100% !important;
    height: 420px !important;
    min-height: 420px;
    border: 0 !important;
}

/* ==========================================================
   ALTO CONTRASTE
   Ativado por: <body class="alto-contraste">
========================================================== */

body.alto-contraste .fale-conosco {
    --fc-primary: #ffff00;
    --fc-primary-dark: #ffffff;
    --fc-background: #000000;
    --fc-card-background: #000000;
    --fc-title: #ffffff;
    --fc-text: #ffffff;
    --fc-border: #ffff00;
    --fc-link: #ffff00;

    background-color: #000000 !important;
    color: #ffffff !important;
}

body.alto-contraste .fale-conosco::before {
    background-color: #ffff00 !important;
}

body.alto-contraste .fale-conosco .container > h3,
body.alto-contraste .fale-conosco .container > h3 > i {
    color: #ffff00 !important;
}

body.alto-contraste .fale-conosco .container > h3::after {
    background-color: #ffff00 !important;
}

/* Redes sociais no alto contraste */
body.alto-contraste .fale-conosco .social-icons a {
    border: 2px solid #ffff00 !important;
    background-color: #000000 !important;
    color: #ffff00 !important;
    box-shadow: none !important;
}

/*
 * Importante:
 * não aplica invert(), brightness() ou fundo branco nas imagens.
 * Isso evita os quadrados brancos mostrados anteriormente.
 */
body.alto-contraste .fale-conosco .social-icons a img {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
}

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

/* Cartões no alto contraste */
body.alto-contraste .fale-conosco .contact-card {
    border: 2px solid #ffff00 !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body.alto-contraste .fale-conosco .contact-card::before {
    background-color: #ffff00 !important;
}

body.alto-contraste .fale-conosco .contact-card:hover {
    border-color: #ffffff !important;
    box-shadow: none !important;
}

body.alto-contraste .fale-conosco .contact-card > i {
    border: 2px solid #ffff00 !important;
    background-color: #000000 !important;
    color: #ffff00 !important;
    box-shadow: none !important;
}

body.alto-contraste .fale-conosco .contact-card h4,
body.alto-contraste .fale-conosco .contact-card p {
    color: #ffffff !important;
}

body.alto-contraste .fale-conosco .contact-card a,
body.alto-contraste .fale-conosco .contact-card a i {
    color: #ffff00 !important;
}

body.alto-contraste .fale-conosco .contact-card a:hover,
body.alto-contraste .fale-conosco .contact-card a:focus {
    color: #ffffff !important;
}

/* Modal no alto contraste */
body.alto-contraste #mapsModal .modal-content {
    border: 2px solid #ffff00 !important;
    background-color: #000000 !important;
}

body.alto-contraste #mapsModal .modal-header {
    border-bottom: 2px solid #ffff00 !important;
    background-color: #000000 !important;
}

body.alto-contraste #mapsModal .modal-title,
body.alto-contraste #mapsModal .modal-title i,
body.alto-contraste #mapsModal .close {
    color: #ffff00 !important;
}

body.alto-contraste #mapsModal .modal-body {
    background-color: #000000 !important;
}

/* ==========================================================
   RESPONSIVIDADE
========================================================== */

@media (max-width: 991.98px) {
    .fale-conosco {
        padding: 48px 0 28px;
    }

    .fale-conosco .contact-card {
        padding: 28px 20px 25px;
    }
}

@media (max-width: 767.98px) {
    .fale-conosco {
        padding: 40px 0 20px;
    }

    .fale-conosco .container > h3 {
        margin-bottom: 26px;
        font-size: 1.5rem;
    }

    .fale-conosco .social-icons {
        margin-bottom: 28px;
    }

    .fale-conosco .social-icons a {
        flex: 1 1 calc(50% - 10px);
        max-width: calc(50% - 5px);
    }

    .fale-conosco .row > [class*="col-"] {
        display: block;
    }

    .fale-conosco .contact-card {
        min-height: auto;
    }

    #mapsModal .modal-dialog {
        margin: 15px;
    }

    #mapsModal .modal-body,
    #mapsModal .modal-body iframe {
        height: 350px !important;
        min-height: 350px;
    }
}

@media (max-width: 479.98px) {
    .fale-conosco .social-icons {
        display: block;
    }

    .fale-conosco .social-icons a {
        width: 100%;
        max-width: 100%;
        margin-bottom: 10px;
    }

    .fale-conosco .contact-card {
        padding: 25px 18px;
    }

    .fale-conosco .contact-card > i {
        width: 58px;
        height: 58px;
        font-size: 1.35rem;
    }

    #mapsModal .modal-body,
    #mapsModal .modal-body iframe {
        height: 300px !important;
        min-height: 300px;
    }
}

/* Remove animações para usuários com preferência de movimento reduzido */
@media (prefers-reduced-motion: reduce) {
    .fale-conosco *,
    .fale-conosco *::before,
    .fale-conosco *::after,
    #mapsModal * {
        animation: none !important;
        scroll-behavior: auto !important;
        transition: none !important;
    }
}