@charset "UTF-8";

/* ===============================
	common style
=============================== */
.green {
	color: #13b5b1;
}

.sub-section:nth-of-type(even) {
	background-color: #eee;
}

hr.line {
	border-top: 4px solid #000;
	width: 6.5rem;
	margin: 0 auto;
}

.sub-caption {
	font-size: 1.2rem;
	padding-left: 1em;
}

/* こちらバナー */
.arrow-link {
	margin-top: 0rem;
	text-align: center;
}

a.btn-detail::before {
	left: 2em;
	margin-top: -0.4em;
}

a.btn-detail {
	background: #000;
	color: #fff;
	display: inline-block;
	padding: 1.2em 3.6em 1.2em 0.8em;
	;
	margin-top: 5em;
	font-size: 1.4rem;
	line-height: 1;
	text-align: center;
	text-decoration: none;
}

.arrow-link .fa-caret-right {
	font-size: 2rem;
	position: relative;
	top: 0.2rem;
}

.btn-detail .fa-caret-right {
	margin-right: 2.2em;
}

#sub04 .text-title {
	padding-top: 1.4em;
	font-size: 2.3rem;
	font-weight: 500;
}

#sub04 .img-container {
	padding-top: 2em;
}

#sub04 .text-container .text {
	padding-top: 1em;
}

#sub04 .flex-container .flex-item {
	border: 4px solid #000;
	padding: 2em 2em 3em;
	border-radius: 2rem;
	border-radius: 1rem;
	background-color: #fff;
}

#sub04 .text-container {
	padding-top: 0em;
}

.caption-section {
	padding-top: 3em;
}

