body {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
.biz-udpmincho-regular {
  font-family: "BIZ UDPMincho", serif;
  font-weight: 400;
  font-style: normal;
}

.biz-udpmincho-bold {
  font-family: "BIZ UDPMincho", serif;
  font-weight: 700;
  font-style: normal;
}
.smooch-sans- {
  font-family: "Smooch Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}
.noto-sans-jp- {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}




body {
	position: relative;
	z-index: 3;
	padding: 0 22px;
	background-color: rgba(16,109,204,1.00);
	background-image: -webkit-linear-gradient(0deg,rgba(16,109,204,1.00) 0%,rgba(0,0,0,1.00) 50%,rgba(16,109,204,1.00) 100%);
	background-image: -moz-linear-gradient(0deg,rgba(16,109,204,1.00) 0%,rgba(0,0,0,1.00) 50%,rgba(16,109,204,1.00) 100%);
	background-image: -o-linear-gradient(0deg,rgba(16,109,204,1.00) 0%,rgba(0,0,0,1.00) 50%,rgba(16,109,204,1.00) 100%);
	background-image: linear-gradient(90deg,rgba(16,109,204,1.00) 0%,rgba(0,0,0,1.00) 50%,rgba(16,109,204,1.00) 100%);
	color: #333;
}
body::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	display: block;
	width: 100%;
	max-width: 1600px;
	height: 100%;
	background-image: url("../img/common/bg_left.png");
	background-repeat: repeat-y;
	background-color: #fff;
	z-index: 1;
}
body::after {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	display: block;
	width: 100%;
	max-width: 1600px;
	height: 100%;
	background-image: url("../img/common/bg_right.png");
	background-repeat: repeat-y;
	background-position: bottom right;
	z-index: 2;
}



.nav {
	padding: max(2vw, 15px) 0;
}


.title {
	position: relative;
	margin-bottom: min(48px,3vw);
}
.title h2 {
	font-size: 4.8vw;
	font-family: "Smooch Sans", sans-serif;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.02em;
	margin-bottom: -.25em;
	color: #000;
}
.title p {
	line-height: 1;
	background-color: #000;
	color: #fff;
	font-weight: 600;
	padding: 0 1em;
}
@media(min-width:1024px) {
	.title h2 {
		font-size: min(7.5vw, 120px);
	}
	.title p {
		font-size: min(1.35vw, 22px);
	}
}
@media(max-width:1023px) {
	.title h2 {
		font-size: min(130px, 12vw);
	}
	.title p {
		font-size: min(20px, 2vw);
	}
}
@media(max-width:768px) {
	.title p {
		font-size: 4vw;
		padding: 0 .5em;
	}
}
@media(max-width:480px) {
	.title h2,.title p {
		text-align: center;
	}
}


.bnrlink {
	display: block;
	line-height: 1.2;
	color: #fff;
	padding: 1em 1.5em;
	/*border-radius: 1em 0;*/
	clip-path: polygon(.5em 0, 100% 0, 100% calc(100% - .5em), calc(100% - .5em) 100%, 0 100%, 0 .5em);
	position: relative;
	font-weight: 600;
	overflow: hidden;
}
.bnrlink::before {
	content: '';
	display: block;
	width: 210%;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	background-image: -webkit-linear-gradient(0deg,rgba(244,35,5,1.00) 0%,rgba(244,35,5,1.00) 50%,rgba(16,109,204,1.00) 50%,rgba(16,109,204,1.00) 100%);
	background-image: -moz-linear-gradient(0deg,rgba(244,35,5,1.00) 0%,rgba(244,35,5,1.00) 50%,rgba(16,109,204,1.00) 50%,rgba(16,109,204,1.00) 100%);
	background-image: -o-linear-gradient(0deg,rgba(244,35,5,1.00) 0%,rgba(244,35,5,1.00) 50%,rgba(16,109,204,1.00) 50%,rgba(16,109,204,1.00) 100%);
	background-image: linear-gradient(90deg,rgba(244,35,5,1.00) 0%,rgba(244,35,5,1.00) 50%,rgba(16,109,204,1.00) 50%,rgba(16,109,204,1.00) 100%);
	z-index: -1;
	transition: .3s all;
}
@media (hover: hover) {
	.bnrlink:hover::before {
		right: -110%;
	}
}
.bnrlink::after {
	content: '';
	display: block;
	width: calc(100% - 1.5em);
	height: 1px;
	background-color: #fff;
	position: absolute;
	right: 0;
	bottom: .8em;
}
.bnrlink span {
	display: inline-block;
}
.bnrlink span.lite {
	font-weight: 300;
}



footer {
	padding: 2em min(3vw, 48px);
	width: 100%;
}
footer > div {
	font-size: 80%;
}

@media(min-width:1024px) {
	#contents {
		padding-bottom: 20em;
	}
	footer {
		position: absolute;
		bottom: 0;
	}
}

footer > div * {
	text-align: center;
}
footer ul:not(.textlink) {
	display: flex;
	justify-content: center;
	gap: 2em;
	margin-bottom: 1em;
}
@media(max-width:767px) {
	footer ul:not(.textlink) {
		gap:1em;
	}
}
footer ul:not(.textlink) img {
	width: 210px;
	max-width: 40vw;
}
footer ul.textlink {
	display: flex;
	justify-content: center;
	margin-bottom: 1em;
}
footer ul.textlink > li:first-child {
	padding-right: 1em;
	border-right: 1px solid rgba(0,0,0,.5);
}
footer ul.textlink li:last-child {
	padding-left: 1em;
}
footer p:not(:last-of-type) {
	margin-bottom: 1em;
}
