/* ===================================================================
   CONTENTS
=================================================================== */
/* トップページ */


.slideArea {
   position: relative;
   height: 100vh;
}
.slideArea .catch {
   font-size: 32px;
   position: absolute;
   top: 45%;
   left: 14%;
   z-index: 2;
   color: #FFF;
   text-shadow: 1px 2px 3px #000000;
   background-color:rgba(55,166,94,0.6);
   padding-left:20px;
}
#slider {
    overflow: visible;
    position: relative;
}
#slider img {
   height: 100vh;
   width: 100%;
   object-fit: cover;
}
#slider .sp-arrows {
    left: 0;
    margin-top: 0;
    top: 0;
    width: 100%;
}

@media screen and (max-width: 1100px) {
.slideArea {
   position: relative;
    margin: 58px 0 40px 0;
    height: auto;
}
.slideArea .catch {
   font-size: 20px;
   position: absolute;
   top: 30%;
   left: 6%;
   z-index: 2;
      width: 85%;
   padding: 10px;
}
#slider img {
   height: 500px;
   width: 100%;
   object-fit: cover;
}

#slider {
	padding-top: 0px;
}
    #slider .sp-arrows {
        top: 45%;
    }
}

#slider .sp-arrow {
    height: 50px;
    transition: all 0.2s ease 0s;
    width: 50%;
}

#slider .sp-arrow:hover {
    opacity: 0.6;
}

#slider .sp-arrow::before {
    background: rgba(0, 0, 0, 0) url(../img/slider_prev.png) no-repeat scroll 0 center;
    height: 100%;
    left: 100%;
    top: 0;
    transform: none;
    width: 49px;
}

#slider .sp-arrow::after {
    display: none;
}

#slider a {
    transition: all 0.2s ease 0s !important;
}

#slider .sp-previous-arrow {
    left: -425px;
    top: 200px;
}

#slider .sp-next-arrow {
    right: -425px;
    top: 200px;
}

@media screen and (max-width: 1100px) {
    #slide .sp-mask {
        min-height: 200px !important;
    }

    .sp-slide img {
        width: 100%;
        height: auto;
    }

    #slider .sp-next-arrow:before,
    #slider .sp-previous-arrow:before {
        background-size: 60%;
    }

    #slider .sp-next-arrow {
        right: -45%;
        top: 0;
    }

    #slider .sp-previous-arrow {
        left: -45%;
        top: 0;
    }
}
.top_emerArea {
   position: absolute;
   bottom: 0;
   display: block;
   width: 100%;
}
.top_emer {
   background-color: #37a65e;
   color: #FFF;
   text-align: center;
   padding: 22px 1em 22px 15%;
   z-index: 10;
   position: relative;
   width: 100%;
}
@media screen and (max-width: 1100px) {
.top_emer {
   padding: 12px 1em 12px 1em;
   letter-spacing: 0;
   width: 100%;
   font-size: 12px;
}
}
.top_news_titleArea {
   position: relative;
   height: 0;
}
.top_news_title {
   background-color: #37a65e;
   position: absolute;
   top: -70px;
   color: #FFF;
   text-align: center;
   padding: 100px 30px;
   width: 20%;
   max-width: 380px;
   position: relative;
   z-index: 9;
   display: inline-block;
   font-weight: bold;
}
.top_news {
   padding: 45px 0 0 260px;
   margin-bottom: 110px;
}
.top_news li {
   padding: 25px 0;
   border-bottom: 1px solid #cacaca;
}
.top_news li a {
   color: #313131;
   text-decoration: none;
}
.tn_day {
   width: 20%;
}
.tn_txt {
   width: 78%;
}
@media screen and (max-width: 1100px) {
.top_news_titleArea {
   position: relative;
   height: inherit;
   margin: -60px 0 0 0;
}
.top_news_title {
   background-color: #37a65e;
   position: relative;
   top: inherit;
   color: #FFF;
   text-align: center;
   padding: 30px 10px;
   width: 80%;
   max-width: 90%;
   position: relative;
   z-index: 9;
   display: inline-block;
   font-weight: bold;
}
.top_news {
   padding: 0 0 0 0;
   margin-bottom: 50px;
}
.top_news li {
   padding: 20px 0;
}
.tn_day {
   width: 100%;
}
.tn_txt {
   width: 100%;
}
}

