/* -------------------------- */

/* content */
/* -------------------------- */



.fadeUpTrigger,
.fadeUpTrigger02 {
  opacity: 0;
}


.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
  opacity: 0;
}


@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


.program_ttl {
  width: 360px;
  margin: 0 auto 100px;

  img {
    width: 100%;
  }
}

br.sp_LL_display {
  display: none;
}

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


.title_section03 {
  margin-bottom: 80px;
}


.program_ttl_bbottom {
  margin-bottom: 100px;
}

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

  .program_ttl {
    width: 200px;
    margin: 0 auto 48px;
  }

  .title_section03 {
    margin-bottom: 40px;
    font-size: 20px;
  }

  .program_ttl_bbottom {
    margin-bottom: 60px;
  }

}

/* -------------- program_about ------------ */


.program_about {
  padding: 100px 0;
  background-image: url(../images/support-program/about-bg.webp);
  background-size: cover;
  background-position: center;
  width: 100%;
}


.program_about_container {
  background-color: rgba(255, 255, 255, .9);
  padding: 65px 0;
}


.program_about_list {
  width: 68%;
  margin: 0 auto;
  font-family: Noto Sans JP, Hiragino Kaku Gothic ProN, 游ゴシック Medium, 游ゴシック体, Yu Gothic Medium, YuGothic, メイリオ, Meiryo, ＭＳ\ Ｐゴシック, MS PGothic, sans-serif;
  color: #605b58;
}

.program_about_item {
  margin-bottom: 60px;
}


.program_about_item:last-child {
  margin-bottom: 0;
}

.program_about_ttl {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #111;
  margin-bottom: 16px;

  img {
    width: 54px;
    border-radius: 100%;
  }
}

.program h3 {
  font-size: 27px;
  font-weight: bolder;
  letter-spacing: 0.08em;
  font-family: Noto Sans JP, Hiragino Kaku Gothic ProN, 游ゴシック Medium, 游ゴシック体, Yu Gothic Medium, YuGothic, メイリオ, Meiryo, ＭＳ\ Ｐゴシック, MS PGothic, sans-serif;
}


.program p {
  font-size: 16px;
  line-height: 2.2;
  font-weight: 500;

  span {
    font-size: 12px;
  }
}


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

  br.sp_LL_display {
    display: block;
  }

  .program_about {
    padding: 40px 0;
  }

  .program_about_container {
    padding: 40px 15px;
  }


  .program_about_list {
    width: 100%;
  }

  .program_about_item {
    margin-bottom: 32px;
  }

  .program_about_ttl {
    gap: 12px;
    margin-bottom: 12px;

    img {
      width: 42px;
    }
  }

  .program h3 {
    font-size: 18px;
  }


  .program p {
    font-size: 14px;

    span {
      font-size: 10px;
    }
  }
}




/* -------------- program_period ------------ */


.program_period {
  padding: 80px 0;
}

.program_num {
  font-family: "Josefin Sans";
  font-size: 46px;
  color: #605b58;
  display: block;
  width: fit-content;
  margin: 0 auto 4px;

}

.program_period_img {
  margin-bottom: 78px;
}

.program_period_img img {
  width: 100%;
}


.program_period_content {
  display: grid;
  grid-template-columns: 50% 50%;
  align-items: center;
}

.program_period h3 {
  margin-bottom: 40px;
}

.program_period_txt {
  padding-right: 10%;
}

.program_period_figure {
  width: 100%;
}


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

  .program_period h3 {
    margin-bottom: 24px;
  }

  .program_period_content {
    display: grid;
    grid-template-columns: 100%;
    gap: 24px;
  }

  .program_period_figure {
    max-width: 460px;
    margin: 0 auto;
  }
}


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

  .program_period {
    padding: 40px 0;
  }

  .program_num {
    font-size: 24px;
  }

  .program_period_img {
    overflow-x: scroll;
    margin-bottom: 32px;
  }

  .program_period_pic {
    width: 840px;
  }

  .program_period_txt {
    padding-right: 0;
  }
}



/* -------------- program_relief ------------ */


.program_relief {
  padding: 80px 0;
  background-color: #f3f0ed;
}


.program_relief_list {
  display: grid;
  grid-template-columns: 50% 50%;
  border-top: 1px dashed #605b58;
}

