/* GUIA DO ARQUIVO: Define cores, tamanhos, espaçamentos e apresentação visual de contrast. */
/* Eventos Paroquiais — correção de contraste 2026-10-01
   Carregada por último para impedir que regras legadas de .btn deixem texto branco em fundos claros. */

/* Texto padrão sempre legível nas áreas claras do site. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-main,
.site-page .site-main .card,
.site-page .site-main .modal-content,
.site-page .site-main .dropdown-menu,
.site-page .site-main .list-group-item {
  color: #20283a;
}

/* Botões primários: branco somente quando o fundo é realmente escuro. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-primary,
.site-page .btn-primary:visited,
.site-page .btn-primary:hover,
.site-page .btn-primary:focus,
.site-page .btn-primary:active,
.site-page .btn-primary.active,
.site-page .btn-check:checked + .btn-primary,
.site-page .show > .btn-primary.dropdown-toggle {
  color: #ffffff !important;
  background-color: #354684 !important;
  border-color: #354684 !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-primary:hover,
.site-page .btn-primary:focus,
.site-page .btn-primary:active,
.site-page .btn-primary.active {
  background-color: #26366f !important;
  border-color: #26366f !important;
}

/* Secundário agora usa fundo escuro suficiente para texto branco. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-secondary,
.site-page .btn-secondary:visited,
.site-page .btn-secondary:hover,
.site-page .btn-secondary:focus,
.site-page .btn-secondary:active,
.site-page .btn-secondary.active {
  color: #ffffff !important;
  background-color: #4b5672 !important;
  border-color: #4b5672 !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-secondary:hover,
.site-page .btn-secondary:focus,
.site-page .btn-secondary:active {
  background-color: #39445f !important;
  border-color: #39445f !important;
}

/* Botões claros: texto azul-escuro forte. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-light,
.site-page .btn-light:visited {
  color: #172554 !important;
  background-color: #ffffff !important;
  border-color: #d4d9e3 !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-light:hover,
.site-page .btn-light:focus,
.site-page .btn-light:active,
.site-page .btn-light.active {
  color: #172554 !important;
  background-color: #eef1f6 !important;
  border-color: #bcc5d5 !important;
}

/* Contorno azul: fundo branco = texto azul; ativo = fundo azul + texto branco. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-outline-primary,
.site-page .btn-outline-primary:visited {
  color: #263b78 !important;
  background-color: #ffffff !important;
  border-color: #7380ab !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-outline-primary:hover,
.site-page .btn-outline-primary:focus,
.site-page .btn-outline-primary:active,
.site-page .btn-outline-primary.active,
.site-page .btn-check:checked + .btn-outline-primary {
  color: #ffffff !important;
  background-color: #354684 !important;
  border-color: #354684 !important;
}

/* Contorno cinza: mantém texto escuro em fundo claro inclusive no clique. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-outline-secondary,
.site-page .btn-outline-secondary:visited,
.site-page .btn-outline-secondary:hover,
.site-page .btn-outline-secondary:focus,
.site-page .btn-outline-secondary:active,
.site-page .btn-outline-secondary.active {
  color: #34405a !important;
  background-color: #ffffff !important;
  border-color: #aeb7c7 !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-outline-secondary:hover,
.site-page .btn-outline-secondary:focus,
.site-page .btn-outline-secondary:active,
.site-page .btn-outline-secondary.active {
  background-color: #e9edf4 !important;
  border-color: #8e99ad !important;
}

/* Estados semânticos com contraste estável. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-success,
.site-page .btn-success:visited,
.site-page .btn-success:hover,
.site-page .btn-success:focus,
.site-page .btn-success:active {
  color: #ffffff !important;
  background-color: #20744b !important;
  border-color: #20744b !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-danger,
.site-page .btn-danger:visited,
.site-page .btn-danger:hover,
.site-page .btn-danger:focus,
.site-page .btn-danger:active {
  color: #ffffff !important;
  background-color: #a83241 !important;
  border-color: #a83241 !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-info,
.site-page .btn-info:visited,
.site-page .btn-info:hover,
.site-page .btn-info:focus,
.site-page .btn-info:active {
  color: #17324d !important;
  background-color: #dbeefe !important;
  border-color: #9fc9ea !important;
}

/* Botão desabilitado não pode virar branco sobre cinza-claro. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn:disabled,
.site-page .btn.disabled,
.site-page fieldset:disabled .btn {
  opacity: 1 !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-secondary:disabled,
.site-page .btn-secondary.disabled {
  color: #3e485e !important;
  background-color: #e2e6ed !important;
  border-color: #c8ced9 !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn-outline-primary:disabled,
.site-page .btn-outline-primary.disabled,
.site-page .btn-outline-secondary:disabled,
.site-page .btn-outline-secondary.disabled {
  color: #596277 !important;
  background-color: #f4f5f8 !important;
  border-color: #c9cfda !important;
}

/* Navegação interna do Bootstrap: ativo em fundo branco precisa de texto escuro. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .nav-tabs .nav-link,
.site-page .nav-pills .nav-link:not(.active),
.site-page .pagination .page-link,
.site-page .dropdown-item,
.site-page .list-group-item-action {
  color: #263b78;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .nav-tabs .nav-link.active {
  color: #172554 !important;
  background-color: #ffffff !important;
}
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .nav-pills .nav-link.active,
.site-page .pagination .page-item.active .page-link,
.site-page .dropdown-item.active,
.site-page .dropdown-item:active {
  color: #ffffff !important;
  background-color: #354684 !important;
}

/* Links e textos dentro de cartões claros. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .bg-white a:not(.btn),
.site-page .card a:not(.btn),
.site-page .modal-content a:not(.btn),
.site-page .alert-light a {
  color: #263b78;
}

/* Foco visível, sem depender apenas de mudança de cor. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .btn:focus-visible,
.site-page a:focus-visible,
.site-page button:focus-visible {
  outline: 3px solid #d1a23e !important;
  outline-offset: 2px;
}

/* Exceções intencionais em fundos escuros. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .home-hero .btn-primary,
.site-page .events-hero .btn-primary,
.site-page .registration-page-hero .btn-primary {
  color: #ffffff !important;
}

/* Hotfix 2026-10-01 — cabeçalho da página Eventos em fundo claro.
   Impede texto branco invisível quando regras do tema/legado neutralizam o fundo escuro. */
