@charset "UTF-8";
/* ▼▼▼ header
======================================================*/
header {
  position: fixed;
  background: none;
  z-index: 300;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
header .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 1324px;
}
header .container .header_inner {
  line-height: 1;
}
@media screen and (max-width: 767px) {
  header .container .header_inner {
    padding: 25px 0 0 20px;
    background: none;
  }
}
header .container .header_inner #site_title img {
  width: 100%;
  max-width: 245px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
@media screen and (max-width: 767px) {
  header .container .header_inner #site_title img {
    max-width: 190px;
  }
}
header .container .header_inner #site_title img.logo_w {
  display: none;
}
header .container .header_inner #site_title.white .logo_n {
  display: none;
}
header .container .header_inner #site_title.white .logo_w {
  display: block;
}
header .container #gnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 50px;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  header .container #gnav {
    background: url(../img/gnav_bg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    padding: 100px 20px 50px;
  }
}
header .container #gnav ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  header .container #gnav ul {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
  }
}
@media screen and (max-width: 767px) {
  header .container #gnav ul > li a {
    background: none;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    line-height: 55px;
    height: 55px;
    border-bottom: 1px solid rgba(200, 204, 214, 0.25);
  }
}
@media screen and (max-width: 767px) {
  header .container #gnav .tel_link {
    font-size: 30px;
    padding-left: 55px;
    font-weight: 500;
    line-height: 1.4;
    position: relative;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: 25px auto;
  }
  header .container #gnav .tel_link::before {
    content: "";
    background: url(../img/icon_tel_w.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 50px;
    height: 50px;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  header .container #gnav .tel_link span {
    display: block;
    font-size: 14px;
  }
}
@media screen and (max-width: 767px) {
  header .container #gnav .contact_link {
    text-align: center;
  }
}
header .container #gnav .contact_link a {
  background: #2B334E;
  padding: 0 26px 0 56px;
  height: 45px;
  line-height: 45px;
  border-radius: 100px;
  position: relative;
}
@media screen and (max-width: 767px) {
  header .container #gnav .contact_link a {
    background: #fff;
    padding: 14px 0;
    height: auto;
    line-height: 1.4;
    color: #2B334E;
    max-width: 250px;
    width: 100%;
  }
  header .container #gnav .contact_link a .sp {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
  }
}
header .container #gnav .contact_link a::before {
  content: "";
  background: url(../img/icon_contact.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 18px;
  height: 14px;
  position: absolute;
  left: 28px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  header .container #gnav .contact_link a::before {
    content: "";
    background: url(../img/arrow_n.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 13px;
    height: 5px;
    position: absolute;
    left: auto;
    right: 17px;
    top: 50%;
  }
}
header.scroll-nav {
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(17px);
          backdrop-filter: blur(17px);
}
@media screen and (max-width: 767px) {
  header.scroll-nav {
    height: 70px;
  }
}
header.scroll-nav .container #gnav ul {
  color: #2B334E;
}

#about header .link_about, #threeminutes header .link_about {
  position: relative;
}
#about header .link_about::before, #threeminutes header .link_about::before {
  content: "";
  background: #2B334E;
  width: 38px;
  height: 2px;
  position: absolute;
  top: calc(100% + 7px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  #about header .link_about::before, #threeminutes header .link_about::before {
    display: none;
  }
}

#service header .link_service {
  position: relative;
}
#service header .link_service::before {
  content: "";
  background: #2B334E;
  width: 38px;
  height: 2px;
  position: absolute;
  top: calc(100% + 7px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  #service header .link_service::before {
    display: none;
  }
}

#business header .link_business {
  position: relative;
}
#business header .link_business::before {
  content: "";
  background: #2B334E;
  width: 38px;
  height: 2px;
  position: absolute;
  top: calc(100% + 7px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  #business header .link_business::before {
    display: none;
  }
}

