* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* REURB */
.reurb-page {
  padding-top: 8px;
  padding-bottom: 24px;
}

.reurb-page #titulo {
  letter-spacing: 1px;
  font-weight: 500;
}

.reurb-divider {
  border-bottom-width: 3px;
  margin: 18px 0;
  opacity: 0.9;
}

.reurb-section {
  background: #f7f9fc;
  border-radius: 16px;
  padding: clamp(16px, 2.2vw, 28px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
  margin: 18px 0;
}

.reurb-section h2,
.reurb-section h3 {
  color: var(--primary);
  margin-bottom: 12px;
}

.reurb-section h3 {
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.reurb-section p {
  margin: 10px 0;
}

.reurb-list {
  margin: 12px 0 0;
  padding-left: 20px;
}

.reurb-list li {
  margin: 8px 0;
}

.reurb-highlight {
  background: #d8d8d8;
  border-left: 5px solid var(--primary);
  padding: 12px 14px;
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.04);
}

body.tema-escuro .reurb-section {
  background: #121a26;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.35);
  color: #e6e6e6;
}

body.tema-escuro .reurb-section h2,
body.tema-escuro .reurb-section h3 {
  color: var(--primary-light);
}

body.tema-escuro .reurb-highlight {
  background: #0f1623;
  border-left-color: var(--primary-light);
}

body {
  min-height: 100vh;
  font-family: Arial, sans-serif;
  background: #DBDBDB;
  overflow-x: hidden;
}

.page{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.page > main{
  flex: 1;
}

#filtro-site {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

#filtro-site > main {
  flex: 1;
}

main{
  flex: 1;
  width: min(100%, var(--container-max));
  margin: 0 auto;
  padding: 0 var(--page-padding);
  text-align: justify;
}


main p {
  margin: 16px 0;
}

#justificar {
  text-align: justify;
}

.centered,
.centralizarX {
  max-width: min(100%, 960px);
  margin: 0 auto;
}

.centralizarX{
    text-align: center;    
    display: block;
  }

.page > main.centralizarX {
  width: min(100%, 960px);
  align-self: center;
}

/* Mapa responsivo (COHAB Mais Perto) */
.mapa-responsivo {
  max-width: min(100%, 1100px);
  margin: 0 auto;
}

.mapa-responsivo iframe {
  width: 100%;
  height: clamp(260px, 40vw, 560px);
  border: 0;
}

@media (min-width: 1200px) {
  .mapa-responsivo iframe {
    height: 560px;
  }
}

@media (max-width: 768px) {
  .mapa-responsivo iframe {
    height: 320px;
  }
}

#centralizarIMG {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

hr {
  border: 0;
  border-bottom: 4px solid var(--primary);
  height: 0;
  background: transparent;
  opacity: 1;
}

h5 {
  font-weight: bold;
}
.anchor-target {
  scroll-margin-top: 140px;
}

a {
  text-decoration: none;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}

html {
  scroll-behavior: smooth;
}

:root {
  --container-max: 1200px;
  --container-x: clamp(16px, 3vw, 24px); 
  --gap: 24px;
  --page-padding: clamp(12px, 2.5vw, 28px);
  --header-height: clamp(56px, 6vw, 80px);
  --header-icon-size: clamp(20px, 1.6vw, 40px);
  --primary: #033981;
  --primary-dark: #00244F;
  --primary-light: #076ADE;
}

/*Header*/

header {
  width: 100%;
  margin: 0;
  padding: 0;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #E3E3E3;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

body.tema-escuro .site-header {
  background: #0f1623;
}

.site-header.header-hidden-after-hero {
  transform: translateY(-120%);
  opacity: 0;
  pointer-events: none;
}

.site-header .header-top {
  width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: clamp(10px, 2vw, 24px);
  row-gap: clamp(8px, 1.5vw, 16px);
  padding: clamp(4px, 0.8vw, 8px) var(--page-padding);
  border-bottom: 1px solid #c9c9c9;
}

.header-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 2.4vw, 28px);
}

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(10px, 2vw, 20px);
  min-width: 0;
  flex: 1 1 260px;
}

.header-actions .menu-search {
  margin: 0;
  width: min(100%, 320px);
}

.header-left,
.header-right {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.8vw, 22px);
  min-width: 0;
}

.header-right {
  justify-content: flex-end;
}

@media (max-width: 1400px) {
  body.search-open .site-header .header-top {
    column-gap: 0;
  }

  body.search-open .header-menu-right .header-menu-item:last-child > a {
    white-space: normal;
    max-width: 130px;
    line-height: 1.1;
    text-align: center;
    justify-content: center;
  }

  body.search-open .header-actions .menu-search {
    width: min(100%, 200px);
  }

  body.search-open .header-right {
    gap: clamp(4px, 0.6vw, 8px);
  }

  body.search-open .header-menu-list {
    gap: clamp(2px, 0.4vw, 6px);
  }

  body.search-open .header-menu-right .header-menu-item:last-child {
    flex: 0 0 100%;
  }

body.search-open .header-menu-right .header-menu-item:last-child > a {
  width: 100%;
}
}

body.search-open .header-menu-item > .submenu {
  display: none !important;
}

.header-menu {
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.2vw, 16px);
  min-width: 0;
}

.header-menu-list {
  list-style: none;
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.2vw, 16px);
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;
}

@media (min-width: 1400px) {
  .header-left .header-menu {
    margin-left: auto;
  }

  .header-left .header-menu-list {
    justify-content: flex-end;
  }

  .header-right .header-menu {
    margin-right: auto;
  }

  .header-right .header-menu-list {
    justify-content: flex-start;
  }
}

.header-menu-item {
  position: relative;
}

.header-menu-item > a,
.header-menu-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: clamp(4px, 0.6vw, 8px) clamp(6px, 0.8vw, 10px);
  color: #1f2a3a;
  font-weight: 600;
  font-size: clamp(11px, 0.85vw, 14px);
  text-transform: uppercase;
  letter-spacing: clamp(0.02em, 0.2vw, 0.04em);
  background: transparent;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  border-radius: 999px;
}

.header-menu-toggle {
  font-weight: 700;
  min-width: auto;
  border-radius: 0;
}

.header-menu-item > a:hover,
.header-menu-toggle:hover,
.header-menu-item > a:focus-visible,
.header-menu-toggle:focus-visible {
  color: var(--primary);
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.header-menu-toggle:hover .header-menu-label,
.header-menu-toggle:focus-visible .header-menu-label {
  color: var(--primary);
}

.header-menu-item:hover > .submenu,
.header-menu-item:focus-within > .submenu {
  display: block;
}

.header-menu-item::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 32px;
}

.header-menu .submenu {
  top: 100%;
  left: 50%;
  transform: translate(-50%, calc(var(--header-height) - 55px));
}

.header-menu .submenu::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 0;
  height: 0;
  transform: translate(-50%, -10px);
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #204D87;
  filter: drop-shadow(0 -2px 3px rgba(0, 0, 0, 0.12));
  z-index: 2;
}


.menu-data {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.menu-search-bar {
  width: min(100%, var(--container-max));
  margin: 10px auto 0;
  padding: 0 var(--page-padding);
}

.header-divider {
  width: min(100%, var(--container-max));
  margin: 12px auto 0;
}

.logo-separator {
  display: inline-flex;
  align-items: center;
  height: clamp(30px, 2.9vw, 40px);
  font-weight: 700;
  font-size: clamp(20px, 2.2vw, 28px);
  color: #7a7a7a;
  line-height: 1;
  transform: translateY(2px);
}

body.tema-escuro .logo-separator {
  color: #b8c2cf;
}

.header-social {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

body.tema-escuro #logo-site {
  filter: brightness(0) invert(1);
}

#logo-site {
  width: clamp(92px, 14vw, 210px);
  height: auto;
}

#logo-governo {
  width: clamp(98px, 14vw, 190px); 
  height: auto;
  transform: translateY(5px);
}


/*Barra de Busca */
.busca {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  align-items: center;
  gap: 8px;
  margin: 0;
  width: 100%;
  max-width: 620px;
  justify-self: center;
  grid-area: busca;
  position: relative;
}


.busca input {
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 14px;
  width: 100%;
  max-width: none;
  justify-self: stretch;
}


.busca button{
    padding: 10px 14px;
    border: none;
    border-radius: 8px;
    background: var(--primary);
    color: #fff;
    font-weight: bold;
    cursor: pointer;
}
.busca button:hover{
    background: var(--primary-dark);
}

/*Redes Sociais*/
.redes-sociais {
  display: flex;
  align-items: center;
  position: relative;
}

.redes-sociais img:hover{
  opacity: 0.5;
}

.redes-sociais a {
  display: inline-flex;
  align-items: center;
}

.redes-sociais a img {
  width: clamp(16px, 2vw, 22px);
  height: auto;
}
#tema #corTema {
  width: var(--header-icon-size);
  height: var(--header-icon-size);
  display: block;
  transform: translateY(-1px);
}

#tema a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: clamp(6px, 0.9vw, 10px) clamp(10px, 1.2vw, 14px);
  line-height: 1;
}

#tema #corTema:hover {
  opacity: 0.5;
}

#tema #corTema .tema-left {
  fill: #fdb813;
}

#tema #corTema .tema-right {
  fill: transparent;
}

body.tema-escuro #tema #corTema .tema-left {
  fill: transparent;
}

body.tema-escuro #tema #corTema .tema-right {
  fill: #ffffff;
}

#tema #corTema .tema-ring {
  stroke: #fdb813;
}

body.tema-escuro #tema #corTema .tema-ring {
  stroke: #ffffff;
}

.label {
  font-weight: 550;     
  font-size: 14px;       
  letter-spacing: 0.3px; 
  color: #000;          
}

/* Escolher entre tema Claro e Escuro*/
#tema{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    margin-left: 0;
}

#tema .tema-claro,
#tema .tema-escuro {
    color: inherit;
}

#tema .ativo {
    color: var(--primary-light);
    font-weight: 700;
}


/* Menu Dropdown */
.menu {
  position: relative;
  max-width: var(--container-max);
  margin: 16px auto;
  padding: 0 var(--container-x);
  font-size: clamp(14px, 1.2vw, 20px);
  white-space: nowrap;
}


.menu-principal {
  list-style: none;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0;
  padding: 0;
  margin: 0;
  width: auto;
  flex: 1 1 auto;
  position: relative;
  z-index: 1;
}

.menu-search {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding: 4px 0;
  margin: 6px 0;
  width: 100%;
  position: relative;
  z-index: 10;
}

.menu-search input {
  height: 40px;
  border-radius: 999px;
  border: 1px solid #cfd6e3;
  padding: 0 52px 0 12px;
  font-size: 14px;
  width: 100%;
  min-width: 0;
  flex: 1 1 auto;
}

.menu-search button {
  position: absolute;
  right: 6px;
  height: 32px;
  width: 36px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: #ffffff;
  color: var(--primary);
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.menu-search button:hover {
  background: #f2f5f9;
}

.menu-search-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
}

.menu-search.menu-search-collapsed {
  justify-content: flex-start;
  width: auto;
}

.menu-search.menu-search-collapsed input {
  width: 0;
  padding: 0;
  border-color: transparent;
  opacity: 0;
  pointer-events: none;
  transition: width 0.25s ease, padding 0.25s ease, opacity 0.2s ease;
}

.menu-search.menu-search-collapsed button {
  position: static;
  height: 34px;
  width: 36px;
}

.menu-search.menu-search-collapsed.menu-search-open {
  width: 100%;
}

.menu-search.menu-search-collapsed.menu-search-open input {
  width: 100%;
  padding: 0 52px 0 12px;
  border-color: #cfd6e3;
  opacity: 1;
  pointer-events: auto;
}

.menu-search.menu-search-collapsed.menu-search-open button {
  position: absolute;
  right: 6px;
}

.menu-search .busca-sugestoes,
.menu-search .busca-status {
  left: 0;
  transform: none;
  width: 100%;
  z-index: 10020;
}

.menu-search .busca-sugestoes {
  top: calc(100% + 4px);
  max-height: min(55vh, 320px);
}

.menu-search .busca-status {
  top: calc(100% + 4px);
  right: auto;
  text-align: right;
}

body.tema-escuro .menu-search input {
  background: #1f2324;
  color: #e6e6e6;
  border-color: #2f3638;
}

body.tema-escuro .menu-search button {
  background: #1f2324;
  color: #cfe3ff;
  border-color: #2f3638;
}

