/* ====== estilos gerais do portal ====== */

/* cartões de destaque e tela inicial */
.card-hero {
  border: 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
}
.card-hero .hero-head {
  background: linear-gradient(135deg, #0d6efd 0%, #5c9dff 100%);
  color: #fff;
  padding: 18px 20px;
}
.card-hero .hero-head h2 { margin: 0; font-size: 1.25rem; }
.card-hero .hero-body { background: #fff; padding: 18px 20px; }

.card-wide {
  border: 0;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

/* títulos de seção com marcador */
.section-title {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-weight: 600;
  margin-bottom: .75rem;
}
.section-title .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #0d6efd;
}

/* grid de cards da home */
.grid-cards .card {
  border: 0;
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  transition: transform .15s ease, box-shadow .15s ease;
  height: 100%;
}
.grid-cards .card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}

/* ícones nos cards */
.icon-wrap {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eef4ff;
  color: #0d6efd;
}

/* lista de anexos */
.list-anexos a { text-decoration: none; }
.list-anexos a:hover { text-decoration: underline; }

/* ====== Acessibilidade ====== */
/* Tamanho global da fonte, controlado por classe em <html> */
html.fs-100 { font-size: 100%; }
html.fs-115 { font-size: 115%; }
html.fs-130 { font-size: 130%; }

/* Alto contraste global */
html.a11y-contrast,
html.a11y-contrast body {
  background-color: #0b0b0b;
  color: #f2f2f2;
}

/* links e elementos interativos em alto contraste */
html.a11y-contrast a { color: #ffd000; text-decoration: underline; }
html.a11y-contrast .btn { border-color: #fff; }
html.a11y-contrast .btn-primary {
  background-color: #ffd000;
  border-color: #ffd000;
  color: #000;
}

/* navegação e dropdowns */
html.a11y-contrast .navbar,
html.a11y-contrast .dropdown-menu {
  background-color: #111 !important;
  color: #f2f2f2 !important;
  border-color: #2a2a2a !important;
}

/* cartões, incluindo os com estilo inline, forçando fundo escuro */
html.a11y-contrast .card {
  background-color: #111 !important;
  color: #f2f2f2;
  border-color: #2a2a2a;
}

/* hero da home */
html.a11y-contrast .card-hero .hero-body { background-color: #111 !important; }
/* marcador de seção mais visível */
html.a11y-contrast .section-title .dot { background: #ffd000; }

/* formulário em alto contraste */
html.a11y-contrast .form-control,
html.a11y-contrast .form-select {
  background-color: #0b0b0b;
  color: #f2f2f2;
  border-color: #2a2a2a;
}
html.a11y-contrast .form-control::placeholder { color: #cfcfcf; }

/* elementos muted ficam legíveis em alto contraste */
html.a11y-contrast .text-muted,
html.a11y-contrast .small.text-muted {
  color: #e6e6e6 !important;
}

/* divisórias e listas */
html.a11y-contrast hr { border-top-color: #2a2a2a; }
html.a11y-contrast .list-group-item {
  background: #0f0f0f;
  color: #f2f2f2;
  border-color: #2a2a2a;
}

/* toolbar da página de acessibilidade */
.a11y-toolbar .btn { min-width: 42px; }
.a11y-toolbar .btn.active { outline: 2px solid #0d6efd; outline-offset: 2px; }

/* toast leve usado no Aplicar */
.a11y-toast {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 1060;
  background: rgba(17,17,17,.9);
  color: #fff;
  padding: 10px 14px;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
}
