/*ボタンコンポーネント*/
.btn {
	display: inline-block;
	color: #fff;
	font-size: 17px;
	background-color: #CA9F20;
	padding: 20px 100px;
	transition: all .3s;
}
.btn:hover {
	opacity: 0.8;
}
#topReturn{
	position: fixed;
	width: 50px;
	height: 50px;
	right: 20px;
	bottom: 20px;
	background: url("../img/common/top_returnBtn.png") center / 100% no-repeat;
	z-index: 100;
}
#topReturn:hover{
	cursor: pointer;
}

/*リンクボタンコンポーネント*/
.btnLink {
	display: block;
	color: #fff;
	font-size: 22px;
	padding: 70px 60px;
	background-color: rgba(0, 34, 88, 0.9);
	outline: 1px solid rgba(255, 255, 255, 0.9);
	outline-offset: -11px;
	text-align: center;
	transition: all .3s;
}
.btnLink:hover {
	opacity: 0.7;
}
.btnLinkItem {
	width: 500px;
	max-width: 100%;
}
.btnLinkItems {
	display: flex;
	justify-content: center;
	margin-top: 43px;
	padding-left: 35px;
	padding-right: 35px;
}
.btnLinkItem:not(:first-child) {
	margin-left: 50px;
}

/*共通セクションタイトル*/
.cntTitle {
	color: #013281;
	text-align: center;
	position: relative;
}
.cntTitle::before {
	content: "";
	position: absolute;
	width: 39px;
	height: 39px;
	background-color: #fff;
	top: -69px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
}
.cntTitle::after {
	content: "";
	position: absolute;
	width: 55px;
	height: 55px;
	background: transparent linear-gradient(90deg, #1557C2 0%, #013281 100%);
	top: -77px;
	left: 50%;
	transform: translateX(-50%);
}
.cntTitle-ja {
	font-size: 35px;
	display: block;
}
.cntTitle-en {
	font-weight: 500;
	display: block;
	font-size: 16px;
	margin-top: 20px;
	text-transform: uppercase;
}
/*ヘッダー*/
#header {
	display: flex;
	/*align-items: center;*/

	height: 100px;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
}
.headerCntBox {
	/*width: 1313px;*/
	/*max-width: 100%;*/
	/*margin: 0 auto;*/
	margin-top: 10px;
	display: flex;
	/*align-items: center;*/
	height: inherit;
	padding-right: 16px;
	/*padding-left: 16px;*/
	padding-left: 30px;
	justify-content: left;
	flex-flow: column;
}
#headerLogo {
	/*width: 198px;
	height: 62px;*/
	padding-left: 2px;
	height: inherit;
}
#headerLogo a {
	display: flex;
	align-items: center;
	transition: all .3s;
	height: inherit;
}
#headerLogo a:hover {
	opacity: .8;
}
#headerLogo a img {
	display: block;
	/*width: 198px;*/
	height: 80px;
}
#headerNav-pc {
	/*margin-left: auto;*/
	height: inherit;
}
#headerNav-pc ul {
	/*display: flex;*/
	height: inherit;
	margin-top: 20px;
}
#headerNav-pc ul li {
	/*line-height: 77px;*/
	line-height: 45px;
}
/*#headerNav-pc ul li:not(:first-child) {
	margin-left: 50px;
}*/
@media screen and (min-width:768px) and (max-width: 870px) {
	/*#headerNav-pc ul li:not(:first-child) {
		margin-left: 20px;
	}*/
}
#headerNav-pc ul li a {
	color: #002258;
	/*display: block;*/
	transition: all .3s;
	position: relative;
	padding-bottom: 1px;
}
#headerNav-pc ul li a::after{
    content: '';
    background: #002258;
    width: 0;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0;
    transition: all .3s;
}
#headerNav-pc ul li a:hover::after{
	width: 100%;
}
#headerNav-pc ul li a:hover {
	opacity: .8;
}

/*下層メインヴィジュアル*/
#subMainVisual {
	width: 100%;
	height: 567px;
	position: relative;
}
#subMainVisual #copyText {
	font-size: 40px;
	position: absolute;
	left: 0;
	bottom: 56px;
	letter-spacing: 0.04em;
}
#subMainVisual #copyText p {
	background-color: rgba(0, 34, 88, 0.9);
	line-height: 1.7;
	padding: 5px 19px 6px 39px;
}
#subMainVisual #copyText p:first-child {
	color: #F5C508;
	display: inline;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
