.box_sp,
.catcher_sp {
    display: none;
}

.box_pc,
.catcher_pc {
    display: block;
}

/* responsive */
@media screen and (max-height: 950px) {

    /*----- idx_service -----*/
    #idx_recruit {
        padding-bottom: 235px;
    }

    #idx_service .idx_service_pin {
        padding-left: 6.32vh;
    }

    #idx_service .service_card .service_card_frame {
        height: 73.68vh;
        padding: 10.53vh 10.53vh 8.42vh;
    }

    #idx_service .service_card .tag_no {
        font-size: 10.53vh;
        top: 2.32vh;
        left: 4.74vh;
    }

    #idx_service .service_card .tag_no span {
        font-size: 2.11vh;
        margin-right: 1.05vh;
    }

    #idx_service .service_card .tag_name {
        width: 59.79vh;
    }

    #idx_service .service_card .card_image {
        width: 52.63vh;
        height: 52.63vh;
    }

    #idx_service .service_card .card_component {
        max-width: 100%;
        flex: 1;
    }

    #idx_service .service_card .card_component .card_title {
        margin-bottom: 2.32vh;
    }

    #idx_service .service_card .card_component .card_features {
        padding: 1.58vh 2.11vh 1.58vh 3.58vh;
        margin-bottom: 1.47vh;
    }

    #idx_service .service_card .card_component .card_features ul li {
        padding-left: 1.47vh;
        margin-right: 3.16vh;
    }

    #idx_service .service_card .card_component .card_txt {
        margin-bottom: 3.37vh;
    }

    #idx_recruit .h3title {
        margin-bottom: 4.42vh;
    }

    #idx_recruit .idx_recruit_txt {
        margin-bottom: 8.21vh;
    }
}

@media screen and (max-height: 900px) {
    #overlay .overlay_wrap .overlay_menu .menu {
        padding-top: 2vh;
        margin-bottom: 0;
    }

    #overlay .overlay_logo {
        display: none;
    }
}

@media screen and (max-height: 750px) {
    #idx_service .service_card .tag_name {
        display: none;
    }
}

@media screen and (max-height: 700px) {

    /*----- idx_mainvisual -----*/
    #idx_mainvisual h2 {
        margin-bottom: 4vh;
    }

    #idx_mainvisual h2 span.en {
        font-size: 18.57vh;
    }

    #idx_mainvisual .mv_title_image {
        margin-bottom: 6vh;
    }

    /*----- idx_service -----*/
    #idx_service .service_card .service_card_frame {
        padding: 10.53vh 5.71vh 8.42vh;
    }

    #idx_service .service_card .card_component .card_title {
        font-size: 28px;
    }

    #idx_service .service_card .card_component .card_features ul li {
        font-size: 18px;
    }

    #idx_service .service_card .card_component .card_features ul li::before {
        top: 16px;
    }

    #idx_service .service_card .card_component .card_txt {
        font-size: 14px;
    }

    #idx_service .service_card .card_component .btn_primary {
        height: 50px;
    }
}

@media screen and (max-width: 1650px) {

    /*----- idx_recruit -----*/
    #idx_recruit .idx_recruit_gallery li.idx_recruit_img01 {
        margin-right: 7.88vw;
    }

    #idx_recruit .idx_recruit_gallery li.idx_recruit_img02 {
        margin-left: 10.91vw;
        margin-top: -8.18vw;
    }

    #idx_recruit .idx_recruit_gallery li.idx_recruit_img03 {
        margin-right: 13.94vw;
        margin-top: -0.18vw;
    }

    #idx_recruit .idx_recruit_gallery li.idx_recruit_img04 {
        margin-top: -13.45vw;
    }

    #idx_recruit .idx_recruit_gallery li.idx_recruit_img05 {
        margin-top: 3.33vw;
    }

    #idx_recruit .idx_recruit_gallery li.idx_recruit_img06 {
        margin-top: -22.67vw;
        left: -6vw;
    }
}

