/* main visual */
#mainVisual{
    background: #2a5dd3;
    height: 1000px;
    position: relative;
    z-index: 1;
    }
#mainVisual .cntText{
    position: absolute;
    top: 25%;
    left: 0;
    right: 0;
    width: 90%;
    margin: auto;
    max-width: 1200px;
    color: #fff;
    text-align: center;
    }
#mainVisual .cntText h2{
    font-size:clamp(1.875rem, -1.815rem + 18.45vw, 21.25rem);}
#mainVisual .cntText p{
    font-size: clamp(1.125rem, 0.625rem + 2.5vw, 3.75rem);
    }
/* ---- particles.js container ---- */ 
#particles-js{
    position:absolute;
    width: 100%;
    height: 100%;
    background-color: #2664c9;
    background-image: url("../img/top/mv_bg.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 50%;
    }

/* スクロールダウン */
.scroll {
    position: absolute;
    left: 3%;
    bottom: 5%;
    writing-mode: vertical-rl;
    color: #fff;
    font-size: 1.4rem;
    letter-spacing: 0;
    }
.scroll::before {
    animation: scroll 2s infinite;
    background-color: #fff;
    top: -115px;
    content: "";
    height: 100px;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    width: 3px;
    z-index: 2;
    }
.scroll::after {
    background-color: #ccc;
    top: -115px;
    content: "";
    height: 100px;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    width: 1px;
    }
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

@media screen and (max-width: 1250px) {
    #mainVisual{height: 800px;}
}
/* TAB */
@media screen and (max-width: 899px) {
    #mainVisual{height: 100vh;}
    }
@media screen and (max-width: 520px) {
    #mainVisual{height: 100vh;}
    .scroll {position: static;display: none;}
    }
/* SP */
@media screen and (max-width: 480px) {
    #mainVisual .cntText{top: 45%;}
}


.content__wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 120vh;
    }
.content-wrap--bg::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0;
    transition: all 1.5s ease-in-out 0.3s;
    z-index: 0;
    }

.content-wrap--bg.show::before {opacity: 1;}
.content-wrap--bg.greeting--bg {
    background: linear-gradient(180deg, rgba(0, 81, 204, 0.95), rgba(0, 81, 204, 0.5));
}
.content-wrap--bg001.greeting {
    height: 80vh;
    background: linear-gradient(0deg, rgba(0, 81, 204, 0.95), rgba(0, 81, 204, 0.5));
}
.content-wrap--bg.message--bg {
    background: linear-gradient(180deg, rgba(0, 81, 204, 0.95), rgba(0, 81, 204, 0.5));
    height: 150vh;
}
.content-wrap--bg001.show {
    background: linear-gradient(0deg, rgba(0, 81, 204, 0.95), rgba(0, 81, 204, 0.5));
}
.content-wrap--bg.message--bg02 {
    background: linear-gradient(180deg, rgba(0, 81, 204, 0.95), rgba(0, 81, 204, 0.5));
}
.content-wrap--bg001::before {background: rgb(0, 81, 204);}


/* TAB */
@media screen and (max-width: 899px) {}
/* SP */
@media screen and (max-width: 480px) {
    .content__wrap {height: 100vh;}
}



/* _greeting */
#_greeting{
    width: 100%;
    color: #fff;
    }
#_greeting .cntInner{ position: relative;}
#_greeting p{
    padding-top: 40px;
    font-weight: bold;
    font-size: 3.6rem;
    }
.greeting--bg {background: linear-gradient(180deg, rgba(0, 81, 204, 0.95), rgba(0, 81, 204, 0.5));}
.greeting--bg::before {background: url("../img/top/message_bg01.jpg")no-repeat top center;}
/* TAB */
@media screen and (max-width: 899px) {}
/* SP */
@media screen and (max-width: 480px) {
  #_greeting p{
    padding-top: 20px;
    font-size: 2.2rem;
    }
.greeting--bg::before {
    background: url("../img/top/message_bg01_sp.jpg")no-repeat top center;
    background-size: cover;
    }
    
}