#subMainVisual #copyText p:nth-child(2) {
	color: #fff;
	margin-top: 4px;
	display: block;
	padding-bottom: 5px;
	padding-right: 38px;
}

/*共通テキストボックス*/
.topTextBox {
	margin-top: 36px;
	background-color: #06828F;
}
.aboutTextBox {
	background-color: #1557C2;
}
.userTextBox {
	background-color: #06828F;
}
#textBox p {
	font-size: 35px;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: #fff;
	padding: 41px 0;
	text-align: center;
}

/*縦線*/
.line {
	position: relative;
}
.line::before {
	content: "";
	position: absolute;
	width: 1px;
	height: 80px;
	background-color: #013281;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}
.topLine {
	margin-top: 31px;
}
.aboutLine {
	margin-top: 43px;
}
.subAboutLine {
	margin-top: 80px;
}

/*バナー*/
#contactBnr {
	width: 90%;
	max-width: 775px;
	position: relative;
	margin: 0 auto;
}
.topBnrWrapper {
	text-align: center;
	margin-top: 147px;
	position: relative;
	padding-left: 35px;
	padding-right: 35px;
}
.topBnrWrapper::before {
	content: "";
	position: absolute;
	width: 1px;
	height: 80px;
	top: -117px;
	left: 50%;
	transform: translateX(-50%);
	background-color: #013281;
}

/*フッター*/
#footerWrapper {
	margin-top: -82px;
	padding-top: 160px;
	background-color: #ECEFF4;
}
#footer {
	background-color: #002258;
	color: #fff;
	padding-top: 20px;
	padding-bottom: 20px;
}
#footerCntWrapper {
	padding-bottom: 26px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.5);
	padding-left: 35px;
	padding-right: 35px;
}
#footerCnt {
	width: 1095px;
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;
}
#footerLogo {
	margin-left: -5px;
}
#footerLogo a {
	display: block;
}
#footerLogo img {
	width: 298px;
	height: 93px;
}
#footerName {
	font-size: 17px;
	margin-top: 17px;
}
#footerAddress {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.666666;
	margin-top: 13px;
}
#footerNav {
	margin-left: auto;
	margin-top: 80px;
}
@media screen and (max-width: 1101px) {
	#footerNav {
		display: none;
	}
}
.footerNavList {
	display: flex;
}
.footerNavList:not(:first-child) li:first-child {
	margin-left: 95px;
}
.footerNavList:not(:first-child) {
	margin-top: 25px;
}
.footerNavList li:not(:first-child) {
	margin-left: 50px;
}
.footerNavList:first-child li:nth-child(2) {
	/*width: 159px;*/
	width: 163px;
	text-align: left;
}
.footerNavList:first-child li:nth-child(3) {
	width: 135px;
	text-align: left;
}
.footerNavList:not(:first-child) li:first-child {
	/*width: 159px;*/
	width: 163px;
	text-align: left;
}
.footerNavList:not(:first-child) li:nth-child(2) {
	width: 135px;
	text-align: left;
}
.footerNavList li a {
	font-size: 15px;
	color: #fff;
	position: relative;
	padding-bottom: 1px;
}
.footerNavList li a::after{
	content: '';
	background: #fff;
	width: 0;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
	transition: all .3s;
}
.footerNavList li a:hover::after{
	width: 100%;
}
#footerBottom {
	width: 1090px;
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	margin-top: 17px;
}
.footerItems-sp {
	display: none;
}
.footerSns {
	display: flex;
}
.footerSns li a{
	color: #fff;
	font-size: 2.5rem;
}
.footerSns li:not(:first-child) {
	margin-left: 12px;
}
#footerBottom small {
	font-size: 14px;
	margin-right: -12px;
	margin-left: auto;
}

