@charset 'utf-8';
.inner02{
 width: 91.46%;
 max-width: 1300px;
 margin: 0 auto;
}
img{
 max-width: 100%;
}


/**************************
  MV
 **************************/

#mv {
  position: relative;
  padding-top: 29.375%;
  overflow: hidden;
}

#mv::before {
  position: absolute;
  display: block;
  content: "";
  z-index: 10;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../images/mv.jpg") center center no-repeat;
  background-size: cover;
  animation: zoomImg 12s ease-in-out forwards;
}

#mv h1 {
  position: absolute;
  z-index: 20;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 1300px;
  width: 100%;
 color: #fff;
 font-size: 28px;
 font-weight: 500;
 letter-spacing: 0.26em;
}
#mv h1 .big{
 display: block;
 font-size: 100px;
 line-height: 1.25;
 letter-spacing: 0;
}
#mv h1 .small{
  display: block;
  margin-top: 10px;
}
@media screen and (max-width: 1300px) {
 #mv h1 {
  font-size: 2.15vw;
  max-width: 90vw;
 }
 #mv h1 .big{
  font-size: 7.69vw;
 }
}

@keyframes zoomImg {
  100% {
    transform: scale(1.1)
  }
}

@media screen and (max-width: 768px) {
  #mv {
    padding-top: 46.13333333333333%;
  }

  #mv::before {
    background-image: url(../images/mv_sp.jpg);
  }
 #mv h1 {
  font-size: 3.73vw;
  max-width: 91.46vw;
  line-height: 1.07;
 letter-spacing: 0.38em;
 }
 #mv h1 .big{
  font-size: 14.4vw;
 letter-spacing: 0;
 line-height: 1.1;
 }

}

/**************************
  vision
 **************************/

#vision {
 position: relative;
  background: #E6E6E6;
  padding-bottom: 6.8125vw;
  overflow: hidden;
}
#vision::before{
 content: "";
 display: block;
 background: url("../images/bg_vision.png") no-repeat left top;
 width: 1527px;
 height: 1286px;
 position: absolute;
 left: 45.125vw;
 /*right: -654px;*/
 top: -186px;
 z-index: -1;
}

.decoration .vision {
  max-width: 31.875vw;
  margin-bottom: 2vw;
}
.vision-graph{
 position: relative;
 margin-top: 4vw;
}
.vision-graph .caption{
 text-align: right;
 margin-top: 18px;
 font-size: 14px;
}
.vision-graph::after{
 content: "";
 display: block;
 background: url("../images/vision_arrow.png") no-repeat left top /100% auto;
 width: 616px;
 height: 45px;
 margin: 3.43vw auto 0;
}

.vision-content {
 margin-top: 3.375vw;
}
.vision-content h3{
 margin-bottom: 3vw;
 font-size: 32px;
 font-weight: 700;
 line-height: 1.4;
}
.vision-content h3 span{
 display: inline-block;
 border-bottom: 2px #3D3D3D solid;
 padding: 0 0 5px;
}
.vision-content p{
 font-size: 18px;
 margin: 0;
 line-height: 2;
}
.vision-content p + p{
 margin-top: 20px;
}
.vision-content span{
  display: inline-block;
  margin-bottom: 1.3vw;
}
.vision-content span:last-child{
  margin-bottom: 0;
}
@media screen and (min-width: 769px) {
.vision-content {
 display: flex;
 flex-flow: column;
 align-items: center;
}
.vision-content picture {
 display: block;
 margin-top: 2.68vw;
}
.vision-content .txt {
  width: 100%;
}

}/*-PC only-*/


@media screen and (max-width: 768px) {
 #vision{
  padding-bottom: 7.2vw;
 }
#vision::before{
 content: "";
 display: block;
 background-size:100% auto;
 width: 176vw;
 height: 148vw;
 position: absolute;
 left: 39.4666vw;
 top: 0;
 z-index: -1;
}
  .decoration .vision {
    max-width: 55.73vw;
  }
 .vision-graph{
  margin-top: 5.86vw;
 }
.vision-graph .caption{
 text-align: left;
 margin-top: 7px;
 font-size: 12px;
}
.vision-graph::after{
 content: "";
 display: block;
 background: url("../images/vision_arrow_sp.png") no-repeat left top /100% auto;
 width: 100%;
 max-width: 616px;
 height: 6.66vw;
 max-height: 45px;
 margin: 8.26vw auto 0;
}

