@charset "UTF-8";
html, body, h1, h2, h3, h4, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td, address, figure {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: 500;
  font-size: 100%;
  vertical-align: bottom;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
article, header, footer, aside, figure, figcaption, nav, section, main {
  display: block;
}
body {
  line-height: 1.66;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-size: 15px;
  font-size: 1.5rem;
  letter-spacing: .04em;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  overflow-x: hidden;
}
ol, ul {
  list-style: none;
  list-style-type: none;
}
address {
  font-style: normal;
}
a:hover img {
  opacity: .7;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
.cf:after {
  content: " ";
  display: block;
  clear: both;
}
/* 適宜変更▼▼▼ */
a:link, a:visited {
  text-decoration: none;
  color: inherit;
}
a:hover, a:active {
  text-decoration: underline;
  color: inherit;
}

/*******************************/
/*共通項目*/
/*******************************/
.sp {
  display: none;
}
.pc.block {
  display: block;
}
br.pc {
  display: inline;
}
.pc.inline-block {
  display: inline-block;
}
.inner {
  width: 960px;
  margin: 0 auto;
}
.fontB {
  font-weight: bold;
}
.txtC {
  text-align: center;
}
.txtR {
  text-align: right;
}
.f15 {
  font-size: 1.5em;
}
/*******************************/
/*LP*/
/*******************************/
#contents section {
  position: relative;
}
#contents section:after {}
#sec01 .txt {
  text-align: center;
  word-break: keep-all;
}
#sec01 {
  background-color: #ffae5e;
  background-image: url(../img/mv_bg_sp.png);
  background-position: center 20px;
  background-size: contain;
  background-repeat: no-repeat;
  padding: 0px 0px 90px;
  overflow: hidden;
  text-align: center;
}
@media screen and (min-width: 768px) {
  #sec01 {
    background-image: url(../img/mv_bg.png);
    background-size: auto;
    padding: 90px 0px 90px;
    overflow: hidden;
    text-align: left;
  }
}
#sec01 .cts-wrapper {
  padding-inline: 20px;
}
#sec01 .loop {
  margin-bottom: 50px;
}
#sec02 {
  padding: clamp(3.75rem, 0.172rem + 15.27vw, 7.5rem) 20px 0;
  padding-top: clamp(2.5rem, -1.078rem + 15.27vw, 6.25rem);
  background: #444447;
  border-radius: clamp(1.875rem, 0.086rem + 7.63vw, 3.75rem);
}
#sec02:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(0deg, #dcdcdc 50%, #ffaf5e 100%);
  width: 100%;
  height: 100%;
  z-index: -1;
}
#sec02 * {
  position: relative;
  z-index: 2;
}
#sec02:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -160px;
  margin: auto;
  background: url(../img/okomari_bg_v.png)no-repeat center bottom;
  width: 100%;
  height: 100%;
  z-index: 1;
}
#sec03 {
  background: #dcdcdc;
  padding: 200px 0 180px;
}
#sec03 .cts-wrapper {
  padding-inline: 20px;
}
#sec04 {
  background: #444447;
  border-radius: clamp(1.875rem, 0.086rem + 7.63vw, 3.75rem);
  padding: clamp(3.75rem, 0.172rem + 15.27vw, 7.5rem) 0;
}
#sec04 * {
  position: relative;
  z-index: 2;
  color: #fff
}
#contents #sec04:before {
  content: "";
  position: absolute;
  top: -6%;
  left: -1%;
  right: 0;
  background: url(../img/result_top.png)no-repeat;
  background-size: 100%;
  width: 37.5%;
  padding: calc(37.5% / 2);
  max-width: 522px;
  aspect-ratio: 29/26;
  z-index: 2;
}
#contents #sec04:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, #dcdcdc 50%, #ffaf5e 100%);
  width: 100%;
  height: 100%;
  z-index: -1;
}
#sec04 h2 {
  font-size: clamp(2.5rem, 0.83rem + 7.12vw, 4.25rem);
  font-weight: 700;
  text-align: center;
  color: #fff;
}
#sec04 .txt {
  max-width: 850px;
  margin-inline: auto;
  padding-inline: 20px;
  margin-top: clamp(2.5rem, 0.711rem + 7.63vw, 4.375rem);
  line-height: 2;
  font-size: clamp(1rem, 0.761rem + 1.02vw, 1.25rem);
}
#sec05 {
  background: #ffae5e;
  padding: clamp(3.75rem, 0.172rem + 15.27vw, 7.5rem) 10px;
}
#sec06 {
  background: #444447;
  font-size: 20px;
  color: #fff;
  padding: clamp(3.75rem, 0.172rem + 15.27vw, 7.5rem) 10px;
  position: relative;
  border-radius: clamp(1.875rem, 0.086rem + 7.63vw, 3.75rem);
}
#sec06 * {
  position: relative;
  z-index: 1
}
#sec06:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(0deg, #dcdcdc 50%, #ffaf5e 100%);
  width: 100%;
  height: calc(100% + clamp(3.75rem, 0.172rem + 15.27vw, 7.5rem));
  z-index: -1;
}
#sec07 {
  background: #dcdcdc;
  padding: clamp(3.75rem, 0.172rem + 15.27vw, 7.5rem) 10px;
  font-size: 24px;
}
#sec07 .flow_list_box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  max-width: 1000px;
  margin: auto;
}
#sec07 .flow_ttl {
  text-align: center;
  margin: auto;
  margin-bottom: 50px;
  font-size: clamp(1.125rem, 0.767rem + 1.53vw, 1.5rem);
}
#sec07 .flow_list_box h2 {
  text-align: center;
  padding: 20px;
}
#sec07 ol {
  font-size: clamp(1.313rem, 0.895rem + 1.78vw, 1.75rem);
  display: table;
  margin-inline: auto;
}
#sec07 ol li {
  position: relative;
  padding-bottom: 70px;
  font-weight: 700;
}
#sec07 ol li:not(:last-of-type):after {
  content: "";
  background: url(../img/step_arrow.png) no-repeat center;
  background-size: contain;
  width: 50px;
  aspect-ratio: 25/17;
  position: absolute;
  left: 30px;
  bottom: 15px;
}
#sec07 ol li span {
  height: 0;
  display: inline-block;
  vertical-align: middle;
  overflow: hidden;
  background-image: url(../img/step01.svg);
  background-repeat: no-repeat;
  background-position: left center;
  padding-top: 24px;
  width: 120px;
}
#sec07 ol li:nth-child(2) span {
  background-image: url(../img/step02.svg);
}
#sec07 ol li:nth-child(3) span {
  background-image: url(../img/step03.svg);
}
#sec07 ol li:nth-child(4) span {
  background-image: url(../img/step04.svg);
}
#sec07 ol li:nth-child(5) span {
  background-image: url(../img/step05.svg);
}
#sec07 ol li:nth-child(6) span {
  background-image: url(../img/step06.svg);
}
footer {
  background: url(../img/f_bg_sp.jpg)no-repeat top center;
  background-size: cover!important;
  color: #fff;
  padding: clamp(3.75rem, 0.172rem + 15.27vw, 7.5rem) 20px;
  box-sizing: border-box;
  text-align: center;
}
footer .txt {
  word-break: keep-all;
}
@media screen and (min-width: 768px) {
  #contents #sec04:before {
        padding: 260px;
        width: 0;
        background-size: auto;
    }
  #sec07 .flow_ttl {
    margin: auto;
    flex-basis: 50%;
  }
  #sec07 ol li {
    padding-bottom: 40px;
  }
  #sec07 ol li:not(:last-of-type):after {
    bottom: 0;
  }
  footer {
    background: url(../img/f_bg.jpg)no-repeat top center;
  }
}
.loop {
  display: flex;
  overflow: hidden;
}
.loop img {
  animation: infinity-scroll-left 50s infinite linear both;
  margin-right: 20px
}
#sec01 .mv {
  padding-top: 20px;
  padding-inline: 50px;
  margin-bottom: 50px;
  max-width: 1200px;
  margin-inline: auto;
}
#sec01 .logo, footer .logo {
  text-align: center;
  font-size: clamp(1.05rem, 0.382rem + 2.85vw, 1.75rem);
  font-weight: bold;
  margin-bottom: 20px;
}
#sec01 .btn, footer .btn {
  max-width: 540px;
  margin-inline: auto;
}
#sec01 .btn, footer .btn {
  margin-bottom: 30px;
}
#sec01 .btn a, footer .btn a{
    display: block;
}
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0)
  }
  to {
    transform: translateX(-100%)
  }
}
.fs40 {
  font-size: clamp(1.438rem, 0.424rem + 4.33vw, 2.5rem);
}
.bold {
  font-weight: 700;
}
#sec02 h2 {
  color: #fff;
  font-size: clamp(1.875rem, 0.086rem + 7.63vw, 3.75rem);
  text-align: center;
  max-width: 760px;
  margin: auto;
  margin-bottom: 40px;
  font-weight: 700;
}
#sec02 .okomari_ttl {
  padding-top: 20px;
  text-align: center;
  margin-bottom: 40px;
}
#sec02 .okomari_box {
  background-color: #fff;
  border: solid clamp(0.625rem, -1.76rem + 10.18vw, 3.125rem) #fc7e21 !important;
  border-radius: clamp(1.875rem, 0.086rem + 7.63vw, 3.75rem);
  position: relative;
  max-width: 1000px;
  margin-inline: auto;
  font-size: clamp(1.063rem, 0.645rem + 1.78vw, 1.5rem);
}
#sec02 .okomari_inner {
  position: relative;
  padding: clamp(1.25rem, -2.328rem + 15.27vw, 5rem) clamp(1.25rem, -1.732rem + 12.72vw, 4.375rem);
}
#sec02 .okomari_inner:before {
  content: "";
  position: absolute;
  top: 80px;
  right: -30px;
  width: 14%;
  background: url(../img/okomari_r.png)no-repeat bottom right;
  aspect-ratio: 50/121;
  background-size: contain;
}
#sec02 .okomari_inner:after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: -30px;
  background: url(../img/okomari_l.png)no-repeat center bottom;
  aspect-ratio: 100/117;
  background-size: contain;
  width: 20%;
}
@media screen and (max-width: 500px) {
  #sec02 .okomari_inner:before {
    width: 20%;
    top: -70px;
    right: -30px;
  }
  #sec02 .okomari_inner:after {
    width: 27%;
    left: -20px;
    bottom: -70px;
  }
}
#sec02 .okomari_box .okomari_list {
  margin-inline: auto;
  display: table;
}
#sec02 .okomari_box .okomari_list li {
  padding-left: 46px;
  position: relative;
  margin-bottom: 30px;
}
#sec02 .okomari_box .okomari_list li:before {
  content: "";
  background: url(../img/check.svg)no-repeat left;
  aspect-ratio: 41/35;
  position: absolute;
  left: 0;
  top: 5px;
  margin: auto;
  width: clamp(1.781rem, 1.095rem + 2.93vw, 2.5rem);
  background-size: contain;
}
#sec02 .okomari_box:before {
  content: "";
  background: #fc4f21;
  aspect-ratio: 30/8;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(clamp(1.875rem, 0.086rem + 7.63vw, 3.75rem)*(-1));
  margin: auto;
  width: 30%;
  border-radius: 0 0 30px 30px;
}
#sec02 .okomari_box h3 {
  text-align: center;
  max-width: 488px;
  margin-inline: auto;
}
#sec02 .last_txt {
  font-size: clamp(1.563rem, 0.072rem + 6.36vw, 3.125rem);
  color: #fff;
  background: url(../img/okomari_bg.png) no-repeat center;
  background-size: contain;
  aspect-ratio: 17/8;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 510px;
  margin: auto;
  text-align: center;
  padding: 30px;
  position: relative;
  bottom: -100px;
  line-height: 1.4;
  font-weight: 700;
}
#sec03 h2 {
  font-size: clamp(2.5rem, 0.115rem + 10.18vw, 5rem);
  line-height: 1.125;
  font-weight: 700;
  text-align: center;
  margin-bottom: 40px;
}
#sec03 h3 {
  font-weight: bold;
  text-align: center;
}
#sec03 .table-wrap {
  overflow-x: scroll;
  max-width: 1100px;
  margin-inline: auto;
}
#sec03 table {
  background: #dcdcdc;
  border-spacing: 1px;
  margin-top: 80px;
  margin-inline: auto;
  max-width: 1100px;
  width: 100%;
  white-space: nowrap;
}
#sec03 table th {
  color: #fc7e21 !important;
  font-weight: 700;
}
#sec03 table .bg_black {
  background: #000;
  color: #fff;
  text-align: center;
  vertical-align: middle;
  font-weight: 700;
}
#sec03 table .bg_orange {
  background: #fc7e21;
  color: #fff !important;
}
#sec03 table th.bg_orange {
  padding-top: 20px;
  padding-bottom: 0;
  position: relative;
  top: -20px;
  bottom: 0px;
  height: calc(100% + 20px);
  margin: auto;
  z-index: 1;
  font-size: clamp(1rem, 0.523rem + 2.04vw, 1.5rem);
}
#sec03 table th.bg_orange:after {
  content: "";
  background: #fc7e21;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  bottom: -20px;
  z-index: -1
}
#sec03 table td, #sec03 table th {
  background: #fff;
  padding: 10px;
  text-align: center;
  font-size: clamp(0.875rem, 0.517rem + 1.53vw, 1.25rem);
  width: 275px;
  vertical-align: middle;
}
#sec03 table td{
  min-width:165px!important;
}
#sec03 table td small{
  font-size:80%;
}
#sec03 h3 {
  padding: 20px 40px;
  text-align: center;
}
#sec03 .txt {
  font-size: clamp(1.125rem, 1.006rem + 0.51vw, 1.25rem);
  line-height: 2;
  text-align: left;
  max-width: 850px;
  padding-inline: 10px;
  line-height: 2;
  display: table;
  margin-inline: auto;
}
#sec04 .loop img {
  aspect-ratio: 30/19;
  height: auto;
  min-width: 60vw;
  margin: 0;
}
.before_after {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  justify-content: center;
  padding: 20px;
  margin-bottom: 80px;
}
.before_after .before_after_arrow {
  position: absolute !important;
  bottom: 10%;
  right: 10%;
  max-width: 34vw;
}
.before_box, .after_box {
  text-align: center;
  font-size: 28px;
  flex-basis: calc(50% - 20px);
  margin-inline: auto;
}
#sec04 .before_box {
  padding-top: 200px;
}
#sec04 .after_box {
  padding-bottom: 240px;
}
.before_box .price, .after_box .price {
  font-size: 46px;
  font-weight: bold;
  display: table;
  margin-inline: auto;
  position: relative;
}
.before_box .price:after {
  content: "";
  width: 100%;
  height: 16px;
  background: #40afde;
  position: absolute;
  bottom: 10px;
  left: 0;
  z-index: -1;
  border-radius: 4px;
  opacity: 0.5;
}
.after_box .price:after {
  content: "";
  width: 100%;
  height: 16px;
  background: #f97f24;
  position: absolute;
  bottom: 10px;
  left: 0;
  z-index: -1;
  border-radius: 4px;
  opacity: 0.5;
}
.before_box h3 {
  overflow: hidden;
  height: 0;
  background: url(../img/before.svg)no-repeat center;
  aspect-ratio: 85/26;
  padding-top: 78px;
  margin-left: auto;
  margin-bottom: 20px;
}
.before_box h4 {
  font-size: 32px;
  background: #3eb1e0;
  border-radius: 30px;
  text-align: center;
  max-width: 380px;
  margin: 20px auto;
}
.after_box h3 {
  overflow: hidden;
  height: 0;
  background: url(../img/after.svg)no-repeat center;
  aspect-ratio: 85/26;
  padding-top: 78px;
  margin-left: auto;
  margin-bottom: 20px;
}
.after_box h4 {
  font-size: 32px;
  background: #f97f24;
  border-radius: 30px;
  text-align: center;
  max-width: 380px;
  margin: 20px auto;
}
.merit_ttl {
  padding: 0 40px;
  margin-bottom: 40px;
  text-align: center;
  max-width: 468px;
  margin-inline: auto;
}
.merit_list {
  display: flex;
  flex-wrap: wrap;
  max-width: 1000px;
  margin-inline: auto;
  margin-bottom: 120px;
}
.merit_list li {
  flex-basis: 100%;
  flex-direction: column;
  display: flex;
  justify-content: center;
  align-items: center;
  border-top: solid 1px;
  border-left: solid 1px;
  border-right: solid 1px;
  font-size: clamp(1.125rem, 0.767rem + 1.53vw, 1.5rem);
  padding: 50px;
  text-align: center;
  position: relative;
  color: #222;
}
.merit_list li span {
  display: block;
  margin-top: 10px;
}
.merit_list li:last-child {
  border-bottom: solid 1px;
}
.merit_list li:after {
  content: "";
  background-color: #222;
  background-repeat: no-repeat;
  background-position: center;
  width: clamp(3.281rem, 2.238rem + 4.45vw, 4.375rem);
  height: clamp(3.281rem, 2.238rem + 4.45vw, 4.375rem);
  background-size: 60%;
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
}
.merit_list li:nth-child(1):after {
  background-image: url(../img/01.svg)
}
.merit_list li:nth-child(2):after {
  background-image: url(../img/02.svg)
}
.merit_list li:nth-child(3):after {
  background-image: url(../img/03.svg)
}
.merit_list li:nth-child(4):after {
  background-image: url(../img/04.svg)
}
.merit_list li:nth-child(5):after {
  background-image: url(../img/05.svg)
}
.merit_list li:nth-child(6):after {
  background-image: url(../img/06.svg)
}
@media screen and (min-width: 768px) {
  .merit_list li {
    flex-basis: calc(100% / 3);
    max-width: calc(100% / 3);
    aspect-ratio: 1 / 1;
    word-break: keep-all;
    border-right: 0;
  }
  .merit_list li:nth-child(n+4) {
    border-bottom: solid 1px;
  }
  .merit_list li:nth-child(3n) {
    border-right: solid 1px;
  }
}
.location_ttl {
  padding: 0 40px;
  margin-bottom: 40px;
  text-align: center;
  max-width: 468px;
  margin-inline: auto;
}
.location_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 950px;
  margin: auto;
}
.location_list h3 {
  color: #fff;
  display: table;
  padding: 10px;
  border-radius: 30px;
  background: #222;
  width: 100%;
  text-align: center;
  max-width: 380px;
  margin-bottom: 20px;
  font-size: clamp(1.125rem, 0.767rem + 1.53vw, 1.5rem);
}
.location_list .location_item {
  font-size: clamp(1.125rem, 0.767rem + 1.53vw, 1.5rem);
  max-width: 380px;
  margin-inline: auto;
  flex-basis: 100%;
  margin-bottom: clamp(2.188rem, 0.1rem + 8.91vw, 4.375rem);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .location_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .location_list .location_item {
    font-size: 24px;
    max-width: 380px;
    flex-basis: 50%;
    margin-bottom: 70px;
  }
  .location_list .location_item:nth-child(n+3) {
    margin-bottom: 0;
  }
  #sec06 .qa_box .answer {
    background: url(../img/a.svg)no-repeat left center!important;
  }
}
#sec06 h2 {
  padding: 40px 40px 0;
  text-align: center;
  max-width: 468px;
  margin-inline: auto;
}
#sec06 .qa_box {
  border-bottom: solid 1px;
  padding: 40px 20px;
  max-width: 1000px;
  margin-inline: auto;
}
#sec06 .qa_box:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}
#sec06 .qa_box .question {
  font-size: clamp(1.125rem, 0.767rem + 1.53vw, 1.5rem);
  margin-bottom: 20px;
  padding: 10px 0;
  padding-left: 60px;
  background: url(../img/q.svg)no-repeat center left;
}
#sec06 .qa_box .answer {
  font-size: clamp(0.938rem, 0.639rem + 1.27vw, 1.25rem);
  padding: 10px 0;
  padding-left: 60px;
  background: url(../img/a.svg)no-repeat left 16px;
}
.pc_only {
  display: block;
}
.sp_only {
  display: none;
}
@media screen and (max-width: 640px) {
  .pc_only {
    display: none;
  }
  .sp_only {
    display: block;
  }
  #sec01 .loop img {
    height: 50px;
    width: auto;
  }
  #sec02 h2 {
    font-size: clamp(1.5rem, 0.969rem + 2.26vw, 1.875rem);
  }
  #sec02 .okomari_box:before {
    width: 45%;
    top: -40px;
    border-radius: 0 0 20px 20px;
  }
  #sec01 {
    padding-bottom: 80px;
  }
  #sec05, #sec07 {
    padding-top: 100px;
  }
  #sec02 .last_txt {
    max-width: 75%;
    font-size: 25px;
    padding-inline: 0;
  }
  #sec02:after {
    background-size: 150%;
  }
  #sec04 .txt {
    padding-inline: 25px;
  }
  #sec03 .table-wrap {
    overflow-x: scroll;
    padding-left: 20px;
  }
  #sec03 .table-wrap table{
    margin-right:20px;
  }
  #sec07 ol li {
    padding-bottom: 60px;
  }
  #sec07 ol li:last-of-type {
    padding-bottom: 20px;
  }
  #sec07 ol li:not(:last-of-type):after {
    width: 38px;
  }
  .merit_list {
    margin-bottom: 80px;
  }
  .merit_item .sp_only {
    margin-top: 10px;
  }
  .merit_list li {
    padding-inline: 60px;
  }
  .merit_list li span {
    max-width: 320px;
  }
}
@media screen and (max-width: 500px) {
  #sec01 .mv {
    padding-top: 50px;
  }
  #sec02 .okomari_box:before {
    width: 45%;
    top: -20px;
    aspect-ratio: 30 / 6;
  }
}
@media screen and (min-width: 1000px) {
  #sec01{
    background-size:contain;
  }
  #sec02 .okomari_inner:before {
    right: -99px;
    top: 79px;
    width: 150px;
  }
  #sec02 .okomari_inner:after {
    left: -100px;
    bottom: 10px;
    width: 200px;
  }
  #sec02 .okomari_box .okomari_list li {
    margin-bottom: 33px;
    letter-spacing: 0.5px;
  }
  #sec03 .table-wrap {
    overflow-x: hidden;
  }
}