body {
  overflow-x: hidden !important;
}

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

.hp_spNone {
  display: none !important;
}

/*----------- google font -----------*/
.font_oswald {
  font-family: 'Oswald', sans-serif !important;
}

.font_notosans {
  font-family: 'Noto Sans JP', sans-serif !important;
}

/*----------- fv -----------*/
.ly_fv {
  overflow-x: hidden;
  background: url(../img/sp_fv_background.jpg) no-repeat;
  background-size: cover;
  padding-bottom: 14.0625vw;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 91%, 0% 100%);
          clip-path: polygon(0 0, 100% 0, 100% 91%, 0% 100%);
}
.ly_fv::before {
  content: "";
  background: #2c366a;
  -webkit-clip-path: polygon(0 0, 0 100%, 100% 0);
          clip-path: polygon(0 0, 0 100%, 100% 0);
  width: 100%;
  height: 12.5vw;
  display: inline-block;
}

.bl_fv {
  position: relative;
}

.bl_fv_img {
  position: absolute;
  bottom: -11.71875vw;
  left: -10.9375vw;
  width: 69.21875vw;
}

.bl_fv_ttl {
  position: relative;
  z-index: 10;
  width: 96.875vw;
  margin: 4.0625vw 0 0 3.125vw;
}

.bl_fv_ttl {
  position: relative;
  z-index: 10;
  color: #15205b;
  font-weight: 600;
  font-size: 30px;
  line-height: 1.75;
}

.bl_fv_ttl span.indent {
  display: block;
  padding-left: 1em;
  margin-bottom: 2.2vw;
  line-height: inherit;
  font-weight: inherit;
}

.bl_fv_ttl .font_big {
  font-weight: bold;
  font-size: 8.5vw;
  letter-spacing: 3px;
}

.bl_fv_ttl .font_big .icon{
  font-size: inherit;
  font-weight: inherit;
}

.bl_fv_ttl .font_middle {
  font-weight: bold;
  font-size: 5.5vw;
}

.bl_fv_ttl .font_gold {
  font-weight: bold;
  font-size: 10vw;
  color: rgb(255, 196, 15);
}

.bl_fv_ttl .font_gold span {
  font-size: .7em;
  font-weight: inherit;
}

.bl_fv_ttl .flag {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: url("../img/fv_flag_img_sp.png");
  background-repeat: no-repeat;
  background-size: contain;
  height: 20.46vw;
}

.bl_fv_ttl .flag span.icon {
  margin-right: 1.3vw;
  display: block;
  width: 22%;
}

.bl_fv_ttl .flag span.text {
  display: block;
  font-weight: 600;
  font-size: 5.6vw;
  letter-spacing: 2px;
}

.bl_fv_ttl .flag span.text span {
  font-size: 4vw;
  display: block;
  text-indent: 0.5em;
  margin-bottom: 10px;
  font-weight: inherit;
  letter-spacing: inherit;
}

.bl_fv_main ul.ribbon {
  margin-top: 5.46vw;
}

.bl_fv_main ul.ribbon li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40.62vw;
  height: 15.62vw;
  color: #fff;
  font-size: 4.23vw;
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
  background: url(../img/fv_ribbon_sp.png);
  background-size: cover;
  margin: 0 0 3.43vw auto;
}

.bl_fv_main ul.ribbon li:last-child {
  margin-bottom: 0;
}

/*----------- trouble -----------*/
.ly_trouble {
  overflow-x: hidden;
  padding-top: 9.375vw;
  position: relative;
}
.ly_trouble::before {
  content: "";
  background: #2c366a;
  -webkit-clip-path: polygon(100% 0, 0 50%, 100% 100%);
          clip-path: polygon(100% 0, 0 50%, 100% 100%);
  width: 50%;
  height: 12.5vw;
  display: block;
  position: absolute;
  top: -12.8125vw;
  right: 0;
  z-index: 10;
}

