@charset "UTF-8";

@layer style {
  .sp-menu {
    position: fixed;
    inset-block-start: calc((100 / 390) * 11 * 1vw);
    inset-inline-end: calc((100 / 390) * 16 * 1vw);
    z-index: 22;
    display: block grid;
    place-content: center;
    inline-size: calc((100 / 390) * 50 * 1vw);
    aspect-ratio: 1 / 1;
    background: var(--primary);
    border-radius: calc((100 / 390) * 6 * 1vw);

    &::before {
      inline-size: calc((100 / 390) * 18 * 1vw);
      block-size: calc((100 / 390) * 14 * 1vw);
      content: '';
      border-block: 1px solid white;
      transition: all 250ms ease 0s;
    }

    &::after {
      position: absolute;
      inset-block-start: 50%;
      inset-inline-start: 50%;
      display: block grid;
      inline-size: calc((100 / 390) * 18 * 1vw);
      block-size: 1px;
      content: '';
      background: white;
      translate: -50% 0;
      transition: all 250ms ease 0s;
    }

    @media (width > 768px) {
      display: none;
    }
  }

  .sp-nav {
    position: fixed;
    inset: 0;
    z-index: 20;
    inline-size: 100%;
    margin-inline: auto;
    font-size: calc((100 / 390) * 18 * 1vw);
    color: white;
    pointer-events: none;
    background: var(--primary);
    opacity: 0;
    translate: 0 -100%;
    will-change: translate;

    .inner {
      display: block grid;
      block-size: calc(100svh + var(--header-height));
      padding-block: var(--header-height) 30vw;
      overflow-y: auto;
    }

    /* ==== nav ==== */
    .nav>ul {
      display: block grid;
      grid-template-columns: 1fr;
      gap: 0;
      inline-size: fit-content;
      padding-inline: 0;
      margin-block-start: 8.1vw;
      margin-inline: auto;

      >li> :where(a, p) {
        display: block flow;
        padding-block: 4.3vw;
        padding-inline-start: 2.9vw;
        margin-inline: 0;
      }

      .children {
        display: grid;
        gap: 1.4vw;
        align-items: flex-start;
        margin-block: -1.6vw 4vw;

        >li {
          position: relative;
          padding-inline-start: 7vw;
          font-size: calc((100 / 390) * 16 * 1vw);

          &::before {
            position: absolute;
            inset-block-start: 50%;
            inset-inline-start: 3vw;
            inline-size: calc((100 / 390) * 8 * 1vw);
            aspect-ratio: 8 / 2;
            content: '';
            background: white;
            translate: 0 -50%;
          }
        }
      }
    }

    .sdgs-button {
      display: block grid;
      place-content: center;
      inline-size: fit-content;
      padding-block: 2.7vw;
      padding-inline: 2.5vw;
      margin-block-start: 10vw;
      margin-inline: auto;
      background: white;

      img {
        inline-size: calc((100 / 390) * 168 * 1vw);
        block-size: calc((100 / 390) * 21 * 1vw);
      }
    }

    .sub-nav {
      display: block flex;
      gap: 6.4vw;
      justify-content: center;
      margin-block-start: 6.7vw;
      font-size: calc((100 / 390) * 13 * 1vw);
      font-weight: 500;
      color: var(--form-form-border);
    }
  }

  /* ==== menu-on ==== */
  .menu-on {
    .sp-menu {
      &::before {
        inset-block-start: 0;
        inset-inline-start: 0;
        display: block grid;
        inline-size: calc((100 / 390) * 22 * 1vw);
        block-size: 1px;
        content: '';
        background: white;
        border: none;
        rotate: 0 0 1 45deg;
        translate: unset;
      }

      &::after {
        inset-block-start: 6.3vw;
        inset-inline-start: 3.6vw;
        display: block grid;
        inline-size: calc((100 / 390) * 22 * 1vw);
        block-size: 1px;
        content: '';
        rotate: 0 0 1 135deg;
        translate: unset;
      }
    }

    .sp-nav {
      pointer-events: auto;
      opacity: 1;
      translate: 0 0;
      transition: translate 250ms ease 0s;
    }
  }
}
