/* Header sits over the slideshow without taking space from the image. */
.site-header {
  position: absolute;
  inset: 0 0 auto;
  height: 96px;
  padding: 0 7vw;
  color: #fff;
  background: linear-gradient(180deg, rgba(3,14,24,.85), rgba(3,14,24,.35) 70%, transparent);
  z-index: 20;
}
.site-header .brand b { color: #d4dde3; }
.site-header .brand-mark { border-color: rgba(255,255,255,.7); }
.site-header nav { gap: 30px; }
.site-header nav a { padding: 12px 0; }
.site-header nav .nav-contact {
  padding: 10px 20px;
  border-color: rgba(255,255,255,.55);
  border-radius: 4px;
  background: rgba(8,24,35,.25);
}
.site-header a:focus-visible, .site-header button:focus-visible {
  outline: 2px solid #e0b68b;
  outline-offset: 5px;
}
.hero { min-height: 100svh; padding-top: 160px; padding-bottom: 70px; }
@media (max-width: 900px) {
  .site-header { height: 82px; padding: 0 6vw; }
  .site-header .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 68px;
    min-height: 44px;
    padding: 8px 12px;
    color: #fff;
    font: 500 14px "DM Sans", sans-serif;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 5px;
    background: rgba(8,24,35,.3);
    cursor: pointer;
  }
  .site-header nav {
    display: none;
    position: absolute;
    top: 74px;
    left: auto;
    right: 6vw;
    width: min(260px, 88vw);
    max-height: calc(100svh - 90px);
    overflow-y: auto;
    padding: 12px;
    gap: 2px;
    align-items: stretch;
    color: #fff;
    background: rgba(8,24,35,.96);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 10px;
    box-shadow: 0 18px 40px rgba(0,0,0,.25);
    backdrop-filter: blur(16px);
  }
  .site-header nav.open { display: flex; }
  .site-header nav a { display: block; padding: 11px 14px; border-radius: 4px; }
  .site-header nav a:not(.nav-contact)::after { display: none; }
  .site-header nav a:hover { background: rgba(255,255,255,.1); }
  .site-header nav .nav-contact { margin-top: 5px; padding: 11px 14px; border-color: rgba(199,134,72,.65); }
  .hero { padding-top: 130px; }
}
@media (max-width: 560px) {
  .site-header { height: 76px; padding: 0 5vw; }
  .site-header .brand { gap: 9px; font-size: 10px; letter-spacing: .1em; }
  .site-header .brand-mark { width: 28px; height: 28px; flex-shrink: 0; }
  .site-header nav { top: 68px; right: 5vw; }
  .hero { min-height: 100svh; padding: 120px 6vw 40px; }
}

/* Brand emblem fits both wide desktop navigation and small mobile screens. */
.brand-emblem{display:block;width:54px;height:54px;object-fit:contain;flex-shrink:0}.brand-name{white-space:nowrap}.site-header .brand{gap:12px}.footer-brand .brand-emblem{width:50px;height:50px}@media(max-width:560px){.site-header .brand-emblem{width:43px;height:43px}.site-header .brand-name{font-size:10px;letter-spacing:.08em}.footer-brand .brand-emblem{width:44px;height:44px}}