.vision-content {
 margin-top: 7.4666vw;
}
.vision-content h3{
 margin-bottom: 6.533vw;
 font-size: 21px;
}
.vision-content h3 span{
 border-bottom: 1px #3D3D3D solid;
 padding: 0 0 1px;
}
.vision-content p{
 font-size: 15px;
 margin: 0;
 line-height: 1.66;
}
.vision-content p + p{
 margin-top: 1.6em;
}
.vision-content span{
  display: inline;
}
.vision-content picture {
 display: block;
 margin-top: 6vw;
}

}


/**************************
  naturepositive_field
 **************************/
.naturepositive_field{
 background: url("../images/bg_shirabe.png") no-repeat left bottom/cover;
 padding-top: 5vw;
 padding-bottom: 4.375vw;
}
.naturepositive_field h3{
 margin-bottom: 2.68vw;
 color: #fff;
 font-size: 28px;
 font-weight: 700;
 text-align: center;
 line-height: 1.4;
 text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.41);
}
.naturepositive_field >div{
 max-width: 700px;
 margin: 0 auto;
}
.naturepositive_field a{
 display: block;
 background: #FFFFFF;
 transition:transform 0.3s ease 0s;
}
.naturepositive_field a:hover{
    transform: scale(1.06);
}
.naturepositive_field h4{
 padding: 17px 0 19px;
 font-size: 22px;
 font-weight: 700;
 text-align: center;
 line-height: 1.45;
}
.naturepositive_field .article-image{
 padding: 0 20px 19px;
}
.naturepositive_field .article-text{
 position: relative;
 background: #F1F1F1;
 padding: 20px;
}
.article-text{
 position: relative;
}
.article-text::before {
  display: block;
  position: absolute;
  content: "";
  bottom: 0;
  right: 0;
  width: 3.85vw;
  height: 3.85vw;
  background: url(../shared/images/arrow.svg) center center no-repeat #861D3C;
  background-size: 24px;
}
@media screen and (min-width: 1300px) {
  .article-text::before {
    width: 50px;
    height: 50px;
  }
}
.naturepositive_field .article-text p{
 margin: 0;
 font-size: 1.538vw;
 font-weight: 700;
}
@media screen and (min-width: 1300px) {
 .naturepositive_field .article-text p{
  font-size: 20px;
 }

.article-title {
  text-shadow: 0 0 10px rgba(0, 0, 0, .41)
}
}/*-PC only-*/

@media screen and (max-width: 768px) {
.naturepositive_field{
 background: url("../images/bg_shirabe_sp.png") no-repeat left bottom/cover;
 padding: 6.13vw 4.26vw 13.333vw;
}
.naturepositive_field h3{
 margin-bottom: 2.66vw;
 font-size: 18px;
 text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.41);
}
.naturepositive_field h4{
 padding: 2px 0 4px;
 font-size: 17px;
}
.naturepositive_field .article-image{
 padding: 0 15px 18px;
}
.naturepositive_field .article-text{
 padding:9px 51px 9px 20px;
}

.article-text::before {
  display: block;
  position: absolute;
  content: "";
  bottom: 0;
  right: 0;
  width: 9.33vw;
  height: 9.33vw;
  background-size:4vw;
}
.naturepositive_field .article-text p{
 font-size: 4.266vw;
}
}/*-SP only-*/

/**************************
  attempt
 **************************/

#attempt {
  background: url("../images/bg_attempt.png") no-repeat top center /100% auto #2E372F;
  background-size: 100% auto;
  color: #fff;
  overflow: hidden;
  padding-bottom: 6.43vw;
}

#attempt .attempt {
  max-width: 24.3125vw;
  height: auto;
}

.attempt-text p {
 font-size: 18px;
 line-height: 2;
}

.attempt-image {
  position: relative;
 margin-top: 4.125vw;
}

