/* Cabeçalho institucional, compartilhado por todas as páginas. */
.site-header {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; justify-content: space-between; gap: 25px;
  height: 88px; padding: 0 var(--gutter);
  background: rgba(255,255,255,.96); box-shadow: 0 8px 30px rgba(9,31,45,.07);
  backdrop-filter: blur(14px);
}
.site-header .brand { display: flex; align-items: center; flex-shrink: 0; }
.site-header .brand-logo { display: block; width: 188px; max-height: 62px; height: auto; object-fit: contain; }
.site-header .menu-toggle { display: none; }
.site-header #nav {
  display: flex; align-items: center; gap: 0; color: #365263;
  font: 600 12px/1.5 'DM Sans', sans-serif; letter-spacing: .015em;
}
.site-header #nav > a, .site-header #nav > details > summary {
  display: block; padding: 7px 13px; color: inherit; white-space: nowrap;
  font: inherit; text-decoration: none;
}
.site-header #nav > :not(:first-child):not(.nav-contact) { border-left: 1px solid #e5ebef; }
.site-header #nav > a::after, .site-header #nav .nav-dropdown a::after { display: none; }
.site-header #nav > a:hover, .site-header #nav summary:hover,
.site-header #nav > a.is-current { color: #775522; }
.site-header #nav > .nav-contact {
  margin-left: 10px; padding: 9px 17px; border: 1px solid #102a3c; border-radius: 999px; color: #102a3c;
}
.site-header .nav-disclosure { position: relative; }
.site-header #nav > details > summary { display: flex; align-items: center; gap: 6px; cursor: pointer; list-style: none; }
.site-header summary::-webkit-details-marker { display: none; }
.site-header summary::after { content: '⌄'; line-height: 1; }
.site-header details[open] > summary::after { transform: rotate(180deg); }
.site-header .nav-dropdown {
  position: absolute; top: 100%; left: 0; right: auto;
  width: 226px; padding: 7px;
  border: 1px solid #e2e8eb; border-radius: 7px;
  background: #fff; box-shadow: 0 8px 24px rgba(9,31,45,.10);
}
.site-header #nav .nav-dropdown a {
  display: flex; align-items: center; min-height: 44px;
  padding: 10px 12px; border-radius: 4px;
  color: #17394b; font: inherit;
  text-decoration: none; white-space: normal;
  transition: background .18s, color .18s;
}
.site-header #nav .nav-dropdown a:hover,
.site-header #nav .nav-dropdown a:focus-visible {
  background: #f4f7f8; color: #102a3c;
}

.site-header :is(a,button,summary):focus-visible { outline: 2px solid #916426; outline-offset: 2px; }
@media (max-width:1100px) {
  .site-header { height: 82px; }
  .site-header .brand-logo { width: min(170px,54vw); }
  .site-header .menu-toggle {
    display: block; padding: 8px 13px; background: white; color: #102a3c;
    border: 1px solid #d6e0e6; border-radius: 6px; font: 600 14px/1.5 'DM Sans',sans-serif;
  }
  .site-header #nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column;
    align-items: stretch; max-height: calc(100dvh - 100px); overflow: auto;
    padding: 12px var(--gutter) 18px; background: white;
    box-shadow: 0 10px 25px #102a3c15; font-size: 15px;
  }
  .site-header #nav.open { display: flex; }
  .site-header #nav > :not(:first-child):not(.nav-contact) { border-left: 0; border-top: 1px solid #e5ebef; }
  .site-header #nav > a, .site-header #nav > details > summary { padding: 9px 0; }
  .site-header #nav > .nav-contact { align-self: flex-start; margin: 8px 0 0; }
  .site-header .nav-dropdown { position: static; width: 100%; padding: 5px; margin-bottom: 8px; box-shadow: none; border-top-width: 1px; border-radius: 8px; background: #f7f9fa; }
  .site-header #nav .nav-dropdown a { min-height: 44px; }
}
@media (max-width:800px) { .site-header { height: 78px; } }

