/* ---------------------------------------------------------
   Top bar + Header/Nav
   --------------------------------------------------------- */
.topbar {
  background: var(--color-charcoal);
  color: var(--color-sand);
  font-size: var(--text-xs);
  padding: var(--space-2) 0;
}
.topbar .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.topbar-contact { display: flex; gap: var(--space-5); flex-wrap: wrap; }
.topbar-contact a { display: inline-flex; align-items: center; gap: 6px; }
.topbar-social a { margin-left: 14px; font-size: 0.95rem; }

.site-header {
  background: var(--color-primary-900);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: var(--shadow-sm);
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--color-white);
}
.brand-mark {
  width: 42px; height: 42px;
  background: var(--color-accent-500);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-primary-900);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  flex-shrink: 0;
}
.brand-text { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: 0.5px; }
.brand-text span { color: var(--color-accent-500); }

.main-nav ul { display: flex; gap: 6px; align-items: center; }
.main-nav a {
  color: var(--color-sand);
  padding: 10px var(--space-4);
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 0.92rem;
  transition: background 0.15s ease, color 0.15s ease;
}
.main-nav a:hover, .main-nav a.active { background: rgba(255,255,255,0.1); color: var(--color-accent-500); }
.main-nav .btn { margin-left: var(--space-2); }

.nav-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--color-white);
  font-size: 1.5rem;
  min-width: 44px;
  min-height: 44px;
}

@media (max-width: 900px) {
  .nav-toggle { display: flex; align-items: center; justify-content: center; }
  .main-nav {
    position: fixed;
    top: var(--header-height); left: 0; right: 0; bottom: 0;
    background: var(--color-primary-900);
    transform: translateX(100%);
    transition: transform 0.25s ease;
    overflow-y: auto;
    z-index: 99;
  }
  .main-nav.open { transform: translateX(0); }
  .main-nav ul { flex-direction: column; align-items: stretch; padding: var(--space-5); gap: 4px; }
  .main-nav a { display: block; padding: var(--space-4); min-height: 44px; display: flex; align-items: center; }
  .main-nav .btn { margin: var(--space-3) var(--space-4) 0; min-height: 48px; }
  .topbar-social { display: none; }
  body.nav-open { overflow: hidden; }
}

@media (max-width: 560px) {
  .topbar-contact { font-size: 0.78rem; gap: var(--space-3); }
  .topbar .container { justify-content: center; text-align: center; }
}
