@charset "UTF-8";

/************************************************************/
/*   Header Section   */
/************************************************************/
#header{
    width: 100%;
    padding: 10px 0;
    border-top: 20px solid #0b318f;
    border-bottom: 5px solid #0b318f;
}

.header_contentsBox{
    width: 100%;
    display: flex; flex-wrap: nowrap;
    justify-content: space-between; align-items: center;
}
.header_logoBox h1{
    font-size: 0;
}
.headerLogo{
    display: block;
    /* width: 80%; */
}
.headerLogo img{
    width: auto;
    height: 10vw;
}
.header_telBox{
    display: none;
}



/************************************************************/
/*   Navigation Section   */
/************************************************************/
.nav_openSP{
    position: fixed;
    z-index: 10000;
    /* top: 27px; */
    top: calc((20px + 10vw) / 2);
    right: 15px;
    width: 40px;
    height: 40px;
    padding: 10px 0;
    cursor: pointer;
    background-color: #0b318f;
    transition: 0.3s ease;
    display: flex; flex-wrap: nowrap;
    justify-content: space-between; align-items: center;
    flex-direction: column;
}
.nav_openSP.open{
    background-color: #0b318f;
}

.nav_openSP span{
    width: 22px;
    height: 2px;
    background-color: #fff;
    transition: all .4s;
}

.nav_openSP.open span{background: #fff;}

.nav_openSP.open span:nth-of-type(1) {
    transform: translateY(9px) rotate(-315deg);
}
.nav_openSP.open span:nth-of-type(2) {
    opacity: 0;
}
.nav_openSP.open span:nth-of-type(3) {
    transform: translateY(-9px) rotate(315deg);
}

.naviBox{
    -webkit-overflow-scrolling: touch;
    overflow-y: scroll;
    position: fixed;
    z-index: 9999;
    top: 0; right: 0;
    background-color: rgba(255, 255, 255, 0.95);
    width: 70%;
    height: 100%;
    padding: 30px 20px;
    padding-top: 90px;
    transform: translateX(180%);
    transition:  0.75s ease-out;
}
.naviBox.open{
    transform: translateX(0%);
}

.navi_linkBtn{
    display: block;;
    padding: 15px 10px;
    color: #000;
    position: relative;
    border-bottom: 1px solid #ccc;
}
.navi_linkBtn::before{
    content: "";
    position: absolute;
    top: 50%; right: 10px;
    width: 5px; height: 5px;
    transform: translateY(-50%) rotate(45deg);
    border: 2px solid #0b318f;
    border-left: none;
    border-bottom: none;
}
.navi_linkBtn span{
    display: block;
    font-size: 0.75rem;
    color: #0b318f;
}

.navi_telLink{
    display: block;
    margin-top: 20px;
    padding: 10px;
    background-color: #0b318f;
}

.navi_anim{opacity: 0;}
.open .navi_anim{ animation: naviAnimate 0.50s ease-out 0.75s forwards;}
@keyframes naviAnimate {
    0% {
        opacity: 0;
        transform: translateY(100%);
    }
    100% {
        opacity: 1;
        transform: translateY(0%);
    }
}



/************************************************************/
/*   Footer Section   */
/************************************************************/
#footer{
    width: 100%;
    background-color: #0b318f;
    color: #fff;
    font-size: 0.9rem;
    padding-top: 30px;
}

#footer > .contentsWidth{
    align-items: flex-start;
}

.footer_logoBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: center;
    flex-direction: column;
}
.footer_logoInner{
    width: 80%;
    margin-bottom: 10px;
}

.footer_naviBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: stretch;
    margin-bottom: 10px;
}
.footer_naviBox dt{
    width: 50%;
    border-left: 1px solid #fff;
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: flex-start;
    flex-direction: column;
    padding: 0px 15px;
}
.footer_naviBox:first-of-type dt{
    border-left: none;
}
.footer_naviBox dd{
    width: 50%;
    border-left: 1px solid #fff;
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: flex-start;
    flex-direction: column;
    padding: 0px 15px;
}

.footer_naviBox a{
    color: #ffffff;
    margin-bottom: 5px;
    position: relative;
}
.footer_naviBox a::before{
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff;
    transform: scale(0, 1);
    transform-origin: top right;
    transition: transform 0.3s ease-out;
}
.footer_naviBox a:hover::before{
    transform: scale(1, 1);
    transform-origin: top left;
}

.footer_copyRightWrap{
    width: 100%;
    background-color: #fff;
    padding: 10px 15px;
}
.footer_copyRight{
    display: block;
    font-size: 0.75rem;
    color: #000;
}
.footer_copyRight p:first-of-type{
    margin-right: 0px;
}