.top_about {
   margin: 0 auto 90px;
}
.top_about_left {
   padding: 0 8%;
   width: 50%;
}
.top_about_right {
   width: 50%;
}
.top_about_en {
   color: #37a65e;
   font-weight: bold;
   font-size: 36px;
   margin-bottom: 40px;
}
@media screen and (max-width: 1100px) {
.top_about {
   margin: 0 auto 40px;
}
.top_about_left {
   padding: 0 3%;
   width: 100%;
   margin-bottom: 25px;
   order: 1;
}
.top_about_right {
   width: 100%;
   order: 2;
}
}
.title_en {
   color: #37a65e;
   font-size: 36px;
   font-weight: bold;
}
@media screen and (max-width: 1100px) {
.title_en {
   color: #37a65e;
   font-size: 24px;
}
}
.top_product {
   margin: 0 auto 100px;
}
.tp {
   width: 25%;
   position: relative;
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}

.tp3x {
   width: 33.33%;
   position: relative;
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}

.tp3x img, .tp02 img {
 transition: .5s all;
}
.tp3x img:hover, .tp02 img:hover {
  transform:scale(1.2,1.2);
  transition: .5s all;
}



.tp02 {
   width: calc(100% / 3) ;
}
.tp img, .tp02 img {
 transition: .5s all;
}
.tp img:hover, .tp02 img:hover {
  transform:scale(1.2,1.2);
  transition: .5s all;
}
.tp_txt {
   color: #FFF;
   position: absolute;
   margin: auto;
   pointer-events: none;
   font-size: 24px;
}
@media screen and (max-width: 1100px) {
.top_product {
   margin: 0 auto 50px;
}
.tp, .tp02 {
   width: 50%;
   position: relative;
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}
.tp_txt {
   font-size: 20px;
}
}
.top_company {
   margin: 0 auto 80px;
}


.top_company img { border-radius:5px;}



.tc {
   width: 27%;
   margin: 0 1.8%;
   position: relative;
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}
.tc img {
 transition: .5s all;
}
.tc img:hover{
	border-radius:5px !important;
  transform:scale(1.2,1.2);
  transition: .5s all;
}
@media screen and (max-width: 1100px) {
.tc {
   width: 80%;
   margin: 0 5% 15px;
}

.tp3x {width:100%;}
}
.tc_txt {
   color: #FFF;
   position: absolute;
   margin: auto;
   pointer-events: none;
   font-size: 20px;
}
.top_under {
   margin: 0 auto 55px;
}
.tu {
   width: 50%;
   margin: 0;
   position: relative;
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}
.tu img {
 transition: .5s all;
 width: 100vw;
 height: 100%;
 object-fit: cover;
}
.tu img:hover {
  transform:scale(1.2,1.2);
  transition: .5s all;
}
.tu_txt {
   color: #FFF;
   position: absolute;
   margin: auto;
   pointer-events: none;
   font-size: 24px;
}
@media screen and (max-width: 1100px) {
.top_under {
   margin: 0 auto 40px;
}
.tu {
   width: 100%;
   margin: 0 0 15px;
}
}


.bt001 a {
   background-color: #0754ab;
   border-radius: 5px;
   display: inline-block;
   padding: 15px 3em;
   color: #FFF!important;
   text-decoration: none!important;
}
.bt001 a:hover {
   background-color: #00a0e9;
}



/** motion  ---------------------------------------**/
.fadeUp{
animation-name: fadeUpAnime;
animation-duration:0.8s;
animation-fill-mode:forwards;
opacity:0;
}
@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }
  to {
    opacity: 1;
  transform: translateY(0);
  }
}
.fadeUpTrigger{
    opacity: 0;
}


.fadeLeft{
animation-name: fadeLeftAnime;
animation-duration:0.8s;
animation-fill-mode:forwards;
opacity:0;
}
@keyframes fadeLeftAnime{
  from {
    opacity: 0;
  transform: translateX(100px);
  }
  to {
    opacity: 1;
  transform: translateX(0);
  }
}
.fadeLeftTrigger{
    opacity: 0;
}

.fadeRight{
animation-name: fadeRightAnime;
animation-duration:0.8s;
animation-fill-mode:forwards;
opacity:0;
}
@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(0);
  }
  to {
    opacity: 1;
  transform: translateX(100px);
  }
}
.fadeRightTrigger{
    opacity: 0;
}
@media screen and (max-width: 1100px) {
@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(-100px);
  }
  to {
    opacity: 1;
  transform: translateX(0);
  }
}
}

