@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 0 0 2rem;
    height: 80px;
    >.logo {
      display: flex;
      align-items: center;
      gap: .5em;
      &:hover {
        opacity: .5;
      }
      img {
        display: block;
        width: 54px;
      }
      h1 {
        display: block;
        padding: .4em 0 0;
        font-size: 2.2rem;
        line-height: 1.2;
        letter-spacing: .05em;
        color: var(--green);
      }
    }
    nav {
      display: flex;
      align-items: center;
      gap: 0 2rem;
      height: 100%;
      .menuList {
        ul {
          display: flex;
          /* gap: 0 6rem; */
          li {
            position: relative;
            &:first-child {
              border-left: 1px solid #aaa;
            }
            &:not(:last-child) {
              /* border-right: 1px dashed #aaa; */
              border-right: 1px solid #aaa;
            }
            a {
              position: relative;
              display: block;
              font-size: 1.6rem;
              font-weight: 700;
              padding: 0 3.2rem;
              /* text-shadow: 1px 1px 1px rgb(0, 0, 0, .5); */
              letter-spacing: .05em;
              text-align: center;
              span {
                display: block;
                font-size: 1.1rem;
                color: var(--green);
              }
              &:hover {
                opacity: .5;
              }
            }
            &.contact {
              display: none;
            }
          }
        }
      }
      .contactList {
        display: flex;
        align-items: center;
        gap: 0 1rem;
        height: 100%;
        li {
          position: relative;
          display: flex;
          align-items: center;
          height: 100%;
          .line,
          .tel {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: .5rem;
            padding: 0 1rem;
            height: 45px;
            color: #fff;
            border-radius: 30px;
            line-height: 1.2;
            &:hover {
              opacity: .5;
            }
            p {
              font-size: 1.5rem;
              font-weight: 700;
              letter-spacing: .05em;
              br {
                display: none;
              }
            }
          }
          .line {
            background: rgb(0, 165, 0);
            img {
              width: 35px;
            }
          }
          .tel {
            background: var(--yellow);
            .call {
              display: grid;
              place-content: center;
              width: 35px;
              height: 35px;
              border-radius: 50%;
              color: var(--yellow);
              background: #fff;
              font-size: 2.4rem;
              font-variation-settings: 'FILL' 1, 'wght' 900, 'GRAD' 0, 'opsz' 48;
            }
          }
          .contact {
            display: flex;
            align-items: center;
            gap: .5rem;
            letter-spacing: .05em;
            height: 100%;
            background: var(--green);
            color: #fff;
            border: 1px solid var(--green);
            padding: 1rem 2rem;
            width: fit-content;
            font-size: 1.8rem;
            &:hover {
              color: var(--green);
              background: #fff;
            }
            .mail {
              font-size: 1.5em;
            }
          }
        }
      }
    }
    .hamburgerBtn {
      display: none;
    }
  }
}

.l-footer {
  position: relative;
  background: var(--green);
  color: #fff;
  z-index: 1000;
  .l-footer__inner {
    margin: 0 auto;
    padding: 8rem 2rem 4rem;
    .logo {
      display: block;
      margin: 0 auto;
      width: fit-content;
      font-size: 2.7rem;
      font-weight: 700;
      letter-spacing: .1em;
      &:hover {
        opacity: .5;
      }
      img {
        display: block;
        margin: 0 auto 2rem;
        width: 120px;
        filter: invert(100%) sepia(91%) saturate(38%) hue-rotate(321deg) brightness(110%) contrast(110%);
      }
    }
    nav {
      margin: 4rem 0 0;
      ul {
        display: flex;
        justify-content: center;
        gap: 0 5rem;
        li {
          position: relative;
          line-height: 1.2;
          &:not(:last-child) {
            &::after {
              content: "";
              position: absolute;
              top: 0;
              right: -2.5rem;
              display: inline-block;
              width: 1px;
              height: 100%;
              background: #fff;
            }
          }
          a {
            font-size: 1.6rem;
            font-weight: 700;
            letter-spacing: .05em;
          }
        }
      }
    }
    .contactArea {
      margin: 4rem 0 0;
      .info {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        text-align: center;
        gap: 0 3rem;
        p {
          margin: 1rem 0 0;
          font-weight: 700;
          font-size: 2rem;
          a {
            text-decoration: underline;
          }
        }
      }
    }
    >p {
      margin: 4rem 0 0;
      text-align: center;
      font-size: 1.8rem;
    }
  }
  .l-footer__copyright {
    padding: 1.5rem;
    width: 100%;
    font-size: 1.4rem;
    /* color: #fff; */
    background: #222;
    text-align: center;
    letter-spacing: .05em;
    border-top: 1px solid #ccc;
  }
}

