@charset "utf-8";
/* CSS Document */
@import url(https://fonts.googleapis.com/earlyaccess/notosansjapanese.css);
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@400;700&family=Montserrat:wght@100;300&family=Oswald:wght@500&family=Noto+Sans+JP&display=swap');

/* --------------------------------------
	base
-------------------------------------- */
html{
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;    
}
body {
	ont-family: "Noto Sans JP", sans-serif;
	background: #f2f2f2;
	margin: 0 auto;
	position: relative;
	min-width: 320px;
}
body.hidden {
	overflow: hidden;
}
#wrapper {
	overflow: hidden;
	/* min-width: 1000px; */
	position: relative;
}
a,
a:visited {
	text-decoration: none;
}

@media(min-width: 768px) {
	br.-sp {
		display:none;
	}
}


/* --------------------------------------
	header
-------------------------------------- */
header {
	position: absolute;
	top: 0;
	left: 0;
    z-index: 1000
}
.logo {
	margin: 8px 0 0 8px;
	width: min(calc((220 / 1240) * 100vw) ,220px);
	img {
		width: 100%;
		height: auto;
	}
}
.logo.touei{
    margin-top: 20px;
	margin-left: 2vw;
	img {
		height: min(calc((56 / 1240) * 100vw), 56px);
		aspect-ratio: 86/37;
	}
	width: auto;
}

/* --------------------------------------
	g_nav
-------------------------------------- */
/* toggle */
.toggle {
	display: block;
	width: 50px;
	height: 60px;
	position: fixed;
	top: 26px;
	right: 26px;
	cursor: pointer;
	z-index: 9999;
	background: none;
	border: none;
	padding: 0;
	&:not(.active) {
		mix-blend-mode: difference;	
	}
}
body.root .toggle {
	mix-blend-mode:  normal;
}

.toggle > span {
	display: block;
	width: 50px;
	height: 4px;
	border-radius: 2px;
	background: #fff;
	position: absolute;
	box-shadow: 0 0 7px rgba(0,0,0,.3);
}
.toggle > span:nth-child(1) {
	top: 0;
	transform: rotate(0deg);
	transition: 0.3s ease;
}
.toggle > span:nth-child(2) {
	top: 14px;
	opacity: 1;
	transition: 0.3s ease;
}
.toggle > span:nth-child(3) {
	top: 28px;
	transform: rotate(0deg);
	transition: 0.3s ease;
}
.toggle.active > span {
	background: #222;
	box-shadow: none;
}
.toggle.active > span:nth-child(1) {
	top: 13px;
	transform: rotate(225deg);
	transition: 0.3s ease;
}
.toggle.active > span:nth-child(2) {
	opacity: 0;
	transition: 0.3s ease;
}
.toggle.active > span:nth-child(3) {
	top: 13px;
	transform: rotate(-225deg);
	transition: 0.3s ease;
}
.toggle .c-text {
	width: 100%;
	text-align: center;
	position: absolute;
	bottom: 0;
	color: #fff;
	display: flex;
	justify-content: center;
	&::before {
		content: 'MENU';
		letter-spacing: .1em;
		color: #fff;
		text-shadow: 0 0 7px rgba(0,0,0,.4);
	}
	&:is(.toggle.active p) {
		&::before {
			content: 'CLOSE';
			color: #222;
			text-shadow: none;
		}
	}
}


/* overlay */
.overlay {
	width: 50%;
	height: 100vh;
	background: rgba(0,0,0,.5);
	position: fixed;
	top: 0;
	left: -50%;
	transition: 0.2s ease-out;
	z-index: 1000;
	text-align: center;
}
.overlay.on {
	left: 0;
	transition: 0.2s ease-out;
}

