.sp-nav {
	-webkit-transition: none;
	-moz-transition: none;
	-ms-transition: none;
	transition: none;
	-webkit-transform-style: preserve-3d;
	overflow: hidden;
	margin: 0 auto;
	width: 100%;
	padding: 0 20px;
	max-height: 0;
}
.sp-nav.show-menu {
	max-height: 125pc;
	overflow-y: scroll;
	background: #fff;
}

.sp-nav div.nav,div.inner-nav div.nav{
	font-size: 100%;
	position: relative;
	overflow: hidden;
}

.sp-nav div.nav a {
	display: block;
	color: #000;
	z-index: 2;
	overflow: hidden;
	font-size: 16px;
	border: 0;
	border-bottom: 1px dotted #000;
	padding: 15px;
	position: relative;
}

div.inner-nav{
	width: 100%;
	padding-left: 20px;
}

div.inner-nav:not(.show-menu) {
	max-height:0;
}

div.nav a + span.inner-nav-sw {
	z-index: 10;
	position: absolute;
	right: 10px;
	top: 15px;
	width: 30px;
	height: 30px;
}

div.nav a + span.inner-nav-sw:before {
	content: ' ';
	display: block;
	width: 12px;
	height: 2px;
	background: #000;
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%) rotate(0deg);
	transform: translate(-50%, -50%) rotate(0deg);
	-webkit-transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
	transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}
div.nav a + span.inner-nav-sw:after{
	content: ' ';
	display: block;
	width: 12px;
	height: 2px;
	background: #000;
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%) rotate(270deg);
	transform: translate(-50%, -50%) rotate(270deg);
	-webkit-transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
	transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}
div.nav a + span.inner-nav-sw.active:before {
	-webkit-transform: translate(-50%, -50%) rotate(180deg);
	transform: translate(-50%, -50%) rotate(180deg);
}
div.nav a + span.inner-nav-sw.active:after {
	-webkit-transform: translate(-50%, -50%) rotate(0deg);
	transform: translate(-50%, -50%) rotate(0deg);
}

.hide-menu {
	opacity: 0;
	visibility:hidden;
}
.show-menu {
	opacity: 1;
	visibility:visible;
}

.hide-menu, .show-menu {
	-webkit-transition: all .4s ease-in-out;
	-moz-transition: all .4s ease-in-out;
	-ms-transition: all .4s ease-in-out;
	transition: all .4s ease-in-out;
}

/* ヘッダー固定時 */
header { z-index: 9999; }
header.fixed-header { position:fixed; width:100%; }
header.fixed-header .sp-nav.show-menu { height: calc(100vh - 58px); }

@media (min-width:1024px){
	header.fixed-header { position:static; }
}