.main_technical {
    margin: 78px 0 0 0;
}

@media screen and (max-width: 900px) {
    .main_technical {
        margin: 60px 0 0 0;
    }
}

@media screen and (max-width: 740px) {
    .main_technical {
        background-image: url(../img/technical/bg_technical_sp.jpg);
        background-repeat: no-repeat;
        background-size: cover;
    }

    .main_technical h2 {
        padding: 11.5% 0 10.8%;
        max-width: 516px;
        width: 70vw;
        margin: 0 auto;
    }

    .main_technical h2 span {
        color: #fff;
        text-align: center;
        margin: 3.6% auto 0;
        display: block;
        font-size: min(3.8vw, 28px);
    }
}

.sec_equipment {
    padding: 5.3% 0 9% 0;
    background: linear-gradient(to bottom, rgba(196, 211, 230, 0.3) 5%, rgba(234, 240, 246, 0) 40%);
}

.inner_equipment {
    max-width: 1260px;
    width: 100%;
    margin: 0 auto;
    padding: 0 0 5.7%;
    display: flex;
    gap: 3%;
    justify-content: space-between;
}

.inner_equipment .left {
    width: 47%;
    padding: 0 0 0 4%;
}

.inner_equipment .catch {
    font-weight: 700;
    font-size: 30px;
}

.inner_equipment .catch .red {
    color: #e60020;
}

.inner_equipment .txt {
    margin: 3.7% 0 0 0;
    line-height: 1.98;
}

.inner_equipment .right {
    width: 52%;
    max-width: 615px;
}

.inner_equipment.bot {
    flex-direction: row-reverse;
    padding: 0 0 7.8%;
}

.inner_equipment.bot .left {
    width: 47%;
    padding: 0 4% 0 0;
}

.inner_equipment.bot h1 {
    width: 34.7vw;
    max-width: 424px;
    margin: 0 0 2.8% 0;
    margin-right: min(9.2vw, 120px);
}

.inner_equipment.bot h1 span {
    display: block;
    font-weight: 600;
    font-size: 15px;
}

.inner_equipment.bot .txt {
    max-width: 538px;
}

@media screen and (max-width: 740px) {
    .sec_equipment {
        margin: 0;
    }

    .inner_equipment.top {
        flex-direction: column-reverse;
        background: linear-gradient(to bottom,
                #c4d3e6 0%,
                rgba(196, 211, 230, 0.3) 30%,
                rgba(234, 240, 246, 0) 100%);
        padding: 7.4% 0 11%;
    }

    .inner_equipment .left {
        width: 87%;
        padding: 0 0 0 0%;
        margin: 0 auto;
    }

    .inner_equipment .right {
        width: 93%;
        max-width: 688px;
        margin: 0 0 0 auto;
    }

    .inner_equipment .catch {
        font-size: min(5.7vw, 42px);
        margin: 5.0% 0 0 0;
    }

    .inner_equipment .txt {
        font-size: min(3.8vw, 28px);
        margin: 4% 0 0 0;
    }

    .inner_equipment.bot {
        flex-direction: column-reverse;
        padding: 0 0 8.5%;
    }

    .inner_equipment.bot .right {
        width: 93%;
        max-width: 688px;
        margin: 0 auto 0 0;
    }

    .inner_equipment.bot .left {
        width: 87%;
        padding: 7.9% 0 0 0;
    }

    .inner_equipment.bot h1 {
        width: 72vw;
        max-width: 533px;
        margin: 0 0 0 0;
        margin-right: 0
    }

    .inner_equipment.bot h1 span {
        font-size: min(3.8vw, 28px);
    }

    .inner_equipment.bot .txt {
        max-width: none;
    }



}


/*設備一覧*/
.list_equipment {
    max-width: 1120px;
    width: 90%;
    margin: 0 auto;
    padding: 0 0 0 0;
    border: 5px solid #959ebd;
    box-sizing: border-box;
}

.list_equipment .mds {
    font-size: 38px;
    color: #003d74;
    font-weight: bold;
    text-align: center;
    padding: 2.9% 0 0 0;
}

