@charset "UTF-8";

/**************************************************
FV（サービス共通）
**************************************************/
.s_fv {
  position: relative;
  /* overflow: hidden; */
}
.s_fv_inner {
  padding: 110px 0 118px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.s_fv_tit {
  font-size: 48px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.625;
    .s_fv_label {
      display: block;
      color: var(--c-sub7);
      font-size: 18px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1.6;
      margin-bottom: 30px;
    }
}
.s_fv_txt {
  margin-top: 25px;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 2.25;
}
.s_fv_btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 0 25px;
  margin-top: 65px;
}
.s_fv_btn {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  width: 305px;
  height: 57px;
  padding: 0 56px 0 24px;
  border: 1px solid #4E4E4E;
  background-color: #fff;
  color: var(--c-text);
  font-size: 15px;
  letter-spacing: 0.04em;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
.s_fv_btn_arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 12px;
  margin: auto;
  width: 27px;
  height: 27px;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.s_fv_btn_arrow img {
  width: 100%;
  height: auto;
  display: block;
}

/* FV 装飾スクエア */
.s_fv_sq {
  position: absolute;
  /* top: 0; */
  z-index: 1;
  /* width: 200px;
  height: 470px; */
  pointer-events: none;
}
.s_fv_sq--l {
  width: 243px;
  height: 470px;
  left: -170px;
  top: 110px;
  z-index: -1;
}
.s_fv_sq--r {
  width: 404px;
  height: 688px;
  right: -187px;
  top: 20px;
  z-index: -1;
  .sq1{
    width: 322px;
    margin-left: auto;
    display: block;
  }
  .sq2{
    width: 404px;
    margin-top: 86px;
    display: block;
  }
}
.s_fv_sq_i picture {
  display: block;
  width: 100%;
}
.s_fv_sq_i picture img {
  width: 100%;
  height: auto;
  display: block;
}


@media screen and (max-width: 768px) {
  .s_fv_tit {
    .s_fv_label {
        color: var(--c-sub7);
        font-size: 16px;
        margin-bottom: 10px;
        line-height: 1.5;
    }
  }
}

/**************************************************
ボタン（サービス共通）
**************************************************/
.s_btn {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  /* width: 340px; */
  max-width: 100%;
  height: 75px;
  padding: 0 30px;
  background-color: var(--c-sub2);
  color: #fff;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  text-align: center;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
.s_btn::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 18px;
  margin: auto;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff url(../img/common/icon_arrow.svg) no-repeat center/9px auto;
  -webkit-transition: right 0.3s ease, background-color 0.3s ease;
  transition: right 0.3s ease, background-color 0.3s ease;
}
.s_btn--dark {
  background-color: var(--c-sub3);
}
.s_btn--sm {
  width: 280px;
  height: 60px;
  font-size: 17px;
}
.s_btn--blank::after {
  border-radius: 0;
  background: url(../img/common/icon_blank_w.svg) no-repeat center/contain;
  width: 22px;
  height: 22px;
}
@media screen and (min-width: 769px) {
  .s_fv_btn:hover {
    border-color: var(--c-main);
    color: var(--c-main);
  }
  .s_fv_btn:hover .s_fv_btn_arrow {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  .s_btn:hover {
    background-color: #fff;
    color: var(--c-sub2);
    -webkit-box-shadow: inset 0 0 0 1px var(--c-sub2);
    box-shadow: inset 0 0 0 1px var(--c-sub2);
  }
  .s_btn:hover::after {
    background-color: var(--c-sub2);
  }
  .s_btn--dark:hover {
    color: var(--c-main);
    -webkit-box-shadow: inset 0 0 0 1px var(--c-main);
    box-shadow: inset 0 0 0 1px var(--c-main);
  }
  .s_btn--dark:hover::after {
    background-color: var(--c-main);
  }
  .s_btn--blank:hover::after {
    background: url(../img/common/icon_blank_g.svg) no-repeat center/contain;
  }
}

/**************************************************
SP
**************************************************/
@media all and (max-width: 768px) {
  .s_fv_inner {
    padding: 48px 0 56px;
  }
  .s_fv_label {
    font-size: 14px;
    margin-bottom: 14px;
  }
  .s_fv_tit {
    font-size: 26px;
    line-height: 1.46;
}
  .s_fv_txt {
    margin-top: 24px;
    padding: 0 6.6666666667vw;
    font-size: 15px;
    text-align: justify;
    line-height: 2;
  }
  .s_fv_txt br {
    display: none;
  }
  .s_fv_btns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 12px 0;
    margin-top: 28px;
    padding: 0 6.6666666667vw;
    z-index: 2;
    position: relative;
  }
  .s_fv_btn {
    width: 100%;
    max-width: 360px;
    height: 60px;
    background-color: #fff;
  }
  .s_fv_sq {
    /* width: 26vw;
    height: 60vw; */
    width: 100%;
    height: 100%;
  }
  .s_fv_sq--l {
    left: 0;
    top: 8vw;
  }
  .s_fv_sq--r {
    right: 0;
    top: 20px;
  }
  .s_fv_sq--l .sq1 {
    width: 75px;
    height: auto;
    left: 0;
    display: block;
  }
  .s_fv_sq--r .sq1 {
    width: 151px;
    right: 0;
    display: block;
    position: relative;
    top: -30px;
}
  .s_fv_sq--r .sq2 {
    left: 0;
    bottom: 0;
    width: 300px;
    display: block;
    margin-top: auto;
    bottom: 36px;
    position: absolute;
  }
  .s_btn {
    width: 100%;
    /* height: 64px;
    font-size: 17px; */
  }
  .s_btn--sm {
    width: 232px;
    height: 49px;
    font-size: 14px;
    padding-left: 17px;
    margin-left: auto;
    margin-right: auto;
  }
}
