/* =========================================================
   HEADER + AVISO + NAVEGAÇÃO
   Fase 3 — versão consolidada
   ========================================================= */

.topbar {
  display: none;
  min-height: 50px;
  background: linear-gradient(90deg, #d9000b, #f00816, #d9000b);
  color: #fff;
  overflow: hidden;
  align-items: center;
  position: relative;
  z-index: 1100;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .12);
}

.topbar.alert-active {
  display: flex;
}

.alert-marquee {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
}

.alert-marquee-track {
  display: flex;
  width: max-content;
  animation: alertScroll 40s linear infinite;
}

.alert-marquee-group {
  display: flex;
  flex-shrink: 0;
}

.alert-marquee-group span {
  padding: 0 7rem;
  font-weight: 800;
}

@keyframes alertScroll {
  to { transform: translateX(-50%); }
}

.sticky-site-header {
  position: sticky;
  top: 0;
  z-index: 1200;
  width: 100%;
  box-shadow: 0 5px 18px rgba(6, 70, 111, .10);
}

.sticky-site-header .topbar {
  position: relative;
  z-index: 2;
}

.main-navbar {
  position: relative;
  z-index: 1000;
  padding: 13px 0;
  background:
    radial-gradient(ellipse at 8% 20%, rgba(0, 158, 181, .20), transparent 35%),
    radial-gradient(ellipse at 92% 0, rgba(23, 109, 168, .15), transparent 36%),
    linear-gradient(115deg, #fff 0%, #e9f6fc 53%, #dceffb 100%);
  box-shadow: 0 4px 16px rgba(6, 70, 111, .08);
}

.sticky-site-header .main-navbar {
  position: relative;
  z-index: 1;
  box-shadow: none;
}

/* Barra institucional da navbar: quatro cores. */
.main-navbar::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5px;
  z-index: 20;
  background: linear-gradient(
    90deg,
    var(--blue) 0 25%,
    var(--green) 25% 50%,
    var(--yellow) 50% 75%,
    var(--red) 75% 100%
  );
}

.nav-container {
  padding-left: clamp(16px, 3vw, 48px);
  padding-right: clamp(16px, 3vw, 48px);
}

.navbar-brand {
  width: 330px;
  max-width: 34vw;
  margin-right: 2rem;
}

.navbar-brand img {
  display: block;
  width: 100%;
  max-height: 92px;
  object-fit: contain;
}

.main-navbar .navbar-nav {
  gap: .45rem !important;
  font-family: "Montserrat", system-ui, sans-serif;
}

.main-navbar .nav-link {
  position: relative;
  color: var(--ink) !important;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 1.03rem;
  font-weight: 600;
  padding: .85rem .43rem !important;
}

.main-navbar .nav-link::after {
  content: "";
  position: absolute;
  left: .55rem;
  right: .55rem;
  bottom: .35rem;
  height: 2px;
  background: var(--blue);
  transform: scaleX(0);
  transition: transform .22s ease;
}

.main-navbar .nav-link:hover {
  color: var(--blue) !important;
}

.main-navbar .nav-link:hover::after,
.main-navbar .nav-link.active::after {
  transform: scaleX(1);
}

.main-navbar .dropdown-toggle::after {
  margin-left: .38rem;
  vertical-align: .14em;
  border-top-width: .28em;
  border-right-width: .28em;
  border-left-width: .28em;
}

.main-navbar .dropdown-menu {
  min-width: 245px;
  padding: 9px;
  border: 1px solid rgba(6, 70, 111, .10);
  border-radius: 12px;
  background: rgba(255, 255, 255, .985);
  box-shadow: 0 15px 36px rgba(6, 70, 111, .16);
}

.main-navbar .dropdown-item {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: .88rem;
  font-weight: 550;
  color: var(--ink);
  padding: 10px 13px;
  border-radius: 8px;
}