.list_equipment .top_machine {
    display: flex;
    justify-content: center;
    gap: 3.6%;
    width: 90%;
    margin: 4% auto 0;
}

.list_equipment .top_machine .left {
    max-width: 480px;
    text-align: center;
    width: 50%;
}

.list_equipment .top_machine .right {
    max-width: 480px;
    text-align: center;
    width: 50%;
}

.list_equipment .top_machine .name {
    font-size: 22px;
    font-weight: bold;
    text-align: center;
}

.list_equipment .top_machine .desc {
    text-align: center;
}

.list_equipment .bot_machine {
    margin: 5.3% 0 0 0;
    padding: 3.4% 0 5.2% 0;
    background-color: #e4eaf3;
}

.list_equipment .bot_machine .mds2 {
    width: 90%;
    text-align: center;
    font-size: 28px;
    color: #003d74;
    font-weight: 700;
    position: relative;
    max-width: 1000px;
    margin: 0 auto 0;
}

.list_equipment .bot_machine .mds2::before {
    content: '';
    position: absolute;
    height: 2px;
    width: calc(50% - 135px - 0.5%);
    background-color: #003d74;
    top: calc(50% - 1px);
    left: 0.5%;
}

.list_equipment .bot_machine .mds2::after {
    content: '';
    position: absolute;
    height: 2px;
    width: calc(50% - 135px - 0.5%);
    background-color: #003d74;
    top: calc(50% - 1px);
    right: 0.5%;
}


.list_equipment .bot_machine .mds2 span {
    padding: 0 1em;
}

.list_equipment .bot_machine .flex_machine {
    width: 90%;
    display: flex;
    gap: 2%;
    justify-content: space-around;
    max-width: 1000px;
    margin: 2.3% auto 0;
}

.list_equipment .name {
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    margin: 5px 0;
}

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

    .list_equipment {
        margin: 0 auto 11.8%;
        border: 10px solid #959ebd;
    }

    .list_equipment .mds {
        font-size: min(7.3vw, 54px);

    }

    .list_equipment .top_machine {
        flex-direction: column;
        gap: 3.6%;
        margin: 4% auto 0;
    }

    .list_equipment .top_machine .left {
        width: 90%;
        max-width: 565px;
        text-align: center;
        margin: 0 auto;
        padding: 0 0 6% 0;
        position: relative;
    }

    .list_equipment .top_machine .left::after {
        content: '';
        position: absolute;
        height: 2px;
        width: 100%;
        background-color: #959ebd;
        bottom: 0;
        left: 0;
    }

    .list_equipment .top_machine .name {
        font-size: min(5.2vw, 38px);
    }

    .list_equipment .top_machine .desc {
        font-size: min(3.8vw, 28px);
        margin: 1% 0 0 0;
    }

    .list_equipment .top_machine .right {
        width: 90%;
        max-width: 565px;
        text-align: center;
        margin: 7.6% auto 0;
        padding: 0 0 0% 0;
    }

    .list_equipment .bot_machine {
        padding: 4.7% 0 10.1% 0;
        margin: 9.9% 0 0 0;
    }

    .list_equipment .bot_machine .mds2 {
        width: 90%;
        margin: 0 auto;
        font-size: min(6.1vw, 46px);
        border-bottom: 2px solid #003d74;
        padding-bottom: 2%;
    }

    .list_equipment .bot_machine .mds2::before {
        content: none;
    }

    .list_equipment .bot_machine .mds2::after {
        content: none;
    }

    .list_equipment .bot_machine .flex_machine {
        flex-direction: column;
        max-width: 1000px;
        margin: 0 auto 0;
    }

    .list_equipment .bot_machine .flex_machine .item {
        width: 88%;
        max-width: 533px;
        margin: 7.4% auto 0;
    }

    .list_equipment .name {
        font-size: min(4.3vw, 32px);
    }

}