/*サービスセクション*/
#service {
	padding-top: 156px;
	padding-bottom: 81px;
	background-color: #ECEFF4;
	margin-top: 67px;
}
.uservoiceService {
	margin-top: 0 !important;
}
#service .cntBox {
	width: 930px;
	max-width: 100%;
	margin: 39px auto 0;
	padding-left: 25px;
	padding-right: 25px;
}
#service .cntText {
	font-weight: 500;
	font-size: 16px;
	line-height: 1.875;
	color: #013281;
	text-align: center;
	letter-spacing: 0.02em;
}
#service .cntItems {
	display: flex;
	margin-top: 47px;
	justify-content: center;
}
#service .cntItems .cntItem{
    width: 210px;
    text-align: center;
    margin: 0 auto;
}
#service .cntImg {
	width: 90%;
	max-width: 100%;
	position: relative;
	margin: 0 auto;
}
#service .cntItem p {
	font-size: 18px;
	color: #013281;
	line-height: 1.4;
	text-align: center;	
}
#service .cntItem:first-child p,
#service .cntItem:nth-child(2) p {
	margin-top: 26px;
}
#service .cntItem:nth-child(3) p,
#service .cntItem:last-child p {
	margin-top: 13px;
}
@media screen and (min-width: 768px) and (max-width: 900px) {
	#service .cntItem:nth-child(3) p,
	#service .cntItem:last-child p {
	width: 170px;
	max-width: 100%;
}
}
#service .cntImg::before {
	content: "";
	display: block;
	padding-top: 100%;
}
#service .cntImg img {
	position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  object-position: top;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
#service .cntBtn {
	margin-top: 60px;
	text-align: center;
}
.aboutService {
	margin-top: 0 !important;
}

#headerNav {
	position: fixed;
	top: 0;
	right: 0;
	width: 78.933vw;
	height: 100%;
	z-index: 101;
	background-color: #fff;
	padding-top: 14px;
	padding-left: 28px;
	-webkit-overflow-scrolling: touch;
		-webkit-transform: translate3d(100%,0,0);
		transform: translate3d(100%,0,0);
		-webkit-transition: -webkit-transform .3s;
		transition: -webkit-transform .3s;
		transition: transform .3s;
		transition: transform .3s,-webkit-transform .3s;
}
#headerNav.open{
	-webkit-transform: translate3d(0,0,0);
		transform: translate3d(0,0,0);
		-webkit-transition: -webkit-transform .5s .2s;
		transition: -webkit-transform .5s .2s;
		transition: transform .5s .2s;
		transition: transform .5s .2s,-webkit-transform .5s .2s;
}
#headerNav .headerLogo {
	display: inline-block;
}
#headerNav .headerLogo a {
	display: inline-block;
}
#headerNav .headerLogo a img {
	/*width: 160px;*/
	height: 55px;
}
#headerNav .headerNav_sp {
	margin-top: 45px;
}
#headerNav .headerNav_sp .mainNav li a {
	font-size: 14px;
	letter-spacing: 0.02em;
	color: #002258;
	padding-top: 20px;
	padding-bottom: 20px;
	display: block;
	border-top: 1px solid #E8E8E8;
	position: relative;
}
#headerNav .headerNav_sp .mainNav li:last-child a {
	border-bottom: 1px solid #E8E8E8;
}
#headerNav .headerNav_sp .mainNav li a::before {
	content: "";
	position: absolute;
	width: 8px;
	height: 1px;
	right: 21px;
	top: 25px;
	transform: rotate(45deg);
	background-color: #002258;
}
#headerNav .headerNav_sp .mainNav li a::after {
	content: "";
	position: absolute;
	width: 8px;
	height: 1px;
	right: 21px;
	top: 30px;
	transform: rotate(-45deg);
	background-color: #002258;
}
#headerNav .headerNav_sp .subNav {
	margin-top: 25px;
}
#headerNav .headerNav_sp .subNav li:not(:first-child) {
	margin-top: 10px;
}
#headerNav .headerNav_sp .subNav li a {
	font-size: 13px;
	color: #969696;
	letter-spacing: 0.02em;
}
#header .nav-overlay.active{
	position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 100;
		background: rgba(44,161,222,0.43);
		-webkit-backdrop-filter: blur(34px);
		backdrop-filter: blur(34px);
		transition: all .3s;
}

