@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&display=swap");

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

index

----------------------------------------------------------  */
/* kv */
#main {
	position: relative;
	width: 100%;
	height: 64rem;
}

.top-kv-catch {
	color: #fff;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	text-align: center;
	width: 100%;
	font-size: 3.2rem;
	line-height: 1;
}

.top-kv-catch small {
	display: block;
	font-size: 2rem;
	margin-bottom: 2rem;
}

.top-kv-en {
	position: absolute;
	left: 3rem;
	bottom: 12rem;
	width: 56rem;
	z-index: 999;
}

.top-kv-copy {
	position: absolute;
	right: 0;
	bottom: -2.5rem;
	color: #fff;
	background-image: -moz-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -webkit-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -ms-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	width: 40rem;
	text-align: center;
	font-size: 2.4rem;
	padding: 4rem 0;
	line-height: 1;
}

/* intro */
.top-intro {
	padding: 12rem 10rem 14rem 10rem;
}

.top-intro h2 {
	text-align: center;
	font-weight: normal;
	line-height: 1.6;
	margin-bottom: 4rem;
	color: #0763c5;
	font-size: 3.2rem;
}

.top-intro-wrap {
	display: flex;
	align-items: flex-start;
}

.top-intro-wrap > *:first-of-type {
	width: 50%;
	position: relative;
	z-index: 999;
	background-image: -moz-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -webkit-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -ms-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	color: #fff;
	padding: 6rem 4rem 4rem 4rem;
	position: relative;
	margin-top: 10rem;
}

.top-intro-wrap > *:last-of-type {
	width: 65%;
	margin-left: -15%;
}

.top-intro-wrap h3 {
	font-weight: normal;
	font-size: 1.8rem;
	line-height: 1.6;
	margin-bottom: 2rem;
}

.top-intro-wrap h3 span {
	position: absolute;
	left: -3rem;
	top: -4rem;
	width: 24rem;
}

.top-intro-wrap p {
	line-height: 1.8;
}

/* service */
.top-service {
	padding: 23rem 10rem 4rem 10rem;
	margin-top: -20rem;
}

.top-service h2 {
	font-weight: normal;
	line-height: 0;
	margin-bottom: 4rem;
	font-size: 2.4rem;
}

.top-service h2 span {
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	color: transparent;
	-webkit-text-stroke: 1px #b8d2ed;
	font-size: 6.4rem;
	display: block;
	position: relative;
	z-index: -1;
	margin-top: -2rem;
}

.top-service h2 + p {
	font-size: 2rem;
	line-height: 1.8;
	text-align: center;
	margin-bottom: 4rem;
}