@media (min-width: 1400px) {
  .menu-search {
    width: 100%;
  }

  .menu-search input {
    height: 48px;
    font-size: 16px;
    padding: 0 64px 0 16px;
  }

  .menu-search button {
    height: 38px;
    width: 44px;
    right: 6px;
  }

  .menu-search-icon {
    width: 22px;
    height: 22px;
  }
}

.menu-all-toggle {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: clamp(10px, 1.2vw, 15px) clamp(10px, 1.6vw, 20px);
  background: transparent;
  border: none;
  color: #fff;
  cursor: pointer;
  border-radius: 50px 0 0 50px;
}

.menu-all-toggle:hover,
.menu-all-toggle:focus-visible {
  background: var(--primary-dark);
}

.menu-all-icon {
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1;
}

.header-menu-toggle.menu-all-toggle,
.header-menu-toggle.menu-all-toggle:hover,
.header-menu-toggle.menu-all-toggle:focus-visible {
  background: transparent;
  color: #1f2a3a;
  border-radius: 999px;
  min-width: auto;
  padding: clamp(4px, 0.6vw, 8px) clamp(6px, 0.8vw, 10px);
}

.header-menu-toggle.menu-all-toggle:hover,
.header-menu-toggle.menu-all-toggle:focus-visible {
  background: transparent;
}

body.tema-escuro .header-menu-item > a,
body.tema-escuro .header-menu-toggle {
  color: #cfe3ff;
}

body.tema-escuro .header-menu-item > a:hover,
body.tema-escuro .header-menu-toggle:hover,
body.tema-escuro .header-menu-item > a:focus-visible,
body.tema-escuro .header-menu-toggle:focus-visible,
body.tema-escuro .header-menu-toggle.menu-all-toggle:hover,
body.tema-escuro .header-menu-toggle.menu-all-toggle:focus-visible {
  color: #ffffff;
  background: transparent;
}

body.tema-escuro .header-menu-toggle:hover .header-menu-label,
body.tema-escuro .header-menu-toggle:focus-visible .header-menu-label {
  color: #ffffff;
}

@media (max-width: 1200px) {
  .header-menu-item > a,
  .header-menu-toggle {
    font-size: clamp(10px, 2.4vw, 13px);
    letter-spacing: clamp(0.01em, 0.18vw, 0.03em);
  }
}

.menu-item {
    position: relative;
    display: flex;
    flex: 1 1 0;
    min-width: 0;
    z-index: 0;
}

.menu-item > a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(10px, 1.2vw, 15px) clamp(10px, 2vw, 30px);
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    width: 100%;
    text-align: center;
    white-space: nowrap;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    position: relative;
    transition: background 0.2s ease, color 0.2s ease;
    border-radius: 0;
}

.menu-item:hover > a,
.menu-item:focus-within > a {
    background: var(--primary-dark);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.menu-item:hover,
.menu-item:focus-within{
  z-index: 10;  
}

.menu-item::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 14px;
}

.menu-item:first-child:hover > a,
.menu-item:first-child:focus-within > a,
.menu-item:last-child:hover > a,
.menu-item:last-child:focus-within > a {
    border-radius: 0;
}

.menu-item:last-child:hover > a,
.menu-item:last-child:focus-within > a {
    border-radius: 0 50px 50px 0;
}

.menu-item-long > a{
  white-space: normal;
  line-height: 1.1;
  padding-block: 10px;
  text-align: center;
}

/* Submenu */
.submenu {
    list-style: none;
    position: absolute;
    top: 100%;
    left: 0;
    transform: none;
    background: transparent;
    min-width: 100%;
    width: max(100%, 320px);
    max-width: min(96vw, 560px);
    display: none;
    z-index: 10050;
    border-radius: 20px;
    padding: 0;
    overflow: visible;
}

.submenu::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 20px;
    background: var(--primary);
    border: 1px solid rgba(0, 36, 79, 0.55);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
    z-index: 0;
    
}

.submenu li {
  width: 100%;
  margin: 0;
  position: relative;
  z-index: 1;
}

  .submenu li a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    padding: clamp(10px, 1.2vw, 14px) clamp(14px, 2vw, 22px);
    font-size: inherit;
    color: #fff;
    text-decoration: none;
    position: relative;
    z-index: 1;
    white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.25;
}

.submenu li:hover > a,
.submenu li:focus-within > a {
  background: var(--primary-dark);
  text-underline-offset: 4px;
}

.submenu li:first-child > a {
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}

.submenu li:last-child > a {
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
}

/* Evita submenu estourar na direita  */
.menu-item:last-child > .submenu{
  left: auto;
  right: 0;
}

.submenu-item.has-submenu > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.submenu-arrow {
    font-size: 0.9em;
}

.submenu-item.has-submenu::after {
    content: "";
    position: absolute;
    top: 0;
    right: -12px;
    width: 12px;
    height: 100%;
}

/* Submenu de 2° nível */
.submenu .submenu {
    top: 0;
    left: 100%;
    margin-left: 12px;
    transform: none;
    min-width: 220px;
    display: none;
    border-radius: 16px;
    max-width: min(90vw, 360px);
}

.submenu .submenu::before {
    border-radius: 16px;
}

/* Abre no hover/focus */
.submenu-item.has-submenu:hover > .submenu,
.submenu-item.has-submenu:focus-within > .submenu {
    display: block;
}

.submenu .submenu li:first-child > a {
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.submenu .submenu li:last-child > a {
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}

/* Hover desktop */
  .menu-item:hover > .submenu,
  .menu-item:focus-within > .submenu {
      display: block;
  }


/* Mobile: empilha */

@media (max-width: 900px) {
  .breadcrumbs-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .breadcrumbs-bar .menu-search {
    max-width: none;
  }
}

@media (max-width: 900px){
  .menu{
    border-radius: 16px;
  }
  .menu-principal{
    flex-wrap: wrap;
  }
  .menu-all-toggle{
    border-radius: 16px;
  }
  .menu-item{
    flex: 1 1 100%;
  }
  .menu-item > a{
    justify-content: flex-start;
    padding: 12px 14px;
    white-space: normal;
    display: -webkit-box;
    display: box;
    -webkit-box-orient: vertical;
    box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  /* arredonda topo e base no menu empilhado */
  .menu-item:first-child > a{ border-top-left-radius: 16px; border-top-right-radius: 16px; }
  .menu-item:last-child  > a{ border-bottom-left-radius: 16px; border-bottom-right-radius: 16px; }
}

.menu-overlay {
  position: fixed;
  inset: 0;
  background: radial-gradient(circle at top, rgba(255, 255, 255, 0.08), rgba(0, 0, 0, 0.65));
  backdrop-filter: blur(6px);
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(12px, 2vw, 24px);
  z-index: 100000;
}

.menu-overlay.aberto {
  display: flex;
}

.menu-overlay-panel {
  background: linear-gradient(160deg, #0f3a6a 0%, #0b2f54 55%, #0a2745 100%);
  color: #f5f7fb;
  width: min(98vw, 120rem);
  max-height: clamp(78vh, 92vh, 96vh);
  overflow: hidden;
  border-radius: clamp(16px, 2vw, 24px);
  padding: clamp(12px, 2vw, 18px) clamp(12px, 2.2vw, 20px) clamp(14px, 2.2vw, 20px);
  position: relative;
  box-shadow: 0 26px 50px rgba(0, 0, 0, 0.45);
  scrollbar-gutter: stable both-edges;
  display: flex;
  flex-direction: column;
}

.menu-overlay-title {
  margin: 0 0 clamp(10px, 1.4vw, 18px);
  font-size: clamp(16px, 1.6vw, 20px);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.menu-overlay-close {
  position: absolute;
  top: clamp(8px, 1.2vw, 12px);
  right: clamp(8px, 1.2vw, 12px);
  border: none;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  border-radius: 999px;
  width: clamp(30px, 3vw, 36px);
  height: clamp(30px, 3vw, 36px);
  font-size: clamp(18px, 2.2vw, 24px);
  line-height: 1;
  cursor: pointer;
}

.menu-overlay-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.menu-overlay-list a {
  display: block;
  color: #fff;
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.08);
}

.menu-overlay-list a:hover,
.menu-overlay-list a:focus-visible {
  background: var(--primary-dark);
}

.menu-overlay-columns {
  display: grid;
  gap: clamp(10px, 1.6vw, 20px);
  grid-template-columns: repeat(6, minmax(0, 1fr));
  padding-top: clamp(2px, 0.6vw, 6px);
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: clamp(0px, 0.6vw, 8px);
  scrollbar-gutter: stable;
}

.menu-overlay-column h3 {
  margin: 0 0 clamp(4px, 0.8vw, 8px);
  font-size: clamp(11px, 0.95vw, 14px);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #ffffff;
  line-height: 1.2;
  text-wrap: balance;
  height: calc(2 * 1.2em);
  display: flex;
  align-items: flex-end;
  position: relative;
}

.menu-overlay-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  padding: 0;
  cursor: pointer;
  text-align: left;
}

.menu-overlay-toggle i {
  display: none;
}

.menu-overlay-column h3::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: max(1px, 0.08em);
  background: rgba(255, 255, 255, 0.2);
}

.menu-overlay-column {
  min-width: 0;
}

.menu-overlay-group {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: clamp(2px, 0.4vw, 4px);
  margin-top: -2px;
}

.menu-overlay-group a {
  display: block;
  color: #f5f7fb;
  text-decoration: none;
  padding: clamp(4px, 0.7vw, 7px) clamp(6px, 1vw, 10px);
  border-radius: clamp(8px, 1vw, 10px);
  font-size: clamp(11px, 0.9vw, 13px);
  line-height: 1.25;
  background: transparent;
  border: 1px solid transparent;
  font-weight: 500;
  transition: color 0.2s ease, text-decoration-color 0.2s ease, transform 0.2s ease;
}

.menu-overlay-group a:hover,
.menu-overlay-group a:focus-visible {
  color: #ffd166;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: #ffd166;
  transform: translateY(-1px);
}

.menu-overlay-columns::-webkit-scrollbar {
  width: clamp(6px, 0.9vw, 8px);
}

.menu-overlay-columns::-webkit-scrollbar-track {
  background: transparent;
}

.menu-overlay-columns::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.35);
  border-radius: 999px;
}

.menu-overlay-columns {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}

@media (max-width: 1100px) {
  .menu-overlay-panel {
    max-height: 96vh;
  }

  .menu-overlay-columns {
    gap: clamp(8px, 1.4vw, 14px);
  }

  .menu-overlay-group {
    gap: clamp(4px, 0.8vw, 8px);
  }
}

@media (max-width: 900px) {
  .menu-overlay-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .menu-overlay-column h3 {
    height: auto;
    min-height: 0;
    line-height: 1.25;
  }

  .menu-overlay-toggle {
    align-items: center;
    padding: 4px 0;
  }

  .menu-overlay-toggle i {
    display: inline-flex;
    font-size: 0.95em;
    transition: transform 0.2s ease;
  }

  .menu-overlay-column .menu-overlay-group {
    display: none;
  }

  .menu-overlay-column.is-open .menu-overlay-group {
    display: grid;
  }

  .menu-overlay-column.is-open .menu-overlay-toggle i {
    transform: rotate(180deg);
  }
}

@media (max-width: 600px) {
  .menu-overlay-panel {
    padding: 12px 12px 16px;
  }

  .menu-overlay-columns {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .menu-overlay-group a {
    font-size: 13px;
    line-height: 1.35;
    padding: 6px 8px;
  }

  .menu-overlay-title {
    font-size: 16px;
  }
}

@media (min-width: 1400px) {
  .menu-overlay-title {
    font-size: clamp(18px, 1.3vw, 22px);
  }

  .menu-overlay-column h3 {
    font-size: clamp(12px, 0.9vw, 15px);
  }

  .menu-overlay-group a {
    font-size: clamp(12px, 0.85vw, 14px);
  }
}

body.menu-overlay-open {
  overflow: hidden;
}

/* Hero */
.hero {
  position: relative;
  min-height: calc(100vh - var(--header-height));
  height: calc(100vh - var(--header-height));
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-top: 0;
  border-radius: 0;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1;
}

.hero-carousel {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-carousel .carousel,
.hero-carousel .carousel-inner,
.hero-carousel .carousel-item {
  height: 100%;
}

.hero #carouselCohab .carousel-item img {
  height: 100%;
  border-radius: 0;
  opacity: 0.6;
}

.hero #carouselCohab .carousel-item img.banner-contain {
  object-fit: cover;
  background: transparent;
}

.hero #carouselCohab .carousel-indicators,
.hero #carouselCohab .carousel-control-prev,
.hero #carouselCohab .carousel-control-next {
  display: none;
}

.hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
  padding: 0 var(--page-padding);
  max-width: 820px;
}

