/**********************************************
	ナビボタン
**********************************************/
#naviToggle {
	display:none;
	position:relative;
}

#naviToggleLine {
	position:relative;
	width:100%;
}

#naviToggleLine span {
	position:absolute;
	display:block;
	margin:0;
	padding:0;
	width:100%;
	height:3px;
	left:0;
	background-color:#fff;
	-webkit-transition:.3s ease-in-out;
	transition:.3s ease-in-out;
}

#naviToggleLine span:nth-child(1) {
	top:14px;
}

#naviToggleLine span:nth-child(2) {
	top:24px;
	width:80%;
}

#naviToggleLine span:nth-child(3) {
	top:34px;
}

#naviToggleMenu {
	position:absolute;
	width:68px;
	top:42px;
	left:0;
	text-align:center;
	font-size:0.8rem;
	color:#fff;
}

@media screen and (max-width:1179px) {
	#naviToggle {
		display:block;
		position:fixed;
		z-index:1200;
		padding:0 12px;
		top:0;
		right:6px;
		width:64px;
		height:64px;
		cursor:pointer;
	}
}

/**********************************************
	切り替えアニメーション
**********************************************/
.open #naviToggleLine span:nth-child(1) {
	width:80%;
	top:24px;
	left:10%;
	-webkit-transform:rotate(315deg);
	transform:rotate(315deg);
}

.open #naviToggleLine span:nth-child(2) {
	width:0;
	left:50%;
}

.open #naviToggleLine span:nth-child(3) {
	width:80%;
	top:24px;
	left:10%;
	-webkit-transform:rotate(-315deg);
	transform:rotate(-315deg);
}

.open #headerMenu {
	display:block;
	-webkit-animation-duration:0.5s;
	animation-duration:0.5s;
	-webkit-animation-name:fadeIn;
	animation-name:fadeIn;
}

/**********************************************
	メニュー表示フェードイン
**********************************************/
@-webkit-keyframes fadeIn {
	0% {
		display:none;
		opacity:0;
	}

	1% {
		display:block;
		opacity:0;
	}

	100% {
		display:block;
		opacity:1;
	}
}

@keyframes fadeIn {
	0% {
		display:none;
		opacity:0;
	}

	1% {
		display:block;
		opacity:0;
	}

	100% {
		display:block;
		opacity:1;
	}
}

/**********************************************
	ヘッダー
**********************************************/
#header {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:2rem;
	z-index:1000;
	position:absolute;
	top:0;
	left:0;
	width:100%;
	background:linear-gradient(rgba(24, 45, 92,0.4) 0%,rgba(0,0,0,0) 100%);
	-webkit-transition:.8s ease-in-out;
	transition:.8s ease-in-out;
}

#logoBlock {
	flex-grow:1;
	z-index:1200;
}

#logoBlock img {
	width:22vw;
	height:auto;
}

#headerMenu {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:1rem;
}

@media screen and (max-width:1179px) {
	#header {
		position:fixed;
		height:64px;
	}

	#logoBlock img {
		width:auto;
		height:64px;
	}

	#headerMenu {
		display:none;
		position:fixed;
		overflow-y:auto;
		z-index:1100;
		margin:0;
		padding:0;
		top:0;
		left:0;
		right:0;
		bottom:0;
		width:100%;
		height:100vh;
		background-color:#222;
	}
}

/**********************************************
	メインメニュー
**********************************************/
#mainMenu {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	gap:1rem;
	align-items:center;
	position:relative;
}

#mainMenu a {
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	text-decoration:none;
	-webkit-transition:.3s ease-in-out;
	transition:.3s ease-in-out;
}

#mainMenu a span.mainText {
	order:2;
	padding:0.25rem 0 0.5rem 0;
	line-height:1;
	font-family:'Noto Sans JP';
	font-size:0.95rem;
	font-weight:300;
	color:#fff;
}

#mainMenu a span.subText {
	order:1;
	padding:0.5rem 0 0.25rem 0;
	line-height:1;
	font-family:"Oswald";
	font-size:0.85rem;
	font-weight:600;
	color:#eee;
}

#mainMenu a span.enText {
	line-height:1;
	font-family:'Noto Sans JP';
	font-size:1.1rem;
	font-weight:500;
	color:#fff;
}

