@charset "UTF-8";


/*====================================================
　ヘッダー
====================================================*/
header {
  position: fixed;
  top: 0;
  left: 0;
  height: 100px;
  width: 100%;
	padding: 0rem 1rem 0rem 2rem;
	z-index: 100;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: rgba(239,239,239,0.9);
}
@media screen and (min-width:1025px) {
	/*HeightMinというクラス名がついたら高さを小さく、上部固定に*/
	header.HeightMin {
		position: fixed;
		z-index: 999;/*最前面へ*/
		height: 54px;
		padding-top: 0rem;
		align-items: center;
		animation: DownAnime 0.5s forwards;
	}
	.company header.HeightMin,
	.news header.HeightMin,
	.contact header.HeightMin,
	.works header.HeightMin {
		position: fixed;
		height: 62px;
	}
	header.HeightMin .h_logo img {
		width: auto;
		height: 40px;
	}
}
@keyframes DownAnime{
  from {
  	opacity: 0;
		transform: translateY(-170px);
  }
  to {
  	opacity: 1;
		transform: translateY(0);
  }
}
/* ロゴ*/
header .h_logo img {
	height: 40px;
}
header nav {
	width: 65%;
	max-width: 720px;
}
/* タブレット用 */
@media screen and (max-width:1024px) {
	header {
		height: 50px;
		min-height: auto;
		padding: 8px 8px 8px 12px;
		align-items: center;
	}
	/* ロゴ */
	header .h_logo {
		margin-bottom: 0;
	}
	header .h_logo img {
		width: auto;
		height: auto;
		max-height: 34px;
	}
}
/* スマホ用 */
@media screen and (max-width:480px) {
	#navi .head_wrapper {
		width: calc(100% - 150px);
	}
}


/*====================================================
　フッター
====================================================*/
footer {
	background-color: rgba(239,239,239,0.9);
	font-size: 14px;
}
footer a { font-size: 14px; }
footer .wrapper {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	width: 800px;
	margin: 0 auto 0.5rem auto;
	padding: 1rem 0;
}
footer img {
	width: 80px;
	margin: 0 4rem auto 0;
}
footer .copyright {
	margin: 0 auto;
	padding: 1em 0.5em;
	width: 100%;
	background-color: #000;
	font-size: 11px;
	text-align: center;
	color: #fff;
}
@media screen and (max-width:1024px) {
	footer .wrapper {
		display: none;
	}
}
@media screen and (max-width: 768px) {
	footer .footer_nav {
		display: none;
	}
	footer .copyright {
		width: 100%;
		max-width: 100%;
		font-size: 10px;
	}
}

