@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 156vw;
    --min-height: 320px;
  }
  .home_page .key h2 {
    margin-bottom: 0.2em;
  }
  .home_page .key p {
    font-size: 2.8em;
  }
  .home_page .key .key_text {
    font-size: 8px;
  }
  .home_page .key .key_text .item {
    padding: 10px;
  }
  .home_page .key .mv_slider .key_img {
    width: 100%;
    height: 50%;
  }
  .home_page .key .mv_slider .key_img01 img {
    -o-object-position: bottom;
       object-position: bottom;
  }
  .home_page .key .mv_slider .key_img02 {
    bottom: 0;
    top: unset;
  }
  .home_page .key .key_catch {
    padding: 0 10px;
  }
}
@media only screen and (max-width: 450px) {
  .home_page .key .key_text {
    font-size: 1.5vmin;
  }
  .home_page .key p {
    font-size: 3.2em;
  }
}
@media only screen and (max-width: 768px) and (orientation: landscape) {
  .home_page .key .key_text {
    font-size: 1.5vmin;
  }
}
@media only screen and (max-width: 768px) {
  .h3_tl {
    font-size: min(26px, 7.5vw);
    text-align: center;
  }
  .h3_tl::before {
    margin-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
  }
  .h3_tl .en {
    margin-left: auto;
    margin-right: auto;
    font-size: 12px;
    letter-spacing: 0.15em;
    margin-top: 10px;
  }
  .h3_tl .en::before, .h3_tl .en::after {
    display: block;
  }
  .idx01 {
    padding: 60px 0 0;
  }
  .idx01::before {
    top: 0;
    bottom: unset;
    width: 100%;
    height: 190px;
    border-top-right-radius: 0;
  }
  .idx01 .h3_tl {
    margin-bottom: 85px;
  }
  .idx01 .cm_btn {
    margin: 30px auto 0;
  }
  .idx01 .list_post {
    padding-right: 0;
  }
  .idx01 .list_post .post_cont {
    padding-left: 20px;
    width: calc(100% - 135px);
  }
  .idx01 .list_post .post_cont::after {
    width: 22px;
    height: 22px;
  }
  .idx01 .list_post .post_ttl {
    line-height: 1.4;
  }
  .idx01 .list_post .post_tab .cate {
    padding: 5px 4px 5px 4px;
    font-size: 13px;
    margin-right: 10px;
  }
  .idx02 {
    padding: 50px 0 60px;
  }
  .idx02::before {
    width: 100%;
    height: calc(148vw - 20px);
    max-height: 720px;
  }
  .idx02 .h3_tl {
    margin-bottom: 25px;
  }
  .idx02 .instagram_tl {
    padding-top: 0;
  }
  .idx02 .instagram_tl, .idx02 .instagram_list {
    max-width: 100%;
    width: 100%;
  }
  .idx02 .insta_txt {
    font-size: 16px;
    padding: 10px 10px 10px;
    max-width: 360px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx02 .insta_link {
    margin-top: 25px;
  }
  .idx02 .insta_link_icon {
    margin-bottom: 0.2em;
  }
  .idx02 .insta_link_icon img {
    width: 2.5em;
  }
  .idx02 .insta_link_txt {
    font-size: 16px;
  }
  .idx02 .insta_link_txt a {
    padding-bottom: 0.4em;
  }
  .idx02 .instagram_list {
    margin-top: 40px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .idx02 .instagram_list .item {
    max-width: 270px;
    width: calc((100% - 5px) / 2);
    margin-right: 5px;
  }
  .idx02 .instagram_list .item:nth-child(3n+3) {
    margin-right: 5px;
  }
  .idx02 .instagram_list .item:nth-child(2n+2) {
    margin-right: 0;
  }
  .idx03 {
    padding-bottom: 60px;
  }
  .idx03_tl {
    max-height: 260px;
    height: 89vw;
    padding: 10vw 0 10vw;
  }
  .idx03 .block_about {
    padding: 50px 5%;
    margin-top: -60px;
  }
  .idx03 .b_video {
    max-width: 370px;
    width: 100%;
    max-height: 492px;
    height: 109vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 30px;
    border-radius: 30px;
  }
  .idx03 .b_video_ttl .ic_play {
    font-size: 17px;
  }
  .idx03 .popup_video .icon_close {
    width: 30px;
    height: 30px;
    top: -15px;
    right: -15px;
  }
  .idx03 .box_download {
    font-size: 8px;
    border-radius: 4em;
    margin-top: 40px;
  }
  .idx03 .box_download::after {
    width: 5.5em;
    height: 5.5em;
    bottom: 2em;
  }
  .idx03 .box_download .box_in {
    padding: 3.7em 2.5em 2em;
    border-radius: 3.6em;
  }
  .idx03 .list-infor_item {
    width: calc((100% - 10px) / 2);
    margin-right: 10px;
    padding-bottom: 12px;
    padding-top: 15px;
  }
  .idx03 .list-infor_item::after {
    top: 3px;
    width: 16px;
    height: 16px;
  }
  .idx03 .list-infor_item:nth-child(2n+2) {
    margin-right: 0;
  }
  .idx03 .list-infor_tl {
    padding-left: 10px;
  }
  .idx03 .list-infor_tl .en {
    font-size: 10px;
  }
  .idx03 .ft-traffic {
    margin-top: 24px;
    margin-bottom: 15px;
  }
  .idx03 .ft-traffic_item:not(:last-child) {
    padding-right: 20px;
    margin-right: 20px;
  }
  .idx04 {
    height: auto;
    padding-top: 55px;
  }
  .idx04 .h3_tl {
    margin-bottom: 20px;
  }
  .idx04 .block_types {
    width: 100%;
    margin-right: auto;
    margin-bottom: 30px;
  }
  .idx04 .graves_slider {
    position: relative;
    width: 100%;
    height: 58vw;
    max-height: 600px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx04 .cm_btn {
    margin-top: 25px;
  }
  .idx04 .cm_btn a {
    padding-bottom: 15px;
    padding-right: 30px;
  }
  .idx04 .cm_btn a::after {
    bottom: 16px;
  }
  .idx05 {
    padding-top: 55px;
  }
  .idx05 .inner_big {
    padding-top: 50px;
    padding-bottom: 60px;
  }
  .idx05 .inner_big:before {
    left: 40px;
    width: 100%;
    border-top-left-radius: 50px;
  }
  .idx05 .inner_big::after {
    left: 0;
    right: 0;
    bottom: 20px;
    font-size: 5px;
    margin: auto;
  }
  .idx05 .h3_tl {
    margin-bottom: 25px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 .icon_insta {
    width: 22px;
    height: 22px;
    right: -29px;
    top: 40px;
  }
  .idx05 .cm_btn {
    margin: 30px auto 0;
  }
  .idx05 .block_information {
    max-width: 500px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 .information_img {
    display: table;
    margin: 0 auto 20px;
  }
  .idx06 {
    padding: 60px 0 225px;
    background-image: url(../images/idx06_bg_sp.jpg);
  }
  .idx06 .h3_tl {
    margin-bottom: 10px;
  }
  .idx06 .block-flow {
    margin: 0 -5px;
  }
  .idx06 .block-flow_item {
    padding: 30px 10px 20px;
    margin: 34px 5px 0;
    width: calc(50% - 10px);
    max-width: 370px;
  }
  .idx06 .block-flow_img {
    font-size: min(14px, 3.5vw);
  }
  .idx06 .block-flow_img img {
    max-width: auto;
    max-height: 100%;
  }
  .idx06 .block-flow h4 {
    font-size: min(18px, 5.2vw);
    margin-bottom: 8px;
  }
  .idx06 .block-flow h4::after {
    margin-top: 5px;
  }
  .idx06 .block-flow .flow_num {
    font-size: 45px;
  }
  .idx07 .h3_tl {
    margin-bottom: 25px;
  }
  .idx07 .cm_btn {
    margin-top: 25px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx07 .cm_btn a::after {
    right: 0;
  }
  .idx07 .idx_wrap {
    padding: 50px 0 50px 0;
    margin-top: -170px;
  }
  .idx07 .idx_wrap:before {
    right: 10px;
    border-top-right-radius: 50px;
  }
  .idx07 .block-service {
    margin: 35px -5px 0;
  }
  .idx07 .block-service_item {
    width: calc(33.3333333333% - 10px);
    margin: 5px;
    min-height: 6.2857142857em;
  }
  .idx07 .block-service_item::before {
    width: 1.2857142857em;
    height: 1.2857142857em;
    bottom: 0.5714285714em;
  }
  .idx08 {
    padding: 60px 0 50px;
  }
  .idx08 .h3_tl {
    margin-bottom: 20px;
  }
  .idx08 .block_contact {
    max-width: 590px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx08 .contact-btn {
    margin-top: 25px;
  }
  .idx08 .contact-btn_item {
    max-width: 400px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    height: 80px;
  }
  .idx08 .contact-btn_item.btn_tel .contact-btn_tl {
    padding-left: 40px;
  }
  .idx08 .contact-btn_item.btn_tel .contact-btn_tl::before {
    top: -2px;
    width: 22px;
    height: 29px;
  }
  .idx08 .contact-btn_item.btn_web .contact-btn_tl {
    padding-left: 38px;
  }
  .idx08 .contact-btn_item.btn_web .contact-btn_tl:before {
    width: 26px;
    height: 25px;
  }
  .idx08 .contact-btn_tl {
    font-size: 18px;
  }
}
@media only screen and (max-width: 639px) {
  .idx03 .ft-traffic_item:not(:last-child) {
    padding-right: 0;
    margin-right: 0;
  }
  .idx03 .box_download {
    height: 22em;
  }
  .idx03 .box_download .download_tl {
    margin-bottom: 0.5em;
  }
  .idx07 .block-service_item {
    font-size: min(14px, 3.5vw);
    width: calc(50% - 10px);
    padding-top: 0.5em;
  }
}
@media only screen and (max-width: 450px) {
  .idx01 .list_post .post_item {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .idx01 .list_post .post_img {
    width: 85px;
    height: 85px;
  }
  .idx01 .list_post .post_cont {
    width: calc(100% - 85px);
    padding-left: 14px;
  }
  .idx03_tl {
    padding-top: 21vw;
  }
  .idx03 .list-infor_item {
    width: 100%;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: 17px;
  }
  .idx03 .list-infor_item:nth-child(2n+2) {
    margin-right: auto;
    margin-left: auto;
  }
  .idx03 .list-infor_tl {
    padding-left: 8px;
  }
}
@media only screen and (max-width: 370px) {
  .idx03 .box_download::after {
    right: 2em;
  }
  .idx07 .h3_tl {
    letter-spacing: 0;
  }
}