/*------------------------------------------------------
subpage
------------------------------------------------------*/
.subpage_header {
  border-bottom: 1px solid #ededed;
}
#title_wrap {
  border-bottom: 1px solid #ededed;
  background: url("../img/title_bg.jpg") top center no-repeat;
  background-size: cover;
  margin-top: 110px;
}
@media screen and (max-width: 1100px) {
#title_wrap {
  margin-top: 65px;
}
}
.page_title {
  padding: 50px 0 !important;
  z-index: 2;
  position: relative;
  width: 100%;
  margin: 0 auto;
  font-size: 36px;
  color: #FFF;
  line-height: 1;
  height: 100%;
    background-color: rgba(159, 221, 11, 0.3);
    display: flex;
    justify-content: center;
    align-items: center;
}
.subpage_contents {
  padding: 0 2% 80px;
}
.subpage_contents > * {
  max-width: 1100px;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 40px;
  width: 100%;
  position: relative;
  z-index: 1;
}
.subpage_contents > *:first-child {
  margin-top: 60px !important;
}
.subpage_contents > *:first-child > * {
  margin-top: 0 !important;
}
.mini_module {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}
.subpage_contents .page_link {
  position: relative;
  z-index: 2;
  justify-content: center;
  padding: 20px 2%;
  margin: 0 auto;
  max-width: none !important;
  margin-bottom: 60px !important;
  margin-top: 0 !important;
}
.page_link > *:not(:last-child) {
  margin-right: 20px;
}
.p_link, .page_link .p_link a {
  color: #333;
  font-size: 14px;
}
.p_link {
  margin-bottom: 15px;
}
.page_link .p_link a {
  padding-left: 20px;
  position: relative;
  text-decoration: none;
  display: inline-block;
}
.page_link .p_link a:hover {
  text-decoration: underline;
}
.page_link .p_link a:after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  content: "";
  vertical-align: middle;
}
.page_link .p_link a:after {
  left: 4px;
  width: 3px;
  height: 3px;
  border-top: 1px solid #37a65e;
  border-right: 1px solid #37a65e;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.page_link .p_link a:hover:after {
  border-top: 1px solid #37a65e;
  border-right: 1px solid #37a65e;
}
.subpage_contents h2, .subpage_contents h3, .subpage_contents h4, .subpage_contents h5, .subpage_contents h6 {
  display: block;
  position: relative;
  font-weight: 500;
}
.subpage_contents h2 {
  font-size: 32px !important;
  color: #37a65e;
  font-weight: 600 !important;
  letter-spacing: 0.5rem;
  padding: 25px 0 22px;
  border-top: 1px solid #37a65e;
  border-bottom: 3px solid #37a65e;
}
.subpage_contents h3 {
  font-size: 24px !important;
  color: #37a65e;
  font-weight: 600 !important;
  padding-bottom: 25px;
  position: relative;
  border-bottom: 1px solid #37a65e;
}
.subpage_contents h3:after {
  content: "";
  display: block;
  height: 4px;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: auto;
  background-color: #37a65e;
  width: 30px;
  border-radius: 5px;
}
.blog_frame .subpage_contents h3:after {
  display: none;
  content: "none";
}
.subpage_contents h4 {
  font-size: 24px !important;
  text-align: center;
  color: #37a65e;
  font-weight: 600 !important;
  padding-top: 20px;
  margin: 0 auto 60px;
}
.subpage_contents h4:after {
  content: "";
  display: block;
  height: 4px;
  position: absolute;
  bottom: -20px;
  left: 0;
  right: 0;
  margin: auto;
  background-color: #37a65e;
  width: 30px;
  border-radius: 5px;
}
.subpage_contents h5 {
  font-size: 20px !important;
  border-left: 4px solid #37a65e;
  border-bottom: 1px solid #ccc;
  padding: 7px 10px;
  padding-left: 12px;
  font-weight: 600 !important;
  color: #37a65e;
  line-height: 1;
}
.subpage_contents h6 {
  font-size: 20px !important;
  padding: 8px 20px;
  background: #37a65e;
  font-weight: 600 !important;
  color: #fff;
  border-radius: 6px;
}
.subpage_contents h6 a {
  color: #fff;
}
@media screen and (max-width: 680px) {
    .subpage_contents h2 {
    font-size: 22px !important;
    padding: 12px 0;
  }
  .subpage_contents h3 {
    font-size: 18px !important;
    padding-bottom: 10px;
  }
  .subpage_contents h3:after, .subpage_contents h4:before {
    height: 2px;
  }
  .subpage_contents h4 {
    font-size: 18px !important;
    padding-top: 10px;
  }
  .subpage_contents h5 {
    font-size: 16px !important;
  }
  .subpage_contents h6 {
    font-size: 16px !important;
    line-height: 1;
    padding: 8px 16px;
  }
}
.qa_q {
  position: relative;
  margin-bottom: 15px;
  padding-left: 30px !important;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.4;
}
.qa_a {
  position: relative;
  padding-left: 30px !important;
  font-size: 18px;
  line-height: 1.4;
  padding-bottom: 20px;
  border-bottom: 1px solid #ededed;
}
.qa_q:before {
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
  line-height: 1;
  font-weight: 500;
  font-size: 20px;
  color: #fff;
  content: "Q";
  display: flex;
  align-items: center;
  height: 50px;
  width: 50px;
  padding: 10px;
  background: #1c9881;
  border-radius: 50%;
  justify-content: center;
  z-index: 2;
  bottom: 0;
}
.qa_q > div {
  padding: 20px;
  max-width: calc(100% - 50px);
  margin-left: auto;
  position: relative;
}
.qa_a:before {
  position: absolute;
  top: 10px;
  left: 0;
  margin: auto;
  line-height: 1;
  font-weight: 500;
  font-size: 20px;
  color: #fff;
  content: "A";
  display: flex;
  align-items: center;
  height: 50px;
  width: 50px;
  padding: 10px;
  background: #533309;
  border-radius: 50%;
  justify-content: center;
}
.qa_a > div {
  padding: 20px;
  border: 1px solid #ededed;
  max-width: calc(100% - 50px);
  margin-left: auto;
  position: relative;
  background: #fff;
}
.qa_a > div:before {
  content: "";
  width: 10px;
  height: 10px;
  background: #fff;
  border-left: 1px solid #ededed;
  border-top: 1px solid #ededed;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  left: -6px;
  z-index: 2;
  transform: rotateZ(-45deg);
}
.bt_line {
  justify-content: flex-start;
  flex-flow: nowrap;
}
.bt_line > div {
  padding: 20px;
}
.bt_line > div:first-child {
  border-bottom: 2px solid #10253f !important;
  padding-right: 20px;
  width: 30%;
}
.bt_line > div:nth-child(2) {
  border-bottom: 1px solid #ededed !important;
  width: 70%;
}