/*====================================================
 メニュー　
 header #g_menu、footer nav.footer_nav
====================================================*/
/* パソコン用 */
@media screen and (min-width: 1025px) {
	ul#g_menu {
		display: flex;
		justify-content: space-between;
		height: 100%;
		align-items: flex-end;
	}
	footer nav.footer_nav ul {
		display: flex;
		justify-content: center;
		height: 100%;
	}
	ul#g_menu li {
		width: 100%;
	}
	footer nav.footer_nav ul li {
		width: 8rem;
	}
	footer nav.footer_nav ul li:nth-child(5) {
		width: 10rem;
	}
	ul#g_menu li a,
	footer nav.footer_nav ul li a {
		display: block;
		width: 100%;
		padding: 2rem 0 1.05rem 0;
		line-height: 1.2rem;
		font-weight: 500;
	}
	header.HeightMin ul#g_menu {
		margin-bottom: 0.5rem;
	}
	header.HeightMin ul#g_menu li a {
		padding: 1.5rem 0 0 0;
	}
	footer nav.footer_nav ul li a {
		padding-bottom: 0;
	}
	ul#g_menu li a .text_wrap,
	footer nav.footer_nav ul li a .text_wrap {
		position: relative;
		height: 1.2rem;
		overflow: hidden;
		border-left: 4px solid gray;
	}
	ul#g_menu li a .text_wrap span,
	footer nav.footer_nav ul li a .text_wrap span {
		position: absolute;
		top: 0;
		left: 0;
		display: block;
		width: 100%;
		margin: 0;
		padding-left: 0.8rem;
		color: #000;
		font-weight: bold;
		/*アニメーションの指定*/
		transition: top 0.4s ease;
		-webkit-transition: top 0.4s ease;
		-moz-transition:  top 0.4s ease;
		-o-transition:  top 0.4s ease;
	}
	ul#g_menu li a .text_wrap span:nth-child(2),
	footer nav.footer_nav ul li a .text_wrap span:nth-child(2) {
		/*日本語*/
		top: -26px;
		font-size: 0.85rem;
		line-height: 1.3rem;
	}
	ul#g_menu li:nth-child(4) a .text_wrap span:nth-child(2),
	footer nav.footer_nav ul li:nth-child(4) a .text_wrap span:nth-child(2) {
		letter-spacing: 0;
		white-space: nowrap;/*改行させない*/
	}
	/*hoverするとテキストが入れ替わる設定*/
	ul#g_menu li a:hover .text_wrap span:nth-child(1),
	footer nav.footer_nav ul li a:hover .text_wrap span:nth-child(1) {
		/*英語*/
		top: -26px;
	}
	ul#g_menu li a:hover .text_wrap span:nth-child(2),
	footer nav.footer_nav ul li a:hover .text_wrap span:nth-child(2) {
		/*日本語*/
		top: 0;
		color: #999;
	}
}
/* タブレット用 */
@media screen and (max-width:1024px) {
	ul#g_menu li {
		border-bottom: 1px solid #fff;
	}
	ul#g_menu li a .text_wrap {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		padding: 20px 10px;
		font-family: 'Noto Sans JP', sans-serif;;
		font-size: 18px;
		letter-spacing: 0.05em;
		text-indent: 1em;
		color: #fff;
	}
	ul#g_menu li a .text_wrap span {
		color: #fff;
	}
	ul#g_menu li a .text_wrap span:first-of-type {
		margin-right: 1rem;
	}
	ul#g_menu li a .text_wrap span:nth-of-type(2) {
		font-size: 0.8rem;
		border-left: 1px solid #afafaf;
	}
	.sidemenu {
		position: fixed;
		top: -100%;
		/*right: -100%; メニュー幅*/
		width: 100%; /*メニュー幅*/
		left: 0;
		z-index: 2;
		margin-top: 50px;
		background-color: #000;
		transition: all 0.5s;
	}
	.hamburger {
		position: absolute;
		z-index: 3;
		right: 0;
		top: 0;
		width: 50px;
		height: 50px;
		padding: 10px;
		cursor: pointer;
		background-color: #000;
	}
	.hamburger span {
		position: absolute;
		height: 2px;
		width: 30px;
		background-color: #fff;
		transition: all 0.5s;
	}
	.hamburger_linetop {
		top: 15px;
	}
	.hamburger_linecenter {
		top: 24px;
	}
	.hamburger_linebottom {
		top: 33px;
	}
	.nav_open .sidemenu {
		top: 0;
	}
	.nav_open .hamburger_linetop {
		top: 26px;
		transform: rotate(45deg);
	}
	.nav_open .hamburger_linecenter {
		left: 50%;
		width: 0;
	}
	.nav_open .hamburger_linebottom {
		top: 26px;
		transform: rotate(-45deg);
	}
	.nav_open .overlay {
		position: absolute;
		top: 50px;
		opacity: 0.8;
		visibility: visible;
	}
	/*------------------------------------
	メニュークリック後メニュー外の背景 ↓
	------------------------------------*/
	.overlay {
		height: calc(100vh - 50px);
		width: 100vw;
		opacity: 0;
		position: fixed;
		left: 0;
		background-color: #000;
		cursor: pointer;
		transition: none;
		visibility: hidden;
		z-index: 1;
	}
}



/*++++++++++++++++++++++++++++++++++++++++++++++++
TOPへ戻る
++++++++++++++++++++++++++++++++++++++++++++++++*/
#page_top {
  height: 50px;
  width: 50px;
  position: fixed;
  right: 20px;
  bottom: 20px;
  background: #007130;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
}
#page_top a {
	display: block;
  height: 10px;
  width: 10px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: translateY(20%) rotate(-45deg);
}
@media (hover: hover) and (pointer: fine) {
  #page_top:hover, 
	#page_top:hover a {
      border-color: #80b897;
  }
}
@media only screen and (max-width:480px) {
	#page_top {
		width: 40px;
		height: 40px;
		right: 10px;
	}
}