/* _message */
.message--bg::before {
    background: url("../img/top/message_bg02.jpg")no-repeat center center;
    transition: all 2s ease-in-out 1s;
    }
.message--bg .cntInner{
    position: relative;
    margin: auto;
    text-align: center;
    padding: 300px 0;
    }
#_message{
    width: 100%;
    color: #fff;
    }
#_message .cntInner{
    background: url("../img/top/message.png")no-repeat 90% 90%;
    position: relative;}
#_message h3{
    font-size: 4.0rem;
    letter-spacing: .05em;
    line-height: 1.5;
    }
#_message h4{
    font-size: 3.0rem;
    letter-spacing: .05em;
    line-height: 1.5;
    margin: 40px 0;
    }
#_message p{
    display: block;
    padding-top: 60px;
    }
.message--bg02::before {background: url("../img/top/message_bg03.jpg")no-repeat center center;}
/* TAB */
@media screen and (max-width: 899px) {
.message--bg .cntInner img{max-width: 70%;}
#_message h3{font-size: 3.0rem;}
#_message h4{
    font-size: 2.2rem;
    margin: 20px 0;
    }
#_message p{
    font-size: 1.4rem;
    padding-top: 20px;
    }
}

/* SP */
@media screen and (max-width: 480px) {
.message--bg::before {
    background: url("../img/top/message_bg02_sp.jpg")no-repeat center center;
    background-size: cover;
    }
.message--bg .cntInner{
    margin: 0 auto;
    padding:0;
    }
    .message--bg .cntInner img{max-width: 350px;}
#_message{
    width: 100%;
    color: #fff;
    }
#_message .cntInner{
    background: url("../img/top/message.png")no-repeat 90% 10%;
    background-size: 90%;
    }
#_message h3{
    font-size: 2.0rem;
    letter-spacing:0;
    line-height: 1.5;
    }
#_message h4{
    font-size: 1.8rem;
    letter-spacing: 0;
    line-height: 1.5;
    margin: 20px 0;
    }
#_message p{
    font-size: 1.4rem;
    letter-spacing: 0;
    padding-top: 20px;
    }
.message--bg02::before {background: url("../img/top/message_bg03_sp.jpg")no-repeat center center;
    background-size: cover;
    }
}



/* _about */
#_about{
    padding: 180px 0 130px;
    background: #fff;
    position: relative;
    }
#_about::after{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 98%;
    height: 100%;
    background: #ebf4fc;
    border-radius:0 0 10px 0;
    }
#_about .cntInner{
    position: relative;
    z-index: 2;
    }
#_about ._Title{position: relative;}
#_about ._Title::after{
    position: absolute;
    content: "";
    background: url("../img/top/aboutus.png") no-repeat;
    width: 656px;
    height: 186px;
    top:-50px;
    left:-60px;
    }
#_about ._Title h3{position: relative;z-index: 2;}
#_about li{
    width: 32%;
    margin-bottom: 2%;
    background: #fff;
    }

/* TAB */
@media screen and (max-width: 899px) {
    #_about ._Title::after{
    background: url("../img/top/aboutus.png") no-repeat;
    background-size: 100%;
    width: 400px;
    height: 125px;
    }
}

/* SP */
@media screen and (max-width: 480px) {
#_about{
    padding:90px 0 40px;
    }
#_about::after{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 98%;
    height: 100%;
    background: #ebf4fc;
    border-radius:0 0 10px 0;
    }
#_about ._Title::after{
    background: url("../img/top/aboutus.png") no-repeat;
    background-size: 100%;
    width: 300px;
    height: 96px;
    top:-30px;
    left:-60px;
    }
#_about li{
    width:48%;
    margin-bottom: 2%;
    } 
    
}

/* _history */
#_history{
    padding: 180px 0 100px;
    background: url("../img/top/history_bg.png")no-repeat top left;
    position: relative;
    }
