@charset "UTF-8";

/************************************************************/
/*   Header Section   */
/************************************************************/
#header{
    width: 100%;
    padding: 10px 0;
    border-top: 30px 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: 342px;
}
.header_telBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-end; align-items: center;
}
.header_telBox p{
    padding: 3px 15px;
    background-color: #0b318f;
    color: #ffffff;
    margin-right: 10px;
}
.header_telBox .telImg{
    width: 225px;
}
@media screen and (min-width: 768px) and (max-width: 999px){ /* TB */
    .headerLogo{
        display: block;
        width: 40vw;
    }
    .header_telBox .telImg{
        width: 25vw;
    }
}



/************************************************************/
/*   Navigation Section   */
/************************************************************/
.nav_openSP{ display: none;}

.naviBox{
    width: 100%;
    /* border: 2px solid #9fa0a0; */
    display: flex; flex-wrap: nowrap;
    justify-content: center; align-items: center;
}

.navi_linkBtn{
    flex-grow: 1;
    padding: 15px 0;
    border-left: 2px solid #9fa0a0;
    text-align: center;
}
.navi_linkBtn:first-of-type{
    border-left: none;
}
.navi_linkBtn span{
    display: block;
    font-size: 0.75rem;
    color: #0b318f;
    margin-top: -5px;
}
.navi_telLink{
    display: none;
}
.navi_linkBtn:hover{
    background-color: #d0e3f3;
}

.fixed{
    position: fixed;
    top: 0;
    left: 0; right: 0;
    margin: auto;
    z-index: 9999;
}



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

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

.footer_logoInner{
    width: 342px;
    margin-bottom: 10px;
}

.footer_naviBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: stretch;
}
.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: 5px 20px;
}
.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: 5px 20px;
}

.footer_naviBox a{
    color: #ffffff;
    margin-bottom: 10px;
    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;
}
.footer_copyRight{
    display: flex; flex-wrap: nowrap;
    justify-content: center; align-items: flex-start;
    font-size: 0.85rem;
    color: #000;
}
.footer_copyRight p:first-of-type{
    margin-right: 30px;
}
@media screen and (min-width: 768px) and (max-width: 999px){ /* TB */
    .footer_copyRight{
        display: flex; flex-wrap: wrap;
        justify-content: center; align-items: flex-start;
        font-size: 0.85rem;
        color: #000;
    }
    .footer_copyRight p:first-of-type{
        margin-right: 0px;
    }
}



/************************************************************/
/*   Common Parts   */
/************************************************************/
.IMI_mainVS_wrap{
    height: 60vh;
    background-color: #6c9bd2;
    margin-bottom: 50px;
}
@media screen and (max-width: 1099px) and (orientation: portrait){ /* TB */
    .IMI_mainVS_wrap{
        height: 35vh;
        background-color: #6c9bd2;
    }
}

.IMI_subTitle{
    font-size: 1.6rem;
    font-weight: 900;
    line-height: 1;
    color: #0b318f;
    padding-left: calc(1.6rem + 10px);
    position: relative;
    margin-bottom: 20px;
}
.IMI_subTitle::before{
    content: "";
    position: absolute;
    top: 50%; left: 0;
    transform: translateY(-50%);
    width: 1.6rem;
    height: 1.6rem;
    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.6rem + 10px);
}

.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: 5.0rem;
    line-height: 6.0rem;
    text-shadow: 5px 5px 5px rgba(0, 0, 0, 0.4);
}
@media screen and (min-width: 768px) and (max-width: 1099px){
    .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: 4.0rem;
        line-height: 5.0rem;
        text-shadow: 5px 5px 5px rgba(0, 0, 0, 0.4);
    }
}


/*---------- Pagetop ----------*/
.pagetop{
    position: fixed;
    bottom: 0; right: 0;
    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%;
    height: 70vh;
}
@media screen and (max-width: 1099px) and (orientation: portrait){ /* TB */
    #topMainSection.IMI_mainVS_wrap{
        height: 35vh;
    }
}

.topMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-end; align-items: center;
    width: 100%;
    height: 100%;
    /* padding-right: 100px; */
    padding: 50px 100px;
}
.topMainBox h2 img{
    width: auto;
    height: 60vh;
}
@media screen and (orientation: portrait){ /* TB */
    .topMainBox h2 img{
        width: 35vw;
        height: auto;
    }
}


/************************************************************/
/*   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.4rem;
    font-weight: bold;
    transition: 0.3s ease;
}
.topFea_textBox .num{
    background-color: #51bcb2;
    padding: 3px 15px;
    margin-right: 10px;
}



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



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

.comDescBox{
    align-items: flex-start;
}
.comDescTextBox{
/*
    width: calc(((100% - 50px) / 4) * 3 );
    margin-right: 50px;
*/
	width: 100%;
}
.comDescImgBox{
    width: calc(((100% - 50px) / 4) * 1 );
}
.comDescImgBox p{
    margin-top: 10px;
}



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

