@media only screen and (max-width:768px) {
    .home_page .key {
        --height: calc(100vh - 60px);
        --max-height: 156vw;
        --min-height: 520px
    }

    .home_page .key .key_text {
        font-size: 8px
    }

    .home_page .key .key_text .item {
        padding: 10px
    }

    .home_page .key .key_video {
        overflow: hidden
    }

    .home_page .key .key_video video {
        position: absolute;
        top: 0;
        left: 50%;
        z-index: -1;
        width: 281vw;
        height: 100%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%)
    }

    .home_page .key .catch {
        display: block
    }

    .home_page .key .catch h2,
    .home_page .key .catch p {
        writing-mode: unset;
        text-align: center
    }

    .home_page .key .catch h2 {
        margin-left: 0;
        margin-bottom: 0.7em;
        align-items: center
    }

    .home_page .key .catch h2>span {
        border-left: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.4);
        padding-left: 0;
        margin-left: 0;
        padding-bottom: 0.0833333333em
    }
}

@media only screen and (max-width:639px) {
    .home_page .key .key_text {
        font-size: 1.4vmin
    }

    .home_page .key .catch p {
        font-size: 3.05em
    }
}

@media only screen and (max-width:768px) and (orientation:landscape) {
    .home_page .key .key_text {
        font-size: 1.4vmin
    }
}

@media only screen and (max-width:768px) {
    .fix_bnr {
        top: -5em;
        left: 25px;
        font-size: min(12px, 3vw)
    }

    .fix_bnr.active {
        bottom: 65px;
        top: unset
    }

    .fix_bnr.ac {
        bottom: 95px
    }
}

