@charset "UTF-8";

.site-header {
  position: relative;
  display: block;
  width: 100%;
  height: 80px;
  background-color: #222;
  z-index: 10;

  .header-wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    align-items: center;
    width: 100%;
    max-width: 1140px;
    height: 100%;

    .logo-wrap {
      width: 368px;
      height: 54px;

      .logo {
        display: block;
        height: 100%;
        width: auto;

        img {
          display: block;
          width: 100%;
          height: auto;
        }
      }
    }

    nav {
      .nav-wrap {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        flex-wrap: nowrap;

        .nav-item {
          position: relative;
          height: 40px;

          .nav-link {
            display: block;
            height: 100%;
            padding: 0 10px;
            line-height: 40px;
            border-radius: 4px;
            color: #fff;
            font-size: 14px !important;
            background-color: transparent;
            transition: all 0.5s ease-out;

            &.current {
              background-color: #f00;
            }
          }

          &.has-child {
            .nav-link {
              &::after {
                position: relative;
                top: 0;
                border-left: 0px;
                border-right: 0px;
                border-top: 0px;
                font-family: "FontAwesome";
                content: "\f107";
                font-size: 14px;
                display: inline;
                margin-left: 7px;
                vertical-align: 0;
              }
            }

            .sub-menu {
              position: absolute;
              top: 50px;
              right: 0;
              display: none;
              opacity: 0;
              visibility: hidden;
              background-color: #f00;
              border-radius: 5px;
              transition: all 0.5s ease;
              z-index: 10;

              &>li>a {
                display: block;
                padding: 10px 15px;
                color: #fff;
                font-size: 14px;
                clear: both;
                font-weight: normal;
                line-height: 1.428571429;
                white-space: nowrap;
              }
            }

            &.active {
              .nav-link {
                background-color: #f00;
              }

              .sub-menu {
                display: block;
                opacity: 1;
                visibility: visible;
              }
            }
          }
        }
      }
    }
  }
}

.sp-nav {
  display: none;
}

.container {
  width: 1140px;
  margin-left: auto;
  margin-right: auto;
}

.local-nav {
  position: relative;
  width: 100%;
  height: 50px;
  background-color: rgba(100, 100, 100, 0.5);
  opacity: 0;
  animation: fadeIn 1s ease-in-out 1s forwards;
  z-index: 9;

  .local-nav__wrap {
    height: 50px;

    .local-nav__list {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      flex-wrap: nowrap;
      width: 100%;
      height: 100%;

      .local-nav__item {
        .local-nav__link {
          display: block;
          font-size: 14px;
          padding: 0 10px;
          color: #fff;
          opacity: 0.6;
          background-color: transparent;
          transition: opacity 0.5s ease-out;

          &:hover {
            opacity: 1;
          }
        }
      }
    }
  }
}

