@charset "UTF-8";
/* CSS Document */

#nav-overlay .navibox li a[data-hover="HOME"].on{
    font-weight: 800;
}
#mainimage{
    background-color: #f4f4f4;
    position: relative;
    overflow: hidden;
}
#svgmouse,#mainimage .svg{
    width: 100%;
}
#mainimage .svg{
}
#mainimage svg{
    width: 100%;
    transform-origin: center center;
    transform: scale(1.05);
    vertical-align: bottom;
}
#mainimage svg .st0 {
        stroke-linecap: round;
        stroke-width: 2px;
      }
#mainimage svg .st0, #mainimage svg .st1 {
        fill: none;
        stroke: #aaa;
        stroke-linejoin: round;
      }
#mainimage svg .st1 {
        stroke-dasharray: 5 3;
      }

#mainimage .container{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 4em;
    text-align: left;
    color: #000;
}
#mainimage h2{
    font-family: 'LINESeedJP', sans-serif;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.4;
}
#mainimage .en_title{
    display: inline-block;
    text-align: right;
}
#mainimage .en_title p{
    font-family: 'Jost', sans-serif;
    font-weight: 700;
    line-height: 1;
}
#mainimage .en_title .title_l{
    font-size: 8rem;
}
#mainimage .en_title .title_m{
    font-size: 5rem;
}
#mainimage .en_title .title_m::before{
    content: "";
    display: inline-block;
    border-bottom: 2px solid #000;
    width: 1.5em;
    vertical-align: middle;
    margin: 0 0.3em 0.2em 0;
}
#mainimage .read{
    font-size: 1.8rem;
    line-height: 1.8;
    margin: 2em 0 2.5em 0;
}
#mainimage #news{
    background-color: rgba(0,0,0,0.7);
    border-radius: 2em;
    display: flex;
    align-items: center;
    padding: 0.6em 2em;
    width: 54em;
}
#mainimage #news .title{
    color: #ffa800;
    font-family: 'Jost', sans-serif;
    font-weight: 700;
    line-height: 1;
    width: 10em;
    white-space: nowrap;
}
#mainimage #news .info{
    position:relative;
    flex: 1;
}
#mainimage #news .info ul{
    width: 42em;
    color: #fff;
    font-size: 1.5rem;
}
#mainimage #news .info li{
    float:left;
    min-width: 42em;
    white-space: nowrap;
}
#mainimage #news .info a{
    color: #fff;
}
#mainimage #news .info a:hover{
    text-decoration: underline;
}



.indexbox h2{
    font-size: 10rem;
    font-weight: 600;
    line-height: 1;
    color: #000;
}
.indexbox .title{
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1;
    color: #000;
    padding-top: 0.5em;
}
.indexbox h3{
    font-size: 4.6rem;
    font-weight: 500;
    line-height: 1.4;
    padding: 1em 0;
}
.indexbox .read{
    font-size: 1.8rem;
    line-height: 1.8;
    width: 50%;
    text-align: justify;
}
.indexbox .btn{
    margin-top: 4em;
}
.indexbox .btn a{
    position: relative;
    overflow: hidden;
    display: block;
    color: #fff;
    background-color: #000;
    width: 13em;
    text-align: center;
    font-weight: 600;
    border-radius: 0.4em;
    padding: 0.5em 0;
    background-image: linear-gradient(90deg, #000 0%, #000 50%, #41a4fd 50%, #0ef4ff 100%);
  background-size: 200% 100%;
      transition: all 0.3s ease-out;
}
.indexbox .btn a span{
    position: relative;
    z-index: 3;
}
.indexbox .btn a:hover{
    background-position: -100%;
}

#about{
    position: relative;
    padding: 10em 0;
}
#about .container{
    position: absolute;
    z-index: 3;
    text-align: left;
    left: 0;
    right: 0;
    top: 50%;
  transform: translateY(-50%);
}
#about .images{
    position: relative;
    width: 45%;
    margin: 0 0 0 auto;
}
#service{
    background-color: #f8f7f1;
    padding: 10em 0;
}
#service h2,#service .title{
    text-align: left;
}
#service ul{
    display: flex;
    justify-content:space-between;
}
#service .btn{
    margin-right: 2%;
}
#service .box{
    margin-top: 4em;
    background-color: #2a3140;
    color: #fff;
    padding: 5em 2em 4em 2em;
    border-radius: 1em;
    width: 23%;
}
#service .icon{
    font-size: 7rem;
    line-height: 1;
}
#service h3{
    font-size: 2.4rem;
    padding: 1em 0 1.5em 0;
}
#service .txt{
    text-align: justify;
}

