/* Grand Lake Living shared navigation — intentionally isolated from page content. */
header.gll-site-header {
  position: sticky !important;
  z-index: 500 !important;
  top: 0 !important;
  width: 100% !important;
  padding: 0 clamp(1rem, 3vw, 2.75rem) !important;
  background: #fbfaf7 !important;
  color: #193b52 !important;
  border-bottom: 1px solid #d9ddd8 !important;
  box-shadow: 0 3px 12px rgba(25, 59, 82, 0.07) !important;
}

header.gll-site-header > nav.gll-primary {
  display: flex !important;
  width: 100% !important;
  max-width: 1360px !important;
  min-height: 76px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(1rem, 2.5vw, 2.5rem) !important;
}

header.gll-site-header .gll-brand {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  line-height: 0 !important;
}

header.gll-site-header .gll-brand img {
  display: block !important;
  width: auto !important;
  height: 40px !important;
  max-width: min(205px, 28vw) !important;
  object-fit: contain !important;
}

header.gll-site-header .gll-menu-toggle {
  display: none;
}

header.gll-site-header .gll-menu-toggle[hidden] {
  display: none !important;
}

header.gll-site-header .gll-primary-links {
  display: flex !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(0.05rem, 0.45vw, 0.5rem) !important;
  min-width: 0 !important;
}

header.gll-site-header .gll-primary-links > a,
header.gll-site-header .gll-primary-links > details > summary {
  display: inline-flex !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.48rem !important;
  padding: 0.55rem clamp(0.55rem, 1vw, 0.9rem) !important;
  border: 0 !important;
  border-radius: 3px !important;
  background: transparent !important;
  color: #193b52 !important;
  font-family: inherit !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.005em !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  list-style: none !important;
  transition: background-color 150ms ease, color 150ms ease !important;
}

header.gll-site-header .gll-primary-links > details > summary::-webkit-details-marker {
  display: none !important;
}

header.gll-site-header .gll-primary-links > details > summary::after {
  width: 0.42rem !important;
  height: 0.42rem !important;
  border-right: 1.5px solid currentColor !important;
  border-bottom: 1.5px solid currentColor !important;
  content: "" !important;
  transform: translateY(-0.12rem) rotate(45deg) !important;
  transition: transform 150ms ease !important;
}

header.gll-site-header .gll-primary-links > details[open] > summary::after {
  transform: translateY(0.1rem) rotate(225deg) !important;
}

header.gll-site-header .gll-primary-links > a:hover,
header.gll-site-header .gll-primary-links > details > summary:hover,
header.gll-site-header .gll-primary-links > details[open] > summary {
  color: #1d6287 !important;
  background: #e9efed !important;
}

header.gll-site-header .gll-primary-links > a:last-child {
  margin-left: 0.2rem !important;
  color: #fff !important;
  background: #9d5200 !important;
}

header.gll-site-header .gll-primary-links > a:last-child:hover {
  background: #7e4100 !important;
}

header.gll-site-header .gll-primary-links > details {
  position: relative !important;
  flex: 0 0 auto !important;
}

header.gll-site-header .gll-nav-panel {
  position: absolute !important;
  z-index: 510 !important;
  top: calc(100% + 0.45rem) !important;
  left: 0 !important;
  display: flex !important;
  width: max-content !important;
  min-width: 220px !important;
  max-width: min(590px, calc(100vw - 2rem)) !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0.55rem !important;
  border: 1px solid #d9ddd8 !important;
  border-top: 3px solid #f4a024 !important;
  background: #fbfaf7 !important;
  box-shadow: 0 12px 28px rgba(25, 59, 82, 0.14) !important;
}

header.gll-site-header .gll-primary-links > details:not([open]) > .gll-nav-panel,
header.gll-site-header .gll-primary-links > details:nth-child(2):not([open]) > .gll-nav-panel {
  display: none !important;
}

