@charset "UTF-8";

/* --------------------------------------------
 *                    gNav
 * -------------------------------------------- */
*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

nav {
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
}

@media all and (max-width: 767px) {
	nav {
		border-top: none;
		border-bottom: none;
	}
}

.nav {
	position: fixed;
        top: 5px;
	right: 5px;
        z-index: 30000;
}

/** 
* Nav container 
* 1. Ensure this slides in below parent
* 2. Hide by default
* 3. Smoother scrolling experience on iOS
*/

.nav-container {
  position: fixed;
  z-index: 9999;
  overflow-y: auto;
  visibility: hidden; /* 2 */
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  -webkit-transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  -webkit-transform: translateX(-100%);
  -ms-transform: translateX(-100%);
  transform: translateX(-100%); /* 2 */
  -webkit-overflow-scrolling: touch; /* 3慣性スクロールを追加 */
}

@media all and (min-width: 646px) {
.nav-container {
	top: 66px; /* 1 */
	left: 0;
  }
}
@media all and (max-width: 645px) {
.nav-container {
	top: 50px; /* 1 */
	left: 0;
  }
}

/* 1. Show when `.is-visible` class is added */

.nav-container.is-visible {
  visibility: visible; /* 1 */
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
  transform: translateX(0); /* 1 */
  	margin-bottom: -65px; /* 固定ナビの高さ分のネガティブマージン */
	padding-bottom: 65px; /* 打ち消し用のパディング */
}

/* Nav toggle */

.nav-toggle {
	line-height: 1;
	display: inline-block;
	padding: 0.85rem 0.6rem;
	border: 1px solid #009cff;
	background-color: #009cff;
	border-radius: 6px;
}

/* Nav toggle icon */

.nav-toggle .icon-menu {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 16px;
  vertical-align: middle;
  fill: none;
}

/* Nav toggle icon lines */

.icon-menu .line {
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  -webkit-transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1.000);
  transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1.000);
  -webkit-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
  transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
  background-color: #fff;
}

/* Nav toggle icon line 1 */

.icon-menu .line-1 { top: 0; }

/* When active, rotate line 1 to be lefthand part of X */

.is-active .icon-menu .line-1 {
  -webkit-transform: translateY(7px) translateX(0) rotate(45deg);
  -ms-transform: translateY(7px) translateX(0) rotate(45deg);
  transform: translateY(7px) translateX(0) rotate(45deg);
}

/* Nav toggle icon line 2 */

.icon-menu .line-2 {
  top: 50%;
  margin-top: -1px;
}

/* When active, hide line 2 */

.is-active .icon-menu .line-2 { opacity: 0; }

/* Nav toggle icon line 3 */

.icon-menu .line-3 { bottom: 0; }

/* When active, rotate line 3 to be righthand part of X */

.is-active .icon-menu .line-3 {
  -webkit-transform: translateY(-7px) translateX(0) rotate(-45deg);
  -ms-transform: translateY(-7px) translateX(0) rotate(-45deg);
  transform: translateY(-7px) translateX(0) rotate(-45deg);
}

/* メニューのデフォルトリストスタイルを解除 */

.menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/** 
* 1. 1階層目 PC背景
* 2. メニューテキストが誤って強調表示されないよう
*/

.nav-menu {
	background: none; /* 1 */
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none; /* 2 */
}

/*--- menu top border 1階層目 SP ----------------------------------------------------------------- */

@media all and (max-width: 767px) {
	.nav-menu .menu-item {
		background: #009cff;
		border-top: 1px solid #79cbff;
	}
	.nav-menu .menu-item:first-child {
		border-top: none;
	}
}

/* Darker background color on hover, and when toggled */

/*--- menu onマウス 1階層目 PC+SP共通 ----------------------------------------------------------------- */

.nav-menu > .menu-item:hover,
.nav-menu > .menu-item.is-active {
	-webkit-transition: all .3s ease-out;
	-moz-transition: all .3s ease-out;
	-ms-transition: all .3s ease-out;
	transition: all .3s ease-out;
}