.bl_trouble_ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-weight: bold;
  color: #2c366a;
  font-size: 4vw;
  width: 100%;
  height: 12.26vw;
  margin: 0 auto;
  background: url("../img/common_trouble_title_bk.png");
  background-size: contain;
  background-repeat: no-repeat;
}
.bl_trouble_ttl img {
  position: absolute;
  top: 7.34375vw;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.bl_trouble_list {
  margin: 20.3125vw auto 0;
  width: 75vw;
  row-gap: 4.6875vw;
}

.bl_trouble_img {
  width: 34.375vw;
  position: relative;
}

.bl_trouble_img span.text {
  width: 100%;
  display: block;
  text-align: center;
  position: absolute;
  color: #07156b;
  font-weight: bold;
  bottom: 2.4vw;
  font-size: 3vw;
  line-height: 1.75;
}

.bl_trouble_img span.text span {
  display: block;
  font-size: 1.25em;
  font-family: inherit;
  font-weight: inherit;
}

.bl_trouble_catch {
  width: 100%;
  height: 82.43vw;
  margin-top: 7.8125vw;
  background: url(../img/sp_trouble_background.png) no-repeat;
  background-size: contain;
  position: relative;
}

.bl_trouble_catch:after {
  content: "";
  background-image: -moz-linear-gradient( 10deg, rgb(40,141,219) 1%, rgb(203,110,180) 100%);
  background-image: -webkit-linear-gradient( 10deg, rgb(40,141,219) 1%, rgb(203,110,180) 100%);
  background-image: -ms-linear-gradient( 10deg, rgb(40,141,219) 1%, rgb(203,110,180) 100%);
  position: absolute;
  display: block;
  width: 100%;
  bottom: 0;
  height: 20px;
  z-index: -1;
}


.bl_trouble_catch h3 {
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding-left: 6.25%;
  padding-top: 10vw;
  font-size:4.25vw;
  position: relative;
  z-index: 1;
}

.bl_trouble_catch h3 span.logo {
  width: 19%;
  margin-right: 10px;
}

.bl_trouble_catch h3 span.mark {
  display: block;
  width: 100%;
  color: transparent;
  background: rgb(255,255,255);
  background: linear-gradient(180deg, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 50%, rgba(183,233,255,1) 100%);
  -webkit-background-clip: text;
  font-size: 3.25em;
  font-family: inherit;
  position: relative;
  width: 62.5vw;
}

.bl_trouble_catch h3 span.mark:before {
  content: "";
  display: block;
  width: 62.5vw;
  height: 6.25vw;
  background: url(../img/marker.png) no-repeat;
  background-size: contain;
  position: absolute;
  bottom: -22px;
  z-index: -1;
}

.bl_trouble_catch_sub {
  color: #2c366a;
  font-size: 3.75vw;
  width: 93.75%;
  height: 39.06vw;
  background: url(../img/bl_trouble_catch_sub_sp.png) no-repeat;
  background-size: contain;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 3.125%;
  padding: 6.25vw 0 6.78vw;
}

.bl_trouble_catch_sub .font_lightblue {
  color: #00d4ff;
  font-family: inherit;
  font-size: 1.5em;
}

.bl_trouble_catch_sub .font_purple {
  color: #b35ff0;
  font-family: inherit;
  font-size: 1.5em;
}

.bl_trouble_catch_sub .font_gradation {
  font-family: inherit;
  color: transparent;
  background-image: linear-gradient(90deg, rgba(0,212,255,1) 0%, rgba(179,95,240,1) 100%);
  -webkit-background-clip: text;
  font-size: 2em;
}

.bl_trouble_catch_sub strong {
  font-size: 1.5em;
  font-family: inherit;
  color: inherit;
}

.bl_trouble_catch_sub span.newline {
  display: block;
  width: 100%;
}

/*----------- info -----------*/
.ly_info {
  background: url(../img/sp_info_image_01.png);
  background-size: cover;
  padding: 14.84375vw 0 12.1875vw;
  position: relative;
}

.bl_info_ttl {
  width: 59.375vw;
}

.ly_info .bl_info_ttl span.text_back {
  line-height: 2;
  font-size: 5vw;
  padding: 0 18% 0 12%;
  position: relative;
}

.ly_info .bl_info_ttl span.text_back:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 45%;
  display: block;
  background: linear-gradient(90deg, rgba(57,112,182,1) 0%, rgba(142,96,161,1) 100%);
  clip-path: polygon(0 0, 100% 0, 98% 100%, 0 100%);
  bottom: 0;
  z-index: 1;
}