#_history ._Title{position: relative;}
#_history ._Title::after{
    position: absolute;
    content: "";
    background: url("../img/top/history.png") no-repeat;
    width: 546px;
    height: 179px;
    top:-50px;
    left:-60px;
    }
#_history ._Title h3{position: relative;z-index: 2;}
#_history .historyBox{}
#_history .cntBox{
    display: table;
    }
#_history .cntTitle{
    display: table-cell;
    width: 20%;
    background: #0054c4;
    color: #fff;
    text-align: center;
    font-size: 2.0rem;
    line-height: 1.2;
    position: relative;
    }
#_history .cntTitle span{font-size: 3.0rem;}
#_history .cntTitle::after{
    position: absolute;
    content: "";
    width: 4px;
    height: 166px;
    bottom: 20px;
    left: 0;
    right: 0;
    background: url("../img/top/tensen.png")no-repeat;
    margin: auto;
    }
#_history .cntDiv{
    display: table-cell;
    width: 80%;
    background: #f4f4f4;
    padding: 40px;
    box-sizing: border-box;
    }
#_history .cntText{width: 50%;}
#_history .cntText h4{
    font-size: 2.0rem;
    line-height: 1.6;
    margin-bottom: 20px;
    }
#_history .cntText p{
    font-size: 1.6rem;
    line-height: 1.6;
    }
#_history .cntImg{width: 48%;}

.history_bg{
    background: url("../img/top/history_bg02.jpg")no-repeat center fixed;
    background-size: cover;
    height: 600px;
    }

/* TAB */
@media screen and (max-width: 899px) {
#_history ._Title::after{
    background: url("../img/top/history.png") no-repeat;
    background-size: 100%;
    width: 350px;
    height: 130px;
    left:-30px;
    }
#_history .cntTitle{font-size: 1.6rem;}
#_history .cntTitle span{font-size: 2.2rem;}
#_history .cntTitle::after{
    position: static;
    display: none;
    }
#_history .cntDiv{padding: 20px;}
#_history .cntText h4{
    font-size: 1.7rem;
    line-height: 1.5;
    margin-bottom: 10px;
    }
#_history .cntText p{font-size: 1.5rem;line-height: 1.5;}
#_history .cntImg{width: 42%;}
}

/* SP */
@media screen and (max-width: 480px) {
#_history{
    padding:90px 0 40px;
    }
#_history ._Title::after{
    background: url("../img/top/history.png") no-repeat;
    background-size: 100%;
    width: 250px;
    height: 89px;
    top:-40px;
    left:-30px;
    }
#_history .cntBox{
    display: block;
    }
#_history .cntTitle{
    display: block;
    width: 100%;
    font-size: 1.6rem;
    padding: 10px;
    }
#_history .cntTitle span{font-size: 2.0rem;}
#_history .cntDiv{
    display: block;
    width: 100%;
    padding: 20px;
    }
#_history .cntText{width: 100%;}
#_history .cntText h4{
    font-size: 1.6rem;
    margin-bottom: 10px;
    }
#_history .cntText p{
    font-size: 1.4rem;
    }
#_history .cntImg{width: 100%;padding-top: 10px;}

.history_bg{
    background: url("../img/top/history_bg02.jpg")no-repeat center;
    background-size: cover;
    height: 250px;
    }
}


/* _recruit */
#_recruit{
    padding: 140px 0 180px;
    position: relative;
    background: url("../img/top/recruit_bg.jpg")no-repeat top right ,#fff;
    }
#_recruit::after{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 68%;
    height: 60%;
    background: #ebf4fc;
    border-radius:0 0 10px 0;
    }
#_recruit .cntInner{
    position: relative;
    z-index: 2;
    }
#_recruit p{
    display: block;
    font-size: 2.2rem;
    margin: 0 0 10px;
    }
#_recruit li{
    width: 48%;
    box-sizing: border-box;
    position: relative;
    }
#_recruit li figure{overflow: hidden;}
#_recruit li::after{
    position: absolute;
    content: "";
    background: url("../img/top/crosstalk.png")no-repeat;
    width: 326px;
    height: 122px;
    bottom: 10px;
    right: 10px;
    }