.hero-subtitle {
  margin: 0 0 8px;
  font-size: clamp(12px, 1.1vw, 16px);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.9;
}

.hero-title {
  margin: 0 0 20px;
  font-size: clamp(24px, 4vw, 50px);
  font-weight: 700;
  line-height: 1.1;
}

.hero-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  border-radius: 999px;
  background: #fff;
  color: #1f2a3a;
  font-weight: 700;
  box-shadow: 0 12px 24px rgba(0,0,0,0.2);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hero-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(0,0,0,0.28);
}


/* botao offset */
.offset {
  --color: #eeeeee;
  /* --hover: rgb(170, 170, 170); */
  --hover: var(--primary-light);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  border: 2px solid var(--color);
  background: transparent;
  color: var(--color);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: box-shadow 0.25s, color 0.25s, border-color 0.25s, transform 0.25s;
  box-shadow:
    0.3em 0.3em 0 0 var(--color),
    inset 0.3em 0.3em 0 0 var(--color);
}

.offset:hover,
.offset:focus {
  box-shadow:
    0 0 0 0 var(--hover),
    inset 6em 3.5em 0 0 var(--hover);
  border-color: var(--hover);
  color: #ffffff;
}


/* botao brilhante */
.btn-brilhante {
  --brilho: var(--primary-light);
  text-decoration: none;
  text-transform: uppercase;
  font-family: "Exo 2", sans-serif;
  font-weight: 600;
  font-size: clamp(12px, 1.1vw, 16px);
  display: inline-block;
  position: relative;
  text-align: center;
  color: var(--primary);
  border: 1px solid #fff;
  line-height: 3em;
  padding-left: 5em;
  padding-right: 5em;
  box-shadow: 0 0 0 0 transparent;
  transition: all 0.2s ease-in;
  background-color: rgba(255, 255, 255, 0.9);
  overflow: hidden;
  font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;

}

.btn-brilhante:hover {
  color: #fff;
  box-shadow: 0 0 30px 0 rgba(0, 199, 236, 0.5);
  background-color: var(--brilho);
  border: var(--brilho);
  transition: all 0.2s ease-out;
}

.btn-brilhante:hover::before {
  animation: shine 0.7s 0s linear;
}

.btn-brilhante:active {
  box-shadow: 0 0 0 0 transparent;
  transition: box-shadow 0.2s ease-in;
}

.btn-brilhante::before {
  content: "";
  display: block;
  width: 0px;
  height: 86%;
  position: absolute;
  top: 7%;
  left: 0%;
  opacity: 0;
  background: #fff;
  box-shadow: 0 0 15px 3px #fff;
  transform: skewX(-20deg);
}

.hero-cta-stack {
  margin-top: 8px;
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  width: clamp(240px, 40vw, 360px);
}

.hero-cta-stack .btn-brilhante {
    width: 100%;
    white-space: nowrap;
    font-size: clamp(11px, 3.3vw, 16px);
    padding-left: clamp(1.6em, 7vw, 5em);
    padding-right: clamp(1.6em, 7vw, 5em);
  }

.acessos-rapidos {
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  column-gap: 16px;
  row-gap: 14px;
  width: 100%;
  justify-content: space-between;
}

.acessos-rapidos.has-open {
  justify-content: center;
}

.acesso-rapido {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 48px;
  max-width: 100%;
  height: 48px;
  padding: 0 14px 0 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.9);
  color: var(--primary);
  text-decoration: none;
  overflow: visible;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.18);
  transition: width 0.2s ease, box-shadow 0.2s ease, background 0.2s ease,
    border-color 0.2s ease, transform 0.2s ease;
  flex: 0 0 48px;
  position: relative;
}

.acesso-rapido img {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
}

.acesso-rapido span {
  white-space: nowrap;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  font-size: 0.85rem;
  font-weight: 600;
}

.acesso-rapido::after {
  content: attr(data-label);
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  background: rgba(45, 45, 45, 0.95);
  color: #fff;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
  z-index: 3;
}

.acesso-rapido::before {
  content: "";
  position: absolute;
  top: calc(100% + 2px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  border-width: 0 6px 6px 6px;
  border-style: solid;
  border-color: transparent transparent rgba(45, 45, 45, 0.95) transparent;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 2;
}

.acesso-rapido:hover::after,
.acesso-rapido:focus-visible::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.acesso-rapido.is-tip::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.acesso-rapido:hover::before,
.acesso-rapido:focus-visible::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.acesso-rapido.is-tip::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.acesso-rapido.is-open::after {
  opacity: 0;
}

.acesso-rapido.is-open::before {
  opacity: 0;
}

.acesso-rapido.is-open,
.acesso-rapido:focus-visible {
  width: 100%;
  flex: 0 0 100%;
  order: -1;
  background: var(--primary-light);
  border-color: var(--primary-light);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(0, 0, 0, 0.22);
  justify-content: flex-start;
}

.acesso-rapido.is-open img,
.acesso-rapido:focus-visible img {
  filter: brightness(0) invert(1);
}

.acesso-rapido.is-open span,
.acesso-rapido:focus-visible span {
  opacity: 1;
  transform: translateX(0);
}


@keyframes shine {
  from {
    opacity: 0;
    left: 0%;
  }
  50% {
    opacity: 1;
  }
  to {
    opacity: 0;
    left: 100%;
  }
}

#conteudo {
  scroll-margin-top: -1px;
}

.home-content {
  margin-top: 0;
  padding-top: 0;
}

/* Carrossel */
#carouselCohab .carousel-item img {
  height: clamp(120px, 18vw, 240px);
  object-fit: cover;
  border-radius: 24px;
}


#carouselCohab .carousel-item img.banner-contain {
  object-fit: contain;
  background: #e5e5e5;
}

#carouselCohab .carousel-control-prev-icon,
#carouselCohab .carousel-control-next-icon {
  filter: invert(1) sepia(1) saturate(5) hue-rotate(-10deg); 
}

/* Servicos mais acessados */
.servicos-destaque {
  margin: 24px 0 12px;
}

.servicos-destaque h2 {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 700;
  color: var(--primary);
}

.servicos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 16px;
  }

.news-services {
  margin: 0 0 16px;
}

.news-services .servicos-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.servico-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 12px;
  min-height: 120px;
  border: 1px solid #cfd6e3;
  border-radius: 12px;
  background: #fff;
  color: var(--primary);
  font-weight: 700;
  text-align: center;
  box-shadow: 0 6px 14px rgba(0,0,0,0.06);
  transition: transform 0.5s ease-out,
    box-shadow 0.5s ease-out,
    border-color 0.35s ease-out;
  will-change: transform, box-shadow;
}

.servico-card img {
  width: 56px;
  height: auto;
}

.servico-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 26px rgba(0,0,0,0.12);
    border-color: var(--primary);
    transition-duration: 0.25s, 0.25s, 0.2s;
    transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }

.servico-card-placeholder {
  border-style: dashed;
  background: transparent;
  box-shadow: none;
  min-height: 120px;
}

body.tema-escuro .servico-card-placeholder {
  border-color: #3a4043;
}

body.tema-escuro .servico-card {
  background: #1f2324;
  border-color: #2f3638;
  color: #e6e6e6;
}
body.tema-escuro .servico-card img {
  filter: brightness(0) invert(1) contrast(1.2);
}
body.tema-escuro .servico-desc {
  color: #e6e6e6;
}

body.tema-escuro .servicos-destaque h2 {
  color: var(--primary-light);
}

.servico-desc {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  color: #4a4f57;
  max-width: 180px;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
  height: 0;
  overflow: hidden;
}

.servico-card:hover .servico-desc,
.servico-card:focus-within .servico-desc {
  opacity: 1;
  transform: translateY(0);
  height: auto;
  margin-top: 4px;
  transition-duration: 0.25s, 0.25s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
.servico-card:hover span,
.servico-card:focus-within span {
  text-decoration: underline;
}



/* Menu Scroll */

.menuScroll {
  margin: 24px 0;
}

.menuScroll-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  background: #EDEDED;
  border-radius: 12px;
  padding: clamp(6px, 1vw, 10px) clamp(6px, 1vw, 10px);
}

.menuScroll-wrapper::-webkit-scrollbar {
  display: none;
}
.menuScroll-wrapper {
  scrollbar-width: none;
}

.menuScroll-track {
  --scroll-duration: 20s;
  display: flex;
  align-items: center;
  gap: 0;
}

.menu-card {
  flex: 0 0 clamp(100px, 12vw, 130px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: clamp(6px, 1vw, 8px);
  color: #1f1f1f;
  font-weight: 700;
  border-radius: 10px;
  text-align: center;
}

.menu-card > a,
.menu-card-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  text-align: center;
  text-decoration: none;
  color: inherit;
}

.menu-card:hover {
  background: #D1D1D1;
}

.menu-card img {
  width: clamp(44px, 7vw, 80px);
  height: auto;
  object-fit: contain;
  cursor: pointer;
}

.menu-card > a img,
.menu-card-link img {
  display: block;
  margin: 0 auto;
}

.menu-card figcaption {
  font-size: clamp(11px, 1.2vw, 13px);
  line-height: 1.1;
  color: #333;
  min-height: 2.2em;
}


.menu-card:hover figcaption {
  color: var(--primary-dark);
}

@keyframes menuScrollLoop {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Menu Noticias */
.news-section {
  margin: 24px 0 64px;
  background: #f6f7f9;
  border: 1px solid #e1e4e8;
  border-radius: 18px;
  padding: 18px 18px 26px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
}

.news-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.news-kicker { text-transform: uppercase; letter-spacing: 1px; font-size: 13px; font-weight: 800; color: var(--primary-light); margin: 0; }
.news-header h2 { margin: 0; font-size: 24px; letter-spacing: -0.4px; }

.news-window {
  --card-width: clamp(240px, 28vw, 320px);
  --cards-per-page: 3;
  --gap: 18px;
  overflow: hidden;
  width: min(100%, calc(var(--cards-per-page) * var(--card-width) + (var(--cards-per-page) - 1) * var(--gap)));
  margin: 0 auto;
}
.news-track {
  --gap: 18px;
  display: flex;
  gap: var(--gap);
  transition: transform 0.4s ease;
  will-change: transform;
  width: max-content;
}

.news-card {
  flex: 0 0 var(--card-width);
  max-width: var(--card-width);
  background: #fff;
  border-radius: 16px;
  border: 1px solid #e5e8ee;
  overflow: hidden;
  box-shadow: 0 12px 24px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  min-height: 340px;
}

.news-thumb { width: 100%; height: 150px; object-fit: cover; }
.news-body { padding: 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.news-tag { display: inline-block; align-self: flex-start; background: #EDEDED; color: var(--primary); font-size: 12px; font-weight: 700; padding: 4px 8px; border-radius: 10px; letter-spacing: 0.2px; }
.news-body h3 { margin: 0; font-size: 16px; line-height: 1.3; }
.news-body p {
  margin: 0;
  font-size: 14px;
  color: #4a4f57;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  line-clamp: 3;
  overflow: hidden;
}
.news-link { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; color: #0f3c8b; font-weight: 700; text-decoration: none; padding: 8px 0; }
.news-link::after { content: "→"; font-size: 13px; transition: transform 0.2s ease; }
.news-link:hover::after { transform: translateX(3px); }

.news-controls {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.news-arrow {
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid #d0d5dc; background: #fff; cursor: pointer;
  font-size: 16px; line-height: 1;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.news-arrow:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,0.1); }

.news-dots { display: flex; gap: 8px; }
.news-dots button {
  width: 9px; height: 9px; border-radius: 50%;
  border: none; background: #d8dbe0; padding: 0; cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.news-dots button.active { background: var(--primary); transform: scale(1.1); }


/* Titulos Paginas */
#titulo {
  display: block;
  text-align: center;
  font-size: 2rem;
  margin: 1rem;
}

/* Footer */

footer {
  --footer-x: clamp(16px, 3vw, 24px);
  --footer-y: clamp(12px, 2vw, 18px);
  background: var(--primary);
  color: #fff;
  padding: 0;
  width: 100%;
  margin: 0;
}

.footer-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: var(--footer-y) var(--container-x) 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}

#footer-links{
  grid-column: 2;                 
  justify-self: center;
  display: grid;
  grid-template-columns: repeat(3, minmax(200px, 1fr));
  gap: clamp(24px, 6vw, 140px);
  text-align: center;
  width: min(1100px, 100%);                   
}

footer u {
  display: block;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 15px;
  margin-bottom: 8px;
}

footer a {
  display: block;
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  margin: 4px 0
}

footer a:hover {
  text-decoration:underline;
}

#footer-logo {
  grid-column: 1;
  justify-self: start;
  align-self: center;
  margin: 0;
}

#footer-logo img {
  width: clamp(90px, 10vw, 320px);
  height: auto;
}


