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

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

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

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

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

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

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

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

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

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

.openMainMenu #viewMenu {
	display:block;
	animation:slideIn 0.3s cubic-bezier(0.33, 1, 1, 1) 1 forwards;
}

/**********************************************
	アニメーション
**********************************************/
@keyframes slideIn {
	0% {
		opacity:0;
		transform:translateX(10rem);
	}

	100% {
		opacity:1;
	}
}

@keyframes fadeUp {
	0% {
		opacity:0;
		transform:translateY(4rem);
	}

	75% {
		transform:translateY(0);
	}

	100% {
		opacity:1;
	}
}

/**********************************************
	ヘッダー
**********************************************/
#header {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:space-between;
	align-items:stretch;
	position:absolute;
	z-index:1000;
	margin:0;
	padding:1rem;
	width:100%;
	top:0;
	left:0;
}

#logoBlock a {
	text-decoration:none;
	line-height:1.25;
	font-size:3rem;
	font-weight:900;
	color:#333;
}

#logoBlock a br {
	display:none;
}

@media screen and (max-width:1023px) {
	#header {
		display:block;
		position:fixed;
		margin:0;
		padding:0;
		height:64px;
		box-shadow:none;
		background-color:rgba(255,255,255,0);
	}

	#logoBlock {
		z-index:1200;
		position:absolute;
		top:0.25rem;
		left:1rem;
	}

	#logoBlock a {
		font-size:2rem;
	}

	#logoBlock a br {
		display:block;
	}

	#viewMenu {
		display:none;
		position:fixed;
		overflow-y:auto;
		top:0;
		left:calc(100vw - 0);
		right:0;
		bottom:0;
		background-color:#fff;
		background-position:right bottom;
	}
}

/**********************************************
	メインメニュー
**********************************************/
#mainMenu {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:flex-end;
	align-items:stretch;
	gap:1.25rem;
}

#mainMenu a {
	padding:1rem 0;
	white-space:nowrap;
	text-decoration:none;
	font-size:1.3rem;
	font-weight:700;
	color:#111;
}

#mainMenu a:hover {
	color:#156c97;
	border-bottom:2px solid #156c97;
}

@media screen and (max-width:1023px) {
	#mainMenu {
		display:flex;
		flex-direction:column;
		flex-wrap:wrap;
		justify-content:flex-start;
		align-items:center;
		margin-top:6rem;
	}

	#mainMenu div {
		padding:0.4rem 3rem;
		width:100%;
	}

	#mainMenu div a {
		display:block;
		padding:0.2rem 0;
		width:100%;
		font-size:1.3rem;
		color:#222;
	}
}

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

.forSP {
	display:none;
}

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

	.forSP {
		display:inline-block;
	}
}

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

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

/**********************************************
	問い合わせフッター
**********************************************/
#Contact {
	z-index:1;
	padding:6rem 1rem;
	width:100%;
	top:0;
	background:#f0f0f0;
}

#ContactInner {
	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:#111;
}

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

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

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

#contactTelNo a {
	color:#111;
}

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

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

#footerInner {
	text-align:center;
	margin:0 auto;
	padding:4rem 0;
}

#footerCorpName {
	font-size:2.4rem;
	font-weight:700;
}

.corpInfo {
	white-space:nowrap;
	font-size:1rem;
}

.corpTel {
	white-space:nowrap;
	font-family:"Oswald";
	font-size:1.35rem;
}

.corpTel a {
	color:#fff;
}

@media screen and (max-width:768px) {
	#footerCorpName {
		font-size:2rem;
	}
}

/**********************************************
	ページトップ
**********************************************/
#pageTop a {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	position:fixed;
	z-index:800;
	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:#555;
}
