@charset "utf-8";

/* GLOBAL MENU */

@media screen and (max-width: 1200px) {
	.menu-body.active {
		left: 0;
		z-index: 1000;
		pointer-events: all;
		opacity: 1;  
		overscroll-behavior: contain;
		overflow-y: scroll;
		scrollbar-width: none;
		-ms-overflow-style: none;
		touch-action: none;
		transform: scale(1, 1);	
		backdrop-filter: blur(0.7rem);  
  	-webkit-backdrop-filter: blur(0.7rem);
  	background: rgb(0,0,0, 0.2);
	}
	
	.menu-inner {max-width: 65rem;}

	.menu-body.active .menu-inner{
		right: 0;
		z-index: 1100;
		padding: 5rem 0 10rem;
		overscroll-behavior: contain;
  	overflow-y: scroll;
		scrollbar-width: none;
	}

	.menu-body.active::before {
		position: absolute;
		width: 0.1rem;
		height: calc(100vh + 0.1rem);
		display: flex;
		content: "";
	}
	
	.menu-body .menu-logo{ 
		display: block;
		opacity: 0;
	}
	.menu-body.active .menu-logo{ 
		width: 35rem; 
		height: auto; 
		margin: 5rem auto 1.5rem;
		transition: all 0.6s 0.6s ease;
		opacity: 1;
	}

	.menu-body .global-menu{
		margin: 1rem auto 0;
		padding: 4em 0 0;
		width: 70%;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		opacity: 0;
	}
	
	.menu-body.active .global-menu {opacity: 1; transition: all 0.6s 0.6s ease;}

	.menu-body.active .global-menu li{
		margin: 0.5em 0 0;
		padding: 0;
		width: 100%;
		border-bottom: 0.1rem solid #9dcaf7;
		font-size: var(--font-size-m);
		letter-spacing: 0.05em;
		line-height: 1;
		white-space: nowrap;
		text-align: center;
	}

	.menu-body.active .global-menu a{
		position: relative;
		margin: 0;
		padding: 2rem;
		width: 100%;
		display: block;
		color: #333;
	}
	
	.menu-body.active .global-menu .blue-frame {margin-top: 5rem; width: 20rem;}
	
	.menu-body.active .blue-frame a {
		color: #fff;
		text-align: center;
	}

	.menu-body.active .global-menu{
		padding: 0;
		opacity: 1;
	}
	
	.close-menu.active{
		position: absolute;
		top: 0;
		left: 0;
		margin: 0;
		padding: 0;
		width: 100%;
		height: 100vh;
		display: block;
		opacity: 1;
		cursor: pointer;
		z-index: -1;
	}	

} /* End max 1200 */


@media screen and (max-width: 640px) {
	.menu-inner{width: 100%;	}
	.menu-body.active .menu-logo {width: 30rem;}
}


/*aside form-banner*/
.form-banner {
  position: sticky;
  position: -webkit-sticky;
  bottom: 0;
  margin: -2.5rem 0 0;
  padding: 0;
  width: 100%;
  height: 6rem;
  display: flex;
  justify-content: center;
	align-items: center;
  z-index: 999;
  transition: all .5s ease;
  opacity: 0;
  pointer-events: none;
  contain: paint;	
	background: #047df4;
}

.form-banner-copy {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 1rem;
	color: #fff;
	font-size: var(--font-size-l);
	letter-spacing: 0.1em;
}
.form-banner-copy img {width: 4rem; margin-top: 1rem;}

.scroll-on .form-banner{ opacity: 1; pointer-events: all;}

.hidden .form-banner-link {opacity: 0;}
.hidden .form-banner {background: none;}


.page-top{
  position: absolute;
  right: 0.5rem;
  bottom: 0.8rem;
  width: 4.5rem;
  height: 4.5rem;
  display: block;
  overflow:hidden;
  outline:none;
  z-index: 800;
  transition: all .5s ease;
  opacity: 0;
  pointer-events: none;
}

.page-top a{
  position: relative;
  width: 4.5rem;
  height: 4.5rem;
  display: block;
  background-color:#fff;
}

.page-top a span{  
  margin: 0 auto;
  padding: 4.5rem 0 0;
  width: 4.5rem;
  height: 0;
  display:block;
  overflow: hidden;
  line-height: 300;
}

.page-top a:before{
  position: absolute;
  top: 1rem;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto 1.1rem;
  width: 2rem;
  height: 2rem;
  display: block;
  border-top: 0.3rem solid #047df4;
  border-right: 0.3rem solid #047df4;
  transform: rotate( -45deg );
  content: "";
}

.scroll-on .page-top{ opacity: 1; pointer-events: all; border: solid 0.1rem #047df4;}

@media screen and (max-width: 640px) {
	
}

/*FOOTER*/
#FOOTER {text-align: center; padding-bottom: 1rem;}

.footer-logo {margin: 3rem auto; max-width: 30rem;}

.copyright {
	font-size: var(--font-size-s);
}

#FOOTER .br-sp {display: none;}

@media screen and (max-width: 640px) {
	.footer-logo {max-width: 23rem;}
	#FOOTER .br-sp {display: block;}
}