/* g_nav */
.g_nav {
	width: 50%;
	height: 100vh;
	background: rgba(255,255,255,.96);
	position: fixed;
	top: 0;
	right: -50%;
	transition: 0.2s ease-out;
	z-index: 1000;
	text-align: center;
	overflow-y: scroll;
}
.g_nav.on {
	right: 0;
	transition: 0.2s ease-out;
}
.g_nav > div {
	padding-bottom: 50px;
}
.g_nav > div > ul {
	margin-top: 80px;
}
.g_nav > div > ul li {
	margin: 30px 0 0;
}
.g_nav > div > ul a {
	display: inline-block;
	padding-bottom: 8px;
	font-size: 24px;
	color: #222;
	position: relative;
}
.g_nav > div > ul a::after {
	content: '';
	display: block;
	width: 0;
	height: 6px;
	background: #7e76b7;
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	transition: width 0.3s ease;
}
.g_nav > div > ul a:hover::after {
	width: 100%;
	transition: 0.3s ease;
}
.g_nav .share_list {
	margin: 60px auto;
	padding-top: 27px;
	display: flex;
	justify-content: center;
}
.g_nav .share_list li {
	margin: 0 10px;
}
.g_nav .share_list li a {
	border-color: #222;
	width: 54px;
	height: 54px;
}
.g_nav .share_list li a:hover::after {
	width: 54px;
	height: 54px;
	transition: 0.2s ease;
}
.g_nav .share_list li:nth-child(1) a img {
	width: 22px;
	height: auto;
}
.g_nav .share_list li:nth-child(2) a img {
	width: 32px;
	height: auto;
}
.g_nav .share_list li:nth-child(3) a img {
	width: 13px;
	height: auto;
}

/* --------------------------------------
	cont_nav
-------------------------------------- */
aside {
	margin-bottom: min(calc((50 / 1040) * 100vw), 55px);
}
.cont_nav {
	position: relative;
}
.cont_nav ul {
	display: flex;
	justify-content: center;
	font-size: 16px;
	@media(max-width: 912px) {
		font-size: clamp(14.5pxm 3vw, 16px);	
	}
}
.cont_nav li {
	margin: 0 .8em;
}
.cont_nav a {
	display: block;
	padding-bottom: 9px;
	color: #fff;
	position: relative;
	z-index: 20;
}
.cont_nav a::after {
	content: '';
	display: block;
	width: 0;
	height: 6px;
	background: #7e76b7;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
}
.cont_nav a.active::after,
.cont_nav a:hover::after {
	width: 100%;
	transition: 0.3s ease;
}

/* --------------------------------------
	share
-------------------------------------- */
.share_list {
	margin: 1em auto min(calc((60 / 912) * 100vw), 60px);
	padding-top: min(calc((35 / 912) * 100vw), 35px);
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	/* background: url(../../common/img/share.png) top center no-repeat; */
	&::before {
		display: block;
		margin-bottom: .8em;
		width: 100%;
		color: #fff;
		text-align: center;
		content: 'SHARE';
        font-size: clamp(15px, calc((24 / 1040) * 100vw), 24px);
        font-family: "Montserrat", sans-serif;
        font-optical-sizing: auto;
        font-weight: 100;
        font-style: normal;
		@media(max-width: 600px) {
			display:none;
		}
	}
	@media(max-width: 600px) {
		padding-left:4vw;
		justify-content: flex-start;
	}
}
.g_nav .share_list::before {
	color: currentColor;
	font-weight: 300;
}
.share_list li {
	margin: 0 12px;
}
.share_list li a {
	display: block;
	box-sizing: border-box;
	width: 70px;
	aspect-ratio: 1/1;
	border: 2px solid #fff;
	border-radius: 50%;
	position: relative;
}
.share_list li a::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-radius: 50%;
	background: #fff;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}
.share_list li:nth-child(1) a::after {
	background: #1da1f2;
}
.share_list li:nth-child(2) a::after {
	background: #19bc03;
}
.share_list li:nth-child(3) a::after {
	background: #4267b2;
}
.share_list li a img {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	z-index: 20;
}
.share_list li a:hover {
	border-width: 0;
}
.share_list li a:hover::after {
	width: 70px;
	height: 70px;
	transition: 0.2s ease;
}

