
/**************************************************************
 /css/header-footer.css
****************************************************************
 1) header
 2) footer
 3) fixed_tab
------------------------------------------------------------*/



/*************************************************************
 1) header
**************************************************************/
header {
	position: relative;
}
#header.HeightMin .logoWrap {
	z-index: 2;
}
/*---------- ロゴ ----------*/
.logoWrap {
	position: fixed;
	width: 100%;
	height: 60px;
	top: 0;
	background: #fff;
	padding:15px 0 0 20px;
	box-sizing: border-box;
}
.logoWrap .hdLogo {
	width: 180px;
	height: 31px;
	background: url(../images/logo1.png) no-repeat;
	background-size: 100% auto;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
}
.logoWrap .hdLogo a {
	display: block;
	width: 100%;
	height: 100%;
}
#gNav ul.globalNav li a {
	font-size: 1.8rem;
	color: #0070b2;
}
#gNav ul.globalNav li.jpNav a {
	display: inline-block;
    line-height: 30px;
    border: solid 1px #0070b2;
    border-radius: 15px;
}

/* スマホ用
------------------------------------------------------------*/
@media screen and (max-width:1199px) {	
	/*---------- gNav ----------*/
	#gNav {
    	position: fixed;
		top: 0;
		z-index: -10;
		opacity: 0;
		width:100%;
    	height: 100vh;
		background:#fff;
		transition: all 0.3s;
	}
	/*アクティブクラスがついたら透過なしにして最前面へ*/
	#gNav.panelactive {
		opacity: 1;
		z-index: 999;
	}
	/*ナビゲーションの縦スクロール*/
	#gNav.panelactive #g-nav-list{
    	/*ナビの数が増えた場合縦スクロール*/
    	position: fixed;
    	z-index: 999; 
    	width: 100%;
    	height: 100vh;/*表示する高さ*/
    	overflow: auto;
    	-webkit-overflow-scrolling: touch;
	}
	/*ナビゲーション リスト*/
	#gNav ul {
    	display: none;
    	z-index: 999;
		line-height: 2.2;
	}
	#gNav.panelactive ul {
    	display: block;
	}
	#gNav.panelactive li {
		width: 64%;
		margin: 0 auto;
		text-align: center;
		border-bottom: solid 1px #cce2ef;
		box-sizing: border-box;
	}
	#gNav.panelactive li.topNav {
		width: 180px;
		height: 31px;
		border: none;
		margin: 15px 0 30px 20px;
		background: url(../images/logo1.png) no-repeat;
		background-size: 100% auto;
		overflow: hidden;
		text-indent: 200%;
		white-space: nowrap;
	}
	#gNav.panelactive li.jpNav {
		border-bottom: none;
		margin-top: 25px;
	}
	#gNav.panelactive li a {
		display: block;
		padding: 10px;
	}
	#gNav.panelactive li.topNav a {
		padding: 0;
	}
	#gNav.panelactive li.jpNav a {
		padding: 0 30px;
	}
	/* ハンバーガーメニュー */
	.openbtn {
		position:fixed;
    	z-index: 9999;
		top:5px;
		right: 17px;
		cursor: pointer;
    	width: 50px;
    	height:50px;
	}	
	.openbtn span {
    	display: inline-block;
    	transition: all .4s;
    	position: absolute;
    	left: 3px;
    	height: 1px;
		background-color: #0070b2;
  		width: 44px;
	}
	.openbtn span:nth-of-type(1) {
		top:15px;	
	}
	.openbtn span:nth-of-type(2) {
		top:24px;
	}
	.openbtn span:nth-of-type(3) {
		top:33px;
	}
	.openbtn.active span:nth-of-type(1) {
    	top: 16px;
    	left: 5px;
    	transform: translateY(5px) rotate(-45deg);
    	width: 80%;
	}
	.openbtn.active span:nth-of-type(2) {
		opacity: 0;
	}
	.openbtn.active span:nth-of-type(3) {
    	top: 16px;
    	left: 5px;
    	transform: translateY(5px) rotate(45deg);
    	width: 80%;
	}
}

