@charset "utf-8";


/* 共通 */
body{
  font-family:"Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}
a{
  text-decoration: none;
}
img{
  width: 100%;
	max-width: 100%;
}

.vtb{
  display: none;
}
.vsp{
  display: none;
}

.alpha{
  transition: 0.4s all ease-in-out;
}
.alpha:hover{
  opacity: 0.7;
}

.wrap{
  max-width: 1440px;
  padding: 0px 20px;
  margin: 0 auto;
}

@font-face {
  font-family:"Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
/*	font-family:'mknf';
	src:url('../fonts/Makinas-4-Flat.otf') format('opentype');*/
}

/* drw */
.hmbtn{
  position: fixed;
  top: 20px;
  right: 10px;
  z-index: 4555;
}
.drawer-hamburger{
  position: relative;
  z-index: 4555;
}
.drawer-open .drawer-hamburger-icon{
  position: relative;
  z-index: 4555;
}
.drawer-open .drawer-hamburger-icon:after,
.drawer-open .drawer-hamburger-icon:before{
  background: #fff;
  z-index: 111;
}
.drawer-nav{
  background: #43342b;
}
.drawer-menu a{
  width: 100%;
  display: inline-block;
  padding: 20px;
  color: #fff;
  border-bottom: 1px solid #ccc;
}
.drawer-menu a b{
  display: block;
  letter-spacing: 0.1em;
}
.drawer-menu a .jp{
  font-size: 14px;
  margin-bottom: 10px;
}
.drawer-menu a .en{
  font-size: 12px;
}

/* /共通 */

header{
  display: flex;
  justify-content: space-between;
  flex-flow: wrap;
  padding: 15px 20px 20px;
}
header .logo{
  max-width: 201px;
}
header .gnav{
  width: 100%;
  max-width: 1100px;
  /*max-width: 956px;*/
  display: flex;
  justify-content: left;
  flex-flow: wrap;
  letter-spacing: 0.1em;
  padding-top: 10px;
}
header .gnav li{
  text-align: center;
  margin-right: 4%;
}
header .gnav li:last-child{
  margin-right: 0%;
}
header .gnav li a{
  color: #333;
  font-size: 15px;
  font-weight: bold;
}
header .gnav li a .en{
  color: #f59400;
  font-weight: bold;
  font-size: 13px;
  padding-top: 10px;
}
header .gnav li.contact a{
  background: #f59400;
  display: inline-block;
  color: #fff;
  padding: 13px 26px;
  border-radius: 5px;
}
header .gnav li.contact a b{
  position: relative;
  padding-left: 20px;
}
header .gnav li.contact a b:before{
  content: "▶";
  font-size: 8px;
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
}


.mainv{
  position: relative;
}
.mainv .maintxt{
  max-width: 1071px;
  width: 100%;
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
}
.mainv .maintxt2{
  max-width: 737px;
  width: 100%;
  position: absolute;
  bottom: 15%;
  left: 50%;
  transform: translateX(-50%);
}


.submain img{
  object-fit: cover;
  min-height: 250px;
}


.ttl_area{
  /*font-family:'mknf';*/
  text-align: center;
  margin-bottom: 20px;
}
.ttl_area .en_ttl{
  font-size: 20px;
  color: #f59400;
  margin-bottom: 5px;
  font-weight: bold;
}
.ttl_area .jp_ttl{
  font-size: 32px;
  color: #333;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
.ttl_area .jp_ttl b{
  position: relative;
  z-index: 111;
}
.ttl_area .jp_ttl b:before{
  content: "";
  width: 100%;
  position: absolute;
  bottom: 2px;
  left: 0px;
  border-bottom: 8px solid rgba(249, 179, 111, 0.8);
  z-index: -1;
}


.spec{
  font-size: 15px;
  text-align: center;
  line-height: 1.8;
}


.column3{
  display: flex;
  justify-content: left;
  flex-flow: wrap;
}
.column3 li{
  width: 32%;
  margin-right: 2%;
  margin-bottom: 2.5%;
}
.column3 li:nth-child(3n+3){
  margin-right: 0px;
}


.service_cont{
  padding-top: 30px;
}
.service_cont .column3{
  margin-bottom: 40px;
}
.service_cont .column3 li{
  position: relative;
}
.service_cont .column3 li b{
  width: 100%;
  position: absolute;
  bottom: 0px;
  left: 0px;
  padding: 15px;
  background: rgba(245,148,0,0.9);
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.05em;
  border-radius: 0px 0px 5px 5px;
}
.service_cont .spec{
  margin-bottom: 35px;
}


.relief_cont .ttl_area{
  max-width: 1000px;
  margin: -50px auto 25px;
  padding-top: 30px;
  background: #fff;
  position: relative;
  border-radius: 5px 5px 0px 0px;
}
.relief_cont .column3{
  margin-bottom: 30px;
}
.relief_cont .column3 .img{
  margin-bottom: 25px;
}
.relief_cont .column3 .subttl{
  margin-bottom: 15px;
  font-size: 16px;
  font-weight: bold;
  color: #f59400;
}
.relief_cont .column3 .subspec{
  font-size: 14px;
  line-height: 1.8;
}


.price_cont{
  padding: 40px 0px 50px;
  background: #fbfbfb;
}
.price_cont .price_tbl{
  display: flex;
  justify-content: space-between;
  margin-bottom: 15px;
}
.price_cont .price_tbl li{
  width: 49%;
}

.price_cont .price_tbl .subttl{
  font-weight: bold;
  font-size: 20px;
  margin-bottom: 15px;
  line-height: 1.4;
}
.price_cont .price_tbl .subttl b{
  font-size: 14px;
}
.price_cont .price_tbl li table{
  width: 100%;
  border: 3px solid #dddddd;
  color: #333333;
}
.price_cont .price_tbl li table tr:nth-child(odd){
  background: #f1f1f1;
}
.price_cont .price_tbl li table .color1{
  font-weight: bold;
  color: #fff;
  background: #ff9026;
}
.price_cont .price_tbl li table th{
  width: 25%;
  font-weight: bold;
  padding: 23px 5px;
  text-align: center;
  border-right: 1px solid #dddddd;
  border-bottom: 1px solid #dddddd;
}
.price_cont .price_tbl li table td{
  width: 37.5%;
  padding: 23px 5px 23px 35px;
  border-bottom: 1px solid #dddddd;
  border-right: 1px solid #dddddd;
  text-align: center;
}
.price_cont .price_tbl li table tr:nth-child(3) th,
.price_cont .price_tbl li table tr:nth-child(3) td{
  border-bottom: 0px;
}
.price_cont .cap{
  font-size: 13px;
  text-align: right;
}


.faq_cont{
  background: #fbfbfb;
  padding-bottom: 60px;
}
.faq_cont .ttl_area{
  max-width: 1000px;
  margin: -50px auto 25px;
  padding-top: 30px;
  background: #fbfbfb;
  position: relative;
  border-radius: 5px 5px 0px 0px;
}
.faq_cont .faqlist{
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
}
.faq_cont .faqlist li{
  width: 49%;
  border: 3px solid #eeeeee;
  border-radius: 5px;
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 2%;
}
.faq_cont .faqlist li:nth-child(2n+1){
  margin-right: 2%;
}
.faq_cont .que{
  background: #eeeeee;
  font-weight: bold;
  color: #333;
  padding: 10px 20px;
}
.faq_cont .white_area{
  padding: 15px 20px;
}
.faq_cont .white_area .ans{
  color: #f59400;
  font-weight: bold;
  padding-bottom: 12px;
  margin-bottom: 15px;
  border-bottom: 1px solid #d2d2d2;
}
.faq_cont .white_area .subspec{
  font-size: 14px;
}


.voice_cont{
  padding: 50px 0px;
}
.voice_cont .voice_list{
  padding-top: 10px;
}
.voice_cont .voice_list li{
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0px 0px 7px rgba(0,0,0,0.3);
  margin-bottom: 40px;
}
.voice_cont .voice_list .img{
  width: 350px;
}
.voice_cont .voice_list .txt{
  width: calc(100% - 350px);
  padding: 30px;
  box-sizing: border-box;
  line-height: 1.8;
  font-size: 15px;
}
.voice_cont .voice_list .txt .subttl{
  color: #f59400;
  font-weight: bold;
  text-decoration: underline;
  font-size: 20px;
  margin-bottom: 13px;
}


.abouttbl_wrap{
  width: 100%;
}
.about_cont .ttl_area{
  margin-bottom: 30px;
}
.abouttbl_wrap table{
  width: 100%;
  border: 3px solid #ddd;
  margin-bottom: 100px;
}
.abouttbl_wrap table th{
  width: 25%;
  text-align: left;
  padding: 25px;
  font-weight: bold;
  border-bottom: 1px solid #ddd;
  border-right: 2px solid #ddd;
  line-height: 1.5;
}
.abouttbl_wrap table td{
  width: 75%;
  text-align: left;
  padding: 25px;
  border-bottom: 1px solid #ddd;
  line-height: 1.5;
}
.about_cont table tr:nth-child(even){
  background: #f1f1f1;
}

footer{
  background: url(../images/ft_bg.png) top left;
  background-size: 100% 100%;
  padding: 60px 10px 50px;
}
footer .copy{
  color: #fff;
  text-align: right;
  font-size: 13px;
}
footer .copy small{
  padding-right: 20px;
}


@media screen and (max-width: 1100px){

  .vtb{
    display: block;
  }

  header .gnav{
    display: none;
  }


  .voice_cont .voice_list li{
    box-shadow: 0px 0px 0px rgba(0,0,0,0.3);
  }
  .voice_cont .voice_list .txt{
    padding-top: 0px;
  }


  footer{
    background: #593d30;
    padding: 30px 20px;
  }
  footer .copy{
    text-align: center;
  }
  footer .copy small {
    padding-right: 0px;
  }

}

/* TB */
@media screen and (max-width: 900px){

  .mainv .maintxt{
    padding: 0px 40px;
  }

  .column3 li{
    width: 49%;
  }
  .column3 li:nth-child(3n+3){
    margin-right: 2%;
  }
  .column3 li:nth-child(even){
    margin-right: 0%;
  }


  .service_cont .column3 li b{
    font-size: 13px;
  }

}

/* SP */
@media screen and (max-width: 640px){

  .vpc{
    display: none;
  }
  .vsp{
    display: block;
  }

  .hmbtn{
    top: 15px;
  }

  .ttl_area .jp_ttl{
    font-size: 5vw;
    /*font-size: 24px;*/
    letter-spacing: -0.05em;
  }
  .spec{
    font-size: 14px;
  }
  header .logo{
    max-width: 125px;
  }

  .mainv .maintxt {
    max-width: 400px;
    top: 8%;
  }
  .mainv .maintxt2{
    max-width: 230px;
    bottom: 10%;
  }

  .column3 li {
    width: 100%;
    margin-right: 0%;
    margin-bottom: 30px;
  }


  .service_cont .spec{
    text-align: left;
  }


  .relief_cont .ttl_area{
    margin-bottom: 20px;
  }

  .price_cont .price_tbl li table td{
    padding: 10px;
  }
  .price_cont .price_tbl .subttl{
    text-align: center;
    font-size: 17px;
  }
  .price_cont .price_tbl{
    display: block;
  }
  .price_cont .price_tbl li{
    width: 100%;
    margin-bottom: 30px;
  }
  .price_cont .price_tbl li:nth-child(1) table{
    border-bottom: 0px;
  }
  .price_cont .price_tbl li:nth-child(2) table{
    border-top: 1px solid #ddd;
  }
  .price_cont .price_tbl li:nth-child(2) table tr:nth-child(2) {
    background: none;
  }
  .price_cont .price_tbl li:nth-child(2) table tr:nth-child(odd) {
    background: #f1f1f1;
  }
  .price_cont .cap{
    text-align: left;
    line-height: 1.8;
  }


  .faq_cont{
    padding-bottom: 20px;
  }
  .faq_cont .faqlist li{
    width: 100%;
    margin-right: 0px;
    margin-bottom: 30px;
    font-size: 16px;
  }


  .voice_cont{
    padding-bottom: 20px;
  }
  .voice_cont .voice_list{
    padding-top: 0px;
  }
  .voice_cont .voice_list li{
    display: block;
    border-radius: 0px;
  }
  .voice_cont .voice_list .img{
    width: 100%;
    margin-bottom: 20px;
  }
  .voice_cont .voice_list .txt{
    width: 100%;
    padding: 0px;
  }


  .voice_cont .voice_list .txt .subttl{
    font-size: 16px;
  }
  .voice_cont .voice_list .txt .subspec{
    font-size: 14px;
  }


  .abouttbl_wrap table th{
    width: 100%;
    border-right: 0px;
    display: block;
    padding: 18px;
  }
  .abouttbl_wrap table td{
    width: 100%;
    display: block;
    padding: 18px;
  }
  .about_cont table tr:nth-child(even){
    background: #fff;
  }
  .about_cont table th{
    background: #f1f1f1;
  }

  footer{
    padding: 15px;
  }

}

/* 2025.01.15 追加分 */
.price_cont .cap:not(:first-of-type) {
  margin-top: 6px;
}

/* 2025.08.21 追加分 */
.btn_cv {
  width: fit-content;
  margin-inline: auto;
}