@media only screen and (max-width:768px) {
    .tl_h3 {
        font-size: 22px
    }

    .tl_h3 .en {
        font-size: min(65px, 11vw)
    }

    .idx_scroll {
        position: absolute;
        top: -82px;
        left: 0;
        right: 0;
        z-index: 2
    }

    .idx_scroll a {
        font-size: 10px;
        padding-bottom: 5em
    }

    .sec_news {
        padding: 35px 0 46px;
        width: calc(100% - 20px)
    }

    .sec_news .col:first-child {
        border-bottom: 1px solid #ffffff;
        padding-bottom: 25px;
        margin-bottom: 21px
    }

    .sec_news .tl_news {
        text-align: center;
        font-size: 22px
    }

    .sec_news .tl_news:after {
        margin-right: auto;
        margin-left: auto
    }

    .sec_news .cm_btn {
        display: table;
        margin: 15px auto 0
    }

    .sec_news .list_post a {
        --w: 6.75em
    }

    .sec_news .list_post .title {
        padding-right: 1.5em
    }

    .idx00 {
        position: static;
        top: 0;
        z-index: 0
    }

    .idx01 .inner_max:before {
        top: -55px;
        left: 0;
        width: 100%;
        max-width: 100%;
        max-height: 400px;
        height: 40%
    }

    .idx01 .inner_max:after {
        top: unset;
        right: 0;
        bottom: -110px;
        width: 100%;
        max-width: 100%;
        min-height: 700px;
        height: calc(100% - 155vw);
        background-image: url(../images/idx01_bf01_sp.jpg)
    }

    .idx01 .txt_en {
        bottom: -98px;
        left: 0;
        right: 0;
        text-align: center;
        font-size: min(100px, 17vw)
    }

    .idx01 .idx_wrap {
        padding: 55px 0 70px
    }

    .idx01 .block_greeting {
        width: 100%;
        max-width: 640px
    }

    .idx01 .b_pic {
        margin-bottom: 40px;
        margin-left: auto;
        margin-right: auto
    }

    .idx01 .b_pic:after {
        right: 1.0625em;
        font-size: min(14px, 2.5vw)
    }

    .idx01 .greeting_img {
        max-width: 500px;
        width: 100%;
        margin: 0 auto 20px
    }

    .idx01 .greeting_cont p:not(.txt_en) {
        line-height: 2
    }

    .idx01 .box_name {
        font-size: min(14px, 3vw);
        top: 4.0625em;
        left: 1.5em;
        width: 6em;
        height: 18.142857em
    }

    .idx01 .box_name .name {
        display: flex;
        flex-direction: row;
        align-items: center
    }

    .idx01 .gr_btn {
        margin-top: 15px
    }

    .idx01 .gr_btn .cm_btn {
        margin: 15px auto
    }

    .idx_map {
        height: 299px
    }

    .block_contact {
        padding: 55px 0
    }

    .bnr_contact {
        font-size: min(14px, 2.5vw)
    }

    .bnr_contact .bnr_it {
        width: 100%;
        max-width: 550px;
        margin: 0 auto 20px;
        height: 8.375em
    }

    .bnr_contact .bnr_it:before {
        width: 8.375em
    }

    .bnr_contact .bnr_it .bx_in {
        width: calc(100% - 8.375em)
    }

    .bnr_contact .bnr_it:last-child {
        margin-bottom: 0
    }

    .bnr_contact .bnr_it.bnr_tel .bx_in {
        padding-left: 1.0625em
    }

    .bnr_contact .bnr_it.bnr_mail .bx_in {
        padding-left: 1.75em
    }

    .idx02 {
        padding: 70px 0 60px;
        background-size: 150% auto, 130% auto
    }

    .idx02:before {
        border-width: 5px
    }

    .idx02 .tl_h3 .num {
        font-size: 12em;
        left: -47px
    }

    .idx02 .block_feature h4>span {
        letter-spacing: -0.5px
    }

    .idx02 .block_feature .feature_it {
        max-width: 600px;
        margin: 0 auto 30px;
        padding-left: 1em;
        padding-right: 1em;
        padding-bottom: 2.0625em
    }

    .idx02 .block_feature .feature_it:before {
        width: calc(100% - 0.6em);
        height: calc(100% - 0.6em)
    }

    .idx02 .block_feature .feature_it:nth-child(odd) {
        background-image: linear-gradient(50deg, rgb(28, 156, 55) 0%, rgb(51, 77, 64) 100%)
    }

    .idx02 .block_feature .feature_it:nth-child(2n+2) {
        background-image: linear-gradient(230deg, rgb(68, 77, 51) 0%, rgb(94, 156, 28) 100%)
    }

    .idx02 .block_feature .feature_it:last-child {
        margin-bottom: 0
    }

    .idx02 .block_feature .feature_tl {
        font-size: min(12px, 2.6vw)
    }

    .idx02 .block_feature .feature_cont {
        max-width: 32.75em
    }

    .idx02 .block_feature .feature_cont>p {
        line-height: 2
    }

    .idx02 .cm_btn {
        margin: 30px auto 0;
        display: table
    }

    .idx03 {
        background-size: 180% auto;
        background-position: right top;
        padding: 60px 0 50px
    }

    .idx03 .tl_h3 {
        margin-bottom: 25px
    }

    .idx03 .txt_en {
        top: 22em;
        font-size: 7px
    }

    .idx03 h4 {
        font-size: 24px;
        text-align: center;
        margin-bottom: 25px
    }

    .idx03 .b_right {
        font-size: min(18px, 4.5vw);
        text-align: center;
        margin-right: auto;
        margin-bottom: 30px
    }

    .idx03 .b_right .bg_green {
        font-size: 1.1111111111em;
        margin-right: 0.3em;
        letter-spacing: 0.05em;
        padding: 1px 7px 4px 7px
    }

    .idx03 .b_right p {
        letter-spacing: 0.05em
    }

    .idx03 .b_right p:not(:last-child) {
        margin-bottom: 0
    }

    .idx03 .block_case .case_tl {
        clip-path: polygon(0 0, 100% 0, 82% 100%, 0% 100%);
        min-width: 9.583333em;
        padding: 0.4em 0.25em 0.5em 0.708333em;
        font-size: 1.25em
    }

    .idx03 .block_case .case_it {
        margin: 0 auto 25px;
        max-width: 550px;
        width: 100%;
        padding: 4.9375em 1.1875em 1.625em
    }

    .idx03 .block_case .case_img {
        position: relative;
        bottom: 0;
        right: 0;
        width: 90%;
        margin: 0 auto
    }

    .idx03 .block_case .case_cont {
        width: 100%
    }

    .idx03 .block_case .cont>p {
        line-height: 2
    }

    .idx03 .block_case .case_up {
        left: 0
    }

    .idx03 .bx_step {
        justify-content: center
    }

    .idx03 .gr_btn {
        margin-top: 0;
        justify-content: center
    }

    .idx03 .gr_btn .cm_btn {
        margin: 8px 10px
    }

    .idx03 .gr_btn .cm_btn:last-child {
        margin-right: 10px
    }

    .idx03 .gr_btn .cm_btn a {
        padding-right: 5.142857em;
        letter-spacing: 0.02em
    }

    .idx04 {
        padding: 60px 0
    }

    .idx04:before {
        max-height: 375px;
        height: 110vw
    }

    .idx04 .tl_h3 {
        margin-bottom: 25px
    }

    .idx04 .consultation_bx-img {
        position: relative;
        width: 100%;
        margin-top: 25px;
        margin-bottom: -50px
    }

    .idx04 .consultation_bx-cont {
        width: 100%;
        padding-top: 0;
        padding-right: 0
    }

    .idx04 .consultation_bx-cont>p {
        line-height: 2
    }

    .idx04 .banner {
        margin: 20px auto 0;
        font-size: min(14px, 3vw)
    }

    .idx04 .faq_box {
        margin-top: 40px;
        --size-pl-box: 55px
    }

    .idx04 .faq_box .faq_ttl {
        font-size: 16px
    }

    .idx04 .consultation_list {
        font-size: min(14px, 2.8vw);
        margin-top: 40px
    }

    .idx04 .consultation_list h4 {
        letter-spacing: 0.05em
    }

    .idx04 .consultation_list h4 .en {
        letter-spacing: 0.05em
    }

    .idx04 .consultation_list .item {
        padding: 1.5em 0em 2.5em 1em;
        width: calc((100% - 4px) / 2);
        margin-right: 4px
    }

    .idx04 .consultation_list .item:nth-child(2n+2) {
        margin-right: 0
    }

    .idx04 .consultation_list .item:nth-child(4),
    .idx04 .consultation_list .item:nth-child(6) {
        padding-top: 1.5em
    }

    .idx04 .consultation_list .item:after {
        background-position: calc(50% + 4px) calc(50% + 3px);
        width: 2.5em;
        height: 2.5em
    }

    .idx04 .consultation_list .item:nth-last-child(2) .bx_img {
        top: -0.5em
    }

    .idx04 .consultation_list .bx_img {
        margin-right: 1em
    }

    .idx04 .consultation_list .bx_img img {
        height: 4.0625em;
        width: auto
    }

    .idx05 {
        padding: 60px 0
    }

    .idx05:before {
        max-height: 375px;
        height: 110vw
    }

    .idx05 .tl_h3 {
        margin-bottom: 25px
    }

    .idx05 .bx_advice .advice_img {
        display: table;
        margin: 0 auto 30px;
        padding-right: 20px;
        padding-bottom: 20px
    }

    .idx05 .bx_advice .advice_img:before {
        bottom: 0;
        right: 0
    }

    .idx05 .bx_advice .advice_cont>p {
        line-height: 2
    }

    .idx05 .TabContainer .TabPager>div .tt {
        padding: 0.4em 0.2em 0.8em
    }

    .idx05 .TabContainer .TabContent>.content>div {
        padding: 20px 20px 40px
    }

    .idx05 .TabContainer .TabContent>.content h4.tab_tl {
        margin-top: 0;
        margin-bottom: 20px
    }

    .idx05 .gr_btn {
        margin-top: 20px;
        justify-content: center;
        align-items: center
    }

    .idx05 .gr_btn .cm_btn {
        margin: 10px
    }

    .idx05 .gr_btn .cm_btn.btn_st02 {
        margin-right: 10px
    }

    .idx05 .gr_btn .cm_btn.btn_st02 a {
        display: table
    }

    .idx06 {
        padding: 60px 0
    }

    .idx06 .tl_h3 {
        margin-bottom: 20px
    }

    .idx06 .idx_video {
        padding: 0px 30px 20px 30px
    }

    .idx06 .idx_video .slick-next,
    .idx06 .idx_video .slick-prev {
        width: 30px;
        height: 30px
    }

    .idx06 .idx_video .slick-next {
        right: -5px
    }

    .idx06 .idx_video .slick-prev {
        left: -5px
    }

    .idx06 .idx_video .it_yt {
        margin: 5px 6px
    }
    .idx06 .slick-dots li{
        margin: 0 0.3em;
    }
    .idx06 .slick-dots button{
        width: 0.5em;
        height: 0.5em;
    }

    .idx07 {
        padding: 60px 0
    }

    .idx07 .idx_logo {
        margin: 0 auto 10px;
        max-width: 350px
    }

    .idx07 .bx_info dl {
        --w-dt: 85px;
        padding-bottom: 10px;
        padding-top: 10px
    }

    .idx07 .bx_info dd,
    .idx07 .bx_info dt {
        line-height: 1.8
    }

    .idx07 .gr_btn {
        margin-top: 28px;
        justify-content: center
    }

    .idx07 .gr_btn .cm_btn {
        margin: 6px 10px
    }

    .idx07 .col_info,
    .idx07 .yt {
        max-width: 590px;
        width: 100%;
        margin-left: auto;
        margin-right: auto
    }

    .idx07 .yt {
        margin-top: 45px
    }

    .idx07 .yt:before {
        max-height: 608px;
        height: 104vw;
        top: -25px;
        right: -80px
    }

    .idx07_map {
        margin-top: 35px;
        height: 299px
    }

    .idx08 {
        padding: 45px 0
    }

    .idx08 .tl_h3 {
        margin-bottom: 25px
    }

    .idx_bnr {
        padding: 40px 0 30px
    }

    .idx_bnr .bnr_it {
        font-size: min(14px, 2.5vw);
        width: calc((100% - 0.7142857143em) / 2);
        margin-right: 0.7142857143em;
        margin-bottom: 0.7142857143em
    }

    .idx_bnr .bnr_it:nth-child(2n+2) {
        margin-right: 0
    }

    .idx_bnr .bnr_it.bnr_st02:after {
        right: 0.5em
    }

    .idx_bnr .bnr_it.bnr_st02 .bnr_tl {
        letter-spacing: 0em
    }
}

