@charset "utf-8";
/*--------------------------------------

共通

---------------------------------------*/
*{
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html{
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body{
  font-family: 'Noto Sans JP', sans-serif;
  color: #101010;
  overflow-x: hidden;
  font-size: 16px;
}

section{
  margin-bottom: 10rem;
}

ul{
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img{
  display: block;
  height: auto;
  max-width: 100%;
}

p{
  line-height: 2.0em;
}

a{
  color: #101010;
  text-decoration: none;
}
a:hover{
  transition: 0.2s ease;
}

.container{
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  width: 100%;
}

.inner{
  padding-left: 10rem;
  padding-right: 10rem;
}

.full_size{
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  width: 100vw;
}

.pc{
  display: block !important;
}
.sp{
  display: none !important;
}

.flex{
  display: flex;
}

.flex_box{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  html{
    font-size: 56.25%;
  }
  
  .container{
    padding-left: 20px;
    padding-right: 20px;
  }
  
  .inner{
    padding-left: 10px;
    padding-right: 10px;
  }
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  html{
    font-size: 50%;
  }
  
  section{
    margin-bottom: 8rem;
  }
  
  .pc{
    display: none !important;
  }
  .sp{
    display: block !important;
  }
  
  .flex{
    display: block;
  }
}

/*---------------------
ページトップに戻るボタン
-----------------------*/
#page_top{
  width: 50px;
  height: 50px;
  position: fixed;
  right: 12%;
  bottom: 20px;
  background: #93C646;
  border-radius: 50%;
  z-index: 20;
}

#page_top a{
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
}

#page_top a::before{
  content: '';
  width: 12px;
  height: 12px;
  border-top: solid 4px #ffffff;
  border-right: solid 4px #ffffff;
  position: absolute;
  right: 17px;
  top: 20px;
 transform: rotate(315deg);
  transition: 0.3s;
}

/*-- over1500px ------------------------------------------*/
@media screen and (max-width:1500px){
  #page_top{
    right: 20px;
  }
}

/*---------------------
リンクボタン
-----------------------*/
.link_btn{
  padding: 25px 0;
  text-align: center;
}

.link_btn a{
  font-size: 18px;
  font-weight: 700;
  padding-right: 80px;
  position: relative;
}
.link_btn a::before{
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  height: 70px;
  position: absolute;
    top:-22px;
    right: 0;
  transition: 0.2s ease;
  width: 70px;
}

.link_btn.reverse a{
  padding-left: 80px; 
  padding-right: 0;
}
.link_btn.reverse a::before{
  position: absolute;
    top:-22px;
    left: 0;
    right: auto;
  transform: rotate(180deg);
}


.link_btn.red a::before{
  background-image: url("../img/common/icon_arrow_red.png");
}
.link_btn.red a:hover::before{
  border: 1px solid #93C646;
  border-radius: 999px;
  background-image: url("../img/common/icon_arrow_white.png");
}

.link_btn.white a::before{
  background-image: url("../img/common/icon_arrow_white.png");
}
.link_btn.white a:hover::before{
  background-image: url("../img/common/icon_arrow_red.png");
}

.link_btn a:hover{
  color: #93C646;
  text-decoration: underline;
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  .link_btn{
    text-align: center;
  }
  
  .link_btn a{
    padding-right: 50px;
  }
  .link_btn a::before{
    height: 40px;
    top:-7px;
    width: 40px;
  }
  
  .link_btn.reverse a{
    padding-left: 50px; 
  }
  .link_btn.reverse a::before{
    top:-7px;
  }
}

/*---------------------
ホバーアニメーション
-----------------------*/
.hover_display{
  position:relative;
}
.hover_display span.mask{
  display: block;
  line-height: 0;
  overflow: hidden;
  position:relative;
}
.hover_display span.mask::before{
  background-color:rgba(147,198,70,0.8);
  content:"";
  height: 100%; 
  opacity:0;
  position: absolute;
    top:0;
    left:0;
  transition: 0.3s ease-in-out;
  transform: translateY(100%);
  width:100%;
  z-index: 2;
}
.hover_display:hover span.mask::before{
  opacity:1;
  transform: translateY(0);
}
.hover_display p.hover_text{
  color: #ffffff;
  line-height: 1.5;
  position: absolute;
    bottom: 10px;
    left: 10px;
    right: 10px;
  opacity:0;
  transition: 0.3s ease-in-out;
  z-index:3;
}
.hover_display:hover p.hover_text{
  opacity:1;
}


/*---------------------
h1~h6関連
-----------------------*/
h1{
  font-size: 20px;
  margin-top: 10px;
}

h1.top{
  filter: drop-shadow(2px 4px 6px #000000);
  font-size: 3rem;
  margin-top: 20px;
}

h2{
  color: #333333;
  font-size: 9.5rem;
  font-weight: 900;
  line-height: 8rem;
  text-align: center;
  word-break: break-all;
}

h2.left{
  text-align: left;
}
h2.right{
  text-align: right;
}

h2.underline{
  font-size: 4.2rem;
  line-height: 1.2em;
  margin-bottom: 5rem;
  padding-bottom: 15px;
  position: relative;
  text-align: center;
}
h2.underline::before{
  background-color: #93C646;
  content: '';
  position: absolute;
    bottom: 0;
    left: 50%;
  height: 5px;
  transform: translateX(-50%);
  width: 80px;
}

#works_page_detail h2{
  color: #101010;
  font-size: 5rem;
  margin-bottom: 30px;
  padding-bottom: 5px;
  position: relative;
  text-align: left;
}
#works_page_detail h2::before{
  background-color: #93C646;
  content: '';
  height: 10px;
  bottom: 0;
  position: absolute;
  left: 0;
  width: 25%;
}

p.sub_title{
  font-size: 2rem;
  font-weight: 700;
  margin: 20px 0;
  text-align: center;
}

p.sub_title.left{
  text-align: left;
}
p.sub_title.right{
  text-align: right;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  h2{
    font-size: 7.8rem;
  }
}

  
/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  h2{
    font-size: 6rem;
  }
  
  h2.left,
  h2.right{
    text-align: center;
  }
  
  h2.underline{
    font-size: 30px;
  }
  
  #works_page_detail h2{
    font-size: 3rem;
    line-height: 1.5em;
    padding-bottom: 10px;
  }
  #works_page_detail h2::before{
    height: 5px;
    width: 50%;
  }
  
  p.sub_title{
    margin-top: 0;
  }
  
  p.sub_title.left,
  p.sub_title.right{
    text-align: center;
  }
}


