@charset "utf-8";

/* topBg */
.topBg{
    margin-top: 169px;
    position: relative;
    min-height: 600px;
}
.topBg .bgBox{
    position: absolute;
    top: 0;
    left: calc(50% - 960px);
}
.secCmnTit {
    padding-top: 0;
    position: relative;
    z-index: 2;
}
.secCmnTit .tit {
    letter-spacing: 11px;
    margin-right: -13px;
    margin-top: -50px;
    z-index: 10;
}
.secCmnTit .txt {
    font-weight: bold;
}
.secCmnTit .spanTit::before{
    position: absolute;
    content: "";
    width: 53px;
    height: 42px;
    left: -18px;
    top: 10px;
}
.secCmnTit .spanTit.lazyloaded::before{
   background: url(../img/index/iconTit01.png) center top / cover;
}

@media only screen and (max-width:767px){
    .topBg{
        margin-top: 73px;
        min-height:auto;
        z-index: 2;
    }
    .topBg .bgBox{
        position: static;
    }
    .secCmnTit .tit {
        margin-top: 36px;
        margin-right: 0;
        letter-spacing: 3.5px;
    }
    .secCmnTit .spanTit::before{
        width: 20px;
        height: 17px;
        left: -10px;
        top: 0px;
    }
    .secCmnTit .spanTit.lazyloaded::before{
       background: url(../img/index/iconTit01_sp.png) center top / cover;
    }
    .secCmnTit .txt {
        letter-spacing: 2.5px;
    }
}

/* secAbout */
.secAbout{
    position: relative;
}
.secAbout::before{
    position: absolute;
    content: "";
    width: 100%;
    height: 1418px;
    left: 0;
    /* bottom: -217px; */
    bottom: calc(0% - 120px);
}
.secAbout.lazyloaded::before{
    background: url(../img/about_us/bgAbout.png) center top / cover;
}
.secAbout .flexBox{
    display: flex;
    position: relative;
    z-index: 10;
    padding-top: 118px;
}
.secAbout .txtBox{
    width: calc(100% - 361px);
    margin: -13px 0 0 177px;
}
.secAbout .txt{
    font-size: 20px;
    font-weight: bold;
    line-height: 2.25;
    color: #fff;
    letter-spacing: 4.5px;
}
.secAbout .txt + .txt{
    margin-top: 45px;
}

@media only screen and (max-width:1440px){
    .secAbout .txt {
        letter-spacing: 3.5px;
    }
}

@media only screen and (max-width:767px){
    .secAbout{
        height: auto;
        margin-top: 38px;
        padding-bottom: 37.5vw;
    }
    .secAbout::before{
        width: 100%;
        height: 1102px;
        left: 0;
        bottom: 0;
    }
    .secAbout.lazyloaded::before{
        background: url(../img/about_us/bgAbout_sp.png) center bottom no-repeat #fff;
        background-size: 100% auto;
    }
    .secAbout .flexBox{
        display: block;
        padding-top:50px;
        width: calc((305 / 375)* 100%);
        margin: 0px auto 0;
        border-top: 1px solid #e8e8e8;
    }
    .secAbout .icon{
        width: 135px;
    }
    .secAbout .txtBox{
        width: 100%;
        margin: 27px 0 0 0px;
    }
    .secAbout .txt{
        font-size: 13px;
        line-height: 2.3;
        letter-spacing: 0.5px;
    }
    .secAbout .txt + .txt{
        margin-top: 30px;
    }
}

@media only screen and (max-width:374px){
    .secAbout .txt {
        font-size: 12px;
    }
}
@media only screen and (max-width:359px){
    .secAbout .txt {
        font-size: 11px;
        line-height: 2.3;
        letter-spacing: 0px;
    }
}