/************************************************************/
/*   Common Parts   */
/************************************************************/
.IMI_mainVS_wrap{
    height: 30vh;
    background-color: #6c9bd2;
    margin-bottom: 20px;
}

.IMI_subTitle{
    font-size: 1.2rem;
    font-weight: 900;
    line-height: 1;
    color: #0b318f;
    padding-left: calc(1.2rem + 5px);
    position: relative;
    margin-bottom: 10px;
}
.IMI_subTitle::before{
    content: "";
    position: absolute;
    top: 50%; left: 0;
    transform: translateY(-50%);
    width: 1.2rem;
    height: 1.2rem;
    background: -webkit-linear-gradient(-45deg, #51bcb2 0%,#51bcb2 50%,#0079c3 50%,#0079c3 100%);
    background: linear-gradient(135deg, #51bcb2 0%,#51bcb2 50%,#0079c3 50%,#0079c3 100%);
}
.IMI_textBox{
    padding-left: calc(1.2rem + 5px);
}

.IMI_subPageTitle{
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif !important;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.5rem;
    font-size: 2.2rem;
    line-height: 2.0rem;
    text-shadow: 3px 3px 3px rgba(0, 0, 0, 0.5);
}


/*---------- Pagetop ----------*/
.pagetop{
    position: fixed;
    bottom: 0px; right: 0px;
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.5);
    transform: translateY(100%);
}

.pagetop span{
    position: relative;
    display: flex; flex-wrap: nowrap;
    justify-content: center; align-items: center;
    height: 100%;
}
.pagetop span::before{
    content: "";
    position: absolute;
    top: 43%;
    left: 0; right: 0;
    margin: auto;
    transform: rotate(45deg);
    width: 15px;
    height: 15px;
    border: 1px solid #0b318f;
    border-right: none;
    border-bottom: none;
}



/************************************************************/
/*   Top Main Section   */
/************************************************************/
#topMainSection.IMI_mainVS_wrap{
    background-image: url(../image/top/mainImg.jpg);
    background-repeat: no-repeat;
    background-position: 0% 60%;
    background-size: 100%;
}

.topMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-end; align-items: center;
    width: 100%;
    height: 100%;
    padding-right: 15px;
}
.topMainBox h2{
    width: 40vw;
}



/************************************************************/
/*   Top About Section   */
/************************************************************/
#topAboutSection{
    margin-bottom: 30px;
}



/************************************************************/
/*   Top Feature Section   */
/************************************************************/
#topFeatureSection{
    margin-bottom: 30px;
}

.topFea_contentsBox{
    width: 100%;
}
.topFea_imgBox{
    width: 100%;
}
.topFea_textBox{
    width: 100%;
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: center;
    background-color: #0079c3;
    color: #fff;
    font-size: 1.1rem;
    font-weight: bold;
}
.topFea_textBox .num{
    background-color: #51bcb2;
    padding: 3px 10px;
    margin-right: 10px;
}



/************************************************************/
/*   Company Main Section   */
/************************************************************/
#comMainSection.IMI_mainVS_wrap{
    background-image: url(../company/image/mainImg.jpg);
    background-repeat: no-repeat;
    background-position: 0% 80%;
    background-size: 110%;
}
.comMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: flex-start;
    width: 100%;
    height: 100%;
    padding-top: 15px;
}



/************************************************************/
/*   Company Desc Section   */
/************************************************************/
#comDescSection{
    border-bottom: 1px solid #0b318f;
    padding-bottom: 30px;
    margin-bottom: 30px;
}

.comDescBox{
    justify-content: flex-end;
}
.comDescTextBox{
    width: 100%;
    margin-right: 0px;
/*    margin-bottom: 30px;*/
}
.comDescImgBox{
    width: 50%;
}
.comDescImgBox p{
    margin-top: 10px;
}



/************************************************************/
/*   Company Policy Section   */
/************************************************************/
#comPolicySection{
    border-bottom: 1px solid #0b318f;
    padding-bottom: 30px;
    margin-bottom: 30px;
}

.comPoli_img{
    margin-left: calc(1.2rem + 5px);
    margin-right: calc(1.2rem + 5px);
}



/************************************************************/
/*   Company List01 Section   */
/************************************************************/
#comList01Section{
    border-bottom: 1px solid #0b318f;
    padding-bottom: 30px;
    margin-bottom: 30px;
}