#_recruit li:last-child::after{
    background: url("../img/top/recruit.png")no-repeat;
    width: 318px;
    height: 114px;
    }
#_recruit .btn{
    margin-top: 20px;
    text-transform: uppercase;
    text-align: right;
    }
#_recruit .btn span{
    position: relative;
    padding-right: 50px;
    }
#_recruit .btn span::after{
    position: absolute;
    content: "";
    width: 40px;
    height: 1px;
    top: 10px;
    right: 0;
    background: #333;
}
/* TAB */
@media screen and (max-width: 899px) {
    #_recruit ul{max-width: 550px;margin: auto;}
   #_recruit li{width: 100%;} 
    
}
/* SP */
@media screen and (max-width: 480px) {
#_recruit{
    padding: 50px 0;
    }
#_recruit .cntInner{
    position: relative;
    z-index: 2;
    }
#_recruit p{
    display: block;
    font-size: 1.6rem;
    margin: 0 0 10px;
    }

#_recruit li::after{
    background: url("../img/top/crosstalk.png")no-repeat ;
    background-size: 100%;
    width: 150px;
    height: 62px;
    bottom: 26px;
    right: 10px;
    }
#_recruit li:last-child::after{
    background: url("../img/top/recruit.png")no-repeat;
    background-size: 100%;
    width: 126px;
    height: 50px;
    }
#_recruit .btn{
    font-size: 1.4rem;
    }    
}



/* CONTACT */
#_contact{position: relative;z-index: 2;}
#_contact .cntInner{
    /*padding: 80px;*/
    box-sizing: border-box;
    color: #fff;
    text-align: center;
    }
#_contact .cntInner .banner {
    position: relative;
    overflow: hidden;
    max-width: 100%;
    height: 500px;
    }
#_contact .cntInner .banner:after {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    background: url(../img/top/entry_bg.jpg) no-repeat center center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -ms-background-size: cover;
    background-size: cover;
    -webkit-transition: all .3s ease-out;
    -moz-transition: all .3s ease-out;
    -ms-transition: all .3s ease-out;
    transition: all .3s ease-out;
    }
#_contact .cntInner .banner:hover:after {
    opacity:1;
    -moz-transform: scale(1.1);
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
    }
#_contact .cntInner .banner a {
    position: relative;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap:         wrap;
    align-items: center;
    justify-content: center;
    z-index: 1;
    height: 100%;
    text-decoration: none;
    color: #fff
    }
#_contact .cntInner .cntBox{
    width: 100%;
    max-width: 600px;
    }
#_contact .cntInner h3{
    text-transform: uppercase;
    font-size: 9.0rem;
    }
#_contact .cntInner p{
    font-size: 2.4rem;
    }
#_contact .entryForm{
    display: block;
    width: 96%;
    max-width: 600px;
    margin:30px auto 0;
    background: #cfd52f;
    border-radius: 100px;
    padding: 25px 0;
    font-size: 2.6rem;
    transition: 0.7s;
    }
#_contact .cntInner:hover .entryForm{background: #222;}
#_contact .entryForm span{
    background: url("../img/top/entry.png")no-repeat center left;
    padding: 5px 0 5px 45px;
    }

/* TAB */
@media screen and (max-width: 899px) {}
/* SP */
@media screen and (max-width: 480px) {
    #_contact .cntInner{width: 100%;}
#_contact .cntInner .banner {
    max-width: 100%;
    height: 300px;
    }
#_contact .cntInner .cntBox{
    width: 90%;
    }
#_contact .cntInner h3{
    font-size: 4.0rem;
    }
#_contact .cntInner p{
    font-size: 1.6rem;
    }
#_contact .entryForm{margin-top: 20px;}
#_contact .entryForm{
    padding: 10px 0;
    font-size: 1.6rem;
    }
#_contact .entryForm span{
    background: url("../img/top/entry.png")no-repeat center left;
    background-size: 20px;
    padding: 5px 0 5px 30px;
    }   
    
}