@media screen and (max-width: 1500px) {
    #header {
        padding: 3vw 0 0 3vw;
    }

    #toggle-menu {
        top: 2.2vw;
        right: 2.2vw;
    }

    #overlay {
        padding: 1.67vw 1.67vw;
    }

    /*----- header -----*/
    #overlay .overlay_wrap .overlay_image,
    #overlay .overlay_wrap .overlay_menu {
        padding: 75px 5vw;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title {
        border-bottom: 0;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title::before,
    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title::after {
        position: absolute;
        content: '';
        background: var(--main-color);
        transition: all .3s ease;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title::before {
        width: 15px;
        height: 1px;
        top: 25px;
        right: 20px;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title::after {
        width: 1px;
        height: 15px;
        top: 18px;
        right: 27px;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title.opened::before,
    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title.opened::after {
        transform: rotate(135deg);
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_menu {
        border-top: 1px solid var(--main-color);
    }

    #overlay .overlay_wrap .overlay_menu .menu {
        margin-bottom: 3vh;
    }

    #overlay .overlay_logo {
        display: block;
    }

    /*----- idx_mainvisual -----*/
    #idx_mainvisual .btn-scroll {
        right: 4.93vw;
    }

    /*----- idx_intro -----*/
    #idx_intro .idx_intro_contents {
        padding-right: 3%;
    }

    /*----- idx_service -----*/
    #idx_service {
        padding-bottom: 55px;
    }

    #idx_service .inner {
        margin-bottom: 35px;
    }

    #idx_service .service_card .service_card_frame {
        height: 90vh;
    }

    #idx_service .service_card .tag_name {
        width: 37.87vw;
    }

    #idx_service .service_card .card_image {
        width: 33.33vw;
        height: 33.33vw;
    }

    #idx_service .service_card .card_component .card_title {
        font-size: 26px;
    }

    #idx_service .service_card .card_component .card_features ul li {
        font-size: 17px;
        margin-right: 2vw;
    }

    #idx_service .service_card .card_component .card_features ul li::before {
        top: 15px;
    }

    #idx_service .service_card .card_component .card_txt {
        font-size: 15px;
    }

    /*----- idx_recruit -----*/
    #idx_recruit .idx_recruit_headline .inner::after {
        font-size: 26.67vw;
        width: 26.67vw;
        top: -7.73vw;
    }

    /*----- idx_about -----*/
    #idx_about .idx_about_frame::after {
        font-size: 26.67vw;
        width: 26.67vw;
        right: -8.07vw;
    }
}

@media screen and (max-width: 1250px) {
    .h3title {
        font-size: 9.6vw;
    }

    /*----- idx_about -----*/
    #idx_intro .idx_intro_contents {
        gap: 20px;
    }

    /*----- idx_about -----*/
    #idx_about h4 {
        font-size: 2.88vw;
    }

    #idx_about .idx_about_gallery .about_img02 {
        margin: -75px 0 0 -7vw;
    }

}

@media screen and (max-height: 810px) {

    /*----- idx_intro -----*/
    #idx_intro .idx_intro_contents .idx_intro_frame {
        padding: 5vh 0;
    }

    #idx_intro .idx_intro_contents .idx_intro_title {
        font-size: 3.95vh;
    }
}

@media screen and (min-width: 1025px) {
    .btn_primary a:hover {
        color: var(--white-color);
        background: var(--blue-color);
        border-color: var(--white-color);
    }

    .btn_primary a:hover svg {
        margin-left: 10px;
    }

    .btn_primary a:hover svg .cls-1 {
        fill: var(--white-color);
    }

    .btn_primary a:hover svg .cls-2 {
        stroke: var(--white-color);
    }

    .btn_primary a.wht:hover {
        color: var(--blue-color);
        background: var(--white-color);
        border-color: var(--blue-color);
    }

    .btn_primary a.wht:hover svg .cls-1 {
        fill: var(--blue-color);
    }

    .btn_primary a.wht:hover svg .cls-2 {
        stroke: var(--blue-color);
    }

    #toggle-menu:hover .txt,
    .footer_contents .footer_sns ul li a:hover,
    .footer_contents .footer_sns .sns_btn a:hover {
        opacity: .7;
    }

    #toggle-menu:hover .hamburger i {
        background-image: url(../images/header/icon_ham02.png);
    }

    #toggle-menu.is-active:hover .hamburger i {
        background-image: url(../images/header/icon_ham03.png);
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_menu a:hover::before {
        transform: scaleX(1);
        transform-origin: bottom left;
    }

    #overlay .overlay_wrap .overlay_menu .menu > li > a:hover::before {
        transform: scaleX(1);
        transform-origin: left center;
    }

    #overlay .overlay_wrap .overlay_menu .menu > li > a:hover span.txt {
        transform: translateX(0.625rem);
    }

    a[href^="tel:"] {
        pointer-events: none;
    }
}