@media all and (max-width: 767px) {
	.nav-menu {
		border-bottom: 1px solid #fff; /* メニュー最後のborder */
	}
	.nav-menu > .menu-item:hover,
	.nav-menu > .menu-item.is-active {
		background: #0061c5;
	}
}

/* 1. Menu links are block level, by default */

.nav-menu .menu-link {
  display: block; /* 1 */
  text-decoration: none;
  color: #fff;
}

/* 1. Menu items with dropdowns appear clickable */

.has-dropdown {
  position: relative;
  cursor: pointer; /* 1 */
}



/* 1. Parent menu links inlined so you can toggle the dropdown */

.has-dropdown > .menu-link { width: 100%;display: inline-block; }

/* 1. Add an icon to menu items that have sub menus */

 @media (max-width: 767px) {
.has-dropdown:after {
	font-size: 20px;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	content: "+"; /* 1 */
	color: #0061c5;
	background: #fff;
	width: 50px;
	height: 44px;
	padding: 2px 0 0 0;
	z-index: 10001;
	}
}

/* 1. Switch icon to n-dash when toggled */

.has-dropdown.is-active:after { content: "\2013"; /* 1 */ }

/**
 * Dropdowns SP
 * 1. デフォルトでドロップダウンを非表示
 */

.nav-dropdown {
  display: none; /* 1 */
  background: #43b6cf;
}

/* 1. Show dropdown when toggled */

.has-dropdown.is-active > .nav-dropdown { display: block; /* 1 */ }

/* 2nd level dropdown */

