@charset "UTF-8";
/* CSS Document */

/* ---------------------------------------------------------
common
----------------------------------------------------------*/
html,
body {
  font-size: 62.5%;
}
html {
  height: 100%;
}
body {
  display: flex;
  flex-direction: column;
	width: 100%;
  min-height: 100%;
	font-family: "游ゴシック体","Yu Gothic Medium",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	font-size: 1.4rem;
	line-height: 1;
	color: #000;
	word-break: break-all;
	background-color: #fff;
	-webkit-text-size-adjust: 100%;
}
header, footer, nav, section, article, aside, h1, h2, h3, h4, h5, h6,
div, p, dl, dt, dd, table {
  box-sizing: border-box;
}
img {
  vertical-align: bottom;
}
a {
  color: #000;
}
a:hover {
  text-decoration: none;
}
li {
  list-style: none;
}
.show-sp {
  display: none;
}

/* ---------------------------------------------------------
.lang-box
----------------------------------------------------------*/
.lang-box {
  position: absolute;
  top: 0;
  right: 0;
}
.lang-box ul {
  display: flex;
}

.lang-box .cr,
.lang-box a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 45px;
  height: 45px;
	text-decoration: none;
  background-color: #EFEFEF;
  transition: background-color .3s,color .3s;
}

.lang-box .cr,
.lang-box a:hover {
  color: #fff;
  text-decoration: none;
  background-color: #000;
}

/* ---------------------------------------------------------
#pagetop
----------------------------------------------------------*/
#pagetop {
	width: 150px;
	margin: 48px 0 60px auto;
}
#pagetop a {
	position: relative;
	display: block;
}
#pagetop a::before {
	content: '';
	display: block;
	width: 124px;
	height: 98px;
	background: url(../img/illust_pagetop.png);
	background-size: 124px 98px;
	margin: 0 auto 12px;
}
#pagetop a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	width: 150px;
	height: 30px;
	background: url(../img/icon_pagetop_on.svg);
	background-size: 150px auto;
	opacity: 0;
	transition: opacity .3s;
}
.lang-en #pagetop a::after {
	background-image: url(../img/icon_pagetop_en_on.svg);
}
#pagetop img {
	width: 100%;
	height: auto;
	transition: opacity .3s;
}

/* ---------------------------------------------------------
footer
----------------------------------------------------------*/
footer {
	min-width: 1246px;
  height: 80px;
  font-size: 1rem;
  color: #fff;
  background: #313125;
  padding: 21px 0;
}
footer .privacy-policy a {
  display: block;
  text-align: center;
  color: #fff;
  margin-bottom: 21px;
}
footer .privacy-policy a::before {  
  content: '';
  display: inline-block;
  width: 9px;
  height: 9px;
  background: url(../img/icon_window_white.svg) no-repeat;
  background-size: contain;
  margin: 0 5px -2px 0;
}
footer .copy {
  text-align: center;
}


@media screen and (min-width:641px) {
	#pagetop a:hover::after {
		opacity: 1;
	}
	#pagetop a:hover img {
		opacity: 0;
	}
}

/* ---------------------------------------------------------
tablet
----------------------------------------------------------*/
@media screen and (min-width:641px) and (max-width:768px) {
	footer {
		min-width: 100%;
	}
}

/* ---------------------------------------------------------
sp
----------------------------------------------------------*/
@media screen and (max-width:640px) {
/* ---------------------------------------------------------
 common
----------------------------------------------------------*/
  .show-pc {
    display: none;
  }
  .show-sp {
    display: block;
  }

/* ---------------------------------------------------------
.lang-box
----------------------------------------------------------*/
	.lang-box {
		position: absolute;
		right: 50%;
		margin-right: -45px;
	}

/* ---------------------------------------------------------
#pagetop
----------------------------------------------------------*/
	#pagetop {
		width: 40vw;
		margin: 48px 4.8vw 60px auto;
	}
	#pagetop a::before {
		content: '';
		display: block;
		width: 33vw;
		height: 26vw;
		background: url(../img/illust_pagetop.png);
		background-size: 100% auto;
	}

/* ---------------------------------------------------------
footer
----------------------------------------------------------*/
	footer {
		min-width: 100%;
	}
}