/* --------------------------------------
	page top
-------------------------------------- */
#pagetop {
	display: block;
	width: min(calc((376 / 1240) * 100vw), 376px);
	aspect-ratio: 376/642;
	/* height: 642px; */
	position: absolute;
	right: 0;
	bottom: calc(-1 * min(calc((200 / 1240) * 100vw), 200px));
	opacity: 0;
	transition: translate 0.2s ease;
	@media(max-width: 768px) {
		bottom: -16vw;
	}
	@media(max-width: 600px) {
		bottom: -12vw;
	}
}
@media(hover:hover) {
	#pagetop:hover {
		translate: 0 -50px;
		transition: 0.2s ease;
	}	
}

#pagetop.jump {
	opacity: 1;
}
#pagetop span {
	display: block;
	padding-top: 30px;
	text-align: center;
	position: relative;
	opacity: 0;
	transform: translateY(30px);
	img {
		width:clamp(72px, calc((96 / 1040) * 100vw), 96px);
		height: auto;
	}
}
#pagetop.jump span {
	opacity: 1;
	transform: translateY(0);
	transition: 0.4s ease 0.5s;
}
#pagetop span::before {
	content: '';
	display: block;
	box-sizing: border-box;
	width: 23px;
	height: 23px;
	border-left: 1px solid #e7c024;
	border-top: 1px solid #e7c024;
	transform: rotate(45deg);
	position: absolute;
	top: 5px;
	left: 0;
	right: 0;
	margin: auto;
}
#pagetop .bang {
	position: absolute;
	top: min(calc((132 / 1240) * 100vw), 132px);
	width: 100%;
}
#pagetop .punch {
	position: absolute;
	top: calc(-1 * min(calc((13 / 1040) * 100vw), 13px));
	left: min(calc((22 / 1240) * 100vw), 22px);
	width: min(calc((356 / 1240) * 100vw), 356px);
	@media(max-width: 768px) {
		top: 4vw;
	}	
}

/* --------------------------------------
	footer
-------------------------------------- */
footer {
	padding: 0 0 min(calc((90 / 1040) * 100vw), 90px);
	color: #fff;
	text-align: center;
	@media(max-width: 600px) {
		text-align: left;
		padding-left: 5vw;
	}
}
footer small {
	display: block;
	margin-top: 1.2em;
	font-size: 12px;
}

@media(min-width: 1900px) {
	/* --------------------------------------
		g_nav
	-------------------------------------- */
	/* toggle */
	.toggle {
		right: 50%;
		margin-right: -924px;
	}
}

