:root{
    --coler-Background-Primary:#ffffff;
    --coler-Background-Accent:#072B79;
    --coler-Background-Gradient:linear-gradient(0deg,#072B79 0%,#072B79 70%,#19BAFF 100%);
    --coler-Text-Primary:#333333;
    --coler-Text-Accent:#072B79;
    --coler-Text-White:#fefefe;
    --text-Title-sans_serif: "din-2014-narrow", sans-serif;
}

/* ファーストビュー */
.mv {
  width: 100%;
  height: 100%;
  position: relative;
  top: -10vw;
  z-index: 8;
    pointer-events:none;
}
.mv-wrap {
  position: relative;
  height: 50vw;
}
video {
  display: block;
  width: 100%;
  height: 50vw;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.gradient-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right, rgba(7, 43, 121, 0.7), rgba(25, 186, 255, 0.7));
  background-size: cover; /* グラデーションを動画に合わせる */    
}
.mv_wrap{
    position: relative;
    width: 100%;
}
.mv_left{
    position: absolute;
    left:5%;
    top:11vw;
    color: #fefefe;
    z-index: 10;
    pointer-events:none;
}
.mv_left h2 > .text_under{
    display: inline-block;
    font-size: 5vw;
    line-height: 0.9em;
    letter-spacing: 0.08em;
    animation-name: leftslide;
    animation-duration:2s;
}
@keyframes leftslide
{
 0%{
     transform: translateX(-50px);
     opacity: 0;
 }

 100%{
     transform: translateX(0);
     opacity: 1;
 }
}
.mv_left h2 > .text_top{
    font-size: 1.8vw;
    letter-spacing: 0.15em;
    font-weight: 400;
    margin-bottom: 10px;
    display: inline-block;
    animation-name: fadein;
    animation-duration:2s;
    animation-delay: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}
@keyframes fadein
{
 0%{
  opacity: 0;
 }

 100%{
  opacity: 1;
 }
}
.bordering{
    width: 60%;
    font-weight: bold;
    font-size:2.3vw;
    color:rgba(0,0,0,0.0);
    padding: 30px 0 20px 0;
    -webkit-text-stroke: 1px #FFF;
    opacity: 0.5;
    font-family: var(--text-Title-sans_serif);
}
.catch{
    position: absolute;
    font-size:5vw;
    line-height: 1em;
    font-family: var(--text-Title-sans_serif);
    letter-spacing: 0.05em;
    animation-name: fadein;
    animation-duration:2s;
    animation-delay: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}