/* タブレット〜PC用
------------------------------------------------------------*/
@media screen and (min-width:770px) and (max-width:1199px) {
	/*---------- ロゴ ----------*/
	.logoWrap {
		height: 68px;
		padding:17px 0 0 50px;
	}
	.logoWrap .hdLogo {
		width: 200px;
		height: 34px;
	}
	
	/*---------- gNav ----------*/
	/*ナビゲーション　リスト*/
	#gNav.panelactive ul li.topNav {
		width: 200px;
		height: 34px;
		margin: 17px 0 30px 50px;
	}
	#gNav.panelactive ul li a {
		line-height: 40px;
	}
	#gNav.panelactive ul li a:hover {
		background: #d9eaf3;
	}
	#gNav.panelactive li.topNav a:hover {
		background: none;
	}
	/* ハンバーガーメニュー */
	.openbtn {
		top: 0;
		right: 46px;
    	width: 68px;
    	height:68px;
	}	
	.openbtn span {
    	left: 4px;
  		width: 60px;
	}
	.openbtn span:nth-of-type(1) {
		top: 24px;
	}
	.openbtn span:nth-of-type(2) {
		top: 34px;
	}
	.openbtn span:nth-of-type(3) {
		top: 44px;
	}
	.openbtn.active span:nth-of-type(1) {
    	top: 29px;
    	left: 8px;
	}
	.openbtn.active span:nth-of-type(3) {
    	top: 29px;
    	left: 8px;
	}
}

/* PC用
------------------------------------------------------------*/
@media screen and (min-width:1200px) {
	/*---------- ロゴ ----------*/
	.logoWrap {
		position: relative;
		height: 68px;
		padding:17px 0 0 50px;
	}
	.logoWrap .hdLogo {
		width: 200px;
		height: 34px;
	}

	/*---------- gNav ----------*/
	/* 非表示 */
	.openbtn,
	#gNav .globalNav li.topNav {
		display: none;
	}
	#gNav {
		position: absolute;
		top: 0;
		right: 0;
		width: auto;
		margin-left: 255px;
		padding-right: 39px;
		z-index: 2;
	}
	#gNav ul.globalNav {
		line-height: 58px;
		padding-top: 5px;
		display: -webkit-box;
		display: flex;
		-webkit-box-pack: end;
    	-webkit-justify-content: flex-end;
    	justify-content: flex-end;
	}
	#gNav ul.globalNav li {
		position: relative;
		padding: 0 11px;
	}
	#gNav ul.globalNav li a {
		display: block;
		text-decoration: none;
		transition:all .4s;
	}
	#gNav ul.globalNav li a {
		position: relative;
		padding-bottom: 5px;
	}
	#gNav ul.globalNav li.jpNav a {
		font-size: 1.7rem;
		padding: 0 12px 0 14px;
	}
	#gNav ul.globalNav li a::before {
		position: absolute;
		content: "";
		left: 1px;
		bottom: 0;
		width: 0;
		height: 5px;
		background: #0070b2;
  		transition: width 0.2s ease;
	}
	#gNav ul.globalNav li.jpNav a::before {
		position: relative;
	}
	#gNav ul.globalNav li a:hover::before {
		width: 100%;
	}	
	#gNav ul.globalNav li.jpNav a:hover {
		background-color: #d9eaf3;
	}
	
	/*---------- スクロールするとヘッダが一度消えてから高さが変わる ----------*/
	#header{
		height: 68px;
		width:100%;
	}
	#header.HeightMin {
		position: fixed;
		height: 68px;
    	z-index: 999;/*最前面へ*/
		animation: DownAnime 0.8s forwards;
	}
	#header.HeightMin .logoWrap
	#header.HeightMin #gNav {
		position: fixed;
		top: 0 ;
	}
	@keyframes DownAnime{
		from {
			opacity: 0;
			transform: translateY(-114px);
		}
		to {
  			opacity: 1;
			transform: translateY(0);
		}
	}
}

/*---------- gNavの文字詰め PC用 ----------*/
@media screen and (min-width: 1200px) and (max-width:1249px) {
	#gNav ul.globalNav {
		letter-spacing: -0.04em;
	}
}

/*************************************************************
 2) footer
**************************************************************/
footer {
	posiiton: relative;
	width: 100%;
	text-align: center;
	padding-top: 38px;
	padding-bottom: 50px;
}
/* 電話 */
footer .contactFt span {
	display: block;
}
footer .contactFt p.tel {
		font-family: 'EB Garamond', 'Times New Roman', Times, serif;
}
footer .contactFt p.tel .txt {
	display: inline-block;
	font-size: 2rem;
	line-height: 1.5;
	padding: 0 20px;
	border: solid 1px rgba(255,255,255,0.5);
}
footer .contactFt p.tel .num a {
	position: relative;
	display: inline-block;
	font-size: 3.2rem;
	line-height: 1.8;
	color: #fff;
	padding-left: 20px;
}
footer .contactFt p.tel .num a::before {
	position: absolute;
	content: "";
	width: 13px;
	height: 19px;
	top: 39%;
	left: 0;
	background: url(../images/icon_tel.png) no-repeat center;
	background-size: 100% auto;
}
footer .contactFt p.busHour {
	line-height: 1.45;
}
footer .contactFt p.busHour .txt {
	font-size: 1.3rem;
}
footer .contactFt p.busHour .time {
	font-size: 1.8rem;
}
/* 会社情報 */
footer p.ftLogo {
	width: 112px;
	height: 79px;
	background: url(../images/logo2.png) no-repeat center/100% auto;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
	margin: 60px auto 20px;
}
footer p.companyName {
	font-size: 1.8rem;
	margin: 0 0 10px;
}
footer p.companyAddress {
	font-size: 1.3rem;
	line-height: 1.45;
	margin: 0 0 45px;
}
/* Copyright */
footer .copyright {
	font-size: 1rem;
	line-height: 1.45;
}	