/*--------------------------------------

header

---------------------------------------*/
header{
  background-color: rgba(255,255,255,0.85);
  position: fixed;
    top: 0;
    left: 50%;
  transform: translateX(-50%);
  width: 100%;
  z-index: 100;
}

.header_inner{
  align-items: center;
  display: flex;
  height: 80px;
  justify-content: space-between;
}

.header_logo > a > img{
  margin-left: 20px;
  max-width: 250px;
  width: 100%;
}

@media screen and (min-width:1200px){
  #pc_nav ul{
    align-items: center;
    display: flex;
  }
  #pc_nav ul.menu_level__01 > li{
    height: 80px;
    margin-left: 30px;
    position: relative;
    transition: all .3s;
  }
  #pc_nav ul.menu_level__01 > li:first-child::before{
      /* content: ''; */
      width: 5px;
      height: 5px;
      border-top: solid 1px #000000;
      border-right: solid 1px #000000;
      position: absolute;
      right: -12px;
      top: 37px;
     transform: rotate(135deg);
    transition: 0.3s ease;
  }
  #pc_nav ul.menu_level__01 > li:first-child:hover::before{
    top: 41px;
    transform: rotate(315deg);
  }
  #pc_nav ul.menu_level__01 > li > a {
    align-items: center;
    display: flex;
    font-weight: 500;
    justify-content: center;
    height: 100%;
    transition: all .3s;
    width: 100%;
  }
  #pc_nav ul.menu_level__01 > li > a:hover{
      color: #93C646;
  }
  #pc_nav ul.menu_level__02 {
    display: none;/*デフォルトでは非表示の状態にしておく*/
    position: absolute;
      top: 80px;
      left: -20px;
    width: 120px;
  }
  #pc_nav ul.menu_level__01 li:hover ul.menu_level__02 {
    display: block;/*メニューにホバーしたら表示*/
  }
  #pc_nav ul.menu_level__02 > li {
    background-color: rgba(255,255,255,0.85);
    font-weight: 500;
    height: 60px;
    padding-top: 15px;
    position: relative;
    transition: all .3s;
    text-align: center;
  }
  #pc_nav ul.menu_level__02 > li:hover > a{
    color: #93C646;
  }
  #pc_nav ul li.contact_btn a{
    background-color: #93C646;
    color: #ffffff;
    display: block;
    padding-top: 25px;
    text-align: center;
    width: 200px;
  }
  #pc_nav ul li.contact_btn a:hover{
    color: #ffffff;
  }
  #pc_nav ul li.contact_btn:hover{
    opacity: 0.7;
  }
  #pc_nav ul li.contact_btn a span.tel,
  #pc_nav ul li.contact_btn a span.mail{
    font-weight: 700;
    position: relative;
  }
  #pc_nav ul li.contact_btn a span.tel{
    font-size: 18px;
    letter-spacing: 0.07em;
    padding-left: 10px;
  }
  #pc_nav ul li.contact_btn a span.tel::before{
    background-image: url("../img/common/icon_phone.png");
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    display: block;
    height: 18px;
    position: absolute;
      top: 5px;
     left: -10px;
    width: 16px;
  }
  #pc_nav ul li.contact_btn a span.mail{
    font-size: 14px;
    padding-left: 10px
  }
  #pc_nav ul li.contact_btn a span.mail::before{
    background-image: url("/assets/img/common/icon_mail_01.png");
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    height: 13px;
    position: absolute;
      top: 4px;
      left: -10px;
    width: 17px;
  }
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  .header_inner{width: 80%;}
}

/*---------------------
ハンバーガーメニュー
-----------------------*/
@media screen and (min-width:1201px){
  #sp_nav{
    display: none;
  }
}
@media screen and (max-width:1200px){
  #pc_nav{
    display: none;
  }
  header{
    background-color: #ffffff;
  }
  .hamburger_btn{
    display : block;
    position: fixed;
    z-index : 3;
    right : 10px;
    top   : 16px;
    width : 50px;
    height: 50px;
    cursor: pointer;
    text-align: center;
  }
  .hamburger_btn span{
    display : block;
    position: absolute;
    width   : 30px;
    height  : 3px ;
    left    : 6px;
    background : #93C646;
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition   : 0.3s ease-in-out;
    transition        : 0.3s ease-in-out;
  }
  .hamburger_btn span:nth-child(1) {top: 5px;}
  .hamburger_btn span:nth-child(2) {top: 15px;}
  .hamburger_btn span:nth-child(3) {top: 25px;}

  /* スマホメニューを開いてる時のボタン */
  .hamburger_btn.active span:nth-child(1){
    top : 16px;
    left: 6px;
    background :#93C646;
    -webkit-transform: rotate(-45deg);
    -moz-transform   : rotate(-45deg);
    transform        : rotate(-45deg);
  }
  .hamburger_btn.active span:nth-child(2),
  .hamburger_btn.active span:nth-child(3){
    top: 16px;
    background :#93C646;
    -webkit-transform: rotate(45deg);
    -moz-transform   : rotate(45deg);
    transform        : rotate(45deg);
  }
  .hamburger_btn span:nth-of-type(3)::after{
    content:"Menu";/*3つ目の要素のafterにMenu表示を指定*/
    position: absolute;
    top:5px;
    left:-5px;
    color: #93C646;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }
  .hamburger_btn.active span:nth-of-type(3)::after{
    content:"Close";/*3つ目の要素のafterにClose表示を指定*/
      transform: translateY(0) rotate(-45deg);
    top:10px;
    left:8px;
  }
  
  /* メニュー背景　*/
  nav.hamburger_menu{
    position: fixed;
    top  : 80px;
    left : 0;
    color: #fff;
    background-color: rgba(255,255,255,0.95);
    text-align: center;
    height: 100vh;
    width: 100%;
    transition: all 0.6s;
      margin: 0;
    padding-bottom:80px; 
    overflow-x: hidden;
   -webkit-transform: translateX(100%);
   transform: translateX(100%);
    z-index: 50;
  }
  nav.hamburger_menu ul{
    margin: 0 auto;
    padding: 0;
    width: 100%;
  }
  nav.hamburger_menu ul li{
    border: 1px dashed#cccccc;
    list-style-type: none;
    padding: 0;
    width: 100%;
    transition: 0.2s all;
  }
  nav.hamburger_menu ul li a{
    color: #101010;
    display: block;
    font-size: 22px;
    font-weight: 900;
    line-height: 28px;
    padding: 10px 20px;
    position: relative;
    text-align: left;
    text-decoration :none;
    width: 100%;
  }
  nav.hamburger_menu ul li a:hover{
    color: #93C646;
  }
  nav.hamburger_menu ul li a span{
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.05em;
    padding-bottom: 3px;
  }
  nav.hamburger_menu ul li:not(.tel) a::before{
    content: '';
    width: 12px;
    height: 12px;
    border-top: solid 3px #93C646;
    border-right: solid 3px #93C646;
    position: absolute;
    right: 30px;
    top: 30px;
    transform: rotate(45deg);
}
  nav.hamburger_menu ul li.tel{
    background-color: #ffffff;
    border-top: 3px solid #93C646;
    border-bottom: 3px solid #93C646;
    color: #101010;
    font-size: 24px;
    font-weight: 700;
    padding: 20px 0;
    position: relative;
    text-align: center;
  }
  nav.hamburger_menu ul li.tel::before{
    background-color: rgba(358,78,77,0.1);
    content: '';
    height: 100%;
    position: absolute;
      top:0;
      left: 0;
    width: 100%;
  }
  nav.hamburger_menu ul li.tel span{
    font-size: 14px;
    font-weight: 500;
  }
  nav.hamburger_menu ul li.tel a{
    background-color: #93C646;
    border-radius: 30px;
    color: #ffffff;
    font-weight: 700;
    margin: 30px 10px 0 10px;
    position: relative;
    padding-left: 30px;
    text-align: center;
    width: calc(100% - 20px);
  }
  nav.hamburger_menu ul li.tel a::before{
    background-image: url("../img/common/icon_phone.png");
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    height: 28px;
    position: absolute;
      top: 12px;
      left: 20px;
    width: 24px;
  }
  nav.hamburger_menu ul li.tel a:hover{
    opacity: 0.7;
  }

  /* クリックでjQueryで追加・削除 */
  nav.hamburger_menu.active {
    opacity: 1;
    display: block;
    transform: translateX(0%);
  }
}

