@charset "utf-8";
/* ------ General Settings ------ */
.grecaptcha-badge {
 visibility: hidden;
}
img {
 width: 100%;
 height: auto;
 vertical-align: bottom;
}
figure {
 margin: 0;
 padding: 0;
}
a {
 transition: all 0.5s 0s ease;
 color: #242424;
}
a img {
 transition: opacity 0.3s ease-out;
}
a:hover {
 opacity: 0.7;
}
a:hover img {
 opacity: 0.7;
}
body {
 font-family: toppan-bunkyu-gothic-pr6n, serif;
 font-weight: 400;
 font-style: normal;
 margin: 0;
 padding: 0;
 font-size: 14px;
 color: #242424;
 line-height: 2;
 background: url("../images/common/bg_body.jpg") repeat;
 letter-spacing: 1px;
}
.wrapper {
 overflow: hidden;
	min-width: 1200px;
	margin: 0 auto;
}
.wrapper.sec {
 padding: 160px 0 0 0;
}
.br_pc {
 display: inherit;
}
.br_sp {
 display: none;
}
.tbm-r { /*Toppan BunkyuGothicPr6N R*/
 font-family: toppan-bunkyu-gothic-pr6n, serif;
 font-weight: 400;
 font-style: normal;
}
.tbm-db { /*Toppan BunkyuGothicPr6N DB*/
 font-family: toppan-bunkyu-gothic-pr6n, serif;
 font-weight: 600;
 font-style: normal;
}
.tbm-eb { /*Toppan BunkyuMidashiGoStdN EB*/
 font-family: toppan-bunkyu-midashi-go-std, sans-serif;
 font-weight: 900;
 font-style: normal;
}
@media screen and (max-width: 767px) {
	.wrapper {
	min-width: auto;
}
 a:hover {
  opacity: 1;
 }
 body {
  font-size: 4vw;
  line-height: 1.8;
 }
 .br_pc {
  display: none !important;
 }
 .br_sp {
  display: inherit !important;
 }
}
/* ------ header ------ */
#header {
 width: 100%;
 top: 0;
 position: fixed;
 height: 80px;
 z-index: 900;
 box-sizing: border-box;
 background: #000;
}
.header_inner {
 width: 100%;
		min-width: 1200px;
 height: 119px;
 margin: 0 auto;
 position: relative;
 padding-top: 5px;
}
.header_logo {
 position: absolute;
 width: 414px;
 top: 15px;
 left: 30px;
}
#g-nav-sub {
 width: 110px;
 height: 104px;
 position: absolute;
 top: 0;
 right: 47px;
 font-size: 0;
 background: url("../images/common/bg_snav.svg") no-repeat 0 0;
 background-size: 100% auto;
}
#g-nav-sub a {
 width: 110px;
 height: 104px;
 padding-top: 13px;
 background: url("../images/common/bg_snav.svg") no-repeat 0 0;
 background-size: 100% auto;
 display: block;
 box-sizing: border-box;
 text-align: center;
}
.header_entry {
 font-size: 16px;
 color: #fff;
 display: inline-block;
 text-align: center;
 padding-top: 35px;
 background: url("../images/common/ic_entry.svg") no-repeat center top;
 background-size: 40px 30px;
}
#g-nav-main {
 position: absolute;
 top: 22px;
 right: 200px;
 font-size: 0;
}
#g-nav-main ul {
	width: 385px;
	text-align: right;
}
#g-nav-main li {
 display: inline-block;
}
#g-nav-main li + li {
 padding-left: 40px;
}
#g-nav-main li a {
 font-size: 16px;
 font-weight: bold;
 color: #fff;
}
/*global nav用*/
body.fixed {
 width: 100%;
 height: 100%;
 position: fixed;
 z-index: 1;
}
#g-nav {
 position: fixed;
 z-index: 100;
 top: 10.66vw;
 right: -120%;
 width: 100%;
 height: 100vh;
 /*background: #999;*/
 transition: all 0.6s;
}
#g-nav.panelactive {
 right: 0;
}
#g-nav.panelactive #g-nav-list {
 position: fixed;
 z-index: 999;
 width: 100%;
 height: 100vh;
 overflow: auto;
 -webkit-overflow-scrolling: touch;
}
/*global nav 表示*/
.g-nav-list-inner {
 position: absolute;
 z-index: 999;
 top: 0;
 right: 0;
 width: 446px;
 background: #000;
 text-align: left;
 padding: 55px 60px 100px 55px;
 box-sizing: border-box;
}
.g-ttl {
 font-size: 22px;
 font-weight: bold;
 color: #fff;
 margin-bottom: 20px;
 padding-bottom: 20px;
 border-bottom: #242424 1px solid;
}
#g-nav ul {
 margin-bottom: 20px;
 padding-bottom: 20px;
 border-bottom: #242424 1px solid;
}
#g-nav ul:last-child {
 border: none;
}
/*リストのレイアウト設定*/
#g-nav li {
 list-style: none;
 text-align: left;
}
#g-nav li a {
 color: #fff;
 text-decoration: none;
 padding: 10px;
 display: block;
 text-transform: uppercase;
 letter-spacing: 0.1em;
 font-weight: bold;
 font-size: 18px;
}
/*global nav ボタン*/
.openbtn {
 display: none;
 position: fixed;
 z-index: 9999;
 top: 0;
 right: 0px;
 cursor: pointer;
 width: 50px;
 height: 50px;
 color: #fff;
 background: #000;
 padding: 0 0 0 0;
 font-weight: bold;
 line-height: 1.2;
 text-align: center;
}
/*×に変化*/
.openbtn span {
 display: inline-block;
 transition: all .4s;
 position: absolute;
 left: 15px;
 height: 1px;
 background-color: #fff;
 width: 22px;
}
.openbtn span:nth-of-type(1) {
 top: 17px;
}
.openbtn span:nth-of-type(2) {
 top: 25px;
}
.openbtn span:nth-of-type(3) {
 width: 16px;
 top: 33px;
}
 /*×に変化*/
 
