/* ===== DAAM SHARED SITE HEADER =====
   Single source of truth for index.html, inventory.html, calendar.html.
*/
header{
  position:sticky!important;
  top:0!important;
  z-index:120!important;
  display:grid!important;
  grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr)!important;
  align-items:center!important;
  gap:28px!important;
  min-height:82px!important;
  padding:14px 5vw!important;
  border-bottom:1px solid var(--line)!important;
  background:var(--header-bg)!important;
  backdrop-filter:blur(14px);
}
.brand-mark{
  display:inline-flex!important;
  align-items:center!important;
  width:max-content!important;
  color:inherit!important;
  text-decoration:none!important;
}
.brand-text{
  font-family:'Oswald',sans-serif!important;
  font-size:18px!important;
  line-height:.95!important;
  font-weight:500!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
  color:var(--paper)!important;
}
.brand-text span{
  display:block!important;
  margin-top:5px!important;
  color:var(--brass)!important;
  font-family:'JetBrains Mono',monospace!important;
  font-size:7px!important;
  line-height:1!important;
  letter-spacing:.18em!important;
}

.desktop-nav{display:block!important}
.desktop-nav ul{
  display:flex!important;
  align-items:center!important;
  gap:34px!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
}
.desktop-nav a{
  position:relative!important;
  display:inline-flex!important;
  padding:9px 0!important;
  color:var(--paper-dim)!important;
  font-family:'Oswald',sans-serif!important;
  font-size:12px!important;
  font-weight:500!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  transition:color .16s ease!important;
}
.desktop-nav a:hover,
.desktop-nav a:focus-visible,
.desktop-nav a.active,
.desktop-nav a.is-active{
  color:var(--paper)!important;
}
.desktop-nav a::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:100%!important;
  bottom:2px!important;
  height:1px!important;
  background:var(--brass)!important;
  transition:right .18s ease!important;
}
.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after,
.desktop-nav a.active::after,
.desktop-nav a.is-active::after{
  right:0!important;
}

.nav-cta{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
}
.phone-link,
.phone-link:link,
.phone-link:visited{
  display:block!important;
  color:var(--brass-bright)!important;
  -webkit-text-fill-color:var(--brass-bright)!important;
  font-family:'JetBrains Mono',monospace!important;
  font-size:10px!important;
  letter-spacing:.045em!important;
  white-space:nowrap!important;
  text-decoration:none!important;
}
.phone-link:hover,
.phone-link:focus-visible{
  color:var(--brass)!important;
  -webkit-text-fill-color:var(--brass)!important;
  text-decoration:none!important;
}
.header-directions,
header a.header-directions.btn,
header a.header-directions.btn.btn-solid{
  min-height:40px!important;
  padding:0 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:var(--brass)!important;
  border:1px solid var(--brass)!important;
  color:#171B1C!important;
  -webkit-text-fill-color:#171B1C!important;
  box-shadow:none!important;
  font-family:'Oswald',sans-serif!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.075em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
.header-directions:hover,
.header-directions:focus-visible{
  background:var(--brass-bright)!important;
  border-color:var(--brass-bright)!important;
  color:#171B1C!important;
  -webkit-text-fill-color:#171B1C!important;
}
.theme-toggle,
.menu-toggle{
  flex:0 0 auto!important;
}

/* Complete shared theme-toggle styling */
.theme-toggle{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  min-height:36px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--paper-dim)!important;
  -webkit-text-fill-color:currentColor!important;
  box-shadow:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  cursor:pointer!important;
  transition:color .25s ease!important;
}
.theme-toggle:hover,
.theme-toggle:focus-visible{
  background:transparent!important;
  border:0!important;
  color:var(--brass-bright)!important;
  -webkit-text-fill-color:currentColor!important;
  box-shadow:none!important;
}
.theme-toggle:focus-visible{
  outline:2px solid var(--brass-bright)!important;
  outline-offset:2px!important;
}
.theme-toggle svg{
  position:absolute!important;
  width:17px!important;
  height:17px!important;
  pointer-events:none!important;
  transition:opacity .25s ease,transform .35s ease!important;
}
.theme-toggle .icon-sun{
  opacity:0!important;
  transform:rotate(-40deg) scale(.7)!important;
}
.theme-toggle .icon-moon{
  opacity:1!important;
  transform:rotate(0) scale(1)!important;
}
[data-theme="light"] .theme-toggle .icon-sun{
  opacity:1!important;
  transform:rotate(0) scale(1)!important;
}
[data-theme="light"] .theme-toggle .icon-moon{
  opacity:0!important;
  transform:rotate(40deg) scale(.7)!important;
}
.menu-toggle{
  display:none!important;
  width:38px!important;
  height:38px!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--paper)!important;
}