.comPoli_img{
    margin: 0 12%;
}



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

.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.6rem + 10px);
}
.comListBox dt{
    width: 250px;
    font-size: 1.2rem;
    line-height: 1.6;
    font-weight: bold;
    padding: 15px 30px;
    background-color: #eaedee;
    border-right: 1px solid #cacacb;
    border-bottom: 1px solid #cacacb;
}
.comListBox dd{
    width: calc(100% - 250px);
    font-size: 1.2rem;
    line-height: 1.6;
    padding: 15px 30px;
    border-bottom: 1px solid #cacacb;
}



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

.comList02_imgBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-start; align-items: flex-start;
    margin-left: calc(1.6rem + 10px);
    margin-top: 30px;
}
.comList02_imgBox p{
    font-size: 1.2rem;
}



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



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

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

.serDescBox{
    align-items: flex-start;
}
.serDescTextBox{
    width: calc(((100% - 50px) / 3) * 2 );
    margin-right: 50px;
}
.serDescImgBox{
    width: calc(((100% - 50px) / 3) * 1 - 1px);
}
.serDescImgBox p{
    margin-top: 10px;
}



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

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

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

.serDay_contentsBox{
    width: 100%;
    background-color: #fff;
    border: 1px solid #51bcb2;
    border-radius: 10px;
    padding: 30px;
    margin-bottom: 50px;
    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;
    font-size: 1.2rem;
    line-height: 1.6;
}

.serDay_contentsBox dl.serDay_imgWrap dt{
    width: calc(((100% - 50px) / 3) * 2 );
    margin-right: 50px;
}
.serDay_contentsBox dl.serDay_imgWrap dd{
    width: calc(((100% - 50px) / 3) * 1 - 1px);
}

.serDay_contentsBox dl.serDay_textWrap dt{
    width: 200px;
    margin-right: 50px;
}
.serDay_contentsBox dl.serDay_textWrap dd{
    width: calc(100% - (200px + 50px));
}

.serDay_date{
    font-size: 1.6rem;
    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: 0% 50%;
    background-size: cover;
}
.recMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: flex-end; align-items: flex-end;
    width: 100%;
    height: 100%;
    padding-bottom: 30px;
}



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

.recDescBox{
    align-items: flex-start;
}
.recDescTextBox{
    width: calc(((100% - 50px) / 3) * 2 );
    margin-right: 50px;
}
.recDescImgBox{
    width: calc(((100% - 50px) / 3) * 1 - 1px);
}
.recDescImgBox p{
    margin-top: 10px;
}



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

.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.6rem + 10px);
}
.recListBox dt{
    width: 250px;
    font-size: 1.2rem;
    line-height: 1.6;
    font-weight: bold;
    padding: 15px 30px;
    background-color: #eaedee;
    border-right: 1px solid #cacacb;
    border-bottom: 1px solid #cacacb;
}
.recListBox dd{
    width: calc(100% - 250px);
    font-size: 1.2rem;
    line-height: 1.6;
    padding: 15px 30px;
    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% 70%;
    background-size: cover;
}
.conMainBox{
    display: flex; flex-wrap: nowrap;
    justify-content: center; align-items: center;
    width: 100%;
    height: 100%;
    padding-bottom: 30px;
}
.con_pageTitle{
    color: #000000;
}



/************************************************************/
/*   Contact Desc Section   */
/************************************************************/
.con_descTelBox{
    text-align: center;
    padding: 30px 0;
}
.con_descTelBox a{
    width: 515px;
    display: inline-block;
    margin-bottom: 20px;
}
.con_descTelBox p{
    width: 619px;
    display: inline-block;
}

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

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

.con_formBox dl dt{
    width: 300px;
    background-color: #f2f2f2;
    border-bottom: 1px solid #b5b6b6;
    padding: 10px 30px;
}
.con_formBox dl dt:last-of-type{
    border-bottom: none;
}
.con_formRedText{
    color: #e60012;
}

.con_formBox dl dd{
    width: calc(100% -  300px);
    border-bottom: 1px solid #b5b6b6;
    padding: 10px 10px;
}
.con_formBox dl dd:last-of-type{
    border-bottom: none;
}
@media screen and (min-width: 768px) and (max-width: 999px){
    .con_formBox dl dt{
        width: 200px;
        background-color: #f2f2f2;
        border-bottom: 1px solid #b5b6b6;
        padding: 10px 30px;
    }
    .con_formBox dl dd{
        width: calc(100% -  200px);
        border-bottom: 1px solid #b5b6b6;
        padding: 10px 10px;
    }
}

.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{
    font-size: 0.9rem;
    color: #e60012;
    margin-top: 5px;
}

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

.con_formSubmitBox button{
    -webkit-appearance:none;
    appearance:none;
    font-size: 1.4rem;
    padding: 10px 50px;
    margin-right: 20px;
    color: #ffffff;
    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: 50px;
}