@charset "utf-8";
@import "html5reset-1.6.1.css";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css?family=Oswald:400,500');
body {
	font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Osaka", "メイリオ", "Meiryo", "MS Pゴシック", "MS P Gothic", "Myriad Web", "Myriad Pro", Verdana, sans-serif;
	color: #333;
	font-size: 16px;
	height: 100%;
	letter-spacing: 0.1em;
	word-wrap: break-word;
}
html {
	height: 100%;
}
a {
	color: #333;
}
#wrapper {
	position: relative;
	min-height: 100%;
}
@media screen and (min-width: 768px) {
	#wrapper {
		min-width: 1280px;
	}
	br.sp, img.sp {
		display: none;
	}
	a, a:hover {
		transition: 0.3s;
	}
	.pageTop {
		position: fixed;
		bottom: 30px;
		right: -60px;
		z-index: 100;
	}
	.pageTop a {
		display: block;
		background: #999999;
		padding: 10px;
		border-radius: 50%;
	}
}
@media screen and (max-width: 767px) {
	body {
		font-size: 14px;
	}
	html, body {
		scroll-padding-top: 55px;
	}
	br.pc, img.pc {
		display: none;
	}
	.pageTop {
		display: none;
	}
}
/*---------------------- Header ------------------------*/
@media screen and (min-width: 768px) {
	#header {
		border-top: 5px solid #E62328;
	}
	#header .inner {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		max-width: 1280px;
		margin: 0px auto;
	}
	#header .inner .logo {
		width: 18%;
	}
	#header .inner .logo a {
		display: block;
		padding: 20px 0 0;
		height: 80px;
		text-align: center;
		text-decoration: none;
		box-sizing: border-box;
		border-right: 1px solid #CCCCCC;
	}
}
@media screen and (max-width: 1000px) and (min-width: 768px) {
	#header .inner .logo img {
		height: 30px;
		width: auto;
	}
	#header .inner .logo a {
		padding: 25px 0 0;
	}
}
@media screen and (max-width: 767px) {
	#header .logo {
		position: fixed;
		border-top: 5px solid #E62328;
		background-color: #fff;
		top: 0;
		left: 0;
		z-index: 111;
		width: 100%;
		height: 55px;
		text-align: center;
		padding: 10px 0 0;
		box-sizing: border-box;
		box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.05);
	}
	#header .logo img {
		height: 30px;
		width: auto;
	}
}
/*---------------------- Global Navi Menu ------------------------*/
@media screen and (min-width: 768px) {
	#gNaviMenu {
		width: 82%;
	}
	#gNaviMenu ul {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
	}
	#gNaviMenu li {
		width: calc(100% / 8);
	}
	#gNaviMenu li a {
		display: block;
		padding: 20px 0 0;
		height: 80px;
		text-align: center;
		text-decoration: none;
		box-sizing: border-box;
		border-right: 1px solid #CCCCCC;
		transition: 0.3s;
		font-size: 15px;
		font-weight: 500;
		letter-spacing: 0.03em;
	}
	#gNaviMenu li a span {
		display: block;
		margin-top: 12px;
		font-size: 0.9em;
		color: #E62328;
		font-family: 'Oswald', sans-serif;
	}
	#gNaviMenu li a:hover, #gNaviMenu li.active a {
		background: #fafafa;
	}
	#gNaviMenu li.logo a:hover {
		background: #ffffff;
	}
}
@media screen and (max-width: 767px) {
	#gNaviMenu.active {
		position: fixed;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		z-index: 109;
		background-color: rgba(0, 0, 0, 0.6);
	}
	#gNaviMenuInner {
		width: 250px;
		height: 100%;
		background-color: #FFF;
		transition: all 0.3s ease-in-out 0.0s;
		position: fixed;
		z-index: 110;
		top: 0;
		left: -250px;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		box-sizing: border-box;
		padding: 80px 20px 20px;
		text-align: center;
	}
	#gNaviMenuInner.active {
		box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.3);
		left: 0px;
	}
	#gNaviMenu ul li a {
		text-decoration: none;
		display: block;
		border-top: 1px solid #999;
		padding: 15px 0;
		text-align: center;
		position: relative;
		letter-spacing: 0.03em;
	}
	#gNaviMenu ul li:last-child a {
		border-bottom: 1px solid #999;
	}
	#gNaviMenu li a span {
		display: block;
		margin-top: 10px;
		font-size: 0.8em;
		color: #E62328;
		font-family: 'Oswald', sans-serif;
	}
	#gNaviMenu li a::after {
		position: absolute;
		top: 0;
		bottom: 0;
		right: 10px;
		margin: auto;
		content: "";
		vertical-align: middle;
		width: 8px;
		height: 8px;
		border-top: 2px solid #E62328;
		border-right: 2px solid #E62328;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
}
/*---------------------- Global Navi Button ------------------------*/
#gNaviBtn {
	display: block;
	top: 5px;
	left: 0;
	width: 50px;
	height: 50px;
	z-index: 112;
	text-align: center;
	position: fixed;
	transition: all 0.3s ease-in-out 0.0s;
}
#gNaviBtn.active {
	background-color: transparent;
}
#gNaviBtn span {
	display: block;
	position: absolute;
	width: 30px;
	border-bottom: solid 2px #000;
	-webkit-transition: .35s ease-in-out;
	-moz-transition: .35s ease-in-out;
	transition: .35s ease-in-out;
	left: 10px;
	letter-spacing: normal;
}
#gNaviBtn span:nth-child(1) {
	top: 14px;
}
#gNaviBtn span:nth-child(2) {
	top: 24px;
}
#gNaviBtn span:nth-child(3) {
	top: 34px;
}
#gNaviBtn.active span {
	border-bottom: solid 2px #000;
}
/* 最初のspanをマイナス45度に */
#gNaviBtn.active span:nth-child(1) {
	top: 24px;
	left: 10px;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