.main-navbar .dropdown-item:hover,
.main-navbar .dropdown-item:focus {
  color: var(--blue);
  background: rgba(23, 109, 168, .08);
}

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .submenu-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dropdown-submenu > .submenu-toggle::after {
  content: "›";
  border: 0;
  margin-left: 1rem;
  font-size: 1.25rem;
  line-height: 1;
}

@media (min-width: 992px) {
  .main-navbar .dropdown:hover > .dropdown-menu {
    display: block;
    margin-top: 0;
  }

  .main-navbar .dropdown > .dropdown-toggle:active {
    pointer-events: none;
  }

  .dropdown-submenu > .dropdown-menu {
    display: block;
    position: absolute;
    top: -8px;
    left: calc(100% - 5px);
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-4px);
    transition:
      opacity .15s ease,
      visibility .15s ease,
      transform .15s ease;
  }

  .dropdown-submenu:hover > .dropdown-menu,
  .dropdown-submenu:focus-within > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);
  }

  .dropdown-submenu::after {
    content: "";
    position: absolute;
    top: 0;
    right: -14px;
    width: 18px;
    height: 100%;
    background: transparent;
  }
}

@media (min-width: 992px) and (max-width: 1250px) {
  .main-navbar .nav-link {
    font-size: .95rem;
    padding-left: .31rem !important;
    padding-right: .31rem !important;
  }

  .navbar-brand {
    width: 235px;
    margin-right: .7rem;
  }
}

@media (max-width: 991px) {
  .main-navbar {
    padding: 9px 0;
  }

  .navbar-brand {
    width: 250px;
    max-width: 70vw;
    margin-right: 1rem;
  }

  .navbar-brand img {
    max-height: 70px;
  }

  .navbar-collapse {
    margin-top: 10px;
    padding: 10px 15px;
    background: rgba(255, 255, 255, .96);
    border-radius: 12px;
    box-shadow: 0 12px 25px rgba(6, 70, 111, .1);
  }

  .main-navbar .nav-link {
    font-size: 1.04rem;
    padding: .72rem .43rem !important;
  }

  .main-navbar .dropdown-menu {
    min-width: 0;
  }

  .dropdown-submenu > .dropdown-menu {
    position: static !important;
    transform: none !important;
    margin: 4px 0 5px 12px;
    width: calc(100% - 12px);
    border: 0;
    box-shadow: none;
    background: rgba(23, 109, 168, .045);
  }

  .dropdown-submenu > .submenu-toggle::after {
    transform: rotate(90deg);
  }
}

@media (max-width: 767px) {
  .topbar {
    min-height: 46px;
  }

  .alert-marquee-group span {
    padding: 0 2.5rem;
    font-size: .9rem;
  }
}

