@charset "utf-8";
/* CSS Document */
.g-menu-btn {
    top: 28px;
    right: calc(8vw - 12px);
    width: 48px;
    height: 48px;
}
.g-menu-btn {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-line-pack: center;
    align-content: center;
    position: absolute;
    top: 25px;
    right: 25px;
    width: 50px;
    height: 50px;
    z-index: 999;
}
.g-menu-btn:hover:after {
    -webkit-transform: scale(1.15);
    transform: scale(1.15);
}
.g-menu-btn .dots-wrap  {
    width: 12px;
    height: 12px;
	transform: rotate(90deg);
	transition: transform 1s;
}
.g-menu-btn.active .dots-wrap{
	    transform: rotate(-90deg);
	transition: transform 1s;
}

.g-menu-btn .dot {
    position: relative;
    width: 2px;
    height: 2px;
}
.g-menu-btn .dot span {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    background: #000;
}
.g-menu-btn.active .dot span {
    background: #fff;
}
.g-menu-btn .dot-row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-line-pack: center;
    align-content: center;
    width: 12px;
    height: 2px;
}
.g-menu-btn .dot-row._2 {
    margin: 3px 0;
}
.g-menu-btn.active .dot-row._1 .dot._1{
	    transform: rotate(-45deg);
}
.g-menu-btn.active .dot-row._1 .dot._1 span{
	    transform-origin: 50% 0%;
    transform: scale(1, 2.5);
}
.g-menu-btn.active .dot-row._1 .dot._2 span{
	        opacity: 0;
}
.g-menu-btn.active .dots-wrap .dot-row._1 .dot._3{
	    transform: rotate(45deg);
}
.g-menu-btn.active .dot-row._1 .dot._3 span{
	         transform-origin: 50% 0px;
    transform: scale(1, 2.5);
}
.g-menu-btn.active .dot-row._2 span{
	opacity: 0;
}
.g-menu-btn.active .dots-wrap .dot-row._3 .dot._1{
	       transform: rotate(45deg);
}
.g-menu-btn.active .dot-row._3 .dot._1 span{
	 transform-origin: 50% 100%;
    transform: scale(1, 2.5);
}
.g-menu-btn.active .dot-row._3 .dot._2 span{
	     opacity: 0;
}
.g-menu-btn.active .dots-wrap .dot-row._3 .dot._3{
	      transform: rotate(-45deg);
}
.g-menu-btn.active .dot-row._3 .dot._3 span{
	     transform-origin: 50% 100%;
    transform: scale(1, 2.5);
}
.g-menu-btn .menu-loading, .g-menu-btn .menu-loading .circular {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 100%;
    height: 100%;
}
.g-menu-btn .menu-loading {
    pointer-events: none;
    opacity: 0;
    transition: opacity .35s cubic-bezier(.39,.575,.565,1) 0s,-webkit-transform .65s cubic-bezier(.215,.61,.355,1) 0s;
    transition: transform .65s cubic-bezier(.215,.61,.355,1) 0s,opacity .35s cubic-bezier(.39,.575,.565,1) 0s;
    transition: transform .65s cubic-bezier(.215,.61,.355,1) 0s,opacity .35s cubic-bezier(.39,.575,.565,1) 0s,-webkit-transform .65s cubic-bezier(.215,.61,.355,1) 0s;
    z-index: 1;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
}
.g-menu-btn:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    border-radius: 50%;
    background: rgba(39,39,39,0);
	background: rgba(255, 255, 255,0.3);
    border: 1px solid #000;
    transition: background .65s cubic-bezier(.39,.575,.565,1) 0s,border .65s cubic-bezier(.39,.575,.565,1) 0s,-webkit-transform .65s cubic-bezier(.215,.61,.355,1) 0s;
    transition: transform .65s cubic-bezier(.215,.61,.355,1) 0s,background .65s cubic-bezier(.39,.575,.565,1) 0s,border .65s cubic-bezier(.39,.575,.565,1) 0s;
    transition: transform .65s cubic-bezier(.215,.61,.355,1) 0s,background .65s cubic-bezier(.39,.575,.565,1) 0s,border .65s cubic-bezier(.39,.575,.565,1) 0s,-webkit-transform .65s cubic-bezier(.215,.61,.355,1) 0s;
}

.g-menu-btn.active:after {
    border: 1px solid #fff;
}
.g-menu-btn:after, .g-menu-btn:before {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    box-sizing: border-box;
	    text-decoration: inherit;
    vertical-align: inherit;
	box-sizing: border-box;
}
.g-menu-btn:not(.is-disable) .menu-loading .path {
    -webkit-animation: dash 1.5s ease-in-out infinite;
    animation: dash 1.5s ease-in-out infinite;
    -webkit-animation-play-state: paused;
    animation-play-state: paused;
}
.g-menu-btn .menu-loading .path {
    fill: none;
    stroke: #fff;
    stroke-width: 1px;
    stroke-miterlimit: 10;
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0;
    stroke-linecap: round;
}
.g-menu {
    position: fixed;
    top: 0;
	bottom:0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.g-menu.is-active {
    pointer-events: auto;
	opacity: 1; 
	visibility: inherit;
}
.g-menu {
  position: fixed;
	bottom:0;
  background:rgba(0,0,0,0.97);
  top: 0;
  right: 0;
	left:0;
  width: 100%;
  height: 100%;
  opacity: 1;
  visibility: hidden;
  -webkit-transition: opacity .35s, visibility .35s, transform .35s;
  transition: opacity .35s, visibility .35s, transform .35s;
  overflow: hidden;
	z-index: 99!important;
-webkit-transform: translateX(-100vw);
	        transform: translateX(-100vw);
}
.g-menu.is-active  {
  opacity: 1.0;
  visibility: visible;
 -webkit-transform: translateX(0vw);
	        transform: translateX(0vw);
}
.g-menu .menu-content{
	position: absolute;
	opacity: 0;
	top: 50%;
	transform: translateY(-50%) translateX(-40%);
	-webkit- transform: translateY(-50%) translateX(-40%);
	-webkit-transition: opacity .8s, visibility .8s, transform .8s;
	transition: opacity .8s, visibility .8s, transform .8s;
	transition-delay:0.3s;
}
.g-menu.is-active .menu-content {
	opacity: 1.0;
	visibility: visible;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	-webkit-transition: opacity .8s, visibility .8s, transform .8s;
	transition: opacity .8s, visibility .8s, transform .8s;
	transition-delay:0.3s;
}
.g-menu h2{
    max-width: 400px;	
}


/*ここからタブレット用（768px以下）環境の設定
---------------------------------------------------------------------------*/
/*表示を切り替えるウィンドウサイズの指定*/
@media screen and (max-width: 768px){

}

/*ここからスマホ用（667px以下）環境の設定
---------------------------------------------------------------------------*/
/*表示を切り替えるウィンドウサイズの指定*/
@media screen and (max-width: 667px){
.g-menu-btn {
    position: fixed;
    top: 20px;
    right: 20px;
}
.button_container {
	right: 20px;
}
.g-menu .menu-content{
	transform: translateY(-50%) translateX(-30%);
	-webkit- transform: translateY(-50%) translateX(-30%);
}
}