#footer-conteudo1 {
  text-align: center;
}

#footer-conteudo2 {
  text-align: center;
}

#footer-conteudo3 {
  text-align: center;
}

#footer-atualizacoes {
  display: none;
}

.footer-meta-details {
  margin: 0;
  font-size: 12px;
}

.footer-meta-details summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  opacity: 0.85;
}

.footer-meta-details summary::-webkit-details-marker {
  display: none;
}

.footer-meta-details summary::after {
  content: "▾";
  font-size: 11px;
  transition: transform 0.2s ease;
}

.footer-meta-details[open] summary::after {
  transform: rotate(180deg);
}

.footer-meta-content {
  display: none;
  margin: 6px auto 0;
  max-width: 900px;
  line-height: 1.4;
  opacity: 0.95;
}

.footer-meta-details[open] .footer-meta-content,
.footer-meta-details:hover .footer-meta-content {
  display: block;
}

.footer-meta-content span {
  display: block;
  margin: 3px 0;
}



/* Parte de Baixo do Footer */

#footer-fim {
  width: 100%;
  margin: 0;
  padding: 8px 0;                
  background: var(--primary-dark);
  text-align: center;
  font-size: clamp(12px, 1.2vw, 14px);
  font-weight: 700;
}

#footer-fim .footer-fim-conteudo {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-x);

  display: grid;
  grid-template-columns: 1fr auto 1fr; 
  align-items: center;
}

#footer-fim .footer-fim-conteudo > * {
  grid-column: 2;
  justify-self: center;
  width: auto;                   
}

#footer-fim p {
  margin: 0;
}

@media (max-width: 700px){
  .footer-inner{
    grid-template-columns: 1fr;
    justify-items: center;
    align-items: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  #footer-logo{
    justify-self: center;
    text-align: center;
    order: 1;
    margin-bottom: 10px;
  }

  #footer-links{
    grid-template-columns: 1fr;
    gap: 14px;
    width: 100%;
    order: 2;
    justify-items: center;
  }

  #footer-fim .footer-fim-conteudo{
    grid-template-columns: 1fr;
    justify-items: center;
  }

  #footer-fim .footer-fim-conteudo > *{
    grid-column: 1;
    width: 100%;
  }
}

@media (min-width: 1400px){
  footer .footer-inner,
  #footer-fim .footer-fim-conteudo{
    max-width: 1400px;
  }
}

/* Tema escuro */
body.tema-escuro {
  background: #181a1b;
  color: #f5f5f5;
}

body.tema-escuro .busca input {
  background: #bdbdbd;
  border-color: #bdbdbd;
  color: #111;
}

body.tema-escuro .menuScroll-wrapper {
  background: #3E4346;
}

body.tema-escuro .menu-card {
  color: #f5f5f5;
}

body.tema-escuro .menu-card:hover {
  background: #2a2a2a;
}

body.tema-escuro .menu-item:hover > a,
body.tema-escuro .menu-item:focus-within > a {
  background: var(--primary-light);
}

body.tema-escuro .menu-all-toggle:hover,
body.tema-escuro .menu-all-toggle:focus-visible {
  background: var(--primary-light);
}

body.tema-escuro .news-card {
  background: #1a1a1a;
  border-color: #2a2a2a;
}

body.tema-escuro .news-card .news-body h3,
body.tema-escuro .news-card .news-body p,
body.tema-escuro .news-card .news-link {
  color: #e6e6e6;
}

body.tema-escuro .label,
body.tema-escuro .menu-card {
  color: #f5f5f5;
}

body.tema-escuro .news-section {
  background: #1C1F20;
  border-color: #222;
}


body.tema-escuro .menu-card figcaption {
  font-size: 14px;
  line-height: 1.2;
  color: white;
}
body.tema-escuro .menu-card:hover figcaption {
  color: var(--primary-light);
}

body.tema-escuro .menu-card img {
  filter: brightness(0) invert(1) contrast(1.3) brightness(1.25);
}


@media (max-width: 900px) {
  header {
    grid-template-columns: 1fr;
    grid-template-areas:
      "logo"
      "governo"
      "busca"
      "redes"
      "tema";
    justify-items: center;
  }
  #tema {
    margin-left: 0;
  }
  #logo-governo {
    justify-self: end;
  }
}

@media (max-width: 600px) {
  .menu {
    margin: 12px auto;
  }
  .menu-item > a {
    padding: 10px 12px;
  }
  .news-window {
    width: 100%;
  }
}

/* Prestação COHAB */
.anos-carousel {
  max-width: min(100%, 720px);
  margin: 0 auto;
}

.ano-conteudo {
  position: relative;
  padding: 12px 16px;
  background: #f7f8fb;
  border-radius: 14px;
  border: 1px solid #e8ebf2;
  box-shadow: 0 10px 24px rgba(0,0,0,0.04);
  transition: opacity 140ms ease, transform 140ms ease;
}
.ano-conteudo:hover { box-shadow: 0 12px 28px rgba(0,0,0,0.08); }

.ano-conteudo.fade-out {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 140ms ease, transform 140ms ease;
}

.ano-conteudo.fade-out-next { opacity: 0; transform: translateX(-18px); }
.ano-conteudo.fade-out-prev { opacity: 0; transform: translateX(18px); }

.ano-conteudo.enter-next { animation: anoInNext 220ms ease; }
.ano-conteudo.enter-prev { animation: anoInPrev 220ms ease; }

@keyframes anoInNext {
  from { opacity: 0; transform: translateX(18px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes anoInPrev {
  from { opacity: 0; transform: translateX(-18px); }
  to   { opacity: 1; transform: translateX(0); }
}

#ano-lista {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 6px;
}
#ano-lista a {
  color: var(--primary);
  font-weight: 600;
  transition: color 120ms ease;
}
#ano-lista a:hover { color: #086BC7; text-decoration: underline; }

@media (prefers-reduced-motion: reduce) {
  .ano-conteudo,
  .ano-conteudo.fade-out,
  .ano-conteudo.enter-next,
  .ano-conteudo.enter-prev {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

.ano-header {
  position: relative;
  padding: 0 56px;    
  text-align: center;
  margin-bottom: 12px;
}

.ano-header h5 {
  margin: 0;
}

.ano-prev,
.ano-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: none;
  padding: 6px 10px;
  cursor: pointer;
  font-size: 16px;
  color: inherit
}
.ano-prev { left: 0; }
.ano-next { right: 0; }
.ano-prev:hover,
.ano-next:hover { background: none; }

/* Prestação FEH */
#ano2-cta button {
  padding: 10px 16px;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-weight: 700;
  cursor: pointer;
}
#ano2-cta button:hover { background: #002d66; }

#ano2-cta {
  display: flex;
  justify-content: center;
  margin-top: 12px; 
}
.btn-ano {
  display: inline-block;
  padding: 10px 16px;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  min-width: 140px;     
}
.btn-ano:hover { background: #002d66; }

/* Estrategia */
#estrategia-ano-lista {
  text-align: left;
  padding-left: 18px; 
}

.estrategia-conteudo h5 {
  text-align: center; 
}

/* Estrategia - listas suspensas */
.estrategia-accordion, .faleConosco-accordion {
  max-width: 880px;
  margin: 0 auto 32px;
  display: grid;
  gap: 12px;
}

.estrategia-intro, .faleConosco-intro {
  text-align: center;
  margin: 0 0 8px;
  color: #333;
}

.estrategia-card {
  border: 1px solid #CCCCCC;
  border-radius: 12px;
  background: #f7f8fb;
  box-shadow: 0 10px 24px rgba(0,0,0,0.05);
  overflow: hidden;
}

.estrategia-card summary {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 14px 18px;
  cursor: pointer;
  font-weight: 700;
}

.estrategia-year {
  justify-self: center;
}

.estrategia-card summary::-webkit-details-marker {
  display: none;
}

.estrategia-chevron {
  font-size: 14px;
  transition: transform 160ms ease;
}

.estrategia-card[open] .estrategia-chevron {
  transform: rotate(180deg);
}

.estrategia-lista {
  margin: 0;
  padding: 0 30px 30px 30px;
  list-style: disc;
  word-break: break-word;
  overflow-wrap: anywhere;
  display: grid;
  gap: 8px;
}
.lista-numerada { 
  list-style: decimal; 
  list-style-position: inside;
}

.estrategia-lista a {
  color: var(--primary);
  font-weight: 600;
}

.estrategia-lista a:hover {
  color: #086BC7;
  text-decoration: underline;
}

body.tema-escuro .estrategia-card {
  background: #1f2324;
  border-color: #2f3638;
  box-shadow: 0 10px 24px rgba(0,0,0,0.28);
}

body.tema-escuro .estrategia-intro {
  color: #e5e5e5;
}

body.tema-escuro .faleConosco-intro {
  color: #e5e5e5;
}

body.tema-escuro .estrategia-lista a {
  color: #86b7ff;
}

body.tema-escuro .ano-conteudo {
  background: #1f2324;
  border-color: #2f3638;
  box-shadow: 0 10px 24px rgba(0,0,0,0.28);
}

body.tema-escuro #ano2-cta button,
body.tema-escuro .btn-ano {
  background: var(--primary-light);
  color: #fff;
}

body.tema-escuro #ano2-cta button:hover,
body.tema-escuro .btn-ano:hover {
  background: #0b5ec2;
}


/* Acionistas */
.tabela{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

.item{
  padding: 10px;
  border: 1px solid #ccc
}

.tituloTabela{
  background: #eee;
  font-weight: bold;
}

body.tema-escuro .tituloTabela {
  background: #2a2f33;
  color: #f5f5f5;
}


/* Contrato CPF */
.cpf-card {
  margin: 10px auto 16px;
  max-width: min(100%, 560px) ;
  background: linear-gradient(180deg, #f7f9fc, #eef3f9);
  border: 1px solid #d9e2ee;
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: 0 10px 24px rgba(3,57,129,0.08);
}

.cpf-row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.cpf-input {
  flex: 1;
  min-width: 220px;
  padding: 12px 14px;
  border: 1px solid #c7d2e2;
  border-radius: 12px;
  font-size: 15px;
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.05);
}

.cpf-input:focus {
  outline: 2px solid rgba(3,57,129,0.25);
  border-color: var(--primary);
}

.cpf-button {
  padding: 12px 16px;
  border: none;
  border-radius: 12px;
  background: var(--primary);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  opacity: 1;
}

.cpf-button:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.cpf-note {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  color: #4a4f57;
}

body.tema-escuro .cpf-card {
  background: linear-gradient(180deg, #202428, #1b1f23);
  border-color: #2d3742;
  box-shadow: 0 10px 24px rgba(0,0,0,0.35);
}

body.tema-escuro .cpf-input {
  background: #2a2f33;
  border-color: #3a4652;
  color: #e6e6e6;
}

body.tema-escuro .cpf-note {
  color: #cbd3da;
}

body.tema-escuro .cpf-button {
  background: var(--primary-light);
}
/* Contratos */
.tabelaContrato{
  display: grid;
  grid-template-columns: 1fr;
}
.tituloTabelaContrato{
  font-weight: bold;
  padding: 10px;
  font-size: xx-large;
}


ol li::marker {
  font-weight: 700;
}



/* Cadastro de reserva */
.cadastro-reserva {
  margin-top: 16px;
  text-align: center;
}

.btn-reserva {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 8px;
  background: var(--primary);
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.btn-reserva:hover {
  background: var(--primary-dark);
}


/* Cadastro */
.negrito-azul{
  font-weight: bold;
  color: var(--primary);}

/* Stepper */
.stepper {
  max-width: min(100%, 960px);
  margin: 12px auto 0;
}

.stepper-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  margin-bottom: 12px;
  border-radius: 14px;
  background: #eef2f7;
  border: 1px solid #d7deea;
}

.stepper-nav.stepper-nav--hidden {
  display: none;
}

.stepper-title {
  flex: 1;
  text-align: center;
  font-weight: 700;
  color: #1f2a3a;
  letter-spacing: 0.2px;
}

.stepper-btn {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid #c7d0de;
  background: #fff;
  color: var(--primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: all 0.2s ease;
}

.stepper-btn:hover {
  border-color: var(--primary);
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}

.stepper-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

.stepper-body {
  position: relative;
}

.stepper-status {
  max-width: min(100%, 960px);
  margin: 0 auto 12px;
}

.step-panel {
  display: none;
  opacity: 0;
  will-change: opacity;
}

.step-panel.is-active {
  display: block;
  animation: stepFadeIn 0.25s ease;
  opacity: 1;
}

@keyframes stepFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Emissao popup */
.emissao-overlay {
  position: fixed;
  inset: 0;
  background: rgba(16, 18, 20, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease;
  z-index: 1000;
  pointer-events: none;
  display: none;
}

body.emissao-popup-active .emissao-overlay {
  opacity: 1;
  visibility: visible;
  display: none;
}

body.emissao-popup-active #emissao-section {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2000;
  width: min(92vw, 520px);
  background: #fff;
  border: 1px solid #d7deea;
  border-radius: 16px;
  padding: 18px 20px;
  box-shadow: 0 18px 40px rgba(0,0,0,0.2), 0 0 0 9999px rgba(16, 18, 20, 0.35);
  animation: popupIn 0.2s ease;
  pointer-events: auto;
  opacity: 1;
  filter: none;
  text-align: center;
}

body.tema-escuro.emissao-popup-active #emissao-section {
  background: #202428;
  border-color: #2d3742;
  box-shadow: 0 18px 40px rgba(0,0,0,0.5), 0 0 0 9999px rgba(0, 0, 0, 0.55);
}

.emissao-popup-active #emissao-section h3,
.emissao-popup-active #emissao-section .cpf-note {
  text-align: center;
}

.emissao-popup-active #emissao-section .radio-group {
  justify-content: center;
  align-items: center;
}

