@charset "UTF-8";


/* common
---------------------------------------------------------*/

.header {
  background:inherit;
  box-shadow: inherit;
  transition: background 0.4s ease, box-shadow 0.4s ease;
}

.menu-toggle span:first-child {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Crect width='8' height='8' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(0 16)' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(0 32)' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(16)' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(16 16)' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(16 32)' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(32)' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(32 16)' fill='%23FFF'/%3E%3Crect width='8' height='8' transform='translate(32 32)' fill='%23FFF'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size:contain;
}

.menu-toggle span:last-child{
  color:#fff;
  transition: color 0.3s ease;
}

.g-nav__logo,
.header__txt {
  opacity: 0;
  transition: opacity 0.4s ease;
}

.header.t-fix {
  background: #fff;
  box-shadow: var(--shadow);
}

.header.t-fix .menu-toggle span:first-child {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Crect width='8' height='8' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(0 16)' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(0 32)' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(16)' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(16 16)' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(16 32)' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(32)' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(32 16)' fill='%23333'/%3E%3Crect width='8' height='8' transform='translate(32 32)' fill='%23333'/%3E%3C/svg%3E");
}

.header.t-fix .menu-toggle span:last-child {
  color: #333;
}

.header.t-fix .g-nav__logo,
.header.t-fix .header__txt {
  opacity: 1;
}


.t-heading{
  margin-bottom:var(--c-mg40);
}

.t-heading-en p span{
  color:var(--clr-bl);
  font-size:var(--fs-heading80);
}



.t-heading-en p:last-child span:last-child{
  color:var(--clr-lbl);
}

.t-heading-jp{
  font-size:var(--fs-st-txt20);
  font-weight: var(--fw-b);
  margin-top:var(--c-mg8);
  display: flex;
  align-items: center;
}

.t-heading-jp span{
  display: block;
  width:6px;
  height:6px;
  background:var(--clr-lbl);
  margin-right:8px;
}

.t-heading.wh p span ,.t-heading.wh .t-heading-en p:last-child span:last-child,.t-heading.wh .t-heading-jp{
  color:var(--clr-wh);
}

