@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 142vw;
    --min-height: 530px;
    background-image: url(../images/idx_mv_sp.jpg);
  }
  .home_page .key::after {
    width: 74%;
    height: calc(45% - 40px);
  }
  .home_page .key .key_text {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-size: min(10px, 1.7vw);
  }
  .home_page .key .key_text .item {
    padding: 10px;
  }
  .home_page .key .key_img {
    padding-left: 0;
    font-size: 0.7em;
  }
  .home_page .key .key_label {
    left: -6em;
  }
  .home_page .key .catch {
    text-align: center;
    margin: 0 auto;
  }
  .home_page .key .catch h2 {
    line-height: 1.8;
    margin-bottom: 0.8em;
    font-size: 2.3em;
  }
  .home_page .key .catch .catch_txt {
    font-size: 2em;
  }
}
@media only screen and (max-width: 450px) {
  .home_page .key .catch {
    padding-top: 1.5em;
    padding-bottom: 5.7em;
  }
  .home_page .key .catch .catch_en {
    font-size: 7.88em;
  }
  .home_page .key .key_img {
    padding-left: 2em;
    font-size: 0.826em;
  }
  .home_page .key .key_label {
    left: -4.5em;
    bottom: -0.9em;
    width: 7.5em;
    height: 7.5em;
  }
}
@media only screen and (max-width: 768px) {
  .idx01 {
    padding: 60px 0;
    background-image: url(../images/idx01_bg_sp.png);
  }
  .idx01 .h3_tl01 {
    margin-bottom: 25px;
  }
  .idx02 {
    padding: 60px 0 80px;
    background-size: 175% auto, auto;
  }
  .idx02::before {
    width: 125px;
    bottom: -55px;
  }
  .idx02 .h3_tl02 {
    margin-bottom: 25px;
  }
  .idx02 .b_recruit h4 {
    font-size: 22px;
  }
  .idx02 .b_recruit h4::after {
    margin-top: 8px;
  }
  .idx02 .b_recruit-item {
    padding: 30px 18px 36px;
    margin-bottom: 20px;
    margin-right: 10px;
    margin-left: 10px;
    width: calc(50% - 20px);
  }
  .idx02 .b_recruit-item:last-child {
    margin-bottom: 0;
  }
  .idx02 .b_recruit-img {
    margin-bottom: 24px;
    width: 70%;
  }
  .idx02 .b_problems {
    font-size: min(14px, 2.9vw);
    margin-top: 30px;
  }
  .idx02 .b_problems-tt01 {
    font-size: 1.5714285714em;
    margin-bottom: 0.2em;
  }
  .idx02 .b_problems-tt02 {
    font-size: 2em;
  }
  .idx03 {
    padding: 60px 0 0;
  }
  .idx03 h3 {
    font-size: 24px;
    margin-bottom: 20px;
  }
  .idx03 .about_tl {
    margin-bottom: 30px;
    font-size: min(14px, 3.4vw);
  }
  .idx03 .about_tl p {
    line-height: 1.5;
  }
  .idx03 .about_tl-tt01 {
    font-size: 1.4285714286em;
  }
  .idx03 .about_tl-tt02 {
    font-size: 2em;
  }
  .idx03 .about_tl-tt02 .en {
    font-size: 2.5em;
    padding-right: 0.1em;
    top: 0.0571428571em;
  }
  .idx03 .inner_big::before {
    font-size: 5px;
    top: -23.3em;
  }
  .idx03 .about_content {
    max-width: 626px;
    width: 100%;
    margin: 0 auto;
    padding: 40px 5% 30px;
  }
  .idx03 .about_content::before {
    width: 230%;
    height: calc(84% - 67px);
    opacity: 0.5;
  }
  .idx03 .about_content-ttl {
    font-size: 18px;
    text-align: center;
    margin-bottom: 22px;
    letter-spacing: 0.05em;
  }
  .idx03 .about_content-ttl .en {
    display: block;
    padding-right: 0;
    margin-right: 0;
    padding-bottom: 17px;
    font-size: min(50px, 12vw);
  }
  .idx03 .about_content-ttl .en::before {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    bottom: -7px;
    left: 0;
    margin: auto;
  }
  .idx03 .about_content-img {
    max-width: 442px;
    width: 100%;
    margin: 0 auto;
    font-size: min(12px, 2vw);
  }
  .idx03 .about_content-txt p:not(.subtxt) {
    margin-bottom: 15px;
  }
  .idx03 .about_content-txt p:last-child {
    margin-bottom: 0;
  }
  .idx03 .about_content .subtxt {
    font-size: min(24px, 5.4vw);
    text-align: center;
    margin-bottom: 9px;
  }
  .idx03 .about_content .br_pc {
    display: none;
  }
  .idx04 {
    padding-top: 60px;
  }
  .idx04 .inner_big::before {
    font-size: 5px;
    bottom: -59.3em;
  }
  .idx04 .h3_tl01 {
    margin-bottom: 20px;
  }
  .idx04 .b_merit-item {
    padding: 20px 5%;
    width: calc(50% - 20px);
    margin-left: 10px;
    margin-right: 10px;
    margin-bottom: 20px;
  }
  .idx04 .b_merit-item:last-child {
    margin-bottom: 0;
  }
  .idx04 .b_merit-ttl {
    font-size: 22px;
    margin-bottom: 20px;
  }
  .idx04 .b_merit-img {
    margin-bottom: 15px;
    width: 70%;
  }
  .idx05 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .idx05 .h3_tl01 {
    margin-bottom: 25px;
  }
  .idx05 .b_flow-item {
    max-width: 626px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 .b_flow-item::after {
    width: 105px;
    left: 0;
    right: 0;
    bottom: -45px;
    margin: auto;
  }
  .idx05 .b_flow-num {
    font-size: 20px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 .b_flow-num span {
    font-size: 60px;
    line-height: 0.8;
  }
  .idx05 .b_flow-img {
    margin: 20px auto 30px;
    display: table;
  }
  .idx05 .b_flow h4 {
    font-size: 22px;
    margin-bottom: 15px;
    padding-left: 12px;
  }
  .idx05 .b_flow h4 .tt_sm {
    font-size: 12px;
    margin-top: 3px;
  }
  .idx05 .b_flow .fblock {
    padding: 40px 5% 50px;
  }
  .idx05 .flow_contact {
    padding: 20px 5%;
  }
  .idx05 .flow_contact .flex {
    font-size: min(14px, 3vw);
  }
  .idx05 .flow_contact .item::before {
    top: -1px;
  }
  .idx05 .flow_contact .item::after {
    font-size: 13px;
    right: 0.5em;
  }
  .idx05 .flow_contact .item.it_web {
    padding-left: 1.75em;
  }
  .idx05 .flow_contact .item.it_web:before {
    left: 1em;
  }
  .idx05 .flow_contact .tt_note {
    margin-top: 11px;
  }
  .idx06 {
    padding: 60px 0;
    background-image: url(../images/idx06_bg_sp.jpg);
  }
  .idx06 h3 {
    font-size: 20px;
    text-align: center;
    padding-bottom: 12px;
    margin-bottom: 30px;
  }
  .idx06 h3 .tt01 {
    font-size: 30px;
    margin-top: 3px;
    text-indent: 0;
  }
  .idx06 .subtxt {
    font-size: 20px;
    line-height: 1.55;
    text-align: center;
  }
  .idx06 .b_introduction-img {
    max-width: 640px;
    width: 100%;
    margin: 14vw auto 9vw;
  }
  .idx06 .gr_device {
    font-size: min(8px, 1.35vw);
    max-width: 61.714286em;
    width: 100%;
    margin: 0 auto;
  }
  .idx06 .gr_device::before {
    width: 63.5em;
    height: 63.5em;
    top: -7.5em;
  }
  .idx07 {
    padding: 60px 0;
  }
  .idx07 .h3_tl01 {
    margin-bottom: 25px;
  }
  .idx07 .b_plan {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .idx07 .b_plan-item {
    max-width: 626px;
    width: calc(50% - 20px);
    margin-left: 10px;
    margin-right: 10px;
    margin-bottom: 20px;
  }
  .idx07 .b_plan-ttl {
    padding: 1.1em 1.1em;
    font-size: min(14px, 1.95vw);
  }
  .idx07 .b_plan-ttl h4 {
    font-size: 1.4285714286em;
  }
  .idx07 .b_plan-ttl h4 .en {
    font-size: 0.7em;
    margin-top: 0.2857142857em;
  }
  .idx07 .b_plan-ttl .txt_num {
    font-size: 3.9285714286em;
    width: 0.8181818182em;
    margin-right: 0.2727272727em;
  }
  .idx07 .b_plan h5 {
    font-size: 18px;
    margin-bottom: 20px;
  }
  .idx07 .b_plan .b_detail {
    width: 100%;
    padding: 20px 20px 20px 20px;
  }
  .idx07 .b_plan .b_detail .tt_note {
    font-size: 11px;
  }
  .idx07 .b_plan-img {
    max-width: 245px;
    width: 75%;
  }
  .idx07 .b_plan-cont {
    padding: 0 20px 30px;
  }
  .idx07 .bnr_data {
    margin-top: 40px;
    margin-bottom: 40px;
    font-size: min(14px, 2.5vw);
  }
  .idx07 .b_costs {
    padding: 30px 25px 33px;
  }
  .idx07 .b_costs-tt01 {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-bottom: 15px;
    margin-bottom: 15px;
    text-align: center;
  }
  .idx07 .b_costs-tt01::before {
    width: 70%;
    max-width: 400px;
    height: 1px;
    top: unset;
    bottom: 0;
    right: 0;
    left: 0;
    margin: 0 auto;
  }
  .idx07 .b_costs-tt01 p {
    font-size: 20px;
  }
  .idx07 .b_costs-tt01 p .tt_num {
    font-size: 44px;
  }
  .idx07 .b_costs-tt02 {
    width: 100%;
    padding-left: 0;
  }
  .idx08 {
    padding-bottom: 60px;
  }
  .idx08 .h3_tl01 {
    margin-bottom: 25px;
  }
  .idx08 .inner_big::before {
    font-size: 5px;
  }
}
@media only screen and (max-width: 450px) {
  .idx02 {
    background-size: 295% auto, auto;
  }
  .idx02 .b_recruit-item {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 25px;
  }
  .idx03 .about_tl-tt01 {
    font-size: 20px;
  }
  .idx04 .b_merit-item {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 25px;
  }
  .idx07 .b_plan-ttl {
    font-size: min(14px, 3.9vw);
  }
  .idx07 .b_plan-item {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 25px;
  }
  .idx07 .b_plan-item:last-child {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 350px) {
  .idx06 h3 .tt01 {
    letter-spacing: 0.05em;
  }
  .idx07 .br_sp {
    display: none;
  }
}