.emissao-actions {
  display: none;
  gap: 12px;
  justify-content: center;
  align-items: center;
  margin-top: 14px;
}

body.emissao-popup-active .emissao-actions {
  display: flex;
}

body.emissao-popup-active .emissao-actions .btn-submit,
body.emissao-popup-active .emissao-actions .btn-reserva {
  width: 160px;
  min-width: 160px;
  height: 46px;
  padding: 0;
  line-height: 1;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  margin: 0;
  border: none;
  box-shadow: none;
  font-size: 15px;
  font-weight: 700;
}

@keyframes popupIn {
  from {
    opacity: 0;
    transform: translate(-50%, -48%);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}

body.tema-escuro .stepper-nav {
  background: #1d2227;
  border-color: #2d3742;
}

body.tema-escuro .stepper-title {
  color: #e2e8f0;
}

body.tema-escuro .stepper-btn {
  background: #15181a;
  border-color: #2d3742;
  color: var(--primary-light);
}

/* Formulario de cadastro */
.cadastro-form {
  max-width: min(100%, 960px);
  margin: 24px auto 32px;
  padding: 18px 20px;
  background: #f7f8fb;
  border: 1px solid #e8ebf2;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.05);
  text-align: left;
}

.cadastro-form h3 {
  margin: 8px 0 12px;
  font-size: 18px;
  color: var(--primary);
}

.form-section + .form-section {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e0e6f0;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
  align-items: center;
}

.form-grid label {
  font-weight: 600;
  color: #1f2a3a;
}

.form-grid input,
.form-grid select,
.form-grid textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #cfd6e3;
    border-radius: 8px;
    font-size: 14px;
    background: #fff;
    resize: vertical;
  }

input[type="date"] {
    position: relative;
}

input[type="date"]:after {
    content: "";
    color: #555;
    padding: 0 ;
    pointer-events: none;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    height: auto;
    color: transparent;
    background: transparent;
    cursor: pointer;
    padding: 0;
}   

.upload-field {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
}

.upload-label {
  font-weight: 600;
  color: #1f2a3a;
}

.upload-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.upload-dropzone {
  border: 2px dashed #c8d2e6;
  border-radius: 12px;
  padding: 22px 16px;
  text-align: center;
  cursor: pointer;
  background: #f9fbff;
  color: #1f2a3a;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.upload-dropzone i {
  font-size: 34px;
  color: #8aa1c4;
}

.upload-title {
  color: #2f5bd6;
  font-weight: 600;
  font-size: 14px;
}

.upload-subtitle {
  color: #5f6b7a;
  font-size: 12.5px;
}

.upload-files {
  color: #64748b;
  font-size: 12px;
  display: block;
  margin-top: 2px;
}

.upload-dropzone:hover {
  border-color: #7fa0e6;
  background: #f3f7ff;
  box-shadow: 0 10px 18px rgba(47, 91, 214, 0.08);
}

.upload-field:focus-within .upload-dropzone {
  border-color: #2f5bd6;
  background: #eef3ff;
  box-shadow: 0 0 0 3px rgba(47, 91, 214, 0.16);
}

.upload-input:invalid + .upload-dropzone {
  border-color: #e08b8b;
  background: #fff7f7;
}

.remember-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 0 6px;
  font-weight: 600;
  color: #1f2a3a;
}

.remember-toggle input {
  width: 18px;
  height: 18px;
}

.form-grid input[readonly] {
  background: #eef1f6;
  color: #4a4f57;
}

.form-grid .form-helper {
  grid-column: 1 / -1;
  display: block;
  margin-top: -2px;
  color: #4b5563;
  font-size: 13px;
  line-height: 1.4;
}

.status-card {
  max-width: min(100%, 720px);
  margin: 32px auto;
  padding: 24px 22px;
  border-radius: 16px;
  background: #f7f8fb;
  border: 1px solid #e8ebf2;
  text-align: center;
  box-shadow: 0 10px 24px rgba(0,0,0,0.05);
}

.status-card h1 {
  margin: 0 0 8px;
  font-size: 24px;
  color: #1f2a3a;
}

.status-card p {
  margin: 0 0 18px;
  color: #4b5563;
}

.status-card.success {
  border-color: #b7e3c3;
  background: #f2fbf5;
}

.status-card.error {
  border-color: #f2b4b4;
  background: #fff5f5;
}

.status-card .btn-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 999px;
  background: #033981;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

.status-card .btn-status:hover {
  background: #0a4eb0;
}

.descricao-popup-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  display: none;
  z-index: 999;
}

body.descricao-popup-aberta {
  overflow: hidden;
}

body.descricao-popup-aberta .descricao-popup-backdrop {
  display: block;
}

body.descricao-popup-aberta #descricao {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(92vw, 760px);
  height: min(60vh, 420px);
  z-index: 1000;
  padding: 14px 16px;
  font-size: 15px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
}

.combo-cidades {
  position: relative;
  width: 100%;
}

.combo-list {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 220px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #cfd6e3;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.08);
  z-index: 50;
  display: none;
}

.combo-list.aberto {
  display: block;
}

.combo-item {
  padding: 8px 12px;
  cursor: pointer;
}

.combo-item:hover,
.combo-item.ativo {
  background: #eaf1ff;
}

.hidden {
  display: none;
}

.radio-group {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

.radio-group label {
  font-weight: 500;
}

.termo-texto {
  background: #fff;
  border: 1px solid #d9e2ee;
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 12px;
}

.termo-texto p {
  margin: 8px 0;
  font-size: 13px;
  color: #333;
  line-height: 1.4;
}

.btn-submit {
  margin-top: 18px;
  padding: 12px 20px;
  border: none;
  border-radius: 10px;
  background: var(--primary);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.btn-submit:hover {
  background: var(--primary-dark);
}

body.tema-escuro .cadastro-form {
  background: #202428;
  border-color: #2d3742;
  box-shadow: 0 10px 24px rgba(0,0,0,0.35);
}

body.tema-escuro .cadastro-form h3 {
  color: var(--primary-light);
}

body.tema-escuro .cadastro-form label,
body.tema-escuro .form-grid label,
body.tema-escuro .radio-group label {
  color: #e2e8f0;
}

body.tema-escuro .form-section + .form-section {
  border-top-color: #2d3742;
}

body.tema-escuro .form-grid input,
body.tema-escuro .form-grid select,
body.tema-escuro .form-grid textarea {
    background: #15181a;
    border-color: #343a3f;
    color: #f5f5f5;
  }

body.tema-escuro .form-grid input::placeholder {
  color: #94a3b8;
}

body.tema-escuro .form-grid textarea::placeholder {
  color: #94a3b8;
}

body.tema-escuro .form-grid input[readonly] {
  background: #2a2f33;
  color: #cbd3da;
}

body.tema-escuro .form-grid .form-helper {
  color: #cbd5e1;
}

body.tema-escuro .status-card {
  background: #202428;
  border-color: #2d3742;
  box-shadow: 0 10px 24px rgba(0,0,0,0.35);
}

body.tema-escuro .status-card h1 {
  color: #e2e8f0;
}

body.tema-escuro .status-card p {
  color: #cbd5e1;
}

body.tema-escuro .status-card.success {
  border-color: #2f6f43;
  background: #1b2420;
}

body.tema-escuro .status-card.error {
  border-color: #7a2f2f;
  background: #241b1b;
}

body.tema-escuro .status-card .btn-status {
  background: #0b5ed7;
}

body.tema-escuro .status-card .btn-status:hover {
  background: #1467e0;
}

body.tema-escuro .upload-label {
  color: #e2e8f0;
}

body.tema-escuro .upload-dropzone {
  background: #1a1e22;
  border-color: #3a4450;
  color: #e2e8f0;
}

body.tema-escuro .upload-dropzone i {
  color: #94a3b8;
}

body.tema-escuro .upload-title {
  color: #8ab4ff;
}

body.tema-escuro .upload-subtitle {
  color: #a8b3c2;
}

body.tema-escuro .upload-files {
  color: #9fb1c6;
}

body.tema-escuro .upload-dropzone:hover {
  border-color: #6b8bd6;
  background: #20262c;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.3);
}

body.tema-escuro .upload-field:focus-within .upload-dropzone {
  border-color: #8ab4ff;
  background: #1f252b;
  box-shadow: 0 0 0 3px rgba(138, 180, 255, 0.2);
}

body.tema-escuro .upload-input:invalid + .upload-dropzone {
  border-color: #b46b6b;
  background: #241b1b;
}

body.tema-escuro .remember-toggle {
  color: #e2e8f0;
}

body.tema-escuro.descricao-popup-aberta #descricao {
  background: #15181a;
  border-color: #343a3f;
  color: #f5f5f5;
}

body.tema-escuro .termo-texto {
  background: #1b1f23;
  border-color: #2d3742;
}

body.tema-escuro .termo-texto p {
  color: #d1d5db;
}

.table-prestacoes th,
.table-prestacoes td {
  vertical-align: middle;
  font-size: 14px;
}

body.tema-escuro .table-prestacoes {
  color: #e2e8f0;
}

body.tema-escuro .table-prestacoes thead {
  background: #1f2327;
}

body.tema-escuro .table-prestacoes tbody tr {
  background: #15181a;
}

body.tema-escuro .table-prestacoes tbody tr:nth-child(even) {
  background: #1b1f23;
}

body.tema-escuro .table-prestacoes td,
body.tema-escuro .table-prestacoes th {
  border-color: #2d3742;
}

@media (max-width: 700px) {
  .form-grid {
    grid-template-columns: 1fr;
  }
}

/* Quem e quem */
.quem-equem {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(280px, 360px);
  gap: 32px;
  align-items: start;
  margin-top: 8px;
}

.quem-equem-list p {
  margin: 0;
}

.quem-equem-content {
  margin: 0;
}

.quem-equem-preview {
  position: sticky;
  top: 120px;
  --popup-width: clamp(240px, 40vh, 320px);
  --popup-height: clamp(280px, 60vw, 380px);
  min-height: min(320px, 100%);
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pessoa-placeholder {
  width: min(100%, var(--popup-width));
  min-height: var(--popup-height);
  padding: 16px;
  border: 1px dashed #cfd6e3;
  border-radius: 16px;
  background: #f7f8fb;
  font-size: 14px;
  color: #4a4f57;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 0.2s ease;
}

.pessoa-popup {
  position: absolute;
  top: 16px;
  left: 16px;
  right: auto;
  width: min(100%, var(--popup-width));
  min-height: var(--popup-height);
  background: #fff;
  border: 1px solid #d9e2ee;
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 12px 24px rgba(0,0,0,0.08);
  display: grid;
  gap: 12px;
  opacity: 0;
  pointer-events: none;
  transform: translateX(0);
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 2;
}

.quem-equem-preview.popup-ativo .pessoa-placeholder {
  opacity: 0;
  pointer-events: none;
}

.pessoa-popup.from-right {
  left: auto;
  right: 16px;
  transform: translateX(24px);
}

.pessoa-popup.from-left {
  right: auto;
  left: 16px;
  transform: translateX(-24px);
}

.pessoa-popup.ativo {
  opacity: 1;
  pointer-events: auto;
}

.pessoa-popup.ativo.from-right,
.pessoa-popup.ativo.from-left {
  transform: translateX(0);
}

.pessoa-foto {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 12px;
  background: #e9eef5;
}

.pessoa-nome {
  font-weight: 700;
  color: var(--primary);
  text-align: center;
}

.pessoa-link {
  background: none;
  border: none;
  padding: 0;
  color: var(--primary);
  font-weight: 700;
  cursor: pointer;
}

.pessoa-link:hover,
.pessoa-link:focus {
  text-decoration: underline;
}

body.tema-escuro .quem-equem-preview {
  background: none;
}

body.tema-escuro .pessoa-popup {
  background: #1a1a1a;
  border-color: #2a2a2a;
}

body.tema-escuro .pessoa-placeholder {
  background: #1f2324;
  border-color: #2f3638;
}

body.tema-escuro .pessoa-placeholder {
  color: #cbd3da;
}

body.tema-escuro .pessoa-link,
body.tema-escuro .pessoa-nome {
  color: #86b7ff;
}

body.tema-escuro .pessoa-foto {
  background: #2a2f33;
}

@media (max-width: 900px) {
  .quem-equem {
    grid-template-columns: 1fr;
  }

  .quem-equem-preview {
    min-height: 260px;
    position: static;
    top: auto;
  }

  .pessoa-popup,
  .pessoa-popup.from-left,
  .pessoa-popup.from-right {
    left: 16px;
    right: 16px;
    width: auto;
  }
}

/* Noticias */
.noticias-carousel {
  position: relative;
}

.noticias-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0 12px;
}

.noticias-carousel-controls--bottom {
  margin: 12px 0 0;
}

.noticias-carousel-controls .carousel-indicators {
  position: static;
  margin: 0;
}

.noticias-carousel-controls .carousel-indicators [data-bs-target] {
  background-color: var(--primary);
  opacity: 0.35;
}

.noticias-carousel-controls .carousel-indicators .active {
  opacity: 1;
}

.noticias-carousel-controls .carousel-control-prev,
.noticias-carousel-controls .carousel-control-next {
  position: static;
  width: auto;
  height: auto;
  padding: 6px 10px;
  border: 1px solid #1f5fbf;
  border-radius: 999px;
  background: #1f5fbf;
  opacity: 1;
}

.noticias-carousel-controls .carousel-control-prev-icon,
.noticias-carousel-controls .carousel-control-next-icon {
  width: 20px;
  height: 20px;
}

body.tema-escuro .noticias-carousel-controls .carousel-control-prev,
body.tema-escuro .noticias-carousel-controls .carousel-control-next {
  background: #1b4fa5;
  border-color: #1b4fa5;
}

.noticias-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 20px;
  max-width: min(100%, 1100px);
  margin: 0 auto 32px;
  padding: 16px 0 0;
}

