.modal-custom {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
}

/* Estilo compartilhado do card do modal usado nas paginas existentes. */
.modal-content-custom {
  background-color: #ffffff;
  color: #000;
  margin: 10% auto;
  padding: 30px;
  border-radius: 10px;
  width: 90%;
  max-width: 500px;
  text-align: center;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
  font-family: Arial, sans-serif;
}

.modal-content-custom h2 {
  color: #043b69;
  margin-bottom: 10px;
}

.modal-content-custom .small {
  font-size: 0.85rem;
  color: #666;
}

.btn-custom {
  background-color: #2E5686;
  color: #fff;
  padding: 10px 25px;
  margin-top: 20px;
  border: none;
  border-radius: 20px;
  cursor: pointer;
  font-weight: bold;
  transition: background 0.3s;
}

.btn-custom:hover {
  background-color: #1d3e61;
}

.modal-content-custom > .btn-custom {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
}



/* Keeps the socket at the viewport end on short pages. */
html.html_stretched,
html.html_stretched body,
html.html_stretched #top {
  min-height: 100%;
  background-color: #ffffff;
}

html.html_stretched #wrap_all {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: #ffffff;
}

html.html_stretched #main {
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
}

html.html_stretched #main > .container_wrap_first {
  flex: 1 0 auto;
}

html.html_stretched #main > #socket {
  margin-top: auto;
}

html.html_stretched #socket {
  flex: 0 0 auto;
}


@media only screen and (min-width: 990px) {
  #top #header_meta {
    display: none !important;
  }

  .html_header_top.html_header_topbar_active.html_header_sticky #top #main {
    padding-top: 88px;
  }

  .html_header_top.html_header_topbar_active.html_header_sticky.html_large #top #main {
    padding-top: 116px;
  }

  .html_header_top.html_header_topbar_active.html_header_sticky.html_bottom_nav_header #top #main {
    padding-top: 140px;
  }

  .html_header_top.html_header_topbar_active.html_header_sticky.html_large.html_bottom_nav_header #top #main {
    padding-top: 168px;
  }

  .html_top_nav_header.html_header_top.html_header_sticky.html_header_topbar_active #top #wrap_all #main {
    padding-top: 50px;
  }
}

/* Desktop: aplica a moldura centralizada ao conteudo e aos rodapes. */
@media only screen and (min-width: 990px) {
  #top #main > .container_wrap_first > .container,
  #top #footer .container,
  #top #socket .container {
    width: var(--gr-site-frame-width);
    max-width: 1280px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
  }
}

/* Rodape institucional global. */
#top #socket.socket_color {
  border-top: 0;
  background: #0d5a91;
  color: #ffffff;
}

#top #socket.socket_color .container {
  width: var(--gr-site-frame-width);
  max-width: 1280px;
  padding-top: clamp(22px, 2.6vw, 30px);
  padding-bottom: clamp(22px, 2.6vw, 30px);
}

#top #socket .gr-site-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px clamp(18px, 2.4vw, 34px);
  align-items: stretch;
  justify-content: center;
  width: min(100%, 1240px);
  margin-right: auto;
  margin-left: auto;
  text-align: left;
}

#top #socket .gr-site-footer-contacts {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: inherit;
  width: 100%;
}

@media only screen and (min-width: 1280px) {
  #top #socket .gr-site-footer-contacts {
    grid-template-columns: minmax(220px, 0.95fr) minmax(185px, 0.85fr) minmax(210px, 0.9fr) minmax(330px, 1.35fr) minmax(170px, 0.7fr);
  }
}

#top #socket .gr-site-footer-brand {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
}

#top #socket .gr-site-footer-logo {
  display: block;
  width: min(100%, 220px);
  height: auto;
}

#top #socket .gr-site-footer-contact {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  width: auto;
  min-width: 0;
  padding: 0;
  border-left: 0;
  text-align: left;
}

#top #socket .gr-site-footer-contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  align-self: center;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 0;
  color: #ffffff;
}

#top #socket .gr-site-footer-contact-icon svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: currentColor;
  stroke: currentColor;
}

#top #socket .gr-site-footer-contact-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 2px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 12px;
  line-height: 1.32;
}

#top #socket .gr-site-footer-contact-copy strong {
  margin-bottom: 1px;
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}

#top #socket .gr-site-footer-contact-copy a,
#top #socket .gr-site-footer-contact-copy span {
  color: rgba(255, 255, 255, 0.9);
  overflow-wrap: anywhere;
}