.title {
  margin: 0 0 6rem;
  padding: 0 0 .3em;
  font-size: 3rem;
  line-height: 1.4;
  letter-spacing: .1em;
  border-bottom: 2px solid var(--navy);
}

.sub-title {
  margin: 0 0 4rem;
  padding-left: .5em;
  padding-bottom: .3em;
  font-size: 2.4rem;
  line-height: 1.4;
  letter-spacing: .1em;
  border-left: 4px solid var(--navy);
  line-height: 1.6;
}
* + .sub-title  {
  margin: 6rem 0 4rem;
}

.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;
  }
}

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

.contactBox {
  display: flex;
  align-items: center;
  gap: 4rem;
  padding: 6rem;
  border-radius: 20px;
  background: linear-gradient(135deg, rgb(12, 120, 0, .025) 25%, rgb(90, 180, 90, .3) 100%);
  box-shadow: 6px 6px 0px rgba(0, 0, 0, .25);
  border: 2px solid var(--green);
  .contactBox__left {
    width: calc(45% - 4rem);
    hgroup {
      margin: 0 0 4rem;
      font-size: 2rem;
      letter-spacing: .1em;
      line-height: 1.6;
      span {
        display: block;
        font-size: 1em;
        color: var(--green);
      }
      h2 {
        display: block;
        font-size: 2em;
      }
    }
    p {
      font-weight: 700;
      word-break: keep-all;
    }
  }
  .contactBox__right {
    width: 55%;
    ul {
      display: flex;
      align-items: center;
      li {
        width: 50%;
        border-right: 1px solid var(--gray);
        &:not(:last-child) {
          border-left: 1px solid var(--gray);
        }
        a {
          position: relative;
          display: flex;
          align-items: center;
          gap: 1.5rem;
          padding: 1rem 2rem;
          font-weight: 700;
          &:hover {
            opacity: .7;
            .arrow {
              right: 1.5rem;
            }
          }
          img {
            width: 40px;
          }
          .mail {
            padding: .8rem;
            font-size: 2.7rem;
            color: #fff;
            background: var(--green);
            border-radius: 50%;
          }
          .arrow {
            position: absolute;
            top: 50%;
            right: 2rem;
            transform: translate(0, -50%);
            transition: .3s;
          }
        }
      }
    }
    .tel {
      margin: 2rem 0 0;
      padding: 1rem;
      color: var(--text);
      background: #fff;
      color: var(--green);
      border: 1px solid var(--green);
      border-radius: 10px;
      text-align: center;
      a {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .2em;
        width: fit-content;
        margin: 0 auto;
        font-size: 4rem;
        font-weight: 700;
        &:hover {
          opacity: .5;
        }
        .call {
          font-size: 1.2em;
          font-variation-settings:
          'FILL' 1,
          'wght' 900,
          'GRAD' 0,
          'opsz' 48;
        }
      }
      p {
        color: var(--text);
        font-size: 1.6rem;
      }
    }
  }
}

.text_center {
  text-align: center;
}

.yellow_text {
  color: var(--yellow);
}

.orange_text {
  color: var(--orange);
}

.green_text {
  color: var(--green);
}

.red_text {
  color: var(--red);
}

.bold_text {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  word-break: keep-all;
  letter-spacing: .05em;
}

@media (max-width: 1440px) {
  .l-header {
    .l-header__inner {
      >.logo {
        img {
          width: 45px;
        }
        h1 {
          font-size: 1.8rem;
        }
      }
      nav {
        /* gap: 0; */
        .menuList {
          ul {
            li {
              a {
                font-size: 1.4rem;
                padding: 0 1.5rem;
                span {
                  display: block;
                  font-size: 1rem;
                  color: var(--green);
                }
                &:hover {
                  opacity: .5;
                }
              }
            }
          }
        }
        .contactList {
          li {
            .line,
            .tel {
              height: 40px;
              color: #fff;
              p {
                font-size: 1.4rem;
              }
            }
            .line {
              img {
                width: 30px;
              }
            }
            .tel {
              .call {
                width: 30px;
                height: 30px;
                font-size: 1.8rem;
              }
            }
            .contact {
              padding: .8rem 1rem;
              font-size: 1.5rem;
            }
          }
        }
      }
    }
  }
}