.blog_frame {
  background: #f9f9f9;
  padding: 30px 0;
}
.module_blogwrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-width: 1100px;
  margin: auto;
  padding: 20px;
  background: #fff;
}
#contents .module_blog {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  padding-right: 20px;
  margin: 0 !important;
}
.module_side {
  -webkit-box-flex: 0;
  -ms-flex: none;
  flex: none;
  background: #f4f5f7;
  padding: 20px;
}

.module_blog {
   width: 73%;
}
.module_side {
   width: 25%;
}
@media screen and (max-width: 1100px) {
.module_blog {
   width: 100%;
   margin: 0 auto 30px;
}
.module_side {
   width: 100%;
   margin: 0 auto;
}
}




.ico_title {
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 2px solid #aaa;
    margin-top: 30px;
    flex-flow: nowrap;
}
.ico_title02 {
    border-bottom: none;
}
.ico_title > div:first-child {
    max-width: 80px;
    min-width: 80px;
    text-align: right;
}

.tit_txt {
    font-size: 24px;
    padding-left: 20px;
    font-weight: 600;
    color: #999;
}

@media screen and (max-width: 1100px) {
    .ico_title .tit_txt {
    font-size: 18px;
}
  .sec_rec {
    padding-bottom: 0;
  }
  .link_btn a {
    padding: 10px 35px;
  }
  .sec_tit {
    font-size: 22px;
  }

  .page_title {
    font-size: 22px;
  }
  .page_title {
    padding: 30px 20px !important;
  }
  .subpage_contents .page_link {
    justify-content: flex-start;
    margin-bottom: 0 !important;
  }
  .subpage_contents .page_link > div {
    width: calc(50% - 20px);
  }
  .page_link .p_link a {
    display: block;
  }
  .p_link, .page_link .p_link a {
    font-size: 12px;
  }
  .module_blogwrapper {
    display: block;
  }
  #contents .module_blog {
    padding: 0;
  }
  .module_side {
    width: 100%;
    max-width: 100%;
    margin: 30px auto 0 !important;
  }
  
  .pt_txt {
    font-size: 16px;
  }
  .subpage_contents .link_btn a {
    font-size: 14px;
    padding: 10px 45px;
  }
  .link_btn02 a {
    line-height: 1.3;
  }
  
    .bt_line > div {
    padding: 10px;
}
    .bt_line > div:first-child {
    padding-right: 10px;
    width: 40%;
}
    .bt_line > div:nth-child(2) {
    width: 60%;
}
    .bt_line {
        display: block;
    }
    .bt_line > div:first-child {
    border-bottom: 1px solid #10253f !important;
}
    .bt_line > div:first-child,
    .bt_line > div:nth-child(2) {
    padding: 10px;
    width: 100%;
}
    .qa_q:before,
    .qa_a:before {
    font-size: 16px;
        height: 30px;
    width: 30px;
}
    .qa_q > div, .qa_a > div {
        padding: 10px;
        max-width: calc(100% - 30px);
    }
    .qa_q, .qa_a {
        font-size: 14px;
    }
    .wrap_table {
        overflow: auto;
    }
 .wrap_table > .table {
        min-width: 680px;
    }
    .wrap_table .wrap_table .table table tr, .wrap_table .table table tr {
        width: auto!important;
        display: table-row!important;
    }
    .wrap_table .table table td, .wrap_table .table table td, .wrap_table .table table th, .wrap_table .table table th {
        display: table-cell!important;
        width: auto!important;
    }
}