/* タブレット用
------------------------------------------------------------*/
@media screen and (min-width:600px) {
	footer .contactFt span {
		display: inline-block;
	}
	footer .contactFt p.tel .txt {
		margin-right: 1em;
	}
	footer .contactFt p.busHour .txt {
		margin-right: 0.7em;
	}
	footer p.companyAddress br.spOnly {
		display: none;
	}
}

/* PC用
------------------------------------------------------------*/
@media screen and (min-width:770px) {
	footer {
		padding-top: 50px;
   		-webkit-box-direction: reverse;
    	-webkit-flex-direction: row-reverse;
    	flex-direction: row-reverse;
	}
	footer .rightSide {
		text-align: right;
		flex-shrink: 0;
	}
	footer .leftSide {
		text-align: left;
	}
	/* 電話 */
	footer .contactFt p.tel {
		vertical-align: top;
	}
	footer .contactFt p.tel .txt {
		font-size: 2.4rem;
		line-height: 1.4;
	
		vertical-align: top;
	}
	footer .contactFt p.tel .num a {
		font-size: 3.5rem;
		line-height: 1;
		padding-left: 22px;
	}
	footer .contactFt p.tel .num a::before {
		width: 16px;
		height: 23px;
		top: 27%;
	}
	footer .contactFt p.busHour {
		margin-top: 9px;
	}
	footer .contactFt p.busHour .txt {
		font-size: 1.4rem;
	}
	footer .contactFt p.busHour .time {
		font-size: 1.9rem;
	}
	/* 会社情報 */
	footer p.ftLogo {
		width: 200px;
		height: 34px;
		background: url(../images/logo3.png) no-repeat center/100% auto;
		margin: 0 0 35px;
	}
	footer p.companyName {
		font-size: 1.9rem;
		margin: 0 0 10px;
	}
	footer p.companyAddress {
		font-size: 1.4rem;
		line-height: 1.45;
		margin: 0;
	}
	/* Copyright */
	footer .copyright {
		position: absolute;
		right: 50px;
		bottom: 50px;
	}
}

/*************************************************************
 3) fixed_tab
**************************************************************/
#fixed_tab {
	position: relative;
	z-index: 1;
}
#fixed_tab ul {
	position: fixed;
	width: 100%;
	height: 40px;
	bottom: 5px;
	right: 0;
	display: -webkit-box;
	display: flex;
}
#fixed_tab li a {
	display: block;
	width: 100%;
	height: 100%;
	text-decoration: none;
}
#fixed_tab li.sns {
	position: absolute;
	width: 40px;
	height: 40px;
	background-repeat: no-repeat;
	background-size: 100% auto;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
	background-color: #fff;
	border-radius: 20px;
}
#fixed_tab li.fbTab {
	background-image: url(../images/icon_fb.png);
	right: 20px;
}
#fixed_tab li.igTab {
	background-image: url(../images/icon_ig.png);
	right: 80px;
}

/* PC用
------------------------------------------------------------*/
@media screen and (min-width:770px)  {
	#fixed_tab ul {
		position: fixed;
		display: block;
		width: 40px;
		height: 110px;
		bottom: 50%;
		margin-bottom: -65px;
		right: 15px;
	}
	#fixed_tab li.sns {
		position: relative;
		transition: 0.3s linear;
	}
	#fixed_tab li.igTab {
		margin: 0;
		right: 0;
	}
	#fixed_tab li.fbTab {
		margin: 30px 0 0;
		right: 0;
	}
	#fixed_tab li.sns:hover {
		background-color: #111d39;
	}
	#fixed_tab li.fbTab:hover {
		background-image: url(../images/icon_fb2.png);
	}
	#fixed_tab li.igTab:hover {
		background-image: url(../images/icon_ig2.png);
	}
}