@media screen and (max-width: 1024px) {
    body {
        font-size: 14px;
    }

    p {
        line-height: 2.2;
    }

    .h3title {
        font-size: 50px;
    }

    .catcher_pc {
        display: none;
    }

    .catcher_sp {
        display: block;
    }

    .btn_primary {
        height: 50px;
    }

    /*----- header -----*/
    #header {
        padding: 30px 0 0 3%;
    }

    #toggle-menu {
        max-width: 120px;
        padding-left: 10px;
        top: 20px;
        right: 3%;
    }

    #overlay .overlay_wrap .overlay_image,
    #overlay .overlay_wrap .overlay_menu {
        padding: 75px 3vw 3vw;
    }

    #overlay .overlay_wrap .overlay_menu .menu {
        padding-top: 0;
        margin-bottom: 0;
    }

    #overlay .overlay_wrap .overlay_menu .menu li a span.en,
    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_title span.en {
        max-width: 130px;
        font-size: 20px;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_menu ul li {
        width: 100%;
        margin-right: 0;
        margin-bottom: 8px;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_menu ul li::before {
        top: 9px;
    }

    #overlay .overlay_wrap .overlay_menu .menu li.sub .sub_menu ul li:last-child {
        margin-bottom: 0;
    }

    /*----- idx_mainvisual -----*/
    #idx_mainvisual h2 {
        font-size: 2.34vw;
        margin-bottom: 4.492vw;
    }

    #idx_mainvisual h2 span.en {
        font-size: 11.72vw;
    }

    #idx_mainvisual .mv_title_image {
        width: 83.984vw;
        margin-bottom: 3.125vw;
    }

    #idx_mainvisual .mv_txt {
        font-size: 15px;
    }

    #idx_mainvisual .btn-scroll {
        display: none;
    }

    /*----- idx_intro -----*/
    #idx_intro {
        height: auto;
        flex-direction: column-reverse;
    }

    #idx_intro .idx_intro_image {
        width: 100%;
        height: 65vw;
    }

    #idx_intro .idx_intro_contents {
        width: 100%;
        display: block;
        padding: 75px 3%;
    }

    #idx_intro .idx_intro_contents .intro_icon {
        width: 162px;
        position: absolute;
        top: 0;
        left: 0;
    }

    #idx_intro .idx_intro_contents .intro_icon::after {
        width: 206px;
        max-width: 206px;
        height: 45px;
        max-height: 45px;
        left: 150px;
    }

    #idx_intro .idx_intro_contents .idx_intro_frame {
        width: 80%;
        padding: 0 0;
        margin-left: auto;
    }

    #idx_intro .idx_intro_contents .idx_intro_title {
        font-size: 24x;
        margin-bottom: 45px;
    }

    /*----- idx_about -----*/
    #idx_about {
        padding: 50px 0 70px;
    }

    #idx_about .inner {
        flex-direction: column;
    }

    #idx_about .h3title {
        margin-bottom: 35px;
    }

    #idx_about .idx_about_frame {
        max-width: 100%;
    }

    #idx_about .idx_about_frame::after {
        right: 0;
    }

    #idx_about h4 {
        font-size: 24px;
    }

    #idx_about .idx_about_txt {
        max-width: 100%;
        margin-bottom: 45px;
    }

    #idx_about .idx_about_gallery {
        width: 80.77vw;
        max-width: 630px;
        margin: 0 auto;
    }

    #idx_about .idx_about_gallery .about_img01 {
        width: 61.54vw;
        height: 79.49vw;
        margin-left: auto;
    }

    #idx_about .idx_about_gallery .about_img02 {
        width: 51.28vw;
        height: 33.33vw;
        margin: -75px 0 0 0;
    }

    /*----- idx_service -----*/
    #idx_service {
        padding: 50px 0 55px;
    }

    #idx_service .inner {
        margin-bottom: 0;
    }

    #idx_service .h3title {
        margin-bottom: 20px;
    }

    #idx_service .idx_service_pin {
        padding: 45px 3% 0;
    }

    #idx_service .idx_service_list {
        height: auto;
    }

    #idx_service .service_card {
        width: 100%;
        margin-bottom: 45px;
        position: relative;
    }

    #idx_service .service_card:last-child {
        margin-bottom: 0;
    }

    #idx_service .service_card .service_card_frame {
        height: auto;
        max-height: inherit;
        border-radius: 20px;
        padding: 70px 20px;
    }

    #idx_service .service_card .tag_no {
        font-size: 68px;
        top: 10px;
        left: 15px;
    }

    #idx_service .service_card .tag_no span {
        font-size: 14px;
        margin-right: 8px;
    }

    #idx_service .service_card .tag_name {
        width: 250px;
        bottom: -11px;
    }

    #idx_service .service_card .card_wrap {
        flex-direction: column;
    }

    #idx_service .service_card .card_image {
        width: 65.1vw;
        height: 65.1vw;
        margin: 0 auto;
    }

    #idx_service .service_card .card_component {
        height: inherit;
        max-width: 100%;
    }

    #idx_service .service_card .card_component .card_title {
        font-size: 24px;
    }

    #idx_service .service_card .card_component .card_features {
        padding: 15px 20px;
    }

    #idx_service .service_card .card_component .card_features ul li {
        font-size: 16px;
        padding-left: 15px;
        margin-right: 20px;
    }

    #idx_service .service_card .card_component .card_features ul li::before {
        width: 4px;
        height: 4px;
        top: 15px;
    }

    #idx_service .service_card .card_component .card_txt {
        font-size: 14px;
        margin-bottom: 25px;
    }

    /*----- idx_equipment. idx_company, idx_efforts -----*/
    .catcher_layout .catcher_layer {
        min-height: 350px;
        padding: 50px 0 55px;
    }

    .catcher_layout .h3title {
        margin-bottom: 20px;
    }

    /*----- idx_recruit -----*/
    #idx_recruit {
        padding: 0 0 125px;
    }

    #idx_recruit::after {
        background-size: 821px 100%;
        height: 50px;
        bottom: 50px;
        animation: idx_recruit_slogan02 40s linear infinite;
    }

    #idx_recruit .idx_recruit_headline {
        min-height: 85vh;
    }

    #idx_recruit .h3title {
        margin-bottom: 30px;
    }

    #idx_recruit .idx_recruit_txt {
        font-size: 16px;
        margin-bottom: 35px;
    }

    #idx_recruit .idx_recruit_gallery {
        padding-bottom: 50vh;
    }

    /*----- idx_news -----*/
    #idx_news {
        padding: 50px 0 55px;
    }

    #idx_news .h3title {
        text-align: center;
        border-bottom: 0;
        padding-bottom: 0;
        margin-bottom: 25px;
    }

    #idx_news .idx_news_wrap {
        flex-direction: column;
        gap: 45px;
    }

    #idx_news .idx_news_headline {
        max-width: 100%;
    }

    #idx_news .idx_news_headline h4 {
        font-size: 20px;
        text-align: center;
        margin-bottom: 0;
    }

    #idx_news .idx_news_headline h4 br {
        display: none;
    }

    #idx_news .btn_primary {
        margin: 45px auto 0;
    }

    #idx_news .idx_news_list {
        max-width: 100%;
        margin-top: 0;
    }

    /*----- footer -----*/
    .box_contact {
        padding: 55px 0;
    }

    .box_contact .box_contact_txt {
        font-size: 18px;
        margin-bottom: 35px;
    }

    .box_contact .btn_primary {
        margin-bottom: 35px;
    }

    .box_contact .box_contact_tel {
        line-height: 1.5;
    }

    .box_contact .box_contact_tel span.en {
        font-size: 20px;
        margin-right: 5px;
    }

    .box_contact .box_contact_tel a {
        font-size: 30px;
    }

    .footer_contents {
        padding: 55px 0;
    }

    .footer_contents .footer_info {
        margin-bottom: 35px;
    }

    .footer_contents .footer_headline {
        text-align: center;
    }

    .footer_contents .footer_headline .f_slogan {
        font-size: 18px;
    }

    .footer_contents .footer_link {
        display: none;
    }

    .footer_contents .footer_branch .f_branch_title {
        width: 100%;
        max-width: 300px;
        margin: 0 auto 25px;
    }

    .footer_contents .footer_branch .f_branch_txt {
        font-size: 14px;
    }

    .footer_contents .footer_sns {
        flex-direction: column;
        align-items: center;
    }

    .footer_contents .footer_sns ul {
        gap: 25px;
    }

    #toTop {
        bottom: 15px;
        right: 15px;
    }
}

