@charset "utf-8";
/* CSS Document */


/********** header **********/

.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  transition: .3s;
  background: #fff;
  box-shadow: 0px 0px 4px rgb(0, 0, 0, .5);
  .l-header__inner {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 4rem;
    height: 80px;
    >.logo {
      display: flex;
      align-items: center;
      gap: .5em;
      &:hover {
        opacity: .5;
      }
      h1 {
        display: block;
        font-size: 2.2rem;
        letter-spacing: .05em;
      }
    }
    .navArea {
      nav {
        display: flex;
        align-items: center;
        gap: 0 2rem;
        height: 100%;
        >.logo {
          display: none;
        }
        .menuList {
          ul {
            display: flex;
            li {
              position: relative;
              border-right: 1px solid #aaa;
              &:first-child {
                border-left: 1px solid #aaa;
              }
              a {
                position: relative;
                display: block;
                font-size: 1.6rem;
                font-weight: 700;
                padding: 0 3.2rem;
                letter-spacing: .05em;
                text-align: center;
                span {
                  display: block;
                  font-size: 1.1rem;
                  color: var(--green);
                }
                &:hover {
                  opacity: .5;
                }
              }
            }
          }
        }
        p {
          display: none;
        }
      }
    }
    .hamburgerBtn {
      display: none;
    }
  }
}

.l-footer {
  position: relative;
  background: #141414;
  color: #fff;
  z-index: 1000;
  .l-footer__inner {
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 1200px;
    padding: 8rem 4rem 6rem;
    .info {
      display: flex;
      gap: 6rem;
      .logo {
        width: 180px;
      }
      p {
        margin: 1rem 0 0;
        font-size: 2.4rem;
        small {
          display: block;
          margin: 1em 0 0;
          font-size: 1.6rem;
          line-height: 1.6;
        }
      }
    }
    .menu {
      .logo {
        display: none;
      }
      ul {
        display: flex;
        gap: 1.2rem;
        li {
          display: flex;
          a {
            font-size: 2.1rem;
            letter-spacing: .5em;
            writing-mode: vertical-rl;
            &:hover {
              opacity: .5;
            }
          }
        }
      }
    }
  }
  .l-footer__copyright {
    padding: 1.5rem;
    width: 100%;
    font-size: 1.4rem;
    text-align: center;
    letter-spacing: .05em;
    border-top: 1px solid #535353;
  }
}

.btnLink {
  display: block;
  margin: 6rem 0 0;
  padding: 1.5rem 2rem;
  width: fit-content;
  min-width: 200px;
  color: var(--green);
  border: 1px solid var(--green);
  text-align: center;
  letter-spacing: .05em;
  border-radius: 5px;
  &:hover {
    color: #fff;
    background: var(--green);
    &::after{
      background: #fff;
    }
  }
  &::after{
    content: "";
    display: inline-block;
    margin-left: .5em;
    width: calc(.7em*.7);
    height: .7em;
    clip-path: polygon(0 0, 100% 50%, 0% 100%);
    background: var(--green);
    transition: .3s;
  }
}

@media (max-width: 1024px) {
  .l-header {
    .l-header__inner {
      .navArea {
        nav {
          .menuList {
            ul {
              li {
                a {
                  padding: 0 2rem;
                }
              }
            }
          }
        }
      }
    }
  }

  .l-footer {
    .l-footer__inner {
      display: flex;
      flex-direction: column-reverse;
      align-items: center;
      gap: 8rem;
      .info {
        .logo {
          display: none;
        }
        p {
          margin: 0;
          text-align: center;
        }
      }
      .menu {
        display: flex;
        gap: 5rem;
        .logo {
          display: block;
          width: 140px;
        }
      }
    }
  }
}

@media (max-width: 768px) {
  .l-header {
    .l-header__inner {
      .navArea {
        position: fixed;
        top: 80px;
        left: 0;
        width: 100%;
        height: calc(100vh - 80px);
        display: none;
        overflow: scroll;
        background: #fff;
        nav {
          padding: 4rem 2rem 14rem;
          display: block;
          height: auto;
          .logo {
            display: block;
            margin: 0 auto 4rem;
            width: 120px;
          }
          .menuList {
            margin: 0 auto 4rem;
            ul {
              justify-content: center;
            }
          }
          p {
            display: block;
            text-align: center;
            span {
              display: block;
              margin: 1em 0 0;
              font-size: 1.6rem;
              line-height: 1.6;
            }
          }
        }
      }
      .hamburgerBtn {
        position: absolute;
        top: 50%;
        right: 20px;
        transform: translate(0,-50%);
        margin: 0;
        padding: 1rem;
        display: block;
        width: 60px;
        height: 60px;
        background: none;
        border: none;
        color: var(--text);
        &.active {
          span {
            background: #222;
            &:nth-child(1) {
              transform: translate(0, 10px) rotate(30deg);
            }
            &:nth-child(2) {
              width: 0;
            }
            &:nth-child(3) {
              transform: translate(0, -10px) rotate(-30deg);
            }
          }
        }
        &:hover {
          cursor: pointer;
        }
        span {
          display: block;
          width: 100%;
          height: 2px;
          background: #222;
          transition: .3s;
          + span {
            margin: .8rem 0 0;
          }
        }
        p {
          margin: .8rem 0 0;
          font-size: 1rem;
          font-weight: 700;
          letter-spacing: .1em;
          line-height: 1;
          text-align: center;
        }
      }
    }
  }
}

@media (max-width: 480px) {
  .l-header {
    .l-header__inner {
      height: 60px;
      padding: 0 2rem;
      .navArea {
        top: 60px;
        height: calc(100vh - 60px);
        nav {
          .menuList {
            ul {
              display: grid;
              gap: 1rem;
              li {
                position: relative;
                border-right: none;
                &::before {
                  content: "";
                  position: absolute;
                  bottom: 0;
                  left: 50%;
                  transform: translate(-50%, 0);
                  width: 20px;
                  height: 1px;
                  background: #000;
                }
                &:first-child {
                  border-left: none;
                }
                a {
                  padding: .5rem;
                  font-size: 1.8rem;
                }
              }
            }
          }
        }
      }
      .hamburgerBtn {
        right: 10px;
        width: 55px;
        height: 55px;
        &.active {
          span {
            &:nth-child(1) {
              transform: translate(0, 8px) rotate(30deg);
            }
            &:nth-child(2) {
              width: 0;
            }
            &:nth-child(3) {
              transform: translate(0, -8px) rotate(-30deg);
            }
          }
        }
        span {
          + span {
            margin: .6rem 0 0;
          }
        }
        p {
          margin: .6rem 0 0;
        }
      }
    }
  }
  .l-footer {
    .l-footer__inner {
      gap: 6rem;
      padding: 8rem 2rem 6rem;
      .info {
        p {
          margin: 0;
          text-align: center;
          small {
            font-size: 1.5rem;
          }
        }
      }
      .menu {
        gap: 4rem;
        .logo {
          display: block;
          width: 100px;
        }
        ul {
          gap: .8rem;
          li {
            a {
              font-size: 1.6rem;
            }
          }
        }
      }
    }
    .l-footer__copyright {
      padding: 1rem;
      width: 100%;
      font-size: 1.2rem;
    }
  }
}