@charset "utf-8";

header {
	position: fixed;
	width: 100%;
	height: 100px;
	background: rgba(255,255,255,0.0);
	z-index: 98;
	-o-transition: all 0.5s ease;
	-webkit-transition: all 0.5s ease;
	-moz-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

header:hover {
	background: rgba(255,255,255,1.0);
}

header:hover #navi li a {
	color: var(--color-blue-01);
}

header.h-animation {
	height: 80px;
	border-bottom: 1px solid var(--color-gray-07);
	background: rgba(255,255,255,1.0);
}

header.h-animation #navi li a {
	color: var(--color-blue-01);
}

.h_inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
	margin: 0 50px 0;
}

.logo {
	display: flex;
	align-items: center;
	gap: 10px;
}

.logo_s {
	width: 30px;
}

.logo_filter {
	width: 200px;
	height: auto;
	filter: brightness(0) invert(1);/* 画像を白抜き */
	transition: filter 0.3s ease;
}

/* スクロール後フィルターを解除して元の色に戻す */
#site_header:hover .logo_filter,
#site_header.scrolled .logo_filter {
	filter: none;
}


/*==ナビゲーション全体の設定*/
#navi {
	color:var(--color-white);
	text-align: center;
}

/*ナビゲーションを横並びに*/
#navi ul {
	display: flex;
	justify-content: center;
}

/*ナビゲーションのリンク設定*/
#navi ul li a {
	/*矢印の基点にするためrelativeを指定*/
	position: relative;
	display: block;
	text-decoration: none;
	color: var(--color-white);
	margin: 0px 40px;
	padding: 5px 0;
	transition:all .3s;
}

#navi ul li li a {
	padding: 20px;
}

/*マウスオーバー*/
#navi ul li a:after {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 0;
	height: 1px;
	background: var(--color-blue-01);
	content: "";
	-webkit-transition: all .3s;
	-moz-transition: all .3s;
	transition: all .3s;
}

#navi ul li a:hover {
	color:var(--color-blue-01);
}

#navi ul li a:hover:after {
	left: 0;
	width: 100%;
}


/*2階層目を持つliの矢印の設定*/
#navi ul li.has-child > a::before{
	content:'';
	position: absolute;
	right: -20px;
	top: 15px;
	width: 6px;
	height: 6px;
	border-top: 2px solid var(--color-white);
	border-right: 2px solid var(--color-white);
	transform: rotate(135deg);
}

header.h-animation #navi ul li.has-child > a::before {
	border-top: 2px solid var(--color-blue-01);
	border-right: 2px solid var(--color-blue-01);
}

header:hover #navi ul li.has-child > a::before {
	border-top: 2px solid var(--color-blue-01);
	border-right: 2px solid var(--color-blue-01);
}


/*==2階層目以降の画像設定*/
#navi ul li.has-child img {
	max-width: 100%;
	height: auto;
	transition: all .5s;
}

/*hoverしたら画像拡大*/
#navi ul li.has-child img:hover {
	transform: scale(1.2);
}

#navi ul li.has-child dt {
	overflow: hidden;
	height: 20vh;
	margin: 0 0 20px 0;
}

@media (max-width:1200px) {
	#navi ul li.has-child dt {
		height: 12vh;
	}
}


/*== 2層目の設定*/
#navi li.has-child ul {
	/*絶対配置で位置を指定*/
	position: absolute;
	left: 0;
	top: 100px;
	z-index: 99;
	background: var(--color-gray-06);
	/*はじめは非表示*/
	visibility: hidden;
	opacity: 0;
	transition: all 0.5s ease;
}

/*hoverしたら表示*/
#navi li.has-child:hover > ul {
	visibility: visible;
	opacity: 1;
}

#navi li.has-child ul.h-animation {
	top: 80px;
}

/*各ナビゲーション横幅*/
#navi li.has-child ul li {
	width:20%;
}
#navi li.has-child ul li a {
	margin: 0;
}

#navi li.has-child ul li a:hover,
#navi li.has-child ul li a:active {
	background: var(--color-white);
}

.header_tell {
	display: none;
}

/* -----------------------------------------------------------
	SP
----------------------------------------------------------- */

