/* The homepage header, shared without changing its typography or geometry.
   Explicit defaults prevent the store's Lamplight body styles leaking in. */
.header.site-header {
  position: absolute; top: 8%; left: 0; right: 0; z-index: 10;
  padding: 20px 0; text-align: center; background-color: transparent;
  font: 400 16px/1.6 "Source Sans Pro", sans-serif;
}
.site-header *, .site-header *::before, .site-header *::after { box-sizing: content-box; }
.site-header .logo {
  display: block; font-size: 28px; letter-spacing: 8px;
  text-transform: uppercase; margin: 0 0 25px; font-weight: 300;
  font-family: "Montserrat", sans-serif; line-height: 1.6;
  color: #fff; text-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.site-header .logo-text { display: inline-block; }
.site-header .logo-mobile { display: none; }
.site-header .header-menu { position: relative; width: fit-content; margin: 0 auto; }
.site-header .nav {
  display: flex; justify-content: center; align-items: center;
  flex-wrap: wrap; margin: 0; padding: 0; gap: 0;
}
.site-header .nav-link {
  margin: 0 15px; padding: 0; text-decoration: none; text-transform: uppercase;
  font: 400 13px/1.6 "Source Sans Pro", sans-serif; letter-spacing: 2px; color: #fff;
  transition: all .3s ease; text-shadow: 0 1px 3px rgba(0,0,0,.3);
}
.site-header .nav-link:hover { color: rgba(255,255,255,.7); }
.site-header .nav-link--members {
  color: #fff; border: 1px solid #fff; background-color: rgba(255,255,255,.15);
  padding: 5px 14px; border-radius: 20px; vertical-align: middle; line-height: 1;
}
.site-header .nav-link--members:hover {
  color: #fff; background-color: rgba(255,255,255,.28); border-color: #fff;
}
.site-header .mobile-menu-toggle {
  display: none; background: none; border: none; font-size: 24px;
  color: #fff; cursor: pointer; margin: 0 auto 20px; padding: 1px 6px;
}
/* The store adds only an opaque veil, fixed positioning and an adjacent cart.
   Cart is outside the menu's layout, so it cannot shift or stretch the links. */
body.store-page { --nav-h: calc(max(8vh, 48px) + 134.8px); padding-top: var(--nav-h); }
.store-page .header.site-header {
  position: fixed; top: 0; z-index: 120;
  padding-top: calc(max(8vh, 48px) + 20px);
  background: linear-gradient(rgba(13,12,11,.98), rgba(13,12,11,.94));
}
.site-header .cart-link {
  position: absolute; left: 100%; top: 50%; transform: translateY(-50%);
  white-space: nowrap; margin-left: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  box-sizing: border-box; width: 44px; height: 44px; padding: 0;
  border: 0; background: transparent; color: #fff;
}
.site-header .cart-icon { flex: none; }
.site-header .cart-badge { position: absolute; top: 0; right: -4px; }
@media (min-width: 769px) and (max-width: 1000px) {
  .store-page .header.site-header { padding-bottom: 64px; }
  body.store-page { --nav-h: calc(max(8vh, 48px) + 178.8px); }
  .site-header .cart-link { left: auto; right: 0; top: calc(100% + 10px); transform: none; }
}
@media (max-width: 768px) {
  .header.site-header { top: 0; padding-top: 20px; }
  .site-header .logo {
    font-size: 20px; letter-spacing: 3px; margin-bottom: 15px;
    display: inline-flex; align-items: center; gap: 15px;
  }
  .site-header .logo-text { display: none; }
  .site-header .logo-mobile { display: inline-block; white-space: nowrap; font-size: 26px; }
  .site-header .mobile-menu-toggle { display: inline-block; margin: 0; vertical-align: middle; }
  .site-header .header-menu { width: auto; margin: 0; }
  .site-header .nav {
    display: none; flex-direction: column; background-color: rgba(0,0,0,.8);
    padding: 15px; border-radius: 4px; margin: 5px 20px 0;
  }
  .site-header .nav.active, body.nav-open .site-header .nav { display: flex; }
  .site-header .nav-link {
    margin: 8px 0; font-size: 12px; padding: 10px;
    border-bottom: 1px solid rgba(255,255,255,.2); width: 100%;
  }
  body.store-page { --nav-h: 140.6px; }
  .store-page .header.site-header { padding-top: 20px; padding-bottom: 64px; }
  .site-header .cart-link { left: auto; right: 20px; top: calc(100% + 4px); transform: none; }
  .store-page .header.site-header { max-height: calc(100dvh - 84px); overflow-y: auto; }
}
@media (max-width: 480px) {
  .header.site-header, .store-page .header.site-header { top: 0; padding-top: 15px; }
  .site-header .logo-mobile { font-size: 20px; }
  .site-header .logo { gap: 10px; }
  body.store-page { --nav-h: 126px; }
}
/* Store-only mobile controls share one row; desktop menu geometry is unchanged. */
@media (max-width: 768px) {
  body.store-page { --nav-h: 84px; }
  .store-page .header.site-header { padding-bottom: 20px; }
  .store-page .site-header .logo { display: inline-flex; justify-content: center; margin: 0 auto; gap: 8px; }
  .store-page .site-header .logo-mobile { font-size: clamp(16px, 4.5vw, 26px); }
  .store-page .site-header .mobile-menu-toggle { box-sizing: border-box; width: 44px; height: 44px; padding: 0; flex: none; }
  .store-page .site-header .header-menu { position: static; }
  .store-page .site-header .cart-link { top: 20px; right: 12px; left: auto; margin: 0; transform: none; }
}
@media (max-width: 480px) {
  body.store-page { --nav-h: 79px; }
  .store-page .site-header .cart-link { top: 15px; }
}
@media (max-width: 380px) {
  .store-page .site-header .logo-mobile { font-size: 14px; letter-spacing: 1px; }
}