/*--------------------------------------

mainvisual
sub_mainvisual

---------------------------------------*/
/*---------------------
mainvisual
-----------------------*/
.mainvisual{
  position: relative;
  height: 800px;
}
.mainvisual::before{
  background-color: #000000;
  content: '';
  height: 800px;
  position: absolute;
    top:0;
    left: 0;
  opacity: 0.15;
  width: 100%;
  z-index: 1;
}

.mainvisual img{
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.mainvisual .mv_text{
  color: #ffffff;
  position: absolute;
    top: 50%;
    left: 50%;
  text-align: center;
  transform: translate(-50%,-50%);
  width: 100%;
  z-index: 2;
}

.mainvisual .mv_text p{
  color: #ffffff;
  filter: drop-shadow(2px 4px 6px #000000);
  font-size: 7.8rem;
  font-weight: 700;
}

/*---------------------
sub_mainvisual
-----------------------*/
.sub_mainvisual{
  height: 650px;
  position: relative;
}

.sub_mainvisual .mv_img{
  margin: auto 0 auto auto;
  position: relative;
  width: 60%;
}
.sub_mainvisual .mv_img::before{
  background-color: rgba(0,0,0,0.3);
  border-radius: 0 0 0 50px;
  content: '';
  height: 100%;
  position: absolute;
    top: 0;
    right: 0;
  width: 100%;
  z-index: 2;
}

.sub_mainvisual img{
  border-radius: 0 0 0 50px;
  display: block;
  height: 500px;
  margin: auto 0 auto auto;
  object-fit: cover;
  object-position: 60% 100%;
  position: relative;
  width: 100%;
  z-index: 1;
}

.sub_mainvisual .mv_text{
  position: absolute;
  top: 25%;
  left: 0;
  width: 100%;
  z-index: 3;
}
.sub_mainvisual .mv_text .container{
  padding-left: 25px;
}

.sub_mainvisual p.page_title{
  color: #93C646;
  font-size: 7.8rem;
  font-weight: 900;
  line-height: 1em;
  word-break: break-all;
}

/*-- over768px under199px -----------------------------------*/
@media screen and (min-width:768px) and (max-width:1199px){
  .mainvisual img{
    object-position: 75% 100%;
  }
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  .mainvisual{
    height: 600px;
  }
  .mainvisual::before{
    height: 600px;
  }
  
  .mainvisual img{
    object-position: 30% 100%;
  }
  
  .mainvisual .mv_text p{
    font-size: 5rem;
  }
  
  /*-- sub_mainvisual --*/
  .sub_mainvisual{
    height: 500px;
  }
  
  .sub_mainvisual .mv_img{
    width: 100%;
  }
  .sub_mainvisual .mv_img::before{
    background-color: rgba(255,255,255,0.7);
    border-radius: 0;
  }
  
  .sub_mainvisual img{
    border-radius: 0;
    height: 450px;
  }
  
  .sub_mainvisual .mv_text{
    top: 50%;
    transform: translateY(-50%);
  }
}



/*--------------------------------------

footer

---------------------------------------*/
/*---------------------
contact
-----------------------*/
.contact_wrap{
  background-color: #EEEEEE;
  padding: 4rem 0 5rem 0;
}

.contact_wrap .inner{
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.contact_wrap .contact_headline{
  text-align: center;
}

.contact_wrap .contact_headline p{
  font-size: 3rem;
  font-weight: 700;
  margin-top: 10px;
}

.contact_wrap .contact_link{
  font-weight: 600;
  padding: 0 20px;
}

.contact_wrap .contact_link p.tel{
  color: #93C646;
  font-size: 5rem;
}

.contact_wrap .contact_link p.reception_time{
  font-size: 2rem;
  margin-bottom: 3rem;
}

.contact_wrap .contact_link a{
  background-color: #93C646;
  color: #ffffff;
  display: block;
  font-size: 2.5rem;
  max-width: 430px;
  padding: 20px 20px 20px 60px;
  position: relative;
  text-align: center;
  width: 100%;
}
.contact_wrap .contact_link a:hover{
  opacity: 0.7;
}
.contact_wrap .contact_link a::before{
  background-image: url("../img/common/icon_mail_02.png");
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  height: 26px;
  position: absolute;
    top:50%;
    left: 8%;
  transform: translateY(-50%);
  width: 35px;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  .contact_wrap .inner{
    display: block;
  }
  
  .contact_wrap .contact_link{
    margin-top: 5rem;
    padding: 0;
    text-align: center;
  }
  
  .contact_wrap .contact_link a{
    margin: auto auto;
  }
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  .contact_wrap .contact_link p.tel{
    font-size: 4rem;
  }
  
  .contact_wrap .contact_link p.reception_time{
    margin-top: 2rem;
  }
  
  .contact_wrap .contact_link a{
    margin-bottom: 20px;
  }
  
  .contact_wrap .contact_link a.tel::before{
    background-image: url("../img/common/icon_phone.png");
  }
}


/*---------------------
footer
-----------------------*/
.footer_wrap{
  padding-top: 4rem;
  padding-bottom: 30px;
}

.footer_wrap .footer_inner{
  display: flex;
  justify-content: space-between;
}

.footer_wrap .logo img{
  margin-bottom: 15px;
  max-width: 360px;
  width: 100%;
}

.footer_wrap nav.footer_nav{
  display: flex;
  flex-wrap: wrap;
  margin-top: 15px;
}

.footer_wrap nav.footer_nav ul{
  margin-left: 5rem;
}

.footer_wrap nav.footer_nav ul li{
  margin-bottom: 20px;
  padding-left: 18px;
}

.footer_wrap nav.footer_nav ul li a:hover{
  color: #93C646;
  text-decoration: underline;
}

.footer_wrap nav.footer_nav ul li:not(.menu_level__02){
  font-weight: 700;
  position: relative;
}
.footer_wrap nav.footer_nav ul li:not(.menu_level__02)::before{
  background-image: url("../img/common/icon_arrow_red_s.png");
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: 999px;
  content: '';
  display: block;
  height: 12px;
  position: absolute;
    top: 7px;
    left: 0;
  width: 12px
}

.footer_wrap nav.footer_nav ul li.menu_level__02{
  font-weight: 500;
  padding-left: 4rem;
}

p.copyright{
  font-size: 12px;
  margin-bottom: 10px;
  text-align: center;
}


/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  
}
/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  .footer_wrap .logo img{
    margin: auto auto 15px auto;
  }
  
  .footer_wrap nav.footer_nav{
    justify-content: space-between;
  }
  
  .footer_wrap nav.footer_nav ul{
    margin-left: 0;
    width: 48%;
  }
  
  .footer_wrap .page_link::after{
    content: '';
    display: block;
    width: 48%;
  }
 
  p.copyright{
    border-top: 1px solid #cccccc;
    padding-top: 10px;
  }
  
  .footer_wrap .footer_inner{
    display: block;
  }

   .footer_wrap .logo{
    margin-bottom: 30px;
    text-align: center;
  }
}

/*--------------------------------------

TOP（トップページ）

---------------------------------------*/
/*---------------------
#top_company
-----------------------*/
#top_company{
  background-color: #ffffff;
  max-width: 1500px;
  margin: auto auto;
  padding: 40px 64px;
  position: relative;
    top: -40px;
  width: 100%;
  z-index: 2;
}