.mv_right{
    width: 55%;
    margin-top: 10vw;
    position: absolute;
    top:0;
    right: 0;
    z-index: 5;
}
.mv_right ul{
    width: 100%;
    display: flex;
    justify-content: end;
}
.mv_right ul li img{
    width: 96%;
}
.mv_right ul li:nth-child(3) {
    animation: fadeup3 2s cubic-bezier(0.33, 1, 0.68, 1) forwards;
    opacity: 0;
}
.mv_right ul li:nth-child(2) {
    margin-top: 8vw;
    animation: fadeup2 2s cubic-bezier(0.33, 1, 0.68, 1) forwards;
    opacity: 0;
}
.mv_right ul li:nth-child(1) {
    margin-top: 15vw;
    animation: fadeup 2s cubic-bezier(0.33, 1, 0.68, 1) forwards;
    opacity: 0;
}
@keyframes fadeup {
  0% {
    transform: translateY(50px);
    opacity: 0;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeup2 {
  0% {
    transform: translateY(5px);
    opacity: 0;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeup3 {
  0% {
    transform: translateY(-50px);
    opacity: 0;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (width < 768px){
    .mv-wrap {
        height: 120vw;
    }
    video {
        height: 120vw;
    }
    .mv_right {
        width: 98%;
        margin-top: 60vw;
    }
    .mv_left{
        top:15vw;
        left: 5%;
    }
    .mv_left h2 > .text_top {
        font-size: 3vw;
    }
    .mv_left h2 > .text_under {
        font-size: 7.8vw;
    }
    .catch {
        font-size: 7.5vw;
    }
    .bordering {
        width: 90%;
        font-size: 3.5vw;
        padding: 10px 0;
        
}
}
@media (width < 500px){
    .mv_left{
        top:20vw;
    }
    .mv_left h2 > .text_top {
        font-size: 3.5vw;
    }
    .mv_left h2 > .text_under {
        font-size: 8.5vw;
    }
    .catch {
        font-size: 8vw;
    }
}

/*school*/

.school{
    position: relative;
    background: url("../images/common/school_bg.jpg") no-repeat;
    background-size: cover;
    background-position: center right;
    top:-10.1vw;
    z-index: 5;
    padding: 8.5vw 0 0 0; 
    color: var(--coler-Text-Primary);
    letter-spacing: 0.1em;    
}
.school_tit{
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.school_tit.on{
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}
.school_wrap{
    width: 60%;
}
.school h2{
    background: var(--coler-Background-Accent);
    color: var(--coler-Text-White);
    padding-left:10%;
}
.school h2 span{
    display: inline-block;
    font-size: 4.5vw;
    font-family: "din-2014-narrow", sans-serif; 
    font-weight: 600;
    margin-right: 20px;
     letter-spacing: 0;
}

.school .school_text{
    padding: 2vw 0 8vw 10%;
}
.school .school_text h3{
    font-size: 1.6vw;
    font-weight: 500;
    margin-bottom: 1.5em;
    line-height: 1.7em;
}
.school .school_text p{
    width: 65%;
    font-size: 1vw;
    line-height: 1.8em;
    margin-bottom: 1em;
}
.school .btn{
    margin-top: 3%;
}
@media (width < 1300px){
    .school_wrap{
        width: 80%;
}
    .school .school_text h3{
        font-size: 1.8vw;
    }
    .school .school_text p,.school .btn{
        font-size: 1.4vw;
    }
}
@media (width < 1000px){

    .school .school_text h3{
        font-size: 2.1vw;
    }
    .school .school_text p {
        width: 90%;
    }
    .school .school_text p,.school .btn{
        font-size: 1.7vw;
    }
}
@media (width < 768px){
    .school{
        position: relative;
        background-color:rgba(255,255,255,0.5);
        background-blend-mode:lighten;
        padding-bottom: 5%;
        top:-15vw;
    }
    .school h2{
        font-size: 26px;
        padding:2% 5%;
        margin-bottom: 5%;
    }
    .school h2 span{
        font-size: 40px;
        display: block;
    }
    .school_wrap{
        width: 100%;
    }
    .school .school_text{
    padding: 2vw 5%;
    }
    .school .school_text h3{
        font-size: 20px;
    }
    .school .school_text p {
        width: 100%;
    }
    .school .school_text p,.school .btn{
        font-size: 15px;
    }
}
@media (width < 500px){
    .school{
        top:-17.5vw;
    }
}

/*h2共通*/
.business h2,.recruit h2{
    position: relative;
    display: flex; /* フレックスボックスを有効化 */
    flex-direction: column;
    color: var(--coler-Text-White);
    padding: 5% 0;
    font-size: 5vw;
    font-family: var(--text-Title-sans_serif);
}
.business h2 span,.recruit h2 span,.news h2 span{
    display: block;
    font-size: 1.5vw;
}
.business h2:after,.recruit h2:after {
    position: absolute;
    top: 40%; /* 垂直方向の中央寄せ */
    left: 50%; /* 水平方向の中央寄せ */
    transform: translate(-50%, -50%); /* 中央に配置 */
    font-size: 12vw; /* 背景テキストのフォントサイズ */
    font-family: var(--text-Title-sans_serif);
    color:rgba(0,0,0,0); /* 背景テキストの色（透明度含む） */
    -webkit-text-stroke: 1px #FFF;
    white-space: nowrap; /* テキストの折り返し防止 */
    opacity: 0.3;  
}
.news h2{
    position: relative;
    display: flex; /* フレックスボックスを有効化 */
    flex-direction: column;
    color: var(--coler-Text-Accent);
    padding: 5% 0;
    font-size: 5vw;
    font-family: var(--text-Title-sans_serif);
    justify-content: center; /* 水平方向の中央寄せ */
    align-items: center; /* 垂直方向の中央寄せ */
}

@media (width < 1000px){
    .business h2,.recruit h2,.news h2{
        font-size: 7vw;
    }
    .business h2 span,.recruit h2 span,.news h2 span{
        font-size: 2vw;
    }
}
@media (width < 768px){
    .business h2,.recruit h2,.news h2{
        font-size: 50px;
        margin: 5% 0 10% 0;
    }
    .business h2 span,.recruit h2 span,.news h2 span{
        font-size: 20px;
    }
    .business h2:after,.recruit h2:after {
         font-size: 15vw;
    }
}

/*business*/

.business{
    width: 100%;
    height: auto;
    background: var(--coler-Background-Gradient);
    margin-top: -10.5vw;
    overflow-x: hidden;
}
.business h2{
    justify-content: center; /* 水平方向の中央寄せ */
    align-items: center; /* 垂直方向の中央寄せ */
}
.business h2:after {
    content: 'OUR BUSINESS'; 
}
.business .first{
    background: url("../images/top/business_img_top.jpg") no-repeat;
    background-position: right;
    background-size: 50%;
    padding: 5% 0;
    line-height: 2em;
    letter-spacing: 0.1em;
}
.business .first_text{
    border-left: 2px solid #CDD010;
    padding-left: 5%;
    font-size: 1vw;
}
.business .first_text h3{
    font-size: 1.5vw;
    font-weight: 500;
    margin-bottom: 5%;
}
.business .first_text_wrap{
    background: var(--coler-Background-Accent);
    color: var(--coler-Text-White);
    width: 55%;
    padding: 3% 8% 3% 7%;
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.business .first_text_wrap.on,.recruit_wrap.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}
.business .first_text span{
    font-size: 0.8em;
    vertical-align: top;
}
.business .first_text ul{
    margin-top: 5%;
    font-size: 0.8vw;
}
.business .second{
    background: url("../images/top/business_img_bottom.jpg") no-repeat;
    background-position: left;
    background-size: 50%;
    padding: 5% 0;
    line-height: 1.7em;
    margin-top: 5%;
    letter-spacing: 0.1em;
}
.business .second_text{
    border-right: 2px solid #CDD010;
    padding-right: 5%;
    font-size: 1vw;
}
.business .second_text h3{
    font-size: 1.5vw;
    font-weight: 500;
    margin-bottom: 5%;
}
.business .second_text p{
    margin-bottom: 1em;
}
.business .second_text_wrap{
    background: var(--coler-Background-Accent);
    color: var(--coler-Text-White);
    width: 55%;
    padding: 3% 8% 3% 7%;
    margin: 0 0 0 auto;
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.business .second_text_wrap.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}
.business .construction{
    width: 100%;
    display: flex;
    justify-content: space-between;
    margin-top: 5%;
}
.business .construction li{
    width: 33.333%;
    height: auto;
    margin-bottom: 0;
    padding-bottom: 0;
}
.business .construction li img{
    width: 100%;
    vertical-align:top;
}
@media (width < 1300px){
    .business .first_text h3,.business .second_text h3{
        font-size: 1.8vw;
    }
    .business .first_text p,.business .second_text p,.business .btn{
        font-size: 1.4vw;
    }
    .business .first_text ul{
        font-size: 1.2vw;
    }
    .business .first, .business .second{
        padding: 10% 0 0 0;
    }
}
@media (width < 1000px){
    .business .first,.business .second{
        background-position: top right;
        background-size: 100%;
    }
    .business .first_text_wrap{
        width: 90%;
        margin: 50vw auto 0 auto;
    }
    .business .second_text_wrap{
        width: 90%;
        margin: 60vw auto 0 auto;
    }

    .business .first_text h3,.business .second_text h3{
        font-size: 2.1vw;
    }
    .business .first_text p,.business .second_text p,.business .btn{
        font-size: 1.7vw;
    }
    .business .first_text ul{
        font-size: 1.5vw;
    }
}
@media (width < 768px){
    .business{
        margin-top:-15vw;
    }
    .business .first_text_wrap,.business .second_text_wrap{
        padding: 5%;
    }
    .business .first_text,.business .second_text{
        border: none;
        padding: 0;
    }
    .business .first_text h3,.business .second_text h3{
        font-size: 20px;
    }
    .business .first_text p,.business .second_text p,.business .btn{
        font-size: 15px;
    }
    .business .first_text ul{
        font-size: 13px;
    }
}
@media (width < 500px){
    .business{
        margin-top:-17.5vw;
    }
}

/*recruit*/

.recruit{
    background: url("../images/top/recruit_bg.jpg") no-repeat;
    background-size: cover;
    background-position: right;
    overflow-x: hidden;
}
.recruit h2{
    justify-content: flex-start;
    margin-bottom: 15%;
}
.recruit h2:after {
    content: 'RECRUIT'; 
}
.recruit_wrap{
    width: 50%;
    height: 100%;
    background: linear-gradient(-90deg,rgba(25,46,122,0.7) 50%,rgba(25,186,255,0.7) 100%);
    padding: 5% 5% 8% 5%;
    letter-spacing: 0.1em;
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.recruit_wrap h3{
    font-size: 1.5vw;
    font-weight: 500;
    margin: 5% 0;
    color: var(--coler-Text-White);
}
.recruit_wrap p{
    margin-bottom: 1em;
    color: var(--coler-Text-White);
    line-height: 1.7em;
    font-size: 1vw;
}
.recruit_wrap .btn{
    margin-top: 5%;
}
@media (width < 1300px){
    .recruit_wrap h3{
        font-size: 1.8vw;
    }
    .recruit_wrap p,.recruit .btn{
        font-size: 1.4vw;
    }
}
@media (width < 1000px){
    .recruit h2 {
        justify-content:center;
        margin-bottom: 5%;
        text-align: center;
    }
    .recruit_wrap{
        width: 100%;
        background: linear-gradient(-90deg,rgba(25,46,122,0.8) 50%,rgba(25,186,255,0.8) 100%);
    }
    .recruit_wrap h3{
        font-size: 2.1vw;
    }
    .recruit_wrap p,.recruit .btn{
        font-size: 1.7vw;
    }  
}
@media (width < 768px){
    .recruit_wrap h3{
        font-size: 20px;
    }
    .recruit_wrap p,.recruit .btn{
        font-size: 15px;
    }

}

/* news */

.news ul {
  width: 90%;
  margin: 5% auto 2% auto;
}
.news ul li {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #192E7A;
  align-items: center;
    padding: 1.5% 0;
    font-size: 1vw;
}
.news ul li a {
  color: var(--coler-Text-Primary);
  text-decoration: none;
}
.news ul li a:hover {
  color: #19BAFF;
  text-decoration: underline;
}
.news .day {
  width: 20%;
  text-align: left;
}
.news .category{
  width: 15%;
  background: #192E7A;
  color: var(--coler-Text-White);
  padding: 8px;
  margin-right: 5%;
  text-align: center;
    border-radius: 50px;
}
.news .content {
  width: 70%;
  text-align: left;
}
.news .btn{
    width: 20%;
    margin: 0 auto;
}
.news .align_center{
    width: 100%;
    margin: 2% 0 10% 0;
}
@media (width < 1300px){
    .news ul li, .news .btn{
        font-size: 1.4vw;
    }
    .news .btn-c{
         width: 27%;
    }
}
@media (width < 1000px){
    .news ul li, .news .btn{
        font-size: 1.7vw;
    }
    .news .btn-c{
         width: 33%;
    }
}
@media (width < 768px){
    .news ul li, .news .btn{
        font-size: 15px;
    }
    .news .btn-c{
         width: 50%;
    }
    .news .category{
        width: 30%;
    }
}
@media screen and (max-width: 630px) {

.news ul li {
    flex-wrap: wrap; 
    align-items: center;
    padding: 5% 0;
}
.news .day {
  width: 43%;
    margin-bottom: 3%;
}
.news .category {
  width: 45%;
  margin-bottom: 3%;
  text-align: center;
}
.news .content {
    width: 100%;
    }

.news .btn-c{
         width: 80%;
    }
}