@charset "utf-8";

/* /////////////////////////////
      下層共通
///////////////////////////// */

/*strength*/
.keyvisual.strength{
      height: 400px;
      background: url(../img/strength/key_strength.png) no-repeat center;
      background-size: cover;
      position: relative;
}

.keyvisual p{
      padding-top: 100px;
      font-size: 70px;
      color: #fff;
      font-weight: bold;
}

@media screen and (max-width: 1000px) {
      .keyvisual p{
            padding-left: 30px;
      }
}

.keyvisual span{
      font-size: 25px;
      color: #fff;
      font-weight: bold;
      display: block;
}

.w-1190{
      max-width: 1190px;
      margin: auto;
}

.col01{
      margin-top: 200px;
}

.col_txt{
      padding-right: 150px;
}

.col_txt02{
      padding-right: 0px;
      padding-left: 150px;
}

.col_txt h2{
      position: relative;
      font-size: 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 0.8;
}
.col_txt h2.st01:after{
      content: "1";
      color: #004524;
      font-size: 150px;
      font-weight: bold;
}

.col_txt h2.st02:after{
      content: "2";
      color: #004524;
      font-size: 150px;
      font-weight: bold;
}

.col_txt h2.st03:after{
      content: "3";
      color: #004524;
      font-size: 150px;
      font-weight: bold;
}

.col_txt h2.st04:after{
      content: "4";
      color: #004524;
      font-size: 150px;
      font-weight: bold;
}

.col_txt h3{
      margin-top: 50px;
      font-size: 20px;
}

.col_txt  p{
      margin-top: 50px;
      line-height: 1.8;
      font-size: 15px;
}

.lineup {
      margin-top: 120px;
}

.lineup figure{
  width: 260px;
  padding: 0 5px;
  position: relative;
}

.lineup figure span{
  position: absolute;
  top: 50%;
  left: 50%;
  margin: auto;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 30px;
  font-weight: bold;
  display: block;
  width: 100%;
  text-align: center;
}
@media screen and (max-width:1200px){
  .lineup figure span{
    font-size: 1.4vw;
  }
}

.inner {
    margin: auto;
    max-width: 1200px;
    width: 100%;
}

.col01 .inner {
    text-align: center;
    padding: 120px 20px;
}

.col02{
      padding: 100px 0 0;
      background-color: #F5F5F5;
}

.col02 .gr_box {
      margin: 20px auto 100px;
}

.col02 .gr_box .flex{
      margin-bottom: 20px;
}

.col02 .gr_box p{
      padding: 30px;
      box-sizing: border-box;
      background-color: #B9D6C6;
      text-align: center;
      font-size: 20px;
}

.col03{
      padding: 160px 0 130px;
}

.col04{
      padding: 160px 0 140px;
      background-color: #F5F5F5;
}

.detail_txt span{
      display: inline-block;
}

/*about*/
.keyvisual.about{
      height: 400px;
      background: url(../img/about/key_about.png) no-repeat center;
      background-size: cover;
      position: relative;
}

.about_sec .col_txt h3{
      margin-top: 0;
}

table.company_info{
      max-width: 900px;
      margin: 110px auto 80px;
}

table.company_info tr{
      padding: 20px 0;
      border-bottom: 1px solid #707070;
      display: block;
}

table.company_info tr:last-child{
      border:none;
}

table.company_info th{
      width: 170px;
      text-align: left;
      letter-spacing: 10px;
      font-size: 15px;
}

.access_info{
      max-width: 850px;
      margin: 100px auto 0;
      display: flex;
      justify-content: space-between;
}

span.mthod{
      text-align: center;
      font-size: 20px;
      font-weight: bold;
      display: block;
      position: relative;
}

span.mthod:after{
      content: "";
      width: 30px;
      height: 1px;
      bottom: -10px;
      left: 0;
      right: 0;
      margin: auto;
      position: absolute;
      background-color: #000;
}

span.minutes{
      font-size: 16px;
}

.icon{
      width: 57px;
      margin: auto;
      text-align: center;
}

