.site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  min-height: var(--header-height);
  height: auto;
  background: rgba(255, 255, 255, .97);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(223, 231, 239, .95);
  box-shadow: 0 8px 28px rgba(13, 41, 68, .07);
}
.site-header .navbar { min-height: var(--header-height); padding: 0; }
.brand-logo {
  width: 92px;
  height: 64px;
  object-fit: contain;
}

.navbar-nav .nav-link {
  color: #33465a;
  font-weight: 700;
  padding: .72rem .9rem !important;
  border-radius: 12px;
  transition: color var(--transition), background-color var(--transition);
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
  color: var(--prime-blue);
  background: #eff5fc;
}

.dropdown-menu {
  border: 1px solid var(--prime-line);
  box-shadow: var(--shadow-md);
  border-radius: 16px;
  padding: .55rem;
  min-width: 240px;
}
.dropdown-item {
  border-radius: 10px;
  padding: .7rem .8rem;
  color: var(--prime-text);
  font-weight: 650;
}
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active { background: #eff5fc; color: var(--prime-blue); }

.page-hero {
  position: relative;
  overflow: hidden;
  padding: 92px 0 78px;
  background:
    radial-gradient(circle at 88% 5%, rgba(10, 88, 202, .12), transparent 34%),
    linear-gradient(180deg, #f8fbfe 0%, #ffffff 100%);
  border-bottom: 1px solid var(--prime-line);
}
.page-hero::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -135px;
  width: 340px;
  height: 340px;
  border: 55px solid rgba(10, 88, 202, .05);
  border-radius: 50%;
}
.page-intro { position: relative; z-index: 1; max-width: 820px; }
.page-intro p { max-width: 690px; font-size: 1.08rem; }

.site-footer {
  background: #091a2c;
  color: rgba(255,255,255,.7);
  padding: 66px 0 24px;
  margin-top: 40px;
}
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5 { color: #fff; }
.footer-logo {
  width: 98px;
  height: 72px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: .96;
}
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .62rem; }
.footer-links a { color: rgba(255,255,255,.68); transition: color var(--transition); }
.footer-links a:hover { color: #fff; }
.footer-bottom {
  margin-top: 42px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.12);
  font-size: .9rem;
}
.footer-meta { display: flex; flex-wrap: wrap; gap: 1rem; }
.footer-meta a:hover { color: #fff; }


/* Endereço institucional no rodapé */
.footer-address {
  max-width: 520px;
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  margin-top: 1.15rem;
  padding-top: 1.05rem;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.76);
}

.footer-address-icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(78, 151, 255, .13);
  color: #77b3ff;
  font-size: 1rem;
}

.footer-address strong {
  display: block;
  margin-bottom: .18rem;
  color: #fff;
  font-size: .86rem;
  font-weight: 800;
  letter-spacing: .015em;
}

.footer-address address {
  margin: 0;
  color: inherit;
  font-size: .88rem;
  font-style: normal;
  line-height: 1.55;
}

@media (max-width: 767.98px) {
  .footer-address {
    max-width: 100%;
    margin-top: 1rem;
  }

  .footer-address address {
    font-size: .86rem;
  }
}