#works{
    position: relative;
    padding: 10em 0 7em 0;
}
#works .back{
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1;
    width: 80%;
    max-width: 90em;
}
#works .container{
    text-align: left;
}
#works h3{
    padding-top: 1.5em;
}
#works ul{
    border-top: 1px solid #cdcdcd;
    display: inline-block;
    margin-bottom: 3em;
}
#works li{
    border-bottom: 1px solid #cdcdcd;
    font-size: 2.4rem;
    padding: 0.6em 2em 0.6em 1em;
    text-indent: -1em;
}

#photo {
  overflow: hidden;
    padding-bottom: 1em;
}
#photo .gridbox {
  display: flex;
    width: 320em;
  animation: scrollLoop 50s linear infinite;
}
#photo .gridbox img{
    width: 24em;
    margin: 0 1em;
}

/* 横スクロールアニメーション */
@keyframes scrollLoop {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}


@media only screen and (max-width: 768px) {
    
#mainimage{
}
    #svgmouse{
        transform: translateX(-10%)!important;
    }
#svgmouse,#mainimage .svg{
    width: 100%;
    height: 80vh;
}
#mainimage .svg{
}
#mainimage svg{
    width: auto;
    height: 100%;
}
#mainimage .container{
    left: 0;
    right: 0;
    bottom: 2em;
}
#mainimage h2{
    font-size: 2.3rem;
}
#mainimage .en_title{
}
#mainimage .en_title .title_l{
    font-size: 5rem;
}
#mainimage .en_title .title_m{
    font-size: 3.6rem;
}
#mainimage .read{
    font-size: 1.8rem;
    line-height: 1.8;
    margin: 2em 0 2.5em 0;
}
#mainimage #news{
    display: block;
    padding: 0.8em 1.2em;
    width: 100%;
      border-radius: 1em;
}
#mainimage #news .title{
    padding-bottom: 0.5em;
}
#mainimage #news .info{
    height: auto!important;
}
#mainimage #news .info ul{
    width: 100%!important;
}
#mainimage #news .info li{
    float:left;
    min-width: auto;
    white-space: wrap;
    font-size: 1.5rem;
    line-height: 1.5;
}



.indexbox h2{
    font-size: 7rem;
}
.indexbox .title{
    font-size: 2.2rem;
    line-height: 1.2;
    padding-top: 0.6em;
}
.indexbox h3{
    font-size: 3.4rem;
}
.indexbox .read{
    width: 100%;
}
.indexbox .btn{
    margin-top: 4em;
}

#about{
    padding: 6em 0;
}
#about .container{
    position: relative;
    left: 0;
    right: 0;
    top: auto;
  transform: translateY(0);
}
#about .images{
    width: 95%;
    margin: 3em 0 0 auto;
}
#service{
    padding: 6em 0;
}
#service h2,#service .title{
    text-align: left;
}
#service ul{
    display: block;
}
#service .btn{
    margin-right: 0;
}
#service .box{
    margin-top: 3em;
    padding: 3em 1.5em 2.5em 1.5em;
    width: 100%;
}
#service .icon{
    font-size: 6rem;
}
#service h3{
    font-size: 2.2rem;
}

#works{
    padding: 10em 0 6em 0;
}
#works .back{
    width: 85%;
}
#works .container{
    text-align: left;
}
#works h3{
    padding-top: 1.5em;
}
#works ul{
    display: block;
    margin-bottom: 3em;
}
#works li{
    font-size: 2rem;
    line-height: 1.5;
    padding: 0.6em 2em 0.6em 0.8em;
    text-indent: -0.8em;
}

#photo {
    padding-bottom: 4em;
}
#photo .gridbox {
    width: 170em;
  animation: scrollLoop 50s linear infinite;
}
#photo .gridbox img{
    width: 15em;
    margin: 0 1em;
}
}