@media screen and (max-width: 992px) {}

@media screen and (max-width: 768px) {

    #wrapper,
    #header,
    #main,
    #footer,
    .pages .pages_inner {
        width: 100% !important;
        min-width: inherit !important;
    }

    .box_sp {
        display: block;
    }

    .box_pc {
        display: none;
    }

    #toTop {
        width: 50px;
        height: 50px;
    }

    /*----- header -----*/
    #header h1 {
        width: 205px;
    }

    #overlay .overlay_wrap .overlay_image {
        display: none;
    }

    #overlay .overlay_wrap .overlay_menu {
        width: 100%;
        padding: 75px 3vw 35px;
    }

    #overlay .overlay_wrap .overlay_menu .menu {
        padding-top: 0;
    }

    /*----- idx_mainvisual -----*/
    #idx_mainvisual {
        min-height: 490px;
    }

    #idx_mainvisual h2 {
        font-size: 20px;
        text-align: center;
        margin-bottom: 25px;
    }

    #idx_mainvisual h2 span.en {
        display: block;
        font-size: 100px;
        margin: 0 0 10px;
    }

    #idx_mainvisual .mv_title_image {
        margin: 0 auto 25px;
    }

    #idx_mainvisual .mv_txt {
        width: 100%;
        max-width: 500px;
        text-align: center;
        margin: 0 auto;
    }

    /*----- idx_equipment. idx_company, idx_efforts -----*/
    .catcher_layout .catcher_layer {
        min-height: inherit;
    }

    .catcher_wrap {
        display: block;
    }

    .catcher_layout .h3title {
        text-align: center;
    }

    .catcher_txt {
        max-width: 100%;
        margin: 0 0 35px;
    }

    .catcher_layout .btn_primary {
        margin: 0 auto;
    }

    /*----- idx_recruit -----*/
    #idx_recruit .idx_recruit_headline {
        min-height: 65vh;
    }

    #idx_recruit .idx_recruit_gallery {
        padding-bottom: 30vh;
    }

    /*----- idx_news -----*/
    #idx_news .idx_news_list dl {
        display: block;
        padding: 25px 20px 20px;
    }

    #idx_news .idx_news_list dl dt {
        max-width: 100%;
        margin-bottom: 15px;
    }

    #idx_news .idx_news_list dl dd {
        max-width: 100%;
    }

    #idx_news .idx_news_list dl dd a > span span {
        -webkit-line-clamp: 2;
    }

    /*----- footer -----*/
    .footer_contents .footer_branch ul {
        flex-direction: column;
        gap: 20px;
    }

    .footer_contents .footer_branch ul li {
        width: 100%;
        border-right: 0;
        padding: 0 0;
    }

    .footer_contents .footer_branch ul li:first-child {
        border-left: 0;
    }

    .footer_contents .footer_branch .branch_frame {
        max-width: 100%;
        display: flex;
        justify-content: space-between;
        gap: 20px;
    }

    .footer_contents .footer_branch .branch_frame figure {
        width: 39.06vw;
        max-width: 300px;
    }

    .footer_contents .footer_branch .f_branch_txt {
        width: 100%;
        flex: 1;
    }
}

@media screen and (max-width: 576px) {

    /*----- idx_mainvisual -----*/
    #idx_mainvisual h2 span.en {
        font-size: 17.36vw;
    }

    /*----- footer -----*/
    .footer_contents .footer_sns ul {
        flex-direction: column;
        align-items: center;
    }

    .footer_contents .footer_sns ul li {
        width: 100%;
        max-width: 190px;
    }
}

@media screen and (max-width: 490px) {

    /*----- header -----*/
    #header {
        padding-top: 23px;
    }

    #header h1 {
        width: 171px;
    }

    /*----- idx_about -----*/
    #idx_about h4 br {
        display: none;
    }

    /*----- footer -----*/
    .footer_contents .footer_branch .branch_frame {
        display: block;
    }

    .footer_contents .footer_branch .branch_frame figure {
        width: 100%;
        max-width: 100%;
        margin: 0 auto 10px;
    }
}

@media screen and (max-width: 390px) {}

@media screen and (max-width: 320px) {}