.nav-dropdown .nav-dropdown { background-color: #000; }

.nav-dropdown .nav-dropdown .menu-item {
  background-color: #000;
  border-color: #000;
}



 @media (min-width: 768px) {

.nav,
 .nav-container,
 .nav-container.is-visible {
	position: static;
	top: auto;
	left: auto;
	z-index: auto;
	-webkit-transform: translateX(0);
	-ms-transform: translateX(0);
	transform: translateX(0);
	}

.nav-container,
 .nav-container.is-visible {
	visibility: visible;
	height: auto;
	min-height: 0;
	overflow-y: visible;
	}

.nav-toggle { display: none; }

/* 1. Display menu items inline */

.nav-menu > .menu-item,
 .nav-menu > .menu-item.is-active {
	background-color: transparent;
	border-top: none;
	}

/* 最後の子の下のボーダーを削除 */

/*  .nav-menu > .menu-item:last-child { border: 0; }  */

.nav-menu .menu-item {
	-webkit-transition: background-color 0.15s ease-in-out,  color 0.15s ease-in-out;
	transition: background-color 0.15s ease-in-out,  color 0.15s ease-in-out;
	-webkit-transform:perspective(0); /* safariチラつき解消 */
	}

/* Remove +/- icons */

.has-dropdown:after { display: none; }

/* Add a caret to top-level menu items that have dropdowns */

/*
.nav-menu > .has-dropdown:after {
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 0;
  height: 0;
  margin-top: -2px;
  margin-left: -4px;
  content: "";
  border-width: 5px 5px 0 5px;
  border-style: solid;
  border-color: #444 transparent transparent transparent;
	}
*/

/* Increase padding to compensate for caret */

.has-dropdown > .menu-link { padding-right: 2rem; }

/*--- Dropdowns PC ----------------------------------------------------------------- */

.nav-dropdown {
  display: block;
  opacity: 0;
  position: absolute;
  top: 100%;
  width: 200px;
  margin: 0;
  padding: 0;
  background-color: #0073e8;
  visibility: hidden;
  -webkit-transition: visibility 0s linear 0.25s,  opacity 0.25s linear;
  transition: visibility 0s linear 0.25s,  opacity 0.25s linear;
	}

.has-dropdown:hover > .nav-dropdown {
  visibility: visible;
  opacity: 1;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
	}

.nav-dropdown .menu-item { border-top: 1px solid #53b2ff; }

.nav-dropdown .menu-item:hover,
 .nav-dropdown .nav-dropdown .menu-item:hover { background-color: #007eff; }

.nav-dropdown .nav-dropdown,
 .nav-dropdown .nav-dropdown .menu-item { background-color: #007eff; }

.nav-dropdown .nav-dropdown {
  z-index: 9998;
  top: 0;
  left: 100%;
	}
}

/*--- + ----------------------------------------------------------------- */

#gNav {
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
}
.nav-menu {
	position: relative;
}
.nav-menu > li {
	width: 16.666666%;
}
.nav-menu > li:before {
	position: absolute;
	display: block;
	content: "";
	top: 25%;
	height: 25px;
	right: 0;
	margin-top: 0;
	border-right: 1px solid #ccc;
}
.nav-menu > li:nth-child(6):before {
	border-right: none;
}
.nav-menu > .menu-item .spNavi {
	z-index: 100;
	position: relative;
}

.nav-menu > .menu-item > a {
	display: block;
	padding: 10px 0 15px;
	position: relative;
}
.nav-menu > .menu-item > a::before,
.nav-menu > .menu-item > a::after {
	border-bottom: solid 8px #009cff;
	bottom: 0;
	content: "";
	display: block;
	position: absolute;
	transition: all .3s ease;
	-webkit-transition: all .3s ease;
	width: 0px;
}
.nav-menu > .menu-item > a.navOn::before ,
.nav-menu > .menu-item > a.navOn::after {
	content: none;
	border-bottom: none;
}

.nav-menu > .menu-item > a::before {
	left: 50%;
}
.nav-menu > .menu-item > a::after {
	right: 50%;
}
.nav-menu > .menu-item > a:hover::before,
.nav-menu > .menu-item > a:hover::after {
	width: 50%;
}

.nav-menu > li > .spNavi > .navText {
	font-size: 16px;
	color: #000;
	line-height: 1;
	margin: 0;
	padding: 5px 0 0 0;
}
.nav-menu > .menu-item:last-child ,
.nav-menu > .menu-item:nth-last-child(2) {
	display: none; /* no */
}

.nav-dropdown > .menu-item ,
.nav-dropdown02 > .menu-item {
	text-align: left;
}
.nav-dropdown > li > a {
	font-size: 12px;
	padding: 0.8em;
}

@media all and (min-width: 768px) {
	#gNav {
		width: 100%;
	}
}

@media all and (max-width: 767px) {
	#gNav {
		width: 100%;
		min-width: 100%;
		background: none;
		display: block;
	}
	.nav-menu > li {
		width: 100%;
	}
	.nav-menu > .menu-item:last-child ,
	.nav-menu > .menu-item:nth-last-child(2) {
		display: block; /* HOME */
	}
	.nav-menu > .menu-item > a ,
	.nav-menu > .menu-item > .menu-link {
		margin: 0;
		padding: 0.5em;
		background: none;
		display: flex;
		align-items: center;
	}
	.nav-menu > .spColor {
		background: #ffe584;
	}
	.nav-menu > .menu-item > a > .navText ,
	.nav-menu > .menu-item > .menu-link > .navText {
		flex-grow: 1;
		text-align: center;
		color: #fff;
		font-size: 14px;
		margin: .5em;
	}
	.nav-menu > .menu-item > .menu-link > .navText span {
		color: #fff;
	}
	.nav-menu > li:before {
	    content: none;
	}
	.nav-menu > li:first-child:before {
	    content: none;
	}
	.nav-menu > .menu-item > a::before,
	.nav-menu > .menu-item > a::after {
		content: none;
	}
	.nav-menu > .menu-item > a:hover::before,
	.nav-menu > .menu-item > a:hover::after {
		content: none;
	}
	.nav-dropdown > li > a {
		font-size: 14px;
		padding: 0.5em 0.5em 0.5em 4.5em;
	}
}

/*--- 現在のページ ----------------------------------------------------------------- */

.navOn {
	margin: 0 1px 0 0;
	background: #d1e9ff;
	display: block;
}

@media all and (max-width: 767px) {
	.navOn {
		border-bottom: none;
		bottom: 0;
		margin-bottom: 0;
		display: block;
	}
}

/*--- etc ----------------------------------------------------------------- */

.fixedsp {
  position: fixed; /* スマホメニューOPEN時後ろコンテンツスクロールなし */
  width: 100%;
  height: 100%;
}