#top_company .flex{
  justify-content: space-between;
}

#top_company .img_box,
#top_company .text_box{
  width: 48%;
}

#top_company .img_box img{
  height: 520px;
  object-fit: cover;
  object-position: center;
}

#top_company .link_btn{
  margin-top: 50px;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  #top_company{
    padding: 40px 20px;
    top: 0;
  }
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #top_company .img_box,
  #top_company .text_box{
    width: 100%;
  }
  
  #top_company .img_box img{
    height: 350px;
    margin-bottom: 30px;
    width: 100%;
  }
}

/*---------------------
#top_service
-----------------------*/
#top_service{
  color: #ffffff;
  height: 100%;
  position: relative;
  text-align: center;
}

#top_service .bg_filter{
  background-image: url("../img/top/bg_img.jpg");
  background-repeat: no-repeat; 
  padding-top: 36px;
  padding-bottom: 60px;
  height: 100%;
}
#top_service .bg_filter::before{
  background-color: rgba(16,16,16,0.3);
  content: '';
  height: 100%;
  position: absolute;
    top: 0;
    left: 0;
  width: 100%;
}

#top_service .inner{
  position: relative;
  z-index: 2;
}

#top_service h2{
  color: #ffffff;
}

#top_service .flex_box{
  margin: 6rem 0;
}

#top_service figure{
  width: 19%;
}
#top_service figure img{
  box-shadow: 0 3px 6px rgba(0,0,0,0.16);
}

#top_service figcaption{
  font-size: 1.8rem;
  font-weight: 500;
  margin-top: 15px;
}

#top_service .link_btn a{
  color: #ffffff;
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #top_service .bg_filter{
    background-color: #4885BC;
    background-position: bottom;
  }
  #top_service figure{
    margin-bottom: 20px;
    width: 48%;
  }
}

/*---------------------
#top_strength
-----------------------*/
#top_strength{
  height: 100%;
  margin-top: 7.5rem;
  position: relative;
}
#top_strength::before{
  background: linear-gradient(180deg, #ffffff 0%, #ffffff 20%, #E9F4DA 20%, #E9F4DA 100%);
  content: '';
  display: block;
  height: 100%;
  position: absolute;
    right: 0;
    bottom: 0;
  width: 95%;
  z-index: -2;
}
#top_strength::after{
  background-image: url("../img/top/strength.jpg");
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  height: 690px;
  max-width: 750px;
  position: absolute;
    left: 10%;
    top: 0;
  width: 100%;
  z-index: -1;
}

#top_strength .sub_title{
  margin-bottom: 10rem;
}

#top_strength .flex_box{
  align-items: stretch;
  position: relative;
}

#top_strength .flex_box .flex_box_list{
  background-color: rgba(255,255,255,0.7);
  padding: 16px;
  padding-top: 0;
  width: 24%;
}

#top_strength .flex_box_list p.number{
  color: #93C646;
  font-size: 5rem;
  font-weight: 900;
  text-align: center; 
}

#top_strength .flex_box_list p.red{
  color: #93C646;
  font-size: 18px;
  font-weight: 700;
  padding: 10px 0;
}

#top_strength .link_btn{
  margin-top: 8rem;
  padding-bottom: 6rem;
}


/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
   #top_strength::before{
    width: 100%;
  }
  #top_strength::after{
    max-width: 450px;
    left: 30px;
  }
  
}
/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #top_strength::before{
    background: linear-gradient(180deg, #ffffff 0%, #ffffff 10%, #E9F4DA 10%, #E9F4DA 100%);
  }
  #top_strength::after{
    max-width: 100%;
    top: 5%;
    left: 0;
  }
  
  #top_strength .flex_box .flex_box_list{
    margin-bottom: 20px;
    width: 100%;
  }
  
  #top_strength .flex_box_list img{
    width: 100%;
  }
  
  #top_strength .link_btn{
    margin-top: 8rem;
  }
}

/*------------------------------

#top_works
・works（施工事例ページ）

------------------------------*/
#top_works{
  margin-top: 10rem;
}