.mobile-nav-panel{
  display:none;
  position:fixed!important;
  inset:0 0 auto 0!important;
  z-index:200!important;
  padding:104px 5vw 32px!important;
  background:var(--graphite-2)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:0 30px 60px -20px var(--shadow)!important;
  transform:translateY(-12px)!important;
  opacity:0!important;
  pointer-events:none!important;
  transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .3s ease!important;
}
.mobile-nav-panel.open{
  transform:translateY(0)!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.mobile-nav-links{
  display:flex!important;
  flex-direction:column!important;
  border-top:1px solid var(--line)!important;
}
.mobile-nav-links a{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-height:68px!important;
  padding:18px 4px!important;
  border-bottom:1px solid var(--line)!important;
  background:transparent!important;
  color:var(--paper)!important;
  font-family:'Oswald',sans-serif!important;
  font-size:22px!important;
  font-weight:500!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.mobile-nav-links a::before,
.mobile-nav-links a::after{
  content:none!important;
  display:none!important;
}
.mobile-nav-links a:hover,
.mobile-nav-links a:focus-visible,
.mobile-nav-links a.active,
.mobile-nav-links a.is-active{
  background:transparent!important;
  border-bottom-color:var(--line)!important;
  color:var(--brass-bright)!important;
  box-shadow:none!important;
}
.mobile-nav-footer{
  display:flex!important;
  flex-direction:column!important;
  gap:14px!important;
  margin-top:28px!important;
}
.mobile-nav-phone,
.mobile-nav-phone:link,
.mobile-nav-phone:visited{
  display:block!important;
  padding:4px!important;
  text-align:center!important;
  color:var(--brass-bright)!important;
  -webkit-text-fill-color:var(--brass-bright)!important;
  font-size:14px!important;
  letter-spacing:.08em!important;
  text-decoration:none!important;
}
.mobile-nav-directions{
  width:100%!important;
  min-height:54px!important;
  justify-content:center!important;
}
.mobile-nav-scrim{
  display:none;
  position:fixed!important;
  inset:0!important;
  z-index:150!important;
  background:rgba(0,0,0,.5)!important;
  opacity:0!important;
  pointer-events:none!important;
  transition:opacity .3s ease!important;
}
.mobile-nav-scrim.open{
  opacity:1!important;
  pointer-events:auto!important;
}

@media(max-width:920px){
  header{
    grid-template-columns:1fr auto!important;
    gap:12px!important;
    min-height:78px!important;
    padding:13px 5vw!important;
  }
  .desktop-nav,
  .phone-link,
  .header-directions{
    display:none!important;
  }
  .nav-cta{gap:8px!important}
  .menu-toggle{display:inline-flex!important}
  .mobile-nav-panel,
  .mobile-nav-scrim{display:block}
}
@media(max-width:520px){
  header{
    min-height:72px!important;
    padding-left:5vw!important;
    padding-right:5vw!important;
  }
  .brand-text{font-size:16px!important}
  .brand-text span{font-size:6px!important}
  .mobile-nav-panel{padding-top:92px!important}
}

/* ===== PUBLIC HEADER RESPONSIVE CROWDING FIX ===== */
/* Collapse to the mobile menu before the desktop nav starts feeling cramped. */
@media(max-width:1180px){
  header{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:14px!important;
    min-height:78px!important;
    padding:13px 5vw!important;
  }

  .brand-mark{
    min-width:0!important;
    max-width:100%!important;
  }

  .brand-text{
    min-width:0!important;
    white-space:nowrap!important;
  }

  .desktop-nav,
  .phone-link,
  .header-directions{
    display:none!important;
  }

  .nav-cta{
    justify-self:end!important;
    min-width:0!important;
    gap:8px!important;
  }

  .theme-toggle{
    flex:0 0 36px!important;
  }

  .menu-toggle{
    display:inline-flex!important;
    flex:0 0 38px!important;
  }

  .mobile-nav-panel,
  .mobile-nav-scrim{
    display:block!important;
  }
}

@media(max-width:520px){
  header{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
    min-height:72px!important;
    padding:11px 4vw!important;
  }

  .brand-text{
    font-size:15px!important;
    letter-spacing:.035em!important;
  }

  .brand-text span{
    margin-top:4px!important;
    font-size:6px!important;
    letter-spacing:.14em!important;
  }

  .nav-cta{
    gap:4px!important;
  }

  .theme-toggle{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    flex-basis:34px!important;
  }

  .menu-toggle{
    width:36px!important;
    height:36px!important;
    flex-basis:36px!important;
  }

  .mobile-nav-panel{
    padding-top:88px!important;
  }
}

/* ===== PUBLIC HEADER MOBILE HARD FIX ===== */
@media(max-width:1180px){
  body header{
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:10px!important;
    min-height:76px!important;
    padding:12px 4vw!important;
  }

  body header .brand-mark{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }

  body header .brand-text{
    min-width:0!important;
    max-width:100%!important;
    white-space:nowrap!important;
  }

  /* These belong in the mobile drawer, never in the top bar. */
  body header .desktop-nav,
  body header .phone-link,
  body header a.phone-link,
  body header .header-directions,
  body header a.header-directions,
  body header a.header-directions.btn,
  body header a.header-directions.btn.btn-solid{
    display:none!important;
  }

  body header .nav-cta{
    justify-self:end!important;
    display:flex!important;
    align-items:center!important;
    gap:4px!important;
    min-width:auto!important;
    width:auto!important;
  }

  body header .theme-toggle{
    display:inline-flex!important;
    flex:0 0 34px!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
  }

  body header .menu-toggle{
    display:inline-flex!important;
    flex:0 0 38px!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
  }

  .mobile-nav-panel,
  .mobile-nav-scrim{
    display:block!important;
  }

  .mobile-nav-panel{
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    padding:92px 5vw 28px!important;
  }

  .mobile-nav-links{
    width:100%!important;
  }

  .mobile-nav-links a{
    width:100%!important;
  }

  .mobile-nav-footer{
    width:100%!important;
    gap:16px!important;
    margin-top:24px!important;
  }

  .mobile-nav-panel .mobile-nav-phone,
  .mobile-nav-panel a.mobile-nav-phone{
    display:block!important;
    width:100%!important;
    padding:8px 4px!important;
    color:var(--brass-bright)!important;
    -webkit-text-fill-color:var(--brass-bright)!important;
    text-align:center!important;
    text-decoration:none!important;
  }

  .mobile-nav-panel .mobile-nav-directions,
  .mobile-nav-panel a.mobile-nav-directions,
  .mobile-nav-panel a.mobile-nav-directions.btn,
  .mobile-nav-panel a.mobile-nav-directions.btn.btn-solid{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:54px!important;
    padding:0 18px!important;
    border:1px solid var(--brass)!important;
    border-radius:0!important;
    background:var(--brass)!important;
    color:#171b1c!important;
    -webkit-text-fill-color:#171b1c!important;
    box-shadow:none!important;
    font-family:'Oswald',sans-serif!important;
    font-size:13px!important;
    font-weight:600!important;
    line-height:1!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
  }
}

@media(max-width:520px){
  body header{
    min-height:70px!important;
    padding:10px 4vw!important;
  }

  body header .brand-text{
    font-size:15px!important;
    letter-spacing:.03em!important;
  }

  body header .brand-text span{
    margin-top:4px!important;
    font-size:6px!important;
    letter-spacing:.13em!important;
  }

  .mobile-nav-panel{
    padding-top:86px!important;
  }

  .mobile-nav-links a{
    min-height:62px!important;
    padding:16px 4px!important;
    font-size:20px!important;
  }
}

/* ===== FIXED PUBLIC HEADER ===== */
header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
}

/* Fixed header no longer occupies document flow. */
body{
  padding-top:82px!important;
}

@media(max-width:1180px){
  body{
    padding-top:76px!important;
  }
}

@media(max-width:520px){
  body{
    padding-top:70px!important;
  }
}

/* ===== LIGHT MODE HEADER CTA TEXT ===== */
:root[data-theme="light"] .header-directions,
:root[data-theme="light"] header a.header-directions.btn,
:root[data-theme="light"] header a.header-directions.btn.btn-solid,
:root[data-theme="light"] .header-directions:hover,
:root[data-theme="light"] .header-directions:focus-visible{
  color:#EDE8DF!important;
  -webkit-text-fill-color:#EDE8DF!important;
}

/* ===== LIGHT MODE MENU DIRECTIONS TEXT ===== */
:root[data-theme="light"] .mobile-nav-panel .mobile-nav-directions,
:root[data-theme="light"] .mobile-nav-panel a.mobile-nav-directions,
:root[data-theme="light"] .mobile-nav-panel a.mobile-nav-directions.btn,
:root[data-theme="light"] .mobile-nav-panel a.mobile-nav-directions.btn.btn-solid,
:root[data-theme="light"] .mobile-nav-panel .mobile-nav-directions:hover,
:root[data-theme="light"] .mobile-nav-panel .mobile-nav-directions:focus-visible{
  color:#EDE8DF!important;
  -webkit-text-fill-color:#EDE8DF!important;
}