/* secList */
.secList{
    /* margin-top: 367px; */
    margin-top: calc(140px + 120px);
}
.secList .list{
    max-width: calc(100% - 100px);
}
.secList .item{
    position: relative;
    display: flex;
    min-height: 720px;
}
.secList .item:nth-child(n+2){
    margin-top: 120px;
}
.secList .leftImg{
    position: absolute;
    content: "";
    left: calc(50% - 960px);
    top: 0;
}
.secList .item:nth-child(2n) .leftImg{
    left: unset;
    right: calc(50% - 960px);
}
.secList .txtBox{
    margin: 70px 0 0 auto;
    position: relative;
    width: 48%;
    padding: 70px 0 0 70px;
    background: #fff;
}
.secList .item:nth-child(2n) .txtBox{
    margin: 70px auto 0 0;
    padding: 70px 50px 0 0;
}
.secList .tit{
    font-size: 30px;
    font-weight: bold;
    color: #1f85ba;
    letter-spacing: 3px;
    position: relative;
    z-index: 1;
}
.secList .item:nth-child(2n) .tit{
    color: #16c45c;
    letter-spacing: normal;
}
.secList .spanTit{
    position: relative;
}
.secList .spanTit::before{
    position: absolute;
    content: "";
    width: 41px;
    height: 32px;
    left: -15px;
    top: -12px;
    z-index: -1;
}
.secList .spanTit.lazyloaded::before{
    background: url(../img/about_us/iconList01.png) center top / cover;
}
.secList .txt{
    font-size: 16px;
    font-weight: bold;
    line-height: 2.25;
    margin-top: 40px;
    letter-spacing: 1px;
}
.secList .txt + .txt{
    margin-top: 35px;
}

/* ipad */
.isDesktopIpad .secList .txt {
    font-size: 14px;
}

@media only screen and (max-width:1500px){
    .secList .leftImg::before {
        width: 300px;
    }
}

@media only screen and (max-width:767px){
    .secList{
        margin-top: 50px;
    }
    .secList .list{
        max-width: 100%;
    }
    .secList .item{
        display: block;
        min-height: auto;
    }
    .secList .item:nth-child(n+2){
        margin-top: 40px;
    }
    .secList .leftImg{
        position: relative;
        left: 0;
    }
    .secList .item:nth-child(2n) .leftImg {
        left: unset;
        right: 0;
    }
    .secList .leftImg::before{
        height: 30px;
        width: 81.335%;
      right: unset;
      left: calc(50% - 40.6675%);
       top: unset;
       bottom: 0;
    }
    .secList .item:nth-child(2n) .leftImg::before{
        left: calc(50% - 40.6675%);
    }
    .secList .txtBox,.secList .item:nth-child(2n) .txtBox{
        width: calc((345 / 375)* 100%);
        margin: -30px auto 0;
        padding: 30px 20px 0;
    }
    .secList .tit{
        font-size: 18px;
        letter-spacing: 0px;
    }
    .secList .spanTit::before{
        width: 20px;
        height: 17px;
        left: -8px;
        top: -8px;
    }
    .secList .txt{
        font-size: 12px;
        line-height: 2.16;
        margin-top: 18px;
        letter-spacing: 0px;
    }
    .secList .txt + .txt{
        margin-top: 15px;
    }
    .secList .tit img{
        width: 139px;
    }
}

/* secHistory */
.secHistory{
    background: #333;
    padding: 115px 0 0;
    margin-top: 120px;
    height: 2383px;
}
.secHistory .titBox{
    text-align: center;
    color: #fff;
}
.secHistory .titEng{
    font-size: 40px;
    position: relative;
    letter-spacing: 5px;
}
.secHistory .titEng::before{
    position: absolute;
    content: "";
    background: #fff;
    width: 30px;
    height: 1px;
    left: calc(50% - 15px);
    bottom: -19px;
}
.secHistory .titJpn{
    font-size: 16px;
    margin-top: 40px;
    letter-spacing: 1px;
}
.secHistory .historyBox{
    position: relative;
}
.secHistory .historyBox::before{
    position: absolute;
    content: "";
    width: 1px;
    height: 1944px;
    left: calc(50% - 0.5px);
    top: 77px;
    background: #fff;
}
.secHistory .boxCover{
    position: absolute;
    left: -20px;
    top: 0;
    max-width: 420px;
    margin-top: 23px;
}
.secHistory .boxCover.box02{
    left: unset;
    right: 82px;
    margin-top: 690px;
}
.secHistory .boxCover.box03{
    margin-top: 1360px;
}
.secHistory .txtBox{
    color: #fff;
    margin: -31px 0 0 17px;
}
.secHistory .boxTit{
    font-size: 40px;
    line-height: 1.5;
    letter-spacing: 6px;
}
.secHistory .boxTxt{
    font-size: 18px;
    line-height: 1.5;
    font-weight: bold;
    margin-top: 2px;
}
.secHistory .box{
    margin-top: 55px;
}

