.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--cream-050);
  border-bottom: 1px solid var(--line);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 7px;
  padding-bottom: 7px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
}

.brand-logo {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
  object-fit: cover;
  border: 2px solid var(--gold-500);
}

.brand-text-group .brand-name {
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--green-800);
  line-height: 1;
  white-space: nowrap;
}

.brand-tagline {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 0.68rem;
  color: var(--ink-500);
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}
.brand-tagline svg { width: 12px; height: 12px; stroke: var(--gold-500); }

.main-nav {
  display: flex;
  align-items: center;
  gap: 25px;
}

.main-nav a {
  font-family: var(--font-nav);
  font-size: 0.96rem;
  color: var(--green-800);
  position: relative;
  padding-bottom: 4px;
  transition: color .15s ease;
}

.main-nav a.active {
  border-bottom: 2px solid var(--gold-500);
}

.main-nav a:hover { color: var(--gold-600); }

.header-cta { flex-shrink: 0; }
.header-cta.btn { padding: 9px 14px; font-size: 0.86rem; }

.nav-toggle {
  display: none;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  color: var(--green-800);
}
.nav-toggle svg { width: 26px; height: 26px; }

@media (max-width: 1080px) {
  .main-nav {
    position: fixed;
    top: 0; right: 0;
    height: 100vh;
    width: min(78vw, 320px);
    background: var(--cream-050);
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: var(--space-3);
    padding: 90px var(--space-4) var(--space-4);
    transform: translateX(100%);
    transition: transform .25s ease;
    box-shadow: -8px 0 30px rgba(0,0,0,0.12);
  }
  .main-nav.open { transform: translateX(0); }
  .nav-toggle { display: flex; }
  .header-cta.desktop-only { display: none; }
}

@media (max-width: 560px) {
  .brand-name { font-size: 1rem !important; }
  .brand-logo { width: 38px; height: 38px; }
  .brand-tagline { display: none; }
}