/* ====================================
	PC&タブレット、印刷専用スタイル
===================================== */
@media print,
screen and (min-width: 768px) {
	.pc {
		display: block !important;
	}

	.sp {
		display: none !important;
	}

	/* タイトルコンテナ */
	.title-container {
		text-align: center;
	}

	.title-container .num-box {
		border-bottom: 2px dashed #000;
		padding: 0 7em;
		display: inline-block;
	}

	.title-container .num-box p {
		font-size: 2rem;
		font-weight: 500;
		letter-spacing: 0.02rem;
		line-height: 2.6;
	}

	.title-container .num-box .num {
		font-size: 3.2rem;
		letter-spacing: 0.14rem;
		font-weight: 700;
		padding-left: 0.8rem;
		position: relative;
		top: 0.6rem;
	}

	.title-container .sub-title {
		font-size: 4.6rem;
		font-weight: 700;
		margin-top: 2.6rem;
		font-style: italic;
	}

	.sub-sub-title {
		font-size: 2rem;
		font-weight: 500;
		margin-top: 3em;
		margin-bottom: 0.6em;
	}

	.title-container .text {
		font-size: 1.2rem;
		padding-top: 0.6rem;
	}

	.sub-sub-title .green {
		font-size: 3rem;
		font-weight: 700;
		border-bottom: 2px solid #13b5b1;
		padding-bottom: 0.1em;
	}

	.sub-sub-title .small {
		font-size: 2.2rem;
	}

	/* テキストコンテナ */
	.sub-section .text-container {
		text-align: center;
		padding-top: 6rem;
		line-height: 2;
	}

	#sub02.sub-section .flex-item .text-container {
		text-align: left;
	}

	#sub01 .text-container .text:first-of-type {
		padding-bottom: 3rem;
	}

	/* イメージコンテナ */
	.sub-section .img-container {
		padding-top: 6rem;
	}

	#sub02.sub-section .img-container {
		width: 90%;
	}

	#sub01.sub-section .img-container {
		margin: 0 auto;
		padding-top: 7rem;
		width: 50%;
	}

	/* フレックスコンテナ */
	.flex-container {
		display: flex;
		justify-content: space-between;
		padding-bottom: 2em;
	}

	#sub04 .flex-container.column2 {
		justify-content: space-between;
	}

	#sub04 .flex-container.column2>.flex-item {
		width: 48%;
		margin-top: 4rem;
	}

	#sub04 .flex-container.column2>.flex-item:nth-of-type(-n+2) {
		margin-top: 0;
	}

	#sub04 .flex-container {
		padding-top: 5em;
	}

	.flex-container .flex-item.flex-text {
		width: 43%;
	}

	.flex-container .flex-item.flex-img {
		width: 57%;
	}

	/*フレックスボックス */
	.flexBox {
		display: flex;
		flex-wrap: wrap;
	}

	ul.flexBox.col3 > li {
		width: 29%;
		margin-top: 4em;
		margin-left: 6.3%;
	}

	ul.flexBox.col3 li:nth-child(3n-2) {
		margin-left: 0;
	}

	ul.flexBox.col3 li .flex-text-container {
		text-align: center;
	}

	ul.flexBox.col3 li .flex-text-container .text {
		font-size: 1.4rem;
		line-height: 1.6;
		padding-top: 0.8em;
		padding-bottom: 0.6em;
		text-align: left;
	}

	ul.flexBox.col3 li .flex-text-container p .num-icon {
		font-size: 2rem;
		font-weight: 500;
		color: #fff;
		background: #13b5b1;
		height: 44px;
		width: 44px;
		border-radius: 50%;
		line-height: 44px;
		text-align: center;
		display: inline-block;
	}

	ul.flexBox.col3 li .flex-text-container .sub-title {
		font-size: 2.2rem;
		font-weight: 500;
		padding-top: 0.6em;
	}

	ul.flexBox.col3 li .flex-text-container .sub-title .em {
		font-size: 1.7rem;
	}

	#sub01 ul.flexBox.col3 li .img {
		margin-top: 0.8em;
	}

	#sub01 ul.flexBox.col3 {
		padding-bottom: 2em;
		justify-content: space-between;
		width: 735px;
		margin: 0 auto;
	}

	#sub01 ul.flexBox.col3 li .flex-text-container {
		width: 205px;
		border: 4px solid #000;
		padding: 0.2em 0 1em;
		border-radius: 1rem;
		display: inline-block;
	}

	#sub01 ul.flexBox.col3 li .img {
		width: 175px;
		display: inline-block;
	}

	#sub01 ul.flexBox.col3 li {
		margin-top: 4em;
		margin-left: 0;
	}

	#sub01 ul.flexBox.col3 li:nth-child(3n-2) {
		margin-left: 0;
	}

	#sub03 .title-container.hr {
		border-top: 1px solid #eee;
		margin-top: 6em;
	}

	#sub03 .flex-item {
		margin-top: 5em;
	}

	#sub03 ul.flexBox.col3 li .img {
		margin: 0 auto;
		margin-top: 0.8em;
		width: 85%;
	}

	/* サブセクション */
	.sub-section {
		padding-top: 4rem;
		padding-bottom: 6rem;
	}

	.sub-section.bdr-top {
		margin-top: 6rem;
	}

	.caption-section .sub-item {
		padding-top: 4rem;
		padding-bottom: 8rem;
		border-top: solid 1px #999;
	}

	.sub-text {
		margin-top: 6rem;
	}

	.sub-img {
		margin-top: 6rem;
		text-align: center;
	}

	.sub-item .sub-title .subtt {
		font-size: 1.4rem;
	}

	/* サブコンテナー */
	.sub-container {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.sub-container .sub-item {
		width: 45%;
		padding-top: 8rem;
		padding-bottom: 26rem;
		position: relative;
	}

	.sub-container .sub-item:nth-of-type(-n+2) {
		padding-top: 0;
	}

	/* 外部リンク */
	.outer-link {
		width: 30rem;
		margin-top: 3rem;
	}

	/* 個別スタイル */
	.capTextR {
		text-align: right;
		font-size: 1.2rem;
	}

	.capText {
		font-size: 1.4rem;
		padding-left: 19rem;
		margin-top: 0.1em;
	}
}