@media (max-width: 575px) {
  .nav-container {
    padding-left: 12px;
    padding-right: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .alert-marquee-track {
    animation: none;
  }

  .alert-marquee-track .alert-marquee-group[aria-hidden="true"] {
    display: none;
  }
}

/* =========================================================
   NAVBAR SOBRE O HERO — TESTE / HOMEPAGE
   O hero começa logo por baixo do aviso e passa por trás
   da navbar, permitindo ver a fotografia através do menu.
   ========================================================= */

/*
 * A navbar deixa de ocupar altura própria.
 * Se o aviso estiver ativo, o header mantém apenas a altura
 * desse aviso; se estiver desligado, o hero começa no topo.
 */
body.home .sticky-site-header {
  box-shadow: none;
}

body.home .sticky-site-header .main-navbar {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1000;

  /* Fundo realmente translúcido */
  background: rgba(238, 249, 253, .16) !important;

  -webkit-backdrop-filter: blur(4px) saturate(108%);
  backdrop-filter: blur(4px) saturate(108%);

  box-shadow:
    0 4px 18px rgba(6, 70, 111, .07),
    inset 0 -1px 0 rgba(255, 255, 255, .22);
}

/* Mantém os links escuros e legíveis por cima da fotografia. */
body.home .main-navbar .nav-link {
  color: #062f4c !important;
  text-shadow:
    0 1px 3px rgba(255, 255, 255, .92),
    0 0 10px rgba(255, 255, 255, .55);
}

/* O logótipo continua visível, mas sem criar uma faixa branca. */
body.home .navbar-brand img {
  filter:
    drop-shadow(0 1px 2px rgba(255, 255, 255, .95))
    drop-shadow(0 3px 8px rgba(255, 255, 255, .38));
}

/*
 * Quando o menu mobile abre, precisamos de mais opacidade apenas
 * no painel colapsado; a navbar continua sobre a fotografia.
 */
@media (max-width: 991px) {
  .navbar-collapse {
    background: rgba(255, 255, 255, .88);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
  }
}

/* Fallback para browsers sem suporte a backdrop-filter. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body.home .sticky-site-header .main-navbar {
    background: rgba(238, 249, 253, .46) !important;
  }
}


/* v0.45.6.17 — reduzimos o logótipo, sem reduzir o texto. */
body.home .main-navbar { padding-top: 10px; padding-bottom: 10px; }
body.home .navbar-brand { width: 300px; }
body.home .navbar-brand img { max-height: 82px; }
@media (min-width:992px) and (max-width:1250px) {
  body.home .navbar-brand { width: 225px; }
}
@media (max-width:991px) {
  body.home .navbar-brand { width: 230px; }
  body.home .navbar-brand img { max-height: 65px; }
}

/* v0.45.6.20 — dimensão reduzida apenas do logótipo; letras de navegação intactas. */
body.home .navbar-brand { width: 278px; }
body.home .navbar-brand img { max-height: 76px; }
@media (min-width:992px) and (max-width:1250px) { body.home .navbar-brand { width: 215px; } }
@media (max-width:991px) { body.home .navbar-brand { width: 212px; } body.home .navbar-brand img { max-height: 60px; } }

/* v0.45.6.22 — a altura do menu permanece constante, mesmo ao deslocar a página. */
.sticky-site-header .main-navbar { transition: background-color .45s ease, background .45s ease; }
body:not(.home) .sticky-site-header { position: sticky; top: 0; box-shadow: 0 3px 14px rgba(6,70,111,.11); }
body:not(.home) .sticky-site-header .main-navbar {
  position: relative; top: auto; left: auto; right: auto; width: 100%;
  background: linear-gradient(115deg,#fff 0%,#eaf6fc 55%,#e0f1fa 100%) !important;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: none;
}
body:not(.home) .main-navbar .nav-link { color: var(--ink) !important; text-shadow: none !important; }
body:not(.home) .navbar-brand img { filter: none !important; }
body.home .sticky-site-header .main-navbar { background: var(--jf-hero-menu, rgba(29,50,64,.43)) !important; }
body.home .main-navbar .nav-link { text-shadow: none !important; }
body.home .main-navbar::after { content: none !important; display: none !important; }
@media(max-width:991px) {
  body.home .main-navbar .navbar-collapse { background: rgba(255,255,255,.96); }
}

/* Mesma dimensão do cabeçalho e do logótipo em todos os tipos de páginas. */
body:not(.home) .main-navbar { padding-top: 10px; padding-bottom: 10px; }
body:not(.home) .navbar-brand { width: 278px; }
body:not(.home) .navbar-brand img { max-height: 76px; }
@media (min-width:992px) and (max-width:1250px) {
  body:not(.home) .navbar-brand { width: 215px; }
}
@media (max-width:991px) {
  body:not(.home) .navbar-brand { width: 212px; }
  body:not(.home) .navbar-brand img { max-height: 60px; }
}
html { scroll-padding-top: 105px; }


/* v0.45.6.23: cabeçalho realmente fixo e com altura estável. */
body.home .sticky-site-header {
  position: fixed !important;
  inset: 0 0 auto 0;
  width: 100%;
  z-index: 1200;
  box-shadow: none;
}
body.home .sticky-site-header .main-navbar {
  position: relative !important;
  top: auto !important;
  left: auto;
  right: auto;
  width: 100%;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  min-height: 96px;
  background: var(--jf-hero-menu, rgba(20,53,85,.61)) !important;
  transition: background-color .5s ease !important;
  box-shadow: none !important;
}
body.home .main-navbar .navbar-brand { width: 278px; }
body.home .main-navbar .navbar-brand img { max-height: 76px; }
body.home .main-navbar .nav-link { text-shadow: none !important; }
body.home .main-navbar::after { display: none !important; content: none !important; }
body:not(.home) .sticky-site-header { position: sticky !important; top: 0; }
body:not(.home) .sticky-site-header .main-navbar {
  position: relative !important;
  top: auto !important;
  min-height: 96px;
  background: rgba(20,53,85,.94) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body:not(.home) .main-navbar .nav-link,
body:not(.home) .main-navbar .nav-link:hover,
body:not(.home) .main-navbar .nav-link:focus { color: #fff !important; text-shadow: none !important; }
body:not(.home) .main-navbar::after { content: none !important; display: none !important; }
@media (min-width:992px) and (max-width:1250px) {
 body.home .main-navbar .navbar-brand { width: 215px; }
}
@media (max-width:991px) {
 body.home .sticky-site-header .main-navbar,
 body:not(.home) .sticky-site-header .main-navbar { min-height: 76px; }
 body.home .main-navbar .navbar-brand { width: 212px; }
 body.home .main-navbar .navbar-brand img { max-height: 60px; }
 body:not(.home) .navbar-collapse { background: #fff; }
 body:not(.home) .navbar-collapse .nav-link,
 body:not(.home) .navbar-collapse .nav-link:hover { color: var(--ink) !important; }
}
body.admin-bar.home .sticky-site-header { top: 32px; }
body.admin-bar:not(.home) .sticky-site-header { top: 32px; }
@media (max-width:782px) {
 body.admin-bar.home .sticky-site-header,
 body.admin-bar:not(.home) .sticky-site-header { top: 46px; }
}


/* v0.45.6.25: comportamento idêntico em todas as páginas interiores. */
body:not(.home) .sticky-site-header .main-navbar {
 background: rgba(20, 53, 85, .95) !important;
 transition: none !important;
}
body:not(.home) .main-navbar::after { display:none !important; content:none !important; }
body.home .sticky-site-header .main-navbar { background: var(--jf-hero-menu, rgba(0,70,110,.78)) !important; }


/* v0.45.6.26 — menu interior unificado */
body:not(.home) .sticky-site-header .main-navbar {
  background: linear-gradient(180deg, rgba(17, 63, 97, .97) 0%, rgba(22, 73, 111, .97) 100%) !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 4px 14px rgba(6, 44, 70, .12) !important;
}

body:not(.home) .main-navbar .nav-link,
body:not(.home) .main-navbar .nav-link:hover,
body:not(.home) .main-navbar .nav-link:focus,
body:not(.home) .main-navbar .nav-link.active,
body:not(.home) .main-navbar .dropdown-item {
  color: #ffffff !important;
  text-shadow: none !important;
}

body:not(.home) .main-navbar .nav-link::after {
  background: rgba(218, 239, 249, .96) !important;
}

body:not(.home) .main-navbar .dropdown-menu {
  background: rgba(255,255,255,.985);
}

body:not(.home) .main-navbar .dropdown-item:hover,
body:not(.home) .main-navbar .dropdown-item:focus {
  color: #0d4367 !important;
  background: rgba(23, 109, 168, .08);
}

body:not(.home) .navbar-brand img {
  filter: none !important;
}

/* v0.45.6.27: mesma paleta do carrossel, em todas as páginas. */
body:not(.home) .sticky-site-header .main-navbar {
 background:var(--jf-hero-menu,rgba(0,70,110,.78)) !important;
 transition:background-color .6s ease !important;
 -webkit-backdrop-filter:none;backdrop-filter:none;
 box-shadow:none !important;
}
body:not(.home) .main-navbar .nav-link {color:#fff !important;text-shadow:none !important;}
body:not(.home) .main-navbar .navbar-brand {width:278px;}
body:not(.home) .main-navbar .navbar-brand img {max-height:76px;}
body:not(.home) .main-navbar .dropdown-menu .dropdown-item {color:#082f4a !important;}
body:not(.home) .main-navbar::after {content:none !important;display:none !important;}
@media(min-width:992px) and (max-width:1250px){body:not(.home) .main-navbar .navbar-brand{width:215px;}}
@media(max-width:991px){body:not(.home) .main-navbar .navbar-brand{width:212px;}body:not(.home) .main-navbar .navbar-brand img{max-height:60px;}}



/* v0.45.6.29: fundo circular incorporado no PNG; sem pseudo-elementos. */
.sticky-site-header .navbar-brand::before {content:none!important;display:none!important;}

/* v0.45.6.30 — cabeçalho com uma única cor institucional. */
body.home .sticky-site-header .main-navbar,
body:not(.home) .sticky-site-header .main-navbar {
  background: linear-gradient(112deg,
    rgba(80,40,51,.90) 0%,
    rgba(93,66,43,.90) 30%,
    rgba(92,87,42,.91) 51%,
    rgba(42,86,61,.91) 76%,
    rgba(21,69,73,.92) 100%) !important;
  transition: none !important;
}
body.home .main-navbar .nav-link,
body:not(.home) .main-navbar .nav-link { color:#fff!important; text-shadow:none!important; }
body.home .main-navbar::after,
body:not(.home) .main-navbar::after { content:none!important; display:none!important; }
.sticky-site-header .navbar-brand::before,
.sticky-site-header .navbar-brand::after { content:none!important;display:none!important; }
.sticky-site-header .navbar-brand {background:none!important;}
.sticky-site-header .navbar-brand .jfssm-shared-logo {
  width:100%; height:auto; display:block; object-fit:contain;
  filter:none!important; background:transparent!important;
}

/* v0.45.6.31 — cabeçalho único, sem alterações dinâmicas de cor. */
body .sticky-site-header .main-navbar,
body.home .sticky-site-header .main-navbar,
body:not(.home) .sticky-site-header .main-navbar {
  background: linear-gradient(105deg, rgba(88,40,51,.94) 0%, rgba(96,66,40,.94) 27%, rgba(100,85,39,.94) 48%, rgba(39,83,56,.94) 76%, rgba(19,70,67,.94) 100%) !important;
  transition: none !important;
  box-shadow: none !important;
}
body .sticky-site-header .navbar-brand::before,
body .sticky-site-header .navbar-brand::after { content: none !important; display: none !important; }
body .sticky-site-header .navbar-brand img.jfssm-shared-logo { display:block; width:100%; height:auto; max-height:82px; object-fit:contain; filter:none!important; background:none!important; }
body .main-navbar .nav-link { color:#fff !important; text-shadow:none !important; }
body .main-navbar::after { content:none!important;display:none!important; }
@media(max-width:991px) { body .main-navbar .navbar-collapse .nav-link {color:#082f4a!important;} }

/* v0.45.6.32 — cabeçalho único e cores fixas em todas as páginas. */
html body .sticky-site-header .main-navbar { background:linear-gradient(110deg,#58372f 0%,#69512e 29%,#625c30 49%,#365941 75%,#285449 100%) !important; backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px); }
html body .sticky-site-header .navbar-brand img.jfssm-shared-logo {display:block!important;width:100%!important;max-height:82px!important;object-fit:contain!important;filter:none!important;}
html body .sticky-site-header .navbar-brand::before,html body .sticky-site-header .navbar-brand::after {display:none!important;content:none!important;}
