/* FS Fullscreen Menu — styles (v1.2) */
:root{
  --fs-z: 9999;
  --fs-gap: clamp(12px, 2.4vh, 24px);
  --fs-close-padding: 12px;
  --fs-scale-closed: 1.02;
  --fs-font: 'Rubik', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --fs-item-font-size: 2rem;
  --fs-item-weight: 700;
  --fs-sub-font-size: 1.7rem;
  --fs-sub-weight: 400;
  --fs-close-top-offset: 50px;
  --fs-burger-color: #111111;
}

html.fs-open, body.fs-open { overflow: hidden; }

.fsfm-wrapper { display: inline-block; }

.fs-toggle {
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 8px;
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
  justify-content: center;
  color: var(--fs-burger-color);
}
.fs-toggle:focus { outline: 2px solid currentColor; outline-offset: 2px; }
.fs-toggle-bar {
  display: block;
  width: 26px;
  height: 2px;
  background: currentColor;
}

/* Overlay */
.fs-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--fs-z);
  display: grid;
  grid-template-rows: auto 1fr;
  align-items: start;
  justify-items: center;
  opacity: 0;
  visibility: hidden;
  transform: scale(var(--fs-scale-closed));
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  padding: clamp(16px, 3vw, 32px);
  font-family: var(--fs-font);
}
.fs-overlay[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}
.fs-overlay[aria-hidden="true"] { pointer-events: none; }

/* Close button with top offset */
.fs-close {
  position: fixed;
  top: var(--fs-close-top-offset);
  right: 0;
  padding: var(--fs-close-padding);
  background: transparent;
  border: 0;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  z-index: calc(var(--fs-z) + 1);
}
.fs-close[data-pos="left"] { right: auto; left: 0; }
.fs-close:focus { outline: 2px solid currentColor; outline-offset: 2px; }

/* Menu list */
.fs-nav { width: min(90vw, 900px); display: grid; justify-items: center; }
.fs-menu-list,
.fs-menu-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--fs-gap);
  text-align: center;
}
.fs-menu-list > li > a {
  font-size: var(--fs-item-font-size);
  font-weight: var(--fs-item-weight);
  text-decoration: none;
}
.fs-menu-list a { color: inherit; }
.fs-menu-list a:hover,
.fs-menu-list a:focus { text-decoration: underline; }

/* Submenus collapsed by default */
.fs-menu-list li.menu-item-has-children > .sub-menu {
  display: none;
}
.fs-menu-list li.menu-item-has-children.is-open > .sub-menu {
  display: grid;
  gap: calc(var(--fs-gap) * 0.75);
}
.fs-menu-list .sub-menu a {
  font-size: var(--fs-sub-font-size);
  font-weight: var(--fs-sub-weight);
}

/* Toggle button (chevron) */
.fs-sub-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 0;
  line-height: 1;
}
.fs-sub-toggle::before {
  content: "▼";
  font-size: 0.9rem;
}
.fs-menu-list li.menu-item-has-children.is-open > a + .fs-sub-toggle::before {
  content: "▲";
}