.attempt-list{
 display: flex;
 justify-content: center;
 gap:0 3px;
}
.attempt-list ul{
 border: 1px #fff solid;
 background: rgba(255,255,255,.1);
 width: 31.53%;
 max-width: 410px;
 padding: 20px;
 margin: 0;
 list-style: none;
}
.attempt-list ul li + li{
 margin-top: 2px;
}
.attempt-list ul li a,
.attempt-image .support a{
 position: relative;
 display: block;
 background: #FFFFFF;
 padding: 18px 0 18px 76px;
 font-size:1.25vw;
 font-weight: 500;
 line-height: 1.4;
}
.attempt-list ul li a::before,
.attempt-image .support a::before{
 content: "";
 display: block;
 background: #F1F1F1;
 width: 56px;
 height: 100%;
 position: absolute;
 left: 0;
 top: 0;
}
.attempt-list ul li a::after,
.attempt-image .support a::after{
 content: "";
	display: block;
	border-bottom: 2px #861D3C solid;
	border-right: 2px #861D3C solid;
	width: 7px;
	height: 7px;
	margin-top: -4px;
	position: absolute;
	top: 50%;
 left: 22px;
	-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
@media screen and (min-width: 1300px) {
 .attempt-list ul li a,
.attempt-image .support a{
  font-size: 20px;
 }
}

.attempt-image .support::before{
 content: "";
 display: block;
 background: url("../images/attempt_arrow.png") no-repeat left top/100% auto;
 width: 841px;
 height: 80px;
 margin: 30px auto 17px;
}
.attempt-image .support p{
 border-radius: 200px;
 background: #fff;
background: linear-gradient(135deg,  #ffffff 0%,#d7d7d7 100%);
 max-width: 669px;
 padding: 7px;
 margin: 0 auto;
 color: #1D8744;
 font-size: 36px;
 font-weight: 700;
 text-align: center;
}
.attempt-image .support p span{
 display: block;
 border-radius: 200px;
background: linear-gradient(135deg,  #DCDCDC 0%,#FDFDFD 100%);
 padding: 20px;
}
.attempt-image .support a{
 border: 1px #D2D2D2 solid;
 max-width: 370px;
 margin: 15px auto 0;
 text-align: left;
}

@media screen and (max-width: 768px) {
  #attempt {
    background-image: url(../images/bg_attempt_sp.png);
   padding-bottom: 13.3vw;
  }

  #attempt .attempt {
    max-width: 42.4vw;
  }
.attempt-text p {
 font-size: 15px;
 line-height: 1.66;
}

.attempt-image {
 margin-top: 6.86vw;
}

.attempt-list{
  margin: 0 calc(50% - 48vw);
  width: 95vw;
 gap:0 1px;
}
.attempt-list ul{
 width: calc((100% - 2px) / 3);
 padding: 3px;
}
.attempt-list ul li + li{
 margin-top: 1px;
}
.attempt-list ul li a,
.attempt-image .support a{
  display: flex;
  align-items: center;
 padding: 5px 0 5px 19px;
 font-size:3vw;
 line-height: 1.3;
 min-height: 53px;
}
.attempt-list ul li a::before,
.attempt-image .support a::before{
 width: 16px;
 height: 100%;
}
.attempt-list ul li a::after,
.attempt-image .support a::after{
 border-width: 1px;
	width: 5px;
	height: 5px;
	margin-top: -3px;
 left: 6px;
}
.attempt-list ul li a span {
  letter-spacing: -0.05em;
}
.attempt-image .support::before{
 background: url("../images/attempt_arrow_sp.png") no-repeat left top/100% auto;
 width: 64.26vw;
 height: 8vw;
 margin: 4vw auto 2.29vw;
}
.attempt-image .support p{
 width: 70.13vw;
 padding: 2px;
 font-size: 2.93vw;
}
.attempt-image .support p span{
 padding: 8px;
}
.attempt-image .support a{
 max-width: 156px;
 margin: 5px auto 0;
}
}

/**************************
  article-lists
 **************************/
.article-lists{
 position: relative;
 background: url("../images/bg_articlelists01.png") no-repeat right top/1600px auto, url("../images/bg_articlelists02.png") no-repeat left bottom/1600px auto;
 padding: 8vw 0 8.25vw;
}
.article-lists h2{
 margin-bottom: 2.75vw;
 position: relative;
 display: flex;
 align-items: center;
 font-size: 36px;
 line-height: 1.4;
}
.article-lists ul + h2{
 margin-top: 4.375vw;
}
.article-lists h2::after{
 content: "";
 display: block;
 background: #80D29C;
 width: 90%;
 height: 15px;
}
.article-lists h2 span{
 margin-right: 28px;
 white-space: nowrap;
}
.article-lists h2:nth-of-type(2)::after{
 background:#50B170 ;
}
.article-lists h2:nth-of-type(3)::after{
 background:#1D8744 ;
}
.article-lists h2:nth-of-type(4)::after{
 background:#035D24 ;
}

.article-lists ul{
 list-style: none;
 padding: 0;
 margin: 0;
 display: flex;
 flex-flow: row wrap;
 justify-content: flex-start;
 gap:40px 40px;
}
.article-lists ul li{
 width: calc((100% - 120px) / 4);
 max-width: 295px;
 background: #F1F1F1;
}
.article-lists ul li#support01{
 width: calc((100% - 40px) / 2);
 max-width: 630px;
}
.article-lists ul li a{
 display: block;
 background: #F1F1F1;
 transition:transform 0.3s ease 0s;
}
.article-lists ul li a:hover{
    transform: scale(1.06);
}
.article-lists ul li p{
 display: flex;
 flex-flow: row wrap;
 align-content: center;
 align-items: center;
 justify-content: flex-start;
 height: 6.8125vw;
 padding: 0 0 5px 30px;
 margin: 0;
 font-size: 1.25vw;
 font-weight: 700;
 line-height: 1.45;
}
.article-lists ul li p span{
 width: 100%;
 font-size: 1vw;
 font-weight: 500;
 line-height: 1.5;
}
@media screen and (min-width: 1300px) {
.article-lists ul li p{
 height: 101px;
 font-size: 20px;
}
.article-lists ul li p span{
 font-size: 16px;
}
}/*-PC only-*/

