@charset "UTF-8";
/*
Theme Name:オリジナルテーマ
*/
body main .fv {
  position: relative;
  height: 100vh;
  width: 100%;
  background-size: cover;
  margin-bottom: min(200px, 15.625vw);
  z-index: -1;
}
@media screen and (max-width: 767px) {
  body main .fv {
    height: min(1080px, 140.8083441982vw);
  }
}
body main .fv-text-box {
  width: 100%;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}
body main .fv-text-box .top {
  text-shadow: 4px 5px 5px #494949;
  font-size: clamp(48px, min(64px, 3.3333333333vw), 64px);
  color: #ffffff;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  body main .fv-text-box .top {
    font-size: min(72px, 9.3872229465vw);
  }
}
body main .fv-text-box .top span {
  font-size: clamp(24px, min(32px, 1.6666666667vw), 32px);
}
@media screen and (max-width: 767px) {
  body main .fv-text-box .top span {
    font-size: min(48px, 6.258148631vw);
  }
}
body main .fv-text-box .middle {
  text-shadow: 4px 5px 5px #494949;
  font-size: clamp(24px, min(40px, 2.0833333333vw), 40px);
  letter-spacing: min(10px, 0.5208333333vw);
  color: #ffffff;
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  body main .fv-text-box .middle {
    font-size: min(40px, 5.2151238592vw);
    line-height: 1.2;
  }
}
body main .fv-text-box img {
  max-width: 245px;
  margin-top: min(15px, 0.78125vw);
}
@media screen and (max-width: 767px) {
  body main .fv-text-box img {
    max-width: min(245px, 31.9426336375vw);
    margin-top: min(20px, 2.6075619296vw);
  }
}
body main .video-box {
  width: 100%;
  height: 100vh;
  background-color: rgba(51, 172, 243, 0.4);
  position: relative;
  overflow: hidden;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  body main .video-box {
    height: 100%;
  }
}
body main .video-box:after {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(51, 172, 243, 0.4);
  background-image: radial-gradient(#2aafa9 10%, transparent 10%);
  background-size: 20px 20px;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
}
body main .video-box video {
  width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}
@media screen and (max-width: 767px) {
  body main .video-box video {
    width: auto;
    height: 100%;
  }
}
body main #promise {
  position: relative;
  line-height: 2;
  margin-bottom: min(160px, 12.5vw);
}
body main #promise .promise-wrap {
  margin: auto;
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: min(1280px, 100vw);
  padding-left: min(100px, 7.8125vw);
  padding-right: min(100px, 7.8125vw);
}
@media screen and (max-width: 767px) {
  body main #promise .promise-wrap {
    max-width: min(687px, 89.5697522816vw);
    padding-left: min(40px, 5.2151238592vw);
    padding-right: min(40px, 5.2151238592vw);
    align-items: center;
    flex-direction: column;
  }
}
body main #promise .promise-wrap .left-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (max-width: 767px) {
  body main #promise .promise-wrap .left-box {
    margin-bottom: min(40px, 5.2151238592vw);
  }
}
body main #promise .promise-wrap .left-box .left-box-title {
  font-size: clamp(20px, min(40px, 3.125vw), 40px);
  color: #0023ad;
  text-align: center;
}
@media screen and (max-width: 767px) {
  body main #promise .promise-wrap .left-box .left-box-title {
    font-size: clamp(32px, min(40px, 3.125vw), 40px);
  }
}
body main #promise .promise-wrap .left-box img {
  width: min(215px, 16.796875vw);
  height: auto;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  body main #promise .promise-wrap .left-box img {
    width: min(215px, 28.0312907432vw);
  }
}
body main #promise .promise-wrap .right-box {
  max-width: min(560px, 43.75vw);
  display: flex;
  flex-direction: column;
  align-content: flex-start;
  justify-content: space-evenly;
}
@media screen and (max-width: 767px) {
  body main #promise .promise-wrap .right-box {
    align-items: center;
    max-width: min(560px, 73.0117340287vw);
  }
}
body main #promise .promise-wrap .right-box p {
  margin-bottom: min(80px, 6.25vw);
}
body main #promise .promise-wrap .right-box .long-logo-wrap {
  z-index: -1;
  display: flex;
  align-items: center;
  position: absolute;
  left: 0;
  bottom: min(-40px, -3.125vw);
}
body main #promise .promise-wrap .right-box .long-logo-wrap .long-logo {
  animation: scroll-left 25s infinite linear;
  width: 150vw;
  padding-right: min(160px, 12.5vw);
}
@media screen and (max-width: 767px) {
  body main #promise .promise-wrap .right-box .long-logo-wrap .long-logo {
    width: 200vw;
  }
}
@keyframes scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
body main #service {
  margin-bottom: min(160px, 12.5vw);
}
body main #service img {
  box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, 0.2);
}
body main #service .service-wrap {
  width: 100%;
  line-height: 1.6;
  max-width: min(1480px, 100vw);
  padding-left: min(100px, 6.7567567568vw);
  padding-right: min(100px, 6.7567567568vw);
  margin: 0 auto;
}
body main #service .service-wrap .title-box {
  display: flex;
  flex-direction: column;
  margin-bottom: min(80px, 5.4054054054vw);
}
@media screen and (max-width: 767px) {
  body main #service .service-wrap .title-box {
    align-items: flex-start;
    flex-direction: column;
    margin-bottom: min(80px, 10.4302477184vw);
  }
}
body main #service .service-wrap .title-box h2 {
  color: #007cc9;
}
body main #service .service-wrap .title-box p {
  color: #0023ad;
}
body main #service .service-wrap .service-box {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  body main #service .service-wrap .service-box {
    align-items: center;
    flex-direction: column;
  }
}
body main #service .service-wrap .service-box .left-box,
body main #service .service-wrap .service-box .right-box {
  width: min(600px, 40.5405405405vw);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (max-width: 767px) {
  body main #service .service-wrap .service-box .left-box,
  body main #service .service-wrap .service-box .right-box {
    margin-bottom: min(80px, 10.4302477184vw);
    width: 100%;
  }
}
body main #service .service-wrap .service-box .left-box img,
body main #service .service-wrap .service-box .right-box img {
  width: 100%;
  margin-bottom: min(40px, 2.7027027027vw);
}
@media screen and (max-width: 767px) {
  body main #service .service-wrap .service-box .left-box img,
  body main #service .service-wrap .service-box .right-box img {
    margin-bottom: min(40px, 5.2151238592vw);
  }
}
body main #service .service-wrap .service-box .left-box h3,
body main #service .service-wrap .service-box .right-box h3 {
  color: #0023ad;
  margin-bottom: min(20px, 1.3513513514vw);
}
@media screen and (max-width: 767px) {
  body main #service .service-wrap .service-box .left-box h3,
  body main #service .service-wrap .service-box .right-box h3 {
    margin-bottom: min(20px, 2.6075619296vw);
  }
}
body main #service .service-wrap .service-box .left-box p,
body main #service .service-wrap .service-box .right-box p {
  margin-bottom: min(40px, 2.7027027027vw);
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  body main #service .service-wrap .service-box .left-box p,
  body main #service .service-wrap .service-box .right-box p {
    margin-bottom: 20px;
  }
}
body main #feature {
  margin-bottom: min(160px, 12.5vw);
}
body main #feature img {
  box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, 0.2);
}
body main #feature .feature-wrap {
  width: 100%;
  max-width: min(1720px, 100vw);
  padding-left: min(100px, 5.8139534884vw);
  padding-right: min(100px, 5.8139534884vw);
  line-height: 1.6;
  margin: 0 auto;
}
body main #feature .feature-wrap .feature-title-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: min(80px, 4.6511627907vw);
}
body main #feature .feature-wrap .feature-title-box h2 {
  color: #0023ad;
}
body main #feature .feature-wrap .feature-title-box p {
  color: #0023ad;
}
body main #feature .feature-wrap .feature-box {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  body main #feature .feature-wrap .feature-box {
    align-items: center;
    flex-direction: column;
  }
}
body main #feature .feature-wrap .feature-box .feature-item {
  width: min(480px, 27.9069767442vw);
}
@media screen and (max-width: 767px) {
  body main #feature .feature-wrap .feature-box .feature-item {
    width: 100%;
    max-width: 480px;
    margin-bottom: min(80px, 10.4302477184vw);
  }
}
body main #feature .feature-wrap .feature-box .feature-item img {
  width: 100%;
  object-fit: cover;
  margin-bottom: min(40px, 2.3255813953vw);
}
@media screen and (max-width: 767px) {
  body main #feature .feature-wrap .feature-box .feature-item img {
    margin-bottom: 10px;
  }
}
body main #feature .feature-wrap .feature-box .feature-item h3 {
  color: #0023ad;
  text-align: center;
  margin-bottom: min(20px, 1.1627906977vw);
}
@media screen and (max-width: 767px) {
  body main #feature .feature-wrap .feature-box .feature-item h3 {
    margin-bottom: 7px;
  }
}
body main #feature .feature-wrap .feature-box .feature-item p {
  font-weight: normal;
}
body main #flow {
  display: flex;
  justify-content: center;
  max-width: 100vw !important;
  background-color: #333333;
}
body main #flow .flow-wrap {
  width: 100%;
  max-width: min(1280px, 100vw);
  padding-left: min(100px, 7.8125vw);
  padding-right: min(100px, 7.8125vw);
  padding-top: min(160px, 12.5vw);
  padding-bottom: min(160px, 12.5vw);
  margin: 0 auto;
}
body main #flow .flow-wrap .title-box {
  display: flex;
  flex-direction: column;
  margin-bottom: min(64px, 5vw);
}
body main #flow .flow-wrap .title-box h2 {
  color: #fff;
}
body main #flow .flow-wrap .title-box p {
  color: #fff;
}
body main #flow .flow-wrap .flow-item-box {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(40px, 3.125vw);
  max-width: min(1080px, 84.375vw);
  margin: auto;
}
@media screen and (max-width: 767px) {
  body main #flow .flow-wrap .flow-item-box {
    grid-template-columns: 1fr;
  }
}
body main #flow .flow-wrap .flow-item-box .flow-item {
  box-sizing: border-box;
  padding: min(40px, 3.125vw);
  background-color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: 8px 8px 0px 0px rgb(0, 0, 0);
}
@media screen and (max-width: 767px) {
  body main #flow .flow-wrap .flow-item-box .flow-item {
    padding: min(40px, 5.2151238592vw);
  }
}
body main #flow .flow-wrap .flow-item-box .flow-item img {
  margin-bottom: min(40px, 3.125vw);
  width: clamp(40px, min(80px, 6.25vw), 80px);
}
body main #flow .flow-wrap .flow-item-box .flow-item h3 {
  margin-bottom: min(20px, 1.5625vw);
  font-weight: normal;
}
body main #flow .flow-wrap .flow-item-box .flow-item p {
  text-align: left;
  font-weight: normal;
}
body main #review {
  background-color: #efefef;
  padding: min(160px, 9.3023255814vw) 0;
  max-width: 100vw !important;
  display: flex;
  justify-content: center;
}
body main #review .review-wrap {
  width: 100%;
  max-width: min(1720px, 100vw);
  padding-left: min(100px, 5.8139534884vw);
  padding-right: min(100px, 5.8139534884vw);
  margin: 0 auto;
}
body main #review .review-wrap .title-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: min(80px, 6.25vw);
}
body main #review .review-wrap .title-box h2 {
  color: #000;
}
body main #review .review-wrap .title-box p {
  color: #000;
}
body main #review .review-wrap .review-box {
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  body main #review .review-wrap .review-box {
    flex-direction: column;
  }
}
body main #review .review-wrap .review-box .review-item {
  max-width: min(320px, 18.6046511628vw);
  padding: min(40px, 2.3255813953vw);
  background-color: #fff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 767px) {
  body main #review .review-wrap .review-box .review-item {
    max-width: 100%;
    margin-bottom: min(40px, 5.2151238592vw);
    padding: min(40px, 5.2151238592vw);
  }
}
body main #review .review-wrap .review-box .review-item p.top {
  width: min(240px, 13.9534883721vw);
  font-weight: bold;
  margin-bottom: min(20px, 1.5625vw);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  body main #review .review-wrap .review-box .review-item p.top {
    width: 100%;
    margin-bottom: min(20px, 2.6075619296vw);
  }
}
body main #review .review-wrap .review-box .review-item p {
  width: min(240px, 13.9534883721vw);
  line-height: 1.6;
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  body main #review .review-wrap .review-box .review-item p {
    width: 100%;
  }
}