#works_page{
  margin-bottom: 10rem;
}

.works_wrap.flex_box figure{
  margin-bottom: 5rem;
  position: relative;
  width: 49%;
}

.works_wrap.flex_box figure img{
  height: 300px;
  object-fit: cover;
  width: 100%;
}

.works_wrap.flex_box figure figcaption{
  font-size: 18px;
  font-weight: 700;
  padding: 10px;
}

.works_wrap.flex_box figure a:hover > figcaption{
  color: #93C646;
  text-decoration: underline;
}

.works_wrap.flex_box .hover p.hover_text{
  color: #ffffff;
  padding: 10px;
  position: absolute;
    bottom: 10px;
    left: 0;
  opacity: 0;
  z-index: 2;
}

.works_wrap.flex_box .hover:hover p.hover_text{
  opacity: 1;
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  .works_wrap.flex_box figure{
    width: 100%;
  }
  .works_wrap.flex_box figure img{
    height: auto;
  }
}


/*---------------------
#top_text_area
-----------------------*/
#top_text_area{
  background-image: url("../img/top/bg_img.jpg");
  background-repeat: no-repeat;
  margin-top: 5rem;
  padding: 8rem 0;
  position: relative;
  z-index: 1;
}
#top_text_area::after{
  background-color: rgba(0,0,0,0.5);
  content: '';
  height: 100%;
  position: absolute;
    top: 0;
    left: 0;
  width: 100%;
  z-index: 2;
}

#top_text_area p{
  color: #ffffff;
  font-weight: 400;
  margin-bottom: 5rem;
  position: relative;
  z-index: 4;
}

#top_text_area p:last-child{
  margin-bottom: 0;
}


/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #top_text_area{
    background-color: #4885BC;
    background-position: bottom;
  }
}

/*--------------------------------------

works_page_detail(施工事例詳細ページ)

---------------------------------------*/
#works_page_detail .slider-nav .slick-list.draggable{
  margin: 30px 0;
}

#works_page_detail .slider-nav.slick-initialized .slick-slide{
  padding-left: 20px;
}

#works_page_detail .slider-nav.slick-initialized .slick-slide img {
  height: 130px;
  object-fit: cover;
  object-position: center;
}


#works_page_detail .detail_text_wrap{
  background-color: #E9F4DA;
  margin-bottom: 5rem;
  padding-top: 5rem;
  padding-bottom: 5rem;
}

#works_page_detail .detail_text{
  background-color: #ffffff;
  justify-content: space-between;
  padding-top: 5rem;
  padding-bottom: 5rem;
}

#works_page_detail .flex .text,
#works_page_detail .flex table{
  width: 48%;
}

#works_page_detail .flex table tr{
  border-top: 1px solid #CCCCCC;
  display: block;
}
#works_page_detail .flex table tr:last-child{
  border-bottom: 1px solid #CCCCCC;
}

#works_page_detail .flex table th{
  font-size: 18px;
  padding: 22px 0 22px 22px;
  position: relative;
  text-align: left;
  width:160px;
}
#works_page_detail .flex table tr th::before{
  background-color: #93C646;
  content: '';
  height: 2px;
  position: absolute;
    top: -1px;
    left: 0;
  width: 100%;
}
#works_page_detail .flex table tr:last-child th::after{
  background-color: #93C646;
  content: '';
  height: 2px;
  position: absolute;
    bottom: -1px;
    left: 0;
  width: 100%;
}

#works_page_detail .flex table tr td{
  padding-left: 22px;
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
   #works_page_detail .slider-nav.slick-initialized .slick-list{
    padding: 0 !important;
  }
  
  #works_page_detail .slider-nav.slick-initialized .slick-track{
    width: 100% !important;
  }
  
  #works_page_detail .slider-nav.slick-initialized .slick-slide{
    margin-bottom: 20px;
    padding: 0 10px;
    width: 25% !important;
  }
  
  #works_page_detail .slider-nav.slick-initialized .slick-slide img{
    height: 80px;
  }
  
  #works_page_detail .flex .text,
  #works_page_detail .flex table{
    margin-bottom: 4rem;
    width: 100%;
  }
}


/*--------------------------------------

company(会社案内ページ)

---------------------------------------*/

/*---------------------
#company_message
-----------------------*/
#company_message .flex{
 align-items: center;
  justify-content: space-between;
 margin: 5rem 0;
}

#company_message .catch{
  font-size: 4rem;
  font-weight: 900;
  width: 45%;
}

#company_message .catch p span{
  font-size: 125%;
}

#company_message .text{
  width: 55%;
}

#company_message .text p{
   font-weight: 500;
}

#company_message .president{
  font-size: 20px;
  font-weight: 700;
  text-align: right;
}

#company_message .president p.company{
  font-size: 125%;
}

#company_message .photo_box{
  margin: 10rem 0 25rem 0;
}

#company_message .photo_box .flex_box p{
  width: 50%;
  position: relative;
}

#company_message .photo_box .flex_box p:nth-child(1){
  left: -4rem;
}
#company_message .photo_box .flex_box p:nth-child(2){
  top:  20rem;
  right: -5rem;
}
#company_message .photo_box .flex_box p:nth-child(3){
  top:  10rem;
  left: 2rem;
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #company_message .catch{
    margin-bottom: 30px;
    width: 100%;
  }
  
  #company_message .text{
    width: 100%;
  }
  
  #company_message .photo_box{
    margin: 10rem 0 10rem 0;
  }
  
  #company_message .photo_box .flex_box p:nth-child(1){
    left: -20px;
  }
  #company_message .photo_box .flex_box p:nth-child(2){
    top:  10rem;
    right: -20px;
  }
  #company_message .photo_box .flex_box p:nth-child(3){
    top:  5rem;
    left: 0;
  }
}

/*---------------------
#company_outline
-----------------------*/
#company_outline .full_size{
  background-color: #E9F4DA;
  padding: 5rem 20px;
}

#company_outline .table_wrap{
  background-color: #ffffff;
  padding-top: 5rem;
  padding-bottom: 5rem;
}

#company_outline table tr{
  border-bottom: 1px solid #CCCCCC;
  display: block;
  padding: 20px 0;
  position: relative;
}
#company_outline table tr:first-child{
  border-top: 1px solid #CCCCCC;
}
#company_outline table tr:first-child::after{
  background-color: #93C646;
  content: '';
  height: 2px;
  position: absolute;
    top: -2px;
    left: 0;
  width: 200px;
}
#company_outline table tr::before{
  background-color: #93C646;
  content: '';
  height: 2px;
  position: absolute;
    bottom: -1px;
    left: 0;
  width: 200px;
}


