/* ===== Reset rápido ===== */
* { box-sizing: border-box; }
html, body { margin:0; padding:0; }
body {
  background: var(--body-bg);
  color: var(--font-color);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ===== Header ===== */
.site-header {
  width: 100%;
  display: block;
}

/* ===== TOPBAR (logo + nome + busca + entrar + toggle) ===== */
.topbar {
  width: 100%;
  margin: 0; /* Remove qualquer margem externa */
  padding: 16px 32px; /* Dá um respiro melhor interno */
  background: var(--header-bg);
  color: var(--header-font);
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 24px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  box-sizing: border-box;
}

/* ===== LOGO E TEXTO ===== */
.brand {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
  gap: 14px;
}

.brand img {
  height: 100px; /* Um pouco maior para destacar */
  width: auto;
  object-fit: contain;
}

.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.brand-text .site-name {
  font-size: 1.35rem;
  font-weight: 700;
}

.brand-text .tagline {
  font-size: .9rem;
  color: rgba(0,0,0,.6);
}

/* ===== CAIXA DE BUSCA ===== */
.site-search {
  display: flex;
  align-items: center;
  gap: 0;
  background: #fff;
  border: 1px solid rgba(0,0,0,.15);
  padding: 4px 6px 4px 14px;
  border-radius: 40px;
  box-shadow: 0 2px 6px rgba(0,0,0,.06);
  transition: all 0.2s ease-in-out;
}

.site-search:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(91,186,250,0.25);
}

.site-search input {
  border: none;
  outline: none;
  width: 220px;
  font-size: 0.95rem;
  background: transparent;
  color: #333;
}

.site-search input::placeholder {
  color: #888;
}

.site-search button {
  border: none;
  background: var(--accent);
  color: #fff;
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  margin-left: 4px;
  transition: background 0.25s ease;
}

.site-search button:hover {
  background: #3a9edb;
}

/* ===== BOTÃO ENTRAR ===== */
.login-cta {
  text-decoration: none;
  background: var(--accent);
  color: #fff;
  padding: 8px 14px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  transition: filter .2s ease;
}

.login-cta:hover { filter: brightness(0.95); }

/* CTA Entrar */
.login-cta {
  text-decoration: none;
  background: var(--accent);
  color: #fff;
  padding: 8px 14px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}
.login-cta:hover { filter: brightness(0.95); }

/* ===== BOTÃO TOGGLE (MOBILE) ===== */
.toggle{
  display: none;                 /* escondido no desktop */
  background: transparent;
  border: 0;
  color: var(--header-font);     /* herda a cor do topo */
  font-size: 28px;               /* tamanho do ícone ☰ */
  line-height: 1;
  cursor: pointer;
  padding: 6px;                  /* dá um respiro */
}

@media (max-width: 980px) {
  .toggle{ display: inline-flex; align-items: center; justify-content: center; }
}

/* ===== NAVBAR ===== */
.mainnav {
  width: 100%;
  background: var(--nav-bg);
}
.mainnav .menu {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 4px;
  padding: 0;
  margin: 0;
  position: relative;
  flex-wrap: wrap;
}
.mainnav .menu > li {
  position: relative;
}
.mainnav .menu > li > a {
  display: inline-block;
  padding: 14px 14px;
  color: var(--nav-link);
  text-decoration: none;
  font-weight: 600;
  position: relative;
  transition: background .25s ease, color .25s ease;
}
/* underline suave on hover */
.mainnav .menu > li > a::after {
  content: "";
  position: absolute;
  left: 10px; right: 10px; bottom: 8px;
  height: 2px; background: rgba(255,255,255,.8);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.mainnav .menu > li > a:hover::after { transform: scaleX(1); }
.mainnav .menu > li > a:hover { background: var(--nav-link-hover-bg); }

/* Submenu (desktop hover) */
.mainnav .menu li.has-sub:hover > .submenu {
  display: block;
}
.submenu {
  display: none;
  position: absolute;
  top: 100%; left: 0;
  min-width: 220px;
  background: var(--nav-link-hover-bg);
  padding: 8px;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
  z-index: 50;
}
.submenu li { list-style: none; }
.submenu a {
  display: block;
  color: #fff;
  text-decoration: none;
  padding: 10px 12px;
  border-radius: 6px;
  transition: background .2s ease;
  white-space: nowrap;
}
.submenu a:hover { background: rgba(255,255,255,.12); }

/* ===== Responsivo ===== */
@media (max-width: 980px) {
  .topbar {
    grid-template-columns: 1fr auto 40px;
  }
  .site-search { display: none; } /* esconde busca no topo em telas menores */
  .mainnav .menu {
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 10px 12px;
  }
  .mainnav .menu.active { display: flex; }
  .mainnav .menu > li > a::after { display: none; } /* menos ruído no mobile */

  /* Submenu no mobile: abre por classe .open (JS) */
  .mainnav .menu li.has-sub .submenu {
    position: static;
    display: none;
    margin: 6px 0 10px;
    border-radius: 8px;
  }
  .mainnav .menu li.has-sub.open .submenu { display: block; }

  .brand img {
  height: 58px; /* Um pouco maior para destacar */
}
}