/* Estilo: Controla a aparência de eventos. */
.site-page-events .events-hero {
  background: linear-gradient(180deg, #f3f6fb 0%, #ffffff 100%) !important;
  color: #172554 !important;
  border-bottom: 1px solid #e3e8f1;
}
/* Estilo: Controla a aparência de eventos. */
.site-page-events .events-hero h1,
.site-page-events .events-hero h1 a {
  color: #172554 !important;
  text-shadow: none !important;
}
/* Estilo: Controla a aparência de eventos. */
.site-page-events .events-hero p {
  color: #4f5b70 !important;
}
/* Estilo: Controla a aparência de eventos. */
.site-page-events .events-hero .section-kicker {
  color: #8a671d !important;
}
/* =========================================================
   HOTFIX 2026-10-03 — MENU DO USUÁRIO LOGADO
   Corrige "Meu perfil" e "Sair" herdando texto branco
   das regras antigas do header/nav.
   ========================================================= */

/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-header nav .site-user-menu {
  background: #ffffff !important;
  color: #20283a !important;
  border: 1px solid #dfe5eb !important;
  box-shadow: 0 14px 34px rgba(23, 37, 84, 0.16) !important;
  z-index: 1600 !important;
}

/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-header nav .site-user-menu .site-user-menu-name {
  color: #172554 !important;
  background: #ffffff !important;
  border-bottom-color: #e5e9f0 !important;
  text-shadow: none !important;
  opacity: 1 !important;
}

/* Neutraliza especificamente a regra legada:
   header nav a:not(.container_nav .btn_nav a) { color: ... } */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-header nav .site-user-menu a,
.site-page .site-header nav .site-user-menu a:link,
.site-page .site-header nav .site-user-menu a:visited {
  color: #172554 !important;
  background: transparent !important;
  text-decoration: none !important;
  text-shadow: none !important;
  opacity: 1 !important;
}

/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-header nav .site-user-menu a:hover,
.site-page .site-header nav .site-user-menu a:focus,
.site-page .site-header nav .site-user-menu a:focus-visible {
  color: #0f2148 !important;
  background: #eef3f8 !important;
  outline-color: #d1a23e !important;
}

/* Sair: destaque visual sem comprometer o contraste. */
/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-header nav .site-user-menu a[href$="/logout"],
.site-page .site-header nav .site-user-menu a[href*="/logout?"],
.site-page .site-header nav .site-user-menu a[href$="/sair"],
.site-page .site-header nav .site-user-menu a[href*="/sair?"] {
  color: #a1261f !important;
}

/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-header nav .site-user-menu a[href$="/logout"]:hover,
.site-page .site-header nav .site-user-menu a[href*="/logout?"]:hover,
.site-page .site-header nav .site-user-menu a[href$="/sair"]:hover,
.site-page .site-header nav .site-user-menu a[href*="/sair?"]:hover {
  color: #7f1d1d !important;
  background: #fff1f0 !important;
}

/* Estilo: Define a aparência dos elementos identificados por "site-page". */
.site-page .site-header nav .site-user-menu a i,
.site-page .site-header nav .site-user-menu a svg {
  color: currentColor !important;
  fill: currentColor;
  opacity: 1 !important;
}

/* Mantém o menu legível também no layout mobile. */
/* Estilo: Ajusta a aparência em diferentes tamanhos de tela (celular, tablet ou computador). */
@media (max-width: 991px) {
  .site-page .site-header nav .site-user-menu {
    background: #ffffff !important;
  }

  .site-page .site-header nav .site-user-menu a,
  .site-page .site-header nav .site-user-menu a:visited {
    color: #172554 !important;
  }

  .site-page .site-header nav .site-user-menu a[href$="/logout"],
  .site-page .site-header nav .site-user-menu a[href$="/sair"] {
    color: #a1261f !important;
  }
}