.timeline {
      max-width: 840px;
      margin: auto;
      list-style: none;
}
.timeline > li {
      margin-bottom: 60px;
}

  .timeline > li {
    overflow: hidden;
    margin: 0;
    position: relative;
  }
  .timeline-date {
    width: 110px;
    float: left;
    margin-top: 0;
  }
  .timeline-content {
    width: 75%;
    float: left;
    border-left: 1px #e5e5d1 solid;
    padding-left: 30px;
    padding-bottom: 30px;
  }
  .timeline-content:before {
    content: '';
    width: 12px;
    height: 12px;
    background: #DBDBDB;
    position: absolute;
    left: 105px;
    top: 7px;
    border-radius: 100%;
  }

.about_sec .col_txt h3{
      font-size: 20px;
}

.about_sec .col_txt .place{
      margin-top: 20px;
}

.col05{
      padding: 150px 0 70px;
}

.col06{
      padding: 200px 0;
      background-color: #F5F5F5;
}
.col07{
      padding: 100px 0;
      /* background-color: #F5F5F5; */
}


.col07 figure.maki_img{
      max-width: 710px;
      margin: 50px auto 100px;
}

.col07 .btn_img{
      max-width: 572px;
      margin: 50px auto 0;
      display: block;
}

/*works*/
.keyvisual.works{
      height: 400px;
      background: url(../img/works/key_works.png) no-repeat center;
      background-size: cover;
      position: relative;
}

.about_sec .col_txt h3{
      margin-top: 0;
}

.model_box{
      max-width: 1000px;
      margin: 100px auto 200px;
      /* display: flex; */
      justify-content: space-between;
      flex-wrap: wrap;
}

.modal_item{
      width: 450px;
      margin-bottom: 40px;
}

.swiperModalButton {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: space-around;
}

.modalOpen{
      width: 100%;
      position: relative;
      position: relative;
}

.modalOpen .imgTtl{
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      color: #fff;
      font-size: 25px;
      text-shadow: 3px 2px 10px #5A5252;
      font-family: 'Shippori Mincho', serif;
}

.modalOpen:hover{
    cursor: pointer;
}
.modalOpen:hover:before{
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      background-color: #000;
      z-index: 2;
      opacity: .3;
      transition: .3s;
}

/* モーダル */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s;
  pointer-events: none;
  opacity: 0;
  z-index: 10000;
  background-color: rgba(255, 255, 255, 0.9);
}

/* モーダルがactiveの時 */
.modal.is-active {
  opacity: 1;
  pointer-events: auto;
}

/* モーダル背景のオーバーレイ部分 */
.modal__overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

