@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 156vw;
    --min-height: 600px;
    /* background-image: url(../images/idx_mv01_sp.jpg); */
  }
  .home_page .key .inner {
    padding: 0 20px;
  }
  .home_page .key .key_text {
    font-size: min(8.75px, 1.5vw);
  }
  .home_page .key .key_text .item {
    height: var(--height);
    min-height: var(--min-height);
    max-height: var(--max-height);
    padding-bottom: 32%;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .home_page .key .catch {
    margin: 0 auto;
  }
  .home_page .key h2 .txt_lg {
    padding: 0.15em 0 0.3em;
    font-size: 1.4em;
  }
  .home_page .key h2 .txt01 {
    letter-spacing: 0.1em;
  }
}
@media only screen and (max-width: 768px) and (orientation: landscape) {
  .home_page .key .key_text .item {
    padding-bottom: 15%;
  }
}
@media only screen and (max-width: 768px) {
  .tl_h3 {
    font-size: 28px;
    letter-spacing: 0.1em;
  }
  .tl_h3 .en {
    font-size: 14px;
  }
  .block_news {
    padding: 50px 0 30px;
  }
  .block_news h3 {
    font-size: min(20px, 5.5vw);
    letter-spacing: 0;
  }
  .block_news h3 .en {
    font-size: 13px;
  }
  .block_news .item {
    padding: 33px 4.5% 20px;
  }
  .block_news .list_post a {
    padding: 10px 10px;
  }
  .block_news .list_post .date {
    width: 90px;
  }
  .block_news .list_post .title {
    width: calc(100% - 90px);
  }
  .block_news .btn_news a {
    font-size: 13px;
    padding-right: 2.2em;
  }
  .block_news .item {
    width: 100%;
    -webkit-box-shadow: 0px 0px 25px rgba(38, 48, 59, 0.1);
            box-shadow: 0px 0px 25px rgba(38, 48, 59, 0.1);
    margin-bottom: 20px;
    margin-left: auto;
    margin-right: auto;
  }
  .block_news .item:last-child {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 430px) {
  .block_news h3 {
    text-align: center;
  }
  .block_news .btn_news {
    display: table;
    margin: 10px auto 0;
  }
  .block_news .item {
    display: block;
    padding-bottom: 40px;
  }
  .block_news .list_post a {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .block_news .list_post .date {
    width: 100%;
  }
  .block_news .list_post .title {
    width: 100%;
    padding-left: 0;
  }
}
@media only screen and (max-width: 768px) {
  .idx01 {
    padding: 50px 0 100px;
    background-image: url(../images/idx01_bg_sp.jpg);
    background-position: top center;
    background-size: 100% auto;
  }
  .idx01 .tl_h3 {
    margin-bottom: 25px;
  }
  .idx01 .idx_logo {
    max-width: 350px;
    width: 90%;
    margin: 0 auto 15px;
  }
  .idx01 .col, .idx01 .idx_map {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx01 .idx_map {
    margin-top: 30px;
    height: 299px;
  }
  .idx01 .gr_btn {
    margin-top: 15px;
    margin-bottom: 20px;
  }
  .idx01 .idx_banner {
    margin-top: 30px;
  }
  .idx_banner .banner {
    width: calc(50% - 10px);
    margin: 5px 5px 6px;
  }
}
@media only screen and (max-width: 430px) {
  .idx_banner .banner {
    width: 100%;
    max-width: 350px;
    margin: 8px auto;
  }
  .idx01 .gr_btn .cm_btn {
    width: 100%;
    margin: 8px auto;
  }
  .idx01 .gr_btn .cm_btn:nth-child(2n+2) {
    margin-right: auto;
  }
}
@media only screen and (max-width: 768px) {
  .idx02 {
    margin-top: 0;
    padding: 7vw 0 50px;
    background-color: #f4f6f1;
  }
  .idx02::before {
    background-image: url(../images/idx02_bg01_sp.jpg), url(../images/idx02_bg02_sp.png);
    background-size: 100% auto, 100% auto;
    background-position: top center, bottom 50px center;
    margin-top: -50px;
    -webkit-mask-image: url(../images/idx03_mask_sp.svg);
    mask-image: url(../images/idx03_mask_sp.svg);
  }
  .idx02::after {
    top: -47px;
    background-size: 100% auto;
  }
  .idx02 .tl_h3 {
    margin-bottom: 25px;
  }
  .idx02 .gr_btn {
    margin-top: 25px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .idx02 .block_greeting {
    padding-top: 0;
  }
}
@media only screen and (max-width: 639px) {
  .idx02 .box_name {
    font-size: 1.9vw;
    top: -25px;
    right: 7px;
  }
  .idx02 .gr_btn .cm_btn {
    width: 100%;
    margin: 8px auto;
  }
}
@media only screen and (max-width: 768px) {
  .idx03 {
    padding: 15vw 0 50px;
  }
  .idx03::before {
    -webkit-mask-image: url(../images/idx03_mask_sp.svg);
    mask-image: url(../images/idx03_mask_sp.svg);
    background-size: 70% auto;
  }
  .idx03 .tl_h3 {
    margin-bottom: 25px;
  }
  .idx03 h4 {
    font-size: 22px;
    letter-spacing: 0;
  }
  .idx03 .cm_btn {
    margin-right: 0;
  }
  .idx03 .block_feature .feature_item {
    margin-bottom: 20px;
    margin-left: auto;
    margin-right: auto;
    max-width: 570px;
    padding: 10px;
    border-radius: 15px;
  }
  .idx03 .block_feature .feature_item:last-child {
    margin-bottom: 0;
  }
  .idx03 .block_feature .box_in {
    border-radius: 10px;
  }
  .idx03 .block_feature .feature_num {
    font-size: 75px;
    left: 20px;
    top: -25px;
  }
  .idx03 .block_feature .feature_cont {
    padding: 47px 12px 34px;
  }
}
@media only screen and (max-width: 768px) {
  .idx04 {
    padding: 50px 0 40px;
  }
  .idx04 .box_title {
    display: block;
    margin-bottom: 32px;
  }
  .idx04 .btn_icon {
    width: 100%;
    margin: 20px auto 0;
  }
  .idx04 .idx_banner {
    margin-top: 15px;
    margin-bottom: 20px;
  }
  .idx04 .idx_banner .banner {
    width: 100%;
    margin: 8px auto;
  }
  .idx04 .block_treatment {
    font-size: min(10px, 1.7vw);
  }
  .idx04 .block_treatment h4 .en {
    letter-spacing: 0.02em;
  }
  .idx04 .block_treatment.b_vertical .treatment_item {
    width: calc((100% - 1em) / 2);
    max-width: 275px;
    margin-right: 1em;
    margin-bottom: 1em;
  }
  .idx04 .block_treatment.b_vertical .treatment_item:nth-child(2n+2) {
    margin-right: 0;
  }
  .idx04 .block_treatment.b_vertical .box_in {
    padding: 4.3em 1em 8.3em;
  }
  .idx04 .block_treatment.b_vertical .box_in::after {
    background-position: calc(50% + 0em) calc(50% + 0.03em);
    background-size: 5px auto;
  }
  .idx04 .block_treatment.b_horizontal .treatment_item {
    width: calc((100% - 1em) / 2);
    max-width: 275px;
    margin-right: 1em;
    margin-bottom: 1em;
  }
  .idx04 .block_treatment.b_horizontal .treatment_item:nth-child(2n+2) {
    margin-right: 0;
  }
  .idx04 .block_treatment.b_horizontal .box_in {
    display: block;
    height: 100%;
    padding: 3px 3px 8em;
    text-align: center;
  }
  .idx04 .block_treatment.b_horizontal .box_in::after {
    background-position: calc(50% + 0.03em) calc(50% + 0.03em);
    background-size: 5px auto;
    left: 0;
    top: unset;
    bottom: 1.9em;
    right: 0;
  }
  .idx04 .block_treatment.b_horizontal .treatment_img {
    max-width: 26.6em;
    width: 100%;
    margin: 0 auto 2.5em;
  }
  .idx04 .block_treatment.b_horizontal .treatment_cont {
    width: 100%;
    padding-left: 0;
  }
}
@media only screen and (max-width: 768px) {
  .idx05 {
    padding: 50px 0;
  }
  .idx05::before {
    background-size: auto;
    height: 100%;
    max-height: 100%;
    background-position: top center;
    background-image: url(../images/idx05_bg_sp.jpg);
  }
  .idx05 .tl_h3 {
    margin-bottom: 25px;
  }
  .idx05 h4 {
    font-size: 22px;
    margin-bottom: 10px;
  }
  .idx05 .cm_btn {
    margin-top: 20px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 .slick-dots {
    margin-top: 50px;
  }
  .idx05 .slick-dots li {
    margin: 0 5px;
  }
  .idx05 .slick-dots li button {
    width: 9px;
    height: 9px;
    -webkit-box-shadow: 0 0 5px rgba(255, 255, 255, 0.1);
            box-shadow: 0 0 5px rgba(255, 255, 255, 0.1);
  }
  .idx05 .facilities_slider, .idx05 .facilities_cont {
    width: 100%;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 .facilities_slider > ul .slick-slide {
    height: 67.5vw;
    max-height: 67.5vw;
  }
  .idx05 .facilities_cont {
    padding-top: 20px;
  }
  .idx05 .facilities_tl {
    font-size: 22px;
    padding: 0.8em 0.8333333333em;
  }
  .idx05 .bnr_bg::before {
    top: unset;
    bottom: -50px;
  }
  .idx05 .bnr_frog {
    margin-top: 50px;
    padding: 5em 5% 32em;
    background-position: bottom 6.9em center, bottom 22em center, top 1em right 2em, center bottom;
    background-size: 25.6em auto, 20em auto, 10em auto, 768px auto;
    background-color: #f4f0e5;
    background-image: url(../images/bnr_frog.png), url(../images/cloud.svg), url(../images/cloud.svg), url(../images/bnr_bg_sp.jpg);
    font-size: min(8px, 1.7vw);
  }
  .idx05 .bnr_frog::before, .idx05 .bnr_frog::after {
    width: 10em;
    height: 11.3em;
  }
  .idx05 .bnr_frog::before {
    left: -2.1em;
    bottom: 0.5em;
  }
  .idx05 .bnr_frog .box_in {
    width: 100%;
    height: calc(100% - 200px);
    padding: 3.6em 6% 3.2em;
  }
  .idx05 .bnr_frog .box_in::before {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    top: unset;
    bottom: -5.5em;
    right: -8.5em;
    left: 0;
    width: 5.5em;
    height: 5.5em;
  }
}
@media only screen and (max-width: 430px) {
  .idx05 .bnr_frog {
    background-position: bottom 6.9em center, bottom 20em center, top 1em right 2em, center bottom 24%;
  }
  .idx05 .bnr_frog .box_in p {
    font-size: 14px;
  }
}