/* ==========================================================================
   Acessibilidade (teclado, alvos de toque, contraste) e responsividade
   Carregado por último; usa !important apenas onde o tema/inline o anula.
   ========================================================================== */

/* ── Foco visível em campos de formulário (WCAG 2.4.7 / 2.4.11) ───────── */
input:not([type="hidden"]):focus-visible,
select:focus-visible,
textarea:focus-visible,
.do-filters__input:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible {
  outline: 3px solid #1351b4 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px rgba(19, 81, 180, .25) !important;
}
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #1351b4;
  outline-offset: 2px;
}
.hp-topbar a:focus-visible,
.hp-topbar button:focus-visible {
  outline-color: #fff;
}

/* ── Alvos de toque mínimos de 24×24 px (WCAG 2.5.8) ──────────────────── */
.hp-topbar-right a,
.hp-search-toggle {
  min-height: 24px;
  padding-block: 4px;
}
.hp-social-icons a {
  min-width: 24px;
  min-height: 24px;
  justify-content: center;
}
.page-numbers {
  min-width: 32px;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.swiper-pagination-bullet {
  position: relative;
  width: 24px !important;
  height: 24px !important;
  background: transparent !important;
  opacity: 1 !important;
  margin: 0 !important;
}
.swiper-pagination-bullet::after {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  background: var(--swiper-pagination-bullet-inactive-color, #fff);
  opacity: .7;
}
.swiper-pagination-bullet-active::after {
  background: var(--swiper-pagination-color, #fff);
  opacity: 1;
}
input[id^="enq_opt_"],
input[type="radio"],
input[type="checkbox"] {
  min-width: 24px;
  min-height: 24px;
}

/* Breadcrumb (links com estilo inline) e iframes focáveis */
nav a[style*="#0d6efd"], .breadcrumb a[style*="#0d6efd"], a[style*="#0d6efd"][href] {
  display: inline-block;
  min-height: 24px;
  line-height: 24px;
}
a.govbr-revista-title,
.wp-block-post-title a { display: block; min-height: 24px; }
iframe:focus-visible { outline: 3px solid #1351b4; outline-offset: 2px; }

/* ── Contraste (WCAG 1.4.3) ─────────────────────────────────────────── */
.wp-block-paragraph > a[style*="#0ea5e9"] { color: #0369a1 !important; }
.govbr-weather-forecast-date,
.govbr-weather-forecast-min { color: #475569; }
.govbr-weather-forecast-rain-pct { color: #334155; }
.govbr-weather-meta-content,
.govbr-weather-timestamp,
.govbr-weather-credits,
.govbr-weather-credit-url { color: #fff; }
.govbr-weather-credit-url:hover { color: #e0e7ff; }

.govbr-single-breadcrumb span { opacity: 1 !important; }
.badge.bg-danger { background-color: #b91c1c !important; color: #fff !important; }
.badge.bg-success { background-color: #15803d !important; color: #fff !important; }
:root { --primary-color: var(--portal-primary-hex, #1351b4); }

/* Campos de data: o foco fica no segmento interno, então usa :focus-within */
input[type="date"]:focus-within,
input[type="time"]:focus-within,
input[type="datetime-local"]:focus-within {
  outline: 3px solid #1351b4 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px rgba(19, 81, 180, .25) !important;
}

/* ── Responsividade ─────────────────────────────────────────────────── */
img, video, iframe, table { max-width: 100%; }