/* 2番目と3番目のspanを45度に */
#gNaviBtn.active span:nth-child(2), #gNaviBtn.active span:nth-child(3) {
	top: 24px;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
}
@media screen and (min-width: 768px) {
	#gNaviBtn {
		display: none;
	}
}
/*---------------------- Contents ------------------------*/
@media screen and (min-width: 768px) {
	#contents {
		padding-bottom: 180px;
	}
}
@media screen and (max-width: 767px) {
	#contents {
		padding: 55px 0 350px;
	}
}
/*---------------------- Not Found ------------------------*/
#contents.notFound {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
@media screen and (min-width: 768px) {
	#contents.notFound {
		border-top: 1px solid #CCC;
		height: calc(100vh - 215px);
		padding: 0;
	}
	#contents.notFound p {
		font-size: 30px;
	}
}
@media screen and (max-width: 767px) {
	#contents.notFound {
		height: calc(100vh - 400px);
	}
	#contents.notFound p {
		font-size: 18px;
	}
}
/*---------------------- Megumi Kido Banner ------------------------*/
@media screen and (min-width: 768px) {
	p.megumi-kido_banner {
		position: fixed;
		right: 0;
		bottom: 180px;
		z-index: 100;
	}
	p.megumi-kido_banner img.pc {
		display: block;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
	}
}
@media screen and (max-width: 767px) {
	p.megumi-kido_banner {
		position: fixed;
		right: 0;
		bottom: 0;
		z-index: 100;
	}
	p.megumi-kido_banner img.sp {
		display: block;
		width: 100%;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
	}
}
/*---------------------- Footer ------------------------*/
#footer {
	text-align: center;
	padding: 30px 0;
	background: #323232;
	position: absolute;
	bottom: 0;
	width: 100%;
	box-sizing: border-box;
}
#footer li {
	color: #FFFFFF;
	list-style-type: none;
}
#footer li a {
	text-align: center;
	text-decoration: none;
	color: #FFFFFF;
}
#footer .copy {
	font-size: 0.7em;
	color: #FFFFFF;
}
@media screen and (min-width: 768px) {
	#footer {
		height: 180px;
		padding: 30px 22px 0;
	}
	#footer ul {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		margin: 0 auto 10px;
		max-width: 1280px;
	}
	#footer li {
		border-left: 1px solid #FFFFFF;
		padding: 5px 25px;
		margin: 0 0 25px;
	}
	#footer li:nth-of-type(6) {
		-webkit-box-flex: 1;
		-ms-flex-positive: 1;
		flex-grow: 1;
		padding: 0;
		text-align: left;
	}
	#footer li:last-of-type {
		border-right: 1px solid #FFFFFF;
	}
	#footer li:nth-of-type(6) a {
		border-right: 1px solid #FFFFFF;
		padding: 5px 25px;
		display: inline-block;
	}
}
@media screen and (max-width: 1324px) and (min-width: 1171px) {
	#footer li {
		font-size: 15px;
		padding: 5px 15px;
	}
	#footer li:nth-of-type(6) a {
		padding: 5px 15px;
	}
}
@media screen and (max-width: 1170px) and (min-width: 768px) {
	#footer li {
		font-size: 12.5px;
		padding: 5px 15px;
	}
	#footer li:nth-of-type(6) a {
		padding: 5px 15px;
	}
}
@media screen and (max-width: 767px) {
	#footer ul {
		margin: 0 0 30px;
	}
	#footer li {
		margin: 0 0 20px;
	}
}