@charset "UTF-8";

:root {
  --c-service1-step-bg: #eef5e7;
  --c-service1-step-buy-bg: #f6f8f0;
}



/**************************************************
p_fv
**************************************************/

.p_fv{
  padding-top: 75px;
  padding-bottom: 315px;
  position: relative;
}
.p_fv_tit{
  display: flex;
  flex-direction: column;
  align-items: center;

  .f-en{
    font-size: 42px;
    letter-spacing: 0.05em;
    color: var(--c-sub7);
  }
  .ja1{
    font-size: 16px;
    letter-spacing: 0.1em;
    margin-top: 20px;
  }
  .ja2{
    font-size: 38px;
    letter-spacing: 0.1em;
    margin-top: 150px;
  }
}

.p_fv_bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 691px;
  pointer-events: none;
}

@media screen and (min-width: 769px) {
  .p_fv_bg {
      background: url(../img/philosophy/p_sq1.svg) no-repeat center top / 1474px;
  }
}

@media screen and (max-width: 768px) {
  .p_fv{
    padding-top: 45px;
    padding-bottom: 100px;
  }
  .p_fv_tit{
    .f-en{
      font-size: 38px;
    }
    .ja1{
      font-size: 13px;
      margin-top: 10px;
    }
    .ja2{
      font-size: 28px;
      line-height: 1.42;
      text-align: center;
      margin-top: 55px;
      margin-left: 1em;

      span{
        margin-left: -1em;
      }
    }
  }

  .p_fv_bg {
    top: -20px;
    height: 100%;
    background: url(../img/philosophy/p_sq1_sp.svg) no-repeat center top / 100%;
  }

}


/**************************************************
セクション共通見出し
**************************************************/
.p_sec_ttl{
  display: flex;
  flex-direction: column;

  .f-en{
    font-size: 32px;
    letter-spacing: 0.05em;
    color: var(--c-sub7);
  }
  .ja1{
    font-size: 15px;
    letter-spacing: 0.1em;
    margin-top: 20px;
  }
  .ja2{
    font-size: 38px;
    line-height: 1.57;
    letter-spacing: 0.1em;
    margin-top: 55px;
  }
}

.p_sec_txt{
  font-size: 16px;
  line-height: 2.25;
}


@media screen and (max-width: 768px) {
  .p_sec_ttl{
    .f-en{
      font-size: 28px;
      text-align: center;
    }
    .ja1{
      font-size: 14px;
      text-align: center;
      margin-top: 10px;
    }
    .ja2{
      font-size: 28px;
      line-height: 1.42;
      margin-top: 35px;
    }
  }

  .p_sec_txt{
    margin-top: 40px;
  }

}



/**************************************************
Mission
**************************************************/

.mission_txt01 + .mission_txt01,
.mission_txt02 + .mission_txt02{
  margin-top: 1.75em;
}
.mission_txt01 + .mission_txt02{
  margin-top: 4em;
}

.mission_img{
  width: 450px;
  margin-top: 85px;
}

.mission_bg {
  position: absolute;
  top: 375px;
  left: 0;
  /*z-index: -1;*/
  width: 100%;
  height: 430px;
  pointer-events: none;
}

@media screen and (min-width: 769px) {
  .mission{
    position: relative;

    .inner2{
      padding: 0 63px;
      position: relative;
    }
    .p_sec_txt{
      position: absolute;
      top: 125px;
      left: 590px;
    }
  }
  .mission_txt02{
    margin-left: 80px;
  }

  .mission_bg {
      background: url(../img/philosophy/mission_bg.svg) no-repeat center top / 1474px;
  }
}


@media screen and (max-width: 768px) {
  .mission{
    position: relative;

    .p_sec_ttl{
      .ja2{
        padding-left: 28px;
      }
    }
    .p_sec_txt{
      padding: 0 28px;
    }
  }

  .mission_txt01 + .mission_txt01,
  .mission_txt02 + .mission_txt02,
  .mission_txt01 + .mission_txt02{
    margin-top: 1.25em;
  }

  .mission_img{
    width: calc(100% - 28px);
    margin-top: 45px;
  }

  .mission_bg {
    top: initial;
    bottom: -65px;
    height: 100%;
    background: url(../img/philosophy/mission_bg_sp.svg) no-repeat center bottom / 100%;
  }

}


/**************************************************
vision
**************************************************/
.vision{
  padding-top: 210px;
  padding-bottom: 100px;

  .inner2{
    padding: 0 63px;
  }
}

.vision_inner{
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}

.vision_scroll{
  order: 1;
  flex: 1;
  min-width: 0;
  padding-right: 40px;
}

.vision_txt{
  margin-top: 70px;

  p + p{
    margin-top: 1.75em;
  }
}

.vision_fixed{
  order: 2;
  width: 584px;
  flex-shrink: 0;
}

.vision_fixed_media{
  position: -webkit-sticky;
  position: sticky;
  top: var(--vision-sticky-top, 105px);
}

.vision_img{
  position: relative;
  width: 100%;
  margin-top: -35px;
}

.vision_img_item{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}

.vision_img_item.is-active{
  opacity: 1;
}

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

@media screen and (min-width: 769px) {
  .vision_fixed_head{
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .vision {
    padding-top: 0;
    padding-bottom: 65px;
    z-index: -1;
    position: relative;

    .inner2{
      padding: 0;
    }
  }

  .vision_inner{
    display: block;
  }

  .vision_scroll{
    order: 0;
    padding-right: 0;
  }

  .vision_fixed{
    order: 0;
    width: 100%;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 2;
    padding-top: 100px;
    /* padding-bottom: 40px; */
    background: #fff;
    overflow: visible;
  }

  .vision_fixed::after{
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 50px;
    transform: translateY(100%);
    background: linear-gradient(to bottom, #fff 0%, rgba(255, 255, 255, 0) 100%);
    pointer-events: none;
  }

  .vision_fixed_media{
    position: relative;
    top: auto;
    /*padding: 0 28px;*/
  }

  .vision_ttl_ja2{
    margin-top: 50px;
    padding: 0 28px;
    .ja2{
      margin-top: 0;
    }
  }

  .vision_txt{
    margin-top: 40px;
    padding: 0 28px;
  }

  .vision_fixed_head{
    padding: 12px 28px 0;
  }

  .vision_img{
    margin-top: 25px;
  }
}



/**************************************************
Value
**************************************************/
.value{
  background-color: var(--c-sub5);
  padding-top: 150px;
  padding-bottom: 155px;

  .inner2{
    display: flex;
    justify-content: space-between;
    padding-left: 63px;
  }
  .value_txt{
    width: 772px;

    div + div{
      border-top: 1px solid #BFBFBF;
      margin-top: 45px;
      padding-top: 50px;
    }

    h3{
      font-size: 32px;
      letter-spacing: 0.1em;
    }
    p{
      font-size: 15px;
      line-height: 2.13;
      margin-top: 25px;
    }
  }
}

@media screen and (max-width: 768px) {
  .value{
    padding-top: 55px;
    padding-bottom: 65px;

    .inner2{
      display: block;
      padding-left: 0;
    }
    .value_txt{
      width: 100%;
      padding: 0 28px;
      margin-top: 50px;

      div + div{
        margin-top: 35px;
        padding-top: 35px;
      }

      h3{
        font-size: 26px;
      }
      p{
        line-height: 1.86;
        text-align: justify;
        margin-top: 20px;
      }
    }
  }


}

/**************************************************
aaa
**************************************************/

@media screen and (max-width: 768px) {

}