.comListBox{
    /* width: 100%; */
    display: flex; flex-wrap: wrap;
    justify-content: flex-start; align-items: stretch;
    border: 1px solid #cacacb;
    border-bottom: none;
    margin-left: calc(1.2rem + 5px);
}
.comListBox dt{
    width: 100%;
    font-weight: bold;
    padding: 10px 20px;
    background-color: #eaedee;
    border-bottom: 1px solid #cacacb;
}
.comListBox dd{
    width: 100%;
    padding: 10px 20px;
    border-bottom: 1px solid #cacacb;
}



/************************************************************/
/*   Company List02 Section   */
/************************************************************/
#comList02Section{
    margin-bottom: 30px;
}

.comList02_imgBox{
    display: flex; flex-wrap: wrap;
    justify-content: flex-start; align-items: flex-start;
    margin-left: calc(1.2rem + 5px);
    margin-top: 30px;
}



/************************************************************/
/*   Service Main Section   */
/************************************************************/
#serMainSection.IMI_mainVS_wrap{
    background-image: url(../service/image/mainImg.jpg);
    background-repeat: no-repeat;
    background-position: 0% 40%;
    background-size: cover;
}
.serMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-end; align-items: flex-end;
    width: 100%;
    height: 100%;
    padding-bottom: 15px;
}



/************************************************************/
/*   Service Desc Section   */
/************************************************************/
#serDescSection{
    width: 100%;
    margin-bottom: 30px;
}

.recDescWrap{
    width: 100%;
    border-bottom: 1px solid #0b318f;
    padding-bottom: 30px;
}
.recDescWrap:last-of-type{
    border-bottom: none;
    padding-bottom: 0;
    padding-top: 30px;
}

.serDescBox{
    align-items: flex-start;
}
.serDescTextBox{
    width: 100%;
    margin-right: 0px;
    margin-bottom: 30px;
}
.serDescImgBox{
    width: 100%;
    margin-left: calc(1.2rem + 5px);
}
.serDescImgBox p{
    margin-top: 10px;
}



/************************************************************/
/*   Service Day Schedule Section   */
/************************************************************/
#serDaySection{
    background-color: #dcefeb;
    padding: 30px 0;
}

.serDay_title{
    text-align: center;
    color: #0b318f;
    font-size: 1.6rem;
    letter-spacing: 0.2rem;
    margin-bottom: 0px;
}

.serDay_mainImgBox{
    margin-bottom: 0px;
}
.serDay_mainImgBox p{
    margin-top: 10px;
    font-size: 1.0rem;
}

.serDay_contentsBox{
    width: 100%;
    background-color: #fff;
    border: 1px solid #51bcb2;
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 45px;
    position: relative;
}
.serDay_contentsBox:last-of-type{
    margin-bottom: 0;
    position: static;
}
.serDay_contentsBox::before{
    content: "";
    position: absolute;
    bottom: -40px;
    left: 0; right: 0;
    margin: auto;
    width: 60px;
    height: 30px;
    background-image: url(/service/image/arrIcon.png);
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: 100%;
}
.serDay_contentsBox:last-of-type::before{
    display: none;
}

.serDay_contentsBox dl{
    width: 100%;
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: flex-start;
    flex-direction: column;
}
.serDay_contentsBox dl dt{
    width: 100%;
    margin-bottom: 10px;
}
.serDay_contentsBox dl dd{
    width: 100%;
}

.serDay_date{
    font-size: 1.2rem;
    line-height: 1;
    color: #0b318f;
    margin-bottom: 10px;
}
.serDay_contentsBox dl.serDay_textWrap .serDay_date{
    margin-bottom: 0;
}

.serDay_imgBox{
    width: 100%;
}



/************************************************************/
/*   Recruit Main Section   */
/************************************************************/
#recMainSection.IMI_mainVS_wrap{
    background-image: url(../recruit/image/mainImg.jpg);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 120%;
}
.recMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-end; align-items: flex-end;
    width: 100%;
    height: 100%;
    padding-bottom: 15px;
}



/************************************************************/
/*   Recruit Desc Section   */
/************************************************************/
#recDescSection{
    border-bottom: 1px solid #0b318f;
    padding-bottom: 30px;
    margin-bottom: 30px;
}

.recDescBox{
    align-items: flex-start;
}
.recDescTextBox{
    width: 100%;
    margin-right: 0px;
    margin-bottom: 30px;
}
.recDescImgBox{
    width: 100%;
    margin-left: calc(1.2rem + 5px);
}
.recDescImgBox p{
    margin-top: 10px;
}