/*一貫体制*/
.sec_onestep {
    background-color: #e2e3e3;

    background-image: url(../img/technical/bg_onestep.png);
    background-size: auto;
    background-repeat: no-repeat;
    background-position: 134% 103%;

}


.inner_onestep {
    max-width: 1260px;
    width: 100%;
    margin: 0px auto;
    padding: 5.6% 0 8% 0;
    /* background-image: url(../img/technical/bg_onestep.png);
    background-size: auto;
    background-repeat: no-repeat;
    background-position: 134% 103%; */
}

.sec_onestep h2 {
    max-width: 364px;
    margin: 0 auto;
}

.sec_onestep h2 span {
    display: block;
    font-weight: 600;
    font-size: 15px;
    text-align: center;
    margin: 2% 0 0 0;
}

.sec_onestep .catch {
    font-size: 30px;
    text-align: center;
    font-weight: 700;
    margin: 2.4% 0 1.1% 0;
}

.sec_onestep .catch .red {
    color: #e60020;
}

.sec_onestep .txt1 {
    line-height: 2;
    text-align: center;
}


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

    .sec_onestep {
        background-position: 294% 103%;
    }

    .inner_onestep {
        /* background-position: 294% 103%; */
        padding: 12.8% 0 11.2% 0;
    }

    .sec_onestep h2 {
        max-width: 458px;
        width: 62vw;
    }

    .sec_onestep h2 span {
        font-size: min(3.8vw, 28px);
        margin: 3.3% 0 0 0;
    }

    .sec_onestep .catch {
        font-size: min(5.7vw, 42px);
        margin: 3.9% 0 4.9% 0;
    }

    .sec_onestep .txt1 {
        width: 90%;
        margin: 0 auto 9.2%;
        font-size: min(3.6vw, 28px);
        text-align: left;
        line-height: 1.9;
    }

}


/*flow */
.flow_container {
    width: 82%;
    max-width: 962px;
    margin: 5% auto 0;
    position: relative;
    padding: 5.4% 0 6%;
    background-color: rgba(255, 255, 255, 0.7);
}

.flow_container::before {
    content: '';
    position: absolute;
    top: 10%;
    bottom: 0;
    left: 50%;
    height: 78.4%;
    width: 0;
    border-left: 3px dotted #c48b11;
    transform: translateX(-50%);
    z-index: 0;
}

.flow_onestep {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    margin-bottom: -2%
}

.flow_onestep:nth-child(3) {
    margin-top: 2.8%;
    margin-bottom: 0.37%;
}

.flow_onestep:nth-child(4) {
    margin-bottom: 4.8%;
}


.flow_onestep:nth-child(even) {
    flex-direction: row-reverse;
}

.flow_onestep:nth-last-child(2) {
    margin-bottom: -2%;
}

.flow_onestep:last-child {
    margin-bottom: 0;
}


@media screen and (max-width: 1000px) {
    .flow_onestep {
        margin-bottom: 0%
    }

    .flow_onestep:nth-last-child(2) {
        margin-bottom: 0%;
    }
}

.flow_onestep .step_img_wrap,
.step_text_wrap {
    width: 34.4%;
}

.flow_onestep .step_img_wrap {
    position: relative;
    max-width: 330px;
}

.flow_onestep:nth-child(2) .step_img_wrap {
    margin-top: 2%;
}

.flow_onestep:nth-child(3) .step_img_wrap {
    margin-top: 2.8%;
}

.flow_onestep:nth-child(4) .step_img_wrap {
    margin-top: 4.6%;
}


.flow_onestep .step_img {
    display: block;
    width: 100%;
    height: auto;
    position: relative;
    z-index: 10;
}

.flow_onestep .step_img_wrap::after {
    content: '';
    position: absolute;
    bottom: -6px;
    right: -6px;
    width: 100%;
    height: 100%;
    background-color: #003d74;
    z-index: 1;
}

.flow_onestep .flow_onestep:nth-child(even) .step_img_wrap::after {
    right: auto;
    left: 5px;
}


.flow_onestep .step_num_wrap {
    width: 12%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    top: -33px;
}