@media screen and (max-width:1179px) {
	#mainMenu {
		display:flex;
		flex-direction:column;
		flex-wrap:wrap;
		justify-content:flex-start;
		align-items:center;
		gap:0;
		margin:8rem auto 0 auto;
		width:20rem;
		border-top:1px solid #ccc;
	}

	#mainMenu a {
		display:flex;
		flex-direction:row;
		justify-content:space-between;
		align-items:center;
		padding:1rem 0;
		border-bottom:1px solid #ccc;
	}

	#mainMenu a span.mainText {
		order:1;
		padding:0;
		width:14rem;
		text-align:left;
		line-height:1.75;
		font-size:1.2rem;
		font-weight:normal;
	}

	#mainMenu a span.subText {
		order:2;
		padding:0;
		width:6rem;
		text-align:left;
		line-height:1.75;
		font-size:1.1rem;
		font-weight:normal;
	}

	#mainMenu a span.enText {
		width:20rem;
		text-align:center;
	}
}

/**********************************************
	SNS
**********************************************/
#snsIcon {
	display:flex;
	flex-direction:row;
	justify-content:center;
	align-items:center;
	gap:1rem;
}

#snsIcon img {
	width:1.8rem;
	height:auto;
}

@media screen and (max-width:1179px) {
	#snsIcon {
		margin-top:2rem;
	}

	#snsIcon img {
		width:2rem;
		height:auto;
	}
}

/**********************************************
	言語選択
**********************************************/
#languageSelect {
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	margin-right:1rem;
	font-family:"Oswald";
	font-weight:400;
}

#languageTitle {
	margin-bottom:0.25rem;
	font-size:0.9rem;
	color:#fff;
}

#languageSelectInner {
	display:flex;
	flex-direction:row;
	justify-content:center;
	align-items:center;
	gap:0.5rem;
}

#languageSelectInner .languageSelectBase {
	padding:0.25rem 0.5rem;
	line-height:1;
	color:#000;
	background-color:#fff;
	border-radius:0.25rem;
}

#languageSelectInner .languageSelectLink a {
	display:block;
	padding:0.25rem 0.5rem;
	text-decoration:none;
	line-height:1;
	color:#fff;
	border:1px solid #fff;
	border-radius:0.25rem;
}

@media screen and (max-width:1179px) {
	#languageSelect {
		margin-top:2rem;
	}
}

/**********************************************
	会社名
**********************************************/
#headerCorp {
	display:none;
}

@media screen and (max-width:1179px) {
	#headerCorp {
		display:block;
		margin-top:2rem;
		text-align:center;
	}

	.headerCorpName {
		margin-bottom:0.5rem;
		white-space:nowrap;
		font-family:'Noto Sans JP';
		font-size:1.4rem;
		font-weight:500;
		color:#fff;
	}

	.headerCorpName img {
		display:inline-block;
		margin-right:1rem;
		width:auto;
		height:2rem;
		vertical-align:bottom;
	}

	.headerCorpInfo {
		margin-bottom:0.5rem;
		white-space:nowrap;
		font-family:'Noto Sans JP';
		font-size:0.95rem;
		font-weight:300;
		color:#fff;
	}

	.headerCorpTel {
		margin-bottom:1rem;
		white-space:nowrap;
		font-family:"Oswald";
		font-size:1.35rem;
		color:#fff;
	}

	.headerCorpTel a {
		color:#fff;
	}

}
/**********************************************
	PC用とSP用
**********************************************/
.forPC {
	display:inline-block;
}

.forSP {
	display:none;
}

@media screen and (max-width:1024px) {
	.forPC {
		display:none;
	}

	.forSP {
		display:inline-block;
	}
}

/**********************************************
	地図
**********************************************/
#mapArea {
	position:relative;
	padding-bottom:50vh;
	height:0;
	overflow:hidden;
}

#mapArea iframe {
	position:absolute;
	width:100%;
	height:100%;
	top:0;
	left:0;
}

#mapArea iframe, #mapArea object, #mapArea embed {
	-webkit-filter:saturate(40%);
	filter:saturate(40%);
	-webkit-transition:all .5s ease;
	transition:all  .5s ease;
}

/**********************************************
	問い合わせフッター
**********************************************/
#footerContact {
	z-index:1;
	padding:6rem 1rem;
	width:100%;
	top:0;
	background:url("../images/contactBack.jpg") no-repeat center bottom;
	background-size:cover;
	transform-origin:center;
}

#footerContactInner {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:2rem;
	max-width:1024px;
	margin:0 auto;
	padding:4rem 0;
	background-color:rgba(255,255,255,0.75);
	border-radius:0.25rem;
}