.openbtn.active span:nth-of-type(1) {
 top: 17px;
 left: 14px;
 transform: translateY(6px) rotate(-45deg);
 width: 22px;
}
.openbtn.active span:nth-of-type(2) {
 opacity: 0;
}
.openbtn.active span:nth-of-type(3) {
 top: 29px;
 left: 14px;
 transform: translateY(-6px) rotate(45deg);
 width: 22px;
}
@media screen and (max-width: 767px) {
 #header {
  height: 50px;
 }
 .header_inner {
  height: 50px;
		min-width: auto;
  padding-top: 0;
 }
 .header_logo {
  position: absolute;
  width: 230px;
  top: 12px;
  left: 14px;
		font-size: 0;
 }
 #g-nav-sub {
  width: 66px;
  height: 63px;
  position: absolute;
  top: 0;
  right: 50px;
  font-size: 0;
  background: url("../images/common/bg_snav.svg") no-repeat 0 0;
  background-size: 100% auto;
		z-index: 1000;
 }
 #g-nav-sub a {
  width: 66px;
  height: 63px;
  padding-top: 7px;
  background: url("../images/common/bg_snav.svg") no-repeat 0 0;
  background-size: 32px auto;
  display: block;
  box-sizing: border-box;
  text-align: center;
 }
 .openbtn {
  display: block;
 }
 #g-nav-main {
  display: none;
 }
 .header_entry {
  font-size: 11px;
  color: #fff;
  display: inline-block;
  text-align: center;
  padding-top: 25px;
  background: url("../images/common/ic_entry.svg") no-repeat center top;
  background-size: 30px auto;
 }

 #g-nav-main {
  display: none;
 }
 .header_is {
  position: absolute;
  top: 8px;
  right: 94px;
  width: 53px;
 }
 /*global nav用*/
 #g-nav {
  position: fixed;
  z-index: 999;
  top: 50px;
  right: -120%;
  width: 100%;
  height: 100vh;
  background: #000;
  transition: all 0.6s;
 }
 #g-nav.panelactive #g-nav-list {
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
 }
 /*global nav 表示*/
 .g-nav-list-inner {
  position: absolute;
  z-index: 999;
  top: 0;
  right: 0;
  width: 100%;
  background: #000;
  text-align: left;
  padding: 4vw 5vw 50vw 4vw;
  box-sizing: border-box;
 }
 .g-ttl {
  font-size: 4.5vw;
  font-weight: bold;
  color: #fff;
  margin-bottom: 3vw;
  padding-bottom: 3vw;
  border-bottom: #242424 1px solid;
 }
 #g-nav ul {
  margin-bottom: 3vw;
  padding-bottom: 3vw;
  border-bottom: #242424 1px solid;
 }
 #g-nav ul:last-child {
  border: none;
 }
 /*リストのレイアウト設定*/
 #g-nav li {
  list-style: none;
  text-align: left;
  padding-bottom: 3vw;
  margin-bottom: 3vw;
  border-bottom: #333 1px solid;
 }
 #g-nav li a {
  color: #fff;
  text-decoration: none;
  padding: 2vw;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: bold;
  font-size: 4vw;
  text-align: center;
 }
 /*global nav ボタン*/
 .openbtn p {
  display: none;
 }

}

/* ------ footer ------ */
footer {
 background: url("../images/common/bg_footer.jpg") no-repeat center bottom;
 background-size: cover;
 height: 33.33vw;
 position: relative;
}
.footer_inner {
 width: 450px;
 position: absolute;
 bottom: 6vw;
 left: 50%;
 margin-left: -225px;
 text-align: center;
 overflow: hidden;
}
.footer_name {
 font-size: 24px;
 color: #fff;
 margin-bottom: 30px;
 line-height: 1;
}
.footer_address_txt {
 font-size: 18px;
 color: #fff;
}
@media screen and (max-width: 767px) {
 footer {
  background: url("../images/common/bg_footer.jpg") no-repeat -15vw bottom;
  background-size: cover;
  height: 75vw;
  position: relative;
 }
 .footer_inner {
  width: 80vw;
  position: absolute;
  bottom: 6vw;
  left: 50%;
  margin-left: -40vw;
  text-align: center;
  overflow: hidden;
 }
 .footer_name {
  font-size: 4.2vw;
  color: #fff;
  margin-bottom: 4vw;
  line-height: 1.5;
 }
 .footer_address_txt {
  font-size: 3.2vw;
  color: #fff;
 }
}
/* ------ sp 固定nav ------ */
.fixed {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 56px;
 z-index: 9999;
 background: #fff !important;
}
.sp-contact {
 display: block;
 position: fixed;
 z-index: 9999;
 bottom: 0;
 width: 100%;
 height: auto;
 background: #ccc;
}
.sp-contact .sp-contact__list {
 overflow: hidden;
 height: 100%;
 background: #242424;
 text-align: center;
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 border: #fff 2px solid;
}
.sp-contact .sp-contact__list .sp-contact__item {
 width: 25%;
 height: 56px;
 box-sizing: border-box;
}
.sp-contact .sp-contact__list li + li {
 border-left: #fff 2px solid;
}
.sp-contact .sp-contact__list .sp-contact__item a {
 display: block;
 color: #fff;
 text-decoration: none;
 height: 56px;
 box-sizing: border-box;
 line-height: 56px;
 font-size: 16px;
}
.sp-contact .sp-contact__list .sp-contact__item:first-child a {
 background: #FBA518;
 font-weight: bold;
 font-size: 20px;
}