@charset "utf-8";
/* CSS Document */

.sec_in{
    width: 94%;
    max-width: 1000px;
    margin: 0 auto;
}
.sec01{
    width: 100%;
    height: 62.5vw;
    background: url("../img/top/bg_main1.jpg");
    background-position: center top;
    background-size: cover;
}
.sec01_copy{
    width: min(70%, 1300px);
    /* width: 30%;
    max-width: 120px; */
    position: absolute;
    left: 50%;
    top: 30%;
    transform: translateX(-50%);
    /* transform: translateX(-50%) translateY(-50%); */
    /* font-size: clamp(1.75rem, 1.442rem + 1.371vw, 2.813rem);
    font-weight: bold;
    color: #fff;
    text-align: center;
    line-height: 1.66;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.80), 0 0 10px rgba(0, 0, 0, 0.80); */
    img {
        object-fit: contain;
    }
}
.slideConts{
    opacity: 0;
}
.slide{
	animation: slideAnime 2s ease forwards;
}
@keyframes slideAnime {
	from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
/* .txt1 {animation-delay: 0.2s;}
.txt2 {animation-delay: 0.6s;}
.txt3 {animation-delay: 1.0s;} */

@media screen and (max-width: 768px) {
    .sec01{
        width: 100%;
        height: 100vh;
        background: url("../img/top/bg_main1.jpg");
        background-position: center top;
        background-size: cover;
    }
    .sec01_copy {
        width: min(90%,520px);
        top: 22%;
    }
}


.sec02{
    width: 100%;
    height: auto;
    background: url("../img/top/bg_main2.jpg");
    background-position: center top;
    background-size: cover;
    padding-block: min(5.8vw,94px) min(6.25vw, 100px);
    /* padding: 50px 0; */
}
.sec02_copy{
    width: min(80%, 200px);
    /* width: 80%; */
    /* max-width: 360px; */
    margin: 0 auto;
    /* text-align: center;
    color: #fff;
    text-align: center;
    line-height: 1.2;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.80), 0 0 10px rgba(0, 0, 0, 0.80);
    font-size: clamp(2rem, 1.855rem + 0.645vw, 2.5rem); */
}
.philosophy {
    width: min(50%,770px);
    margin-top: min(4vw,64px);
    margin-inline: auto;
}
/* .philosophy__list {
    margin-top: min(3.5vw,56px);
    display: flex;
    flex-direction: column;
    gap: min(4.5vw,72px);
}
.philosophy__list--ttl {
    font-size: clamp(1.375rem, 1.230rem + 0.645vw, 1.875rem);
    text-align: center;
    line-height: 1.6;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.80), 0 0 10px rgba(0, 0, 0, 0.80);
}
.philosophy__list--txt {
    font-size: clamp(1rem, 0.927rem + 0.323vw, 1.25rem);
    text-align: center;
    line-height: 1.6;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.80), 0 0 10px rgba(0, 0, 0, 0.80);
} */
/* .sec02_text{
    margin-top: min(2.5vw,40px);
    font-size: 1.2em;
    line-height: 2em;
    text-align: center;
    color: #fff;
    text-shadow: 0 0 5px #000;
} */

@media screen and (max-width: 768px) {
    .sec02_copy {
        width: 26%;
    }
    .philosophy {
        margin-top: min(8.5vw,64px);
        width:90%;
    }
    /* .philosophy__list {
        margin-top: min(7.4vw, 56px);
        gap: min(8vw,72px);
    } */
    /* .sec02_text{
        font-size: 1em;
        line-height: 1.8em;
        text-align: center;
        color: #fff;
        text-shadow: 0 0 5px #000;
    } */
}


.sec03{
    width: 100%;
    padding: 50px 0;
}

.sec04{
    width: 100%;
    height: auto;
    background: url("../img/top/bg_main3.jpg");
    background-position: center top;
    background-size: cover;
    padding: 50px 0;
}


.section_title p{
    font-size: 1.8em;
    text-align: center;
    line-height: 1.2em;
    letter-spacing: 0.2em;
    font-weight: bold;
    position: relative;
    z-index: 1;
}
.section_title p span{
    font-size: 60%;
}

.sec_bg_text{
    width: auto;
    height: 8vw;
    opacity: 0.1;
}
@media screen and (max-width: 768px) {
    .sec_bg_text{
        width: auto;
        height: 15vw;
        opacity: 0.1;
    }
}
.sec_bg_text img{
    width: auto;
    height: 100%;
}

.service-list {
    margin-top: min(7vw,138px);
}


.service_flex{
    display: flex;
    justify-content: space-between;
    /* justify-content: center; */
    flex-wrap: wrap;
    margin-bottom: min(5vw,96px);
    /* margin-bottom: 20px; */
}
.service_flex_re{
    display: flex;
    justify-content: space-between;
    /* justify-content: center; */
    flex-wrap: wrap-reverse;
    margin-bottom: min(5vw,96px);
    /* margin-bottom: 20px; */
}
.service_img{
    width: 60%;
}
.service_text{
    width: 37%;
    /* width: 40%;
    padding: 3%; */
    box-sizing: border-box;
    position: relative;
}

.service_text div{display: block;position: absolute;top: 50%;transform: translateY(-50%);}
.service_text p:nth-child(1){font-size: 1.2em;font-weight: bold;border-bottom: 1px solid #ED1C24;letter-spacing: 0.2em;padding-bottom: 5px;}
.service_text p:nth-child(2){font-size: 1em;line-height: 1.8em;margin-block:1em 0.2em;}
.service_text p:nth-child(2) span{color: #ED1C24;}
.service_text p:nth-child(3){font-size: 1.14em;line-height: 1.8em;margin-block-start: 0;}
.service_text p:nth-child(3) span{color: #ED1C24;}


@media screen and (max-width: 768px) {
    .service_img{
        width: 100%;
    }
    .service_text{
        width: 100%;
        padding: 3%;
        box-sizing: border-box;
        position: relative;
    }
    .service_text div{display: block;position: relative;top: auto;transform: translateY(0);}
}



.work_flex{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 40px;
}
.work_img{
    width: 70%;
}
.work_text{
    width: 30%;
    height: auto;
    padding: 0;
    box-sizing: border-box;
    position: relative;
}
.work_text div{background: #fff;padding: 3% 20px;width: 100%; position: absolute;left: -5%;bottom: -5%;box-sizing: border-box;}
.work_text p{font-size: 1em;line-height: 1.8em;}
.work_text p span{color: #ED1C24;border-bottom: 1px solid #ED1C24;}
.work_text a{display: block;width: 100%;height: 100%;position: absolute;left: 0;top: 0;}
@media screen and (max-width: 768px) {
    .work_img{
        width: 100%;
    }
    .work_text{
        width: 100%;
        height: auto;
        padding: 0;
        box-sizing: border-box;
        position: relative;
    }
    .work_text div{background: #fff;padding: 3% 10px;width: 100%; position: relative;left: auto;bottom: auto;}
}

/*
.more_btn{
    width: 90%;
    max-width: 320px;
    background: #F05A24;
    padding: 15px 5px; 
    border-radius: 10px;
    text-align: center;
    margin: 30px auto;
}
.more_btn a{
    display: block;
    background: #F05A24;
    padding: 15px 5px;
    border: 1px solid #F05A24;
    border-radius: 10px;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    transition: 0.4s all ease;

    &:hover {
        background: #fff;
        color: #F05A24;
    }
}
*/


.sec05{
    width: 100%;
    padding: 50px 0;
}

.recruit_box{
    width: 100%;
    height: 40vw;
    position: relative;
}
.recruit_box a{
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
}
.recruit_bg{
    display: flex;
    justify-content: center;
    width: 100%;
    height: 40vw;
}
@media screen and (max-width: 768px) {
    .recruit_box{
        width: 100%;
        height: 60vw;
        position: relative;
    }
    .recruit_bg{
        display: flex;
        justify-content: center;
        width: 100%;
        height: 60vw;
    }
}
.recruit_bg{
    width: 100%;
    height: 100%;
    background: url("../img/top/bg_main4.jpg");
    background-position: center top;
    background-size: cover;
    position: relative;
}
/*
.recruit_bg01{
    width: 50%;
    height: 100%;
    background: url("../img/top/bg_main4.jpg");
    background-position: center top;
    background-size: cover;
    position: relative;
}
.recruit_bg02{
    width: 50%;
    height: 100%;
    background: url("../img/top/bg_main5.jpg");
    background-position: center top;
    background-size: cover;
    position: relative;
} */

.recruit_copy{
    width: 90%;
    max-width: 600px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}
.recruit_copy p:nth-child(1){
    font-size: 1.8em;
    text-align: center;
    color: #fff;
    font-weight: bold;
    text-shadow: 0 0 2px #000,0 0 4px #333;
}
.recruit_copy p:nth-child(2){
    width: 100%;
    max-width: 240px;
    padding: 10px;
    margin: min(3.1vw,50px) auto;
    /* margin: 0 auto; */
    font-size: 1.8em;
    border: 1px solid #fff;
    text-align: center;
    color: #fff;
    font-weight: bold;
    background: rgba(255,255,255,0);
    transition: all 0.3s;
}
.recruit_box a:hover > .recruit_copy p:nth-child(2){
    width: 100%;
    max-width: 360px;
    color: #000;
    background: rgba(255,255,255,1);
    transition: all 0.5s;
}
@media screen and (max-width: 768px) {
    .recruit_copy p:nth-child(1){
        font-size: 1.3em;
    }
    .recruit_copy p:nth-child(2){
        width: 70%;
        max-width: 180px;
        padding: 10px;
        margin: 0 auto;
        font-size: 1.4em;
        border: 1px solid #fff;
        text-align: center;
        color: #fff;
        font-weight: bold;
        background: rgba(255,255,255,0);
        transition: all 0.3s;
    }
    .recruit_box a:hover > .recruit_copy p:nth-child(2){
        width: 100%;
        max-width: 240px;
        color: #000;
        background: rgba(255,255,255,1);
        transition: all 0.5s;
    }
}


.sec06{
    width: 100%;
    padding: 50px 0;
}
.map_box{
    width: 100%;
    height: 30vw;
    position: relative;
}
.map_box a{
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
}
.map_bg{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
    height: 30vw;
}
@media screen and (max-width: 768px) {
    .map_box{
        width: 100%;
        height: 100vw;
        position: relative;
    }
    .map_bg{
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        width: 100%;
        height: 100vw;
    }
}
.map_bg01{
    width: 60%;
    height: 100%;
    position: relative;
}
.map_bg01 iframe{
    width: 100%;
    height: 100%;
}
.map_bg02{
    width: 40%;
    height: 100%;
    position: relative;
    padding: 5% 3%;
    box-sizing: border-box;
    text-align: left;
}
.map_logo{
    width: 50%;
    max-width: 180px;
}
.map_bg02 p{
    font-size: 1em;
    padding: 20px 0;
}
@media screen and (max-width: 768px) {
    .map_bg01{
        width: 100%;
        height: 60vw;
        position: relative;
    }
    .map_bg02{
        width: 100%;
        height: 100%;
        position: relative;
        padding: 5% 3%;
        box-sizing: border-box;
        text-align: center;
    }
    .map_logo{
        width: 50%;
        max-width: 180px;
        margin: 0 auto;
    }
}