.noticias-layout .postagem {
  padding: 20px;
  margin-bottom: 20px;
  background: #f7f9fc;
  border: 1px solid #dbe3ef;
  border-radius: 16px;
  box-shadow: 0 12px 26px rgba(17, 38, 69, 0.08);
}

.noticias-layout .postagem img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  margin: 12px 0;
}

.noticias-layout .data-postagem {
  display: block;
  font-size: 0.85em;
  border-bottom: 1px solid #f4f4f4;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.noticias-layout .conteudo-lateral {
  background: #f5f7fb;
  padding: 12px;
  margin-bottom: 20px;
  border: 1px solid #dbe3ef;
  border-radius: 12px;
  box-shadow: 0 10px 22px rgba(17, 38, 69, 0.06);
}

.noticias-layout .postagem-lateral {
  font-size: 0.85em;
  padding: 6px 0;
  border-bottom: 1px dotted #ccc;
}

.noticias-layout .postagem-lateral:last-child {
  border-bottom: none;
}

.noticias-layout h2 {
  color: var(--primary);
}

.noticias-layout h3 {
  color: #3b4b63;
  background: linear-gradient(135deg, #e8effa, #f2f6fc);
  padding: 6px 8px;
  border-radius: 8px;
}

body.tema-escuro .noticias-layout .postagem,
body.tema-escuro .noticias-layout .conteudo-lateral {
  background: #161a1e;
  border-color: #2b3336;
  box-shadow: 0 12px 28px rgba(0,0,0,0.35);
}

body.tema-escuro .noticias-layout h3 {
  background: linear-gradient(135deg, #1f2730, #27323d);
  color: #cfe1ff;
}

body.tema-escuro .noticias-layout h2,
body.tema-escuro .noticias-layout h3,
body.tema-escuro .noticias-layout a {
  color: #86b7ff;
}

body.tema-escuro .noticias-layout .data-postagem {
  border-bottom-color: #2f3638;
}

@media (max-width: 900px) {
  .noticias-layout {
    grid-template-columns: 1fr;
  }
}

.busca-sugestoes {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: #ffffff;
  border: 1px solid #d9e2ee;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.12);
  padding: 8px;
  display: none;
  max-height: 360px;
  overflow-y: auto;
  z-index: 1200;
}

.busca-sugestoes.aberto {
  display: block;
}

.busca-sugestao-grupo {
  font-size: 12px;
  font-weight: 700;
  color: var(--primary);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  padding: 6px 8px 4px;
}

.busca-sugestao-item {
  display: block;
  padding: 8px 10px;
  border-radius: 10px;
  color: #1f2a3a;
  text-decoration: none;
}
body.tema-escuro .busca-sugestao-item {
  color: #e6e9ef;
}

.busca-sugestao-item:hover,
.busca-sugestao-item:focus {
  background: #edf4ff;
}

.busca-sugestao-titulo {
  font-weight: 700;
  font-size: 14px;
}

.busca-sugestao-subtitulo {
  font-size: 12px;
  color: #4a4f57;
}

.busca-sugestao-snippet {
  font-size: 12px;
  color: #5c6672;
  margin-top: 4px;
}

.busca-status {
  position: absolute;
  top: calc(100% + 6px);
  right: 8px;
  font-size: 11px;
  color: #5c6672;
}

.pesquisa-main {
  max-width: min(100%, 960px);
  margin: 24px auto 32px;
  padding: 0 clam(16px, 4vw, 24px);
}

#pesquisa-termo {
  margin: 8px 0 18px;
  color: #4a4f57;
}

#pesquisa-resultados {
  display: grid;
  gap: 12px;
}

.busca-resultado {
  display: block;
  padding: 14px 16px;
  border: 1px solid #d9e2ee;
  border-radius: 12px;
  background: #ffffff;
  color: #1f2a3a;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(0,0,0,0.06);
}

.busca-resultado:hover,
.busca-resultado:focus {
  border-color: var(--primary);
}

.busca-resultado-titulo {
  font-weight: 700;
  font-size: 16px;
  color: var(--primary);
}

.busca-resultado-local {
  font-size: 12px;
  color: #4a4f57;
  margin: 6px 0;
}

.busca-resultado-snippet {
  font-size: 13px;
  color: #5c6672;
}

.busca-loading,
.busca-empty {
  font-size: 14px;
  color: #4a4f57;
}

body.tema-escuro .busca-sugestoes,
body.tema-escuro .busca-resultado {
  background: #1f2324;
  border-color: #2f3638;
}

body.tema-escuro .busca-sugestao-item:hover,
body.tema-escuro .busca-sugestao-item:focus {
  background: #2a2f33;
}

body.tema-escuro .busca-sugestao-grupo,
body.tema-escuro .busca-resultado-titulo {
  color: #86b7ff;
}

body.tema-escuro .busca-sugestao-subtitulo,
body.tema-escuro .busca-sugestao-snippet,
body.tema-escuro .busca-resultado-local,
body.tema-escuro .busca-resultado-snippet,
body.tema-escuro #pesquisa-termo {
  color: #cbd3da;
}

/* Breadcrumbs */
.breadcrumbs{
  width: min(100%, var(--container-max));
  margin: 12px auto 0;
  padding: 0 var(--page-padding);
  font-size: 14px;
  color: #5a6472;
}



.breadcrumbs-bar{
  width: min(100%, var(--container-max));
  margin: 8px auto 0;
  padding: 0 var(--page-padding);
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 16px;
}

.breadcrumbs-bar .breadcrumbs{
  margin: 0;
  padding: 0;
  width: auto;
}

.breadcrumbs-bar .menu-search{
  margin: 0;
  padding: 0;
  justify-self: end;
  width: min(100%, clamp(320px, 52vw, 820px));
}

.breadcrumbs-bar .menu-search input{
  width: 100%;
}

.breadcrumbs ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.breadcrumbs li {
  display: flex;
  align-items: center;
}
.breadcrumbs li + li::before {
  content: '/';
  margin-right: 8px;
  color: #9aa6b2;
}
.breadcrumbs a {
  color: var(--primary);
  font-weight: 600;
}
.breadcrumbs a:hover {
  text-decoration: underline;
}
body.tema-escuro .breadcrumbs {
  color: #c8d2e1;
}
body.tema-escuro .breadcrumbs a {
  color: #cfe3ff;
}
body.tema-escuro .breadcrumbs li + li::before {
  color: #7f8a99;
}