@media (max-width: 1200px) {
  .l-header {
    .l-header__inner {
      height: 70px;
      nav {
        .menuList {
          ul {
            li {
              a {
                span {
                  font-size: .9rem;
                }
              }
            }
          }
        }
        .contactList {
          li {
            .line,
            .tel {
              img {
                width: 24px;
              }
              .call {
                width: 24px;
                height: 24px;
                font-size: 1.5rem;
              }
              p {
                font-size: 1.2rem;
                br {
                  display: inline-block;
                }
              }
            }
            .contact {
              padding: .8rem 1rem;
              font-size: 1.4rem;
            }
          }
        }
      }
    }
  }
}

@media (max-width: 1024px) {
  .l-header {
    .l-header__inner {
      height: 60px;
      nav {
        padding-right: 60px;
        .menuList {
          display: none;
          position: absolute;
          top: 60px;
          left: 0;
          width: 100%;
          height: calc(100vh - 60px);
          background: var(--green);
          overflow: scroll;
          ul {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 4rem;
            padding: 8rem 4rem 12rem;
            min-height: calc(100vh - 80px);
            li {
              &:first-child {
                border-left: none;
              }
              &:not(:last-child) {
                border-right: none;
              }
              a {
                color: #fff;
                font-size: 2rem;
                span {
                  color: #fff;
                  font-size: 1.2rem;
                }
              }
              &.contact {
                display: block;
                margin: 2rem 0 0;
                p {
                  color: #fff;
                  font-weight: 700;
                  text-align: center;
                }
                .btnLink {
                  margin: 2rem auto 0;
                  padding: 1.5rem 6rem;
                  color: var(--green);
                  background: #fff;
                }
              }
            }
          }
        }
        .contactList {
          li {
            .line,
            .tel {
              p {
                font-size: 1.4rem;
                br {
                  display: none;
                }
              }
            }
          }
        }
      }
      .hamburgerBtn {
        position: absolute;
        top: 50%;
        right: 0;
        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, 8px) rotate(30deg);
            }
            &:nth-child(2) {
              width: 0;
            }
            &:nth-child(3) {
              transform: translate(0, -8px) rotate(-30deg);
            }
          }
        }
        &:hover {
          cursor: pointer;
        }
        span {
          display: block;
          width: 100%;
          height: 2px;
          background: #222;
          transition: .3s;
          + span {
            margin: .6rem 0 0;
          }
        }
        p {
          margin: .6rem 0 0;
          font-size: 1rem;
          font-weight: 700;
          letter-spacing: .1em;
          line-height: 1;
          text-align: center;
        }
      }
    }
  }
  .contactBox {
    margin: 0 auto;
    flex-direction: column;
    max-width: 600px;
    .contactBox__left {
      width: 100%;
      text-align: center;
    }
    .contactBox__right {
      width: 100%;
      .tel {
        a {
          font-size: 3.6rem;
        }
      }
    }
  }
}

@media (max-width: 768px) {
  .l-header {
    .l-header__inner {
      padding: 0 0 0 1rem;
      nav {
        .menuList {
          top: 60px;
          height: calc(100vh - 60px);
          ul {
            min-height: calc(100vh - 60px);
          }
        }
        .contactList {
          display: flex;
          align-items: center;
          gap: 0 .6rem;
          li {
            .line,
            .tel {
              height: 35px;
              color: #fff;
              p {
                font-size: 1.2rem;
                br {
                  display: inline-block;
                }
              }
            }
            .line {
              img {
                width: 25px;
              }
            }
            .tel {
              .call {
                width: 25px;
                height: 25px;
                font-size: 1.5rem;
              }
            }
            .contact {
              padding: .6rem 1rem;
              font-size: 1.5rem;
              &:hover {
                color: var(--green);
                background: #fff;
              }
              .mail {
                font-size: 1.5em;
              }
            }
          }
        }
      }
    }
  }
  .l-footer {
    .l-footer__inner {
      padding: 8rem 4rem 4rem;
      nav {
        ul {
          flex-wrap: wrap;
          gap: 2rem;
          max-width: 400px;
          margin: 0 auto;
          li {
            width: 100%;
            text-align: center;
            &:not(:last-child) {
              &::after {
                display: none;
              }
            }
          }
        }
      }
    }
  }
  .contactBox {
    padding: 3rem 2.5rem;
    gap: 3rem;
    .contactBox__left {
      hgroup {
        font-size: 1.6rem;
      }
    }
  }
}