#contactTitle {
	position:relative;
	margin-bottom:4rem;
	text-align:center;
	font-size:2.5rem;
	font-weight:600;
	color:#1c262e;
}

#contactTitle::before {
	position:absolute;
	content:"";
	width:4rem;
	height:0.15rem;
	left:50%;
	bottom:-2rem;
	background-color:#1c262e;
	border-radius:5px;
	transform:translateX(-50%);
}

.contactText {
	padding:0 1rem;
	color:#1c262e;
}

#contactTelNo {
	text-align:center;
	font-family:"Oswald";
	font-size:2.5rem;
	font-weight:600;
	letter-spacing:0.2rem;
	color:#1c262e;
}

#contactTelNo a {
	color:#1c262e;
}

#contactTelSub {
	text-align:center;
	color:#1c262e;
}

.contactForm a {
	display:block;
	margin:0 auto;
	padding:1rem 0;
	width:20rem;
	text-align:center;
	font-size:1rem;
	font-weight:bold;
	text-decoration:none;
	color:#171c61;
	background-color:#fef916;
	border-radius:0.5rem;
	-webkit-transition:.3s ease-in-out;
	transition:.3s ease-in-out;
}

.contactForm a:hover {
	background-color:#ede701;
}

@media screen and (max-width:1024px) {
	#footerContactInner {
		flex-wrap:wrap;
		padding:2rem 0;
	}
}

/**********************************************
	フッター
**********************************************/
#footer {
	position:relative;
	background-color:#222;
}

#footerInner {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:stretch;
	gap:2rem;
	margin:0 auto;
	padding:4rem 10vw 0 10vw;
}

.footerInnerItem {
	width:33.3%;
}

.footerInnerItem a:hover {
	text-decoration:none;
}

#footerCorp {
}

#footerCorp img {
	width:20rem;
	height:auto;
}

.footerCorpName {
	margin-bottom:0.5rem;
	white-space:nowrap;
	font-family:'Noto Sans JP';
	font-size:1.4rem;
	font-weight:500;
	color:#fff;
}

.footerCorpNameEn {
	margin-bottom:0.5rem;
	white-space:nowrap;
	font-family:'Noto Sans JP';
	font-size:1.2rem;
	font-weight:500;
	color:#fff;
}

.footerCorpName img , .footerCorpNameEn img {
	display:inline-block;
	margin-right:1rem;
	width:auto;
	height:2rem;
	vertical-align:bottom;
}

.footerCorpInfo {
	margin-bottom:0.5rem;
	white-space:nowrap;
	font-family:'Noto Sans JP';
	font-size:0.95rem;
	font-weight:300;
	color:#fff;
}

.footerCorpTel {
	margin-bottom:1rem;
	white-space:nowrap;
	font-family:"Oswald";
	font-size:1.35rem;
	color:#fff;
}

.footerCorpTel a {
	color:#fff;
}

.copyright span {
	font-weight:bold;
}

#footerMenu {
	margin-bottom:2rem;
}

#footerMenu div {
	margin:0.5rem 0;
}

#footerMenu div a {
	text-decoration:none;
	font-family:'Noto Sans JP';
	font-size:0.95rem;
	font-weight:300;
	color:#fff;
}

#footerMenu div span.snsIcon img {
	width:1.8rem;
	height:auto;
}

#footerMenu div a:hover {
	color:#ccc;
}

@media screen and (max-width:1024px) {
	#footerInner {
		display:block;
		margin:0 auto;
		padding:4rem 0 1rem 0;
		text-align:center;
	}

	.footerInnerItem {
		width:100%;
	}
}

#applyFooter {
	display:inline-block;
}

#applyFooter a {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:0.5rem;
	padding:0.5rem 1rem;
	line-height:1.2;
	font-size:0.9rem;
	font-weight:800;
	text-decoration:none;
	color:#fff;
	background-color:#fd7800;
	border-radius:0.25rem;
	-webkit-transition:.3s ease-in-out;
	transition:.3s ease-in-out;
}

#applyFooter a:hover {
	background-color:#c15b00;
}

#applyFooter i {
	font-size:1.6rem;
}

/**********************************************
	ページトップ
**********************************************/
#pageTop a {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	position:fixed;
	z-index:900;
	width:51px;
	height:51px;
	bottom:1rem;
	right:1rem;
	text-decoration:none;
	font-size:2rem;
	color:#171c61;
	background-color:#eee;
	border-radius:0.25rem;
}

#pageTop a:hover {
	color:#4e58d6;
}