#company_outline table th{
  font-size: 18px;
  padding-left: 20px;
  text-align: left;
  vertical-align: top;
  width: 200px;
}

#company_outline table td{
  padding: 0 4rem;
  vertical-align: top;
}

#company_outline table td ul > li{
  margin-bottom: 10px;
  padding-left: 18px;
  position: relative;
}
#company_outline table td ul > li:last-child{
  margin-bottom: 0;
}
#company_outline table td ul > li::before{
  background-color: #93C646;
  border-radius: 999px;
  content: '';
  height: 8px;
  position: absolute;
    top: 10px;
    left: 0;
  width: 8px;
}

#company_outline table td > a{
  margin-left: 4rem;
  padding-left: 25px;
  position: relative;
}
#company_outline table td > a::before{
  background-image: url("../img/common/icon_arrow_red_s.png");
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  height: 20px;
  position: absolute;
    top: 3px;
    left: 0;
  width: 20px;
}
#company_outline table td > a:hover{
  color: #93C646;
  text-decoration: underline;
}


/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #company_outline table tr::before,
  #company_outline table tr:first-child::after{
    width: 30%;
  }
  
  #company_outline table th{
    display: block;
    margin-bottom: 15px;
    padding: 0;
    width: 100%;
  }
  
  #company_outline table td{
    display: block;
    padding: 0;
    width: 100%;
  }
  
  #company_outline table td ul{
    margin-left: 15px;
  }
  
  #company_outline table td > a{
    display: block;
    margin: 5px 0 0 0;
  }
}

/*--------------------------------------

staff(スタッフ紹介ページ)

---------------------------------------*/
#staff_page .staff_wrap{
  margin: 10rem 0;
}

#staff_page .staff_wrap .staff_list{
  margin-bottom: 5rem;
  width: 32%;
}

#staff_page .staff_wrap .staff_list .list_inner{
  padding: 0 10px;
}

#staff_page .staff_wrap .staff_list .list_inner > div{
  font-size: 18px;
  font-weight: 700;
  border-bottom: 1px solid #CCCCCC;
  margin-top: 10px;
  padding-bottom: 10px;
  position: relative;
}

#staff_page .staff_wrap .staff_list p.occupation{
  background-color: #93C646;
  border-radius: 5px;
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  padding: 2px 12px;
  position: absolute;
    top: 0;
    right: 0;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  #staff_page .staff_wrap .staff_list{
    width: 48%;
  }
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #staff_page .staff_wrap .staff_list{
    width: 100%;
  }
}

/*--------------------------------------

advantage(選ばれる理由ページ)

---------------------------------------*/
#advantage_page .advantage_wrap .bg_img{
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  height: 500px;
  position: relative;
  width: 100%;
}
#advantage_page .advantage_wrap .bg_img::before{
  background-color: rgba(0,0,0,0.3);
  content: '';
  height: 100%;
  position: absolute;
    top: 0;
    left: 0;
  width: 100%;
  z-index: 1;
}

#advantage_page .advantage_wrap#reason_01 .bg_img{
  background-image: url("../img/advantage/advantage_01.jpg");
}
#advantage_page .advantage_wrap#reason_02 .bg_img{
  background-image: url("../img/advantage/advantage_02.jpg");
}
#advantage_page .advantage_wrap#reason_03 .bg_img{
  background-image: url("../img/advantage/advantage_03.jpg");
}
#advantage_page .advantage_wrap#reason_04 .bg_img{
  background-image: url("../img/advantage/advantage_04.jpg");
}

#advantage_page .advantage_wrap .text_box{
  background-color: #ffffff;
  padding-top: 4rem;
  position: relative;
    top:-20rem;
  z-index: 2;
}

#advantage_page .advantage_wrap .text_box .inner{
  padding-left: 15rem;
  padding-right: 15rem;
}

#advantage_page .advantage_wrap .text_box p.number{
  background-color: #93C646;
  border-radius: 5px;
  color: #ffffff;
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 8rem;
  margin: auto auto 20px auto;
  height: 8rem;
  text-align: center;
  width: 8rem;
}

#advantage_page .advantage_wrap .text_box p.headline{
  font-size: 4rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 22px;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
   #advantage_page .advantage_wrap .bg_img{
    height: 300px;
  }
  
  #advantage_page .advantage_wrap .text_box{
    margin-left: 20px;
    margin-right: 20px;
    width: calc(100% - 40px);
  }
}
/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #advantage_page .advantage_wrap .text_box .inner{
    padding-left: 10px;
    padding-right: 10px;
  }
}


/*--------------------------------------

service(サービス案内ページ)

---------------------------------------*/
#service_page .flex{
  justify-content: space-between;
  margin-bottom: 3rem !important;
}

#service_page .flex img{
  width: 48%;
}

#service_page p.text{
  margin: 1rem 2rem;
}

#service_page .feature_wrap{
  align-items: center;
  display: flex;
}

#service_page .feature{
  border: 1px solid #101010;
  font-size: 3rem;
  font-weight: 700;
  flex-shrink: 0;
  height: 100px;
  line-height: 100px;
  margin-right: 20px;
  text-align: center;
  width: 100px;
}

#service_page .feature_wrap ul li{
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 10px;
  padding-left: 30px;
  position: relative;
}
#service_page .feature_wrap ul li::before{
  background-image: url("../img/service/icon_cheakbox.png");
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  height: 18px;
  position: absolute;
    top: 5px;
    left: 0;
  width: 22px;
}
#service_page .feature_wrap ul li:last-child{
  margin-bottom: 0;
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #service_page .flex img{
    margin-bottom: 20px;
    width: 100%;
  }
  
  #service_page .feature_wrap{
    display: block;
  }
  
  #service_page .feature{
    height: 50px;
    line-height: 50px;
    margin: 0 0 20px 0;
    width: 100%;
  }
}


/*--------------------------------------

flow(看板政策の流れページ)

---------------------------------------*/
/*---------------------
.flow_list
-----------------------*/
#flow_page .flow_list_box{
  align-items: stretch;
  justify-content: flex-start;
  margin: 5rem 0 10rem 0;
}

#flow_page .flow_list_box .flex_list{
  border: 2px solid #93C646;
  border-radius: 5px;
  height: 415px;
  margin-right: 3.7rem;
  margin-bottom: 20px;
  padding: 20px 15px;
  position: relative;
  width: 90px; 
}
#flow_page .flow_list_box .flex_list::before{
    content: '';
    width: 20px;
    height: 20px;
    border-top: solid 5px #000000;
    border-right: solid 5px #000000;
    position: absolute;
    right: -20px;
    top: 50%;
    transform: rotate(45deg) translateY(-50%);
}
#flow_page .flow_list_box .flex_list:last-child{
  margin-right: 0;
}
#flow_page .flow_list_box .flex_list:last-child::before{
  display: none;
}