#recruit header #gnav ul, #interview header #gnav ul {
  color: #fff;
}
#recruit header #gnav ul .link_recruit, #interview header #gnav ul .link_recruit {
  position: relative;
}
#recruit header #gnav ul .link_recruit::before, #interview header #gnav ul .link_recruit::before {
  content: "";
  background: #fff;
  width: 38px;
  height: 2px;
  position: absolute;
  top: calc(100% + 7px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  #recruit header #gnav ul .link_recruit::before, #interview header #gnav ul .link_recruit::before {
    display: none;
  }
}
#recruit header.scroll-nav #gnav ul, #interview header.scroll-nav #gnav ul {
  color: #2B334E;
}
#recruit header.scroll-nav #gnav ul .link_recruit, #interview header.scroll-nav #gnav ul .link_recruit {
  position: relative;
}
#recruit header.scroll-nav #gnav ul .link_recruit::before, #interview header.scroll-nav #gnav ul .link_recruit::before {
  background: #2B334E;
}
@media screen and (max-width: 767px) {
  #recruit header.scroll-nav #gnav ul .link_recruit::before, #interview header.scroll-nav #gnav ul .link_recruit::before {
    display: none;
  }
}
#recruit header.scroll-nav .menu .icon::before, #recruit header.scroll-nav .menu .icon::after, #interview header.scroll-nav .menu .icon::before, #interview header.scroll-nav .menu .icon::after {
  border-top: 1px solid #2B334E;
}
#recruit header.scroll-nav .menu .icon span:before, #interview header.scroll-nav .menu .icon span:before {
  color: #2B334E;
}
#recruit header .menu .icon::before, #recruit header .menu .icon::after, #interview header .menu .icon::before, #interview header .menu .icon::after {
  border-top: 1px solid #fff;
}
#recruit header .menu .icon span::before, #interview header .menu .icon span::before {
  color: #fff;
}

