
/***********************************************************************

------------------------------------------------------------------------
body
***********************************************************************/


body.scroll-none {
	overflow: hidden;
}

/***********************************************************************

------------------------------------------------------------------------
header
***********************************************************************/

header {
	padding-top: 40px;
}
header .header-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}
header .header-top .logo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 40px;
}
header .header-top .logo a {
	background: url(../img/common/logo_mark.png) no-repeat;
	padding-left: 70px;
	background-size: 60px;
}
header .header-top .logo small {
	color: #0487D9;
}
@media screen and (max-width:640px) {
	header {
		padding-top: 15px;
	}
	header .header-top .logo {
		width: 85%;
	}
	header .header-top .logo a {
		background-size: contain;
		padding-left: 50px;
	}
	header .header-top .logo small {
		font-size: 14px;
	}
}

/* nav
========================================== */

.nav-global {}
.nav-global > ul {
	display: flex;
	justify-content: space-between;
}
.nav-global > ul > li {}
.nav-global > ul > li button {
	background: none;
	font-size: 16px;
	font-weight: bold;
	position: relative;
	padding: 1em 3em 1em 1em;
	cursor: pointer;
	color: #000;
}
.nav-global > ul > li button.active {
	background: #0487D9;
	color: #fff;
}
.nav-global > ul > li button.active::after {
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
}
.nav-global > ul > li button:hover ,
.nav-global > ul > li > a:hover {
	background: #71D2F8;
}
.nav-global > ul > li button::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 2px solid #0487D9;
	border-bottom: 2px solid #0487D9;
	display: block;
	transform: rotate(45deg);
	position: absolute;
	right: 1em;
	top: 50%;
	margin-top: -8px;
}
.nav-global > ul > li button + ul {
	position: absolute;
	z-index: 1002;
	background: #0487D9;
	padding: 1em;
	width: 370px;
}
.nav-global > ul > li button + ul li + li {
	margin-top: 1em;
}
.nav-global > ul > li button + ul li a {
	background: #fff url(../img/common/ic_arr_r_bl.svg) no-repeat center right 2em;
	font-size: 16px;
	font-weight: bold;
	padding: 1em 1em 1em 1em;
	display: block;
	width: 340px;
	border-radius: 5px;
}
.nav-global > ul > li > a {
	font-size: 16px;
	font-weight: bold;
	padding: 1em 1em 1em 1em;
	display: block;
	text-align: center;
}
@media screen and (max-width:640px) {
	.nav-global > ul {
		display: none;
	}
}

/* nav > cover
========================================== */

.nav-cover {
	background: rgba(0, 0, 0, 0.4);
	display: block;
	width: 100%;
	position: fixed;
	bottom: top;
	left: 0;
	height: 0%;
	z-index: 1001;
	cursor: pointer;
}
.nav-cover.active {
	height: 100%;
}

/* sp > nav 
========================================== */

.sp-nav-btn {
	width: 50px;
	height: 50px;
	display: block;
	background: #0476D9 url(../img/common/ic_sp_nav.svg) no-repeat center;
	cursor: pointer;
	position: fixed;
	right: 2%;
	top: 2%;
	border-radius: 5px;
	z-index: 100001;
}
.sp-nav-btn.sp-nav-btn__active {
	background: #002c53 url(../img/common/ic_sp_nav_close.svg) no-repeat center;
}
.sp-nav-closebtn {
	background: #002c53;
	text-align: center;
	color: #fff;
	display: block;
	padding: 1em;
	position: fixed;
	bottom: 0;
	width: 100%;
	left: 0;
	cursor: pointer;
}
.sp-nav-closebtn span {
	background: url(../img/common/ic_sp_nav_close.svg) no-repeat left 5px;	
	padding-left: 2em;
}

/* sp > nav > wrap
========================================== */

.sp-nav-wrap {
	position: fixed;
	height: 100vh;
	width: 100%;
	z-index: 100000;
	top: 0;
	display: none;
}
.sp-nav-wrap__logo {
	background: #fff;
	padding: 15px;
}
.sp-nav-wrap__logo img {
	width: 75%;
}
.sp-nav-wrap__logo small {
	font-size: 14px;
	color: #0487D9;
	display: block;
}
.sp-nav-wrap .sp-nav-wrap__main {
	background: #DFEDFA;
	padding: 15px;
	height: 100vh;
}

.sp-nav-wrap .sp-nav-wrap__main > ul {
	overflow-y:scroll;
	height: 70vh;
	border-radius: 5px;
}
.sp-nav-wrap__main > ul li button {
	display: block;
	color: #000;
	padding: 1em;
	font-weight: 500;
	font-size: 18px;
	width: 100%;
	text-align: left;
	background: #fff url(../img/common/ic_toggle_plus.svg) no-repeat center right 1em;
}
.sp-nav-wrap__main > ul li.js_toggle_open {
	background: #CADEEA;
	padding-bottom: 30px;
}
.sp-nav-wrap__main > ul li.js_toggle_open button {
	background: #CADEEA url(../img/common/ic_toggle_min.svg) no-repeat center right 1em;
	color: #000;
}
.sp-nav-wrap__main > ul li {
	border-top: 1px solid #ddd;
}
.sp-nav-wrap__main > ul li a {
	display: block;
	background: #fff url(../img/common/ic_arr_r_bl.svg) no-repeat center right 1.5em;
	padding: 1em 2.5em 1em 1em;
}
.sp-nav-wrap__main > ul li > ul {
	width: 90%;
	margin: 10px auto 0;
	border-radius: 5px;
	overflow: hidden;
}
.toggle__hide {
	display: none;
}


/* nav > breadcrumb
========================================== */