#flow_page .flow_list_box .flex_list .number{
  background-color: #93C646;
  border-radius: 5px;
  color: #ffffff;
  font-size: 3.5rem;
  font-weight: 700;
  min-height: 60px;
  line-height: 60px;
  margin: auto auto 2.6rem auto;
  text-align: center;
  max-width: 60px;
  width: 100%;
}

#flow_page .flow_list_box .flex_list p.text{
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin: auto auto;
  writing-mode: vertical-rl;
}


/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
 #flow_page .flow_list_box .flex_list::before{
    right: -15px;
  }
}

/*-- over900px under1199px ------------------------------------------*/
@media screen and (min-width:900px) and (max-width:1199px){
  #flow_page .flow_list_box .flex_list{
    width: 9%;
  }
}

/*-- over500px under899px ------------------------------------------*/
@media screen and (min-width:500px) and (max-width:899px){
  #flow_page .flow_list_box{
    justify-content: space-between;
  }
  
  #flow_page .flow_list_box .flex_list{
    height: 350px;
    margin-right: 0;
    width: 21%;
  }
  #flow_page .flow_list_box .flex_list:nth-child(4n)::before{
    display: none;
  }
}

/*-- under499px ------------------------------------------*/
@media screen and (max-width:499px){
  #flow_page .flow_list_box{
    justify-content: space-between;
  }
  #flow_page .flow_list_box::after{
    content: '';
    display: block;
    width: 26%;
  }
  
  #flow_page .flow_list_box .flex_list{
    height: 320px;
    margin-right: 0;
    width: 26%;
  }
  #flow_page .flow_list_box .flex_list::before{
    right: -18px;
  }
  #flow_page .flow_list_box .flex_list:nth-child(3n)::before{
    display: none;
  }
}

/*---------------------
#flow_detail
-----------------------*/
#flow_page .flow_box_wrap{
  background-color: #E9F4DA;
  padding-top: 10rem;
  padding-bottom: 10rem;
}
#flow_page .flow_box_wrap:nth-child(2n){
  background-color: #ffffff;
  padding-top: 2rem;
  padding-bottom: 5rem;
}

#flow_page .flow_box_wrap .flow_box{
  background-color: #ffffff;
  padding-top: 8rem;
  padding-bottom: 5rem;
}

#flow_page .headline{
  display: flex;
  margin-bottom: 5rem;
}

#flow_page .headline .number{
  background-color: #93C646;
  border-radius: 5px;
  color: #ffffff;
  flex-shrink: 0;
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 8rem;
  height: 8rem;
  text-align: center;
  width: 8rem;
}

#flow_page .headline .title{
  font-size: 4rem;
  font-weight: 700;
  line-height: 1.2em;
  margin-left: 3rem;
  padding-top: 15px;
}

#flow_page .flow_box .flex{
 flex-flow: row-reverse;
  justify-content: space-between;
}

#flow_page .flow_box .flex img{
  width: 40%;
} 
#flow_page .flow_box .flex .text{
  width: 55%;
} 
#flow_page .flow_box .flex .text > p{
  margin-bottom: 3rem;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  #flow_page .flow_box_wrap{
    padding-left: 20px;
    padding-right: 20px;
  }
}
/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #flow_page .flow_box_wrap .flow_box{
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  
  #flow_page .headline .number{
    font-size: 24px;
    line-height: 6rem;
    height: 6rem;
    text-align: center;
    width: 6rem;
  }
  #flow_page .headline .title{
    font-size: 3rem;
    padding-top: 5px;
  }
  
  #flow_page .flow_box .flex img,
  #flow_page .flow_box .flex .text{
    width: 100%;
  }
  
  #flow_page .flow_box .flex img{
    height: auto;
    max-height: 300px;
    margin-bottom: 20px;
    object-fit: cover;
    object-position: center;
  }
}

/*--------------------------------------

faq(よくある質問ページ)

---------------------------------------*/
#faq_page ul.jump_link{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 12.5rem;
}
#faq_page ul.jump_link::before{
  content: '';
  display: block;
  order: 1;
  width: 22%;
}
#faq_page ul.jump_link::after{
  content: '';
  display: block;
  width: 22%;
}

#faq_page ul.jump_link li{
  border: 2px solid #93C646;
  margin-bottom: 20px;
  text-align: center;
  transition: 0.2s ease-in-out;
  width: 22%;
}
#faq_page ul.jump_link li:hover{
  background-color: #93C646;
}

#faq_page ul.jump_link li a{
  display: inline-block;
  font-weight: 700;
  padding: 18px 30px;
  position: relative;
}
#faq_page ul.jump_link li:hover a{
  color: #ffffff;
}
#faq_page ul.jump_link li a::before{
    content: '';
    width: 10px;
    height: 10px;
    border-top: solid 1px #93C646;
    border-right: solid 1px #93C646;
    position: absolute;
      right: 10px;
      top: 47%;
   transform: translateY(-50%) rotate(135deg);
}
#faq_page ul.jump_link li:hover a::before{
  border-top: solid 1px #ffffff;
  border-right: solid 1px #ffffff;
}

#faq_page .pink_bg{
  background-color: #E9F4DA;
  padding: 5rem 20px;
}
#faq_page .pink_bg:last-of-type{
  margin-bottom: 10rem;
}

#faq_page .about_content_wrap{
  margin-top: -80px;
  padding-top: 80px;
  padding-bottom: 80px;
}

#faq_page .about_content{
  background-color: #ffffff;
  margin-top: 5rem;
  margin-bottom: 5rem;
  padding-top: 5rem;
  padding-bottom: 5rem;
}

#faq_page dl.q_and_a_box > div{
  border-bottom: 1px solid #cccccc;
}

#faq_page dl.q_and_a_box dt.question,
#faq_page dl.q_and_a_box dd.answer{
  padding-bottom: 4rem;
  padding-left: 8rem;
  position: relative;
}
#faq_page dl.q_and_a_box dt.question::before,
#faq_page dl.q_and_a_box dd.answer::before{
  border-radius: 5px;
  color: #ffffff;
  font-size: 3.5rem;
  height: 5rem;
  line-height: 4.2rem;
  position: absolute;
    left: 0;
  text-align: center;
  width: 5rem;
}
#faq_page dl.q_and_a_box dt.question::before{
  background-color: #93C646;
  content: 'Q';
  top: 25px;
}
#faq_page dl.q_and_a_box dd.answer::before{
  background-color: #101010;
  content: 'A';
  top: 5px;
}