/* モーダルのコンテンツ */
.modal__content {
    position: relative;
    width: 100%;
    max-width: 800px;
}
.modal_inner {
    filter: drop-shadow(0px 0px 4px #ddd);
    width: 100%;
    margin: 0 auto;
    border-radius: 2px;
    padding: 20px 25px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

/* 閉じるボタン */
.modal__close-btn {
    position: absolute;
    right: 0;
    top: 20px;
    width: 40px;
    height: 40px;
    cursor: pointer;
    z-index: 20;
}
.modal__close-btn:hover {
    opacity: 0.8;
}

/* 閉じるボタンのX */
.lineClose {
    display: inline-block;
    vertical-align: middle;
    color: #313131;
    line-height: 1;
    width: 2rem;
    height: 0.1rem;
    background: currentColor;
    border-radius: 0.1rem;
    position: relative;
    transform: rotate(45deg);
}
.lineClose::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: inherit;
  border-radius: inherit;
  transform: rotate(90deg);
}
p.swiperText {
      margin: 30px auto 0;
      text-align: center;

    
}

p.swiperText img{
      width: 750px;
      height: 560px;
      object-fit: cover;
      object-position: center;
    
}

@media screen and (max-width: 768px) {
      p.swiperText {
            margin: 30px auto 0;
            text-align: center;

      } 
      p.swiperText img{
            width: 100%;
            height: 250px;
            object-fit: cover;
            object-position: center;
          
      } 
}

.swiper-wrapper span{
      display: block;
      font-size: 24px;
      text-align: center;
}

.swiper-button-next, .swiper-button-prev{
      color: #000!important;
}

.swiper-button-prev, .swiper-rtl .swiper-button-next{
      left: -50px!important;
}

.swiper-button-next, .swiper-rtl .swiper-button-prev{
      right: -50px!important;
}

.modal_detail{
      display: flex;
      justify-content: center;
      margin: 50px auto 0;
      font-size: 15px;
}

.modal_detail .left{
      /* margin-right: 7vw; */
}

@media screen and (max-width: 768px) {
      .modal_detail .left{
            width: 100%;
            text-align: left;
      }
      .modal_detail .right{
            width: 100%;
            text-align: left;
      }
}

/*products*/
.keyvisual.products{
      height: 400px;
      background: url(../img/products/key_products.jpg) no-repeat center;
      background-size: cover;
      position: relative;
}

.products_sec .top_woods .more_btn_green {
    margin: auto;
    max-width: 535px;
    width: 100%;
}

.products_sec .col01 h3{
      margin-top: 50px;
      font-size: 35px;
      text-align: center;
}

.products_sec .model_box{
      max-width: 1200px;
      margin: 50px auto 0px;
}

.products_sec .swiperModalButton{
      justify-content: center;
}
.products_sec .modal_inner{
      width: 60%;
      position: relative;
}
.products_sec .modalOpen{
      width: 23%;
      position: relative;
}
.products_sec .modalOpen span{
      position: absolute;
      top: 50%;
      left: 50%;
      margin: auto;
      transform: translate(-50%, -50%);
      color: #fff;
      font-size: 25px;
      font-weight: bold;
      display: block;
      z-index: 1000;
      font-family: 'Shippori Mincho', serif;
      width: 100%;
      text-shadow: 0px 0px 10px rgba(0, 0, 0, 1);

}
@media screen and (max-width:1000px){
  .products_sec .modalOpen span{
    font-size: 1.4vw;
  }
}
.products_sec .modalOpen:before{
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
}
.products_sec .modalOpen:hover:before{
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      background-color: #000;
      z-index: 2;
      opacity: .3;
      transition: .3s;
}
.products_sec .modal__close-btn{
      top: 150px;
      right: -150px;
}
.products_sec .modal_detail{
      display: block;
      margin: 20px auto 0;
}
.products_sec .top_woods .inner{
      padding: 50px 20px;
}

/*contact*/
.contact_sec{
      background-color: #004524;
      padding-bottom: 200px;
}

.contact_sec h2{
      margin: 100px auto 50px;
      color: #fff;
}

.contact_sec p,.contact_sec a{
      color: #fff;
}

.contact_box{
      margin: 50px auto;
      padding: 30px 0;
      border-top: 1px solid #fff;
      border-bottom: 1px solid #fff;
}

.contact_form{
      padding: 70px 0 100px;
      font-size: 15px;
}

.contact_sec .info_col {
      margin: 10px 0 30px;
}

.contact_sec .info_col span{
      width: 175px;
      display: block;
}

.contact_sec .info_col span.wpcf7-form-control-wrap{
      width: 100%;
      display: block;
}

input[type="text"],textarea,.wpcf7 input[type="email"]{
      width: 100%;
      border: none;
}

input[type="text"],.wpcf7 input[type="email"]{
      height: 40px;
}

input[type="submit"]{
      width: 350px;
      height: 70px;
      line-height: 70px;
      margin: 100px auto 0;
      display: block;
      background-color: #fff;
      color: #000;
      border: none;
      font-size: 20px;
}

.contact_sec .info_col label{
      display: flex;
      align-items: center;
      justify-content: space-between;
}

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output{
      display: none;
}

/*news*/
ul.news_list{
      margin: 50px auto;
}
ul.news_list li{
      padding: 10px 0;
}
ul.news_list li a{
      display: flex;
      align-items: center;
      justify-content: flex-start;
}
ul.news_list li .day{
      padding-right: 50px;
}


@media screen and (max-width:768px){
  .keyvisual.strength,.keyvisual.about,.keyvisual.works,.keyvisual.products{
      height: 200px;
  }
  .keyvisual p{
      padding-top: 50px;
      padding-left: 30px;
      font-size: 30px;
  }
  .keyvisual span{
      font-size: 18px;
  }
  .col01{
      margin-top: 50px;
      /* padding: 0 20px; */
      box-sizing: border-box;
  }
  .products_sec .col01{
      margin-top: 50px;
      padding: 0 20px;
      box-sizing: border-box;
  }
  .products_sec .modal__close-btn{
      right: 0;
  }
  .col_txt{
      width: 100%;
      padding-right: 0;
  }
  .col_txt h2{
      font-size: 20px;
  }
  .col_txt h2.st01:after{
      content: "1";
      font-size: 70px;
      padding-left: 10px;
  }

  .col_txt h2.st02:after{
      content: "2";
      font-size: 70px;
      padding-left: 10px;
  }

  .col_txt h2.st03:after{
      content: "3";
      font-size: 70px;
      padding-left: 10px;
  }

  .col_txt h2.st04:after{
      content: "4";
      font-size: 70px;
      padding-left: 10px;
  }
  .col_txt h3{
      margin-top: 30px;
      font-size: 20px;
      text-align: center;
  }
  .col_txt p{
      width: 95%;
      margin: 30px auto 20px;
      padding: 0 20px;
      box-sizing: border-box;
  }
  .col_txt01,.col_txt02{
      padding: 0;
  }

  .col04 .flex{
      display: block;
  }

  .col04 .detail_txt span{
      width: 100%;
      display: block;
  }
  .col04 .detail_txt .flex{
      flex-wrap: wrap;
  }
  .lineup{
      margin-top: 50px;
      flex-wrap: wrap;
  }
  .top_woods_list.strength{
      padding: 0 20px;
      box-sizing: border-box;
  }
  .lineup figure{
      width: 33%;
      height: 100%;
      padding: 0 2px;
  }
  .lineup figure span{
      width: 90%;
      font-size: 18px;
      text-align: center;
    line-height: 1;
  }
  .col02{
      padding: 50px 0;
  }
  .col02 .w-1200{
      padding: 0;
  }
  .col02 .gr_box{
      margin: 10px auto 50px;
      padding: 0 5px;
  }
  .col02 .gr_box p{
      padding: 10px 5px;
      font-size: 16px;
  }
  .col03{
      padding: 50px 0;
  }
  .col04{
      padding: 50px 0;
  }
  table.company_info{
      max-width: 95%;
      margin: 50px auto 30px;
  }
  table.company_info tr{
      padding: 15px 0;
  }
  table.company_info th{
      width: 130px;
  }
  .access_info{
      max-width: 95%;
      margin: 50px auto 0;
      flex-wrap: wrap;
  }
  .timeline{
      max-width: 95%;
  }
  .timeline-date{
      width: 20%;
  }
  .timeline-content{
      width: 70%;
  }
  .timeline-content:before{
      left: 17.6vw;
      top: 1vw;
  }
  .col05{
      padding: 50px 0 0px;
  }

  .col06{
      padding: 50px 0;
  }
  .col07{
      padding: 50px 0;
  }
  .col07 .w-10{
      width: 15%;
      padding-top: 5px;
  }
  .col06 figure.maki_img{
      margin: 30px auto 50px;
  }
  .col06 .btn_img{
      max-width: 90%;
  }
  .model_box{
      margin: 50px auto;
      /* padding: 0 20px; */
  }
  .modalOpen{
      width: 95%;
      display: block;
      margin: 0 auto;
  }
  .modal_inner{
      width: 90%;
  }
  .modal_detail{
      margin: 30px auto;
      flex-wrap: wrap;
  }
  .swiper-button-prev, .swiper-rtl .swiper-button-next{
      left: 10px!important;
  }

  .swiper-button-next, .swiper-rtl .swiper-button-prev{
      right: 10px!important;
  }
  .products_sec .modalOpen{
      /* width: 44vw;
      height: 44vw; */
      width: 38vw;
      height: 38vw;

  }
  .swiperModalButton{
      gap: 4px;
  }
  .products_sec .col01 h3{
      margin-top: 30px;
      font-size: 28px;
  }
  .products_sec .modalOpen span{
      font-size: 20px;
  }
  .products_sec .model_box{
      margin: 30px auto;
  }
  .products_sec .top_woods .inner{
      padding: 30px 10px;
  }
  .products_sec .modal__close-btn{
      top: 10px;
  }
  .products_sec .modal_inner{
      width: 80%;
  }
  .swiper-button-prev, .swiper-rtl .swiper-button-next{
      left: -10px!important;
  }
  .swiper-button-next, .swiper-rtl .swiper-button-prev{
      right: -10px!important;
  }
  .contact_sec{
      padding-bottom: 50px;
  }
  .contact_sec a{
      margin: 10px auto;
      font-size: 24px;
  }
  input[type="text"], .wpcf7 input[type="email"]{
      height: 30px;
  }
  .contact_form{
      padding: 30px 0 50px;
  }
  input[type="submit"]{
      width: 80%;
      height: 40px;
      line-height: 40px;
      margin: 50px auto 0;
      font-size: 16px;
  }
  .contact_sec .info_col span{
      margin-bottom: 10px;
  }
  .contact_sec .info_col label{
      display: block;
  }
  ul.news_list{
      margin: 20px auto;
  }
  ul.news_list li a{
      display: block;
  }
  ul.news_list li .day{
      padding-right: 0;
  }
}


/* .anchor{
      margin-top: -150px;
      padding-top: 150px;
} */

.category-container__lists{
      width: 750px;
      margin: 100px auto 0px;
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
}

.category-container__lists li{
      padding: 0 10px;
      margin-bottom: 30px;
      font-size: 15px;
}




@media screen and (max-width:540px){
  .products_sec .modalOpen span{
    font-size: 14px;
  }
}
@media screen and (max-width:768px){
      .category-container__lists{
            width: 90%;
            margin: 40px auto 0px;
            display: flex;
            justify-content: flex-start;
            flex-wrap: wrap;
      }

      .category-container__lists li{
            padding: 0 10px;
            margin-bottom: 15px;
            font-size: 15px;
      }
}

.productsModal img{
      width: 274px;
      height: 274px;
      object-fit: cover;
      object-position: center;
}

.productsModalImage{
      height: 60vh;
}

@media screen and (max-width:768px){
      .productsModal img{
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
      }
      
      .productsModalImage{
            height: 50vh;
      }
      /* .productsModal img{

            width: 38vw;
            height: 38vw;
            object-fit: cover;
            object-position: center;
      } */
}

.works_image{
      width: 100%;
      height: 350px;
}

@media screen and (max-width: 768px) {
      .works_image{
            width: 100%;
            height: 200px;
      }
}

@media screen and (max-width: 1000px) {
      .productsModal img{
            /* width: 274px; */
            /* height: 170px; */
            width: 23vw;
            height: 23vw;
            object-fit: cover;
            object-position: center;
      }
      
}

@media screen and (max-width: 768px) {
      .productsModal img{
            /* width: 274px; */
            /* height: 170px; */
            width: 38vw;
            height: 38vw;
            object-fit: cover;
            object-position: center;
      }
      
}


/* /////////////////////////////
      下層ページ
///////////////////////////// */
@media screen and (max-width:1000px){
}
@media screen and (max-width:768px){
}

#cat01{
      padding-top: 150px;
      margin-top: -150px;
}
#cat02{
      padding-top: 150px;
      margin-top: -150px;
}
#cat03{
      padding-top: 150px;
      margin-top: -150px;
}
#cat04{
      padding-top: 150px;
      margin-top: -150px;
}
#cat05{
      padding-top: 150px;
      margin-top: -150px;
}
#cat06{
      padding-top: 150px;
      margin-top: -150px;
}
#cat07{
      padding-top: 150px;
      margin-top: -150px;
}
#cat08{
      padding-top: 150px;
      margin-top: -150px;
}
#cat09{
      padding-top: 150px;
      margin-top: -150px;
}
#cat10{
      padding-top: 150px;
      margin-top: -150px;
}