@media screen and (max-width: 768px) {
.article-lists{
 position: relative;
 background: url("../images/bg_articlelists01.png") no-repeat right top/185% auto, url("../images/bg_articlelists02.png") no-repeat left bottom/200% auto;
 padding: 13.3vw 0 13vw;
}
.article-lists h2{
 margin-bottom: 6.15vw;
 font-size: 23px;
 line-height: 1.4;
}
.article-lists ul + h2{
 margin-top: 14.93vw;
}
.article-lists h2::after{
 height: 8px;
}
.article-lists h2 span{
 margin-right: 10px;
}
.article-lists ul{
 gap:13px 13px;
}
.article-lists ul li{
 width: calc((100% - 13px) / 2);
 max-width: 295px;
}
.article-lists ul li#support01{
 width: auto;
 max-width: 630px;
}

.article-lists ul li p{
 align-content: flex-start;
 align-items: flex-start;
 justify-content: flex-start;
 height: 30.9vw;
 padding: 15px 0 5px 15px;
 font-size: 4.26vw;
 line-height: 1.5;
}
.article-lists ul li p span{
 font-size: 3.46vw;
 line-height: 1.46;
}
 .article-lists ul li#support01 p{
  height:17.3vw;
  padding-top: 4.5vw;
  padding-left: 27px;
 }
}/*-SP only-*/

/**************************
  project
 **************************/
#project {
 position: relative;
  background: url("../images/bg_project.png") no-repeat bottom center /100% auto #E6E6E6;
  overflow: hidden;
  padding-bottom: 5.3125vw;
}

#project .project {
  max-width: 34.71875vw;
  height: auto;
}
.project-list{
 display: flex;
 justify-content: space-between;
 list-style: none;
 padding: 0;
 margin: 0;
}
.project-list li{
 width: 46.92%;
 max-width: 630px;
}
.project-list li a{
 position: relative;
 display: block;
 background: #fff;
 transition:transform 0.3s ease 0s;
}
.project-list li a:hover{
    transform: scale(1.06);
}
.project-list li a::after {
  display: block;
  position: absolute;
  content: "";
  bottom: 0;
  right: 0;
  width: 3.85vw;
  height: 3.85vw;
  background: url(../shared/images/arrow.svg) center center no-repeat #861D3C;
  background-size: 24px;
}
.project-list li a picture{
 display: block;
 width: 70.49%;
}
.project-list li a p{
 position: absolute;
 left: 62.29%;
 top: 12.3%;
 font-size: 2.25vw;
 font-weight: 700;
 line-height: 1.4;
}
.project-list li a p span{
 display: inline-block;
 background: #fff;
 padding: 0 5px;
 line-height: 1.25;
}
.project-list li > p{
 margin-top: 2.25vw;
 font-size: 1.125vw;
 line-height: 2;
}

