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

footer

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

footer {
	color: #333;
	padding: 9.2rem 0;
}

footer a {
	color: #333;
}

footer .nav-wrap {
	width: 100%;
}

footer .info {
	width: 30.8rem;
}

footer .logo {
	line-height: .5;
}

footer .sitemap {
	width: calc( 100% - 33.5rem );
}

footer .sitemap .nav-wrap {
	justify-content: space-between;
	gap: 2rem;
}

footer .sitemap .parent:last-child {
	margin-right: 0;
}

footer .sitemap a {
	display: block;
	margin-bottom: 1.8rem;
}

footer .sitemap .sub-menu {
	margin-left: .5rem;
}

footer .sitemap .sub-menu a {
	font-size: 1.4rem;
	line-height: 1.6;
	padding: 0 0 0 3rem;
	position: relative;
}

footer .sitemap .sub-menu a::before {
	content: '';
	width: 1.6rem;
	height: .2rem;
	background: var( --main-color );
	position: absolute;
	top: .8em;
	left: 0;
}

footer .sitemap .sub-menu .sub-menu {
	margin-left: 2rem;
}

footer .sitemap .sub-menu .sub-menu a {
	padding-left: 2rem;
	position: relative;
}

footer .sitemap .sub-menu .sub-menu a::before {
	content: '';
	width: 10px;
	height: 2px;
	background: rgba( 255, 255, 255, .5 );
	position: absolute;
	top: 14px;
	left: 0;
}

footer .bottom-wrap {
	border-top: solid 1px #ebebeb;
	justify-content: space-between;
	align-items: center;
	margin-top: 6.4rem;
	padding-top: 1rem;
	font-size: 1.4rem;
}

footer .bottom-nav .flex {
	gap: 3.2rem;
}

footer .bottom-nav a {
	color: var( --main-color );
}

footer .copyright {
	font-size: 1.2rem;
	font-weight: 500;
	letter-spacing: .9px;
	color: #999;
}

#sp-fix {
	display: none;
}


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

1200

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

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

	footer {
		letter-spacing: 0;
	}

	footer .info {
		width: 25%;
	}

	footer .sitemap {
		width: 75%;
	}

}


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

1000

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

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

	footer {
		padding: 2rem 0;
	}

	footer .wrap > .nav-wrap {
		flex-direction: column;
	}

	footer .info {
		width: 100%;
		text-align: center;
	}

	footer .sitemap {
		width: 100%;
		margin-top: 4rem;
	}

	footer .bottom-wrap {
		margin-top: 4rem;
	}

}


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

768

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

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

	footer {
		padding: 5rem 0 0;
	}

	footer .wrap {
		padding: 0;
	}

	footer .logo img {
		width: 14.6rem;
	}

	footer .sitemap {
		border-top: solid 1px #ebebeb;
		margin-top: 4.4rem;
	}

	footer .sitemap .nav-wrap {
		flex-direction: column;
		gap: 0;
	}

	footer .sitemap .nav {
		width: 100%;
	}

	footer .sitemap .nav + .nav {
		border-bottom: solid 1px #ebebeb;
	}

	footer .sitemap .nav li {
		border-bottom: solid 1px #ebebeb;
	}

	footer .sitemap .nav a {
		display: block;
		padding: 1.75rem 2rem;
		margin: 0;
		font-size: 1.4rem;
		letter-spacing: 1px;
		background: url( ../img/top/sp/nav-arrow.png );
		background-position: right 2rem center;
		background-size: .7rem;
		background-repeat: no-repeat;
	}

	footer .sitemap .sub-menu {
		display: none;
		margin: 0;
		background: var( --main-light-color );
	}

	footer .sitemap .sub-menu li {
		border: none;
		border-top: solid 1px #ebebeb;
	}

	footer .sitemap .sub-menu a {
		font-size: 1.4rem;
		line-height: 2;
		padding-left: 4rem;
	}

	footer .sitemap .sub-menu a::before {
		width: 1rem;
		top: calc( 50% - 1px );
		left: 2rem;
	}

	footer .sitemap .nav.parent > a {
		background-image: url( ../img/top/sp/plus.png ) !important;
		background-position: right 1.8rem center !important;
		background-size: 1.2rem;
	}

	footer .bottom-wrap {
		padding: 3.4rem 2rem 11.5rem;
		margin-top: 0;
		border-top: none;
		justify-content: center;
		gap: 1rem;
	}

	footer .bottom-nav .flex {
		letter-spacing: 1px;
	}

	footer .copyright {
		line-height: 1.5;
	}

	#sp-fix {
		display: block;
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		opacity: 0;
		visibility: hidden;
		z-index: -1;
		transform: translateY( 50% );
		transition: all .4s;
	}

	#sp-fix a {
		display: block;
		line-height: .5;
	}

	#sp-fix.active {
		opacity: 1;
		visibility: visible;
		z-index: 99;
		transform: none;
	}

}


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

hover

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

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

	footer .sitemap a:hover {
		color: var( --main-color );
	}

	footer .bottom-nav a:hover {
		border-bottom: solid 1px var( --main-color );
	}

	footer .sitemap a[href="#"] {
		pointer-events: none;
	}

}
