@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh + 150px);
    --max-height: 156vw;
    --min-height: 320px;
    font-size: 8px;
    padding: 10px;
  }
  .home_page .key .key_text .item {
    padding: 10px;
    height: calc(100vh - 60px);
    max-height: 156vw;
    min-height: 320px;
  }
  .home_page .key .key_img .img_sm {
    right: 1.5em;
    max-width: 30em;
  }
  .home_page .key .tt-scroll p {
    font-size: 12em;
  }
}
@media only screen and (max-width: 639px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    font-size: 1.5vmin;
  }
}
@media only screen and (max-width: 768px) and (orientation: landscape) {
  .home_page .key {
    --height: calc(100vh + 150px);
    font-size: 1.5vmin;
  }
}
@media only screen and (max-width: 768px) {
  .wrap_title h2 {
    font-size: 20px;
  }
  .wrap_title .en {
    font-size: min(60px, 10vw);
    margin-bottom: 5px;
    white-space: nowrap;
  }
  .wrap_title .en::before {
    margin-bottom: 5px;
  }
  .idx01 {
    padding: 36vw 10px 60px;
  }
  .idx01_img01 {
    top: -25vw;
    left: -30px;
    width: 40%;
  }
  .idx01 .block_about {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
  }
  .idx01 .about_content {
    display: contents;
  }
  .idx01 .wrap_title {
    margin-bottom: 25px;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    width: 100%;
  }
  .idx01 .about_img {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    width: 80%;
    margin: 0 auto 60px;
  }
  .idx01 .about_img .img02 {
    bottom: -40px;
    left: -14%;
  }
  .idx01 .cont {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .idx02 {
    padding-top: 20px;
  }
  .idx02 .wrap_title {
    margin-bottom: 25px;
  }
  .idx02 .block_trouble {
    width: calc(100% - 20px);
    padding: 65px 5% 50px;
    border-radius: 25px;
  }
  .idx02 .block_trouble::before {
    height: 50px;
    top: -25px;
  }
  .idx02 .l_trouble .item {
    width: calc(50% - 6px);
    margin: 3px;
    padding: 1em;
    font-size: min(10px, 1.6vw);
  }
  .idx02 .l_trouble .title h3 {
    margin-bottom: 0;
  }
  .idx02 .l_trouble .title .en {
    font-size: 1.2em;
  }
  .idx03 {
    padding-top: 60px;
  }
  .idx03 .wrap_title {
    margin-bottom: 25px;
  }
  .idx03 .title {
    display: block;
    text-align: center;
    margin-bottom: 30px;
  }
  .idx03 .title h3 {
    font-size: 24px;
    padding-right: 0;
    padding-bottom: 15px;
  }
  .idx03 .title h3::before {
    top: unset;
    bottom: 10px;
    right: 0;
    left: 0;
    margin: 0 auto;
    -webkit-transform: rotate(0);
            transform: rotate(0);
    width: 1em;
    height: 1px;
  }
  .idx03 .treatments_img {
    padding: 15px;
    margin: 0 auto 25px;
    display: table;
  }
  .idx03 .b_grid {
    max-width: 600px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx03 .btn-group {
    margin-top: 30px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .idx03 .btn-group .btn {
    width: calc((100% - 10px) / 2);
    margin-right: 10px;
  }
  .idx03 .treatments_tab {
    padding: 40px 0 80px;
  }
  .idx03 .tab_bg > div {
    background-position: top center;
    background-size: 120% auto;
    background-color: #5e6672;
  }
  .idx03 .tab_bg > div.bg01 {
    background-image: url(../images/idx03_tab01_bg_sp.jpg);
  }
  .idx03 .tab_bg > div.bg02 {
    background-image: url(../images/idx03_tab02_bg_sp.jpg);
  }
  .idx03 .tab_bg > div.bg03 {
    background-image: url(../images/idx03_tab03_bg_sp.jpg);
  }
  .idx03 .tab_bg > div.bg04 {
    background-image: url(../images/idx03_tab04_bg_sp.jpg);
  }
  .idx03 .tab_bg > div.bg05 {
    background-image: url(../images/idx03_tab05_bg_sp.jpg);
  }
  .idx03 .tab_bg > div.bg06 {
    background-image: url(../images/idx03_tab06_bg_sp.jpg);
  }
  .l_btn {
    font-size: min(10px, 2.4vw);
  }
  .l_btn .btn_it {
    max-width: 100%;
    width: calc(50% - 10px);
    margin: 0 5px;
  }
  .l_btn .btn_it a {
    min-height: 4em;
    padding: 0.6875em 1.4em 0.625em 0;
  }
  .l_btn .btn_it:nth-last-child(-n+2) a {
    border-bottom: 1px solid #DBDBDB;
  }
  .idx04 .wrap_title {
    margin-bottom: 25px;
  }
  .idx04 .idx_bg {
    padding: 40px 20px 60px;
  }
  .idx04 .idx_bg:before {
    right: 10px;
  }
  .idx04 .idx_bg::after {
    width: 100%;
    height: 147vw;
    max-height: 785px;
    top: -40px;
  }
  .idx04 .injection_img {
    margin-bottom: 30px;
  }
  .idx04 .b_grid {
    max-width: 600px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05::before {
    width: calc(100% - 20px);
    max-height: 1550px;
    height: 80%;
    right: 10px;
    top: 40px;
  }
  .idx05 h3 {
    font-size: 22px;
    padding-bottom: 8px;
    margin-bottom: 15px;
  }
  .idx05 .inner_full .wrap_title {
    margin-bottom: 25px;
  }
  .idx05 .inner_full .l_btn {
    margin-top: 35px;
  }
  .idx05 .inner_big::before {
    top: -110px;
    right: 25.15%;
    height: 375px;
  }
  .idx05 .inner_big .wrap_title {
    margin-bottom: -175px;
  }
  .idx05 .inner_big .l_btn {
    margin-top: 25px;
  }
  .idx05 .b_grid {
    max-width: 600px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding: 100px 20px 170px;
  }
  .idx05 .care_img {
    padding: 15px;
    margin-top: 0;
    margin-bottom: 25px;
  }
  .idx05 .list li {
    margin-bottom: 5px;
  }
  .idx05 .block_other {
    padding: 195px 7% 50px;
    width: calc(100% - 20px);
  }
  .idx05 .block_other:before {
    inset: 10px;
  }
  .idx06 {
    padding: 60px 0px 14vw;
  }
  .idx06 .wrap_title {
    margin-bottom: 25px;
  }
  .idx06 .block_feature .feature_it {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 60px;
    max-width: 528px;
  }
  .idx06 .block_feature .feature_it::before {
    bottom: -20px;
    height: 39.3%;
  }
  .idx06 .block_feature h3 {
    font-size: 20px;
    line-height: 1.4;
    margin-bottom: 10px;
  }
  .idx06 .block_feature .point {
    left: 25px;
    top: 30px;
    font-size: min(40px, 8vw);
  }
  .idx06 .block_feature .point span {
    font-size: 2em;
    margin-top: 0;
  }
  .idx06 .block_feature .feature_bg {
    width: 90%;
  }
  .idx06 .block_feature .feature_cont {
    width: 88%;
    padding-left: 25px;
    padding-bottom: 20px;
  }
  .idx07 {
    padding-bottom: 60px;
  }
  .idx07 .illus {
    font-size: min(5px, 0.8vw);
  }
  .idx07 .illus01 {
    bottom: -17em;
  }
  .idx07 .wrap_title .en:before {
    right: unset;
    top: unset;
  }
  .idx07 .b_title {
    max-height: 450px;
    height: 70vw;
    padding-bottom: 10vw;
    margin-bottom: max(10vw, 80px);
  }
  .idx07 .b_title::before {
    bottom: -15px;
    height: 50%;
  }
  .idx07 .b_title::after {
    width: calc(100% + 5px);
  }
  .idx07 h3 {
    font-size: 24px;
    text-align: center;
    margin-bottom: 15px;
  }
  .idx07 .btn-group {
    margin-top: 20px;
  }
  .idx07 .btn-group .btn {
    margin: 10px auto;
  }
  .idx_map {
    height: 299px;
  }
  .sec_info .col_info {
    padding: 40px 10px;
    max-width: 600px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .sec_info .ft_logo {
    display: table;
    width: 90%;
    max-width: 300px;
    margin: 0 auto 15px;
  }
  .sec_info .ft_logo picture {
    text-align: center;
  }
  .sec_info .box_address {
    margin-bottom: 25px;
  }
  .sec_info .bx_time .tb_note {
    margin-top: 14px;
  }
  .sec_info .block_news {
    margin-top: 20px;
    padding: 18px 15px 10px 15px;
  }
  .sec_info .block_news .b_title {
    margin-bottom: 0;
  }
  .sec_info .block_news h3 {
    font-size: 18px;
  }
  .sec_info .block_news .btn_news {
    margin-top: 1px;
  }
  .sec_info .block_news .btn_news a {
    font-size: 12px;
  }
  .sec_info .block_news .list_post a {
    padding: 5px 0;
  }
  .sec_info .block_news .list_post a .date {
    width: 75px;
  }
  .sec_info .block_news .list_post a .title {
    width: calc(100% - 75px);
  }
  .sec_info .col_banner .bnr {
    height: 30em;
    font-size: min(10px, 1.5vw);
  }
  .sec_info .col_banner .bnr01 .bnr_tl, .sec_info .col_banner .bnr02 .bnr_tl {
    padding-right: 3.5em;
    padding-left: 3.5em;
  }
  .sec_info .col_banner .bnr01 .bnr_tl::after, .sec_info .col_banner .bnr02 .bnr_tl::after {
    right: 6em;
  }
}
@media only screen and (max-width: 425px) {
  .idx02 .l_trouble .title .en {
    font-size: 1.5em;
  }
  .idx03 .btn-group .pc_br {
    display: block;
  }
  .l_btn .btn_it a {
    letter-spacing: 0;
  }
  .idx05 .inner_big .wrap_title {
    margin-bottom: -145px;
  }
  .idx05 .inner_big .wrap_title .en {
    font-size: min(60px, 9vw);
  }
  .idx05 .block_other {
    padding-top: 155px;
  }
  .idx05 .block_other .l_btn {
    font-size: min(10px, 2.2vw);
  }
  .idx06 .block_feature .feature_it {
    min-height: 50vw;
  }
  .idx06 .block_feature .feature_it::before {
    height: 71.3%;
  }
  .idx06 .block_feature .feature_cont {
    padding-top: 46vw;
  }
  .idx06 .block_feature .feature_bg {
    width: 80%;
  }
  .idx07 .b_title {
    margin-bottom: max(10vw, 65px);
  }
}
@media only screen and (max-width: 370px) {
  .idx03 .btn-group .btn a {
    font-size: min(14px, 3.5vw);
  }
}