/*
----------------------------------------

footer

----------------------------------------
*/

footer {
	background: #001d31;
	color: #fff;
}

footer .footer-wrap {
	align-items: center;
}

footer a {
	color: #fff;
}

footer .footer-wrap {
	padding: 56px 0 15px;
}

footer .logo {
	line-height: .5;
	margin-right: auto;
	margin-bottom: 4px;
}

footer .nav-wrap {
	padding: 20px 0;
}

footer .btn-01 {
	padding-top: 5px;
}

footer .sitemap-ttl {
	width: 100%;
	margin-bottom: 32px;
	align-items: center;
}

footer .sitemap-ttl::after {
	content: '';
	flex: 1;
	height: 1px;
	background: #2f3b50;
	margin-left: 15px;
}

footer .sitemap-ttl span {
	letter-spacing: 1.6px;
}

footer #sitemap {
	width: 990px;
	max-width: 100%;
	margin: 0 auto;
	justify-content: space-between;
}

footer #sitemap a {
	display: block;
}

footer #sitemap li {
	line-height: 1.6;
	letter-spacing: 1px;
	margin-bottom: 24.5px;
}

footer #sitemap .sub-menu li {
	position: relative;
	padding-left: 20px;
}

footer #sitemap .sub-menu li::before {
	content: '';
	width: 12px;
	height: 2px;
	background: #0182ce;
	position: absolute;
	top: 12px;
	left: 2px;
}

.bottom-wrap .flex {
	width: 100%;
	align-items: center;
	border-top: solid 1px #2f3b50;
	padding: 10px 0 55px;
	font-size: 1.4rem;
}

.bottom-wrap .pp {
	letter-spacing: 1px;
}

footer .copyright {
	font-size: 1.2rem;
	letter-spacing: .6px;
	margin-left: auto;
	padding-top: 5px;
}

@media screen and ( min-width: 769px ) {

	footer #sitemap .sub-menu {
		display: block !important;
	}

}

/* 1000 */

@media screen and ( max-width: 1000px ) {

	footer .footer-wrap {
		padding: 40px 0 20px;
		justify-content: center;
	}

}


/* 768 */

@media screen and ( max-width: 768px ) {

	footer > .wrap {
		padding: 0;
	}

	footer .footer-wrap {
		padding: 40px 20px 0;
	}

	footer .btn-set .note {
		line-height: 1.4;
		letter-spacing: .4px;
	}

	footer .sitemap-ttl {
		padding: 0 2rem;
		margin-bottom: 1rem;
		font-size: 1.8rem;
	}

	footer .sitemap-ttl::after {
		display: none;
	}

	footer .sitemap-ttl span {
		letter-spacing: 1px;
	}

	footer #sitemap {
		flex-direction: column;
		border-top: solid 1px #2f3b50;
	}

	footer #sitemap li {
		margin-bottom: 0;
	}

	footer #sitemap > ul > li {
		border-bottom: solid 1px #2f3b50;
	}

	footer #sitemap a {
		font-size: 1.6rem;
		line-height: 1.5;
		padding: 17.5px 40px 17.5px 25px;
		background: url( ../img/common/2x/arrow-bl.png ) right 20px center / 10px no-repeat;
	}

	footer #sitemap .root a {
		padding-left: 0;
	}

	footer #sitemap .sub-menu li.root::before {
		display: none;
	}

	footer #sitemap > ul > li.parent a {
		background: none;
		position: relative;
	}

	footer #sitemap > ul > li.parent a.active {
		color: #fff;
		background: #0075c2;
	}

	footer #sitemap > ul > li.parent a.active::after {
		display: none;
	}

	footer #sitemap > ul > li.parent a::before,
	footer #sitemap > ul > li.parent a::after {
		content: '';
		width: 20px;
		height: 2px;
		background: #0075c2;
		position: absolute;
		right: 15px;
		top: calc( 50% - 1px );
	}

	footer #sitemap > ul > li.parent a.active::before,
	footer #sitemap > ul > li.parent a.active::after {
		background: #fff;
	}

	footer #sitemap > ul > li.parent a::after {
		transform: rotate( 90deg );
	}

	footer #sitemap > ul > li.sub-menu {
		display: none;
		background: #000;
	}

	footer #sitemap .sub-menu li {
		border-top: solid 1px #2f3b50;
		padding-left: 36px;
	}

	footer #sitemap .sub-menu li::before {
		top: 29px;
		left: 40px;
	}

	.bottom-wrap {
		padding-bottom: 5rem;
	}

	.bottom-wrap .flex {
		justify-content: center;
		align-items: center;
		border: none;
		padding: 0;
	}

	.bottom-wrap .logo {
		margin: 27px 0;
	}

	.bottom-wrap .logo img {
		height: 48px;
	}

	footer .copyright {
		margin: 0;
		font-size: 1rem;
	}

}

/* hover */

@media screen and ( min-width: 769px ) {

	footer .logo a:hover {
		opacity: .75;
	}

	footer #sitemap a:hover,
	footer .bottom-wrap a:hover {
		opacity: .75;
	}

}


/*
----------------------------------------

sp-fix

----------------------------------------
*/

footer .contact-btn a {
	border: solid 1px rgba( 255, 255, 255, .2 );
	background: url( ../img/common/svg/icon-contact-wh.svg ) left calc( 50% - 4.3rem ) center no-repeat;
}

#sp-fix {
	position: fixed;
	right: 0;
	bottom: -40px;
	left: 0;
	background: #F5F5F5;
	padding: 10px;
	opacity: 0;
	visibility: hidden;
	z-index: -1;
	transition: all .2s;
}

#sp-fix .btn {
	flex: 1;
}

#sp-fix .btn + .btn {
	margin-left: 10px;
}

#sp-fix .btn a {
	display: block;
	background: #001d31;
	color: #fff;
	letter-spacing: .5px;
	padding: 11px 10px;
}

#sp-fix .btn a::before {
	content: '';
	width: 18px;
	height: 18px;
	display: inline-block;
	vertical-align: middle;
	margin: 3px;
}

#sp-fix .tel a::before {
	background: url( ../img/common/svg/icon-phone-wh.svg ) left center no-repeat;
}

#sp-fix .mail a {
	background: var( --main-color );
}

#sp-fix .mail a::before {
	background: url( ../img/common/svg/icon-contact-wh.svg ) left center no-repeat;
	margin-right: 5px;
}


/* 768 */

@media screen and ( max-width: 768px ) {

	#sp-fix.active {
		bottom: 0;
		opacity: 1;
		visibility: visible;
		z-index: 999;
	}

}


/*
----------------------------------------
hover
----------------------------------------
*/

@media screen and ( min-width: 769px ) {
}