ul.nav-breadcrumb {
	max-width: 1230px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
	display: flex;
	gap: 50px;
	margin-top: 20px;
}
@media screen and (max-width:640px) {
	ul.nav-breadcrumb {
		display: none;
	}
}
ul.nav-breadcrumb li + li {
	position: relative;
}
ul.nav-breadcrumb li + li::after {
	content: "";
	width: 6px;
	height: 6px;
	border-right: 2px solid #000;
	border-top: 2px solid #000;
	display: block;
	transform: rotate(45deg);
	position: absolute;
	left:-30px;
	top: 50%;
	margin-top: -3px;

}
ul.nav-breadcrumb li a {
	text-decoration: underline;
}

/* nav > side
========================================== */

ul.nav-side {}
ul.nav-side li {
}
ul.nav-side li a {
	padding: 0.5em 0 0.5em 1.5em;
	position: relative;
	display: block;
}
ul.nav-side li a::after {
	content: "";
	width: 12px;
	height: 12px;
	display: block;
	border-radius: 12px;
	background: #E9F4FF;
	position: absolute;
	left: 0;
	top: 0;
	margin-top: 18px;
}
ul.nav-side li a:hover ,
ul.nav-side li.current a {
	color: #0476D9;
}
ul.nav-side li a:hover::after,
ul.nav-side li.current a::after {
	background: #0476D9;
}
ul.nav-side li + li {
	margin-top: 10px;
}
ul.nav-side li > ul {
	padding-left: 2em;
}
ul.nav-side li > ul li + li {
	margin-top: 0;
}
ul.nav-side li > ul li a {}

/***********************************************************************

------------------------------------------------------------------------
footer
***********************************************************************/

footer {}

footer .footer-link {
	position: relative;
	background: #EFEFEF;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.footer-logo {
	background: url(../img/common/logo_mark.png) no-repeat;
	background-size: 60px;
	padding-left: 70px;
}
@media screen and (max-width:640px) {
	footer .footer-logo {
		text-align: center;
		background-size: contain;
	}
}

/* コンタクト
========================================== */

.footer-contact-wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 2em 0;
}
.footer-contact {
	background: #fff;
	padding: 2em;
	width: calc(100% - 530px);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}
.footer-contact p {
	font-size: 16px;
	display: block;
	width: 100%;
	margin-top: 20px;
}

@media screen and (max-width:940px) {
	.footer-contact-wrap {
		display: block;
	}
	.footer-contact {
		width: 100%;
		margin-top: 30px;
	}
}
@media screen and (max-width:640px) {
	.footer-contact-wrap {
		display: block;
	}
	.footer-contact {
		width: 100%;
		display: block;
		margin-top: 30px;
	}
	.footer-logo figure {
		text-align: center;
	}
	.footer-logo span {
		color: #0476D9;
		font-size: 14px;
	}
	.footer-contact-wrap {
		display: block;
	}
}
.contact-btn__wrap {
	display: flex;
	width: 100%;
	margin-top: 20px;
	gap: 30px;
	flex-wrap: wrap;
}
.contact-btn__itme small {
	display: block;
	font-size: 14px;
	text-align: center;
	margin-top: 10px;
}
@media screen and (max-width:640px) {
	.contact-btn__wrap {
		display: block;
	}
	.contact-btn__itme:nth-of-type(2) {
		margin-top: 20px;
		padding-top: 20px;
		border-top: 1px dotted #ccc;
	}
}

/* リンク一覧
========================================== */

footer .footer-link {
	padding: 3em 0 5em 0;
}

footer .footer-link dl.footer-link-item dt {
	font-weight: bold;
}
footer .footer-link dl.footer-link-item dt.ic-center {
	background: url(../img/common/ic_center_bl.svg) no-repeat left;
	padding-left: 40px;
}
footer .footer-link dl.footer-link-item dt.ic-book {
	background: url(../img/common/ic_book_bl.svg) no-repeat left;
	padding-left: 40px;
}
footer .footer-link dl.footer-link-item dd {
	margin-top: 25px;
}
.footer-link-item ul li + li {
	margin-top: 1em;
}
.footer-link-item ul li a {
	font-size: 18px;
}

.l-footer-sp-nav {
	padding-bottom: 20px;
}
ul.sp-nav__col02 {
	display: flex;
	justify-content: space-between;
}
ul.sp-nav__col02 li {
	width: 48%;
}
ul.sp-nav__col02 li a {
	display: block;
	padding: 1em 0.5em;
	background: #fff;
	text-align: center;
	font-size: 14px;
}

/* リンク一覧（下部）
========================================== */

.footer-link-btm {
	border-top: 1px solid #000;
	margin-top: 25px;
	padding-top: 25px;
	padding-bottom: 3em;
}
.footer-link-btm ul {
	display: flex;
	gap: 0 30px;
}

/* ページトップ
========================================== */

.l-pagetop {
	width: 250px;
	padding: 1em;
	background: #0476D9 url(../img/common/ic_arr_t_wh.svg)no-repeat center right 1em;
	position: fixed;
	bottom: 0;
	right: 1%;
	border-radius: 5px 5px 0 0;
	cursor: pointer;
}
.l-pagetop em {
	color: #fff;
}
@media screen and (max-width:640px) {
	.l-pagetop {
		width: 50px;
		height: 50px;
		background: #0476D9 url(../img/common/ic_arr_t_wh.svg) no-repeat center center;
	}
	.l-pagetop em {
		display: none;
	}
}

/* コピーライト
========================================== */

.copyright {
	background: #0476D9;
	color: #fff;
	font-size: 12px;
	padding-top: 25px;
	padding-bottom: 25px;
}
@media screen and (max-width:640px) {
	.copyright * {
		font-size: 10px;
		text-align: center;
	}
}