.ly_info .bl_info_ttl span.text_back .text {
  font-weight: bold;
  color: #fff;
  font-size: inherit;
  position: relative;
  z-index: 2;
}

.bl_infoBtn {
  margin: 51.5625vw auto 0;
  width: 78.75vw;
}
.bl_infoBtn .bl_infoBtn_btn + .bl_infoBtn_btn {
  display: inline-block;
  margin-top: 3.90625vw;
}

/*----------- point -----------*/
.ly_point {
  padding: 13.28125vw 0 7.8125vw;
  overflow-x: hidden !important;
}

.bl_point_ttl {
  width: 100%;
  color: #2c366a;
  font-weight: inherit;
  text-align: center;
  font-size: 6vw;
  border-bottom: 5px solid #c9cde6;
}

.ly_point .bl_point_ttl strong {
  font-size: 8vw;
  color: inherit;
  font-weight: bold;
}

.ly_point .bl_point_ttl .gold {
  font-weight: bold;
  font-size: 8vw;
  color: rgb(255, 196, 15);
}

.ly_point .bl_point_ttl .gold span {
  color: inherit;
  font-weight: inherit;
  font-size: .75em;
}

.bl_pointMain {
  margin-top: 10.15625vw;
  display: block;
  position: relative;
}

.bl_pointMain_ttl {
  width: 85vw;
  margin: 3.125vw auto 0;
}

.bl_pointMain_img {
  overflow-x: hidden;
  position: absolute;
  z-index: -1;
  bottom: 0;
  right: -14.0625vw;
}

