.m-pagetop {
	bottom: 25px;
	right: 25px;
	width: 68px;
	transform: translateY(50%);
	pointer-events: none;
	transition: opacity 0.3s, transform 0.1s 0.2s;
	z-index: 2147483647;
}
.m-pagetop.is-active {
	opacity: 1 !important;
	transform: none;
	pointer-events: all;
	transition: opacity 0.5s, transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.m-pagetop > a {
	display: block;
	text-align: center;
	color: #000;
	font-family: 'Open Sans', 'Noto Sans JP', sans-serif;
	font-weight: bold;
	text-decoration: none;
}
.m-pagetop > a > div {
	position: relative;
}
.m-pagetop > a > div::before {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 103.67647059%;
	height: 123.07692308%;
	background: url(/assets/global.nav/img/pagetop_hover.png) center no-repeat;
	background-size: contain;
	transform: translateY(30%);
	opacity: 0;
	pointer-events: none;
	transition: transform 0.1s, opacity 0.1s;
	content: '';
}
.m-pagetop > a > div > img {
	display: block;
	width: 100%;
	position: relative;
	height: auto;
	transition: transform 0.1s, opacity 0.1s;
	z-index: 1;
}
.m-pagetop > a > span {
	font-size: 12px;
	white-space: nowrap;
	text-shadow: -1px -1px 1px white, 1px -1px 1px white, -1px 1px 1px white, 1px 1px 1px white, 0 0 5px white;
}
.m-pagetop > a.is-active > div::before {
	transform: none;
	opacity: 1;
	transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	z-index: 2;
}
.m-pagetop > a.is-active > div > img {
	transform: translateY(-30%);
	opacity: 0;
}

@media only screen and (max-width: 640px) {
	.m-pagetop {
		bottom: 2.5vw;
		right: 2.5vw;
		width: 13vw;
	}
	.m-pagetop > a > span {
		font-size: 2.6vw;
	}
}
