/* Generated by `web-dup build-static`: the CSS that replaces site.js. */

/* The menu's open/closed state. Visually hidden but still focusable, so the
   menu opens from the keyboard with Space. */
#menu-toggle {
  position: fixed; top: 0; left: 0; width: 1px; height: 1px;
  margin: 0; opacity: 0; pointer-events: none;
}
.static-site:has(> #menu-toggle:focus-visible) .header-burger-btn {
  outline: 2px solid currentColor; outline-offset: 4px;
}
/* The menu buttons are labels now; give them the browser's default button box
   (which Squarespace's styles assumed) so the header keeps its height. */
label.header-burger-btn {
  display: block; cursor: pointer; box-sizing: border-box;
  padding: 1px 6px; line-height: normal; text-align: center;
}

/* A section under the fixed header starts with an invisible copy of the header
   bar instead of padding by a measured height. Stacking spacer and content in
   a column, aligned as the section was, places the content exactly where
   "padding-top: <header height>" did. */
.static-header-spacer {
  position: relative !important; top: auto !important; inset: auto !important;
  visibility: hidden !important; pointer-events: none !important;
  flex: none !important; width: 100% !important; z-index: auto !important;
}
.static-header-offset { flex-direction: column !important; align-items: stretch !important; }
.static-header-offset.vertical-alignment--top { justify-content: flex-start !important; }
.static-header-offset.vertical-alignment--middle { justify-content: center !important; }
.static-header-offset.vertical-alignment--bottom { justify-content: flex-end !important; }

/* The open menu fills the viewport below the header, whatever its height. */
.static-site #header .header-menu {
  position: absolute !important; top: 100% !important; bottom: auto !important;
  left: 0; right: 0; height: calc(100dvh - 100%) !important;
  padding-top: 0 !important;
}
