/* Shared accessibility styles, loaded after the theme and plugin styles. */
@media (min-width: 992px) {
    .local-hours-column { display: flex; }
    .local-hours-table { display: flex; width: 100%; }
    .local-hours-table > table { height: 100%; margin-bottom: 0; }
    #meteorologia > div:last-child table { margin-bottom: 0; }
}
[hidden] { display: none !important; }
.skip-link {
    position: fixed;
    left: 1rem;
    top: 1rem;
    z-index: 100000;
    padding: .75rem 1rem;
    color: #fff;
    background: #111;
    transform: translateY(-200%);
}
.skip-link:focus { transform: translateY(0); color: #fff; }
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
/* O foco não desenha molduras à volta dos conteúdos ou controlos. */
:focus, :focus-visible {
    outline: none !important;
    outline-offset: 0 !important;
}
:is(a, button, [tabindex], summary, .btn, .input-group-text):not(input):not(select):not(textarea):is(:focus, :focus-visible) {
    box-shadow: none !important;
}
/* As ligações continuam identificáveis ao navegar com o teclado. */
a[href]:focus-visible {
    text-decoration: underline;
    text-underline-offset: .2em;
}
/* Fields use a subtle focus border instead of the navigation outline. */
:is(input, select, textarea):focus {
    outline: none !important;
    outline-offset: 0 !important;
}
:is(input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]), select, textarea):focus {
    border-color: var(--theme-primary, #066a31);
    box-shadow: 0 0 0 1px var(--theme-primary, #066a31);
}
:is(input[type="checkbox"], input[type="radio"]):focus-visible {
    outline: 2px solid var(--theme-primary, #066a31) !important;
    outline-offset: 2px !important;
}
#main-content:focus, #main-content:focus-visible { outline: none !important; outline-offset: 0 !important; box-shadow: none !important; }
button, [role="button"] { min-width: 24px; min-height: 24px; }
.hours-btn, .mobile-nav-toggler, .mobile-menu .close-btn, .close-search {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
}
.header-top-one .hours:focus-within .hours-dropdown,
.header-top-one .hours.is-expanded .hours-dropdown,
.header-style-one .language:focus-within .lang-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.main-footer a, .main-footer .text-muted { color: #d5d9de !important; }
.main-footer a:hover, .main-footer a:focus { color: #fff !important; }
.fc .fc-daygrid-day-number, .fc .fc-col-header-cell-cushion { color: #595959 !important; }
.fc .fc-day-other .fc-daygrid-day-top { opacity: 1; }
.fc .fc-day-other .fc-daygrid-day-number { color: #595959 !important; }
.fc .fc-icon[role="img"] { pointer-events: none; }
.carousel .polo-carousel-item[inert] { pointer-events: none; }
#slider .kenburns-bg { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
.footer, .footer .nome-instituicao { color: #505760 !important; }
.header-top-one .hours[data-dismissed="true"] .hours-dropdown { opacity: 0; visibility: hidden; }
.dropdown-btn { border: 0; background: transparent; color: inherit; }
.cookiealert a { color: #fff !important; text-decoration: underline; }
.ipma-uv-index { color: #595959 !important; }
#nav-filters .nav-link > div { opacity: 1 !important; }
#nav-filters .nav-link > div:not(.active) { background-color: #f1f3f5; color: #333; }
#nav-filters .nav-link > .analise-points.active,
#nav-filters .nav-link > .concluidos-points.active { color: #111; }
#nav-filters .nav-link > .active { box-shadow: inset 0 0 0 2px currentColor; }
.bootstrap-select .filter-option-inner-inner, .dropify-wrapper .file-icon p,
#main-content small i { color: #595959 !important; }
.fa-fade, .fa-bounce, .fa-shake, .fa-beat { animation: none !important; }
#nav-filters .nav-link { opacity: 1 !important; }
.main-footer .widget-title h2 { color: #fff; font-weight: 700; margin: 0; }
.main-footer .about-widget h2 { color: #fff; font-weight: 700; margin-bottom: 5px; }
@media (max-width: 992px) {
    .page-title-main {
        display: block !important;
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
    }
}

/* Ligações úteis: o cartão completo abre o site da entidade. */
.useful-link-card { display: block; }
.useful-link-card .portfolio-description { pointer-events: none; }
.useful-link-card .useful-link-icon i {
    display: inline-block;
    background-color: #fff;
    color: #444;
    border-radius: 50%;
    font-size: 18px;
    width: 40px;
    height: 40px;
    line-height: 40px !important;
}
.useful-link-card:focus-visible .portfolio-description {
    opacity: 1;
    visibility: visible;
}

/* Os contentores não recebem uma moldura quando o mapa ou uma janela recupera o foco. */
:is(.leaflet-container, .maplibregl-canvas-container, .maplibregl-canvas, .flickity-viewport, [tabindex="-1"]):not(input):not(select):not(textarea):is(:focus, :focus-visible) {
    outline: none !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
}

/* Escape fecha os widgets sem desenhar um contorno no elemento que recupera o foco. */
html.focus-dismissed :is(a, button, [tabindex]):not(input):not(select):not(textarea):is(:focus, :focus-visible),
html.focus-dismissed .btn:is(:focus, :focus-visible),
html.focus-dismissed .input-group-text:is(:focus, :focus-visible) {
    outline: none !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
}
