/**********************************************
	ナビボタン
**********************************************/
#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:#00425d;
	-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.75rem;
		right:0.75rem;
		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:slideInTop 0.3s cubic-bezier(0.33,1,1,1) 1 forwards;
}

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

	100% {
		opacity:1;
	}
}

/**********************************************
	ヘッダー
**********************************************/
#header {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	position:fixed;
	z-index:1000;
	width:calc(100% - 3rem);
	top:1.5rem;
	left:1.5rem;
	background-color:#fff;
}

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

#logoBlock {
	z-index:1100;
}

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

#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;
		width:calc(100% - 1.5rem);
		top:0.75rem;
		left:0.75rem;
		background-color:#fff;
	}

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

	#logoBlock {
		margin-left:0.5rem;
	}

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

	#viewMenu {
		display:none;
		position:fixed;
		overflow-y:auto;
		width:calc(100% - 1.5rem);
		top:0.75rem;
		left:0.75rem;
		right:0.75rem;
		bottom:0.75rem;
		background-color:#fff;
	}
}

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

#mainMenu div a {
	padding:0.5rem 0.75rem;
	white-space:nowrap;
	text-decoration:none;
	font-size:1rem;
	font-weight:700;
	color:#00425d;
	border-bottom:4px solid #fff;
	-webkit-transition:.1s ease-in-out;
	transition:.1s ease-in-out;
}

#mainMenu div a:hover {
	color:#008fc9;
	border-bottom:4px solid #00c905;
}

#contactMenu {
	margin-left:1rem;
	padding:0.5rem;
	background-color:#00c905;
}

#contactMenu a {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:0.75rem;
	padding:0.25rem 1.75rem !important;
	color:#fff !important;
	border-bottom:none !important;
}

#contactMenu:hover {
	color:#fff;
	background-color:#008603;
	border-bottom:none !important;
}

#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;
	color:#00425d;
}

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

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

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

#contactTel a {
	color:#00425d !important;
}

@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.5rem 2rem;
		width:calc(100% - 4rem);
	}

	#mainMenu div a {
		display:block;
		padding:0.25rem 0;
		width:100%;
		text-align:center;
		font-size:1.2rem;
		color:#00425d;
		border:none;
	}

	#mainMenu div a:hover {
		color:#008fc9;
		border:none;
	}

	#contactMenu {
		margin-top:1rem;
		padding:0 !important;
	}

	#contactMenu a {
		padding:0.5rem 0 !important;
	}

	#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;
	}
}

/**********************************************
	地図
**********************************************/
#mapArea {
	width:100%;
	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 {
	background:#fff;
}

#contactHeader {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	padding:4rem 0 1rem 0;
}

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

#contactTitle {
	font-size:2.5rem;
	font-weight:200;
}

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

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

.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:#00425d;
	background-color:#fff;
}

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

.footerInnerItem {
	padding:6rem 0;
	width:calc(50% - 0.5rem);
}

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

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

#footerCorp img {
	width:25rem;
	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:#00425d;
}

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

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

#footerMenu div a:hover {
	color:#008fc9;
}

#policy {
	margin-top:4rem;
	text-align:right;
}

#policy a {
	text-decoration:none;
	font-size:0.8rem;
	color:#00425d;
}

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

	.footerInnerItem {
		padding:1rem 0;
		width:100%;
	}

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

	#footerMenu {
		justify-content:center;
		gap:1rem;
		margin-bottom:1rem;
	}

	#policy {
		margin-top:0;
		text-align:center;
	}

	#policy a {
		font-size:0.9rem;
	}
}

/**********************************************
	ページトップ
**********************************************/
#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:#fff;
	background-color:#00425d;
}

#pageTop a:hover {
	background-color:#008fc9;
}
