@charset "utf-8";

/* ------------------------------
 下層ページヘッダー（PC）
------------------------------ */
.heading {
	position: relative;
	display: flex;
	justify-content: center;
    align-items: center;
	width: 100%;
	min-height: 360px;
	margin-bottom: 90px;
	z-index: 1;
}
.heading::before {
	content: "";
	position: absolute;
	width: 97%;
	height: 100%;
	background: url(../img/heading_bg.jpg) no-repeat center / cover;
	border-radius: 30px;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	z-index: -1;
}
.heading::after {
	content: "";
	position: absolute;
	width: 404px;
	height: 352px;
	background: url(../img/ilust_about.png) no-repeat center / cover;
	left: calc(50% + 97% / 2 - 325px);
	bottom: -70px;
	margin: auto;
	z-index: -1;
}
@media print, screen and (min-width: 768px) {
}
@media print, screen and (min-width: 1921px) {
	.heading::before {
		width: 1840px;
	}
	.heading::after {
		left: calc(50% + 1840px / 2 - 325px);
	}
}
/* ------------------------------
 下層ページヘッダー（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.heading {
		min-height: 180px;
		margin-bottom: 145px;
	}
	.heading::before {
		width: 95%;
		background: url(../img/heading_bg_sp.jpg) no-repeat center / cover;
		border-radius: 15px;
	}
	.heading::after {
		width: 163px;
		height: 142px;
		left: 0;
		right: 0;
		bottom: -110px;
	}
}
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
h1,
h2,
h3,
h4,
h5,
h6,
.mainLead,
.text-lead,
.text-em {
	position: relative;
	z-index: 1;
	font-weight: 500;
	color: #000;
	letter-spacing: 0.03em;
	line-height: 1.5;
}
/* -- h1 -- */
.contents h1 {
	display: flex;
	flex-direction: column;
	justify-content: center;
    align-items: center;
	width: 70%;
	font-size: 4.8rem;
	color: #fff;
	text-align: center;
	padding: 40px 5%;
	margin: auto;
}
.contents h1::before {
	content: "";
	display: block;
	width: 78px;
	height: 7px;
	background-color: #fff;
	border-radius: 4px;
	margin-bottom: 25px;
}
/* -- h2 -- */
.contents h2 {
	font-size: 4.2rem;
	margin-bottom: 30px;
}
.contents h2::after {
	content: "";
	display: block;
	width: 100%;
	height: 7px;
	background-color: #f1f6f8;
	margin-top: 15px;
	z-index: -1;
}
.contents .bgBox h2::after,
.contents .bgText h2::after {
	background-color: #fff;
}
.contents h2::before {
	content: "";
	position: absolute;
	width: 80px;
	height: 7px;
    background: url(../img/h_bg.png) no-repeat center / cover;
    border-radius: 3px;
	left: 0;
	bottom: 0;
}
/* -- h3 -- */
.contents h3 {
	font-size: 2.6rem;
	margin-bottom: 15px;
}
.contents h3 span {
	display: inline;
	line-height: 2;
	background-color: #f1f6f8;
	border-radius: 3px;
	padding: 10px;
	-webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
.contents .bgBox h3 span {
	background-color: #fff;
}
/* -- h4 -- */
.contents h4 {
	font-size: 2.5rem;
	color: #007a46;
	margin-bottom: 10px;
}
/* -- h5 -- */
.contents h5 {
	font-size: 2.2rem;
	color: #45788a;
	border-bottom: dotted 1px #afccd8;
    padding-bottom: 5px;
    margin-bottom: 20px;
}
/* -- h6 -- */
.contents h6 {
	font-size: 2.0rem;
	color: #007A46;
	border-bottom: dotted 1px #a1c3d1;
	padding-bottom: 5px;
	margin-bottom: 15px;
}
/* -- 強調テキスト -- */
/* -- lead -- */
.mainLead {
	font-size: 2.2rem;
	letter-spacing: 0;
}
.text-lead {
	font-size: 2.0rem;
	letter-spacing: 0;
}
.text-em {
	font-size: 3.8rem;
	border-top: dotted 1px #A1C3D1;
	padding: 45px 0;
	margin-bottom: 0;
}
.text-em:last-child {
	border-bottom: dotted 1px #A1C3D1;
}
.text-em span {
	position: relative;
	display: block;
	font-size: 2.0rem;
	padding-left: 1em;
	margin-bottom: 5px;
}
.text-em span::before {
	content: "";
	position: absolute;
	width: 10px;
	height: 10px;
	background: rgb(87, 227, 27);
	background: linear-gradient(135deg, rgba(87, 227, 27, 1) 0%, rgba(0, 176, 138, 1) 100%);
	border-radius: 100%;
	top: 0.5em;
	left: 0;
}
/* 背景色付き（灰色） */
.text-marker,
.text-marker-gr {
	display: inline;
	background-color: #d5e4ea;
	padding: 4px 2px;
	border-radius: 3px;
	-webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
/* 背景色付き（緑） */
.text-marker-gr {
	color: #fff;
	background-color: #007A46;
}
@media print, screen and (min-width: 768px) {
	.contents .heading.noimg h1 {
		min-height: 360px;
	}
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- h1 -- */
	.contents h1 {
		width: 100%;
		font-size: 2.8rem;
	}
	.contents h1::before {
		width: 50px;
		height: 5px;
		margin-bottom: 10px;
	}
	/* -- h2 -- */
	.contents h2 {
		font-size: 2.7rem;
		line-height: 1.3;
		margin-bottom: 25px;
	}
	.contents h2::after {
		height: 5px;
		margin-top: 10px;
	}
	.contents h2::before {
		width: 60px;
		height: 5px;
	}
	/* -- h3 -- */
	.contents h3 {
		font-size: 2.2rem;
		margin-bottom: 15px;
	}
	.contents h3 span {
		padding: 8px;
	}
	/* -- h4 -- */
	.contents h4 {
		font-size: 2.0rem;
		margin-bottom: 15px;
	}
	/* -- h5 -- */
	.contents h5 {
		font-size: 1.8rem;
        margin-bottom: 15px;
	}
	/* -- lead -- */
	.mainLead {
		font-size: 2.9rem;
	}
	.text-lead {
		font-size: 1.6rem;
	}
}
/* ------------------------------
 横幅（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	/* 1/2 (546px) */
	.w546,
	.w1-2 {
		width: 47.895%;
	}
	/* 1/3 (350px) */
	.w358,
	.w1-3 {
		width: 30.703%;
	}
	.w358.cms_fl + .w358.cms_fl,
	.w358.fl + .w358.fl,
	.w1-3.cms_fl + .w1-3.cms_fl,
	.w1-3.fl + .w1-3.fl {
		margin-left: 3.9455%;
	}
	.w358.cms_fl + .w358.cms_fl.ml0 {
		margin-left: 0;
	}
	/* 2/3 (745px) */
	.w749,
	.w2-3 {
		width: 65.3515%;
	}
	/* 1/4 (258px) */
	.w246,
	.w1-4 {
		width: 22.632%;
	}
	.w246.cms_fl + .w246.cms_fl,
	.w246.fl + .w246.fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w1-4.fl + .w1-4.fl {
		margin-left: 3.158%;
	}
	/* 3/4 (846px) */
	.w842,
	.w3-4 {
		width: 74.211%;
	}
	/* その他 */
	.w860 {
		width: 860px;
	}
}
/* ----------------------
 横幅（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.w246,
	.w1-4 {
		width: 47.25%;
	}
	.w246.cms_fl,
	.w1-4.cms_fl {
		float: left !important;
	}
	.w246.cms_fl + .w246.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w246.cms_fl + .w246.cms_fl + .w246.cms_fl + .w246.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl {
		margin-left: 5.5%;
	}
	.w246.cms_fl + .w246.cms_fl + .w246.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl {
		margin-bottom: 0;
		margin-left: 0;
	}
}
/* ------------------------------
 ボックス（PC）
------------------------------ */
/* 横並び */
.flexBox {
	display: flex !important;
	flex-wrap: wrap;
}
.cms_block.flexBox::after {
	content: none;
}
/* 横並び センター揃え */
.flexBox.jc-c {
	justify-content: center;
}
/* 横並び 端揃え */
.flexBox.jc-sb {
	justify-content: space-between;
}
/* 横並び 縦センター揃え */
.flexBox.ai-c {
	align-items: center;
}
/* 横並び4列（SP横並び2列） */
.flexBox.div4 {
	flex-wrap: wrap;
	gap: 30px 3.158%;
}
/* 横並びで写真キャプションが上 */
.flexBox.capTop > * {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
/* flexBoxの中でも横並びにしない */
.flexBox.h100p > h2,
.flexBox.h100p > h3 {
	width: 100% !important;
	text-align: center !important;
}
.flexBox .fg-1 {
	flex-grow: 1;
}
/* ボタン・リンク・リスト等の横並び */
.inline {
	display: flex;
	flex-flow: row wrap;
	gap: 20px;
}
.cms_block.inline::after {
	content: none;
}
@media print, screen and (min-width: 768px) {
	/* 横並び2列 */
	.flexBox.div2 {
		flex-wrap: wrap;
		gap: 30px 4.211%;
	}
	.flexBox.div2 > * {
		width: 47.895%;
		margin-bottom: 0;
	}
	/* 横並び3列 */
	.flexBox.div3 {
		flex-wrap: wrap;
		gap: 15px 3.948%;
	}
	.flexBox.div3 > * {
		width: 30.702%;
		margin-bottom: 0;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 > * {
		width: 22.632%;
		margin-bottom: 0;
	}
}
/* ------------------------------
 ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並び2列・横並び3列 */
	.flexBox.div2,
	.flexBox.div3 {
		display: block !important;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		flex-wrap: wrap;
		gap: 25px 5.5%;
	}
	.flexBox.div4 > * {
		width: 47.25%;
		margin-bottom: 0;
	}
	/* 横並び4列（SP横並びにしない） */
	.flexBox.div4.sp_nodiv {
		display: block;
	}
	.flexBox.div4.sp_nodiv > * {
		width: 100%;
	}
	/* ボタン・リンク・リスト等の横並び */
	.inline {
		flex-direction: column;
		gap: 5px;
	}
}
/* ------------------------------
 順番指定
------------------------------ */
@media print, screen and (min-width: 768px) {
	.order1 { order: 1;}
	.order2 { order: 2;}
	.order3 { order: 3;}
}
@media screen and (max-width: 767px) {
	.sp_order1 { order: 1;}
	.sp_order2 { order: 2;}
	.sp_order3 { order: 3;}
}
/* ------------------------------
 テーブル（PC）
------------------------------ */
/* デフォルト */
.contents table {
	width: 100%;
	border-collapse: collapse;
	border-collapse: separate;
	border-radius: 25px;
	overflow: hidden;
}
.contents table th,
.contents table td {
	padding: 20px;
	background-color: #f1f6f8;
	border-bottom: dotted 1px #afccd8;
}
.contents table tr:last-child th,
.contents table tr:last-child td {
	border-bottom: none;
}
.contents table th:not(:last-child),
.contents table td:not(:last-child) {
	border-right: dotted 1px #afccd8;
}
.contents table th {
	background-color: #e3edf1;
}
.contents table thead th {
	color: #fff;
	text-align: center;
	vertical-align: middle;
	background-color: #007a46;
}
.contents table thead th:not(:last-child) {
	border-color: #66af90;
}
/* スクロール */
.cms_text.scroller {
	overflow-y: hidden !important;
	padding: 1px;
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents table {
		border-radius: 15px;
	}
	.contents table th,
	.contents table td {
		padding: 15px;
	}
	/* レスポンシブ */
	.contents .res table th,
	.contents .res table td {
		width: auto !important;
		display: block;
	}
	.contents .res table th {
		border-right: none;
	}
	.contents .res table tr:last-child th {
		border-bottom: dotted 1px #a1c3d1;
	}
	/* スクロール */
	.cms_text.scroller table {
		width: 1140px !important;
	}
	/* コンテンツ幅が狭い時のスクロール */
	.mainContents .cms_text.scroller table {
		width: 820px !important;
	}
	/* スクロールヒント */
	.contents .scroll-hint-icon {
		width: 120px;
		height: 92px;
		border-radius: 10px;
		background: rgba(69, 120, 138, 0.5);
		padding-top: 23px;
	}
	.contents .scroll-hint-icon::before {
		width: 32px;
		height: 40px;
		background-image: url(../img/icon_scrollhint.svg);
	}
	.contents .scroll-hint-icon::after {
		width: 32px;
		height: 11px;
		top: 16px;
		margin-left: -19px;
		background-image: url(../img/icon_scrollhint_arrow.svg);
	}
	.contents .scroll-hint-text {
		font-family: 'Barlow', sans-serif;
		font-weight: 600;
		letter-spacing: 0.03em;
		margin-top: 1px;
	}
	.contents .scroll-hint-icon-wrap.is-active .scroll-hint-icon {
		opacity: 1;
	}
}
/* ------------------------------
 リスト（PC）
------------------------------ */
/* ノーマルリスト●付き */
.cms_block ul > li {
	position: relative;
	padding-left: 0.85em;
}
.cms_block ul > li::before {
	content: "●";
	position: absolute;
	top: 0.5em;
	left: 0;
	color: #007a46;
	font-size: 65%;
}
.cms_block ul > li > ul li::before {
	color: #a1c3d1;
}
/* 注釈リスト */
.cms_block .cms_text.list-note > ul > li,
.cms_block ul.list-note > li {
	padding-left: 1.4em;
}
.cms_block .cms_text.list-note > ul > li::before,
.cms_block ul.list-note > li::before {
	content: "※";
	font-size: 100%;
	color: #000;
	top: 0;
}
/* チェックリスト */
.cms_block .cms_text.list-check > ul > li,
.cms_block ul.list-check > li {
	padding-left: 1.4em;
}
.cms_block .cms_text.list-check > ul > li::before,
.cms_block ul.list-check > li::before {
	content: "";
	width: 16px;
	height: 16px;
	background-color: #007a46;
	border-radius: 3px;
	top: 0.5em;
}
.cms_block .cms_text.list-check > ul > li::after,
.cms_block ul.list-check > li::after {
	content: "";
	position: absolute;
	width: 12px;
	height: 4px;
	border-left: solid 3px #fff;
	border-bottom: solid 3px #fff;
	top: 6px;
	left: 3px;
	transform: rotate(-45deg);
}
/* 数字リスト */
.cms_block ol:not([start]) { counter-reset: cnt 0; }
.cms_block ol[start="2"] { counter-reset: cnt 1; }
.cms_block ol[start="3"] { counter-reset: cnt 2; }
.cms_block ol[start="4"] { counter-reset: cnt 3; }
.cms_block ol[start="5"] { counter-reset: cnt 4; }
.cms_block ol > li {
	position: relative;
    counter-increment: cnt;
	padding-left: 1.8em;
}
.cms_block ol > li::before {
	content: counter(cnt) '.';
	position: absolute;
	width: 1.5em;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 100%;
	font-weight: bold;
	color: #007a46;
	text-align: right;
    line-height: 1;
	top: 0.45em;
	left: 0;
}
.cms_block ol > li > ul {
	margin: 5px 0;
}
/* 数字リスト */
.cms_block .cms_text.list-c ol > li,
.cms_block ol.list-c > li {
	position: relative;
    counter-increment: cnt;
	padding-left: 1.25em;
}
.cms_block .cms_text.list-c ol > li::before,
.cms_block ol.list-c > li::before {
	content: counter(cnt);
	position: absolute;
	width: 17px;
	height: 17px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 60%;
	font-weight: bold;
	color: #fff;
	line-height: 17px;
	text-align: center;
	background-color: #007A46;
	border-radius: 50%;
	top: 0.6em;
	left: 0;
}
/* 強調リスト */
.cms_block .cms_text.list-em ul > li,
.cms_block ul.list-em > li,
.cms_block .cms_text.list-em ol > li,
.cms_block ol.list-em > li {
	background-color: #f1f6f8;
	border-radius: 15px;
	padding: 25px 30px;
}
.cms_block .cms_text.list-em > ul > li::before,
.cms_block ul.list-em > li::before {
	content: "";
	width: 20px;
	height: 7px;
	background-color: #007a46;
	border-radius: 0 3px 3px 0;
	top: calc(30px + 0.5em);
}
.cms_block .cms_text.list-em > ul > li:not(:last-child),
.cms_block ul.list-em > li:not(:last-child) {
	margin-bottom: 10px;
}
.cms_block .cms_text.list-em > ul > li span:not([class]),
.cms_block ul.list-em > li span:not([class]) {
	position: relative;
	display: block;
	font-size: 2.3rem;
	line-height: 1.3;
}
.cms_block .cms_text.list-em ol > li,
.cms_block ol.list-em > li {
	font-size: 2.0rem;
	font-weight: 500;
	border-bottom: dotted 1px #bdd5df;
	padding-bottom: 10px;
	margin-bottom: 10px;
}
/* 横並びリスト（列揃えない） */
.list-flex ul {
	display: flex;
	flex-flow: row wrap;
	gap: 0 2em;
}
table .list-flex ul {
	gap: 0 1em;
}
/* 下マージン付きリスト */
.cms_block .cms_text.list-mb1em ul > li,
.cms_block ul.list-mb1em > li,
.cms_block .cms_text.list-mb1em ol > li,
.cms_block ol.list-mb1em > li {
	margin-bottom: 1em;
}
@media print, screen and (min-width: 768px) {
	/* 折り返すリスト */
	.list-grid ul,
	.list-grid ol {
		display: grid;
		grid-template-rows: repeat(4, auto);
		grid-template-columns: repeat(auto-fit, minmax(100px, max-content));
		grid-auto-flow: column;
		gap: 0 20px;
	}
	/* 横並びリスト（2列） */
	.list-grid-row ul,
	.list-grid-row ol,
	.list-grid-row-3 ul,
	.list-grid-row-3 ol,
	.list-grid-row-4 ul,
	.list-grid-row-4 ol {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 35px;
	}
	/* 横並びリスト（3列） */
	.list-grid-row-3 ul,
	.list-grid-row-3 ol,
	.list-grid-row-4 ul,
	.list-grid-row-4 ol {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 0 20px;
	}
	/* 横並びリスト（4列） */
	.list-grid-row-4 ul,
	.list-grid-row-4 ol {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
}
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* ノーマルリスト●付き */
	.cms_block ul > li::before {
		top: 0.45em;
	}
	/* チェックリスト */
	.cms_block .cms_text.list-check ul > li,
	.cms_block ul.list-check > li {
		padding-left: 1.2em;
	}
	.cms_block .cms_text.list-check ul > li::before,
	.cms_block ul.list-check > li::before {
		width: 14px;
		height: 14px;
		top: 0.55em;
	}
	.cms_block .cms_text.list-check ul > li::after,
	.cms_block ul.list-check > li::after {
		width: 10px;
		border-width: 2px;
	}
	/* 強調リスト */
	.cms_block .cms_text.list-em > ul > li,
	.cms_block ul.list-em > li {
		padding: 20px 5% 20px 6%;
	}
	.cms_block .cms_text.list-em > ul > li span:not([class]),
	.cms_block ul.list-em > li span:not([class]) {
		font-size: 2.0rem;
		margin-bottom: 5px;
	}
	.cms_block .cms_text.list-em > ul > li:before,
	.cms_block ul.list-em > li:before {
		width: 14px;
    	height: 6px;
		top: calc(25px + 0.5em);
	}
	.cms_block .cms_text.list-em ol > li,
	.cms_block ol.list-em > li {
		font-size: 1.8rem;
	}
	/* 数字リスト */
	.cms_block ol > li {
		padding-left: 1.65em;
	}
	.cms_block ol > li::before {
		top: 0.45em;
	}
	/* 数字リスト */
	.cms_block .cms_text.list-c ol > li::before,
	.cms_block ol.list-c > li::before {
		width: 15px;
		height: 15px;
		top: 0.6em;
	}
}
/* ------------------------------
 角丸（PC）
------------------------------ */
.r10,
.r10 img {
	border-radius: 10px;
}
.r25,
.r25 img {
	border-radius: 25px;
}
.nor,
.cms_image.nor img,
.cms_block > .cms_image.nor img {
	border-radius: 0;
}
/* ------------------------------
 角丸（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.r10,
	.r10 img {
		border-radius: 6px;
	}
	.r25,
	.r25 img {
		border-radius: 15px;
	}
}
/* ------------------------------
 画像（PC）
------------------------------ */
.cms_image img {
	border-radius: 25px;
}
/* ------------------------------
 画像（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_image img {
		border-radius: 15px;
	}
}
/* ------------------------------
 背景（PC）
------------------------------ */
.bgBox,
.bgText {
	background-color: #f1f6f8;
	border-radius: 20px;
	padding: 60px 50px;
}
.bgText {
	padding: 25px;
}
/* ------------------------------
 背景（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.bgBox,
	.bgText {
		border-radius: 15px;
	}
	.bgBox {
		padding: 30px 5%;
	}
	.bgText {
		padding: 20px 5%;
	}
}
/* ------------------------------
 線（PC）
------------------------------ */
/* 上 */
.line-t {
	border-top: dotted 1px #000;
	padding-top: 20px;
}
/* 下 */
.line-b {
	border-bottom: dotted 1px #000;
	padding-bottom: 20px;
}
/* ------------------------------
 リンク（PC）
------------------------------ */
/* 横並びリンク */
.inlineLink {
	display: flex;
	flex-flow: row wrap;
	gap: 20px;
}
.inlineLink.tac {
	justify-content: center;
}
/* 表組内のリンク */
table a.cms_link,
table .cms_link a,
table a.cms_pdf,
table .cms_pdf a,
table a.cms_doc,
table .cms_doc a,
table a.cms_xl,
table .cms_xls a {
	font-size: inherit !important;
}
/* ------------------------------
 リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並びリンク */
	.inlineLink {
		flex-direction: column;
		gap: 5px;
	}
}
/* ------------------------------
 ボタン（PC）
------------------------------ */
/*デフォルト*/
.btn a {
	display: inline-flex;
	align-items: center;
	min-width: 256px;
	min-height: 80px;
	position: relative;
	font-size: 1.8rem;
	color: #262626;
	text-align: left;
	text-decoration: none;
	background-color: #fff;
	border: solid 1px #d0dde2;
	border-radius: 50px;
	padding: 0 75px 0 35px;
	transition: .3s ease-in-out;
	z-index: 1;
}
.btn a::after {
	content: "";
	position: absolute;
	width: 41px;
	height: 41px;
	background: url(../img/icon_link.png) no-repeat center / cover;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto !important;
}
.btn a[target="_blank"]::after {
	background: url(../img/icon_link_blank.png) no-repeat center / cover;
}
p.btn:not(:last-child) {
	margin-bottom: 15px;
}
@media print, screen and (min-width: 768px) {
	/* f18 */
	.btn.f18 a {
		font-size: 1.8rem;
	}
}
/* ------------------------------
 ボタン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/*デフォルト*/
	.btn a,
	a.btn {
		min-height: 76px;
		font-size: 1.6rem;
		padding: 0 55px 0 20px;
	}
	.btn a::after {
		width: 36px;
    	height: 36px;
		right: 15px;
	}
}
/* ------------------------------
 ページ内リンク（PC）
------------------------------ */
.pageLink {
	display: flex;
	justify-content: center;
}
.pageLink ul {
	display: flex;
	justify-content: center;
	flex-flow: row wrap;
	gap: 15px 0;
}
.pageLink ul li {
    padding-left: 0;
	border-left: dotted 1px #d0dde2;
	border-right: dotted 1px #d0dde2;
}
.pageLink ul li:not(:first-child) {
	margin-left: -1px;
}
.pageLink ul li::before {
    content: none;
}
.pageLink ul li a {
	position: relative;
	display: block;
	font-size: 1.6rem;
	color: #262626;
	text-decoration: none;
	padding: 0px 20px 10px;
}
.pageLink ul li a::after {
	content: "";
	position: absolute;
	width: 6px;
	height: 6px;
	border-left: solid 2px #007a46;
	border-bottom: solid 2px #007a46;
	transform: rotate(-45deg);
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}
@media print, screen and (min-width: 768px) {
	.pageLink ul {
		max-width: 980px;
	}
}
/* ------------------------------
 ページ内リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.pageLink ul li a {
		font-size: 1.4rem;
		padding: 0px 10px 6px;
	}
	.pageLink ul li a::after {
		bottom: 2px;
	}
}
/* ------------------------------
 パンくず（PC）
------------------------------ */
.crumb {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 62px;
	background-color: #ecf3f6;
	padding: 10px 0;
	margin-top: 155px;
}
.crumb ul {
	display: flex;
	align-items: center;
	flex-flow: row wrap;
}
.crumb ul li {
	position: relative;
	font-size: 1.4rem;
	color: #45788a;
}
.crumb ul li:not(:last-child)::after {
	content: "/";
	display: inline-block;
	color: #262626;
	margin: 0 10px;
}
.crumb ul li a {
	display: inline-flex;
	align-items: center;
	font-size: 1.4rem;
	font-weight: normal;
	color: #262626;
}
.crumb ul li.home a::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	background: url(../img/icon_home.svg) no-repeat center / cover;
	vertical-align: middle;
	margin-right: 8px;
    margin-bottom: 4px;
}
/* ------------------------------
 パンくず（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.crumb {
		min-height: 50px;
		padding: 5px 0;
		margin-top: 60px;
	}
	.crumb ul li,
	.crumb ul li a {
		font-size: 1.3rem;
	}
}
/* ------------------------------
 下層ページリンク（PC）
------------------------------ */
.cms_block ul.lowerLink > li {
	padding: 0;
	box-shadow: rgb(23 145 188 / 15%) 0px 0px 10px;
	border-radius: 20px;
	overflow: hidden;
}
.cms_block ul.lowerLink > li::before {
	content: none;
}
.lowerLink > li > a {
	text-decoration: none;
}
.lowerLink > li > a .textBox p {
	font-size: 1.6rem;
	color: #000;
}
.lowerLink > li > a .textBox p:not(.title) {
	margin-top: 5px;
}
.lowerLink > li > a .textBox p.title {
	font-size: 1.9rem;
	font-weight: 500;
	line-height: 1.5;
}
.lowerLink > li > a .textBox {
	position: relative;
	background-color: #fff;
    padding: 22px 25px;
	z-index: 1;
}
.lowerLink > li > a .textBox:not(figure + .textBox) {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	min-height: 100px;
    padding: 22px 70px 22px 25px;
}
.lowerLink > li > a .textBox::after {
	content: "";
	position: absolute;
	width: 42px;
	height: 42px;
	background: #fff url(../img/arrow_link_btn.svg) no-repeat center 75% / 42px 42px;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
}
.lowerLink > li > a[target="_blank"] .textBox::after {
	background: #fff url(../img/icon_blank_btn.svg) no-repeat center 75% / 42px 42px;
}
.lowerLink > li > a figure + .textBox::after {
	content: "";
	position: absolute;
	width: 80px;
	height: 65px;
	border-radius: 20px 0 0 0;
	top: -50px;
	bottom: auto;
	right: 0;
}
.lowerLink > li > a figure + .textBox::before {
	content: "";
    width: 50px;
    height: 50px;
    background: transparent;
    position: absolute;
    border-radius: 20px;
    box-shadow: 25px 25px 0 0 #fff;
    top: -50px;
    right: 80px;
    overflow: hidden;
    z-index: -1;
}
/* ----------------------
 下層ページリンク（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.cms_block ul.lowerLink > li {
		border-radius: 15px;
		box-shadow: rgb(23 145 188 / 10%) 0px 0px 8px;
	}
	.lowerLink > li:not(:last-child) {
		margin-bottom: 20px;
	}
	.lowerLink > li > a .textBox p {
		font-size: 1.5rem;
		line-height: 1.5;
	}
	.lowerLink > li > a .textBox p:not(.title) {
		margin-top: 5px;
	}
	.lowerLink > li > a .textBox p.title {
		font-size: 1.8rem;
	}
	.lowerLink > li > a .textBox {
		padding: 22px 5%;
	}
	.lowerLink > li > a .textBox:not(figure + .textBox) {
		min-height: 90px;
		padding: 22px calc(5% + 40px) 22px 5%;
	}
	.lowerLink > li > a .textBox::after {
		width: 36px;
		height: 36px;
		background: #fff url(../img/arrow_link_btn.svg) no-repeat center 75% / 36px 36px;
		right: 5%;
	}
	.lowerLink > li > a[target="_blank"] .textBox::after {
		background: #fff url(../img/icon_blank_btn.svg) no-repeat center 75% / 36px 36px;
	}
	.lowerLink > li > a figure + .textBox::after {
		width: 65px;
		height: 54px;
		border-radius: 15px 0 0 0;
		top: -44px;
	}
	.lowerLink > li > a figure + .textBox::before {
		width: 44px;
		height: 44px;
		border-radius: 15px;
		box-shadow: 22px 22px 0 0 #fff;
		top: -44px;
		right: 65px;
	}
}

/* ------------------------------
 FAQ（PC）
------------------------------ */
.faq .q,
.faq .a {
	position: relative;
	padding: 23px 20px 23px 75px;
}
.faq .q {
	font-size: 1.8rem;
	background-color: #f1f6f8;
}
.faq .a {
	padding-right: 0;
}
.faq .q p,
.faq .a p {
	position: absolute;
	width: 36px;
	height: 36px;
	left: 25px;
	top: 0;
	bottom: 0;
	margin: auto;
	z-index: 1;
}
.faq .q p span,
.faq .a p span {
	display: block;
	width: 100%;
	height: 100%;
    font-family: Arial, Helvetica, sans-serif;
	font-size: 1.9rem;
	font-weight: bold;
	text-align: center;
	line-height: 36px;
}
.faq .q p span {
	background: #57E31B;
    background: linear-gradient(90deg, rgba(87, 227, 27, 1) 0%, rgba(0, 176, 138, 1) 100%);
	-webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.faq .a p span {
	color: #fff;
}
.faq .q p::before,
.faq .a p::before,
.faq .q p::after,
.faq .a p::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
}
.faq .q p::before,
.faq .a p::before {
	width: 100%;
	height: 100%;
	background: #57E31B;
    background: linear-gradient(90deg, rgba(87, 227, 27, 1) 0%, rgba(0, 176, 138, 1) 100%);
	z-index: -2;
}
.faq .a p::before {
	background-color: #fff;
}
.faq .q p::after,
.faq .a p::after {
	width: calc(100% - 2px);
	height: calc(100% - 2px);
	background-color: #fff;
	z-index: -1;
}
.faq .a p::after {
	background: #57E31B;
    background: linear-gradient(90deg, rgba(87, 227, 27, 1) 0%, rgba(0, 176, 138, 1) 100%);
}
/* ------------------------------
 FAQ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.faq .q,
	.faq .a {
		font-size: 1.6rem;
		line-height: 1.5;
		padding: 20px 3% 20px calc(5% + 35px);
	}
	.faq .a {
		padding-right: 0;
	}
	.faq .q p,
	.faq .a p {
		width: 28px;
		height: 28px;
	    top: 23px;
		bottom: auto;
        left: calc(5% - 1px);
	}
	.faq .q p span,
	.faq .a p span {
		font-size: 1.5rem;
		line-height: 28px;
	}
}
/* ------------------------------
 動画埋め込み
------------------------------ */
.movieBox iframe {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 20px;
	aspect-ratio: 1.78 / 1;
	object-fit: cover;
}
/* ----------------------
  動画埋め込み（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.movieBox iframe {
		border-radius: 15px;
	}
}