@media (max-width: 600px) {
  .l-header {
    .l-header__inner {
      nav {
        .contactList {
          position: fixed;
          bottom: 0;
          left: 0;
          width: 100%;
          height: auto;
          gap: 0;
          li {
            position: relative;
            border-top: 1px solid #fff;
            border-bottom: 1px solid #fff;
            &:nth-child(1) {
              width: 32.5%;
            }
            &:nth-child(2) {
              width: 32.5%;
            }
            &:nth-child(3) {
              width: 35%;
            }
            &:not(:last-child) {
              border-right: 1px solid #fff;
            }
            .line,
            .tel,
            .contact {
              display: flex;
              align-items: center;
              justify-content: center;
              gap: 1rem;
              color: #fff;
              width: 100%;
              height: 50px;
              font-size: 1.6rem;
              font-weight: 700;
              letter-spacing: .05em;
              border-radius: 0;
              p {
                display: block;
                font-size: 1.6rem;
                br {
                  display: none;
                }
              }
            }
            .line {
              img {
                width: 32px;
              }
            }
            .tel {
              .call {
                width: 32px;
                height: 32px;
                font-size: 2rem;
              }
            }
            .contact {
              width: 100%;
              padding: 0;
              font-size: 1.6rem;
              font-weight: 700;
              letter-spacing: .05em;
              border-radius: 0;
              .mail {
                font-size: 1.75em;
              }
            }
          }
        }
      }
    }
  }
  .contactBox {
    padding: 3rem;
    .contactBox__right {
      ul {
        li {
          a {
            gap: 1rem;
            padding: 1rem 1.5rem;
            .arrow {
              right: 1rem;
            }
          }
        }
      }
      .tel {
        a {
          font-size: 3rem;
        }
        p {
          font-size: 1.5rem;
        }
      }
    }
  }
}

@media (max-width: 480px) {
  .l-header {
    .l-header__inner {
      nav {
        .menuList {
          ul {
            padding: 6rem 2rem 12rem;
            gap: 3rem;
            li {
              a {
                font-size: 1.6rem;
                span {
                  font-size: 1rem;
                }
              }
              &.contact {
                display: block;
                font-size: 1.4rem;
                .btnLink {
                  padding: 1rem 1.5rem;
                  padding: 1.5rem 4rem;
                  background: #fff;
                }
              }
            }
          }
        }
        .contactList {
          position: fixed;
          bottom: 0;
          left: 0;
          width: 100%;
          gap: 0;
          li {
            a {
              height: 50px;
              font-size: 1.5rem;
              gap: .5rem;
              p {
                display: block;
              }
            }
            .line,
            .tel,
            .contact {
              gap: .5rem;
              font-size: 1.4rem;
              padding: 0;
              p {
                font-size: 1.4rem;
              }
            }
            .line {
              img {
                width: 28px;
              }
            }
            .tel {
              .call {
                width: 28px;
                height: 28px;
                font-size: 1.5rem;
              }
            }
          }
        }
      }
    }
  }
  .l-footer {
    .l-footer__inner {
      padding: 6rem 2rem 3rem;
      .logo {
        font-size: 2.4rem;
      }
      .logo {
        font-size: 2rem;
        img {
          margin: 0 auto 1rem;
          width: 80px;
        }
      }
      nav {
        ul {
          gap: 1.5rem;
          li {
            a {
              font-size: 1.4rem;
            }
          }
        }
      }
      .contactArea {
        margin: 3rem 0 0;
        .info {
          gap: 0 2rem;
          p {
            margin: 1rem 0 0;
            font-size: 1.5rem;
          }
        }
      }
      >p {
        margin: 3rem 0 0;
        font-size: 1.4rem;
      }
    }
    .l-footer__copyright {
      padding: 1.5rem;
      font-size: 1.2rem;
    }
  }
  .bold_text {
    font-size: 1.6rem;
  }
  .btnLink {
    margin: 4rem 0 0;
    padding: 1rem 1.5rem;
    min-width: 160px;
  }
  .contactBox {
    padding: 3rem 2.5rem;
    gap: 3rem;
    .contactBox__left {
      hgroup {
        margin: 0 0 3rem;
        font-size: 1.4rem;
      }
    }
    .contactBox__right {
      ul {
        li {
          a {
            gap: .8rem;
            padding: .5rem 1rem;
            img {
              width: 30px;
            }
            .mail {
              padding: .5rem;
              font-size: 2.2rem;
            }
            .arrow {
              right: .5rem;
              font-size: 2rem;
            }
          }
        }
      }
      .tel {
        a {
          font-size: 2.4rem;
        }
        p {
          font-size: 1.3rem;
        }
      }
    }
  }
}