@charset "UTF-8";
.h2-wrap{
  width: min(1120px,100%);
  margin-bottom: 40px;
  margin-inline: auto;

  text-align: center;

  h2::before{
    content: attr(data-ENG);

    margin-bottom: 16px;
    font-family: 'LINE Seed JP_OTF ExtraBold';

    font-size: 44px;
    line-height: 1;
    -webkit-text-stroke: 1px #1359E8;
    color: transparent;
  }
  h2{
    display: flex;
    flex-direction: column;
    font-size: 18px;
    font-family: 'LINE Seed JP_OTF Reguler';
    font-weight: 400;
    color: #333;
  }
}
div#hero {
  position: relative;
}
div#video-wrapper{
  width: 100%;
  height: 100dvh;

  video,img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
#hero-sns{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-bottom: 1dvw;
}
#float-recruit {
  position: absolute;
  z-index: 2;
  left: 2.5dvw;
  bottom: 3dvh;

  display: flex;

  .textContent {
    padding: 24px;
    background: #1359E8;

    p.title {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;

      font-size: 18px;
      color: #fff;
    }

    p.title::after {
      content: attr(data-ENG);

      font-size: 11px;
      color: #5A8BEF;
    }
  }
}
#float-recruit::before{
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  bottom: 0;

  display: inline-block;
  width: 100%;
  height: 100%;

  background: #000;
  opacity: 0;
  transition: 0.3s all linear;
}
#float-scroll{
  position: absolute;
  z-index: 2;
  right: 2.5dvw;
  bottom: 0.5dvh;

  display: flex;
  flex-direction: column;
  align-items: center;

  .scroll{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;

    .line{
      display: inline-block;
      width: 3px;
      height: 5vw;

      background-color: #C3D2E3;
    }
    .dot{
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      display: inline-block;
      width: 8px;
      height: 8px;

      border-radius: 50%;
      background-color: #fff;

      animation: dot-anime 1.3s infinite;
    }
  }
  p{
    color: #fff;
  }
}
@keyframes dot-anime {
  from{
    bottom: calc(100% - 15px);
  }
  to{
    bottom: 0%;
  }
}
section#news{
  position: relative;
  z-index: 1;
  padding: 64px 16px 56px;

  .news-list-wrap{
    width: min(920px,100%);
    margin-inline: auto;

    a#news-all{
      display: flex;
      align-items: center;
      gap: 4px;

      color: var(--tc);
      transition: 0.3s all linear;
    }
  }
  .news-list{
    margin-bottom: 8px;

    border-top: solid 1px #CCC;

    li{
      border-bottom: solid 1px #ccc;
    }
    a.news-item{
      position: relative;
    
      display: grid;
      grid-template-columns: 112px 1fr;
      column-gap: 160px;
      align-items: center;

      padding: 24px 0;
      padding-left: 32px;
      padding-right: 80px;

      transition: 0.3s all linear;
    
      time{
        color: #333;
      }
      span.new{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 160px;

        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 108px;
        padding: 4px;
    
        font-size: 14px;
        font-weight: 700;
        color: #fff;
        text-align: center;
        background: var(--tc);
      }
      p.title{
        font-weight: 700;
        line-height: 1.6;

        text-decoration: underline;
      }
    }
    a.news-item::before{
      content: '';
      position: absolute;
      top: 50%;
      right: 8px;
      transform: translateY(-50%);

      display: inline-block;
      width: 30px;
      height: 30px;

      border-radius: 50%;
      border: solid 1px #ccc;

      transition: 0.3s all linear;
    }
    a.news-item::after{
      content: '';
      position: absolute;
      top: 50%;
      right: 20px;
      transform: translateY(-50%);

      display: inline-block;
      width: 6px;
      height: 6px;

      border-radius: 50%;
      background: #ccc;
      transition: 0.3s all linear;
    }
  }
}
div#about{
  position: relative; 

  padding: 80px 16px 72px;

  background-image: url(../img/index/about/bg.jpg);

  div.inner{
    width: min(1120px,100%);
    margin-inline: auto;

    div.heading{
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      padding-bottom: 48px;

      p{
        font-family: 'LINE Seed JP_OTF Bold';

        font-size: 69px;
        line-height: 1;
        -webkit-text-stroke: 1px #fff;
        color: transparent;
      }

      .cross{
        --cross-width: 180px;
        position: relative;

        display: inline-block;
        width: var(--cross-width);
        height: var(--cross-width);
      }
      .cross::before,
      .cross::after{
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);

        display: inline-block;
        width: 100%;
        height: 2px;

        background: #fff;
      }
      .cross::before{
        transform: translate(-50%,-50%) rotate(45deg);
      }
      .cross::after{
        transform: translate(-50%,-50%) rotate(-45deg);
      }
    }
  }
  div.textContent{
    padding-bottom: 64px;
    color: #fff;

    .title{
      margin-bottom: 16px;

      font-size: 0;
      text-align: center;
    }
    .title::before{
      content: attr(data-ENG);

      font-size: 20px;
      font-family: 'LINE Seed JP_OTF ExtraBold';
    }
    .text{
      line-height: 2;
    }
  }
  .float{
    position: absolute;
    z-index: 0;
    top: -14dvw;
    left: -3.4dvw;
  }
}
section#service{
  padding: 80px 0 96px;

  p.heading{
    padding: 0 16px;
    padding-bottom: 64px;

    text-align: center;
  }
  .service-links{
    display: grid;
    grid-template-columns: repeat(2,1fr);
    column-gap: 2px;

    li{
      position: relative;

      aspect-ratio: 24/10;
      container-type: inline-size;

      overflow: hidden;

      .title-wrap{
        position: absolute;
        z-index: 3;
        top: 5cqw;
        left: 8cqw;

        p.title{
          display: flex;
          flex-direction: column;

          font-size: 2.6cqw;
          color: #fff;
        }
        p.title::before{
          content: attr(data-ENG);

          font-size: 6.8cqw;
          font-family: 'LINE Seed JP_OTF Bold';
        }
      }
      picture,img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: 0.3s all linear;
      }
      .pin{
        position: absolute;
        z-index: 3;
        right: 31px;
        bottom: 31px;

        display: inline-block;
        width: 30px;
        height: 30px;

        border-radius: 50%;
        border: solid 1px #ccc;

        transition: 0.3s all linear;
      }
      .circle{
        position: absolute;
        z-index: 3;
        right: 43px;
        bottom: 43px;
    
        display: inline-block;
        width: 6px;
        height: 6px;
    
        border-radius: 50%;
        background: #ccc;
        transition: 0.3s all linear;
      }
    }
    li::before{
      content: '';
      position: absolute;
      z-index: 2;
      top: 0;
      left: 0;

      display: inline-block;
      width: 100%;
      height: 100%;

      background: #1359E8;
      opacity: 0.4;
      transition: 0.3s all linear;
    }
  }
}
section#recruit{
  position: relative;
  overflow: hidden;

  padding-bottom: 176px;

  .eyecatch{
    img{
      width: 100%;
    }
  }
  div.content{
    position: relative;
    z-index: 2;

    width: min(1120px,100%);
    padding: 64px 16px 88px;
    margin-inline: auto;
    margin-top: -120px;

    background-image: url(../img/index/recruit/bg.jpg);
    background-size: cover;

    p.text{
      margin-bottom: 48px;

      font-size: 18px;
      color: #fff;
      line-height: 2;
      text-align: center;
    }
  }
  .white-text{
    position: relative;
    z-index: 4;
    margin-top: -40px;

    font-family: 'LINE Seed JP_OTF ExtraBold';

    text-align: center;
    font-size: 131px;
    line-height: 1;
    -webkit-text-stroke: 2px #fff;
    color: transparent;
  }
  .float{
    position: absolute;
    z-index: 0;
    bottom: -2dvw;
    right: -3.4dvw;
  }
}
picture#hero-img {
  display: inline-block;
  width: 100%;
  height: 100dvh;
  max-width: none;

  img {
    display: inline-block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
  }
}
@media (min-width : 1200px){
  #float-recruit:hover::before{
    z-index: 3;

    opacity: 0.4;
    transition: 0.3s all linear;
  }
  section#news{
    .news-list-wrap{
      a#news-all:hover{
        opacity: 0.8;
        transition: 0.3s all linear;
      }
    }
    .news-list{
      a.news-item:hover{
        position: relative;

        background: #fff;
        transition: 0.3s all linear;
      }
      a.news-item:hover::before{
        border: solid 1px var(--tc);
  
        transition: 0.3s all linear;
      }
      a.news-item:hover::after{
        right: 18px;
        width: 10px;
        height: 10px;
  
        background: var(--tc);
  
        transition: 0.3s all linear;
      }
    }
  }
  section#service{
    .service-links{
      li:hover{
        picture,img{
          transform: scale(1.05);
          transition: 0.3s all linear;
        }
        .pin{
          border: solid 1px #1359E8;
          transition: 0.3s all linear;
        }
        .circle{
          right: 41px;
          bottom: 41px;

          width: 10px;
          height: 10px;

          background: #1359E8;
          transition: 0.3s all linear;
        }
      }
      li:hover::before{
        opacity: 0;
        transition: 0.3s all linear;
      }
    }
  }
}
@media (max-width : 1200px){
  div#about{
    .float{
      position: absolute;
      z-index: 0;
      top: -14dvw;
      left: -3.4dvw;
      width: 17dvw;
    }
  }
  section#recruit{
    div.content{
      margin-top: 0;
    }
    .white-text{
      margin-top: -5dvw;

      font-size: 9.6dvw;
    }
    .float{
      position: absolute;
      z-index: 0;
      bottom: 5dvw;
      right: -3.4dvw;
      width: 17dvw;
    }
  }
}
@media (max-width : 599px){
  .h2-wrap{
    margin-bottom: 8dvw;
  
    h2::before{
      margin-bottom: 3.2dvw;
  
      font-size: 8.8dvw;
    }
    h2{
      display: flex;
      flex-direction: column;
      font-size: 18px;
      font-family: 'LINE Seed JP_OTF Reguler';
      font-weight: 400;
      color: #333;
    }
  }
  div#hero {
    width: 100dvw;
    height: 100dvh;
  }
  #hero-sns{
    display: none;
  }
  #float-recruit {
    left: 0;
    bottom: 0;
  
    display: flex;
    width: 100%;
    height: 7dvh;
  
    .textContent {
      display: flex;
      align-items: center;
      width: 100%;
      padding: 0 1em;
  
      p.title {
        flex-direction: row;
        justify-content: inherit;
        gap: .4em;
  
        font-size: 5dvw;
      }
  
      p.title::after {
        font-size: 3dvw;
      }
    }
    picture{
      display: none;
    }
  }
  #float-recruit::before{
    display: none;
  }
  #float-scroll{
    right: 2.5dvw;
    bottom: 7.5dvh;
  
    display: flex;
    flex-direction: column;
    align-items: center;
  
    .scroll{
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
  
      .line{
        width: 3px;
        height: 12dvh;
      }
      .dot{
        width: 8px;
        height: 8px;
      }
    }
    p{
      color: #fff;
    }
  }
  section#news{
    padding: 16dvw 3.2dvw;
  
    .news-list{
      margin-bottom: 1.6dvw;

      a.news-item{
        grid-template-columns: 1fr;
        grid-template-rows: 1fr 1fr;
        row-gap: 1.6dvw;
  
        padding: 3.2dvw 0;
        padding-left: 6.4dvw;
        padding-right: 16dvw;
      
        time{
          color: #333;
          font-family: 'LINE Seed JP_OTF Reguler';
        }
        span.new{
          position: absolute;
          top: 3.2dvw;
          transform: none;
          left: 32dvw;

          width: auto;
          height: 20px;
          padding: 0 1em;
      
          font-size: 2.8dvw;

          border-radius: 2px;
        }
      }
      a.news-item::before{
        right: 1.6dvw;
        width: 6dvw;
        height: 6dvw;
      }
      a.news-item::after{
        right: 4dvw;
  
        width: 1.2dvw;
        height: 1.2dvw;
      }
      a.news-item:hover::after{
        right: 3.6dvw;
        width: 5dvw;
        height: 5dvw;
      }
    }
  }
  div#about{
    position: relative; 
  
    padding: 5dvh 16px 72px;
  
    background-image: url(../img/index/about/bg.jpg);
  
    div.inner{
      div.heading{
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 16px;
        padding-bottom: 3.6dvh;
  
        p{
          font-size: 12dvw;
        }
        .cross{
          --cross-width: 25dvw;
        }
      }
    }
    div.textContent{
      padding-bottom: 5dvh;
      .title{
        margin-bottom: 3.2dvw;
      }
      .title::before{
        font-size: 5dvw;
      }
    }
    .float{
      position: absolute;
      z-index: 0;
      top: -14dvw;
      left: 3.4dvw;
    }
  }
  section#service{
    padding: 4dvh 0 0;
  
    p.heading{
      padding: 0 3.2dvw;
      padding-bottom: 4dvh;
  
      text-align: center;
    }
    .service-links{
      grid-template-columns: repeat(1,1fr);
      row-gap: 2px;
  
      li{
        .title-wrap{
          top: 5cqw;
          left: 8cqw;
  
          p.title{
            font-size: 4dvw;
          }
          p.title::before{
            font-size: 6dvw;
          }
        }
      }
    }
  }
  section#recruit{
    padding-top: 5dvh;
    padding-bottom: 176px;

    .h2-wrap{
      padding-bottom: 2dvh;
    }
    div.content{
      padding: 4dvh 16px 7dvh;
      margin-inline: auto;
      margin-top: 0;

      p.text{
        margin-bottom: 3dvh;
  
        font-size: 18px;
      }
    }
    .white-text{
      margin-top: -4dvw;

      font-size: 9dvw;
    }
    .float{
      top: 8dvh;
      bottom: auto;
      right: -8.4dvw;
    }
  }
}