.top-service ol {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.top-service ol li {
	width: 22%;
	background: #87cede;
	text-align: center;
	line-height: 1.8;
	padding: 3rem 0;
	margin-bottom: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	font-size: 1.6rem;
}

.top-service ol li::before {
	width: 5rem;
	height: 5rem;
	background: #f4f4f6;
	border-radius: 50%;
	display: block;
	position: absolute;
	left: -2.5rem;
	top: calc(50% - 2.5rem);
	z-index: 999;
	text-align: center;
	line-height: 5rem;
	color: #87cede;
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: 1.8rem;
}

.top-service ol li:nth-child(1)::before {
	content: "01";
}

.top-service ol li:nth-child(2)::before {
	content: "02";
}

.top-service ol li:nth-child(3)::before {
	content: "03";
}

.top-service ol li:nth-child(4)::before {
	content: "04";
}

.top-service ol li:nth-child(5)::before {
	content: "05";
}

.top-service ol li:nth-child(6)::before {
	content: "06";
}

.top-service ol li:nth-child(7)::before {
	content: "07";
}

.top-service ol li:nth-child(8)::before {
	content: "08";
}

.top-service ol li::after {
	content: "east";
	font-family: "Material Icons";
	position: absolute;
	right: -2rem;
	top: calc(50% - 0.6rem);
	color: #87cede;
	line-height: 1;
	z-index: 9999;
	font-size: 1.2rem;
}

.top-service ol li:nth-child(4):after,
.top-service ol li:nth-child(8):after {
	content: "";
}

/* profile */
.top-prof {
	margin-left: 5rem;
}

.top-prof-wrap {
	padding: 6rem 15rem 6rem 10rem;
	background-image: -moz-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -webkit-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -ms-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	color: #fff;
}

.top-prof h2 {
	text-align: center;
	font-weight: normal;
	font-size: 2.4rem;
	line-height: 1.6;
	margin-bottom: 4rem;
}

.top-prof-wrap > div {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	position: relative;
}

.top-prof-wrap > div > *:first-of-type {
	width: 35%;
}

.top-prof-wrap > div > *:last-of-type {
	width: 58%;
}

.top-prof-en {
	position: absolute;
	top: 0;
	right: 0;
	width: 32rem;
}

.top-prof-wrap dl dt {
	font-size: 2.8rem;
	line-height: 1;
}

.top-prof-wrap dl dt small {
	font-size: 1.6rem;
	display: block;
	margin-top: 1rem;
}

.top-prof-wrap dl dd:first-of-type {
	margin: 2rem 0;
	font-size: 1.6rem;
}

.top-prof-wrap dl dd ul li {
	margin-left: 2.5rem;
	list-style: disc;
}

.top-prof-wrap dl dd:last-of-type {
	font-size: 1.2rem;
	line-height: 1.6;
}

/* contact */
.top-contact {
	padding: 25rem 10rem 15rem 10rem;
	margin-top: -8rem;
}

.top-contact h2 {
	font-weight: normal;
	line-height: 0;
	margin-bottom: 4rem;
	font-size: 2.4rem;
	text-align: center;
}

.top-contact h2 span {
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	color: transparent;
	-webkit-text-stroke: 1px #b8d2ed;
	font-size: 6.4rem;
	display: block;
	position: relative;
	z-index: -1;
	margin-top: -2rem;
}

.top-contact h2 + p {
	font-size: 2rem;
	line-height: 1.8;
	text-align: center;
	margin-bottom: 4rem;
}

.top-contact-wrap {
	background: #fff;
	position: relative;
	padding: 8rem 8rem 6rem 8rem;
}

.top-contact-wrap::after {
	content: "";
	background-image: -moz-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -webkit-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	background-image: -ms-linear-gradient(0deg,
		rgb(31, 113, 201) 0%,
		rgb(68, 140, 219) 38%,
		rgb(104, 167, 236) 100%);
	width: 100%;
	height: 100%;
	display: block;
	position: absolute;
	right: -4rem;
	bottom: -4rem;
	z-index: -1;
}

/* corporate */
.top-corporate {
	padding: 23rem 10rem 4rem 10rem;
	margin-top: -20rem;
}

.top-corporate h2 {
	font-weight: normal;
	line-height: 0;
	margin-bottom: 4rem;
	font-size: 2.4rem;
}

.top-corporate h2 span {
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	color: transparent;
	-webkit-text-stroke: 1px #b8d2ed;
	font-size: 6.4rem;
	display: block;
	position: relative;
	z-index: -1;
	margin-top: -2rem;
}

.top-corporate h2 + p {
	font-size: 2rem;
	line-height: 1.8;
	text-align: center;
	margin-bottom: 4rem;
}

.top-corporate ol {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.top-corporate ol li {
	width: 22%;
	background: #87cede;
	text-align: center;
	line-height: 1.8;
	padding: 3rem 0;
	margin-bottom: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	font-size: 1.6rem;
}

.top-corporate ol li::before {
	width: 5rem;
	height: 5rem;
	background: #f4f4f6;
	border-radius: 50%;
	display: block;
	position: absolute;
	left: -2.5rem;
	top: calc(50% - 2.5rem);
	z-index: 999;
	text-align: center;
	line-height: 5rem;
	color: #87cede;
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: 1.8rem;
}

.top-corporate ol li:nth-child(1)::before {
	content: "01";
}

.top-corporateol li:nth-child(2)::before {
	content: "02";
}

.top-corporate ol li:nth-child(3)::before {
	content: "03";
}

.top-corporate ol li:nth-child(4)::before {
	content: "04";
}

.top-corporate ol li:nth-child(5)::before {
	content: "05";
}

.top-corporate ol li:nth-child(6)::before {
	content: "06";
}

.top-corporate ol li:nth-child(7)::before {
	content: "07";
}

.top-corporate ol li:nth-child(8)::before {
	content: "08";
}

.top-corporate ol li::after {
	content: "east";
	font-family: "Material Icons";
	position: absolute;
	right: -2rem;
	top: calc(50% - 0.6rem);
	color: #87cede;
	line-height: 1;
	z-index: 9999;
	font-size: 1.2rem;
}

.top-corporate ol li:nth-child(4):after,
.top-corporate ol li:nth-child(8):after {
	content: "";
}


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

	/* kv */
	#main {
		height: 48rem;
	}

	.top-kv-catch {
		color: #fff;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		-webkit-transform: translate(-50%, -50%);
		text-align: center;
		width: 100%;
		font-size: 2.4rem;
		line-height: 1.6;
	}

	.top-kv-catch small {
		display: block;
		font-size: 1.4rem;
		margin-bottom: 1rem;
	}

	.top-kv-en {
		left: 2rem;
		bottom: auto;
		top: 10rem;
		width: 32rem;
	}

	.top-kv-copy {
		width: 32rem;
		font-size: 2rem;
		padding: 3rem 0;
	}

	/* intro */
	.top-intro {
		padding: 10rem 3rem 10rem 3rem;
	}

	.top-intro h2 {
		text-align: left;
		font-size: 2.4rem;
	}

	.top-intro-wrap {
		display: block;
	}

	.top-intro-wrap > *:first-of-type {
		width: 100%;
		margin-top: 0;
	}

	.top-intro-wrap > *:last-of-type {
		width: 100%;
		margin-left: 0;
	}

	.top-intro-wrap h3 span {
		left: -1rem;
	}

	/* service */
	.top-service {
		padding: 8rem 3rem 4rem 3rem;
		margin-top: -8rem;
	}

	.top-service h2 {
		font-weight: normal;
		line-height: 0;
		margin-bottom: 4rem;
		font-size: 2.4rem;
	}

	.top-service h2 span {
		font-size: 4.6rem;
	}

	.top-service h2 + p {
		font-size: 1.8rem;
		text-align: left;
		margin-bottom: 2rem;
	}

	.top-service ol {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.top-service ol li {
		width: 44%;
		font-size: 1.4rem;
	}

	.top-service ol li::before {
		width: 4rem;
		height: 4rem;
		left: -2rem;
		top: calc(50% - 2rem);
		line-height: 4rem;
		font-size: 1.4rem;
	}

	.top-service ol li:nth-child(2):after,
	.top-service ol li:nth-child(4):after,
	.top-service ol li:nth-child(6):after,
	.top-service ol li:nth-child(8):after {
		content: "";
	}

	/* profile */
	.top-prof {
		margin-left: 0;
	}

	.top-prof-wrap {
		padding: 6rem 3rem 6rem 3rem;
	}

	.top-prof h2 {
		text-align: left;
		font-size: 2.2rem;
		margin-bottom: 5rem;
	}

	.top-prof-wrap > div {
		display: block;
	}

	.top-prof-wrap > div > *:first-of-type {
		width: 80%;
		margin: 0 auto 3rem auto;
	}

	.top-prof-wrap > div > *:last-of-type {
		width: 100%;
	}

	.top-prof-en {
		top: -4rem;
		left: 0;
		width: 24rem;
	}

	/* contact */
	.top-contact {
		padding: 10rem 3rem 10rem 3rem;
		margin-top: 0;
	}

	.top-contact h2 span {
		font-size: 4.8rem;
	}

	.top-contact h2 + p {
		font-size: 1.8rem;
		text-align: left;
	}

	.top-contact-wrap {
		padding: 4rem 3rem;
	}

	.top-contact-wrap::after {
		content: "";
		background-image: -moz-linear-gradient(0deg,
			rgb(31, 113, 201) 0%,
			rgb(68, 140, 219) 38%,
			rgb(104, 167, 236) 100%);
		background-image: -webkit-linear-gradient(0deg,
			rgb(31, 113, 201) 0%,
			rgb(68, 140, 219) 38%,
			rgb(104, 167, 236) 100%);
		background-image: -ms-linear-gradient(0deg,
			rgb(31, 113, 201) 0%,
			rgb(68, 140, 219) 38%,
			rgb(104, 167, 236) 100%);
		width: 100%;
		height: 100%;
		display: block;
		position: absolute;
		right: -1rem;
		bottom: -1rem;
		z-index: -1;
	}

	/* corporate */
	.top-corporate {
		padding: 8rem 3rem 4rem 3rem;
		margin-top: -8rem;
	}

	.top-corporate h2 {
		font-weight: normal;
		line-height: 0;
		margin-bottom: 4rem;
		font-size: 2.4rem;
	}

	.top-corporate h2 span {
		font-size: 4.6rem;
	}

	.top-corporate h2 + p {
		font-size: 1.8rem;
		text-align: left;
		margin-bottom: 2rem;
	}

	.top-corporate ol {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.top-corporate ol li {
		width: 44%;
		font-size: 1.4rem;
	}

	.top-corporate ol li::before {
		width: 4rem;
		height: 4rem;
		left: -2rem;
		top: calc(50% - 2rem);
		line-height: 4rem;
		font-size: 1.4rem;
	}

	.top-corporate ol li:nth-child(2):after,
	.top-corporate ol li:nth-child(4):after,
	.top-corporate ol li:nth-child(6):after,
	.top-corporate ol li:nth-child(8):after {
		content: "";
	}
}

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

form

----------------------------------------------------------  */
.CMS-FORM-GROUP {
	display: block;
	align-items: center;
	margin-bottom: 4rem;
}

.CMS-FORM-GROUP label {
	width: 100%;
	font-weight: bold;
	display: block;
	margin-bottom: 1rem;
	color: #003c7b;
	font-size: 1.6rem;
}

.CMS-FORM-GROUP input,
.CMS-FORM-GROUP textarea {
	width: 100%;
	padding: 2rem;
	border: #ddd solid 1px;
	border-radius: 4px;
	box-sizing: border-box;
}

.CMS-FORM-INPUT,
.CMS-FORM-EMAIL {
	-webkit-appearance: none;
	appearance: none;
}

.CMS-FORM-GROUP textarea {
	height: 16rem;
	-webkit-appearance: none;
	appearance: none;
}

.CMS-FORM-GROUP input[type="submit"],
.CMS-FORM-GROUP input[type="button"] {
	background: #003c7b;
	border: none;
	color: #fff;
	display: block;
	width: 24rem;
	padding: 1.6rem 0;
	margin: 0 auto;
	transition: all 0.3s;
	display: block;
	border-radius: 6rem;
}

.CMS-FORM-GROUP input[type="submit"]:hover,
.CMS-FORM-GROUP input[type="button"]:hover {
	cursor: pointer;
	opacity: 0.5;
}

.CMS-FORM-RADIO input[type="radio"] {
	width: 1.5rem;
	height: 1.5rem;
	display: block;
	margin-top: 0.9rem;
	border-radius: 50%;
}

.CMS-FORM-RADIO {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 70%;
}

.CMS-FORM-RADIO label {
	display: block;
	width: calc(100% - 3rem);
}

.CMS-FORM-RADIO > label {
	font-weight: normal;
}

.CMS-FORM-RADIO > label:not(:last-of-type) {
	margin-bottom: 1rem;
}

input[type="submit"],
input[type="button"] {
	border-radius: 0;
	-webkit-appearance: button;
	appearance: button;
	border: none;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}

.confirm-btn {
	display: flex;
	margin-top: 8rem;
}

@media screen and (max-width: 767px) {
	.CMS-FORM-GROUP {
		display: block;
	}

	.CMS-FORM-GROUP label {
		width: 100%;
		display: block;
		margin-bottom: 10px;
	}

	.CMS-FORM-GROUP input,
	.CMS-FORM-GROUP textarea {
		width: 100%;
	}

	.CMS-FORM-RADIO input[type="radio"] {
		width: 4rem;
		height: 4rem;
		margin-top: 0;
		margin-bottom: 2rem;
	}

	.CMS-FORM-RADIO {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 100%;
	}

	.CMS-FORM-RADIO label {
		width: calc(100% - 6rem);
		padding-top: 0.3rem;
	}

	.CMS-FORM-RADIO > label {
		font-weight: normal;
	}

	.CMS-FORM-RADIO > label:not(:last-of-type) {
		margin-bottom: 0;
	}

	.CMS-FORM-GROUP input[type="submit"],
	.CMS-FORM-GROUP input[type="button"] {
		width: 40%;
		padding: 2rem 0;
		font-size: 1.8rem;
	}

	.CMS-FORM-GROUP input[type="submit"],
	.CMS-FORM-GROUP input[type="button"] {
		width: 40%;
	}

	.confirm-btn {
		display: flex;
	}
}

.his {
	background: #003c7b;
	border-radius: 2px;
	line-height: 1;
	color: #fff;
	font-size: 1rem;
	padding: 0.4rem 0.7rem 0.5rem 0.7rem;
	margin-left: 1rem;
	vertical-align: 0.1rem;
}

/*
<span class="his">必須</span>
*/
