/* City Foodsters site header: the single source of truth for every page.
   Loaded by _partials/header.html; pages must not carry their own header rules.
   Modifier: .site-header--solid (set per page in build-partials.js) gives a dark translucent bar at the top of the page
   instead of a transparent one. Both become the parchment bar once scrolled (.is-scrolled). */
:root { --header-height: 64px; }

.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: var(--header-height);
  display: flex; align-items: center;
  padding: 0 clamp(24px, 4vw, 64px);
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.site-header--solid {
  background: rgba(28, 25, 21, 0.85);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-bottom-color: rgba(196, 169, 125, 0.15);
}
.site-header.is-scrolled {
  background: rgba(245, 241, 234, 0.96);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 rgba(196, 169, 125, 0.25);
  border-bottom-color: transparent;
}
.header-inner { display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: var(--content-max, 1280px); margin: 0 auto; }

.site-logo { display: inline-flex; align-items: center; }
.site-logo svg { height: 36px; width: auto; }
.site-logo svg text { fill: #F5F1EA; transition: fill 0.4s ease; }
.site-logo svg line { stroke: #C4A97D; }
.site-header.is-scrolled .site-logo svg text { fill: #1C1915; }

.main-nav { display: flex; align-items: center; gap: 40px; }
.main-nav a {
  font-family: 'Switzer', sans-serif; font-weight: 400; font-size: 13px; letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(245, 241, 234, 0.8); text-decoration: none; position: relative; transition: color 0.3s ease;
}
.main-nav a::after { content: ''; position: absolute; left: 0; bottom: -4px; width: 0; height: 1px; background: #C4A97D; transition: width 0.3s ease; }
.main-nav a:hover, .main-nav a.active { color: #FFFFFF; }
.main-nav a:hover::after, .main-nav a.active::after { width: 100%; }
.site-header.is-scrolled .main-nav a { color: #3D3429; }
.site-header.is-scrolled .main-nav a:hover, .site-header.is-scrolled .main-nav a.active { color: #1C1915; }

.menu-toggle { display: none; }

@media (max-width: 768px) {
  .menu-toggle {
    display: block; position: relative; z-index: 10000;
    background: none; border: 0; cursor: pointer;
    padding: 14px 10px; min-height: 44px; min-width: 44px; box-sizing: border-box;
  }
  .menu-toggle span { display: block; width: 24px; height: 1.5px; margin: 6px 0; background: #F5F1EA; transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s ease; }
  .site-header.is-scrolled .menu-toggle span { background: #1C1915; }
  .main-nav {
    display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    width: 100vw; height: 100vh; height: 100dvh;
    background: #1C1915; flex-direction: column; justify-content: center; align-items: center; gap: 40px; z-index: 9999;
  }
  .main-nav.is-open { display: flex; }
  .main-nav.is-open a, .site-header.is-scrolled .main-nav.is-open a {
    color: #FFFFFF; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: 28px; letter-spacing: 0.12em; text-transform: uppercase;
  }
  .main-nav.is-open a::after { display: none; }
  .main-nav.is-open a:hover, .main-nav.is-open a.active, .site-header.is-scrolled .main-nav.is-open a:hover { color: #C4A97D; }
  /* the hamburger becomes an X, always parchment on the dark overlay, whatever the header state */
  .site-header .menu-toggle[aria-expanded="true"] span, .site-header.is-scrolled .menu-toggle[aria-expanded="true"] span { background: #F5F1EA; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
  body.nav-open { overflow: hidden; }
}
