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

/* reset
---------------------------------------- */
/* all */
*,
*::before,
*::after { box-sizing: border-box;}

/* body */
body {
	-webkit-text-size-adjust: 100%;
	overflow-wrap: break-word;
	line-height: 2;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	font-size: 15px;
}

/* hr */
hr {
	border: 0;
	border-top: 1px #d0d0d0 solid;
}

/* hX */
h1, h2, h3, h4, h5, h6 { font-weight: 700;}

/* p */
p:empty { min-height: 2em;}

/* list */
ul {
	margin-left: 0;
	padding-left: 1.5em;
}
ol {
	margin-left: 0;
	padding-left: 2em;
}

/* a */
a {
	text-decoration: none;
	color: #2166bf;
	transition: 0.3s;
	overflow-wrap: anywhere;
}
a:link {}
a:visited {}
a:hover { opacity: 0.7;}
a:active {}
a:focus {}

/* link icon */
a[target="_blank"]:not(.icon-none):not(:has(img)):not([class*="button"])::after,
a[target="_blank"].icon-link::after {
	content: url("../files/ico_blank_blue_01.svg");
	margin-left: 5px;
}
a[href$=".pdf"]:not(.icon-none):not(:has(img)):not([class*="button"])::after,
a[href$=".pdf"].icon-link::after {
	content: url("../files/ico_pdf_red_01.svg");
	margin-left: 5px;
}
a[href$=".zip"]:not(.icon-none):not(:has(img)):not([class*="button"])::after,
a[href$=".zip"].icon-link::after {
	content: url("../files/ico_zip_01.svg");
	margin-left: 5px;
}

/* img */
img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}

/* table */
td, th {
	text-align: inherit;
	text-justify: inherit;
}
th { font-weight: 700;}

/* form */
button,
input,
select,
textarea {
	line-height: inherit;
	font-family: inherit;
	font-weight: inherit;
}
@media screen and (max-width:768px) {
input[type="text"],
input[type="tel"],
input[type="email"],
textarea { font-size: 16px;}
}

input[type="submit"],
input[type="button"],
button {
	cursor: pointer;
	transition: 0.3s;
}
input[type="submit"]:hover,
input[type="button"]:hover,
button:hover { opacity: 0.7;}