#top #socket .gr-site-footer-contact-copy .gr-site-footer-contact-line-nowrap {
  white-space: nowrap;
}

#top.gr-home-header-a11y-expanded #socket .gr-site-footer,
#top.gr-internal-a11y-normalized #socket .gr-site-footer{
  width: min(100%, 1120px);
}

#top.gr-home-header-a11y-expanded #socket .gr-site-footer-contacts,
#top.gr-internal-a11y-normalized #socket .gr-site-footer-contacts{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px clamp(28px, 4vw, 56px);
}

#top.gr-home-header-a11y-expanded #socket .gr-site-footer-contact,
#top.gr-internal-a11y-normalized #socket .gr-site-footer-contact{
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 12px;
}

#top.gr-home-header-a11y-expanded #socket .gr-site-footer-contact-copy,
#top.gr-internal-a11y-normalized #socket .gr-site-footer-contact-copy{
  font-size: clamp(14px, calc(10px * var(--gr-home-header-font-scale, 1.6)), 18px) !important;
  line-height: 1.34;
}

#top.gr-home-header-a11y-expanded #socket .gr-site-footer-contact-copy strong,
#top.gr-internal-a11y-normalized #socket .gr-site-footer-contact-copy strong{
  font-size: clamp(13px, calc(9px * var(--gr-home-header-font-scale, 1.6)), 17px) !important;
}

#top.gr-home-header-a11y-expanded #socket .gr-site-footer-contact-copy .gr-site-footer-contact-line-nowrap,
#top.gr-internal-a11y-normalized #socket .gr-site-footer-contact-copy .gr-site-footer-contact-line-nowrap{
  white-space: normal;
}

@media only screen and (max-width: 900px) {
  #top.gr-home-header-a11y-expanded #socket .gr-site-footer-contacts,
#top.gr-internal-a11y-normalized #socket .gr-site-footer-contacts{
    grid-template-columns: 1fr;
  }
}

@media only screen and (max-width: 989px) {
  #top #socket.socket_color .container {
    width: min(calc(100% - 48px), 720px);
  }

  #top #socket .gr-site-footer-contacts,
  #top.gr-home-header-a11y-expanded #socket .gr-site-footer-contacts,
  #top.gr-internal-a11y-normalized #socket .gr-site-footer-contacts {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  #top #socket .gr-site-footer-brand {
    margin-bottom: 4px;
  }

  #top #socket .gr-site-footer-contact {
    width: min(100%, 520px);
  }
}

#top #socket .gr-site-footer-contact-copy a:hover,
#top #socket .gr-site-footer-contact-copy a:focus-visible {
  color: #ffffff;
  text-decoration: underline;
}

#top #socket .gr-site-footer-legacy {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media only screen and (max-width: 640px) {
  #top #socket.socket_color .container {
    width: min(calc(100vw - 28px), 390px);
    padding-top: 24px;
    padding-bottom: 28px;
  }

  #top #socket .gr-site-footer {
    display: flex;
    flex-direction: column;
    gap: 18px;
    text-align: center;
    align-items: center;
  }

  #top #socket .gr-site-footer-contacts {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  #top #socket .gr-site-footer-brand {
    justify-content: center;
    width: 100%;
    margin-bottom: 2px;
  }

  #top #socket .gr-site-footer-logo {
    width: min(100%, 220px);
  }

  #top #socket .gr-site-footer-contact {
    width: min(100%, 330px);
  }

  #top #socket .gr-site-footer-contact-copy {
    font-size: 12px;
  }
}

#scroll-top-link {
  bottom: 96px !important;
}

@media only screen and (max-width: 767px) {

  #scroll-top-link {
    bottom: 84px !important;
  }
}
/* Shared institutional layer. Home composition remains scoped to #top.home. */
#top.gr-standard-layout {
  --gr-institutional-blue: #043b69;
  --gr-institutional-blue-dark: #02345e;
  --gr-institutional-red: #d92d2d;
  --gr-institutional-ink: #1f2a37;
  --gr-institutional-muted: #5c6978;
  --gr-institutional-border: #d9e1e8;
  --gr-institutional-surface: #f6f8fa;
  color: var(--gr-institutional-ink);
}

#top.gr-standard-layout :focus-visible {
  outline: 3px solid rgba(4, 59, 105, 0.5);
  outline-offset: 3px;
}

#top.gr-standard-layout #socket a:focus-visible {
  outline-color: rgba(255, 255, 255, 0.9);
}
