@charset "utf-8";

body.is-scrollLock {
    overflow: hidden;
}
:root {
    --txt-color: #231815;
    --accent-color: #B1DAC9;
    --second-accent-color: #354655;
    --third-accent-color: #FF7D62;
    --sub-color: #91ACBF;
    --light-color: #DCE8F9;
    --border-color: #DDDDDD;
    --bg-color: #F5F7FA;
}
/* -- ul#menu -------------------------------------------------------------------------------- */

#g-nav {
	list-style-type: none;
	width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
	z-index: 101;
    opacity: 0;
    display: none;
}

#g-nav li {
	text-align: center;
}

#g-nav li a {
    font-size: max(2vw,26px);
	text-decoration: none;
	display: block;
    color: #fff;
    position: relative; 
    /* padding: 2vh 2.5% 2vh 4.5%; */
    box-sizing: border-box;
    font-weight: 800;
}




/* -- div#sp-icon -------------------------------------------------------------------------------- */

div.sp-icon {
    width: 57px;
    height: 57px;
    max-width: 85px;
    position: absolute;
    right: 0px;
    top: 0px;
	z-index: 1000;
}
div.sp-icon.sp-open {
    position: fixed;
}

div.sp-icon:hover {
	cursor: pointer;
	opacity: 1;
}

div.sp-icon span.menubar,
div.sp-icon span.menubar:before,
div.sp-icon span.menubar:after {
	display: inline-block;
	width: 28px;
	height: 3px;
	background: #fadc4a;
	position: absolute;
	transition-property: transform;
	transition-duration: 0.3s;
    border-radius: 3px;
}

div.sp-icon span.menubar {
	left: 50%;
	top: 50%;
	transform: translate( -50%, -50% );
}

div.sp-icon span.menubar:before {
	content: "";
	transform: translateY( -10px ) rotate( 0deg );
}

div.sp-icon span.menubar:after {
	content: "";
	transform: translateY( 10px ) rotate( 0deg );
}


div.sp-open span.menubar {
	background: transparent !important;
}

div.sp-open span.menubar:before {
    background: #fff;
	transform: rotate( 45deg ) !important;
}

div.sp-open span.menubar:after {
    background: #fff;
	transform: rotate( -45deg ) !important;
}



div.sp-icon span.text {
    position: absolute;
    bottom: 7px;
    right: 18px;
    font-size: 10px;
    display: none;
}

div.sp-open span.text {
    color: #fff;
}



#g-nav.panelactive {
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
    position:fixed;
    z-index: 999;
	top: 0;
	width:100%;
    height: 97vh;
    display: block;
    animation-name:gnaviAnime;
    animation-duration:1s;
    animation-delay:.2s;/*0.2 秒遅らせて出現*/
    animation-fill-mode:forwards;
}

/*丸の拡大*/
/* .circle-bg {
    position: fixed;
	z-index:3;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: var(--base-color);
	transform: scale(0);
	right:-50px;
    top:-50px;
    transition: all .6s;
}

.circle-bg.circleactive {
	transform: scale(50);
} */

@keyframes gnaviAnime {
    0% {
    opacity: 0;
    }
    100% {
    opacity: 1;
    }
}

/* 下から広がる背景の初期状態 */
.bg-from-bottom {
    position: fixed;
    z-index: 3;
    width: 100%;
    height: 100vh;
    background: var(--base-color);
    top: 0;
    left: 0;
    transform: scaleY(0); /* 縦方向に大きさを0にする */
    transform-origin: top; /* 拡大の基準点を下にする */
    transition: transform 0.6s ease-in-out;
    opacity: 0.9;
}

/* メニューがアクティブになったときの状態 */
.bg-from-bottom.active {
  transform: scaleY(1); /* 縦方向に100%の大きさに拡大する */
}