@media only screen and (max-width:450px) {
    .fix_bnr {
        top: -2em
    }

    .bnr_contact .bnr_it .tt_note {
        font-size: 1.2em;
        letter-spacing: 0.05em
    }

    .idx01 .inner_max:after {
        bottom: -21vw
    }

    .idx01 .idx_wrap {
        padding-bottom: 10vw
    }

    .idx01 .txt_en {
        bottom: -17vw
    }

    .idx02 .block_feature .feature_it {
        min-height: 110vw
    }

    .idx02 .block_feature .feature_bg {
        height: 100vw
    }

    .idx04 .consultation_list {
        font-size: min(14px, 2.97vw)
    }

    .idx04 .consultation_list h4 {
        letter-spacing: 0
    }

    .idx04 .banner {
        font-size: min(14px, 3.5vw)
    }

    .idx04 .banner .bn_tl {
        padding-left: 2.3em;
        letter-spacing: 0.05em
    }

    .idx04 .TabContainer .TabPager>div {
        width: 50%
    }

    .idx04 .TabContainer .TabPager>div:before {
        opacity: 0.5
    }

    .idx04 .TabContainer .TabPager>div:nth-child(3) {
        border-left: 0
    }

    .idx04 .TabContainer .TabPager>div.active:before {
        opacity: 0
    }

    .idx05 .TabContainer .TabPager>div {
        width: 33.33%
    }

    .idx05 .TabContainer .TabPager>div:nth-child(4) {
        border-left: 0
    }

    .idx05 .TabContainer .TabPager>div:nth-child(4),
    .idx05 .TabContainer .TabPager>div:nth-child(5) {
        width: 50%
    }

    .idx07 .yt .video-wrapper {
        padding-bottom: 56%
    }

    .idx_bnr .bnr_it .bnr_tl {
        font-size: 1.3em
    }

    .idx_bnr .bnr_it.bnr_st02:after {
        width: 1.8em;
        height: 1.8em
    }

    .idx_bnr .bnr_it.bnr_st02 .bnr_tl {
        padding-left: 2.7em
    }
}

@media only screen and (max-width:360px) {
    .home_page .key .catch p {
        letter-spacing: 0.05em
    }

    .tl_h3 {
        font-size: 20px
    }

    .tl_h3 .jp {
        letter-spacing: 0.05em
    }

    .idx02 .tl_h3 .num {
        left: -31px
    }

    .idx02 .block_feature .feature_it {
        padding-bottom: 1.5em;
        min-height: 112vw
    }

    .idx02 .block_feature .feature_it .feature_bg {
        height: 95vw
    }

    .fix_bnr.ac {
        bottom: 135px
    }
}

@media only screen and (max-width:350px) {
    .idx03 .b_right .bg_green {
        letter-spacing: 0;
        font-size: 1em
    }

    .idx04 .consultation_list h4 {
        font-size: 1.05em
    }

    .idx04 .banner .bn_tl {
        padding-left: 2em;
        letter-spacing: 0.02em
    }

    .idx04 .banner .bn_tl:before {
        left: 0
    }

    .idx05 .gr_btn .cm_btn.btn_st02 a {
        padding-right: 5.9em
    }
}

/*# sourceMappingURL=index_sp.css.map */