header.gll-site-header .gll-nav-section {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

header.gll-site-header .gll-nav-heading {
  margin: 0 !important;
  padding: 0.65rem 0.8rem 0.35rem !important;
  color: #8f4c12 !important;
  font-family: inherit !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

header.gll-site-header .gll-nav-link {
  display: block !important;
  min-height: 40px !important;
  padding: 0.6rem 0.8rem !important;
  border-left: 2px solid transparent !important;
  color: #193b52 !important;
  font-family: inherit !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  white-space: normal !important;
}

header.gll-site-header .gll-nav-link:hover {
  border-left-color: #f4a024 !important;
  background: #f1f3ef !important;
  color: #1d6287 !important;
}

header.gll-site-header .gll-nav-link:focus-visible,
header.gll-site-header .gll-primary-links > a:focus-visible,
header.gll-site-header .gll-primary-links > details > summary:focus-visible,
header.gll-site-header .gll-menu-toggle:focus-visible {
  outline: 3px solid #a75d16 !important;
  outline-offset: 3px !important;
}

header.gll-site-header .gll-primary-links > details:nth-child(2) > .gll-nav-panel {
  display: grid !important;
  width: min(590px, calc(100vw - 2rem)) !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0.45rem !important;
}

footer.gll-site-footer {
  display: block !important;
  padding: 3.25rem clamp(1rem, 4vw, 3.5rem) 1.35rem !important;
  border-top: 1px solid #d9ddd8 !important;
  background: #193b52 !important;
  color: #f7f5ef !important;
  text-align: left !important;
}

footer.gll-site-footer .gll-footer-inner {
  display: grid !important;
  width: 100% !important;
  max-width: 1280px !important;
  grid-template-columns: minmax(160px, 0.8fr) 3fr !important;
  gap: 3rem !important;
  margin: 0 auto !important;
}

footer.gll-site-footer .gll-footer-brand {
  display: inline-flex !important;
  align-self: start !important;
  line-height: 0 !important;
}

footer.gll-site-footer .gll-footer-brand img {
  display: block !important;
  width: auto !important;
  height: 40px !important;
  max-width: 190px !important;
  object-fit: contain !important;
  filter: brightness(0) invert(1) !important;
}

footer.gll-site-footer .gll-footer-groups {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 1.5rem !important;
}

footer.gll-site-footer .gll-footer-group h2 {
  margin: 0 0 0.85rem !important;
  color: #f3bd86 !important;
  font-family: inherit !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

footer.gll-site-footer .gll-footer-group a,
footer.gll-site-footer .gll-footer-subscribe {
  display: block !important;
  width: fit-content !important;
  padding: 0.24rem 0 !important;
  color: #f7f5ef !important;
  font-family: inherit !important;
  font-size: 0.86rem !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  text-decoration: none !important;
}

footer.gll-site-footer .gll-footer-subscribe {
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  text-align: left !important;
}

footer.gll-site-footer .gll-footer-group a:focus-visible,
footer.gll-site-footer .gll-footer-subscribe:focus-visible {
  outline: 3px solid #f3bd86 !important;
  outline-offset: 3px !important;
}

footer.gll-site-footer .gll-footer-group a:hover,
footer.gll-site-footer .gll-footer-subscribe:hover {
  color: #f3bd86 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

footer.gll-site-footer .gll-footer-note {
  max-width: 1280px !important;
  margin: 2.4rem auto 0 !important;
  padding-top: 1rem !important;
  border-top: 1px solid rgba(247, 245, 239, 0.22) !important;
  color: rgba(247, 245, 239, 0.76) !important;
  font-family: inherit !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-align: left !important;
}

@media (min-width: 1024px) {
  header.gll-site-header .gll-primary-links > details:nth-child(n+4) > .gll-nav-panel {
    left: auto !important;
    right: 0 !important;
  }
}

@media (max-width: 1023px) {
  header.gll-site-header {
    padding: 0 1rem !important;
  }

  header.gll-site-header > nav.gll-primary {
    min-height: 68px !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
  }

  header.gll-site-header .gll-brand img {
    max-width: min(190px, calc(100vw - 136px)) !important;
  }

  header.gll-site-header .gll-menu-toggle:not([hidden]) {
    display: inline-flex !important;
    min-width: 88px !important;
    min-height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.65rem !important;
    padding: 0.55rem 0.8rem !important;
    border: 1px solid #bacbc8 !important;
    border-radius: 3px !important;
    background: #fbfaf7 !important;
    color: #193b52 !important;
    font-family: inherit !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
  }

  header.gll-site-header .gll-menu-toggle:not([hidden])::after {
    width: 0.9rem !important;
    height: 0.65rem !important;
    border-top: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    content: "" !important;
    background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat !important;
  }

  header.gll-site-header .gll-primary-links {
    display: flex !important;
    flex: 0 0 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 0.35rem 0 0.8rem !important;
    border-top: 1px solid #d9ddd8 !important;
  }

  header.gll-site-header.is-enhanced .gll-primary-links {
    display: none !important;
  }

  header.gll-site-header.is-enhanced.is-menu-open .gll-primary-links {
    display: flex !important;
    flex-direction: column !important;
    max-height: calc(100dvh - 80px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  header.gll-site-header .gll-primary-links > a,
  header.gll-site-header .gll-primary-links > details > summary {
    width: 100% !important;
    min-height: 48px !important;
    justify-content: space-between !important;
    padding: 0.75rem 0.55rem !important;
    border-bottom: 1px solid #e3e7e2 !important;
    border-radius: 0 !important;
    text-align: left !important;
  }

  header.gll-site-header .gll-primary-links > a:last-child {
    margin: 0.55rem 0 0 !important;
    padding-right: 0.9rem !important;
    padding-left: 0.9rem !important;
    border-bottom: 0 !important;
  }

  header.gll-site-header .gll-primary-links > details {
    width: 100% !important;
  }

  header.gll-site-header .gll-nav-panel,
  header.gll-site-header .gll-primary-links > details:nth-child(2) > .gll-nav-panel {
    position: static !important;
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0.2rem 0 0.55rem 0.65rem !important;
    border: 0 !important;
    border-left: 2px solid #d9ddd8 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  header.gll-site-header .gll-nav-section + .gll-nav-section {
    margin-top: 0.4rem !important;
    padding-top: 0.45rem !important;
    border-top: 1px solid #d9ddd8 !important;
  }

  header.gll-site-header .gll-nav-link {
    min-height: 44px !important;
    padding: 0.65rem 0.8rem !important;
  }

  footer.gll-site-footer .gll-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  footer.gll-site-footer .gll-footer-groups {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.6rem 1.25rem !important;
  }
}

@media (max-width: 560px) {
  footer.gll-site-footer {
    padding-top: 2.5rem !important;
  }

  footer.gll-site-footer .gll-footer-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.5rem 1rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  header.gll-site-header *,
  footer.gll-site-footer * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
