/* フルスクリーン型メニュー */
/* Full-screen menu */

.full-menu {
  inset: 0;
  grid-template-rows: var(--site-header-height) minmax(0, 1fr);
  gap: 0;
  width: 100%;
  height: 100dvh;
  overflow-y: auto;
  padding-block: 0;
  padding-inline: 24px;
  overscroll-behavior-y: contain;
  opacity: 0;
  translate: 0 -24px;

  &::backdrop {
    background: transparent;
  }

  &[open] {
    opacity: 1;
    translate: 0 0;

    @starting-style {
      opacity: 0;
      translate: 0 -24px;
    }
  }

  .menu-list {
    overflow: visible;
    overscroll-behavior-y: auto;
  }

  .menu-header {
    min-height: var(--site-header-height);
    justify-content: flex-end;
  }
}

.large-menu-list {
  a,
  summary {
    font-size: 4rem;

    @media (width <= 568px) {
      font-size: 3rem;
    }
  }
}

.fullscreen-menu {
  grid-template-rows: var(--site-header-height) minmax(0, 1fr);
  overflow-y: auto;

  &[open],
  &:popover-open {
    .fullscreen-menu-nav {
      a {
        @starting-style {
          opacity: 0;
          translate: calc((var(--menu-index) - 1) * 24px) 0;
        }
      }
    }

    @supports (width: calc(sibling-index() * 1px)) {
      .fullscreen-menu-nav {
        a {
          @starting-style {
            translate: calc((sibling-index() - 1) * 24px) 0;
          }
        }
      }
    }
  }

  .fullscreen-menu-nav {
    counter-reset: fullscreen-item;
    display: grid;
    align-content: start;
    gap: 0;
    padding-block: 24px;

    a {
      --menu-index: 1;

      counter-increment: fullscreen-item;
      display: grid;
      grid-template-columns: 3rem minmax(0, 1fr);
      align-items: baseline;
      gap: 24px;
      padding-block: 16px;
      border-bottom: 1px solid var(--line);
      border-radius: 0;
      font-size: 5rem;
      font-weight: bold;
      line-height: 1;
      translate: 0 0;
      transition:
        opacity 0.4s ease,
        translate 0.4s ease,
        background-color 0.2s,
        padding-inline 0.2s;
      transition-delay:
        calc((var(--menu-index) - 1) * 50ms),
        calc((var(--menu-index) - 1) * 50ms),
        0s,
        0s;

      &::before {
        content: counter(fullscreen-item, decimal-leading-zero);
        font-size: 1rem;
        line-height: 1;
      }

      @media (any-hover: hover) {
        &:hover {
          background-color: var(--bg);
          padding-inline: 16px;
        }
      }

      @supports (width: calc(sibling-index() * 1px)) {
        --menu-index: sibling-index();
      }

      @media (width <= 720px) {
        grid-template-columns: 2rem minmax(0, 1fr);
        gap: 16px;
        font-size: 3rem;
      }
    }
  }
}