.bl_pointMain_txt {
  font-size: 4.0625vw;
  line-height: 1.6153846154;
  letter-spacing: 0.06em;
  color: #2c366a;
  font-weight: 500;
  margin: 5.46875vw 7.5vw;
}
.bl_pointMain_txt span {
  font-size: 4.84375vw;
  font-weight: bold;
  line-height: 1.3548387097;
  letter-spacing: 0.06em;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(45%, transparent), color-stop(45%, #ffdf11));
  background: linear-gradient(transparent 45%, #ffdf11 45%);
}

/*----------- template -----------*/
.ly_template {
  padding-bottom: 9.375vw;
}

.bl_template_ttl {
  text-align: center;
  position: relative;
  width: 87.5vw;
  margin: 0 auto;
  background: #435ee8;
  border-radius: 10px;
  color: #fff;
  font-size: 4vw;
  padding: 12px 0 17px;
}

.bl_template_ttl:after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: calc(50% - 13px);
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 13px solid transparent;
  border-left: 13px solid transparent;
  border-top: 20px solid #435ee8;
  border-bottom: 0;
}

.bl_template_ttl span {
  font-size: 1.5em;
}

.bl_template_wrapper {
  width: 93.75vw;
  background: #eff2ff;
  border-radius: 3.125vw;
  margin: -17.96875vw auto 0;
  padding: 21.875vw 0 9.375vw;
}

.bl_template_img {
  width: 88.4375vw;
  margin: 0 auto;
}

.bl_template_txt {
  margin: 4.21875vw 6.25vw 0;
  font-size: 4.0625vw;
  font-weight: 500;
  line-height: 1.4615384615;
  letter-spacing: 0.02em;
  color: #2c366a;
}

.bl_template_btn {
  width: 78.75vw;
  margin: 6.25vw auto 0;
}

/*----------- effect -----------*/
.ly_effect {
  padding-top: 17.96875vw;
}
.ly_effect::after {
  content: "";
  background: #2c366a;
  -webkit-clip-path: polygon(0 0, 0% 100%, 100% 100%);
          clip-path: polygon(0 0, 0% 100%, 100% 100%);
  width: 100%;
  height: 13.28125vw;
  display: inline-block;
  margin-top: 15.625vw;
}

.bl_effect_ttl {
  width: 67.03125vw;
  margin: 0 auto;
  color: #15205b;
  text-align: center;
  font-weight: bold;
  font-size: 6.25vw;
}

.bl_effect_ttl span {
  color: inherit;
  font-size: .6em;
  font-weight: 600;
}

.bl_effectList {
  display: block;
  width: 78.125vw;
  margin: 10.9375vw auto 0;
}
.bl_effectList li + li {
  margin-top: 10.15625vw;
}

.bl_effectList_img {
  width: 78.125vw;
}

.bl_effectList_ttl {
  font-size: 4.375vw;
  font-weight: 900;
  line-height: 0.9642857143;
  color: #15205b;
  text-align: center;
  margin-top: 6.25vw;
}

.bl_effectList_txt {
  font-size: 4.0625vw;
  line-height: 1.4615384615;
  color: #15205b;
  margin-top: 3.75vw;
}

.bl_effect_banner {
  width: 93.75vw;
  margin: 14.84375vw auto 0;
}

/*----------- ab -----------*/
.ly_ab {
  background: #eff2ff;
  padding: 25vw 0 0;
  -webkit-clip-path: polygon(0 12.5vw, 100% 0%, 100% 100%, 0% 100%);
          clip-path: polygon(0 12.5vw, 100% 0%, 100% 100%, 0% 100%);
  position: relative;
  margin-top: -13.28125vw;
}

.bl_ab_ttl {
  width: 77.1875vw;
  color: #15205b;
  font-size: 5.4vw;
  font-weight: bold;
  text-align: center;
  margin: 0 auto;
}

.bl_ab_img {
  margin-top: 6.25vw;
}

.bl_ab_catch {
  text-align: center;
  margin: 12.1875vw auto 0;
  width: 75.9375vw;
  color: #15205b;
  font-size: 4vw;
  font-weight: 500;
}

.bl_ab_catch .color_r {
  color: #ff5e42;
  font-size: inherit;
  font-weight: bold;
}

.bl_ab_catch .color_b {
  color: #1987d4;
  font-size: inherit;
  font-weight: bold;
}

.bl_abList {
  display: block;
  margin: 8.4375vw 6.25vw 0;
}
.bl_abList li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.bl_abList li + li {
  margin-top: 7.8125vw;
}

.bl_abList_img {
  width: 40.625vw;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.bl_abList_wrapper {
  padding: 0 3.125vw 0 4.53125vw;
}

.bl_abList_ttl {
  font-size: 4.0625vw;
  font-weight: bold;
  line-height: 1.1538461538;
  letter-spacing: 0.06em;
  color: #15205b;
}

.bl_abList_txt {
  font-size: 3.4375vw;
  font-weight: 500;
  line-height: 1.3636363636;
  color: #15205b;
  margin-top: 1.5625vw;
}

.bl_abRealization {
  display: contents;
}

.bl_abRealization_catch {
  margin-top: 9.375vw;
}

/*----------- comparison -----------*/
.ly_comparison {
  padding: 17.1875vw 0 10.15625vw;
}

.bl_comparison_ttl {
  width: 85.15625vw;
  margin: 0 auto 2.34vw;
  color: #15205b;
  font-weight: bold;
  font-size: 5.5vw;
  text-align: center;
}

.bl_comparison_ttl_sub {
  text-align: center;
  color: #15205b;
  font-weight: 500;
  font-size: 3.24vw;
}

.bl_comparison_img {
  margin: 7.8125vw 0 0 3.125vw;
  overflow-x: scroll;
}
.bl_comparison_img img {
  width: 125vw;
  margin-bottom: 6.25vw;
  padding-right: 3.125vw;
}
.bl_comparison_img::-webkit-scrollbar {
  height: 0.9375vw;
}
.bl_comparison_img::-webkit-scrollbar-track {
  background: #dedede;
  border-radius: 10px;
}
.bl_comparison_img::-webkit-scrollbar-thumb {
  background: #3a405f;
  border-radius: 10px;
}

/*----------- plan -----------*/
.ly_plan {
  background: url(../img/sp_plan_background.jpg) no-repeat;
  background-size: cover;
  padding: 14.84375vw 0 16.40625vw;
}

.bl_plan_ttl {
  width: 27.34375vw;
  margin: 0 auto;
  text-align: center;
  color: #fff;
  font-size: 5.2vw;
}

.bl_plan_img {
  margin-top: 12.5vw;
  width: 96.875vw;
  margin-left: auto;
}

.bl_plan_catch {
  text-align: center;
  margin: 14.0625vw auto 0;
  width: 72.1875vw;
}

.bl_planBtn {
  text-align: center;
}

.bl_planBtn_btn {
  display: inline-block;
  text-decoration: none;
  width: 78.75vw;
  margin: 5.46875vw auto 0;
}

/*----------- flow -----------*/
.ly_flow {
  padding: 16.40625vw 0 0;
}

.bl_flow_ttl {
  width: 90.625vw;
  margin: 0 auto 24px;
  text-align: center;
  color: #15205b;
  font-weight: bold;
  font-size: 5.6vw;
}

.bl_flow_ttl_sub {
  text-align: center;
  color: #15205b;
  font-weight: 400;
  font-size: 4vw;
  width: 90.62vw;
  height: 15.62vw;
  background: url(../img/sp_flow_subtitle.png);
  background-size: cover;
  background-repeat:  no-repeat;
  margin: 0 auto;
  line-height: 1.2;
  padding: 3.9vw 0
}

.bl_flow_img {
  margin: 4.6875vw auto 0;
  width: 81.40625vw;
}

/*----------- faq -----------*/
.ly_faq {
  padding: 31.25vw 0 12.5vw;
}

.bl_faq_ttl {
  width: 37.65625vw;
  margin: 0 auto;
  color: #15205b;
  font-size: 4.85vw;
  font-weight: bold;
}

.bl_faqList {
  width: 93.75vw;
  margin: 10.15625vw auto 0;
}
.bl_faqList li + li {
  margin-top: 3.125vw;
}

.bl_faqList_ttl {
  width: 93.75vw;
  height: 15.625vw;
  background: url(../img/sp_faq_off.png) no-repeat;
  background-size: contain;
  font-size: 4.0625vw;
  font-weight: 500;
  padding: 1.40625vw 6.25vw 1.09375vw 12.5vw;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.bl_faqList_ttl.js_open {
  background: url(../img/sp_faq_on.png) no-repeat;
  background-size: contain;
  color: #15205b;
}

.bl_faqList_txt {
  background: #e5e6eb;
  color: #2c366a;
  font-size: 3.75vw;
  line-height: 1.5833333333;
  padding: 3.125vw 7.8125vw 7.8125vw;
  margin-bottom: 6.25vw;
  word-break: break-word;
}

/*----------- footer -----------*/
.ly_footer {
  background: #10152c;
  text-align: center;
  padding: 2.96875vw 0;
}

.bl_footer_copyright {
  display: block;
  color: #fff;
  font-size: 3.125vw;
  letter-spacing: 0.04em;
}

/*----------- fixed -----------*/
.ly_fixed {
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 99;
}

.bl_fixedTel {
  width: 31.25vw;
}

.bl_fixedBtn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.bl_fixedBtn_btn {
  text-decoration: none;
  width: 34.375vw;
}

.bl_fixedBtn_btn.left {
  width: 65.625vw;
}