#header #menuBtn {
	position: absolute;
	top: 0;
	right: 0;
	width: 59px;
	height: 59px;
	background-color: #163464;
	display: none;
}
#header #menuBtn > span {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 204;
	display: block;
	width: 28px;
	height: 2px;
	margin: auto;
	background-color: #fff;
	border-radius: 1.5px;
	-webkit-transition: all .3s;
	transition: all .3s;
}
#header #menuBtn .open > span {

}
#header #menuBtn > span:after, #header #menuBtn > span:before {
	content: "";
	position: absolute;
	left: 0;
	z-index: 204;
	display: block;
	height: 2px;
	background-color: #fff;
	border-radius: 1.5px;
	-webkit-transition: all .5s ease-out;
	transition: all .5s ease-out;
}
#header #menuBtn > span:before{
top: -10px;
width: 28px;
}
#header #menuBtn > span:after{
bottom: -10px;
width: 28px;
}
#header #menuBtn .open > span:after{
	bottom: -10px;
	width: 24px;
	}
/*ã‚ªãƒ¼ãƒ—ãƒ³*/
#header #menuBtn.open span{
width: 60px;
	height: 60px;
	-webkit-transition: all .4s .2s;
	transition: all .4s .2s;
	background-color: #163464;
}
#header #menuBtn.open > span:after, #header #menuBtn.open > span:before {
top: 0;
bottom: 0;
right: 0;
margin: auto;
background-color: #fff;
}
#header #menuBtn.open > span:before{
width: 28px;
-webkit-transform: rotate(225deg);
	transform: rotate(225deg);
}
#header #menuBtn.open > span:after{
-webkit-transform: rotate(-225deg);
	transform: rotate(-225deg);
}
.subBnrWrapper {
	text-align: center;
	margin-top: 163px;
	position: relative;
	padding-left: 35px;
	padding-right: 35px;
}
.subBnrWrapper::before {
	content: "";
	position: absolute;
	width: 1px;
	height: 80px;
	top: -117px;
	left: 50%;
	transform: translateX(-50%);
	background-color: #013281;
}

/*VIEW MOREボタン*/
.cntMore {
	display: block;
	position: relative;
	margin-left: 126px;
	margin-top: 37px;
}
.cntMore::before {
	content: "";
	position: absolute;
	top: -67px;
	left: -200px;
	width: 150px;
	height: 150px;
	border-radius: 75px;
	background-color: #E8E8E8;
	transition: all .3s;
}
.cntMore.white::before{
	background-color: #FFFFFF;
}
.cntMore:hover::before{
	-webkit-transform: scale(0.8);
	transform: scale(0.8);
}
.cntMore::after {
	content: "";
	position: absolute;
	top: 3px;
	left: -129px;
	width: 8px;
	height: 8px;
	border-radius: 75px;
	background-color: #CA9F20;
}
.more {
	font-size: 16px;
	letter-spacing: 0.02em;
	color: #CA9F20;
	text-transform: uppercase;
	position: relative;
}
.more::before {
	content: "";
	position: absolute;
	top: 7px;
	left: -125px;
	width: 116px;
	height: 1px;
	background-color: #CA9F20;
}
@media screen and (max-width: 767px) {
	.cntMore {
		display: block;
		position: relative;
		margin-left: 200px;
		margin-top: 30px;
	}
	.cntMore::before {
	    top: -54px;
    	left: -186px;
		width: 120px;
		height: 120px;
	}
	.cntMore::after {
		content: "";
		position: absolute;
		top: 3px;
		left: -129px;
		width: 8px;
		height: 8px;
		border-radius: 75px;
		background-color: #CA9F20;
	}
	.cntMore:hover::before{
		-webkit-transform: scale(1);
		transform: scale(1);
	}
}

