.site-header {
  position: absolute;
  z-index: 80;
  top: 0;
  left: 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  width: 100%;
  min-height: 100px;
  padding: 14px 32px;
  color: var(--white);
  transition: background 180ms ease, min-height 180ms ease, box-shadow 180ms ease;
}

.site-header.is-scrolled {
  position: fixed;
  min-height: 80px;
  color: var(--white);
  background: rgba(25, 32, 25, .96);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .18);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

body.menu-open { overflow: hidden; }
body.menu-open .site-header.is-scrolled { background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.brand { z-index: 2; display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.brand img { width: 70px; height: 70px; object-fit: contain; }
.brand-words { display: grid; line-height: 1; }
.brand-words strong { font-family: var(--serif); font-size: 1.3rem; font-weight: 400; }
.brand-words span { margin-top: 3px; font-size: .58rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; justify-content: flex-end; gap: 34px; }
.nav-links { display: flex; align-items: center; gap: 26px; }
.nav-links a { position: relative; padding: 12px 0; font-size: .72rem; font-weight: 700; letter-spacing: .085em; text-decoration: none; text-transform: uppercase; }
.nav-links a::after { position: absolute; right: 0; bottom: 6px; left: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 180ms ease; content: ''; }
.nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); transform-origin: left; }
.partner-login-link { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-height: 38px; padding: 0 15px; border: 1px solid rgba(255, 255, 255, .62); border-radius: 99px; font-size: .66rem; font-weight: 750; letter-spacing: .08em; line-height: 1; text-decoration: none; text-transform: uppercase; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.partner-login-link:hover { color: var(--forest); background: var(--white); transform: translateY(-1px); }
.header-tools { z-index: 3; display: flex; align-items: center; gap: 14px; }
.menu-toggle { z-index: 3; display: none; align-items: center; gap: 12px; margin-left: auto; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; }
.menu-label { font-size: .7rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.menu-lines { display: grid; gap: 7px; width: 26px; }
.menu-lines i { width: 100%; height: 1px; background: currentColor; transition: transform 180ms ease; }

@media (max-width: 1100px) {
  .site-header { grid-template-columns: auto 1fr auto; gap: 12px; min-height: 84px; padding: 10px 20px; }
  .brand img { width: 62px; height: 62px; }
  .brand-words { display: none; }
  .header-tools { grid-column: 3; gap: 12px; }
  .menu-toggle { display: flex; }
  .site-nav { position: fixed; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; width: 100vw; height: 100dvh; min-height: 100svh; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 120px 9vw 60px; color: var(--white); background: var(--forest); opacity: 0; pointer-events: none; transform: translateY(-20px); transition: opacity 180ms ease, transform 180ms ease; }
  .site-nav.is-open { opacity: 1; pointer-events: auto; transform: none; }
  .nav-links { flex-direction: column; align-items: flex-start; gap: 0; }
  .nav-links a { font-family: var(--serif); font-size: clamp(2.2rem, 7vw, 4.8rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.2; text-transform: none; }
  .partner-login-link { min-height: 46px; margin-top: 28px; padding-inline: 20px; border-color: rgba(255, 255, 255, .72); }
  .menu-toggle[aria-expanded='true'] .menu-lines i:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded='true'] .menu-lines i:last-child { transform: translateY(-4px) rotate(-45deg); }
  .listing-hero { padding-top: 160px; }
  .event-detail-overlay { padding-top: 180px; }
}

@media (max-width: 700px) {
  .listing-hero { padding-top: 150px; }
  .event-detail-overlay { padding-top: 170px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header, .site-nav, .nav-links a::after, .partner-login-link, .menu-lines i { transition: none !important; }
}