.cmshtml .contact_item_table input[type='text'], .cmshtml .contact_item_table textarea, .cmshtml .contact_item_table input[type='email'], .cmshtml .contact_item_table input[type='tel'] {
	box-sizing: border-box!important;
    background-color: #f0f0f0;
    border: 0!important;
    padding: 15px!important;
}
.cmshtml .contact_item_table input[type='text']:focus, .cmshtml .contact_item_table textarea:focus, .cmshtml .contact_item_table input[type='email']:focus, .cmshtml .contact_item_table input[type='tel']:focus {
   border: 1px solid #f0bdb8;
    outline: 0;
    box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);
    padding: 15px!important;
}
.cmshtml .contact_item_table textarea {
   height: 200px;
   font-family: 'Roboto', '游ゴシック Medium', '游ゴシック体', 'Yu Gothic Medium', YuGothic, 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;font-style: normal;
}
.cmshtml .rdcontact_btn_area input[type='submit'] {
   background-color: #f5678c!important;
   border: 0!important;
   color: #FFF!important;
   padding: 15px 5em!important;
   border-radius: 40px!important;
   transition : all 0.2s ease 0s!important;
}
.cmshtml .rdcontact_btn_area input[type='submit']:hover {
   background-color: #ef3465!important;
   border: 0!important;
   color: #FFF!important;
   padding: 15px 5em!important;
   border-radius: 40px!important;
}
.cmshtml .contact_item_input, .cmshtml .contact_item_inside_input, .cmshtml .contact_item_file_box {
    padding-bottom: 20px!important;
    border-bottom: 1px solid #c9c9c9!important;
}
.cmshtml .contact_item_title:not(:first-child) {
    margin-top: 30px;
    margin-bottom: 20px;
}


.yajirusi::before {
   content: '▶';
   font-size: 10px;
  
}

.yajirusi a:hover {
   color: #37a65e!important;
} 





.tptp img {box-shadow: -13px 14px 0px 0px #5f9e1b;}

.tptp2 img { border-radius:2vh;}

.menu_sub {margin:0 auto;}


.top_sinryou_catch { text-align:center; font-size:36px; color:#333;}

.top_sinryou_txt {margin:0 auto; text-align:center; width:800px; padding-top:20px; padding-bottom:50px;}





.catch_sinryo {
  display: flex;
  align-items: center; /* 垂直中心 */
  justify-content: center; /* 水平中心 */
}
.catch_sinryo:before, .catch:after {
  border-top: 1px solid;
  content: "";
  width: 3em; /* 線の長さ */
}
.catch_sinryo:before {
  margin-right: 1em; /* 文字の右隣 */
}
.catch:after {
  margin-left: 1em; /* 文字の左隣 */
}



.gmap {width:100%;}

.sixcontents { width:100%; padding:1px;}


.wf-roundedmplus1c { font-family: "M PLUS Rounded 1c"; font-size:40px; }

@media screen and (max-width: 1100px) { 

.top_sinryou_txt {padding:10px; width:85%;} 
.top_sinryou_catch {font-size:20px !important; font-weight:600 !important;}
.gmap {width:100%;}
.wf-roundedmplus1c {  font-size:28px; }

}

.btn_04 a {
	display: inline-block;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	margin: auto;
	padding: 1rem 4rem;
	font-weight: bold;
	border: 2px solid #5ec382;
	background: #37a65e;
	color: #fff;
	border-radius: 60vh;
	transition: 0.5s;
}
.btn_04 a:hover {
	color: #5f9e1b;
	background: #fff;
}


.kuwashiku {margin-top:40px; margin-bottom:20px;}