@charset "utf-8";
/*--------------------------------------
  0.Reset
--------------------------------------*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
 margin: 0;
 padding: 0;
 border: 0;
 outline: 0;
 font-size: 100%;
 vertical-align: baseline;
 background: transparent;
}
sub, sup {
 font-size: 80%;
 vertical-align: top;
}
ruby {
 display: inline-table !important;
 text-align: center !important;
 white-space: nowrap !important;
 text-indent: 0 !important;
 margin: 0 !important;
 vertical-align: -21% !important;
 vertical-align: text-bottom !important;
 line-height: 1 !important;
}
ruby > rb, ruby > rbc {
 display: table-row-group !important;
 line-height: 1.2 !important;
}
ruby > rt, ruby > rbc + rtc {
 display: table-header-group !important;
 font-size: 50% !important;
 line-height: 1.2 !important;
 letter-spacing: 0 !important;
}
ruby > rbc + rtc + rtc {
 display: table-footer-group !important;
 font-size: 50% !important;
 line-height: 1 !important;
 letter-spacing: 0 !important;
}
rbc > rb, rtc > rt {
 display: table-cell !important;
 letter-spacing: 0 !important;
}
rp {
 display: none !important;
}
body {
 line-height: 1;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
 display: block;
}
ul {
 list-style: none;
}
blockquote, q {
 quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
 content: '';
 content: none;
}
a {
 margin: 0;
 padding: 0;
 font-size: 100%;
 vertical-align: baseline;
 background: transparent;
 outline: none;
}
/* change colours to suit your needs */
ins {
 background-color: #ff9;
 color: #000;
 text-decoration: none;
}
/* change colours to suit your needs */
mark {
 background-color: #ff9;
 color: #000;
 font-style: italic;
 font-weight: bold;
}
del {
 text-decoration: line-through;
}
abbr[title], dfn[title] {
 border-bottom: 1px dotted;
 cursor: help;
}
table {
 border-collapse: collapse;
 border-spacing: 0;
}
/* change border colour to suit your needs */
hr {
 display: block;
 height: 1px;
 border: 0;
 border-top: 1px solid #cccccc;
 margin: 1em 0;
 padding: 0;
}
input, select {
 vertical-align: middle;
}
img {
 border: none;
 vertical-align: middle;
}
* {
 box-sizing: border-box;
 vertical-align: top;
}
li::marker {
 content: "";
}
/*--------------------------------------
  1.Font
--------------------------------------*/
body {
 height: 100%;
 background: #fff;
 color: #231815;
 font-size: 16px;
 line-height: 1;
}
#contents {
 font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, sans-serif;
}
#contents a {
 color: #231815;
 text-decoration: none;
}
/*--------------------------------------
  2.Tools
--------------------------------------*/
.clearfix:after {
 display: block;
 clear: both;
 content: "";
}
* html .clearfix {
 zoom: 1;
}
*:first-child + html .clearfix {
 zoom: 1;
}
.hide {
 display: none;
}
/*--------------------------------------
  3.Layout
--------------------------------------*/
#contents img {
 max-width: 100%;
 height: auto;
}
@media screen and (min-width:768px) {
 .sp {
  display: none;
 }
 .pc {
  display: block;
 }
}
@media screen and (max-width:767px) {
 .pc {
  display: none;
 }
 .sp {
  display: block;
 }
}
/*--------------------------------------
  4.Common
--------------------------------------*/
#header {
 width: 100%;
 z-index: 10;
 position: fixed;
 top: 0;
 left: 0;
 background: #eeeeee;
}
#header h1 {
 vertical-align: top;
}
#gnav {
 display: none;
 position: fixed;
 background: #fafafa;
 z-index: 11;
}
#header .navbtn {
 position: fixed;
 z-index: 10;
}
.navopen.navopened {
 display: none;
}
.navclose {
 display: none;
}
.navclose.navopened {
 display: block;
}
#header .headinner {
 position: relative;
}
#gnav .navlabel {
 display: table-cell;
 vertical-align: middle;
 letter-spacing: 0.05em;
}
#gnav .gnav {
 display: table-cell;
 letter-spacing: 0.1em;
}
#footer a {
 color: #fff;
}
#footer .footinner {
 background: #000;
 color: #fff;
}
#footer .navlabel {
 letter-spacing: 0.05em;
}
#bgmovie {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100vh;
 z-index: 1;
 transition: 0.3s;
}
#bgmovie video {
 width: 100vw;
 height: 100vh;
 object-fit: cover;
 position: absolute;
 top: 0;
 left: 0;
 transition: 0.3s;
}
#bgmovie.scrolling {}
#mainwrapper {
 position: relative;
 z-index: 3;
}
#cookiearert {
 width: 100%;
 height: auto;
 background: #000;
 color: #fff;
 position: fixed;
 bottom: 0;
 left: 0;
 z-index: 20;
 overflow: hidden;
 transition: 0.2s;
 display: none;
}
#cookiearert a {
 text-decoration: underline;
 color: #dedede;
}
#cookiearert .btn {
 background: #fff;
 color: #000;
 position: absolute;
}
#cookiearert .btn a {
 display: block;
 text-decoration: none;
}
@media screen and (min-width:768px) {
 .sp {
  display: none;
 }
 .mid {
  display: none;
 }
 .pc {
  display: block;
 }
 #header .headinner {
  padding: 30px 60px 30px 60px;
  margin: 0 auto;
 }
 #header h1 {
  width: 35%;
  max-width: 480px;
  min-width: 320px;
  text-align: left;
 }
 #header .navbtn {
  position: absolute;
  top: 0;
  right: 60px;
  width: 80px;
 }
 #header .navbtn a {
  display: block;
  padding: 22px;
  cursor: pointer;
 }
 #header .navbtn.navopen {
  padding: 5px 0;
 }
 #gnav {
  top: 120px;
  right: 5%;
  width: 25%;
  border-radius: 10px;
  padding: 20px;
 }
 #gnav .gnavinner {
  display: table;
  width: 100%;
 }
 #gnav .gnav {
  min-width: 200px;
  font-size: 20px;
  font-weight: 500;
  width: 20%;
 }
 #gnav .gnav a {
  display: block;
  padding: 20px;
 }
 #gnav .gnav .navlist li {
  margin: 0 0 5px 0;
  background: #dcdcdc;
 }
 #gnav .gnav .navlist li:last-child {
  margin: 0;
 }
 #footer .footinner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 60px 30px 60px;
 }
 #footer .footbody {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
  position: relative;
 }
 #footer .footnav {
  display: flex;
  justify-content: space-between;
 }
 #footer .inner01 {
  width: 50%;
 }
 #footer .inner02 {
  width: 50%;
 }
 #footer .navlabel {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 30px 0;
 }
 #footer .footnav ul {
  font-size: 14px;
  margin: 0 0 30px 0;
  padding: 0 0 0 15px;
  border-left: 1px solid #fff;
 }
 #footer .footnav ul li {
  margin: 0 0 30px 0;
 }
 #footer .footnav ul li:last-child {
  margin: 0;
 }
 #footer .footnav .navinner {
  width: 33%;
 }
 #footer .footnav .nav03 ul {
  font-size: 12px;
 }
 #footer .footnav .nav03 ul li {
  margin: 0 0 33px 0;
 }
 #footer .footnav a {
  display: inline-block;
  position: relative;
 }
 #footer .footnav a.blanklink::after {
  content: '';
  position: absolute;
  top: 0;
  right: -22px;
  width: 16px;
  height: 16px;
  background: url("../img/common/btn_arrow_s_w.png") no-repeat center center;
  background-size: cover;
 }
 #footer .contact {
  width: 160px;
  text-align: center;
  margin: 0 0 30px 0;
 }
 #footer .contact .label {
  font-size: 12px;
  margin: 0 0 10px 0;
 }
 #footer .contact .contactbtn a {
  display: block;
  font-size: 14px;
  font-weight: 700;
  background: #fff;
  color: #000;
  border: 1px solid #fff;
  padding: 15px 20px;
  border-radius: 30px;
  transition: 0.3s;
 }
 #footer .contact .contactbtn a:hover {
  background: #000;
  color: #fff;
 }
 #footer .company {
  padding: 0 20px 0 0;
 }
 #footer .company .label {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
 }
 #footer .company .text {
  font-size: 12px;
  line-height: 1.5;
 }
 #footer .company .notice {
  font-size: 10px;
  margin: 0 0 0 10px;
 }
 #footer .company .mapbtn {
  margin: 0 0 0 10px;
  vertical-align: bottom;
 }
 #footer .company .mapbtn a {
  position: relative;
  display: inline-block;
  font-size: 12px;
  font-weight: 400;
  background: #fff;
  color: #000;
  border: 1px solid #fff;
  padding: 1px 30px 1px 10px;
  border-radius: 30px;
  transition: 0.3s;
 }
 #footer .company .mapbtn a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 3px;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 0;
  background: url("../img/common/btn_arrow_s_b.png") no-repeat center center;
  background-size: cover;
 }
 .main {
  padding: 80px 0 0 0;
 }
 #footer .company .company02 {
  margin: 20px 0 0 0;
 }
 #footer .footlogo {
  width: 160px;
  position: absolute;
  bottom: 30px;
  left: 0;
 }
 #maincontents .morebtn {
  display: inline-block;
 }
 #maincontents .morebtn a {
  position: relative;
  display: block;
  text-align: left;
  width: 240px;
  font-size: 16px;
  font-weight: 400;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  padding: 12px 40px 14px 20px;
  border-radius: 30px;
  transition: 0.3s;
 }
 #maincontents .morebtn a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 12px;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 0;
  background: url("../img/common/btn_arrow_w.png") no-repeat center center;
  background-size: cover;
 }
 #maincontents button.btn::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 12px;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 0;
  background: url("../img/common/btn_arrow_w.png") no-repeat center center;
  background-size: cover;
 }
 #maincontents .morebtn a:hover {
  background: #fff;
  color: #000;
  border: 1px solid #000;
 }
 #maincontents .morebtn a:hover::after {
  background: url("../img/common/btn_arrow_b.png") no-repeat center center;
  background-size: cover;
 }
 #maincontents .listbtn {
  display: inline-block;
 }
 #maincontents .listbtn a {
  position: relative;
  display: block;
  text-align: left;
  width: 100%;
  font-size: 16px;
  font-weight: 400;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  padding: 12px 40px 14px 20px;
  border-radius: 30px;
  transition: 0.3s;
 }
 #maincontents .listbtn a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 12px;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 0;
  background: url("../img/common/btn_arrow_w.png") no-repeat center center;
  background-size: cover;
 }
 #maincontents .listbtn a:hover {
  background: #fff;
  color: #000;
  border: 1px solid #000;
 }
 #maincontents .listbtn a:hover::after {
  background: url("../img/common/btn_arrow_b.png") no-repeat center center;
  background-size: cover;
 }
 #maincontents button.btn {
  position: relative;
  display: block;
  text-align: left;
  width: 240px;
  font-size: 16px;
  font-weight: 400;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  padding: 12px 40px 14px 20px;
  border-radius: 30px;
  cursor: pointer;
  margin: 0 auto;
  transition: 0.3s;
 }
 #maincontents button.btn:hover {
  background: #fff;
  color: #000;
  border: 1px solid #000;
 }
 #maincontents button.btn:hover::after {
  background: url("../img/common/btn_arrow_b.png") no-repeat center center;
  background-size: cover;
 }
 #cookiearert .inner {
  padding: 40px 180px;
  text-align: center;
  font-size: 14px;
  line-height: 1.5;
 }
 #cookiearert .btn {
  top: 50%;
  right: 40px;
  margin: -20px 0 0 0;
 }
 #cookiearert .btn a {
  background: #fff;
  color: #000;
  padding: 10px 20px;
  text-align: center;
  font-size: 14px;
 }
}
@media screen and (max-width:767px) {
 .pc {
  display: none;
 }
 .mid {
  display: none;
 }
 .sp {
  display: block;
 }
 #contents {
  width: 100%;
  overflow: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
 }
 #header .headinner {
  padding: 15px 20px 20px 20px;
 }
 #header h1 {
  width: 60%;
  text-align: left;
  margin: 0;
 }
 #header .navbtn {
  position: absolute;
  top: 4px;
  right: 15px;
  width: 40px;
 }
 #header .navbtn a {
  display: block;
  padding: 10px;
  cursor: pointer;
 }
 #header .navbtn.navopen {
  padding: 0;
 }
 #gnav {
  top: 100px;
  right: 8%;
  left: 5%;
  width: 90%;
  border-radius: 10px;
  padding: 5%;
 }
 #gnav .gnavinner {
  display: table;
  width: 100%;
 }
 #gnav .gnav {
  font-size: 4.5vw;
  font-weight: 500;
  width: 60%;
 }
 #gnav .gnav a {
  display: block;
  padding: 10px;
 }
 #gnav .gnav .navlist li {
  margin: 0 0 3% 0;
  background: #dcdcdc;
 }
 #gnav .gnav .navlist li:last-child {
  margin: 0;
 }
 #footer .footinner {
  padding: 8% 5%;
 }
 #footer .footbody {
  position: relative;
 }
 #footer .navlabel {
  font-size: 6vw;
  font-weight: 700;
  padding: 0 0 3% 0;
  margin: 0 0 5% 0;
  text-align: center;
  border-bottom: 1px solid #fff;
 }
 #footer .footnav {
  margin: 0 0 8% 0;
 }
 #footer .footnav ul {
  font-size: 4vw;
  padding: 0 0 5% 0;
  margin: 0 0 5% 0;
  border-bottom: 1px solid #fff;
 }
 #footer .footnav ul li {
  margin: 0 0 3% 0;
  border-bottom: 1px solid #666;
 }
 #footer .footnav ul li:last-child {
  margin: 0;
  border: none;
 }
 #footer .footnav a {
  display: inline-block;
  position: relative;
  padding: 10px 5px;
 }
 #footer .footnav a.blanklink::after {
  content: '';
  position: absolute;
  bottom: 10px;
  right: -18px;
  width: 14px;
  height: 14px;
  background: url("../img/common/btn_arrow_s_w.png") no-repeat center center;
  background-size: cover;
 }
 #footer .contact {
  width: 60%;
  text-align: center;
  margin: 0 0 8% 0;
 }
 #footer .contact .label {
  font-size: 3vw;
  margin: 0 0 3% 0;
 }
 #footer .contact .contactbtn a {
  display: block;
  font-size: 3.5vw;
  font-weight: 700;
  background: #fff;
  color: #000;
  border: 1px solid #fff;
  padding: 10px 20px;
  border-radius: 30px;
 }
 #footer .company {
  padding: 0 0 8% 0;
 }
 #footer .company .label {
  font-size: 3.5vw;
  font-weight: 700;
  line-height: 1.6;
 }
 #footer .company .text {
  font-size: 3vw;
  line-height: 1.5;
 }
 #footer .company .notice {
  font-size: 3vw;
  margin: 0 0 0 2%;
 }
 #footer .company .mapbtn {
  margin: 0 0 0 2%;
  vertical-align: bottom;
 }
 #footer .company .mapbtn a {
  position: relative;
  display: inline-block;
  font-size: 3vw;
  font-weight: 400;
  background: #fff;
  color: #000;
  border: 1px solid #fff;
  padding: 2px 30px 2px 10px;
  border-radius: 30px;
 }
 #footer .company .mapbtn a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 3px;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 0;
  background: url("../img/common/btn_arrow_s_b.png") no-repeat center center;
  background-size: cover;
 }
 #footer .company .company02 {
  margin: 5% 0 0 0;
 }
 #footer .footlogo {
  width: 50%;
 }
 .main {
  padding: 80px 0 0 0;
 }
 #maincontents .morebtn a {
  position: relative;
  display: block;
  text-align: left;
  width: 100%;
  font-size: 4vw;
  font-weight: 400;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  padding: 15px 40px 16px 20px;
  border-radius: 30px;
 }
 #maincontents .morebtn a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 12px;
  width: 24px;
  height: 24px;
  margin: -12px 0 0 0;
  background: url("../img/common/btn_arrow_w.png") no-repeat center center;
  background-size: cover;
 }
 #maincontents button.btn {
  position: relative;
  display: block;
  text-align: left;
  width: 100%;
  font-size: 4vw;
  font-weight: 400;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  padding: 15px 40px 16px 20px;
  border-radius: 30px;
  cursor: pointer;
  margin: 0 auto;
 }
 #maincontents button.btn::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 12px;
  width: 24px;
  height: 24px;
  margin: -12px 0 0 0;
  background: url("../img/common/btn_arrow_w.png") no-repeat center center;
  background-size: cover;
 }
 #cookiearert .inner {
  padding: 5%;
  text-align: left;
  font-size: 3vw;
  line-height: 1.5;
 }
 #cookiearert .btn {
  width: 50%;
  position: relative;
  margin: 5% auto 0 auto;
  text-align: center;
 }
 #cookiearert .btn a {
  background: #fff;
  color: #000;
  padding: 10px;
  text-align: center;
  font-size: 3vw;
 }
}
/* MIDDLE */
@media screen and (min-width:768px) and (max-width:1000px) {
 .pc {
  display: none;
 }
 .mid {
  display: block;
 }
 .sp {
  display: none;
 }
 #footer .footnav {
  display: block;
 }
 #footer .inner01 {
  width: 30%;
 }
 #footer .inner02 {
  width: 70%;
 }
 #footer .footnav .navinner {
  width: 100%;
 }
}
.notfound .maintitle {
 text-align: center;
 letter-spacing: 0.1em;
 font-weight: 700;
 line-height: 1.2;
}
@media screen and (min-width:768px) {
 #maincontents.notfound {
  padding: 180px 0 160px 0;
 }
 .notfound .maintitle {
  font-size: 72px;
  margin: 0 0 70px 0;
 }
 .notfound .lead {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
  margin: 0 0 60px 0;
 }
}
@media screen and (max-width:767px) {
 #maincontents.notfound {
  padding: 8% 0 15% 0;
 }
 .notfound .maintitle {
  font-size: 6.5vw;
  margin: 0 0 8% 0;
 }
 .notfound .lead {
  font-size: 3vw;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
  margin: 0 5% 10% 5%;
 }
}
@keyframes fadeInUp {
 from {
  opacity: 0;
  transform: translateY(20px); /* 20px下から開始 */
 }
 to {
  opacity: 1;
  transform: translateY(0);
 }
}
.add {
 animation: fadeInUp 0.6s ease-out forwards;
}