/* Alto contraste */
.contraste-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--primary);
  background: #fff;
  color: var(--primary);
  font-weight: 600;
  cursor: pointer;
}
.contraste-toggle:hover {
  background: #f1f4f8;
}
.contraste-toggle .contraste-icon svg {
  display: block;
}
.contraste-toggle .contraste-icon circle {
  fill: transparent;
}
.contraste-toggle[aria-pressed="true"] .contraste-icon circle {
  fill: currentColor;
}
.acessibilidade-widget {
  position: fixed;
  right: clamp(16px, 6vh, 94px);
  bottom: clamp(16px, 6vh, 96px);
  z-index: 9999;
  display: grid;
  gap: 8px;
  justify-items: end;
}
.acessibilidade-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--primary);
  background: #fff;
  color: var(--primary);
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.15);
  transition: box-shadow 0.25s ease;
  white-space: nowrap;
}
.acessibilidade-toggle:hover {
  background: #f1f4f8;
}
.acessibilidade-toggle .acessibilidade-label {
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateX(-6px);
  transition: max-width 0.25s ease, opacity 0.2s ease, transform 0.25s ease, margin-right 0.25s ease;
  margin-right: 0;
}
.acessibilidade-toggle:hover,
.acessibilidade-toggle:focus-visible {
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.18);
}
.acessibilidade-toggle:hover .acessibilidade-label,
.acessibilidade-toggle:focus-visible .acessibilidade-label {
  max-width: 240px;
  opacity: 1;
  transform: translateX(0);
  margin-right: 8px;
}
@media (max-width: 480px) {
  .acessibilidade-toggle:hover .acessibilidade-label,
  .acessibilidade-toggle:focus-visible .acessibilidade-label {
    max-width: 180px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .acessibilidade-toggle,
  .acessibilidade-toggle .acessibilidade-label {
    transition: none;
  }
}
.acessibilidade-menu {
  display: none;
  min-width: 220px;
  padding: 10px;
  border-radius: 14px;
  border: 1px solid #d0d7e3;
  background: #fff;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.15);
  width: min(92vw, 280px);
  max-height: min(70vh, 420px);
  overflow-y: auto;
}
.acessibilidade-widget.aberto .acessibilidade-menu {
  display: grid;
  gap: 8px;
}
.acessibilidade-menu .acessibilidade-fonte {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.acessibilidade-menu .acessibilidade-fonte .acessibilidade-botao {
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.2;
}
.acessibilidade-menu .acessibilidade-duplo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.acessibilidade-menu .contraste-toggle {
  width: 100%;
  justify-content: flex-start;
  border-radius: 10px;
}
.acessibilidade-menu .acessibilidade-botao {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--primary);
  background: #fff;
  color: var(--primary);
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  justify-content: center;
}
.acessibilidade-menu .fonte-icone {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 16px;
  line-height: 1;
}
.acessibilidade-menu .acessibilidade-botao:hover {
  background: #f1f4f8;
}
.acessibilidade-menu .acessibilidade-botao[aria-pressed="true"] {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.acessibilidade-menu .acessibilidade-botao:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.acessibilidade-menu .toggle-fonte-estilo {
  justify-content: center;
}
.acessibilidade-menu .toggle-negrito,
.acessibilidade-menu .toggle-espaco-letras,
.acessibilidade-menu .toggle-espaco-linhas,
.acessibilidade-menu .toggle-fonte-estilo {
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.2;
}

.acessibilidade-daltonismo {
  display: grid;
  gap: 6px;
}

.acessibilidade-subtitulo {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--primary);
}

.acessibilidade-daltonismo-botoes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.acessibilidade-intensidade {
  display: grid;
  gap: 6px;
}

.acessibilidade-intensidade-botoes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.acessibilidade-leitura {
  display: grid;
  gap: 6px;
}

.acessibilidade-leitura-botoes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.acessibilidade-menu .leitura-botao {
  justify-content: center;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.2;
}

.acessibilidade-menu .daltonismo-botao,
.acessibilidade-menu .intensidade-botao {
  justify-content: center;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.2;
}

body.tema-escuro .acessibilidade-subtitulo {
  color: #cfe3ff;
}

body.tema-contraste .acessibilidade-subtitulo {
  color: #ffd400;
}

.daltonismo-filtros {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

body.modo-leitura {
  background: #f6f2ea;
}

body.modo-leitura #filtro-site {
  max-width: 860px;
  margin: 0 auto;
  padding: 24px;
}

body.modo-leitura main {
  margin: 0;
  text-align: left;
  font-size: 1.05rem;
  line-height: 1.75;
}

body.modo-leitura header,
body.modo-leitura nav.menu,
body.modo-leitura footer {
  display: none;
}

body.tema-escuro .contraste-toggle {
  background: #111;
  color: #cfe3ff;
  border-color: #cfe3ff;
}
body.tema-escuro .contraste-toggle:hover {
  background: #1b1b1b;
}
body.tema-escuro .acessibilidade-toggle {
  background: #111;
  color: #cfe3ff;
  border-color: #cfe3ff;
}
body.tema-escuro .acessibilidade-toggle:hover {
  background: #1b1b1b;
}
body.tema-escuro .acessibilidade-menu {
  background: #111;
  border-color: #2a3b52;
}
body.tema-escuro .acessibilidade-menu .acessibilidade-botao {
  background: #111;
  color: #cfe3ff;
  border-color: #cfe3ff;
}
body.tema-escuro .acessibilidade-menu .acessibilidade-botao:hover {
  background: #1b1b1b;
}
body.tema-escuro .acessibilidade-menu .acessibilidade-botao[aria-pressed="true"] {
  background: #cfe3ff;
  color: #111;
  border-color: #cfe3ff;
}
body.tema-contraste {
  background: #000;
  color: #fff;
}
body.tema-contraste,
body.tema-contraste * {
  color: #fff;
}
body.tema-contraste * {
  background-color: transparent;
  border-color: #fff;
}
body.tema-contraste a,
body.tema-contraste a * {
  color: #ffd400;
}
body.tema-contraste button,
body.tema-contraste input,
body.tema-contraste select,
body.tema-contraste textarea {
  background-color: #000;
  color: #fff;
  border-color: #fff;
}
body.tema-contraste header,
body.tema-contraste nav.menu,
body.tema-contraste main,
body.tema-contraste footer {
  background: #000;
}
body.tema-contraste a {
  color: #ffd400;
}
body.tema-contraste .menu a,
body.tema-contraste .menu .submenu a {
  color: #fff;
}
body.tema-contraste .menu .submenu {
  background: #000;
  border: 1px solid #fff;
}
body.tema-contraste hr {
  border-bottom-color: #ffd400;
}
body.tema-contraste .busca input {
  background: #000;
  color: #fff;
  border-color: #fff;
}
body.tema-contraste .busca button {
  background: #ffd400;
  color: #000;
  border-color: #ffd400;
}
body.tema-contraste .contraste-toggle {
  background: #000;
  color: #ffd400;
  border-color: #ffd400;
}
body.tema-contraste .acessibilidade-toggle {
  background: #000;
  color: #ffd400;
  border-color: #ffd400;
}
body.tema-contraste .acessibilidade-menu {
  background: #000;
  border-color: #ffd400;
}
body.tema-contraste .acessibilidade-menu .acessibilidade-botao {
  background: #000;
  color: #ffd400;
  border-color: #ffd400;
}
body.tema-contraste .acessibilidade-menu .acessibilidade-botao[aria-pressed="true"] {
  background: #ffd400;
  color: #000;
  border-color: #ffd400;
}
body.tema-contraste .acessibilidade-menu .contraste-toggle {
  color: #ffd400;
}
body.tema-contraste .servico-card img,
body.tema-contraste .menu-card img,
body.tema-contraste .menu-card-link img {
  filter: brightness(0) invert(1) contrast(1.2);
}

/* Sitemap */
.sitemap {
  max-width: min(100%, 1100px);
  text-align: left;
  text-align-last: auto;
}
.sitemap-section {
  margin: 24px 0;
  padding: 16px;
  border-radius: 16px;
  border: 1px solid #e1e6ee;
  background: #f8fafc;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}
.sitemap-section h3 {
  margin-bottom: 12px;
  color: var(--primary);
}
.sitemap-columns {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
  padding-top: 18px;
}
.sitemap-columns::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 0;
  right: 0;
  height: 2px;
  background: #c7d4e6;
}
.sitemap-column {
  position: relative;
  min-width: 0;
  padding-top: 18px;
}
.sitemap-column::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 18px;
  background: #c7d4e6;
}
.sitemap-column::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
}
.sitemap-column h4 {
  margin-bottom: 10px;
  color: #0b3f8b;
  font-size: 16px;
}
.sitemap-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 8px 16px;
  margin: 0;
  padding: 0;
}
.sitemap-column .sitemap-list {
  grid-template-columns: 1fr;
  gap: 8px;
}
.sitemap-list a {
  display: block;
  padding: 6px 10px;
  border-radius: 10px;
  border: 1px solid #eef2f7;
  background: #fff;
  color: var(--primary);
  font-weight: 600;
}
.sitemap-list a:hover {
  background: #eaf2ff;
  border-color: #cfe0ff;
}
body.tema-escuro .sitemap-section {
  background: #0f1623;
  border-color: #1f2b3d;
}
body.tema-escuro .sitemap-section h3 {
  color: #cfe3ff;
}
body.tema-escuro .sitemap-column h4 {
  color: #cfe3ff;
}
body.tema-escuro .sitemap-columns::before,
body.tema-escuro .sitemap-column::before {
  background: #2a3b52;
}
body.tema-escuro .sitemap-column::after {
  background: #cfe3ff;
}
body.tema-contraste .sitemap-columns::before,
body.tema-contraste .sitemap-column::before {
  background: #ffd400;
}
body.tema-contraste .sitemap-column::after {
  background: #ffd400;
}
body.tema-escuro .sitemap-list a {
  background: #0b111b;
  border-color: #1f2b3d;
  color: #cfe3ff;
}
body.tema-escuro .sitemap-list a:hover {
  background: #111a2a;
  border-color: #2a3b52;
}
body.tema-contraste .sitemap-section {
  background: #000;
  border-color: #ffd400;
}
body.tema-contraste .sitemap-list a {
  background: #000;
  color: #ffd400;
  border-color: #ffd400;
}
body.tema-contraste a:focus,
body.tema-contraste button:focus,
body.tema-contraste input:focus,
body.tema-contraste select:focus,
body.tema-contraste textarea:focus {
  outline: 2px solid #ffd400;
  outline-offset: 2px;
}
#centralizar details summary {
  cursor: pointer;
  position: relative;
  display: block;
  text-align: center;
  padding: 6px 24px 6px 0;
  background: transparent;
  color: var(--primary);
  font-weight: 600;
  border-bottom: 1px solid var(--primary);
}

#centralizar details[open] summary {
  color: var(--primary-dark);
  border-bottom-color: var(--primary-dark);
}

#centralizar details summary::marker {
  color: transparent;
}

#centralizar details summary::-webkit-details-marker {
  display: none;
}

#centralizar details summary::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-60%) rotate(45deg);
  transition: transform 0.2s ease;
}

#centralizar details[open] summary::after {
  transform: translateY(-40%) rotate(225deg);
}

body.texto-negrito,
body.texto-negrito * {
  font-weight: 700;
}
body.espaco-letras,
body.espaco-letras * {
  letter-spacing: var(--acess-letter-spacing);
}
body.espaco-linhas,
body.espaco-linhas * {
  line-height: var(--acess-line-height);
}
body.fonte-acessivel {
  font-family: var(--acess-font-family);
}

header {
  width: 100%;
  margin: 0;
  padding: 0;
}

nav.menu{
  width: min(100%, var(--container-max));
  margin: 0 auto 16px;
  padding: 0 var(--page-padding); 
  
}

.menu-inner{
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 0;
  border-radius: 50px;
  overflow: visible;
  z-index: 9999;
  background: transparent;
}

.menu-inner::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--primary);
  border-radius: 50px;
  z-index:0;
}

@media (max-width: 1200px) {
  .site-header .header-top {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: clamp(4px, 0.8vw, 8px) var(--page-padding);
    row-gap: clamp(4px, 1.1vw, 10px);
  }

  .header-left,
  .header-right {
    justify-content: center;
    flex-wrap: wrap;
  }

  .header-actions {
    flex: 1 1 100%;
    justify-content: center;
  }

  .header-actions .menu-search {
    width: min(92vw, 360px);
  }

  .header-menu {
    justify-content: center;
    flex-wrap: wrap;
  }

  .header-menu-list {
    justify-content: center;
    flex-wrap: wrap;
  }

  .header-actions {
    justify-content: center;
    flex-wrap: wrap;
  }

  .submenu {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 900px) {
  .submenu {
    width: 100%;
    max-width: 100%;
    left: 0;
    right: 0;
    transform: none;
    max-height: min(70vh, 520px);
    overflow-y: auto;
    overscroll-behavior: contain;
    font-size: clamp(10px, 2.4vw, 13px);
  }

  .header-menu .submenu {
    position: fixed;
    left: 10px;
    right: 10px;
    top: calc(var(--header-height) + 45px);
    width: auto;
    min-width: 0;
    max-width: calc(100vw - 20px);
    transform: none;
    box-sizing: border-box;
    max-height: calc(100vh - var(--header-height) - 40px);
    overflow-y: auto;
  }
}

@media (max-width: 900px) {
  header {
    width: 100%;
  }
}

@media (max-width: 900px) {
  .menu-inner {
    flex-wrap: wrap;
    border-radius: 18px;
  }

  .menu-search {
    padding: 4px 0 6px;
    margin: 4px 0;
  }

  .menu-search input {
    width: min(86vw, 520px);
  }
}

@media (max-width: 900px) {
  .site-header .header-top {
    padding: clamp(3px, 0.6vw, 6px) var(--page-padding);
    row-gap: clamp(3px, 1vw, 8px);
  }

  .menu {
    margin: 10px auto;
  }
}

  @media (max-width: 900px) {
    .site-header .header-top {
      grid-template-columns: 1fr 1fr auto;
      grid-template-areas:
        "tema logos social"
        "menu-left menu-right search";
      column-gap: 4px;
      row-gap: 6px;
  }

  .header-left,
  .header-right {
    display: contents;
  }

  #tema {
    grid-area: tema;
    justify-self: start;
    grid-column: 1;
  }

  .header-logos {
    grid-area: logos;
    justify-self: center;
    width: 100%;
    justify-content: center;
    grid-column: 1 / -1;
  }

  .header-social {
    grid-area: social;
    justify-self: end;
    grid-column: 3;
  }

  .header-menu-left {
    grid-area: menu-left;
    width: 100%;
    min-width: 0;
  }

  .header-menu-right {
    grid-area: menu-right;
    width: 100%;
    min-width: 0;
  }

  .header-actions {
    grid-area: search;
    justify-self: end;
  }

  .header-menu-left .header-menu-list,
  .header-menu-right .header-menu-list {
    width: 100%;
    gap: clamp(8px, 2.2vw, 14px);
    flex-wrap: nowrap;
  }

  .header-menu-left .header-menu-list {
    justify-content: flex-end;
  }

  .header-menu-right .header-menu-list {
    justify-content: flex-start;
  }

  .header-menu-item {
    flex: 0 1 auto;
    min-width: 0;
  }

  .header-menu-item > a,
  .header-menu-toggle {
    justify-content: center;
    text-align: center;
    white-space: normal;
    line-height: 1.05;
    padding: 4px 2px;
    font-size: clamp(8.5px, 2.2vw, 10.5px);
    letter-spacing: 0.02em;
  }

  .header-menu-right .header-menu-item:first-child > a {
    white-space: nowrap;
  }

  .header-menu-right .header-menu-item:last-child > a {
    max-width: 90px;
  }

  .header-actions .menu-search {
    width: auto;
    margin: 0;
  }

  .menu-search.menu-search-collapsed button {
    height: 32px;
    width: 32px;
  }

  body.search-open .header-menu-left,
  body.search-open .header-menu-right {
    display: none;
  }

  body.search-open .header-actions {
    grid-column: 1 / -1;
    justify-self: stretch;
  }

  body.search-open .header-actions .menu-search {
    width: 100%;
  }
}