/* ipad */
.isDesktopIpad .secHistory .boxTxt {
    font-size: 16px;
}


@media only screen and (max-width:767px){
    .secHistory{
        padding: 47px 0 82.5px;
        margin-top: 73px;
        height:auto;
    }
    .secHistory .titEng{
        font-size: 30px;
        letter-spacing: 3.5px;
    }
    .secHistory .titEng::before{
       display: none;
    }
    .secHistory .titJpn{
        font-size: 14px;
        margin-top: 16px;
        letter-spacing: 2px;
    }
    .secHistory .historyBox::before{
        width: 1px;
        height: 1392px;
        top: -1px;
        left: 35px;
    }
    .secHistory .boxCover{
        position: static;
        max-width: 100%;
        width: calc((265 / 375)* 100%);
        margin: 40px auto 0;
    }
    .secHistory .boxCover.box02{
        margin-top: 30px;
    }
    .secHistory .boxCover.box03{
        margin-top: 30px;
    }
    .secHistory .txtBox{
        margin: -38px 0 0 12px;
    }
    .secHistory .boxTit{
        font-size: 38px;
        letter-spacing: 6px;
    }
    .secHistory .boxTxt{
        font-size: 12px;
        margin-top: 2px;
    }
    .secHistory .box{
        margin-top: 30px;
    }
    .secHistory .box .img{
        width: 79.25%;
    }
}


.internal .secContact {
    padding-top: 100px;
}
@media only screen and (max-width:767px){
    .internal .secContact {
        padding-top: 60px;
    }
}