@media (max-width:768px){
	header {
		height: 80px;
	}

	.h_inner {
		margin: 0 0 0 20px;
	}

	/*メニュー部分*/
	#navi {
		display: none;
		position: absolute;
		overflow: auto;
		top: 79px;
		width: 100%;
		height: 100vh;
		background: rgba(255,255,255,1.0);
		left: 0;
	}

	#navi ul {
		display: block;
		width: 90%;
		margin: 50px auto 0;
		-webkit-overflow-scrolling: touch;
	}

	#navi ul li a {
		color: var(--color-blue-01);
		margin: 0;
		padding: 20px 20px;
		border-bottom: 1px solid var(--color-gray-06);
	}

	/*マウスオーバー*/
	#navi ul li a:after {
		height: 0px;
	}
	
	#navi li.has-child:hover > ul {
		display: none;
	}

	#navi li.has-child ul {
		position: relative;
		width: 100%;
		left: 0;
		top: 0px;
		margin: 0 0 0px;
		visibility: visible;/*JSで制御するため一旦表示*/
		opacity: 1;/*JSで制御するため一旦表示*/
		display: none;/*JSのslidetoggleで表示させるため非表示に*/
		transition: none;/*JSで制御するためCSSのアニメーションを切る*/
		background: var(--color-white);
	}
	#navi li.has-child ul.h-animation {
		top: 0px;/*スクロールしたときのズレを解消*/
	}
	
	#navi li.has-child ul li {
		width:100%;
		text-align: left;
	}

	#navi li.has-child ul li a {
		color: var(--color-blue-01);
		padding: 20px 0px;
	}
	
	#navi li.has-child ul li dl {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	#navi li.has-child ul li dt {
		width: 30%;
		height: auto;
		margin: 0;
	}

	#navi li.has-child ul li dd {
		width:64%;			
	}

	/*矢印の位置と向き*/
	#navi ul li.has-child > a::before{
		top: 30px;
		right: 30px;
		border-top: 2px solid var(--color-blue-01);
		border-right: 2px solid var(--color-blue-01);
	}
		
	#navi ul li.has-child.active > a::before {
		transform: rotate(-45deg);
	}

	/*開閉ボタン*/
	#nav_toggle {
		display: block;
		width: 40px;
		height: 40px;
		position: relative;
		top: 10px;
		right: 20px;
		z-index: 100;
		cursor: pointer;
	}

	/*タップエリア拡大*/
	#nav_toggle:after {
		content: "";
		position: absolute;
		top: -15px;
		left: -15px;
		width: 55px;
		height: 50px;
		opacity: 0.5;
	}
	
	#nav_toggle span {
		display: block;
		position:absolute;
		width: 60%;
		height: 3px;
		background: var(--color-white);
		border-radius: 2px;
		transition: 0.3s ease-in-out;	
	}
	#nav_toggle span:nth-child(1){
		top:0px;
	}
	#nav_toggle span:nth-child(2){
		top:8px;
	}
	#nav_toggle span:nth-child(3){
		top:16px;
	}

	#nav_toggle.active span:nth-of-type(1) {
		width: 60%;
		top: 0px;
		left: 0px;
		transform: translateY(10px) rotate(-45deg);
	}

	#nav_toggle.active span:nth-of-type(2) {
		opacity: 0;
	}

	#nav_toggle.active span:nth-of-type(3){
		width: 60%;
		top: 20px;
		left: 0px;
		transform: translateY(-10px) rotate(45deg);
	}

	#site_header:hover #nav_toggle span,
	#site_header.scrolled #nav_toggle span {
		background: var(--color-black-01);
	}


	/* TEL */
	.header_tell {
		display: block; 
		margin: 50px 0;
		border: 0px;
		text-align:center;
	}
	.tell_number a {
		color:var(--color-white);
	}
	.tell_number a:hover {
		color:var(--color-white);
	}
	.tell_number_btn {
		display: block; 
		width: 60%;
		color:var(--color-white);
		margin: 0px auto 10px;
		padding: 0.7rem 0;
		border-radius: 50px;
		background: var(--color-blue-01);
		transition: 1s;
	}
	.tell_number_btn:hover {
		background: var(--color-blue-02);
	}
	.tell_number_btn:before {
		font-family: 'Font Awesome 5 Free';
		content: "\f2a0";
		font-weight: 900;
		padding: 0 5px 0 0;
	}
	.tell_time {
		color: var(--color-black-01);
		font-size: 0.8rem;
	}

}

