@charset "utf-8";
 
 :root {
  --color-primary: #000000;
  --color-hover: #666666;
  --color-accent: #000000;
  --color-bg: #ffffff;
  --color-surface: #333333;
  --color-text:#000000;
  --color-text-muted: #B0B3C3;
  --color-border: #2C2C36;
  --border:#000;
}
 
 

  h3.hd{
  position: relative;
  padding: 62px 0;
  font-size: 48px;
  text-align: center;
  line-height: 1;
}
h3.hd span{
  display: block;
  margin-top: 14px;
  font-size: 16px;
}
.message_wrap{
  position: relative;
  display: flex;
}
.message_wrap::before,
.message_wrap::after{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
 
.message_wrap::after{
  bottom: 0;
}
.message_wrap .sec_img{
  width: 34.286%;
  max-width: 1280px;
  
  margin: 0 auto;
}
.message_wrap .sec_img::before,
.message_wrap .sec_img::after{
  display: none;
}
.message_wrap .inner{
  position: relative;
  display: block;
  width: 65.714%;
  padding: 64px 80px;
  margin: 0 auto;
  box-sizing: border-box;
}
.message_wrap .inner::before{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  background: #333;
  z-index: 1;
}
.message_wrap .inner .en{
  position: relative;
  display: block;
  width: 100%;
  padding-bottom: 30px;
  margin: 0 auto 50px;
  font-family: "OptimaLTPro-Roman";
}
.message_wrap .inner .en::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.message_wrap .inner .en span{
  display: inline-block;
  font-size: 24px;
  line-height: 1;
}
.message_wrap .inner .ttl{
  margin-bottom: 30px;
  font-size: 32px;
  letter-spacing: -0.01em;
  line-height: 1.5;
}
.message_wrap .inner .txt > p{
  margin-bottom: 20px;
  font-size: 15px;
  letter-spacing: 0.05em;
  line-height: 2;
}
.message_wrap .inner .txt .name{
  margin-bottom: 0;
  margin-top: 40px;
  font-size: 21px;
  line-height: 1;
  text-align: right;
}
.message_wrap .inner .txt .name span{
  display: inline-block;
  margin-right: 14px;
  font-size: 15px;
}
@media all and (min-width: 769px) {
  .message_wrap .sec_img{
   background: url(../../img/career/company_main.jpg) no-repeat right;  
    background-size: cover;
  }
  .message_wrap .sec_img picture{
    visibility: hidden;
  }
  .message_wrap .inner::before{
    width: 1px;
    height: 100%;
    transform: scaleY(var(--border));
    transform-origin: 50% 0;
  }
}
@media all and (max-width: 768px) {
  .message_wrap{
    display: block;
  }
  .message_wrap .sec_img{
    width: 100%;
  }
  .message_wrap .inner{
    display: block;
    width: 100%;
    padding: 13.021% 5.208% 10.417%;
  }
  .message_wrap .inner::before{
    width: 100%;
    height: 1px;
    transform: scaleX(var(--border));
    transform-origin: 0 50%;
  }
  .message_wrap .inner .en{
    padding-bottom: 1.453%;
    margin-bottom: 6.686%;
  }
  .message_wrap .inner .en span{
    font-size: 3.646vw;
  }
  .message_wrap .inner .ttl{
    width: 100%;
    margin-bottom: 5.814%;
    font-size: 4.948vw;
    line-height: 1.474;
  }
  .message_wrap .inner .txt{
    width: 100%;
  }
  .message_wrap .inner .txt > p{
    margin-bottom: 5.814%;
    font-size: 3.125vw;
  }
  .message_wrap .inner .txt .name{
    font-size: 4.167vw;
  }
  .message_wrap .inner .txt .name span{
    margin-right: 2.907%;
    font-size: 3.125vw;
  }
}
  
.outline_wrap{
  position: relative;
}
.outline_wrap::before{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.outline_wrap .inner{
  position: relative;
  display: block;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}
.outline_wrap .inner .en{
  position: relative;
  display: block;
  width: 100%;
  padding-bottom: 18px;
  margin: 0 auto 50px;
  font-family: "OptimaLTPro-Roman";
}
.outline_wrap .inner .en::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.outline_wrap .inner .en span{
  display: inline-block;
  font-size: 24px;
  line-height: 1;
}

.outline_wrap .text{
  margin-top: 40px;
}
 
.outline_wrap .btn{
margin-top: 40px;
} 

.outline-row{
  display: flex;
  justify-content: left;
  gap: 15px;  
}

.outline_wrap .btn-active{
  background: #000; color: #fff;
}

@media all and (min-width: 769px) {
  .outline_wrap{
    padding: 110px 11.905% 160px;
  }
}
@media all and (max-width: 768px) {
  .outline_wrap{
    padding: 13.021% 5.208% 10.417%;
  }
  .outline_wrap .inner{
    display: block;
    padding: 0;
  }
  .outline_wrap .inner .en{
    padding-bottom: 1.453%;
    margin-bottom: 6.686%;
  }
  .outline_wrap .inner .en span{
    font-size: 3.646vw;
  } 

  .outline_wrap .btn{
    width: 120px;
} 

}
 

.kv_wrap img{
  width: 100%;
}



#numbers.sec_wrap,
#about.sec_wrap{
  background-color: #f5f5f5;
}



h3.hd{
  position: relative;
  padding: 62px 0;
  font-size: 48px;
  text-align: center;
  line-height: 1;
}
h3.hd span{
  display: block;
  margin-top: 14px;
  font-size: 16px;
}
.sec_wrap .sec_img{
  position: relative;
}
.sec_wrap .sec_img::before,
.sec_wrap .sec_img::after{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.sec_wrap .sec_img::before{
  top: 0;
}
.sec_wrap .sec_img::after{
  bottom: 0;
}

 


.number table td{
  vertical-align: top ; text-align: left;
  min-width: 20px; 
}

#numbers h3.hd{
   
}
.numbers_wrap{
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
.numbers_wrap::after{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.numbers_wrap .number{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(100% / 3);
  padding: 3.571% 1.786% 1.548%;
  margin: 0 auto;
  box-sizing: border-box;
}
.numbers_wrap .number.n02{
  padding-left: 0;
  padding-right: 0;
}
.numbers_wrap .number::before,
.numbers_wrap .number:nth-child(n+4)::after{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  background: #333;
  z-index: 1;
}
.numbers_wrap .number::before{
  width: 1px;
  height: 100%;
  transform: scaleY(var(--border));
  transform-origin: 50% 0;
}
.numbers_wrap .number:nth-child(3n+1):before{
  display: none;
}
.numbers_wrap .number:nth-child(n+4):after{
  width: 100%;
  height: 1px;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.numbers_wrap .number .ttl{
  font-size: 27px;
  line-height: 1.5;
  text-align: center;
}
.numbers_wrap .number .ttl > span{
  font-size: 21px;
}
.numbers_wrap .number.n01 .img{
  width: 80%;
  max-width: 400px;
  margin: 10px auto 30px;
} 
.numbers_wrap .number.n03 .img{
  width: 67.321%;
  max-width: 377px;
  margin: 7.5% auto 6.25%;
} 
@media all and (min-width: 769px) {
}
@media all and (max-width: 768px) {
  #numbers h3.hd{
    padding-top: 40px; padding-bottom: 40px;
  }
  .numbers_wrap{
    display: block;
  }
  .numbers_wrap .number{
    width: 100%;
    padding: 9.115% 5.208% 5.208%;
  }
  .numbers_wrap .number::before{
    width: 100%;
    height: 1px;
    transform: scaleX(var(--border));
    transform-origin: 0 50%;
  }
  .numbers_wrap .number .ttl{
    font-size: 4.802vw;
    line-height: 1.5;
  }
  .numbers_wrap .number .ttl > span{
    font-size: 3.734vw;
  }
  .numbers_wrap .number.n01 .img{
    width: 80%;
    max-width: 80%;
    
  }
  
 

  .numbers_wrap .number.n03 .img{
    width: 74.855%;
    max-width: 74.855%;
    margin: 7.267% auto 7.267%;
  } 
}



h2.detail_title{
  display: flex; font-size: 2.865vw; color: var(--color-text);
  justify-content: space-between;
  align-items: baseline;
  position: relative; 
  letter-spacing: -0.02em;
  line-height: 1;
}
h2.detail_title::before{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
h2.detail_title .jp{ 
  letter-spacing: 0.04em;
}
@media all and (min-width: 769px) {
  h2.detail_title{
    padding: 80px 5% 48px;
    font-size: 46px;
  }
  .dev-profile .outline_wrap{
    padding: 50px 11.905% 50px;
  }
 
}
@media all and (max-width: 768px) {
  h2.detail_title{ 
    padding: 40px 5%;
    font-size: 36px;
  }
  .dev-profile .outline_wrap{
    padding: 50px 11.905% 50px;
  }
}

.dev-profile h3{
  margin-top: 40px;
}

.detail_title .text{
  padding-left: 20px;
}


.contact{
    padding: 0px 0 0px;
}

.contact h3{
  line-height: 140%;
}
 

.contact .area span{
    color: red;
}

.contact .col-sm{
    margin-top: 20px;
}

.input_contact{
  margin-top: 10px;
}

.btn-submit { 
	display: inline-block; vertical-align: top; border: 0;
      padding: 10px 40px; text-align: center;  font-size: 20px;  line-height: 100%;
    background: #000; color: #fff6f0; border-radius: 50px;
    margin-top: 40px;  transition:0.6s cubic-bezier(0.01, 1.69,    0.99, 0.94); 
}  

.btn-submit:hover{
  color: var(--color-hover) !important;
}


.icon-career{
  margin-top: 40px; display: inline-block;
}

.icon-career img{
  width: 40px;
}