@charset "utf-8";
/* CSS Document -----------------------------

 2021.04.07

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

 * タグの設定

---------------------------------------------- */
a {
	display: inline-block;
	outline:none;
	color: #000;
	cursor: pointer;
	text-decoration: none;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
    transition: all .3s ease;
	user-select: none;
}
input {
	font-family: 'Noto Sans JP','Segoe UI', SegoeUI, "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	line-height: 1.8;
	user-select: none;
}
input[type="submit"],
input[type="button"],
button {
	font-family: 'Noto Sans JP','Segoe UI', SegoeUI, "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	font-weight: 400;
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	box-sizing: border-box;
	cursor: pointer;
	outline: none;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {display: none;}
input[type="button"],
input[type="text"],
input[type="submit"],
input[type="image"],
textarea {-webkit-appearance: none;appearance: none;border-radius: 0;}
select {
	font-family: 'Noto Sans JP','Segoe UI', SegoeUI, "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
    -webkit-appearance: none;
	 -moz-appearance: none;
    appearance: none;
}
select::-ms-expand{font-family: 'Noto Sans JP','Segoe UI', SegoeUI, "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;}
table {width: 100%;}
/*------------------------------------------------*/
html {
	margin: 0;
	padding: 0;
	background: #fff;
	color: #000;
	font-style: normal;
	font-weight: 400;
	font-size: 62.5%;
	line-height: 1.8;
	font-family: 'Noto Sans JP', 'Segoe UI', SegoeUI, "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	word-break: break-all;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body {font-size: 1.6em;line-height: 1.8;}
h1,h2 {font-family: "Segoe UI", SegoeUI, "Noto Sans JP", "sans-serif;";}
h3,h4 {font-family: "Segoe UI", SegoeUI, "Noto Sans JP", "sans-serif;";line-height: 1.4;}
.segoeui{font-family: "Segoe UI", SegoeUI, "Noto Sans JP", "sans-serif;";}
figcaption,li {line-height: 1.8;}
p,table,td,th,dl,dd,dt {font-size: 1.6rem;line-height: 1.8;}
.inner_l {max-width: 1460px;margin: 0 auto;padding-right: 2rem;padding-left: 2rem;}
.inner_m {max-width: 1351px;margin: 0 auto;padding-right: 2rem;padding-left: 2rem;}
.inner_s {max-width: 986px;margin: 0 auto;padding-right: 2rem;padding-left: 2rem;}
.inner_xs {max-width: 870px;margin: 0 auto;padding-right: 2rem;padding-left: 2rem;}
.inner {max-width: 1190px;margin: 0 auto;padding-right: 2rem;padding-left: 2rem;}
.futura {font-family: futura-pt, sans-serif;font-weight: 500;font-style: normal;}
.flexbox {display: flex;flex-wrap: wrap;justify-content: space-between;}
.gray_bg {background: #F9F9F9;}
.title {margin-bottom: 5rem;}
.title h2 {margin-bottom: 5rem;font-size: 5rem;text-align: center;}
.title h2 span {
	margin-right: 4rem;
	padding-right: 4rem;
	border-right: 2px solid #000;
	font-size: 1.06em;
}
.title h2 span img {width: 54px;margin-right: 3rem;vertical-align: sub;}
.title p {font-weight: 500;font-size: 1.8rem;text-align: center;}
.title_common {margin-bottom: 5.6rem;}
.title_common h2 {
	margin-bottom: 2rem;
	font-size: 5rem;
	line-height: 1.4;
	text-align: center;
}
.title_common h2 span {
	display: block;
	margin-top: 1rem;
	font-size: 2.4rem;
	text-align: center;
}
.title_common p {font-size: 1.8rem;text-align: center;}
.pc,.pc2 {display: block;}
.sp,.sp2 {display: none;}
/*埋め込みiframe用の設定*/
.webparts {
	position:relative;
	width:100%;
	padding-top:56.25%;
	margin-bottom: 40px;
	margin: 2rem auto 10rem;
}
.webparts iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}
@media only screen and ( max-width : 1024px ) {
	.title h2 {margin-bottom: 3rem;font-size: 3.4rem;}
	.title h2 span {
		display: block;
		margin: 0 0 2rem;
		padding-right: 0;
		border-right: none;
		text-align: center;
	}
	.title h2 span img {width: 34px;margin-right: 2rem;}
	.title_common h2 {font-size: 4.5rem;}
	.title_common h2 span {font-size: 2rem;}
	.title_common p {font-size: 1.6rem;}
	.pc2 {display: none;}
	.sp2 {display: block;}
}
@media only screen and ( max-width : 768px ) {
	body {font-size: 1.4em;}
	p,table,td,th,dl,dd,dt {font-size: 1.4rem;}
	.title {margin-bottom: 2rem;}
	.title h2 {font-size: 2.4rem;}
	.title h2 span img {width: 24px;margin-right: 1rem;}
	.title p {font-size: 1.6rem;text-align: left;}
	.title_common h2 {margin-bottom: 3.5rem;font-size: 3.5rem;}
	.title_common h2 span {font-size: 1.8rem;}
	.title_common p {text-align: left;}
	.pc {display: none;}
	.sp {display: block;}
}
@media only screen and ( max-width : 500px ) {
	.title h2 span {margin-bottom: 1rem;}
	.title p {font-size: 1.4rem;}
	.title_common h2 {margin-bottom: 2.5rem;font-size: 2.4rem;}
	.title_common h2 span {font-size: 1.4rem;}
	.title_common p {font-size: 1.4rem;}
}
/*------------------------------------------

    HEADER

------------------------------------------*/
header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9;
    width: 100%;
	height: 70px;
	padding: 0 6rem 0 4rem;
	box-shadow: 0 3px 5px rgba(112,112,112,.1);
	background: rgba(255,255,255,.2);
	font-weight: 500;
	transition: .3s;
}
header.change-color {background-color: #fff;}
header .header_box {display: flex;align-items: center;height: 100%;}
header nav {width: 100%;}
header .logo {width: 100%;max-width: 200px;}
header ul {display: flex;justify-content: flex-end;align-items: center;}
header li.accordion {position: relative;margin-left: 10%;}
header li.accordion:nth-of-type(1) {margin-left: 0;}
header li.accordion::before {
    content: "";
    position: absolute;
    right: -30px;
    bottom: 50%;
    z-index: 1;
    transform: translate(0, 50%) rotate(45deg);
    width: 7px;
    height: 7px;
    border-right: 1px solid #565656;
    border-bottom: 1px solid #565656;
    transition: .3s;
}
header li.accordion:hover::before {transform: translate(0, 50%) rotate(-135deg);}
header li.accordion a {
	position: relative;
	height: 70px;
	padding: 3rem 0 0;
	text-align: center;
}
header li.accordion a.underline::after {	
	content: '';
	position: absolute;
	left: 50%;
	bottom: 15px;
	transform: translate(-50%, 0);
	transition: all .3s ease 0s;
	width: 0;
	height: 1px;
	background: #000;
}
header li.accordion:hover a.underline {cursor: pointer;}
header li.accordion:hover a.underline::after {width: 100%;}
header li.accordion ul.contentWrap {
	display: block;
	visibility: hidden;
	opacity: 0;
    position: absolute;
    top: 70px;
	right: 0;
	z-index: 1;
    width: 258px;
	background: #565656;
}
header li.accordion:hover ul.contentWrap {visibility: visible;opacity: 1;}
header li.accordion ul.contentWrap li {
	position: relative;
	height: auto;
	margin-left: 0;
	border-bottom: 1px solid #666;
	text-align: center;
}
header li.accordion ul.contentWrap li:last-child {border-bottom: 0;}
header li.accordion ul.contentWrap li a {
	position: relative;
	width: 100%;
	height: auto;
	padding: 1.5rem 2.5rem;
	color: #fff;
	text-align: left;
}
header li.accordion ul.contentWrap li:hover a {color: #D6A60C;}
header li.accordion:nth-of-type(2) ul.contentWrap li:hover a,
header li.accordion:nth-of-type(3) ul.contentWrap li:nth-of-type(2):hover a {color: #7BB9E7;}
header li.accordion:nth-of-type(4) ul.contentWrap li:hover a {color: #0078BE;}
header li.accordion .switch.ac_sp {display: none;}
header .underline:hover::after {width: 50%;}
@media only screen and ( max-width : 1024px ) {
	header {padding: 0 3rem 0 2rem;}
	header .logo {max-width: 153px;}
	header li.accordion {margin-left: 5%;}
	header li.accordion::before {right: -16px;}
}
@media only screen and ( max-width : 768px ) {
	#js-black-bg {
		position: fixed;
		left: 0;
		top: 0;
		z-index: 6;
		transition: .3s all;
		opacity: 0;
		visibility: hidden;
		width: 0;
		height: 100vh;
		background: #333;
		cursor: pointer;
	}
	#js-black-bg.clicked {opacity: .5;visibility: visible;width: 100%;}
	header {padding: 2rem;background: #fff;}
	header .header_box {justify-content: center;}
	header nav {
		position: fixed;
		top: 70px;
		right: -100%;
		z-index: 8;
		transition: .3s;
		width: 100%;
		max-width: 400px;
		background: #fff;
	}
	header nav.clicked {right: 0;box-shadow: 0 0 1rem rgba(0, 0, 0, .2);}
	header ul {display: block;}
	header li.accordion {margin-left: 0;}
	header li.accordion .ac_pc {display: none;}
	header li.accordion a {
		display: inline-block;
		height: auto;
		padding: 0;
	}
	header li.accordion .switch.ac_sp {display: block;}
	header li.accordion .switch {
		display: block;
		position: relative;
		height: auto;
		padding: 1rem;
		border-bottom: 1px solid #292727;
		text-align: left;
	}
	header li.accordion .switch::before {
		content: "";
		position: absolute;
		right: 10px;
		bottom: 50%;
		transform: translate(0, 50%) rotate(-45deg);
		width: 7px;
		height: 7px;
		border-right: 1px solid #000;
		border-bottom: 1px solid #000;
		transition: .3s;
	}
	header li.accordion .switch.open::before {transform: translate(0, 50%) rotate(45deg);}
	header li.accordion ul.contentWrap {
		display: none;
		position: initial;
		width: 100%;
		padding: 0;
		opacity: 1;
		visibility: initial;
		border-bottom: none;
	}
	header li.accordion:hover ul.contentWrap {position: initial;visibility: initial;opacity: 1;}
	header li.accordion ul.contentWrap li:last-child {border-bottom: 1px solid #ccc;;}
	header li.accordion ul.contentWrap li a {display: inline-block;padding: 1rem;}
	#sp-menu {position: fixed;top: 3rem;right: 2rem;z-index: 10;}
	#sp-menu a {position: relative;width: 2.7rem;height: 1.8rem;}
	#sp-menu span {
		position: absolute;
		display: inline-block;
		left: 0;
		width: 100%;
		height: 3px;
		background: #565656;
		border-radius: 1rem;
		transition: all .4s;
	}
	#sp-menu span:nth-child(1) {top: 0;}
	#sp-menu span:nth-child(2) {top: .7rem;}
	#sp-menu span:nth-child(3) {bottom: 0;}
	#sp-menu span:nth-child(2)::after {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		transition: all .4s;
		width: 100%;
		height: 3px;
		background: #565656;
		border-radius: 1rem;
	}
	#sp-menu.clicked span:nth-child(2) {transform: rotate(-45deg);}
	#sp-menu.clicked span:nth-child(2)::after {transform: rotate(90deg);}
	#sp-menu.clicked span:nth-child(1) {transform: translateY(20px) scale(0);}
	#sp-menu.clicked span:nth-child(3) {transform: translateY(-20px) scale(0);}
}
@media only screen and ( max-width : 500px ) {
	header nav {width: 70%;}
}
/*------------------------------------------

	CONTACT

------------------------------------------*/
#contact-bt {padding: 6rem 0;}
#contact-bt p a {text-decoration: underline;}
#contact-bt .btnwrap {
	position: relative;
	z-index: 1;
	max-width: 231px;
	margin: 0 auto;
}
#contact-bt a.link_btn {
	display: block;
	padding: 1.5rem 0;
	background: #3E3E3E;
	color: #fff;
	font-size: 2rem;
	text-align: center;
	transition: .3s cubic-bezier(.4, 0, .2, 1);
}
#contact-bt a.link_btn:hover {background: transparent;}
#contact-bt a.link_btn::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: linear-gradient(-90deg, #154F9E, #002163);
}
#contact-bt a.link_btn img {width: 44px;margin-right: 8px;vertical-align: sub;}
@media only screen and ( max-width : 500px ) {
	#contact-bt {padding: 4rem 0;}
	#contact-bt a.link_btn {font-size: 1.8rem;}
}
/*------------------------------------------

    FOOTER

------------------------------------------*/
footer {
	position: relative;
	padding: 1.5rem 0 2.6rem;
	border-top: 1.8rem solid #565656;
	background: #565656;
}
footer ul {
	display: flex;
	justify-content: space-between;
	margin-bottom: 4rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #fff;
}
footer ul li a {color: #fff;font-weight: 500;font-size: 1.4rem;}
footer .flexbox {flex-direction: row-reverse;}
footer .iconbox {display: flex;}
footer .iconbox a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	text-align: center;
}
footer .iconbox a {border: 1px solid #fff;}
footer .iconbox a:nth-of-type(2) {margin: 0 2.5rem;}
footer .iconbox a:hover {background: #fff;}
footer .iconbox a svg {fill: #fff;transition: .3s;}
footer .iconbox a:nth-of-type(1) svg {width: 25px;margin-left: 1px;}
footer .iconbox a:nth-of-type(2) svg {width: 20px;}
footer .iconbox a:nth-of-type(3) svg {width: 19px;}
footer .iconbox a:hover svg {fill: #565656;}
footer .incbox {display: flex;align-items: center;}
footer .incbox figure {margin-right: 2rem;}
footer .incbox small {display: block;color: #fff;font-size: 1rem;}
@media only screen and (max-width: 767px) {
	footer ul {
		flex-wrap: wrap;
		justify-content: center;
		margin-bottom: 4rem;
		padding-bottom: 0;
	}
	footer ul li {width: 34%;margin-bottom: 3rem;}
	footer .flexbox {justify-content: center;}
	footer .iconbox {justify-content: center;width: 100%;margin-bottom: 5rem;}
	footer .incbox {justify-content: space-between;width: 100%;}
}
@media only screen and ( max-width : 500px ) {
	footer {padding: 1.5rem 0;}
	footer ul {margin-bottom: 3rem;}
	footer ul li {width: 49%;margin-bottom: 1.5rem;font-size: 1.2rem;}
	footer .iconbox a {width: 35px;height: 35px;}
	footer .iconbox a:nth-of-type(1) svg {width: 20px;}
	footer .iconbox a:nth-of-type(2) svg {width: 15px;}
	footer .iconbox a:nth-of-type(3) svg {width: 14px;}
}
/*------------------------------------------

    Not Found 404

------------------------------------------*/
#notfound {padding: 20rem 0 10rem;}
#notfound h2 {margin-bottom: 5rem;text-align: center;}
#notfound h2 span {
	display: block;
	font-weight: 700;
	font-size: 2.5em;
	text-align: center;
}
#notfound p {margin-bottom: 4rem;text-align: center;}
#notfound a {
	display: block;
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 30rem;
	margin: 0 auto;
	padding: 1.5rem;
	border: 1px solid #0078BE;
	background: #0078BE;
	color: #fff;
	font-size: 1.6rem;
	text-align: center;
}
#notfound a:hover {color: #0078BE;}
#notfound a::after{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	transform-origin: right top;
	transform: scale(0, 1);
	transition: transform .3s;
	z-index: -5;
	background: #fff;
	color: #0078BE;
}
#notfound a:hover::after {transform-origin: left top;transform: scale(1, 1);}
#notfound a span {display: block;position: relative;text-align: center;}
@media only screen and ( max-width : 768px ) {
	#notfound {padding-top: 13rem;}
}
/*------------------------------------------

　   BACK TOP

------------------------------------------*/
.wrapper {position: relative;}
p.page_top {right: 10px;bottom: 10px;z-index: 5;}
p.page_top a {
	display: inline-block;
	vertical-align: middle;
	width: 40px;
	height: 40px;
	position: relative;
	border: 1px solid #565656;
	background: #fff;
}
p.page_top a::before {
	content: "";
	position: absolute;
    left: 50%;
	bottom: 50%;
	transform: translate(-50%, 50%);
	width: 0;
	height: 0;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 15px solid #565656;
}