@charset "UTF-8";

/*pc*/
/*btn*/
.top-btn {
  text-align: center;
  margin: 65px auto 0;
}

.top-button {
  border: none;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 500;
  color: #006845;
  background-color: #fce300;
  padding: 8px 20px;
  width: 235px;
}

.top-btn-more {
  margin-left: 21px;
}

.top-button:hover {
  cursor: pointer;
  border: solid 3px #006845;
  padding: 5px 20px;
  margin: 0;
}

button span {
  font-size: 18px;
  font-weight: 600;
}

.top-btn .fa-arrow-right {
  color: #006845;
  font-size: 15px;
  margin-left: 10px;
}

.top-btn-more-work,.top-btn-more-service {
  font-size: 16px;
  vertical-align: middle;
  margin: 0;
  padding: 0;
  padding: 0 0px 0 15px;
}


/*mv*/
.mv_space {
  content: '';
  display: block;
  height: 100vh;
  width: auto;
  background-color: #fce300;
}

.mv p{
  font-size: 60px;
  display: inline-block;
}

.text_space {
  position: absolute;
  top: 50vh;
  left: 5%;
  width: 95%;
  margin: 0;
  padding: 0;
}

.text_space1 {
  margin-right: 30%;
}

.texts{
  width: 5.5em;
  height: 1.5em;
  border: 4px solid #006845;
  background: #fff;
  text-align: center;
  overflow-y: hidden;
}

.texts span{
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
}

/* アニメーション */
.texts span{
  animation: ShiftText 10s linear infinite;
}

@keyframes ShiftText{
  0%{
    opacity: 0;
  }
  1%,25%{
    top: 0;
    opacity: 1;
  }
  26%,50%{
    top: -1.5em;
  }
  51%,75%{
    top: -3em;
  }
  76%,100%{
    top: -4.5em;
  }
}


/*feature*/
.feature {
  background-image: url("../images/bg_dots.jpg");
  padding: 0px;
  border-top: solid #006845 5px;
  border-bottom: solid #006845 5px;
}

.feature .wrap {
  padding: 0 2%;
  margin: 110px auto 50px;
}

.feature_flex-box {
  display: flex;
  justify-content: space-between;
}

.feature_flex-item {
  width: 33%;
}

.feature_flex-item:not(:nth-child(3)) {
  margin-right: 25px;
}

.feature_flex-item h1 {
  display: block;
  position: relative;
  text-align: center;
  margin: 0px auto;
  padding: 8px 0 15px;
  font-family: 'noto-sans-cjk-jp','Meiryo',sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: #373a36;
}

.feature_flex-item span {
  content: '';
  position: absolute;
  top: -40px;
  left: 45%;
  font-family: 'Meiryo',sans-serif;
  font-weight: 700;
  color: #006845;
}

.feature_flex-item span::before {
  content: "";
  position: absolute;
  display: block;
  top: -12px;
  left: -6.6px;
  border: 4px solid #006845;
  width: 35px;
  height: 35px;
}

.feature p {
  text-shadow: #fff 0 0 5px;
	text-align:justify;
  font-weight: 500;
}

/*concept*/
.concept_container:after {
  content: '';
  display: block;
  clear: both;
}

.concept_item {
  display: block;
}

.concept_item:first-of-type {
  margin-right: 20px;
  float: left;
  display: block;
  width: 48%;
}

.concept_item:nth-of-type(2) {
  margin-left: 20px;
  width: 48%;
  float: right;
}

.concept_item p {
  margin-bottom: 9px;
  line-height: 170%;
}

.frame {
  position: absolute;
  padding: 1.7em 0 0.8em;
  margin: 45px 2% 45px 3%;
  max-width: 450px;
  width: 40%;
  height: 65px;
  text-align: center;
}

.frame1:after{
  content: '';
  position: absolute;
  top: -25px;
  right: 20px;
  width: 3px;
  height: 60px;
  background-color: #006845;
}

.frame2:after{
  content: '';
  position: absolute;
  top: -10px;
  right: -10px;
  width: 160px;
  height: 3px;
  background-color: #006845;
}