@media (max-width: 900px) {
  #carouselCohab .carousel-item img {
    height: clamp(90px, 15vw, 180px);
  }
}

@media (max-width: 1200px) {
  #carouselCohab .carousel-item img {
    height: clamp(110px, 17vw, 220px);
  }
}

@media (max-width: 900px) {
  header {
    padding-top: clamp(2px, 0.6vw, 5px);
  }

  #logo-site {
    width: clamp(80px, 14vw, 175px);
  }

  #logo-governo {
    width: clamp(82px, 14vw, 160px);
  }

  .logo-separator {
    height: clamp(22px, 2vw, 30px);
    font-size: clamp(16px, 1.8vw, 22px);
  }
}

@media (max-width: 1200px) {
  header {
    padding-top: clamp(3px, 0.7vw, 6px);
  }

  #logo-site {
    width: clamp(86px, 14.5vw, 200px);
  }

  #logo-governo {
    width: clamp(88px, 14.5vw, 175px);
  }

  .logo-separator {
    height: clamp(24px, 2.2vw, 32px);
    font-size: clamp(17px, 2vw, 24px);
  }
}

@media (max-width: 768px) {
  .news-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 1200px) {
  .news-window {
    --cards-per-page: 2;
  }
}

@media (max-width: 768px) {
  .news-window {
    --cards-per-page: 1;
    --card-width: min(90vw, 360px);
  }
}

/* Ajustes para telas grandes */
@media (min-width: 1440px){
  :root{
    --container-max: 1680px;
    --page-padding: 28px;
  }
  .menu-item > a{
    text-overflow: clip;
  }
}

@media (min-width: 1920px){
  :root{
    --container-max: 1690px; 
    --page-padding: 28px;
  }
}

@media (min-width: 2560px){
  :root{
    --container-max: 2300px;
    --page-padding: 40px;
  }
}

/* Breadcrumbs: sempre alinhado ao nav.menu */
nav.menu + .breadcrumbs{
  width: min(100%, var(--container-max));
  margin: 8px auto 0;
  padding: 0 var(--page-padding);
}

/* garante que não tem recuo diferente por regra antiga */
nav.menu + .breadcrumbs{
  max-width: none;
}

/* Licitacoes */
.licitacoes-container {
                margin: 24px auto 40px;
                max-width: 1100px;
                text-align: left;
                display: grid;
                gap: 24px;
            }

            .licitacoes-intro {
                background: #f3f6fb;
                border-left: 4px solid var(--primary);
                border-radius: 12px;
                padding: 18px 20px;
                color: #1c1c1c;
            }

            .licitacoes-intro p {
                margin: 0 0 10px;
            }

            .licitacoes-intro p:last-child {
                margin-bottom: 0;
            }

            .licitacoes-layout {
                display: grid;
                grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
                gap: 24px;
                align-items: stretch;
            }

            .licitacoes-card,
            .licitacoes-results-body {
                background: #ffffff;
                border: 1px solid #e1e6ef;
                border-radius: 14px;
                padding: 18px 20px;
                box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
            }

            .licitacoes-card {
                display: flex;
                flex-direction: column;
            }

            .licitacoes-form {
                padding-right: 4px;
            }

            .licitacoes-card h2 {
                font-size: 16px;
                margin-bottom: 6px;
                color: var(--primary-dark);
            }

            .licitacoes-subtitle {
                margin: 0 0 16px;
                color: #475569;
                font-size: 13px;
            }

            .licitacoes-form {
                display: grid;
                gap: 12px;
            }

            .licitacoes-field span {
                display: block;
                font-weight: 600;
                font-size: 13px;
                margin-bottom: 6px;
                color: #243b53;
            }

            .licitacoes-field select,
            .licitacoes-field input {
                width: 100%;
                padding: 10px 12px;
                border-radius: 8px;
                border: 1px solid #cbd5e1;
                background: #f8fafc;
                color: #1f2937;
                font-size: 14px;
            }

            .licitacoes-field input::placeholder {
                color: #94a3b8;
            }

            .licitacoes-actions {
                display: grid;
                gap: 10px;
                margin-top: 4px;
            }

            .btn-acao {
                padding: 10px 14px;
                border-radius: 8px;
                font-weight: 700;
                font-size: 13px;
                text-transform: uppercase;
                background: var(--primary);
                border: 1px solid var(--primary-dark);
                color: #fff;
                cursor: pointer;
            }

            .btn-acao:hover {
                background: var(--primary-dark);
            }

            .btn-acao.btn-secundario {
                background: transparent;
                color: var(--primary);
            }

            .btn-acao.btn-secundario:hover {
                background: rgba(3, 57, 129, 0.12);
            }

            .licitacoes-results {
                display: flex;
                flex-direction: column;
                gap: 12px;
                align-content: start;
                height: 100%;
            }

            .licitacoes-results-header {
                background: var(--primary);
                color: #fff;
                padding: 12px 16px;
                border-radius: 10px;
                font-weight: 700;
                text-align: center;
                box-shadow: 0 8px 18px rgba(3, 57, 129, 0.18);
            }

            .licitacoes-results-body {
                display: flex;
                align-items: flex-start;
                justify-content: flex-start;
                color: #475569;
                overflow: hidden;
            }

            .licitacoes-results-body p {
                margin: 0;
            }

            .licitacoes-results-list {
                display: grid;
                gap: 18px;
                width: 100%;
                height: 100%;
                overflow-y: auto;
                padding: 6px 8px 12px 4px;
                box-sizing: border-box;
            }

            .licitacoes-resultado {
                border: 1px solid var(--primary);
                border-radius: 12px;
                padding: 16px 18px;
                background: #f8fafc;
                display: grid;
                gap: 10px;
                box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
            }


            .licitacoes-resultado h3 {
                margin: 0;
                color: var(--primary-dark);
                font-size: 15px;
            }

            .licitacoes-resultado-grid {
                display: grid;
                gap: 6px;
                font-size: 13px;
                color: #1f2937;
            }

            .licitacoes-resultado-grid strong {
                color: #0f172a;
            }

            .licitacoes-resultado-docs {
                display: flex;
                gap: 10px;
                align-items: center;
                flex-wrap: wrap;
            }

            .licitacoes-docs-list {
                width: 100%;
                background: #ffffff;
                border: 1px solid #e2e8f0;
                border-radius: 10px;
                padding: 10px 12px;
                margin-top: 6px;
            }

            .licitacoes-docs-list ul {
                margin: 0;
                padding-left: 18px;
                display: grid;
                gap: 6px;
                font-size: 12.5px;
            }

            .licitacoes-docs-list a {
                color: var(--primary-dark);
                text-decoration: underline;
            }

            .licitacoes-docs-list a:hover {
                color: var(--primary);
            }

            .licitacoes-docs-indisponivel {
                font-size: 12px;
                color: #64748b;
                font-style: italic;
            }

            body.tema-escuro .licitacoes-intro {
                background: #232628;
                border-left-color: var(--primary-light);
                color: #f1f5f9;
            }

            body.tema-escuro .licitacoes-card,
            body.tema-escuro .licitacoes-results-body {
                background: #1f2224;
                border-color: #2e3235;
                box-shadow: none;
            }

            body.tema-escuro .licitacoes-resultado {
                background: #212427;
                border-color: #5c636b;
            }

            body.tema-escuro .licitacoes-resultado h3 {
                color: #e2e8f0;
            }

            body.tema-escuro .licitacoes-resultado-grid {
                color: #e2e8f0;
            }

            body.tema-escuro .licitacoes-resultado-grid strong {
                color: #f1f5f9;
            }

            body.tema-escuro .licitacoes-docs-indisponivel {
                color: #94a3b8;
            }

            body.tema-escuro .licitacoes-docs-list {
                background: #1b1f22;
                border-color: #2f3540;
            }

            body.tema-escuro .licitacoes-docs-list a {
                color: #cbd5f5;
            }

            @media (max-width: 960px) {
                .licitacoes-layout {
                    grid-template-columns: 1fr;
                }

                .licitacoes-card,
                .licitacoes-results {
                    min-height: auto;
                }

                .licitacoes-results-body {
                    min-height: 260px;
                }
            }

            @media (max-height: 900px) {
                .licitacoes-container {
                    gap: 18px;
                }

                .licitacoes-intro {
                    padding: 12px 16px;
                    font-size: 13px;
                }

                .licitacoes-card,
                .licitacoes-results-body {
                    padding: 14px 16px;
                }

                .licitacoes-subtitle {
                    margin-bottom: 10px;
                    font-size: 12px;
                }

                .licitacoes-form {
                    gap: 10px;
                }

                .licitacoes-field span {
                    font-size: 12px;
                    margin-bottom: 4px;
                }

                .licitacoes-field select,
                .licitacoes-field input {
                    padding: 8px 10px;
                    font-size: 13px;
                }

                .licitacoes-actions {
                    gap: 8px;
                }

                .btn-acao {
                    padding: 8px 12px;
                    font-size: 12px;
                }

                .licitacoes-results-header {
                    padding: 10px 12px;
                    font-size: 13px;
                }
            }

            @media (max-height: 820px) {
                .licitacoes-intro p {
                    margin-bottom: 6px;
                }

                .licitacoes-layout {
                    gap: 16px;
                }
            }

            @media (max-height: 780px) {
                #titulo {
                    font-size: 1.7rem;
                    margin: 0.55rem 0;
                }

                .centralizarX hr {
                    margin: 8px 0 12px;
                }

                .licitacoes-container {
                    margin: 16px auto 24px;
                    gap: 16px;
                }

                .licitacoes-intro {
                    padding: 11px 13px;
                    font-size: 12.5px;
                }

                .licitacoes-intro p {
                    margin-bottom: 5px;
                }

                .licitacoes-card {
                    padding: 13px 15px;
                }

                .licitacoes-card h2 {
                    font-size: 14.5px;
                    margin-bottom: 5px;
                }

                .licitacoes-subtitle {
                    display: block;
                    margin-bottom: 8px;
                    font-size: 12px;
                }

                .licitacoes-form {
                    gap: 8px;
                }

                .licitacoes-field span {
                    font-size: 11.5px;
                    margin-bottom: 3px;
                }

                .licitacoes-field select,
                .licitacoes-field input {
                    padding: 6px 8px;
                    font-size: 12.5px;
                }

                .licitacoes-actions {
                    gap: 7px;
                    margin-top: 3px;
                }

                .btn-acao {
                    padding: 6px 11px;
                    font-size: 12px;
                }

                .licitacoes-results-header {
                    padding: 8px 11px;
                    font-size: 12.5px;
                }
            }

            @media (max-height: 720px) {
                .licitacoes-container {
                    margin: 16px auto 22px;
                    gap: 14px;
                }

                .licitacoes-layout {
                    gap: 14px;
                }
            }

            body.tema-escuro .licitacoes-card h2 {
                color: #e2e8f0;
            }

            body.tema-escuro .licitacoes-subtitle {
                color: #cbd5f5;
            }

            body.tema-escuro .licitacoes-field span {
                color: #e2e8f0;
            }

            body.tema-escuro .licitacoes-field select,
            body.tema-escuro .licitacoes-field input {
                background: #15181a;
                border-color: #343a3f;
                color: #f5f5f5;
            }

            body.tema-escuro .licitacoes-field input::placeholder {
                color: #94a3b8;
            }

            body.tema-escuro .btn-acao.btn-secundario {
                color: #cbd5f5;
                border-color: #4c66a2;
            }

            body.tema-escuro .btn-acao.btn-secundario:hover {
                background: rgba(7, 106, 222, 0.2);
            }

            body.tema-escuro .licitacoes-results-header {
                background: var(--primary-dark);
            }

            body.tema-escuro .licitacoes-results-body {
                color: #d1d5db;
            }

            @media (max-width: 900px) {
                .licitacoes-layout {
                    grid-template-columns: 1fr;
                }

                .licitacoes-results-body {
                    min-height: 240px;
                }
            }


/* Contrato Cedido ao FIDC */
.cpf-status {
    margin-top: 12px;
    padding: 12px 16px;
    border-radius: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.cpf-status.is-ok {
    background: #0f5132;
    border: 1px solid #198754;
    color: #e6f4ea;
}

.cpf-status.is-error {
    background: #58151c;
    border: 1px solid #dc3545;
    color: #f8d7da;
}

.cpf-contatos {
    margin-top: 16px;
}

.cpf-contatos a {
    color: inherit;
}