.program_relief_list:last-child {

  .program_relief_item {
    border-bottom: 1px dashed #605b58;
  }
}


.program_relief_item:nth-child(odd) {
  padding: 54px 5% 54px 0;
  border-right:  1px dashed #605b58;
}

.program_relief_item:nth-child(even) {
  padding: 54px 0 54px 5%;
}


.program_relief_ttl {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
}

.program_relief_ttl span {
  background-color: #686357;
  width: 160px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
}

.program_relief_txt {
  margin-bottom: 32px;
}

.program_relief_note {
  font-size: 12px;
  font-weight: 500;
  display: block;
}


.program_relief_img {
  width: 86%;
  margin: 24px auto 0;
}

@media screen and (max-width: 767px) {
  .program_relief {
    padding: 40px 0;
  }

  .program_relief_ttl {
    margin-bottom: 16px;
  }

  .program_relief_list {
    grid-template-columns: 100%;
    border-top: none;
  }

  .program_relief_item {
    border-top: 1px dashed #605b58;
  }

  .program_relief_item:nth-child(odd) {
    padding: 24px 0;
    border-right: none;
  }

  .program_relief_item:nth-child(even) {
    padding: 24px 0;
  }


  .program_relief_ttl h3 {
    font-size: 18px;
  }

  .program_relief_ttl span {
    background-color: #686357;
    width: 120px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
  }

  .program_relief_txt {
    margin-bottom: 20px;
  }
}





/* -------------- program_detail ------------ */


.program_detail {
  padding: 80px 0;
}

.program_detail .container {
  display: grid;
  grid-template-columns: 50% 50%;
}

.program_detail .title_section03 {
  margin-bottom: 48px;
}

.program_price {
  padding: 0 16px;
}

.program_price_content {
  width: fit-content;
  margin: 0 auto;
}

.program_price_item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
}


.program_price_item span:nth-child(1) {
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  width: 90px;
  height: 40px;
  border: 1px solid #111;
}

.program_price_item:first-child {
  margin-bottom: 24px;
}

.program_price_item:last-child span:nth-child(1) {
  color: #fff;
  background-color: #111;
}

.program_price_item span:nth-child(2) {
  font-size: 20px;
  font-weight: bolder;
  letter-spacing: 0.08em;
  font-family: Noto Sans JP, Hiragino Kaku Gothic ProN, 游ゴシック Medium, 游ゴシック体, Yu Gothic Medium, YuGothic, メイリオ, Meiryo, ＭＳ\ Ｐゴシック, MS PGothic, sans-serif;
}


.program_use {
  padding: 0 16px;
}



@media screen and (max-width: 1000px) {
  .program_detail .container {
    grid-template-columns: 100%;
    gap: 40px;
  }
}

@media screen and (max-width: 767px) {
  .program_detail {
    padding: 40px 0;
  }

  .program_detail .title_section03 {
    margin-bottom: 24px;
  }


  .program_price_item span:nth-child(2) {
    font-size: 18px;
  }
}





/* -------------- program_notice ------------ */




.program_notice {
  padding: 80px 0;
  background-color: #f3f0ed;
}


.program_notice_cocntent {
  display: grid;
  grid-template-columns: 50% 50%;
  margin-bottom: 68px;
}

.program_notice_item {
  padding: 0 16px;
}

.program_notice_img {
  margin-bottom: 32px;
}


.program_notice_bottom {}


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

  .program_notice {
    padding: 40px 0;
  }

  .program_notice_cocntent {
    margin-bottom: 40px;
    grid-template-columns: 100%;
    gap: 24px;
  }

  .program_notice_item {
    padding: 0;
  }

  .program_notice_img {
    margin-bottom: 16px;
  }

  .program_notice_bottom {
    overflow-x: scroll;
  }

  .program_notice_bottom picture {
    width: 880px;
  }
}




/* -------------- program_insurance ------------ */


.program_insurance {
  padding: 80px 0;
}

.program_insurance_content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6vw;
  align-items: center;
}



@media screen and (max-width: 767px) {
  .program_insurance {
    padding: 40px 0;
  }

  .program_insurance_content {
    grid-template-columns: 100%;
    gap: 40px;
    max-width: 320px;
    margin: 0 auto;
  }
}