@media(max-width: 768px) {
	
	/* --------------------------------------
		base
	-------------------------------------- */
	#wrapper {
		min-width: inherit;
	}
	
	/* --------------------------------------
		header
	-------------------------------------- */
	.logo {
		margin: 0;
		width: 25vw;
	}
	.logo.touei{
		margin-top: 10px;
		margin-left: 10px;
	}
	.logo.touei{
		margin-top: 15px;
		margin-left: 15px;
	}
	.logo.touei img{
		height: 24px;
	}
    
	
	/* --------------------------------------
		g_nav
	-------------------------------------- */
	.overlay {
		display: none;
	}
	.g_nav {
		width: 100%;
		right: -100%;
	}
	
	/* --------------------------------------
		cont_nav
	-------------------------------------- */
	.cont_nav ul {
		display: block;
		text-align: center;
		width: 92%;
		margin: 0 auto;
		background: rgba(0,0,0,.8);
		box-shadow: 0 0 15px rgba(0,0,0,.5);
	}
	.cont_nav li {
		margin: 1px 0;
	}
	.cont_nav li a {
		padding: 15px 0;
		border-bottom: 1px solid #333;
	}
	.cont_nav li:last-child a {
		border-bottom: none;
	}
	.cont_nav a.active::after,
	.cont_nav a:hover::after {
		display: none;
	}
	
	/* --------------------------------------
		share
	-------------------------------------- */
	.share_list li {
		margin: 0 10px;
	}
	.share_list li a {
		width: 48px;
	}
	.share_list li a::after {
		display: none;
	}
	.share_list li a:hover {
		border-width: 2px;
	}
	.share_list li:nth-child(1) a img {
		width: 22px;
		height: auto;
	}
	.share_list li:nth-child(2) a img {
		width: 32px;
		height: auto;
	}
	.share_list li:nth-child(3) a img {
		width: 13px;
		height: auto;
	}
	
	/* --------------------------------------
		footer
	-------------------------------------- */
	footer a img {
		width: min(44vw, 184px);
	}
}
@media(max-width: 480px) {
	
	/* toggle */
	.toggle {
		width: 40px;
		height: 46px;
		top: 14px;
		right: 14px;
	}
	.toggle > span {
		width: 40px;
	}
	.toggle > span:nth-child(2) {
		top: 12px;
	}
	.toggle > span:nth-child(3) {
		top: 24px;
	}
	.toggle.active > span:nth-child(1),
	.toggle.active > span:nth-child(3) {
		top: 12px;
	}
	.toggle p {
		font-size: 12px;
	}
	/* gnav */
	.g_nav > div > ul {
		width: 90%;
		margin: 60px auto 0;
	}
	.g_nav > div > ul li {
		margin-top: 0;
		border-bottom: 1px solid #ddd;
	}
	.g_nav > div > ul a {
		display: block;
		height: 46px;
		padding-bottom: 0;
		font-size: 18px;
		line-height: 46px;
	}
	.g_nav > div > ul a::after {
		display: none;
	}
	.g_nav .share_list {
		margin: 40px auto;
	}
}

.content iframe{ width:100%; height: auto}

/* common */
.l-body_lower {
	background: #f9f9f9 url("../img/block_pattern.webp") center repeat;
}

.hl-page_title {
    text-align: center;
    color: #fff;
    b {
        font-size: min(calc((50 / 1240) * 100vw), 50px);
		font-family: "M PLUS 1p", sans-serif;
		font-weight: 700;
		font-style: normal;
		display: block;
		text-shadow: 0 0 16px rgba(0,0,0,.2);
		@media(max-width: 768px) {
			font-size: 7.2vw;
			line-height: 1.4;
		}
    }
    .ff-en {
        font-size: min(calc((120 / 1240) * 100vw), 120px);
        font-family: "Montserrat", sans-serif;
        font-optical-sizing: auto;
        font-weight: 100;
        font-style: normal;
        mix-blend-mode: overlay;
        position: relative;
        z-index: 0;
        top: .3em;
		display: block;
		@media(max-width: 768px) {
			font-size: 12vw;
			top: .5em;
		}
    }	
}
.l-wrapper_lower {
	background: url("../../common/img/bg_common_lower.webp") 50% 0 no-repeat;
	background-size: auto min(calc((432 / 1240) * 100vw), 432px);
	&::after {
		content: '';
		display: block;
		width: 100%;
		height: min(calc((430 / 1240) * 100vw), 430px);
		position: absolute;
		top:0;
		left: 0;
		z-index: -1;
		background: url("../../common/img/bg_common_lower_fixed.webp") 50% 0 no-repeat;
		background-size: contain;
		background-attachment: fixed;
		@media(max-width: 1480px) {
			background-image: url("../../common/img/bg_common_lower_fixed_s.webp");
		}
	}
	@media(max-width: 768px) {
		background-size: auto 48vw;
		&::after {
			height: 47.5vw;
		}
	}	
}
.l-wrapper_lower {
	.title {
		display: flex;
		justify-content: center;
		align-items: center;
		height: min(calc((300 / 1240) * 100vw), 300px);
		@media(max-width: 768px) {
			height: 34vw;
		}			
	}
}
.l-main {
	display: block;
	position: relative;	
}