@media screen and (max-width: 767px) {
  .menu {
    width: 50px;
    height: 50px;
    background: none;
    top: 13px;
    right: 13px;
  }
  .menu .icon {
    width: 38px;
    top: 35%;
    left: auto;
    right: 50%;
    -webkit-transform: translateX(50%);
            transform: translateX(50%);
    border: none;
  }
  .menu .icon::before, .menu .icon::after {
    content: "";
    width: 38px;
    height: 1px;
    border-top: 1px solid #2B334E;
  }
  .menu .icon::before {
    top: -4px;
  }
  .menu .icon::after {
    bottom: -4px;
  }
  .menu .icon span:before {
    content: "MENU";
    font-family: "Manrope", "Noto Sans JP", sans-serif;
    font-weight: bold;
    color: #2B334E;
    font-size: 10px;
    bottom: -22px;
  }
  .menu .icon.active {
    width: 30px;
    top: 50%;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
  .menu .icon.active::before, .menu .icon.active::after {
    border-top: 1px solid #fff;
    width: 30px;
  }
  .menu .icon.active::before {
    top: 0;
    right: 0;
  }
  .menu .icon.active::after {
    bottom: 0;
    right: 0;
  }
  .menu .icon.active span:before {
    display: none;
  }
}

/* ▼▼▼ footer
======================================================*/
footer {
  background: url(../img/footer_bg.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: visible;
  padding: 0 0 70px;
  position: relative;
  z-index: 3;
}
@media screen and (max-width: 767px) {
  footer {
    padding: 0 0 40px;
  }
}
footer #footer_inner {
  max-width: 965px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  overflow: visible;
}
footer #footer_inner #contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 70px;
  background: url(../img/contact_bg_pc.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  padding: 85px 0 90px;
  position: absolute;
  top: -176px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  max-width: 965px;
  width: 100%;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact {
    background: url(../img/contact_bg_sp.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    width: calc(100% - 40px);
    display: block;
    padding: 55px 25px;
    top: -183px;
  }
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .txt_wrap {
    margin-bottom: 25px;
  }
}
footer #footer_inner #contact .txt_wrap .ttl_wrap {
  margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .txt_wrap .ttl_wrap {
    margin-bottom: 25px;
  }
}
footer #footer_inner #contact .txt_wrap .ttl_wrap .sec_ttl {
  font-size: 62px;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .txt_wrap .ttl_wrap .sec_ttl {
    font-size: 42px;
  }
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .txt_wrap .ttl_wrap .sec_ttl .sub {
    font-size: 10px;
    margin-bottom: 5px;
  }
}
footer #footer_inner #contact .txt_wrap .txt {
  font-weight: bold;
  line-height: 1.8;
}
footer #footer_inner #contact .link_wrap .tel {
  display: block;
  font-size: 33px;
  font-weight: 500;
  line-height: 1.4;
  padding-left: 90px;
  position: relative;
  margin-bottom: 25px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .link_wrap .tel {
    font-size: 30px;
    padding-left: 60px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto 25px;
  }
}
footer #footer_inner #contact .link_wrap .tel::before {
  content: "";
  background: url(../img/icon_tel.svg);
  background-size: cover;
  background-repeat: no-repeat;
  width: 67px;
  height: 67px;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .link_wrap .tel::before {
    width: 55px;
    height: 55px;
  }
}
footer #footer_inner #contact .link_wrap .tel span {
  display: block;
  font-size: 15px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .link_wrap .tel span {
    font-size: 14px;
  }
}
footer #footer_inner #contact .btn_contact {
  display: block;
  background: #2B334E;
  color: #fff;
  font-weight: 500;
  padding: 16px 0 19px;
  border-radius: 100px;
  position: relative;
  max-width: 340px;
  width: 100%;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .btn_contact {
    max-width: 270px;
    width: 100%;
    margin: 0 auto;
  }
}
footer #footer_inner #contact .btn_contact span {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: 60px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .btn_contact span {
    margin-left: 55px;
  }
}
footer #footer_inner #contact .btn_contact::before {
  content: "";
  background: url(../img/arrow.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 13px;
  height: 6px;
  position: absolute;
  right: 33px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  footer #footer_inner #contact .btn_contact::before {
    right: 20px;
  }
}
footer #footer_inner .other_wrap {
  padding-top: 230px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  color: #fff;
}
@media screen and (max-width: 767px) {
  footer #footer_inner .other_wrap {
    padding-top: 300px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 50px;
    padding-bottom: 75px;
  }
}
footer #footer_inner .other_wrap .info_wrap {
  font-size: 13px;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  footer #footer_inner .other_wrap .info_wrap {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    font-size: 10px;
  }
}
footer #footer_inner .other_wrap .info_wrap .top_link {
  max-width: 213px;
  width: 100%;
  margin-bottom: 35px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner .other_wrap .info_wrap .top_link {
    margin-bottom: 30px;
  }
}
footer #footer_inner .other_wrap .info_wrap .top_link img {
  width: 100%;
}
footer #footer_inner .other_wrap .info_wrap .addr {
  margin-bottom: 13px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner .other_wrap .info_wrap .addr {
    margin-bottom: 10px;
  }
}
@media screen and (max-width: 767px) {
  footer #footer_inner .other_wrap .pagelink_wrap {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
footer #footer_inner .other_wrap .pagelink_wrap .pagelink {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 38px;
  font-size: 15px;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  footer #footer_inner .other_wrap .pagelink_wrap .pagelink {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 25px 18px;
  }
}
@media screen and (max-width: 767px) {
  footer #footer_inner .other_wrap .pagelink_wrap .pagelink li {
    width: calc((100% - 18px) / 2);
  }
  footer #footer_inner .other_wrap .pagelink_wrap .pagelink li a {
    width: 100%;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(200, 204, 214, 0.25);
    font-size: 13px;
  }
}
footer #footer_inner .flex_wrap {
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 25px;
  position: absolute;
  right: 0;
  bottom: 0;
  font-size: 13px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner .flex_wrap {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 15px;
    right: 50%;
    -webkit-transform: translateX(50%);
            transform: translateX(50%);
    font-size: 11px;
  }
}
footer #footer_inner #copyright {
  font-size: 11px;
}
@media screen and (max-width: 767px) {
  footer #footer_inner #copyright {
    font-size: 10px;
  }
}
footer .pagetop {
  height: 130px;
  width: 45px;
  color: #2B334E;
  font-size: 15px;
  font-weight: bold;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  z-index: 2000;
  position: fixed;
  right: 15px;
  bottom: 25px;
  cursor: pointer;
  padding: 0 10px 55px;
}
@media screen and (max-width: 767px) {
  footer .pagetop {
    height: 108px;
    width: 38px;
    font-size: 11px;
    right: 0;
  }
}
footer .pagetop::before {
  content: "";
  background: #2B334E;
  width: 1px;
  height: 47px;
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}