@media screen and (max-width: 767px) {
	#topReturn{
		right: 10px;
		bottom: 10px;
	}
	#header{
		height: 80px;
	}
	#header #menuBtn {
		display: block;
	}
	.headerCntBox {
		margin-top: 0;
		padding-left: 5%;
	}
	#headerLogo {
		/*margin-top: -32px;
		padding-left: 15px;*/
	}
	#headerLogo a img {
		/*width: 158px;
		height: 48px;*/
		height: 67px;
	}
 	#subMainVisual {
		height: 538px;
	}
	#subMainVisual #copyText {
		font-size: 26px;
	}
	#subMainVisual #copyText p{
	    padding-left: 30px;
	}
	#subMainVisual #copyText p:nth-child(2) {
		padding-bottom: 8px;
		padding-right: 30px;
	}
	.cntTitle-ja {
		font-size: 23px;
	}
	.cntTitle-en {
		font-size: 14px;
		margin-top: 12px;
	}
	.cntTitle::before {
		width: 24px;
		height: 24px;
		top: -40.5px;
	}
	.cntTitle::after {
		width: 33px;
		height: 33px;
		top: -45px;
	}
	.aboutLine {
		margin-top: 13px;
	}
	.line::before {
		height: 55px;
	}
	.aboutTextBox {
		margin-bottom: 0;
	}
	#textBox p {
		font-size: 21px;
		line-height: 1.7;
		padding-top: 30px;
		padding-bottom: 33px;
	}
	#service {
		margin-top: 0;
		padding-top: 76px;
		padding-bottom: 53px;
	}
	#service .cntBox {
		padding-left: 20px;
		padding-right: 19px;
		margin: 28px auto 0;
	}
	#service .cntText {
		font-size: 14px;
		text-align: left;
	}
	#service .cntItems {
		display: block;
		margin-top: 40px;
	}
	#service .cntItems .cntItem{
		margin-bottom: 30px;
	}
	#service .cntItem p {
	    font-size: 18px;
		width: 120%;
		margin-left: -10%;
	}
	#service .cntItem:nth-child(3) p, #service .cntItem:last-child p {
		margin-top: 19px;
	}
	#service .cntImg {
		width: 180px;
		height: 180px;
		margin-left: auto;
		margin-right: auto;
	}
	#service .cntBtn {
		margin-top: 45px;
	}
	#service .cntBtn .btn {
		width: 226px;
		text-align: center;
		font-size: 14px;
		padding: 18px 63px;
	}
	.topBnrWrapper{
		padding-left: 0;
		padding-right: 0;
		width: 90%;
		margin: 0 auto;
	}
	.topBnrWrapper::before {
		height: 56px;
		top: -70px;
	}
	.topBnrWrapper {
		margin-top: 100px;
	}
	.aboutService {
		margin-top: 0 !important;
	}
	.btnLinkItems {
		padding-left: 15px;
		padding-right: 15px;	
		margin-top: 39px;
	}
	.btnLink {
		padding: 37px 12px;
		font-size: 16px;
		outline-offset: -4px;
	}
	.btnLinkItem:not(:first-child) {
		margin-left: 19px;
	}
	.uservoiceService {
		margin-top: 0 !important;
	}
	#company {
		margin-top: -40px;
		padding-top: 95px;
	}
	#footerWrapper {
		margin-top: -39px;
		padding-top: 80px;
	}	
	#footer {
		margin-top: 35px;
	}
	.topFooter {
		margin-top: 0 !important;
	}
	#footerCntWrapper {
		padding-bottom: 16px;
	}
	#footerCnt {
		display: block;
	}
	#footerBottom {
		
	}
	.footerSnsWrapper {
		margin-top: 19px;
	}

	.contactMainVisual {
		background: url(../img/contact/mainVisual.jpg) no-repeat 33% center / cover;
	}

	#footer small {
		font-size: 12px;
		text-align: center;
		padding-top: 23px;
	}

}

@media screen and (min-width: 768px) and (max-width: 900px) {
	#service .cntImg {
		width: 170px;
	}
}

@media screen and (max-width: 1101px) {
	.footerItems-sp {
		display: block;
		padding-left: 35px;
		padding-bottom: 17px;
		border-bottom: 1px solid rgba(255, 255, 255, 0.5);
	}
	.footerItems	{
		display: flex;
		flex-wrap: wrap;
	}
	.footerItems li:nth-child(2n + 1) {
		width: 126px;
	}
	.footerItems li:nth-child(2n) {
		margin-left: 39px;
		width: calc(100% - 165px);
	}
	.footerItems li:nth-child(n + 3) {
		margin-top: 22px;
	}
	.footerItems li a {
		color: #fff;
		font-size: 14px;
		display: block;
		text-decoration: underline !important;
	}
}