@charset "UTF-8";

html, body {
	margin: 0;
	padding: 0;
	height: 100%;
#	scroll-snap-type: y mandatory;
#	overflow-x: hidden;
#	-webkit-font-smoothing: antialiased;
#	-moz-osx-font-smoothing: grayscale;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	word-break: break-all;
	display: flex;
	flex-direction: column;
}

body.overflow-hidden {
	overflow: hidden;
}

img {
	width: 100%;
	vertical-align: bottom;
}
.pc {
	display: block;
}
.sp {
	display:none;
}
@media only screen and (max-width: 750px) {
	.pc {
	        display:none;
	}
	.sp {
		display: block;
	}
}

main {
	flex: 1;
}


/* ----------------------------------------------------
 * 追従ヘッダー・ナビゲーション
 * ---------------------------------------------------- */
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 50;
#	padding: 1% 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
		background-color 0.3s, 
		backdrop-filter 0.3s, 
		box-shadow 0.3s,
		padding 0.3s;
#	background: #7fffd470;

	@media (max-width: 750px) {
		top: 0;
		left: unset;
		right: 0;
#		padding: 2% 1.5% 0 0;
	}
}

/* ヘッダーを上に隠すクラス */
.header-hidden {
	transform: translateY(-200%);
}

/* ヘッダーがスクロールされた状態 */
.header-scrolled {
#	background-color: rgba(11, 15, 25, 0.8);
#	backdrop-filter: blur(12px);
#	-webkit-backdrop-filter: blur(12px);
#	box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
#	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}


.header__container {
	width: 100%;

	.header__menu-bg {
		width: 100%;
		opacity: 0;
	}

	.header__menu-bg.show {
		opacity: 1;
	}

	.header__menu-logo {
		width: 12%;
		position: absolute;
		top: 8%;
		left: 2%;
		display: none;

		@media (max-width: 750px) {
			width: 28%;
		}
	}

	.header__menu-logo.show {
		display: block;
	}

	.header__menu-title {
		width: auto;
		position: absolute;
		top: 50%;
		right: 3%;
		transform: translate(0, -50%);
		color: #fff;
		font-family: "Noto Serif JP", "源ノ明朝", serif;
		font-size: min(calc(70 * 100vw / 1920), 70px);
		display: none;

		@media (max-width: 750px) {
			right: unset;
			left: 50%;
			transform: translate(-50%, -50%);
			font-size: min(calc(68 * 100vw / 750),68px);
		}
	}

	.header__menu-title.show {
		display: block;
	}

	.header__menu {
		width: 52%;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		display: none;

		@media (max-width: 750px) {
			width: 17%;
			top: 50%;
			left: 90%;
			transform: translate(-50%, -50%);
			z-index: 20;
		}
	}

	.header__menu.show {
		display: block;
	}

	@media (max-width: 750px) {

		.header__menu .off {
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			z-index: 0;
			opacity: 0;
		}

		.header__menu .on {
			position: relative;
			z-index: 1;
			opacity: 1;
		}

		.header__menu.open .off {
			position: relative;
			top: unset;
			left: unset;
			transform: unset;
			z-index: 1;
			opacity: 1;
		}

		.header__menu.open .on {
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			z-index: 0;
			opacity: 0;
		}


		.menu-modal-pop {
			width: 100vw;
#			height: 100vh;
			height: 100svh;
			position:fixed;
			top: 0;
			left:0;
			z-index:10!important;
			display: none;
		}
		.menu-modal-pop-bg {
#			background-color: #000;
			background-color: #000000a6;
			width: 100%;
			height: 100%;
			position:fixed;
			z-index:10!important;

			background-image: url(/assets/img/header/menu_bg_sp.png); /* fallback */
			background-image: -webkit-image-set(
				url(/assets/img/header/menu_bg_sp.webp) type("image/webp"),
				url(/assets/img/header/menu_bg_sp.png) type("image/png")
			);
			background-image: image-set(
				url(/assets/img/header/menu_bg_sp.webp) type("image/webp"),
				url(/assets/img/header/menu_bg_sp.png) type("image/png")
			);
			background-repeat: no-repeat;
			background-position: center;
			background-size: cover;
		}
		.menu-modal-pop-main {
			position: relative;
			width: auto;
			text-align: center;
#			top: 50%;
#			left: 50%;
#			transform: translate(-50%, -50%);
			z-index: 11;

			height: 100vh;
			overflow: scroll;
			padding: 16% 0 7%;

			.logo {
				width: 55%;
				margin: auto;
			}
		}

		.header__menu-box-sp {
			width: 70%;
			margin: 0 auto 6%;
			display: flex;
			flex-direction: column;
			gap: 9vw;
			align-items: flex-start;
		}
/*
*/
		.menu-item-sp {
			padding: 2%;
		}

		.menu-item-sp.active {
			background-image: url(/assets/img/header/menu_img.png);
			background-image: -webkit-image-set(
				url(/assets/img/header/menu_img.webp) type("image/webp"),
				url(/assets/img/header/menu_img.png) type("image/png")
			);
			background-image: image-set(
				url(/assets/img/header/menu_img.webp) type("image/webp"),
				url(/assets/img/header/menu_img.png) type("image/png")
			);
			background-position: top left;
			background-size: auto 100%; 
		}
	}

	.header__menu-box {
		width: 91%;
		margin: auto;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		display: flex;
		align-items: center;
#		gap: 1.5vw;
		justify-content: space-around;
	}

	.menu-item {
		position: relative;
		display: block;
		line-height: 0;
	}

	.menu-item .off {
		position: relative;
		opacity: 1;
		vertical-align: baseline;
		transition-duration: 0.3s;
	}

	.menu-item .on {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		opacity: 0;
		transition-duration: 0.3s;
	}

	.menu-item:hover .off {
		opacity: 0;
	}
	.menu-item:hover .on {
		opacity: 1;
	}

	.top {
#		width: 8%;
		width: 9.4%;
	}
	.action {
#		width: 16%;
		width: 18.5%;
	}
	.story {
		width: 8%;
	}
	.system {
#		width: 13%;
		width: 14.9%;
	}
	.product {
#		width: 13%;
		width: 14.3%;
	}

	.check {
		position: absolute;
		transform: translate(-50%, -50%);
		width: 10%;

		@media (max-width: 750px) {
			width: 20%;
			z-index: -1;
		}
	}

	.check.top {
		top: 50%;
		left: 12%;

		@media (max-width: 750px) {
			top: 20%;
			left: 23%;
		}
	}

	.check.action {
		top: 50%;
		left: 31%;

		@media (max-width: 750px) {
			top: 36%;
			left: 23%;
		}
	}

	.check.story {
		top: 50%;
		left: 50%;

		@media (max-width: 750px) {
			top: 53%;
			left: 23%;
		}
	}

	.check.system {
		top: 50%;
		left: 66%;

		@media (max-width: 750px) {
			top: 70%;
			left: 23%;
		}
	}

	.check.product {
		top: 50%;
		left: 86%;

		@media (max-width: 750px) {
			top: 86%;
			left: 23%;
		}
	}
}


/* ----------------------------------------------------
 * footer
 * ---------------------------------------------------- */
.footer__bottom {
	width: 100%;
	position: relative;
}

.footer__bottom-link {
	width: 33%;
	position: absolute;
	top: 12%;
	left: 50%;
	transform: translateX(-50%);

	@media (max-width: 750px) {
		width: 50%;
	}

	ul {
		place-items: center;
		display: flex;
		justify-content: space-between;
		width: 100%;
		margin: auto;
		font-size: calc(19 * 100vw / 1920);

		@media (max-width: 750px) {
			flex-wrap: wrap;
			row-gap: 3vw;
			font-size: calc(21 * 100vw / 750);
		}
	}

	li {

		@media (max-width: 750px) {
			width: 56%;
		}
	}

	li:nth-child(odd) {

		@media (max-width: 750px) {
			width: 34%;
			text-align: right;
		}
	}

	a {
		color: #fff;
	}
}

.footer__bottom-logo {
	width: 7%;
	position: absolute;
	bottom: 16%;
	left: 22%;
	transform: translateX(-50%);

	@media (max-width: 750px) {
		width: 23%;
		bottom: 12%;
		left: 50%;
	}
}

.footer__bottom-copyright {
	width: 30%;
	position: absolute;
	bottom: 20%;
	left: 66.5%;
	transform: translateX(-50%);
	font-size: calc(15.5 * 100vw / 1920);
	color: #fff;
	letter-spacing: 0.03em;
	text-align: right;
	line-height: 1.8;

	@media (max-width: 750px) {
		width: 60%;
		top: 57%;
		left: 50%;
		bottom: 0;
		transform: translate(-50%, -50%);
		font-size: calc(20 * 100vw / 750);
		text-align: center;

	}
}

/** @Override **/
.modaal-container {
	width: 80%;
	border-radius: 20px;
	border: 3px solid #c69c6d;
	box-sizing: border-box;
	background: #f3efe6;
	font-size: calc(23 * 100vw / 1920);
	letter-spacing: 0.03em;
	line-height: 1.6;

	@media (max-width: 750px) {
		width: 100%;
		font-size: calc(23 * 100vw / 750);
	}
}

.modaal-content-container {

	@media (max-width: 750px) {
		padding: 4% 3%;
	}
}

.modaal-close {

	@media (max-width: 750px) {
		top: 2%;
	}
}


/* ----------------------------------------------------
 * FAB
 * ---------------------------------------------------- */
.page-top-fab {
	position: fixed;
	bottom: 1%;
	right: 1%;
	width: 13%;
	max-width: 263px;
	z-index: 10;
	transition: 0.8s ease-in-out;
	transform: translate(0, 30px);
	opacity: 0;

	@media screen and (max-width: 750px) {
		width: 75%;
		max-width: 572px;
		right: unset;
		left: 50%;
		bottom: 0;
	        transform: translate(-50%, 0);
	}
}
.page-top-fab a {
	display: block;
	text-decoration: none;
	position: relative;

}

.page-top-fab .off {
	position: relative;
	opacity: 1;
	transition-duration: 0.5s;
}
.page-top-fab .on {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	opacity: 0;
	transition-duration: 0.5s;
}

.page-top-fab:hover .off {
	opacity: 1;

}

.page-top-fab:hover .on {
	opacity: 1;

}

.page-top-fab.activeFub {
	transform: translate(0, 0);
	opacity: 1.0;

	@media screen and (max-width: 750px) {
		transform: translate(-50%, 0);
	}
}

/* ----------------------------------------------------
 * 
 * ---------------------------------------------------- */