/* .nav-hamburger {
  .nav-hamburger__trigger {
    position: fixed;
    top: 0;
    right: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 80px;
    background-color: rgba(100, 100, 100, 0.5);
    border-radius: 5px;
    z-index: 30;
    span {
      position: relative;
      display: block;
      width: 40px;
      height: 3px;
      background-color: #fff;
      &::before {
        position: absolute;
        top: 10px;
        left: 0;
        display: block;
        width: 40px;
        height: 3px;
        background-color: #fff;
        content: "";
      }
      &::after {
        position: absolute;
        bottom: 10px;
        left: 0;
        display: block;
        width: 40px;
        height: 3px;
        background-color: #fff;
        content: "";
      }
    }
  }
  .nav-hamburger__list {
    position: fixed;
    top: 0;
    right: 0;
    display: flex;
    justify-content: flex-start;
    flex-direction: column;
    align-items: center;
    flex-wrap: wrap;
    padding-top: 100px;
    padding-bottom: 50px;
    background-color: #222;
    font-size: 20px;
    font-weight: 600;
    width: calc(20em + 100px);
    height: 100vh;
    overflow-y: auto;
    z-index: 29;
    .nav-hamburger__item {
      display: block;
      width: 100%;
      height: auto;
      padding-right: 100px;
      background-color: #222;
      .nav-hamburger__link {
        position: relative;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        width: 100%;
        height: 50px;
        padding-left: 4rem;
        padding-right: 10px;
        color: #fff;
        line-height: 50px;
        transition: color 0.3s ease-out;
        &:hover {
          color: #f00;
        }
        &.nav-hamburger__link--has-child {
          &::after {
            position: absolute;
            top: 0.9rem;
            left: 1rem;
            display: block;
            width: 1.5rem;
            height: 1.5rem;
            background-image: url(../images/icon_plus.svg);
            background-repeat: no-repeat;
            background-size: contain;
            background-position: center;
            transition: transform 0.3s ease-out;
            content: "";
          }
        }
      }
      .nav-hamburger__list {
        &.nav-hamburger__list--child {
          display: block;
          padding-top: 0;
          padding-bottom: 0;
          padding-right: 0;
          height: auto;
          width: 100%;
          transform: scaleY(0);
          transform-origin: top;
          transition: all 0.3s ease-out;
          z-index: unset;
          .nav-hamburger__item {
            padding-right: 0;
            .nav-hamburger__link {
              color: #999;
              font-weight: 500;
              transition: color 0.3s ease-out;
              &:hover {
                color: #f00;
              }
              &.has-grandchild {
                position: relative;
                &::after {
                  position: absolute;
                  top: 0.9rem;
                  left: 1rem;
                  display: block;
                  width: 1.5rem;
                  height: 1.5rem;
                  background-image: url(../images/icon_plus.svg);
                  background-repeat: no-repeat;
                  background-size: contain;
                  background-position: center;
                  opacity: 0.6;
                  transition: transform 0.3s ease-out;
                  content: "";
                }
              }
            }
            .nav-hamburger__list--grandchild {
              display: block;
              padding-top: 0;
              padding-bottom: 0;
              padding-right: 0;
              height: auto;
              width: 100%;
              transform: scaleY(0);
              transform-origin: top;
              transition: all 0.3s ease-out;
              z-index: unset;
            }
          }
        }
      }
      &.active {
        .nav-hamburger__link {
          &.nav-hamburger__link--has-child {
            &::after {
              transform: rotate(45deg);
            }
          }
        }
        .nav-hamburger__list {
          &.nav-hamburger__list--child {
            position: static;
            transform: scaleY(1);
            .nav-hamburger__item {
              .nav-hamburger__list {
                .nav-hamburger__list--grandchild {
                  display: block;
                  padding-top: 0;
                  padding-bottom: 0;
                  padding-right: 0;
                  height: auto;
                  width: 100%;
                  transform: scaleY(0);
                  transform-origin: top;
                  transition: all 0.3s ease-out;
                  z-index: unset;
                }
              }
              &.active {
                .nav-hamburger__link {
                  &.has-grandchild {
                    position: relative;
                    &::after {
                      transform: rotate(45deg);
                    }
                  }
                }
                .nav-hamburger__list {
                  &.nav-hamburger__list--grandchild {
                    position: static;
                    transform: scaleY(1);
                    .nav-hamburger__item {
                      .nav-hamburger__link {
                        display: block;
                        height: 50px;
                        color: #666;
                        font-weight: 400;
                        font-size: 14px;
                        transition: color 0.3s ease-out;
                        &:hover {
                          color: #f00;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
} */
.nav-hamburger {
  .nav-hamburger__trigger {
    position: fixed;
    top: 10px;
    right: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    background-color: rgba(100, 100, 100, 0.8);
    border-radius: 5px;
    z-index: 1000;
    cursor: pointer;

    span {
      position: relative;
      display: block;
      width: 30px;
      height: 3px;
      background-color: #fff;
      transition: all 0.3s;

      &::before,
      &::after {
        position: absolute;
        content: "";
        width: 30px;
        height: 3px;
        background-color: #fff;
        transition: all 0.2s ease-out;
      }

      &::before {
        top: 8px;
      }

      &::after {
        bottom: 8px;
      }
    }

    &.open {
      span {
        background-color: transparent;

        &::before {
          top: 0;
          transform: rotate(45deg);
        }

        &::after {
          bottom: 0;
          transform: rotate(-45deg);
        }
      }
    }
  }

  .nav-hamburger__wrap {
    position: fixed;
    top: 80px;
    right: 0;
    width: clamp(18.75rem, 14.276rem + 22.37vw, 25rem);
    height: calc(100vh - 80px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    z-index: 1;

    .nav-hamburger__list {
      position: relative;
      /* height: calc(100vh - 100px); */
      height: auto;
      transform: scaleX(0);
      transform-origin: right;
      opacity: 0;
      background-color: #222;
      color: #fff;
      transition: all 0.2s ease-out;
      height: auto;
      z-index: 1001;

      &.active {
        transform: scaleX(1);
        opacity: 1;
      }

      .nav-hamburger__item {
        width: 100%;
        border-bottom: 1px solid #444;

        .nav-hamburger__link {
          position: relative;
          display: block;
          padding: 10px 15px 10px 4rem;
          color: #fff;
          font-size: 16px;
          /* font-size: clamp(1rem, 0.821rem + 0.89vw, 1.25rem);  */
          /* 20px-16px */
          font-weight: 600;
          text-decoration: none;
          transition: background-color 0.3s;

          &:hover {
            background-color: #555;
          }

          &.nav-hamburger__link--has-child::after {
            position: absolute;
            top: calc(20px - 0.25rem);
            left: 1rem;
            display: block;
            width: 1.25rem;
            height: 1.25rem;
            background-image: url(../images/icon_plus.svg);
            background-repeat: no-repeat;
            background-size: contain;
            background-position: center;
            transition: transform 0.3s ease-out;
            content: "";
          }
        }

        .nav-hamburger__list--child {
          display: none;
          background-color: #444;

          .nav-hamburger__item {
            .nav-hamburger__link {
              position: relative;
              padding-left: 4rem;
              color: #fff;
              font-size: 16px;
              /* font-size: clamp(1rem, 0.821rem + 0.89vw, 1.25rem); */
              font-weight: 500;

              &.nav-hamburger__link--has-grandchild {
                &::after {
                  position: absolute;
                  top: calc(20px - 0.25rem);
                  left: 1rem;
                  display: block;
                  width: 1.25rem;
                  height: 1.25rem;
                  background-image: url(../images/icon_plus.svg);
                  background-repeat: no-repeat;
                  background-size: contain;
                  background-position: center;
                  transition: transform 0.3s ease-out;
                  opacity: 0.3;
                  content: "";
                }
              }
            }

            .nav-hamburger__list {
              &.nav-hamburger__list--grandchild {
                height: 0;
                opacity: 0;
                transform-origin: top;
                transform: scaleY(0);
                transition: all 0.3s ease-out;

                .nav-hamburger__item {
                  .nav-hamburger__link {
                    position: relative;
                    padding-left: 4rem;
                    color: #fff;
                    background-color: #777;
                    font-size: 16px;
                    /* font-size: clamp(1rem, 0.821rem + 0.89vw, 1.25rem); */
                    font-weight: 500;
                    transition: all 0.3s ease-out;

                    &:hover {
                      color: #fff;
                      background-color: #222;
                    }
                  }
                }
              }
            }

            &.active {
              .nav-hamburger__link {
                &.nav-hamburger__link--has-grandchild {
                  &::after {
                    transform: rotate(45deg);
                  }
                }
              }
            }
          }
        }

        &.active {
          .nav-hamburger__link {
            &.nav-hamburger__link--has-child {
              &::after {
                transform: rotate(45deg);
              }
            }
          }

          .nav-hamburger__list--child {
            position: static;
            display: block;
            width: 100%;
            height: auto;
            transform: scaleY(1);
            opacity: 1;

            &::after {
              transform: rotate(45deg);
            }

            .nav-hamburger__item {
              .nav-hamburger__list {
                &.nav-hamburger__list--grandchild {
                  height: 0;
                  opacity: 0;
                  transform-origin: top;
                  transform: scaleY(0);
                  transition: all 0.3s ease-out;
                }
              }

              .nav-hamburger__link {}

              &.active {
                .nav-hamburger__list {
                  &.nav-hamburger__list--grandchild {
                    height: auto;
                    position: static;
                    height: auto;
                    opacity: 1;
                    transform: scaleY(1);
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

.outer-logo-wrap {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.logo-20th {
  display: block;
  height: 50px;
  aspect-ratio: 130/70;
  margin-top: 15px;
  margin-bottom: 15px;
  margin-left: 10px;
  width: auto;

  img {
    display: block;
    height: 100%;
    width: auto;
  }
}

.logo-20th__footer {
  width: 110px;
  margin-top: 40px;
  margin-bottom: 20px;

  img {
    display: block;
    width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
  }
}

.p-mark-base {
  position: relative;
  display: block;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;

  @media screen and (max-width: 767px) {
    padding-bottom: 55px;
  }

  .p-mark-link {
    position: absolute;
    right: -15%;
    top: 0;
    display: block;
    width: 50px;
    height: 50px;

    @media screen and (max-width: 767px) {
      right: 50%;
      top: unset;
      bottom: 0;
      transform: translateX(50%);
    }

    img {
      display: block;
      width: 100%;
      height: 100%;
    }
  }
}

.text-p-mark-link {
  display: inline-block;
  margin-left: 30px;
  width: 60px;
  height: 60px;
  vertical-align: top;

  img {
    display: block;
    width: 100%;
    height: 100%;
  }
}

.extra-page2 {
  padding-bottom: 0;
}

.footer-sitemap {
  height: unset;
}

@media screen and (max-width: 480px) {
  .logo-20th {
    display: none;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@media screen and (max-width: 1199px) {
  .container {
    width: 960px;
  }
}

@media screen and (max-width: 991px) {
  .container {
    width: 720px;
  }
}

@media screen and (max-width: 767px) {
  .container {
    width: 540px;
  }
}

@media screen and (max-width: 575px) {
  .container {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
  }
}

@media screen and (max-width: 1280px) {
  .web-g-nav {
    padding-right: 80px;
  }
}

@media screen and (max-width: 991px) {
  .web-g-nav {
    display: none;
  }

  .local-nav {
    display: none;
  }
}

.pt20 {
  padding-top: 20px;
}

.pt10 {
  padding-top: 10px;
}

.pt15 {
  padding-top: 15px;
}

.pb60 {
  padding-bottom: 60px;
}

.bn-smbs {
  display: block;
  width: 100%;
  height: auto;
  padding-top: 30px;
  padding-bottom: 30px;
  background-color: #ccc;
}


.bn-smbs .bn-smbs-wrap {
  display: grid;
  grid-template-columns: 320px 1fr 250px;
  gap: 15px;
  align-items: center;
}

@media screen and (max-width:991px) {
  .bn-smbs .bn-smbs-wrap {
    grid-template-columns: 1fr;
  }
}

.bn-smbs .bn-smbs-wrap.container::before {
  display: none;
}

.bn-smbs .bn-smbs-wrap.container::after {
  display: none;
}


.bn-smbs .bn-smbs-wrap .bn-smbs-logo {
  display: flex;
  align-items: center;
  width: 100%;
}

@media screen and (max-width:991px) {
  .bn-smbs .bn-smbs-wrap .bn-smbs-logo {
    max-width: 320px;
  }
}


.bn-smbs .bn-smbs-wrap .bn-smbs-logo img {
  display: block;
  width: 100%;
  height: auto;
}


.bn-smbs .bn-smbs-wrap .bn-smbs-content {
  height: auto;
}

.bn-smbs .bn-smbs-wrap .bn-smbs-content .bn-smbs-title {
  font-size: 26px;
  font-weight: 600;
  text-align: center;
  color: #000;
}

@media screen and (max-width:1280px) {
  .bn-smbs .bn-smbs-wrap .bn-smbs-content .bn-smbs-title {
    font-size: clamp(1.125rem, -0.597rem + 2.78vw, 1.625rem) !important;
    /* 26-18 1280-992 */
  }
}

@media screen and (max-width:991px) {
  .bn-smbs .bn-smbs-wrap .bn-smbs-content .bn-smbs-title {
    font-size: clamp(1rem, 0.523rem + 2.38vw, 2rem) !important;
    /* 32-16 992-320 */
    text-align: left;
  }
}

.bn-smbs .bn-smbs-wrap .bn-smbs-content .bn-smbs-text {
  font-size: clamp(0.938rem, 0.292rem + 1.04vw, 1.125rem) !important;
  /* 18-15 1280-992 */
  font-weight: 600;
  color: #000;
  text-align: center;
}

@media screen and (max-width:991px) {
  .bn-smbs .bn-smbs-wrap .bn-smbs-content .bn-smbs-text {
    font-size: clamp(0.875rem, 0.637rem + 1.19vw, 1.375rem) !important;
    /* 14-22 992-320 */
    text-align: left;
  }
}

.bn-smbs .bn-smbs-wrap .bn-smbs-link {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  color: #fff;
  background-color: #e93323;
  height: 50px;
  font-size: 18px;
  font-weight: 800;
  text-indent: -20px;
  border-radius: 9999px;
}

@media screen and (max-width:991px) {
  .bn-smbs .bn-smbs-wrap .bn-smbs-link {
    max-width: 320px;
    font-size: clamp(0.938rem, 0.848rem + 0.45vw, 1.125rem) !important;
    /* 18-15 991-320*/
    margin-top: 20px;
    margin-bottom: 20px;
  }
}

@media screen and (max-width: 767px) {
  .bn-smbs .bn-smbs-wrap .bn-smbs-link {
    height: 45px;
  }
}

.bn-smbs .bn-smbs-wrap .bn-smbs-logo {
  justify-content: center;
  max-width: 320px;
  margin-top: 20px;
  margin-bottom: 20px;
}

.bn-smbs .bn-smbs-wrap .bn-smbs-link span {
  position: absolute;
  top: 50%;
  right: 5px;
  display: block;
  width: 40px;
  height: 40px;
  padding: 8px;
  transform: translateY(-50%);
  border-radius: 50%;
  background-color: #fff;
}

@media screen and (max-width: 767px) {
  .bn-smbs .bn-smbs-wrap .bn-smbs-link span {
    width: 35px;
    height: 35px;
    padding: 5px;
  }
}

.bn-smbs .bn-smbs-wrap .bn-smbs-link span>img {
  display: block;
  width: 100%;
  height: auto;
  transform: translateX(0);
  transition: transform 0.2s ease-out;
}

.bn-smbs .bn-smbs-wrap .bn-smbs-link:hover span>img {
  transform: translateX(4px);
}

.footer-sitemap-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  height: fit-content;
  padding-bottom: 60px;
}

.footer.footer-standard h3 {
  margin-bottom: 0;
}

.footer.footer-standard .footer-list-item>li>.footer-list-item {
  margin-top: 15px;
}