.frame3:before {
  content: '';
  position: absolute;
  bottom: -25px;
  left: 20px;
  width: 3px;
  height: 60px;
  background-color: #006845;
}

.frame4:before {
  content: '';
  position: absolute;
  bottom: -10px;
  left: -10px;
  width: 160px;
  height: 3px;
  background-color: #006845;
}

#concept_en {
  font-size: 18px;
  margin-bottom: 3px;
}

#concept_ja {
  font-size: 12px;
  margin: 0;
}

#toabout-btn {
  width: 180px;
  display: block;
  text-align: center;
  margin: 0 auto 10px;
}

/*work*/
.work article {
  width: 100%;
  margin-bottom: 60px;
  padding: 20px 0px;
}

.work .top_card {
  display: flex;
  justify-content: space-around;
  box-sizing: border-box;
  padding: 50px 0px 50px 30px;
  margin: 0 auto 60px;
  box-shadow: 10px 10px 10px 10px rgba(0,0,0,0.2);
  border-radius: 8px;
  z-index: 20;
  background-color: #fff;
}

.work .top_card {
  display: flex;
  flex-direction: row-reverse;
  padding: 50px 30px 50px 10px;
}

.work .top_card:nth-of-type(2) {
  flex-direction: row;
  padding: 50px 10px 50px 30px;
}

.top_card-box {
  width: 50%;
}

.top_card-title {
  font-size: 20px;
}

.top_card-tag {
  font-size: 11px;
  color: #676d64;
  margin-bottom: 15px;
  text-transform: uppercase;
}

.top_card-text {
  margin-bottom: 16px;
  line-height: 170%;
  text-align: justify;
}

.top_card-more {
  color: #aed000;
  font-size: 20px;
  font-family: 'futura-pt', 'noto-sans-cjk-jp', 'meiryo', sans-serif;
}

.top_card-more .fa-arrow-right {
  color: #aed000;
  margin-left: 5px;
  font-size: 14px;
}

.top_card-img {
  width: 43%;
  margin: auto;
}

.top_card-img img {
  width: 100%;
  object-fit: cover;
  border-radius: 10px;
}

.top_card:last-of-type {
  margin-bottom: 90px;
}

.top_card:hover {
  cursor: pointer;
}


/*flow*/
.flow table {
  margin-top: -20px;
}

.flow td {
  vertical-align: middle;
  height: 150px;
}

.flow_img {
  height: 90px;
}

.flow_td1 {
  font-size: 18px;
  width: 18%;
  margin: 0 auto;
  padding: auto;
  text-align: center;
}

.tr-box {
  position: relative;
}

.tr-line:before {
  content: '';
  position: absolute;
  top: 30px;
  left: 11%;
  z-index: -1;
  height: 800px;
  width: 6px;
  background-color: #aed000;
}

.flow_td2 {
  font-size: 20px;
  width: 18%;
  font-weight: 600;
}

.flow_td3 {
  font-size: 15px;
  text-align: justify;
  line-height: 150%;
  width: 44%;
}

.table-link {
  color: #aed000;
  font-weight: 600;
}

.flow table .fa-arrow-right {
  color: #676d64;
  transform:rotate(-45deg);
  font-size: 14px;
  margin-left: 2px;
}

.table-link:hover {
  color: #676d64;
  border-bottom: solid 2px #676d64;
}

/*contact*/