@media screen and (min-width: 1300px) {
.project-list li a::after {
    width: 50px;
    height: 50px;
  }
.project-list li a p{
 font-size: 36px;
}
.project-list li > p{
 margin-top: 36px;
 font-size: 18px;
}
}

@media screen and (max-width: 768px) {
  #project {
    background-image: url(../images/bg_project_sp.png);
  }

  #project .project {
    max-width: 60.26666vw;
  }
 .project-list{
 display: block;
}
.project-list li{
 width: auto;
 max-width: none;
}
.project-list li + li{
  margin-top: 4vw;
 }
.project-list li a{
}
.project-list li a::after {
  width: 9.33vw;
  height: 9.33vw;
  background-size: 4vw;
}
.project-list li a picture{
 width: 70.55%;
}
.project-list li a p{
 position: absolute;
 left: 61.22%;
 top: 12.35%;
 font-size:6.13vw;
 line-height: 1.478;
}
.project-list li a p span{
 display: inline-block;
 background: #fff;
 padding: 0 4px;
 line-height: 1.26;
}
.project-list li > p{
 margin-top:5.86vw;
 font-size: 4vw;
 line-height: 1.66;
}
}
/**************************
  reference
 **************************/
#reference {
  background: url("../images/bg_reference.png") no-repeat top right /100% auto;
  overflow: hidden;
  padding-bottom: 5.9375vw;
}

#reference .reference {
  max-width: 51.175vw;
  height: auto;
}
.reference-list{
 list-style: none;
 padding: 0;
 margin: 0;
 display: flex;
 flex-flow: row wrap;
 justify-content: space-between;
}
.reference-list li{
 width: 46.92%;
 max-width: 630px;
}
.reference-list li a{
 position: relative;
 background: #F1F1F1;
 display: flex;
 align-items: center;
 transition:transform 0.3s ease 0s;
}
.reference-list li a:hover{
    transform: scale(1.06);
}
.reference-list li picture{
 width:21.3% ;
 max-width: 130px;
}
.reference-list li p{
 padding: 0 0 0 6.2%;
 font-size: 1.25vw;
 font-weight: 700;
 margin: 0;
}
@media screen and (min-width: 1300px) {
.reference-list li p{
 font-size: 20px;
}
}

@media screen and (max-width: 768px) {

  #reference {
   background-position: top right;
    background-size:150% auto;
   padding-bottom: 8.1866vw;
  }

  #reference .reference {
    max-width: 89.86vw;
  }
 .reference-list{
  display: block;
}
.reference-list li{
 width: auto;
 max-width:none;
}
 .reference-list li + li{
  margin-top: 4vw;
 }
.reference-list li a{
 position: relative;
 background: #F1F1F1;
 display: flex;
 align-items: center;
}
.reference-list li picture{
 width:25.65% ;
 max-width: 130px;
}
.reference-list li p{
 padding: 0 0 0 6.793%;
 font-size: 4.266vw;
}
}

@media screen and (max-width: 768px) {
  #global-header {
    transition: height .3s;
  }
  #global-header .wrap {
    padding-top: 46px;
    padding-bottom: 20px;
    transition: padding-top .3s;
  }
  #global-header .logo.left {
    position: absolute;
    top: 10px;
    transition: top .3s;
  }
  #global-header.is-active {
    height: 50px;
  }
  #global-header.is-active .wrap {
    padding-top: 20px;
  }
  #global-header.is-active .logo.left {
    top: -20px;
  }
}


/**************************
  comingsoon
 **************************/
 #comingsoon {
  position: relative;
   background: url("../images/bg_project.png") no-repeat bottom center /100% auto #E6E6E6;
   overflow: hidden;
   padding-bottom: 5.3125vw;
 }

 #comingsoon .comingsoon {
  max-width: 92vw;
  height: auto;
}

 .comingsoon_image {
  text-align: center;
  margin: 10vw auto;
  max-width: 35vw;
 }

 @media screen and (max-width: 768px) {
   #comingsoon {
     background-image: url(../images/bg_project_sp.png);
   }
   #comingsoon .comingsoon {
    max-width: 100%;
    height: auto;
  }
  .comingsoon_image {
    margin: 20% auto;
  }
 }