/************************************************************/
/*   Recruit List Section   */
/************************************************************/
#recListSection{
    margin-bottom: 30px;
}

.recListBox{
    /* width: 100%; */
    display: flex; flex-wrap: wrap;
    justify-content: flex-start; align-items: stretch;
    border: 1px solid #cacacb;
    border-bottom: none;
    margin-left: calc(1.2rem + 5px);
}
.recListBox dt{
    width: 100%;
    font-weight: bold;
    padding: 10px 20px;
    background-color: #eaedee;
    border-bottom: 1px solid #cacacb;
}
.recListBox dd{
    width: 100%;
    padding: 10px 20px;
    border-bottom: 1px solid #cacacb;
}



/************************************************************/
/*   Contact Main Section   */
/************************************************************/
#conMainSection.IMI_mainVS_wrap{
    background-image: url(../contact/image/mainImg.jpg);
    background-repeat: no-repeat;
    background-position: 0% 100%;
    background-size: 110%;
}
.conMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: center; align-items: center;
    width: 100%;
    height: 100%;
    padding-bottom: 15px;
}
.con_pageTitle{
    color: #000000;
}



/************************************************************/
/*   Contact Desc Section   */
/************************************************************/
.con_descTelBox{
    text-align: center;
    padding: 10px 0;
}
.con_descTelBox a{
    width: 78%;
    display: inline-block;
    margin-bottom: 20px;
}
.con_descTelBox p{
    width: 90%;
    display: inline-block;
}

.con_formBox{
    margin-top: 10px;
    margin-bottom: 30px;
}
.con_formTitle{
    width: 100%;
    background-color: #51bcb2;
    color: #ffffff;
    font-size: 1.2rem;
    font-weight: 900;
    line-height: 1.3;
    padding: 5px 15px;
    margin-bottom: 10px;
}

.con_formBox dl{
    width: 100%;
    display: flex; flex-wrap: wrap;
    justify-content: flex-start; align-items: stretch;
    flex-direction: column;
    border: 3px solid #b5b6b6;
}

.con_formBox dl dt{
    width: 100%;
    background-color: #f2f2f2;
    padding: 10px 20px;
}
.con_formRedText{
    color: #e60012;
}

.con_formBox dl dd{
    width: 100%;
    border-bottom: 1px solid #b5b6b6;
    padding: 10px 10px;
}
.con_formBox dl dd:last-of-type{
    border-bottom: none;
}

.con_formBox dl dd input{
    -webkit-appearance:none;
    appearance:none;
    width: 100%;
    padding: 10px;
    font-size: 1.0rem;
    border-radius: 0;
    border: 1px solid #ddd;
}
.con_formBox dl dd textarea{
    -webkit-appearance:none;
    appearance:none;
    width: 100%;
    padding: 10px;
    font-size: 1.0rem;
    border-radius: 0;
    border: 1px solid #ddd;
}

.con_formBox dl dd .error{
    color: #e60012;
    margin-top: 5px;
}

.con_formSubmitBox{
    margin-top: 20px;
    display: flex; flex-wrap: nowrap;
    justify-content: center; align-items: center;
}

.con_formSubmitBox button{
    -webkit-appearance:none;
    appearance:none;
    font-size: 1.2rem;
    padding: 10px 50px;
    margin-right: 20px;
    color: #ffffff;
    background-color: #e60012;
    border: none;
    border-radius: 10px;
    position: relative;
    transition: 0.3s ease;
}
.con_formSubmitBox button:last-of-type{
    margin-right: 0;
}

.con_formSubmitBox button[type="submit"]{
    background-color: #e60012;
}
.con_formSubmitBox button[type="submit"]::after{
    content: "";
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%) rotate(45deg);
    width: 7px;
    height: 7px;
    border: 2px solid #fff;
    border-left: none;
    border-bottom: none;
}
.con_formSubmitBox button[type="submit"]:hover{
    cursor: pointer;
    background-color: #ff0000;
}
.con_formSubmitBox button[type="button"]{
    background-color: #ccc;
}
.con_formSubmitBox button[type="button"]::after{
    content: "";
    position: absolute;
    top: 50%;
    left: 15px;
    transform: translateY(-50%) rotate(45deg);
    width: 7px;
    height: 7px;
    border: 2px solid #fff;
    border-top: none;
    border-right: none;
}
.con_formSubmitBox button[type="button"]:hover{
    cursor: pointer;
    background-color: #777;
}

.con_formBox p{
    margin-bottom: 30px;
}

.con_thanksTextBox{
    margin-bottom: 30px;
}