/*luxy*/
#luxy{
  z-index:-20;
}
.bg_deco12-1{
  width:120px;
  margin-left:27%;
  margin-top:-55px;
}
.bg_deco17-1{
  width:160px;
  margin-left:75%;
  margin-top:-45px;
}
.bg_deco6-1{
  width:120px;
  margin-left:6%;
  margin-top:-80px;
}
.bg_deco1-1{
  width:120px;
  margin-left:-4%;
  margin-top:0;
}
.bg_deco3-1{
  width:120px;
  margin-left:92%;
  margin-top:150px;
}
.bg_deco2-1{
  width:40px;
  margin-left:18%;
  margin-top:-80px;
}
.bg_deco10-1{
  width:110px;
  margin-left:75%;
  margin-top:-30%;
}
.bg_deco5-1{
  width:100px;
  margin-left:26%;
  margin-top:25px;
}
.bg_deco21-1{
  width:60px;
  margin-left:92%;
  margin-top:-5px;
}
.bg_deco13-1{
  width:125px;
  margin-left:-4%;
  margin-top:15px;
}
.bg_deco11-1{
  width:120px;
  margin-left:92%;
  margin-top:-25px;
}
.bg_deco14-1{
  width:70px;
  margin-left:7%;
  margin-top:125px;
}
.bg_deco18-1{
  width:120px;
  margin-left:90%;
  margin-top:0px;
}
.bg_deco7-1{
  width:125px;
  margin-left:-2%;
  margin-top:18px;
}
.bg_deco2-2{
  width:75px;
  margin-left:87%;
  margin-top:0;
}
.bg_deco1-2{
  width:55px;
  margin-left:0%;
  margin-top:120px;
}
.bg_deco2-3{
  width:45px;
  margin-left:97%;
  margin-top:10px;
}
.bg_deco2-4{
  width:45px;
  margin-left:97%;
  margin-top:10px;
}
.bg_deco11-2{
  width:130px;
  margin-left:20%;
  margin-top:115px;
}
.bg_deco8-1{
  width:170px;
  margin-left:75%;
  margin-top:-20px;
}
.bg_deco15-2{
  width:60px;
  margin-left:35%;
  margin-top:-100px;
}
.bg_deco16-2{
  width:140px;
  margin-left:-2%;
  margin-top:0;
}
.bg_deco12-2{
  width:150px;
  margin-left:90%;
  margin-top:-40px;
}
.bg_deco9-2{
  width:70px;
  margin-left:8%;
  margin-top:-6px;
}
.bg_deco14-2{
  width:90px;
  margin-left:-2%;
  margin-top:80px;
}
.bg_deco19-1{
  width:110px;
  margin-left:95%;
  margin-top:10px;
}
.bg_deco13-2{
  width:120px;
  margin-left:4%;
  margin-top:100px;
  transform:rotate(-270deg)
}
.bg_deco1-3{
  width:40px;
  margin-left:93%;
  margin-top:-10px;
}
.bg_deco2-5{
  width:60px;
  margin-left:97%;
  margin-top:40px;
}
.bg_deco2-6{
  width:60px;
  margin-left:17%;
  margin-top:45px;
}
.bg_deco15-3{
  width:70px;
  margin-left:-2%;
  margin-top:-40px;
}
.bg_deco11-3{
  width:140px;
  margin-left:70%;
  margin-top:-60px;
}
.bg_deco16-3{
  width:120px;
  margin-left:18%;
  margin-top:-30px;
}
.bg_deco20-1{
  width:70px;
  margin-left:88%;
  margin-top:-60px;
}
.bg_deco14-3{
  width:60px;
  margin-left:67%;
  margin-top:-40px;
  transform:rotate(90deg)
}
.bg_deco4-3{
  width:100px;
  margin-left:3%;
  margin-top:-40px;
}