/* timeline */
.timeline{
    display: flex;
    margin: 0 auto;
    flex-wrap: wrap;
    flex-direction: column;
    width: 1200px;
    position: relative;
}
.timeline__content-title{
    font-weight: normal;
    font-size: 40px;
    margin: -10px 0 10px 12px;
    transition: 0.4s;
    letter-spacing: 3.5px;
    padding: 0 10px;
    position: relative;
    text-shadow: 0px 0px 5px rgba(0,0,0,0.2);
}
.timeline-item .timeline__content-title:before{
    content: "";
    width: 1px;
    height: 10px;
    position: absolute;
    background: #fff;
    top: 0;
    left: calc(100% + 39px);
    opacity: 0;
}
.timeline-item.is-right .timeline__content-title:before{
    left: -93px;
}
.timeline-item--active .timeline__content-title:before{
    top: calc(50% - 5px);
    transition: 0.3s all 0.2s;
    opacity: 1;
}
.timeline__content-desc{
    margin: 0 0 0 35px;
    font-size: 16px;
    letter-spacing: 2px;
    line-height: 1.875;
}
.timeline:before{
    position: absolute;
    left: 50%;
    width: 1px;
    height: 100%;
    margin-left: -1px;
    content: "";
    background: rgba(255, 255, 255, 0.2);
}
.timeline-container.scrollBackground .timeline-item .timeline__content-title:before{
    display: none;
}
@media only screen and (max-width: 767px){
    .timeline{
        width: 100%;
    }
    .timeline:before{
        left: 20px;
        height: calc(100% + 40px);
    }
    .timeline-item .timeline__content-title:before{
        left: -21px !important;
    }
    .timeline__content-desc{
        font-size: 12px;
        letter-spacing: 0.5px;
        margin-left: 2px;
    }
}
@media only screen and (max-width: 374px){
     .timeline:before{
        left: 15px;
     }
     .timeline-item .timeline__content-title:before{
        left: -26px !important;
     }
}
.timeline-item{
    padding: 26px 0;
    transition: 0.5s;
    width: calc(50% - 40px);
    position: relative;
    transform: translateY(0);
}
.timeline-container.scrollBackground .timeline-item{
    opacity: 1;
    filter: none;
}
.timeline-item:first-child{
    padding-top: 0;
}
.timeline-item--active:first-child{
    transform: translateY(0);
}
.timeline-item.is-right{
    align-self: flex-end;
    padding-left: 40px;
}
.timeline-item.is-right:before{
    text-align: right;
    left: -40px;
}
.timeline-item--active{
    opacity: 1;
    transform: translateY(40px);
}
.timeline-container.scrollBackground .timeline-item--active{
    transform: none;
}
.timeline-container:not(.scrollBackground) .timeline-item--active .timeline__content-title{
    margin: -22px 0 13px 12px;
}
@media only screen and (max-width: 767px){
    .timeline-item.is-right{
        padding: 20px 20px 40px 40px;
    }
    .timeline-item{
        align-self: baseline !important;
        width: 100%;
        padding: 20px 20px 40px 40px;
    }
    .timeline-item:last-child{
        padding-bottom: 40px;
    }
    .timeline__content-title{
        font-size: 38px;
        margin: 0 0 10px;
        padding: 0;
    }
    .timeline-item__content-title,
    .timeline-container:not(.scrollBackground) .timeline-item--active .timeline__content-title{
        margin: -24px 0 10px 0;
        padding: 0;
    }
    .timeline-item--active{
        transform: translateY(20px);
    }
}
@media only screen and (max-width: 374px){
    .timeline-item,.timeline-item.is-right{
        padding: 20px 20px 40px 40px;
    }
}
.timeline__content{
    width: 100%;
}
.timeline__img{
    max-width: 100%;
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.4);
}
.timeline-container{
    width: 100%;
    position: relative;
    padding: 115px 0 105px;
    transition: 0.3s ease 0s;
    background-attachment: fixed;
    background-size: cover;
    color: #fff;
    margin-top: 120px;
}
.timeline-container.scrollBackground{
    background: #15171b !important;
}
.timeline-header{
    width: 100%;
    text-align: center;
    margin-bottom: 78px;
    position: relative;
}
.timeline-header__title{
    font-size: 40px;
    font-weight: normal;
    margin: 0;
    letter-spacing: 4px;
    color: inherit;
    position: relative;
}
.timeline-header__title::after{
    position: absolute;
    content: "";
    width: 30px;
    height: 1px;
    background: #fff;
    left: calc(50% - 15px);
    bottom: -19px;
}
.timeline-header__subtitle{
    font-size: 16px;
    letter-spacing: 2px;
    margin: 40px 0 0;
    color: inherit;
}
.timeline__content + .timeline__content{
    margin-top: 36px;
}
.timeline__img + .timeline__content-desc{
    margin-top: 10px;
}
@media only screen and (max-width:767px){
    .timeline__img{
        width: 63.493%;
        height: auto;
    }
    .timeline-container{
        padding: 55px 0 75px;
        margin-top: 60px;
    }
    .timeline-header{
        margin-bottom: 30px;
    }
    .timeline-header__title{
        font-size: 22px;
        letter-spacing: 1px;
    }
    .timeline-header__subtitle{
        font-size: 12px;
        letter-spacing: 1px;
        margin: 28px 0 0 0;
    }
    .timeline__content + .timeline__content{
        margin-top: 15px;
    }
    .timeline-header__title::after{
        bottom: -15px;
    }
}


.timeline-container .txtItem{
    display: flex;
    align-items: flex-start;
    padding-left: 20px;
}
.timeline-container .txtItem + .txtItem{
    margin-top: 15px;
}
.timeline-container .txtMonth,.timeline-container .txtInner{
    font-size: 18px;
    line-height: 1.66;
    color: #fff;
    font-weight: 700;
    letter-spacing: 2px;
}
.timeline-container .txtMonth{
    flex-shrink: 0;
}
@media only screen and (max-width:767px){
    .timeline-container .txtItem{
        display: flex;
        align-items: flex-start;
        padding-left: 0;
    }
    .timeline-container .txtItem + .txtItem{
        margin-top: 15px;
    }
    .timeline-container .txtMonth,.timeline-container .txtInner{
        font-size: 13px;
        letter-spacing: 1px;
    }
}
@media only screen and (max-width:359px){
    .timeline-container .txtMonth,.timeline-container .txtInner{
        font-size: 12px;
        letter-spacing: normal;
    }
}