#faq_page dl.q_and_a_box dt.question{
  cursor: pointer;
  font-size: 18px;
  font-weight: 700;
  padding-top: 4rem;
  padding-right: 40px;
}

#faq_page dl.q_and_a_box dd.answer{
  display: none;
  padding-top: 2rem;
}

#faq_page dl.q_and_a_box dt.question span{
  position: absolute;
    top: 40%;
    right: 15px;
  transform: translateY(-50%);
}
#faq_page dl.q_and_a_box dt.question span::before,
#faq_page dl.q_and_a_box dt.question span::after{
  content: '';
  display: inline-block;
  position: absolute;
  width: 3px;
  height: 30px;
  background-color: #93C646;
}
#faq_page dl.q_and_a_box dt.question span::after{
  transform: rotate(90deg);
}
#faq_page dl.q_and_a_box dt.question.open span::before{
  display: none;
}

/*-- under1199px ------------------------------------------*/
@media screen and (max-width:1199px){
  #faq_page ul.jump_link::before,
  #faq_page ul.jump_link::after,
  #faq_page ul.jump_link li{
    width: 30%;
  }
}

/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #faq_page ul.jump_link::before,
  #faq_page ul.jump_link::after,
  #faq_page ul.jump_link li{
    width: 100%;
  }
  
  #faq_page ul.jump_link li a{
    display: block;
  }
}

/*--------------------------------------

inquiry（お問い合わせページ）

---------------------------------------*/
#inquiry_page{
  margin-bottom: 15rem;
}

#inquiry_page p.text > a{
  color: #93C646;
  text-decoration: underline;
}

#inquiry_page table.formTable{
  margin-top: 30px;
  width: 100%;
}

#inquiry_page table.formTable tr{
  background-image : linear-gradient(to right, #000000 2px, transparent 2px);/*　#破線の色 破線の大きさ,透明 破線の間隔  */
  background-repeat: repeat-x;
  background-position: left bottom;
  background-size: 4px 1px;/*　破線の大きさ+破線の間隔の合計　線の高さ  */    
  display: flex;
  padding: 20px 0;
}
#inquiry_page table.formTable tr:last-child{
  background-image: none;
}

#inquiry_page table.formTable th,
#inquiry_page table.formTable td{
  display: block;
}

#inquiry_page table.formTable th{
  flex-shrink: 0;
  text-align: left;
  padding-top: 10px;
  position: relative;
  width: 260px;
}
#inquiry_page table.formTable th span.hissu{
  background-color: #93C646;
  border-radius: 5px;
  color: #ffffff;
  height: 30px;
  line-height: 30px;
  position: absolute;
    top: 5px;
    right: 30px;
  text-align: center;
  width: 58px;
}

#inquiry_page table.formTable td{
  font-size: 16px;
  width: 100%;
}

#inquiry_page table.formTable td .flex{
  align-items: center;
}
#inquiry_page table.formTable td .flex span{
  margin: 0 5px;
}

#inquiry_page table.formTable td .autofill_btn button{
  background-color: #333333;
  border: none;
  border-radius: 5px;
  color: #ffffff;
  cursor: pointer;
  margin-left: 20px;
  height: 50px;
  width: 100px;
}

#inquiry_page table.formTable select{
  border: 1px solid #666666;
  padding: 12px 15px;
}

#inquiry_page table.formTable input[type="text"]:not(.contact_zip),
#inquiry_page table.formTable textarea{
  border: 1px solid #666666;
  padding: 12px 15px;
  width: 100%;
}
#inquiry_page table.formTable textarea{
 border: 1px solid #666666;
 height: 250px;
 overflow-y: auto;
}

#inquiry_page table.formTable td .flex input.contact_zip{
  border: 1px solid #666666;
  padding: 12px 15px;
}

#inquiry_page .submit_btn{
  margin-top: 30px;
  text-align: center;
}

#inquiry_page .submit_btn input{
  border: none;
  color: #ffffff;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  margin: 0 14px 10px 14px;
  max-width: 215px;
  padding: 10px 0;
  transition: 0.2s;
  width: 100%;
}
#inquiry_page .submit_btn input:hover{
  opacity: 0.7;
}

.btn_gray{
  background-color: #707070;
}
.btn_red{
  background-color: #93C646
}
/*-- under767px ------------------------------------------*/
@media screen and (max-width:767px){
  #inquiry_page table.formTable tr{
    display: block;
  }
  
  #inquiry_page table.formTable th{
    margin-bottom: 20px;
    padding-top: 0;
    width: 100%;
  }
  
  #inquiry_page table.formTable th span.hissu{
    top: -3px;
    right: 0;
  }
  
  #inquiry_page table.formTable td .flex{
    display: flex;
  }
  
}

/*---------------------
確認画面・送信完了画面
-----------------------*/
#inquiry_page.confirm table.formTable th{
  padding: 0;
}
p.error_messe{
  color: #93C646;
  font-weight: 700;
}
p.error_messe::before{
  content: '・';
}

/*--------------------------------------

privacypolicy（プライバシーポリシーページ）

---------------------------------------*/
#privacypolicy_page{
  margin-bottom: 1.5rem;
}
 
#privacypolicy_page .section{
  margin-bottom: 7rem;
}

#privacypolicy_page .section p{
  margin-bottom: 5rem;
}

#privacypolicy_page h2{
  border-bottom: 3px solid #93C646;
  color: #101010;
  font-size: 24px;
  line-height: 1.2em;
  margin-bottom: 4rem;
  padding-bottom: 20px;
  text-align: left;
}

#privacypolicy_page h3{
  font-size: 18px;
  font-weight: 900;
  margin-bottom: 15px;
}

#privacypolicy_page ol{
  border: 2px solid #93C646;
  counter-reset: ol-list;
  list-style:none;
  padding: 40px;
}

#privacypolicy_page ol li{
  margin-bottom: 30px;
  padding-left: 35px;
  position: relative;
}
#privacypolicy_page ol li:last-child{
  margin-bottom: 0;
}
#privacypolicy_page ol li::before{
  counter-increment: ol-list;
  content: counter(ol-list,decimal-leading-zero);
  color: #93C646;
  font-size: 18px;
  font-weight: 700;
  position: absolute;
    top: 0;
    left: 0;
}

#privacypolicy_page .section .link_btn{
  text-align: left;
}