/*sp_media*/
@media screen and (max-width: 840px) {
  
  /*mv_sp*/
  .mv p{
    font-size: 45px;
  }

  .text_space {
    position: absolute;
    top: 40%;
    left: 3%;
    width: 97%;
    margin: 0 auto;
  }

  .text_space1 {
    margin-right: 20%;
  }

  .texts{
    width: 4.5em;
    height: 1.5em;
    margin-top: 2%;
  }
  

  /*feature_sp*/
  .feature_flex-box {
    display: block;
    max-width: 600px;
    margin: 140px auto 0;
  }
  .feature_flex-item {
    width: 100%;
    margin: 100px auto 100px;
  }
  .feature_flex-item span::before {
    top: -50%;
    left: 50%;
    transform: translateX(-50%);
  }
  .feature_flex-item h1 {
    padding: 15px 0 20px;
  }
  .feature_flex-item span {
    left: 50%;
    transform: translateX(-50%);
  }
  
  
  /*concept_sp*/
  .concept_item:first-of-type {
    float: none;
    margin: 0;
    display: block;
    width: 100%;
  }

  .concept_item:nth-of-type(2) {
    margin: 0 0 -13px;
    display: block;
    width: 100%;
  }

  .concept_item p {
    line-height: 160%;
  }

  .frame {
    position: sticky;
    padding: 20px 0 9px;
    margin: 45px auto 80px;
    width: 100%;
    height: 75px;
  }

  #concept_en {
    margin-bottom: 3px;
  }

  #concept_ja {
    font-size: 11px;
  }

  #toabout-btn {
    width: 180px
    margin: 0 auto 10px;
  }

  /*work_sp*/
  .work article {
    width: 90%;
    margin-bottom: 60px;
  }

  .work .top_card {
    width: 100%;
    box-sizing: border-box;
    padding: 40px 20px;
    box-shadow: 10px 10px 10px 10px rgba(0,0,0,0.1);
    border-radius: 8px;
    z-index: 20;
  }
  
  .work .top_card:nth-of-type(2) {
  padding: 40px 20px;
}

  .top_card-box {
    width: 100%;
  }

  .top_card-title {
    font-size: 22px;
  }

  .top_card-tag {
    margin-bottom: 25px;
  }

  .top_card-text {
    line-height: 160%;
  }

  .top_card-img {
    width: 100%;
  }

  .top_card-img img {
    width: 100%;
    margin-bottom: 25px;
  }

  .top_card:last-of-type {
    margin-bottom: 60px;
  }
  
  #top_card-box .top_card-box {
  max-width: 500px;
  }
  
  /*flow_sp*/

  .flow td {
    vertical-align: middle;
  }
  .flow_img {
    display: none;
  }
  .flow_td1 {
    display: none;
  }
  
  tr {
    position: relative;
  }
  
 .stickarrow1:before  {
    content: '';
    width: 40px;
    height: 8px;
    background: none;
    border-bottom: 3px solid #aed000;
    border-right: 3px solid #aed000;
    transform: skew(45deg);
    position: absolute;
  }   
 .stickarrow2:before  {
    content: '';
    width: 40px;
    height: 8px;
    background: none;
    border-bottom: 3px solid #aed000;
    border-right: 3px solid #aed000;
    transform: skew(45deg);
    position: absolute;
  }   
 .stickarrow3:before  {
    content: '';
    width: 40px;
    height: 8px;
    background: none;
    border-bottom: 3px solid #aed000;
    border-right: 3px solid #aed000;
    transform: skew(45deg);
    position: absolute;
  }   
 .stickarrow4:before  {
    content: '';
    width: 40px;
    height: 8px;
    background: none;
    border-bottom: 3px solid #aed000;
    border-right: 3px solid #aed000;
    transform: skew(45deg);
    position: absolute;
  }   
 .stickarrow5:before  {
    content: '';
    width: 40px;
    height: 8px;
    background: none;
    border-bottom: 3px solid #aed000;
    border-right: 3px solid #aed000;
    transform: skew(45deg);
    position: absolute;
  }  
  
  .stickarrow1 {
    transform: rotate(90deg);
    position: absolute;
    top: 7%;
    left: 4%;
  }
  .stickarrow2 {
    transform: rotate(90deg);
    position: absolute;
    top: 22.5%;
    left: 4%;
  }
  .stickarrow3 {
    transform: rotate(90deg);
    position: absolute;
    top: 41.5%;
    left: 4%;
  }
  .stickarrow4 {
    transform: rotate(90deg);
    position: absolute;
    top: 57.5%;
    left: 4%;
  }
  .stickarrow5 {
    transform: rotate(90deg);
    position: absolute;
    top: 73.5%;
    left: 4%;
  }
  
  
  .tr-line:before {
    display: none;
  }

  td.flow_td2 {
    display: block;
    font-size: 20px;
    width: auto;
    font-weight: 600;
    padding: 0;
    margin-bottom: 3%;
    padding: 5px 10px;
    
    height: auto;
    background: #fff;
    border: solid 3px #006845;
  }

  td.flow_td3 {
    display: block;
    font-size: 15px;
    line-height: 150%;
    width: auto;
    margin: 0 0 8% 10%;
    height: auto;
  }
  .td-emphasis {
    color: #006845;
    font-weight: 400;
    font-size: 23;
  }

}