.t-heading.center{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.t-cta-btn{
  width:fit-content;
  background:var(--bg-grd-bl);
  position: fixed;
  border-top:1px solid var(--clr-wh);
  border-left:1px solid var(--clr-wh);
  border-bottom:1px solid var(--clr-wh);
  right:0;
  bottom:var(--c-mg16);
  z-index:2000;
  display: flex;
  align-items: center;
  box-shadow: var(--shadow);
  padding:var(--c-mg16) var(--c-mg12);
}

.t-cta-btn p{
  font-size:var(--fs-st-txt20);
  color:var(--clr-wh);
  margin:0 8px;
}

.t-cta-btn .i-mail{
  width:24px;
  height:16px;
  background:url(../img/common/i-mail.svg) no-repeat center center/contain;
}


@media screen and (min-width: 768px) {

  .t-heading{
    margin-bottom:var(--c-mg80);
  }

  .t-heading-jp{
    margin-top:var(--c-mg12);
  }

    
  .t-heading-jp span{
    width:8px;
    height:8px;
    margin-right:12px;
  }

  .t-cta-btn{
    bottom:var(--c-mg40);
    padding:var(--c-mg32) var(--c-mg40);
  }
  
  .t-cta-btn p{
    margin:0 16px;
  }
  
  .t-cta-btn .i-mail{
    width:30px;
    height:24px;
  }

  .t-cta-btn .arrow{
    width:18px;
    height:14px;
  }


}



/* mainVisual
---------------------------------------------------------*/

.mainVisual {
  position: relative;
  width:100%;
  height:100vh;
}

video {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mainVisual__wrapper{
  width:100%;
  height:100%;
}


.mainVisual__copy{
  width:100%;
  height:100vh;
  position: absolute;
  top:0;
  left:0;
  z-index:30;
  display: grid;
  place-items: center;
  color:var(--clr-wh);
  text-align: center;
}


.mainVisual__copy-en{
  font-size:max(9.23vw , 35px);
  letter-spacing: 0.1em;
  overflow: hidden;
  display: grid;
  gap:var(--c-mg8);
}

.mainVisual__copy-en span{
  display: block;
}

.mainVisual__copy-jp{
  font-size:max(3.07vw , 12px);
  margin-top:var(--c-mg12);
}


/*アニメーション用*/

.mainVisual__mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background:#F0F1F3;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.mainVisual__mask-logo {
  width:min(30vw, 200px);
  height:min(30vw, 200px);
  background:url(../img/common/logo-h.svg) no-repeat center center/contain;
  opacity: 1;
}

.mainVisual__copy-en span {
  /* transform: translateY(100%); */
  clip-path: inset(0 100% 0 0);
  opacity: 0;
}

.mainVisual__copy-jp {
  transform: translateY(10%);
  opacity: 0;
  will-change: transform;
}
.t-cta-btn{
  opacity: 0;
}

@media screen and (min-width: 768px) {


  .mainVisual__copy-en{
    font-size:max(5.72vw , 35px);
    gap:var(--c-mg16);
  }
  

  .mainVisual__copy-jp{
    font-size:max(1.30vw , 12px);
    margin-top:var(--c-mg32);
  }
  
  
}





/* 
---------------------------------------------------------*/

.t-cont-layer{
  background:var(--clr-wh);
  position: relative;
  z-index:100;
}

.t-cont-layer.btm-pd{
  padding-bottom:var(--c-mg64);
}

@media screen and (min-width: 768px) {
  .t-cont-layer.btm-pd{
    padding-bottom:var(--c-mg96);
  }
}


/* About us
---------------------------------------------------------*/
.t-about{
  background:var(--bg-clr-lbl);
  position: relative;
}


.t-about::before{
  content:"";
  display: block;
  width:100%;
  height:100%;
  background:url(../img/top/pers.png) no-repeat center center/cover;
  position: absolute;
  left:0;
  bottom:0;
  mix-blend-mode: multiply;
  opacity: 0.5;
  z-index:1;
}

.t-about a{
  position: relative;
  z-index:100;
  padding:var(--sec-pd) 0 var(--c-mg80);
}

.t-about__copy{
  display: grid;
  gap:var(--c-mg12);
  margin-bottom:var(--c-mg32);
}

.t-about__copy p{
  font-size:var(--fs-st-txt30);
  font-weight: var(--fw-b);
  letter-spacing: 0.1em;
}

.t-about__cont-r .c-txt{
  font-weight: var(--fw-m);
}

@media screen and (min-width: 768px) {

  .t-about__cont{
    max-width:var(--cont-max);
    margin:0 auto;
    display: grid;
    grid-template-columns: 50% 50%;
  }

  .t-about a{
    padding:var(--sec-pd) 0 var(--c-mg160);
  }

  .t-about__copy{
    gap:var(--c-mg24);
    margin-bottom:var(--c-mg64);
  }

  .t-about__cont-r{
    margin-top:var(--c-mg96);
    padding:0 var(--cont-pd-w) 0 0;
  }

  .t-about__cont-r .c-txt{
    line-height: 2.5;
  }

  .t-about .btn{
    display: none;
  }


}


/* Business
---------------------------------------------------------*/

.t-business{
margin-top:var(--c-mg64);
}


.t-business__wrapper{
  width:100%;
  position: relative;
  top:0;
}

.t-business__wrapper::before,.t-business__wrapper::after{
  content:"";
  display: block;
  background:var(--bg-clr-lgy);
  position: absolute;
  z-index:1;
}

.t-business__wrapper::before{
  width:50%;
  height:60vw;
  top:0;
  right:0;
}

.t-business__wrapper::after{
  width:20%;
  height:75vw;
  bottom:0;
  left:0;
}

.t-business__top-image,.t-business__bottom-image{
  display: grid;
  grid-template-columns: 50% 50%;
  width:80%;
  position: relative;
  z-index:2;
}

.t-business__top-image{
  padding-top:var(--c-mg64);
  margin:0 0 0 auto;
}

.t-business__bottom-image{
  padding-bottom:var(--c-mg64);
}

.t-business__inner{
  margin:var(--c-mg64) 0;
  position: relative;
  z-index:2;
}
.t-business__cont-l figure{
  width:90%;
  margin:0 auto;
}

.t-business__item{
  padding:var(--c-mg48) 0;
  border-bottom:1px solid var(--clr-dnv);
  position: relative;
}


.t-business__name-en{
  width:fit-content;
  display:flex;
  align-items: center;
  color:var(--clr-bl);
  font-weight: var(--fw-b);
  font-size:var(--fs-st-txt20);
}

.t-business__name-en span:last-of-type{
  position: relative;
  margin-left:8px;
  padding-left:18px;
}

.t-business__name-en span:last-of-type::before{
  display: block;
  content:"";
  width:10px;
  height:2px;
  background:var(--clr-lbl);
  position: absolute;
  top:0;
  bottom:0;
  margin:auto 0;
  left:0;
}

.t-business__name{
  font-size:var(--fs-st-txt30);
  margin:var(--c-mg12) 0 var(--c-mg16);
}

@media screen and (min-width: 768px) {

  .t-business{
    margin-top:var(--c-mg96);
    }

  .t-business__wrapper::before{
    width:25vw;
    height:38.02vw
    
  }

  .t-business__wrapper::after{
    width:9.47vw;
    height:29.63vw;
  }

  .t-business__top-image,.t-business__bottom-image{
    width:37.5vw;
  }



  .t-business__top-image{
    padding-top:var(--c-mg96);
    margin:0 0 0 auto;
  }

  .t-business__bottom-image{
    padding-bottom:var(--c-mg96);
    margin-top:-10.93vw;
  }

  .t-business__inner{
    margin:-10.93vw 0 0;
  }
  .t-business__cont{
    max-width:var(--cont-max);
    margin:0 auto;
    display: grid;
    grid-template-columns: 50% 50%;

  }

  .t-business__cont-l {
    padding:0 6.04vw 0 3.02vw  ;
  }

    
  .t-business__cont-l figure{
    width:100%;
  }

  .t-business__item{
    padding:var(--c-mg40) 0 var(--c-mg56);
  }

  .t-business__name-en span:last-of-type{

    margin-left:12px;
    padding-left:27px;
  }
  
  .t-business__name-en span:last-of-type::before{
    width:15px;
  }

  .t-business__name{
    margin:var(--c-mg24) 0 var(--c-mg40);
  }


  .t-business .l-more{
    display:none;
  }

}

/* Case
---------------------------------------------------------*/

.t-cases{
  position: relative;
}

.t-cases::before,.t-cases::after{
  content:"";
  display: block;
  width:100%;
  height:100%;
  position: absolute;
  left:0;
  top:0;
}

.t-cases:before{
  background:var(--clr-overlay);
  z-index:10;
}

.t-cases::after{
  background:var(--clr-overlay-grd);
  mix-blend-mode: multiply;
  z-index:20;
}


.t-cases__wrapper{
  position: relative;
  z-index:100;
  padding:var(--sec-pd) 0;
}


.t-cases__lists{
  overflow-x: scroll;
  display: flex;
  gap: 24px;
  margin-bottom:var(--c-mg40);
}

.t-cases__item{
  min-width: 76.41vw;
}

.t-cases__item a{
  background:var(--clr-wh);
  box-shadow: var(--shadow);
  position: relative;
}

.t-cases__cats{
  width:fit-content;
  background:var(--clr-dnv);
  color:var(--clr-wh);
  height:28px;
  line-height: 28px;
  position: absolute;
  top:-1px;
  left:0;
  font-size: var(--fs-st-txt20);
  padding:0 16px;
}

.t-cases__cats::before{
  content:"";
  display: block;
  border: 14px solid var(--clr-dnv);
  border-right-color: transparent;
  border-bottom-color: transparent; 
  height: 0;
  width: 0;
  position: absolute;
  transform: scaleX(0.5);
  top:0;
  right:-21px;
}


.t-cases__item:first-child{
  margin-left:var(--cont-pd-w);
}

.t-cases__item:last-child{
  margin-right:var(--cont-pd-w);
}

.t-cases__img{
  width:100%;
  height:220px;
}

.t-cases__cont{
  padding:var(--c-mg16) 16px var(--c-mg24);
}

.t-cases__txt{
  overflow:hidden;
  font-weight: var(--fw-b);
  font-size: var(--fs-txt18);
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-height: var(--lh2);
  margin-bottom:var(--c-mg16);
  height:calc(var(--fs-txt18) * 3.8);
}

.t-cases__cont time{
  font-family: var(--ff-fig);
  font-weight: var(--fw-sb);
  color:var(--clr-gy);
  font-size:var(--fs-txt16);
}

.t-cases .btn{
  margin:0 auto;
}

@media screen and (min-width: 768px) {
  
  .t-cases__lists__wrapper{
    padding:0 var(--cont-pd-w);
  }

  .t-cases__lists{
    max-width: var(--cont-max);
    overflow-x: inherit;
    gap: 40px;
    margin:0 auto;
  }
  
  .t-cases__item{
    min-width: calc((100% - 80px) / 3);
  }

  .t-cases__cats{
    height:48px;
    line-height: 48px;
    padding:0 20px;
  }

  .t-cases__cats::before{
    content:"";
    display: block;
    border: 24px solid var(--clr-dnv);
    border-right-color: transparent;
    border-bottom-color: transparent; 
    height: 0;
    width: 0;
    position: absolute;
    transform: scaleX(0.5);
    top:0;
    right:-36px;
  }

    
  .t-cases__item:first-child, .t-cases__item:last-child{
    margin:0;
  }

  .t-cases__img{
    height:17.18vw;
  }

  .t-cases__cont{
    padding:var(--c-mg24) var(--c-mg24) var(--c-mg40);
  }

  .t-cases__txt{
    margin-bottom:var(--c-mg24);
  }

  .t-cases__link div{
    max-width:var(--cont-max);
    margin:0 auto;
  }

    
  .t-cases .btn{
    margin:var(--c-mg80) 0 0 auto;
  }


}

/* コンタクト・フッター
---------------------------------------------------------*/
.t-contact.custom{
  background:var(--bg-clr-lbl);
}

.t-contact.custom .btm-contact__item{
  cursor: default;
  pointer-events: none;
}


.t-contact__inner{
  padding-top:var(--sec-pd);
}

.footer{
  padding: var(--c-mg64) 0 var(--c-mg80);
}