.flow_onestep .step_num_wrap.no3 {
    top: -53px;
}

.flow_onestep .step_num_wrap.no4 {
    top: -34px;
}

.flow_onestep .step_num_wrap.no5 {
    top: -22px;
}

.flow_onestep .step_num_wrap.no6 {
    top: 0px;
}

.flow_onestep .step_num {
    /* background-color: #000; */
    color: #fff;
    font-weight: bold;
    font-size: min(3vw, 35px);
    width: 4.7vw;
    height: 4.7vw;
    max-width: 58px;
    max-height: 58px;
    line-height: 40px;
    text-align: center;
    position: relative;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.flow_onestep .step_num::before {
    content: '';
    position: absolute;
    top: 50%;
    width: 60px;
    height: 5px;
    background-color: #003d74;
    z-index: -1;
}

.flow_onestep:nth-child(odd) .step_num::before {
    right: 100%;
}

.flow_onestep:nth-child(even) .step_num::before {
    left: 100%;
}

.flow_onestep:nth-child(3) .step_text_wrap {
    margin-bottom: 2.3%;
}

.flow_onestep:nth-child(5) .step_text_wrap {
    margin-top: 0;
}

.flow_onestep .step_title {
    color: #e60020;
    font-size: 24px;
    font-weight: bold;
}

.flow_onestep:nth-child(even) .step_title {
    text-align: right;
}

.flow_onestep .step_desc.last {
    width: 90%;
    margin: 0 0 0 auto;
}





@media screen and (max-width: 740px) {
    .flow_container {
        width: 90%;
        padding: 5.4% 0 10.8%;
    }

    .flow_container::before {
        left: 13.1%;
        height: 96%;
        top: 1.4%;
    }

    .flow_onestep,
    .flow_onestep:nth-child(even) {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: flex-start;
        width: 90%;
        margin: 0px auto 13.5%;
        position: relative;
    }

    .flow_onestep:nth-last-child(2) {
        margin: 0px auto 13.5%;
    }

    .flow_onestep:nth-child(3) {
        margin-bottom: 13.5%;
    }

    .flow_onestep:last-child {
        margin-bottom: 0;
    }

    .flow_onestep::before {
        content: '';
        position: absolute;
        top: 4%;
        bottom: 0;
        left: 8.4%;
        height: 92%;
        width: 0;
        border-left: 6px solid #003d74;
        z-index: 0;

    }

    .flow_onestep .step_num_wrap {
        order: 1;
        max-width: 107px;
        width: 14.5vw;
        justify-content: center;
        top: -21px;
    }

    .flow_onestep .step_num_wrap.no3 {
        top: -21px;
    }

    .flow_onestep .step_num_wrap.no4 {
        top: -21px;
    }

    .flow_onestep .step_num_wrap.no6 {
        top: -21px;
    }



    .flow_onestep .step_num {
        max-width: 107px;
        max-height: 107px;
        width: 20vw;
        height: 20vw;
        font-size: min(9vw, 65px);
        top: 4vw;
    }

    .flow_onestep .step_num::before {
        display: none;
    }

    .step_text_wrap {
        order: 2;
        width: calc(100% - 20vw);
        margin: 0 0 0 0vw;
    }

    .flow_onestep:nth-child(even) .step_title {
        text-align: left;
    }

    .flow_onestep .step_title {
        font-size: min(5.4vw, 40px);
    }

    .flow_onestep .step_desc {
        font-size: min(3.8vw, 28px);
        line-height: 1.8;
    }

    .flow_onestep .step_img_wrap {
        order: 3;
        width: 100%;
        margin: 5% 0 0 0 !important;
        max-width: 570px;
    }



    .flow_onestep .step_img_wrap::after {
        bottom: -10px;
        right: -10px;
        background: linear-gradient(to bottom, #007cb1 -10%, #00003d 100%);
    }

    .flow_onestep .flow_onestep:nth-child(even) .step_img_wrap::after {}
}



/*自社調達材料*/
.sec_materials {
    background-color: #fff;
}


.inner_materials {
    max-width: 1260px;
    width: 92%;
    margin: 0px auto;
    padding: 6% 0 6.7% 0;
    display: flex;
    gap: 3%;
}

.inner_materials .left {
    width: 45%;
    max-width: 496px;
}

.sec_materials h2 {
    max-width: 405px;
    margin: 15px 0 0 0;
}

.sec_materials h2 span {
    display: block;
    font-weight: 600;
    font-size: 15px;
    margin: 1% 0 0 0;
}

.sec_materials .catch {
    font-size: 30px;
    margin: 9.2% 0 1.8% 0;
    font-weight: 700;
}

.sec_materials .catch .red {
    color: #e60020;
}

.sec_materials .txt1 {
    line-height: 2;
}

.inner_materials .right {
    width: 52%;
}

.inner_materials .right .ex_materials {
    background-color: #e4eaf3;
    display: flex;
    max-width: 495px;
    margin: 2.4% 0 0 12%;
    padding: 2% 4%;
    box-sizing: border-box;
}

.inner_materials .right .ex_materials .ttl {
    background-color: #e4eaf3;
    width: fit-content;
    border-right: 1px solid;
    padding: 0px 3.4% 0 0;
    display: flex;
    align-items: center;
    font-size: min(1.6vw, 20px);
}

.inner_materials .right .ex_materials .txt2 {
    padding: 0px 0px 0 3.4%;
    font-size: min(1.4vw, 17px);
    font-feature-settings: "palt";
    letter-spacing: 0.5px;
}

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

    .inner_materials {
        flex-direction: column;
        padding: 7.9% 0 6.7% 0;
    }

    .inner_materials .left {
        width: 100%;
        max-width: none;
        margin: 0 auto;
    }

    .sec_materials h2 {
        max-width: 510px;
        margin: 15px 0 0 0;
        width: 69vw;
    }

    .sec_materials h2 span {
        font-size: min(3.8vw, 28px);
    }


    .inner_materials .left .img {
        margin: 7.54% auto 0;
    }

    .sec_materials .catch {
        font-size: min(5.1vw, 42px);
        margin: 2.4% 0 1.1% 0;
    }

    .inner_materials .right {
        width: 90%;
        margin: 0 auto;
    }

    .sec_materials .txt1 {
        font-size: min(3.8vw, 28px);
        line-height: 1.6;
    }

    .inner_materials .right .ex_materials {
        max-width: none;
        margin: 9% 0 0 0%;
        padding: 2% 4%;
    }

    .inner_materials .right .ex_materials .ttl {
        padding: 0px 3.4% 0 0;
        font-size: min(4.3vw, 32px);
        width: 32%;

    }

    .inner_materials .right .ex_materials .txt2 {
        padding: 0px 0px 0 3.4%;
        font-size: min(3.8vw, 28px);
    }

}

/*outsource*/
.sec_outsourced {
    background-color: #e2e3e3;
}


.inner_outsourced {
    max-width: 1260px;
    width: 100%;
    margin: 0px auto;
    padding: 6.4% 0 8% 0;
}

.sec_outsourced h2 {
    max-width: 493px;
    margin: 0 auto;
}

.sec_outsourced h2 span {
    display: block;
    font-weight: 600;
    font-size: 15px;
    text-align: center;
    margin: 2% 0 0 0;
}

.sec_outsourced .catch {
    font-size: 30px;
    text-align: center;
    font-weight: 700;
    margin: 2.4% 0 1.1% 0;
}

.sec_outsourced .catch .red {
    color: #e60020;
}

.sec_outsourced .txt1 {
    line-height: 2;
    text-align: center;
}

.box_outsourced {
    max-width: 962px;
    width: 90%;
    margin: 4.8% auto 0;
    padding: 4% 0 0 0;
    background-color: #fff;
}

.box_outsourced .wrap_box_outsourced {
    width: 90%;
    margin: 0 auto;
}

.box_outsourced .boxtop_image {
    display: flex;
    justify-content: space-between;
    max-width: 800px;
    margin: 0 auto;
}

.box_outsourced .boxtop_image .item {
    display: flex;
    justify-content: center;
    flex-direction: column;
}

.box_outsourced .boxtop_image .item01 img {
    max-width: 272px;
    margin: 0 auto;
}

.box_outsourced .boxtop_image .item02 img {
    max-width: 210px;
    margin: 0 auto;
}


.box_outsourced .boxtop_image .item03 img {
    max-width: 203px;
    margin: 0 auto;
}


.box_outsourced .boxtop_image .item .img {}

.box_outsourced .boxtop_image .item .name {
    font-size: 22px;
    font-weight: bold;
    text-align: center;
}

.box_outsourced .boxbot_txtarea {
    max-width: 856px;
    margin: 6% auto 0;
    padding: 0 0 3.2% 0;
    display: flex;
    gap: 3.6%;
    flex-wrap: wrap;
}

.box_outsourced .boxbot_txtarea .card {
    max-width: 415px;
    width: 48%;
    background-color: #e4eaf3;
    padding: 1.8% 2.2%;
    margin: 0 0 3.5% 0;
    box-sizing: border-box;
}

.box_outsourced .boxbot_txtarea .card .ttl {
    font-size: 22px;
    color: #003d74;
    font-weight: bold;
    text-align: center;
    padding-bottom: 10px;
    border-bottom: 1px solid #003d74;
}

.box_outsourced .boxbot_txtarea .card .list {
    width: 86%;
    margin: 4.5% auto 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}


.box_outsourced .boxbot_txtarea .card .list li {
    width: 58%;
    margin: 0;
    padding: 0;
    position: relative;
    font-size: 18px;
    line-height: 1.6;
}


.box_outsourced .boxbot_txtarea .card .list li:nth-child(even) {
    width: 42%;

}

.box_outsourced .boxbot_txtarea .card .list li::before {
    content: '・';
    position: absolute;
    color: #003d74;
    top: -0.25em;
    left: -1em;
    font-size: 23px;
}


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

    .inner_outsourced {
        padding: 13.2% 0 15.6% 0;
    }

    .sec_outsourced h2 {
        max-width: 621px;
        width: 84vw;
        margin: 0 auto;
    }

    .sec_outsourced h2 span {
        font-size: min(3.8vw, 28px);
    }

    .sec_outsourced .catch {
        font-size: min(5.7vw, 42px);
        margin: 4.4% 0 6.0% 0;
    }

    .sec_outsourced .txt1 {
        line-height: 1.6;
        font-size: min(3.8vw, 28px);
        width: 90%;
        margin: 0 auto;
        text-align: left;
    }

    .box_outsourced {
        margin: 9.6% auto 0;
        padding: 4% 0 0 0;
    }

    .box_outsourced .boxtop_image {
        flex-wrap: wrap;
        width: 90%;
        margin: 0 auto;
        justify-content: center;
        gap: 2%;
    }

    .box_outsourced .boxtop_image .item.item01 {
        width: 100%;
        margin: 0 auto;
    }

    .box_outsourced .boxtop_image .item .img {
        text-align: center;
    }

    .box_outsourced .boxtop_image .item.item02 {
        width: 45%;
    }

    .box_outsourced .boxtop_image .item.item03 {
        width: 41%;
    }

    .box_outsourced .boxtop_image .item .name {
        font-size: min(4.8vw, 35px);
    }

    .box_outsourced .boxbot_txtarea {
        flex-direction: column;
    }

    .box_outsourced .boxbot_txtarea .card {
        width: 90%;
        max-width: 593px;
        margin: 0 auto 6.7%;
        max-width: none;
    }

    .box_outsourced .boxbot_txtarea .card .ttl {
        font-size: min(5vw, 37px);
    }

    .box_outsourced .boxbot_txtarea .card .list li {
        font-size: min(4.2vw, 30px);
        white-space: nowrap;
    }

    .box_outsourced .boxbot_txtarea .card .list li::before {
        top: -1.85vw;
        font-size: min(6vw, 46px);
    }


}