/**********************************************
	ナビボタン
**********************************************/
#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:#fff;
	-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:1281px) {
	#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:center;
	align-items:center;
	position:absolute;
	z-index:1000;
	width:100%;
	top:0;
	left:0;
}

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

#logoBlock {
	z-index:1100;
}

#logoBlock img {
	width:26rem;
	height:auto;
	/* filter:drop-shadow(4px 4px 12px rgba(255,255,255,0.5)); */
}

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

@media screen and (max-width:1281px) {
	#header {
		justify-content:flex-start;
		position:fixed;
		background-color:#00244c;
		box-shadow:0px 10px 10px -6px rgba(0,0,0,0.1);
	}

	#headerMenu {
		margin:0;
		padding:0;
		height:64px;
	}

	#logoBlock img {
		padding:2px;
		width:auto;
		height:60px;
		filter:none;
	}

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

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

#mainMenu div a {
	padding:0.5rem 0.75rem;
	white-space:nowrap;
	text-decoration:none;
	font-family:"Noto Sans JP", serif;
	font-size:1.2rem;
	font-weight:500;
	color:#fff;
	-webkit-transition:.3s ease-in-out;
	transition:.3s ease-in-out;
}

#mainMenu div a:hover {
	color:#0c6390;
}

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

#mainMenuIcon a {
	display:block;
	padding:0 !important;
	font-size:2.4rem !important;
	font-weight:500;
}

#mainMenuIcon a:hover {
	color:#0c6390;
}

#mainMenuTel {
	padding:0 0.5rem;
	text-align:center;
	white-space:nowrap;
	color:#fff;
}

#mainMenuTel div:first-child {
	padding:0.1rem 0.25rem;
	font-size:0.9rem;
	font-weight:700;
	color:#111;
	background-color:#ffde00;
	border-radius:50px;
}

#mainMenuTel div:last-child {
	font-size:1.9rem;
	font-weight:600;
	font-family:"Oswald";
}

#contactBlock {
	display:none;
	text-align:center;
}

#contactName {
	margin:2rem 0 1rem 0;
	font-size:1.8rem;
	font-weight:800;
	color:#fff;
}

#contactAddress {
	margin:0.5rem 0.5rem;
	font-size:1.1rem;
	color:#fff;
}

#contactTel {
	margin:0.5rem 0;
	font-size:1.9rem;
	font-weight:600;
	font-family:"Oswald";
	color:#fff;
}

#contactTel a {
	color:#fff;
}

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

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

	#mainMenu div a {
		display:block;
		padding:0.25rem 0;
		width:100%;
		font-size:1.2rem;
		color:#fff;
	}

	#mainMenu div a:hover {
	}

	#mainMenuTel {
		display:none;
	}

	#contactBlock {
		display:block;
	}
}

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

.forSP {
	display:none;
}

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

	.forSP {
		display:inline-block;
	}
}

/**********************************************
	サブフッター
**********************************************/
#subFooter {
	display:flex;
	flex-direction:row;
	flex-wrap:wrap;
	justify-content:center;
	align-items:center;
}

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

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

@media screen and (max-width:1024px) {
	#mapArea {
		width:100%;
	}
}

/**********************************************
	問い合わせフッター
**********************************************/
#contact {
	padding:2rem;
	width:40%;
	height:50vh;
	background:#fff;
}

@media screen and (max-width:1024px) {
	#contact {
		padding:1rem 0;
		width:100%;
		height:auto;
	}
}

#contactTitle {
	position:relative;
	margin-bottom:4rem;
	text-align:center;
	font-size:1.8rem;
	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:1rem;
	text-align:center;
}

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

#contactTelNo a {
	color:#111;
}

#contactMasterName {
	text-align:center;
	font-family:"Oswald";
	font-size:1.5rem;
	font-weight:400;
}

/**********************************************
	フッター
**********************************************/
#footer {
	color:#fff;
	background-color:#00244c;
}

#footerInner {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:2rem;
	margin:0 auto;
	padding:2rem;
	max-width:1280px;
}

.footerInnerItem {
	width:50%;
}

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

#footerCorp {
	margin-bottom:1rem;
	text-align:center;
}

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

#footerCorpName {
	margin-bottom:0.5rem;
	text-align:center;
	font-size:1.4rem;
	font-weight:700;
}

.corpInfo {
	margin-bottom:0.5rem;
	text-align:center;
	white-space:nowrap;
	font-size:0.96rem;
}

.corpTel {
	margin-bottom:1rem;
	text-align:center;
	white-space:nowrap;
	font-family:"Oswald";
	font-size:1.35rem;
}

.corpTel a {
	color:#fff;
}

#footerMenu {
	display:flex;
	flex-direction:row;
	flex-wrap:wrap;
	justify-content:flex-start;
	align-items:stretch;
	gap:1rem 2rem;
	margin-bottom:2rem;
}

#footerMenu div a {
	text-decoration:none;
	font-size:0.9rem;
	color:#fff;
}

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

@media screen and (max-width:1024px) {
	#footer {
		padding-bottom:40px;
	}

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

	.footerInnerItem {
		width:100%;
	}

	#footerMenu {
		display:none;
	}
}

/**********************************************
	ページトップ
**********************************************/
#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:#06463d;
	background-color:#70c2b6;
	border-radius:0.25rem;
}

#pageTop a:hover {
	background-color:#0a7465;
}