/* ====================================
	スマートフォン専用スタイル
===================================== */
@media only screen and (max-width: 767px) {
	.pc {
		display: none !important;
	}

	.sp {
		display: block !important;
	}

	.spNl:BEFORE {
		content: "\A";
		white-space: pre;
	}

	.baseWidth {
		width: 100%;
		padding-left: 5%;
		padding-right: 5%;
	}

	#sub01.sub-section .sub-item {
		padding-top: 1em;
	}

	/* タイトルコンテナ */
	.title-container {
		text-align: center;
	}

	.title-container .num-box {
		border-bottom: 2px dashed #000;
		padding: 0 7em;
		padding-bottom: 0.2em;
		display: inline-block;
	}

	.title-container .num-box p {
		font-size: 1.8rem;
		font-weight: 500;
		letter-spacing: 0.02rem;
		line-height: 2.6;
	}

	.title-container .num-box .num {
		font-size: 2.8rem;
		letter-spacing: 0.14rem;
		font-weight: 700;
		padding-left: 0.8rem;
		position: relative;
		top: 0.4rem;
	}

	.title-container .sub-title {
		font-size: 2.6rem;
		font-weight: 700;
		margin-top: 2rem;
		font-style: italic;
	}

	.sub-sub-title {
		font-size: 1.8rem;
		font-weight: 500;
		margin-top: 3em;
		margin-bottom: 1em;
		line-height: 1.8;
	}

	.title-container .text {
		font-size: 1.2rem;
		padding-top: 0.6rem;
	}

	.sub-sub-title .green {
		font-size: 2.6rem;
		font-weight: 700;
		border-bottom: 2px solid #13b5b1;
		padding-bottom: 0.1em;
	}

	/* テキストコンテナ */
	.sub-section .text-container {
		padding-top: 4rem;
		line-height: 1.8;
		text-align: left;
		font-size: 1.4rem;
	}

	#sub01 .text-container .text:first-of-type {
		padding-bottom: 0rem;
	}

	#sub02.sub-section .flex-item .text-container {
		text-align: left;
	}

	#sub04.sub-section .text-container {
		text-align: center;
	}

	/* イメージコンテナ */
	.sub-section .img-container {
		padding-top: 6rem;
	}

	#sub01.sub-section .img-container {
		margin: 0 auto;
		padding-top: 7rem;
	}

	/* タイトルコンテナ */
	#sub03 .title-container.hr {
		border-top: 1px solid #eee;
		margin-top: 5em;
	}

	/* サブセクション */
	.sub-section {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}

	#sub01.sub-section {
		padding-top: 0;
	}

	#sub03.sub-section {
		padding-bottom: 8rem;
	}

	#sub04.sub-section {
		padding-bottom: 4rem;
	}

	.caption-section {
		padding-top: 4rem;
		padding-bottom: 8rem;
		border-top: solid 1px #999;
	}

	/*フレックスコンテナ */
	#sub04 .flex-container .flex-item {
		margin-top: 4em;
	}

	/*フレックスボックス */
	ul.flexBox.col3 li {
		margin-top: 30px;
	}

	ul.flexBox.col3 li .title {
		display: flex;
	}

	ul.flexBox.col3 li .title .black-label {
		display: flex;
		align-items: center;
		line-height: 1.4;
		text-align: center;
	}

	ul.flexBox.col3 li .title .title-text {
		margin-left: 1em;
		font-size: 1.5rem;
		font-weight: 500;
		line-height: 1.5;
	}

	ul.flexBox.col3 li .title .title-text em {
		font-size: 1.6rem;
	}

	ul.flexBox.col3 li .text {
		font-size: 1.4rem;
		line-height: 1.5;
		margin-top: 0.5em;
		padding-top: 1.4rem;
		padding-bottom: 1.6rem;
	}

	ul.flexBox.col3 li .flex-text-container p .num-icon {
		font-size: 2rem;
		font-weight: 500;
		color: #fff;
		background: #13b5b1;
		height: 38px;
		width: 38px;
		border-radius: 50%;
		line-height: 38px;
		text-align: center;
		display: inline-block;
		;
	}

	#sub01 ul.flexBox.col3 {
		padding-bottom: 2em;
		text-align: center;
	}

	#sub01 ul.flexBox.col3 li .flex-text-container {
		border: 2px solid #000;
		padding: 0.4em 2em 0.4em;
		border-radius: 1rem;
		display: inline-block;
	}

	#sub01 ul.flexBox.col3 li .img {
		width: 175px;
		display: inline-block;
		margin-top: 0.3rem;
	}

	#sub03 .flexBox.hr {
		border-top: 1px solid #eee;
		padding-bottom: 8em;
	}

	#sub03 .flex-item {
		margin-top: 4em;
	}

	#sub03 .flex-item .title {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	#sub03 .flex-item .sub-title {
		font-size: 2rem;
		font-weight: 500;
		padding-left: 1rem;
	}

	#sub03 .flex-item .sub-title .em {
		font-size: 1.5rem;
	}

	#sub03 ul.flexBox.col3 li .img {
		margin: 0 auto;
		margin-top: 0.8em;
		width: 85%;
	}
}