::-webkit-input-placeholder { color: #757575;}
:-ms-input-placeholder { color: #757575;}
::placeholder { color: #757575;}


/* TinyMCE
---------------------------------------- */
.mce-content-body p,.mce-content-body div,.mce-content-body h1,.mce-content-body h2,.mce-content-body h3,.mce-content-body h4,.mce-content-body h5,.mce-content-body h6 {
	line-height: inherit;
}


/* row
---------------------------------------- */
@media (min-width: 769px) {
	.row {
		display: grid;
		gap: 30px;
		margin: 1em 0;
	}
	.row--1-1 { grid-template-columns: 1fr 1fr;}
	.row--1-2 { grid-template-columns: 1fr 2fr;}
	.row--2-1 { grid-template-columns: 2fr 1fr;}
	.row--1-1-1 { grid-template-columns: 1fr 1fr 1fr;}
	.row__col > :first-child { margin-top: 0;}
	.row__col > :last-child { margin-bottom: 0;}
}


/* box
---------------------------------------- */
/* box */
.box {
	margin: 1em 0;
	padding: 15px;
	background: #f5f5f5;
}
.box--caution { background-color: #fdeeed;}
.box > :first-child { margin-top: 0;}
.box > :last-child { margin-bottom: 0;}

/* box-stroke */
.box-stroke {
	margin: 1em 0;
	padding: 14px;
	border: solid 1px #d0d0d0;
}
.box-stroke--caution { border-color: #cb1a10;}
.box-stroke > :first-child { margin-top: 0;}
.box-stroke > :last-child { margin-bottom: 0;}


/* table
---------------------------------------- */
/* table-scroll */
@media screen and (max-width:768px) {
.table-scroll {
	overflow-x: auto;
	margin: 1em 0;
}
.table-scroll::before {
	content: "→スクロール";
	font-size: 13px;
	color: #c1c1c1;
}
.table-scroll > table {
	width: 860px;
	margin: 0;
}
}

/* table */
.table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
	border: solid 1px #d0d0d0;
	margin: 1em 0;
}
	.table > * {}
		.table > * > tr {}
			.table > * >  tr > th {
				border: solid 1px #d0d0d0;
				padding: 10px;
			}
			.table > thead >  tr > th {
				color: #ffffff;
				background: #004493;
			}
			.table > tbody >  tr:nth-child(odd) > th { background: #f5f5f5;}
			.table > tbody >  tr:nth-child(even) > th { background: #e5e5e5;}
			.table > * > tr > td {
				border: solid 1px #d0d0d0;
				padding: 10px;
			}
				.table > * > tr > td > *:first-child { margin-top: 0;}
				.table > * > tr > td > *:last-child { margin-bottom: 0;}
@media (max-width: 768px) {
	.table--responsive,
	.table--responsive > :where(thead, tbody, tfoot),
	.table--responsive > :where(thead, tbody, tfoot) > tr,
	.table--responsive > :where(thead, tbody, tfoot) > tr > :where(td, th) {
		display: block;
		width: 100%;
	}
	.table--responsive {
		border: none;
	}
	.table--responsive > :where(thead, tbody, tfoot) > tr > :where(td, th):not(tr:first-child > :first-child) {
		border-top: none;
	}
}


/* list
---------------------------------------- */
/* list-arrow */
.list-arrow {
	list-style: none;
	padding-left: 0;
}
	.list-arrow > li {
		margin: 5px 0;
		font-weight: 700;
		padding-left: 20px;
		background: url("../files/ico_arrow_black_right_01.svg") no-repeat left center;
	}

/* list-asterisk */
.list-asterisk {
	list-style: none;
	padding-left: 1em;
}
	.list-asterisk > li::before {
		display: inline-block;
		margin-left: -1em;
		width: 1em;
	}
	.list-asterisk > li::before { content: "※";}


/* heading
---------------------------------------- */
/* heading-2 */
.heading-2 {
	margin: 3em 0 1.5em 0;
	padding-bottom: 0.75em;
	font-size: 30px;
	line-height: 1.5;
	background: url("../files/bg_line_01.svg") no-repeat left bottom;
}
.heading-2 + * { margin-top: 0 !important;}
@media screen and (max-width:768px) {
.heading-2 { font-size: 20px;}
}

/* heading-3 */
.heading-3 {
	margin: 2.5em 0 1em 0;
	font-size: 24px;
	line-height: 1.5;
}
.heading-3 + * { margin-top: 0 !important;}
@media screen and (max-width:768px) {
.heading-3 { font-size: 18px;}
}

/* heading-4 */
.heading-4 {
	margin: 2em 0 1em 0;
	font-size: 20px;
}
.heading-4 + * { margin-top: 0 !important;}
@media screen and (max-width:768px) {
.heading-4 { font-size: 16px;}
}


/* icon-arrow
---------------------------------------- */
.icon-arrow {
	display: inline-block;
	padding-right: 20px;
	font-weight: 700;
	background: url(../files/ico_arrow_black_right_01.svg) no-repeat right center;
}


/* button
---------------------------------------- */
/* button */
.button {
	display: inline-block;
	border: 1px solid #2166bf;
	padding: 14px;
	width: 280px;
	max-width: 100%;
	font-weight: 700;
	text-align: center;
	color: #ffffff;
	background: #2166bf;
}
.button::after {
	content: url("../files/ico_arrow_white_right_01.svg");
	display: inline-block;
	margin-left: 10px;
}
.button:hover {
	color: #2166bf;
	background: #ffffff;
	opacity: 1;
}
.button:hover::after { content: url("../files/ico_arrow_blue_right_01.svg");}

.button--large {
	padding: 24px;
	width: 425px;
	max-width: 100%;
	font-size: 20px;
}


/* image
---------------------------------------- */
.mt-image-left,
.image-left {
	float: left;
	max-width: calc(50% - 10px);
	margin: 0 20px 20px 0;
}
.mt-image-center,
.image-center {
	display: block;
	margin: 0 auto 20px;
	text-align: center;
}
.mt-image-right,
.image-right {
	float: right;
	max-width: calc(50% - 10px);
	margin: 0 0 20px 20px;
}


/* outline
---------------------------------------- */
/* list-features */
.list-features {
	display: flex;
	flex-wrap: wrap;
	margin: -20px !important;
}
	.list-features > div {
		margin: 20px;
		width: calc(33.3% - 40px);
	}
	@media screen and (max-width:768px) {
	.list-features > div { width: calc(50% - 40px);}
	}
	@media screen and (max-width:480px) {
	.list-features > div { width: 100%;}
	}
		.list-features > div > dt {
			margin-bottom: 15px;
			font-size: 24px;
			font-weight: 700;
		}
			.list-features > div > dt > span { color: #2166bf;}
		.list-features > div > dd { margin-left: 0;}

/* list-flow */
.list-flow {
	list-style: none;
	padding-left: 0;
	text-align: center;
}
	.list-flow > li {
		position: relative;
		margin: 0 auto;
		border: 1px solid #707070;
		padding: 3px;
		width: 340px;
		max-width: 100%;
		font-weight: 700;
	}
	.list-flow > li:not(:last-child) { margin-bottom: 32px;}
	.list-flow > li:not(:last-child)::after {
		content: "";
		position: absolute;
		top: calc(100% + 1px);
		left: calc(50% - 15px);
		display: block;
		margin: 0 auto;
		width: 32px;
		height: 32px;
		background: url("../files/ico_triangle_blue_down_01.svg") no-repeat center center;
	}


/* download
---------------------------------------- */
/* list-download */
.list-download {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	margin: -20px !important;
	padding: 0
}
	.list-download > li {
		margin: 20px;
		width: calc(50% - 40px);
		text-align: center;
	}
	@media screen and (max-width:480px) {
	.list-download > li { width: 100%;}
	}
		.list-download > li > a {}
			.list-download > li > a > img {
				margin-bottom: 10px;
				border: solid 1px #e5e5e5;
			}


/* case
---------------------------------------- */
/* summary-case */
.summary-case {
	display: flex;
	align-items: center;
}
	.summary-case-logo {
		order: 1;
		text-align: center;
	}
	.summary-case-case {
		flex-grow: 1;
		font-size: 20px;
		font-weight: bold;
	}
@media screen and (max-width:768px) {
.summary-case {
	flex-direction: column;
	align-items: stretch;
	margin-top: -2em !important;
}
	.summary-case-logo {
		order: 0;
	}
	.summary-case-case {
		font-size: 16px;
	}
}

/* list-point */
.list-point {
	margin: 2em 0;
	padding: 20px;
	background: #f0f6fc;
}
	.list-point > div {
		display: flex;
		align-items: flex-start;
	}
	.list-point > div:not(:first-child) { margin-top: 15px;}
		.list-point > div > dt {
			flex-shrink: 0;
			width: 5em;
			background: #004493;
			color: #ffffff;
			font-weight: bold;
			text-align: center;
		}
		.list-point > div > dd {
			margin: 0 0 0 15px;
			padding: 0;
			font-weight: bold;
		}


/* utility
---------------------------------------- */
/* color */
.color-caution { color: #cb1111;}
.color-notice { color: #107c10;}

/* mark */
.mark-caution {
	padding: 0 5px;
	background-color: #ffdc7a;
}

/* font */
.font-x-large { font-size: 20px;}
.font-large { font-size: 17px;}
.font-medium { font-size: 15px;}
.font-small { font-size: 13px;}

/* margin */
.margin-top-none { margin-top: 0;}

.margin-bottom-large { margin-bottom: 2em;}
.margin-bottom-medium { margin-bottom: 1em;}
.margin-bottom-none { margin-bottom: 0;}
:where(.margin-bottom-large, .margin-bottom-medium, .margin-bottom-none) + * { margin-top: 0 !important;}

/* clear */
.clear { clear: both;}

/* clearfix */
.clearfix::after {
	display: block;
	clear: both;
	content: "";
}

/* visually-hidden */
.visually-hidden {
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	white-space: nowrap !important;
	border: 0 !important;
}
