@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 120vw;
    --min-height: 320px;
    background-image: url(../images/idx_key_bg_sp.jpg);
    background-position: top center;
  }
  .home_page .key .inner {
    padding: 0 10px;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
  .home_page .key .item {
    justify-content: flex-end;
        padding-bottom: 10vh;
  }
  .home_page .key h2, .home_page .key .txt, .home_page .key .key_list {
    width: 100%;
  }
  .home_page .key h2 {
    margin-bottom: 4vw;
    font-size: 5vw;
    order: 1;
  }
  .home_page .key .txt {
    font-size: 3vw;
    order: 2;
  }
  .home_page .key .key_list {
    margin: 4vw 0 0;
    order: 3;
  }
  .home_page .key .key_list p {
    width: calc(33.3333333333% - 2vw);
    height: 8vw;
    margin: 0 1vw;
    font-size: 3.8vw;
  }
}
@media only screen and (max-width: 520px) {
  .home_page .key .item {
        padding-bottom: 7vh;
  }
  .home_page .key h2 {
    font-size: 5.96vw;
  }
  .home_page .key .txt {
    font-size: 4.5vw;
  }
  .home_page .key .key_list p {
    height: 14vw;
    max-width: 190px;
    font-size: 5vw;
  }
}
@media only screen and (max-width: 768px) and (orientation: landscape) {
  .home_page .key {
    --height: calc(130vh - 60px);
    background-image: url(../images/idx_key_bg.jpg);
    background-position: top 25% center;
  }
  .home_page .key h2 {
    margin-bottom: 2vw;
    font-size: 4.5vw;
  }
  .home_page .key .txt {
    font-size: 3vw;
  }
  .home_page .key .key_list {
    margin: 2vw 0 0;
  }
  .home_page .key .key_list p {
    width: calc(33.3333333333% - 2vw);
    height: 8vw;
    margin: 0 1vw;
    font-size: 3.5vw;
  }
}
@media only screen and (max-width: 768px) {
  .home_page h3 {
    margin-bottom: 30px;
    padding-bottom: 15px;
    font-size: calc(var(--ttl_size) + 4px);
  }
  .home_page h3::after {
    width: 50px;
  }
  .home_page h3.fz30 {
    font-size: var(--ttl_size);
  }
  .idx_en {
    font-size: 10vw;
  }
}
@media only screen and (max-width: 520px) {
  .idx_en {
    font-size: 12vw;
  }
}
@media only screen and (max-width: 768px) {
  .idx01 .col {
    padding: 60px 20px;
  }
  .idx01 .thumb {
    margin: 0 auto;
  }
  .idx01 .info {
    margin-bottom: 30px;
  }
  .idx01 dl {
    padding: 15px 29px;
  }
  .idx01 dl dt {
    font-size: calc(var(--ttl_size) - 13px);
  }
  .idx01 .idx_btn a {
    padding: 15px 10px;
    font-size: calc(var(--ttl_size) - 12px);
  }
}
@media only screen and (max-width: 520px) {
  .idx01 .col {
    padding: 40px 20px;
  }
  .idx01 dl {
    padding: 10px;
  }
  .idx01 .idx_btn a {
    padding: 10px;
  }
}
@media only screen and (max-width: 768px) {
  .idx02 {
    padding: 60px 20px 90px 20px;
    position: relative;
  }
  .idx02_logo {
    margin: 0 auto;
  }
  .idx02 .thumb {
    margin: 0 auto;
  }
  .idx02 .info {
    margin: 20px 0 30px 0;
  }
  .idx02 dl {
    padding: 15px 0;
  }
  .idx02 dl span {
    padding-left: 12px;
    text-indent: -12px;
  }
  .idx02 .idx_box_btn {
    width: calc(100% - 40px);
    position: absolute;
    left: 50%;
    bottom: 0;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media only screen and (max-width: 520px) {
  .idx02 {
    padding: 40px 20px 140px 20px;
  }
  .idx02_logo {
    max-width: 240px;
  }
  .idx02 dl::after {
    width: 95px;
  }
  .idx02 dl dt {
    width: 95px;
  }
  .idx02 dl dd {
    width: calc(100% - 95px);
  }
  .idx02 dl .br_spec {
    display: none !important;
  }
}
@media only screen and (max-width: 768px) {
  .idx03 {
    padding-top: 60px;
  }
  .idx03 .idx_en {
    margin-right: 0;
    text-align: center;
  }
  .idx03 .inner {
    padding: 0 20px 130px 20px;
  }
  .idx03 .thumb {
    padding-bottom: 150px;
    position: relative;
  }
  .idx03 .col_name {
    width: 100%;
    max-width: 500px;
    margin: 0 auto 20px auto;
  }
  .idx03 .col_name picture {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
  }
  .idx03 .col_text p:not(:last-child) {
    margin-bottom: 13px;
  }
  .idx03 .name {
    margin: 20px auto 0 auto;
    font-size: calc(var(--ttl_size) + 8px);
    display: table;
  }
  .idx03_box_btn {
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  .idx03_box01 {
    margin-top: -6px;
    clip-path: polygon(0 0, 100% 0, 100% 99.7%, 0 90%);
  }
  .idx03_box01::after {
    width: 102%;
    bottom: 12px;
    -webkit-transform: rotate(6.9deg) translateX(-50%);
            transform: rotate(6.9deg) translateX(-50%);
  }
  .idx03_box02 {
    margin-top: -115px;
  }
  .idx03_box02 .inner {
    padding-top: 30px;
    padding-bottom: 60px;
  }
}
@media only screen and (max-width: 640px) {
  .idx03_box01::after {
    -webkit-transform: rotate(8.9deg) translateX(-50%);
            transform: rotate(8.9deg) translateX(-50%);
  }
}
@media only screen and (max-width: 520px) {
  .idx03 {
    padding-top: 40px;
  }
  .idx03 .inner {
    padding-bottom: 110px;
  }
  .idx03_box01 {
    margin-top: -4px;
    clip-path: polygon(0 0, 100% 0, 100% 99.7%, 0 93%);
  }
  .idx03_box02 .inner {
    padding-bottom: 40px;
  }
  .idx03 .name {
    font-size: var(--ttl_size);
  }
  .idx03 .name span {
    font-size: 65%;
  }
  .idx03 .thumb {
    padding-bottom: 130px;
  }
}
@media only screen and (max-width: 320px) {
  .idx03 .inner {
    padding-bottom: 90px;
  }
  .idx03_box01 {
    clip-path: polygon(0 0, 100% 0, 100% 99.7%, 0 94%);
  }
  .idx03_box02 .inner {
    padding-top: 60px;
  }
}
@media only screen and (max-width: 768px) {
  .idx04 {
    padding: 60px 0;
    background-image: url(../images/idx04_bg_sp.jpg);
  }
  .idx04 h3 {
    margin-bottom: 40px;
  }
  .idx04 h3 span {
    margin-bottom: 0;
    font-size: 70%;
  }
  .idx04 .item {
    margin: 0 auto 50px auto;
  }
  .idx04 .item:last-child {
    margin-bottom: 0;
  }
  .idx04 .box_img {
    width: calc(100% - 40px);
  }
  .idx04 .num {
    font-size: calc(var(--ttl_size) + 62px);
    top: 25px;
    left: -42px;
  }
  .idx04 h4 {
    margin: 25px 0;
  }
}
@media only screen and (max-width: 520px) {
  .idx04 {
    padding: 40px 0;
  }
  .idx04 .num {
    font-size: calc(var(--ttl_size) + 40px);
    top: 0;
    left: -20px;
  }
}
@media only screen and (max-width: 768px) {
  .idx05 {
    padding: 60px 0;
  }
  .idx05_tab {
    margin-bottom: 30px;
  }
  .idx05_tab .TabPager {
    min-width: auto;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .idx05_tab .TabPager li {
    width: calc(20% - 1px);
    height: 80px;
    margin: 0 0.5px 1px 0.5px;
    font-size: calc(var(--ttl_size) - 9px);
  }
  .idx05_tab .TabContent .infor {
    padding: 20px;
  }
  .idx05_list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .idx05_list .item {
    width: calc(50% - 20px);
    margin: 10px;
  }
  .idx05_list .ttl {
    padding: 10px;
    font-size: calc(var(--ttl_size) - 8px);
  }
  .idx05_list .text {
    padding: 20px 15px;
  }
  .idx05_flow .item {
    text-align: center;
  }
  .idx05_flow .item:not(.item01)::before, .idx05_flow .item:not(.item01)::after {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    height: 20%;
    width: 20%;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
  }
  .idx05_flow .item:not(.item01)::before {
    bottom: calc(-20% + 2px);
  }
  .idx05_flow .item:not(.item01)::after {
    bottom: -20%;
  }
  .idx05_flow .item:not(.item01):not(:last-child) {
    border-bottom: 2px solid var(--main-color);
  }
  .idx05_flow .item:not(.item01):nth-of-type(2) .thumb {
    padding: 20px;
  }
  .idx05_flow .item:not(.item01):nth-of-type(2) .thumb::before {
    border-top: 3px solid #fff;
  }
  .idx05_flow .item:not(.item01) .thumb {
    padding: 50px 20px 20px 20px;
  }
  .idx05_flow .item:not(.item01) .thumb::before {
    border-top: none;
  }
  .idx05_flow .item:not(.item01) .thumb::after {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    bottom: calc(-20% + 6px);
    height: 20%;
    width: 20%;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
  }
  .idx05_flow .item01 {
    padding: 20px 10px;
    border-bottom: 2px solid var(--main-color);
  }
  .idx05_flow .item01::before {
    border-bottom: none;
  }
  .idx05_flow .item01 h4 br {
    display: none;
  }
  .idx05_flow .item01 .idx_btn a {
    padding: 10px;
    font-size: calc(var(--ttl_size) - 11px);
  }
  .idx05_flow .item01 .idx_btn a::after {
    top: 50%;
  }
  .idx05_flow h5 {
    font-size: calc(var(--ttl_size) - 4px);
  }
}
@media only screen and (max-width: 520px) {
  .idx05 {
    padding: 40px 0;
  }
  .idx05_tab .TabPager li {
    height: 15vw;
    max-height: 80px;
    padding: 10px 5px;
    font-size: 3vw;
  }
  .idx05_list .item {
    width: 100%;
    margin: 0 auto 20px auto;
  }
  .idx05_list .item:last-child {
    margin-bottom: 0;
  }
  .idx05_list .ttl {
    height: auto !important;
    padding: 5px 10px;
  }
  .idx05_list .ttl::after {
    right: 10px;
  }
  .idx05_flow .item:not(.item01)::before, .idx05_flow .item:not(.item01)::after {
    height: 10%;
  }
  .idx05_flow .item:not(.item01)::before {
    bottom: calc(-10% + 2px);
  }
  .idx05_flow .item:not(.item01)::after {
    bottom: -10%;
  }
  .idx05_flow .item:not(.item01) .thumb {
    padding: 30px 20px 20px 20px;
  }
  .idx05_flow .item:not(.item01) .thumb::after {
    bottom: calc(-10% + 6px);
    height: 10%;
  }
}