* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
:root {
	font-size: 14px;
	--primary: #0047ab;
}

.top-bar {
	display: flex;
	justify-content: center;
	padding: 1em 0 !important;
}

html, body {
  height: 100%; /* garante que o body e html ocupem a tela toda */
  margin: 0;
  padding: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh; /* garante altura mínima da tela */
}

main {
  flex: 1; /* ocupa o espaço restante */
  display: flex;
  flex-direction: column;
}

header {
  border-bottom: .1em gray solid;
  position: relative; /* para o menu absoluto */
}

/* Logo */
.logo-img {
  max-height: 60px;
}

#pagetitle {
  margin: 0 !important;
}

/* Esconde checkbox */
.menu-toggle {
  display: none;
}

/* Ícone hamburguer */
.menu-icon {
  display: none !important;
  font-size: 2rem;
  cursor: pointer;
  position: relative; /* necessário para z-index */
  z-index: 20;
}

/* Menu desktop */
.main-nav .menu {
  display: flex;
  gap: 1rem;
  list-style: none;
}

/* Links do menu */
.main-nav .menu li a {
  text-decoration: none;
  display: block;
}

/* ===== Responsivo ===== */
@media (max-width: 1140px) {
	header {
		margin: 0 2em !important;
	}
	
  .menu-icon {
    display: block !important;
  }

  .main-nav {
    position: absolute;
    top: 100%; /* logo + botão hamburguer */
    right: 0;
    background: white;
    width: 200px; /* ajuste conforme desejar */
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    z-index: 10;
	overflow-y: scroll;
	  text-align: left;
  }
	
	#pagetitle {
		font-size: 1.25em;
	}

  .main-nav .menu {
    flex-direction: column;
    gap: 0;
    padding: 0;
	  width: 100%;
  }

  .main-nav .menu li {
    border-bottom: 1px solid #ddd;
	  width: 100%;
  }

  .main-nav .menu li a {
    padding: 0.8rem 1rem;
  }

  /* Abre menu quando checkbox está marcado */
  .menu-toggle:checked + .menu-icon + .main-nav {
    max-height: 500px; /* ajuste se tiver mais itens */
  }
}
/* Esconde ícones no desktop */
.menu-icon-item {
  display: none;
  margin-right: 0.5em;
}

/* Mostra no mobile */
@media (max-width: 1140px) {
  .menu-icon-item {
    display: inline-block;
    width: 1.2em;
    text-align: center;
    color: var(--primary);
  }

  .main-nav .menu li a {
    display: flex;
    align-items: center;
    gap: 0.5em;
  }
}

