@charset "utf-8";

/* ------------------------------
 下層ページヘッダー（PC）
------------------------------ */
.heading {
	position: relative;
	z-index: 1;
	width: 100%;
	margin-bottom: 120px;
}
.heading::before {
	content: "";
	position: absolute;
	width: 1920px;
	height: 100%;
	background-color: #f1f6f8;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 11px), 70% calc(100% - 116px), 29% 100%, 0 calc(100% - 82px));
	top: 0;
	left: calc(50% - 1920px / 2);
	z-index: -1;
}
.heading .inBlock {
	position: relative;
	height: 100%;
	padding: 100px 0;
}
.heading:not(.noimg) .inBlock {
	display: flex;
	justify-content: space-between;
}
/* メイン画像無し */
.heading.noimg .inBlock::after {
	content: "";
	position: absolute;
	width: 360px;
	height: 306px;
	background: url(../img/bg_heading_noimg.png) no-repeat center / cover;
	right: -347px;
	bottom: -60px;
}
@media print, screen and (min-width: 768px) {
	.heading,
	.heading .inBlock {
		min-height: 595px;
	}
	.heading:not(.noimg) .inBox {
		width: 47.895%;
		height: fit-content;
		margin: auto 0;
	}
	.heading figure {
		position: absolute;
		width: 812px;
		height: 662px;
		top: 35px;
		right: -282px;
	}
	.heading figure img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	/* メイン画像無し */
	.heading.noimg,
	.heading.noimg .inBlock {
		min-height: 380px;
	}
	.heading.noimg .inBlock::before {
		content: "";
		position: absolute;
		width: 276px;
		height: 194px;
		background: url(../img/bg_heading_noimg_pc.png) no-repeat center / cover;
		left: -390px;
		top: 0;
	}
}
/* ------------------------------
 下層ページヘッダー（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.heading {
		width: 100%;
		min-height: 277px;
		margin-bottom: 15px;
	}
	.heading::before {
		width: 100%;
        height: 75%;
        min-height: 277px;
    	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), 39% calc(100% - 37px), 13% 100%, 0 calc(100% - 20px));
		left: 0;
		right: 0;
		margin: auto;
	}
	.heading,
	.heading .inBlock {
		min-height: 277px;
	}
	.heading:not(.noimg) .inBlock {
		flex-direction: column;
		padding: 40px 0 0;
	}
	.heading:not(.noimg) .inBox {
    	margin-bottom: 10px;
	}
	.heading figure {
		position: relative;
		width: 274px;
        height: auto;
        margin-left: auto;
        margin-right: -2.5%;
	}
	/* メイン画像無し */
	.heading.noimg,
	.heading.noimg .inBlock {
		min-height: 200px;
	}
	.heading.noimg {
		margin-bottom: 40px;
	}
	.heading.noimg::before {
		height: 100%;
		min-height: 200px;
		clip-path: polygon(0 0, 100% 0, 100% 100%, 61% calc(100% - 36px), 31% 100%, 0 calc(100% - 36px));
	}
	.heading.noimg .inBlock {
		padding: 50px 0 78px;
	}
	.heading.noimg .inBlock::after {
		width: 121px;
		height: 103px;
		right: -2.5%;
		bottom: -25px;
	}
}

/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
h1,
h2,
h3,
h4,
h5,
h6,
.mainLead,
.text-lead,
.text-em {
	position: relative;
	z-index: 1;
	font-weight: bold;
	color: #000;
	letter-spacing: 0.040em;
	line-height: 1.5;
}
/* -- h1 -- */
.contents h1 {
	font-size: 5.2rem;
	letter-spacing: 0.040em;
	line-height: 1.3;
	margin-bottom: 65px;
}
.contents h1 span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    min-width: 146px;
    font-family: "Ubuntu", sans-serif;
    font-size: 1.7rem;
    font-weight: bold;
    color: #fff;
	line-height: 2;
    letter-spacing: 0.030em;
    background: url(../../img/bg_h2.png) no-repeat center / cover;
    border-radius: 10px 10px 0 0;
    margin-bottom: 30px;
}
.contents .heading.noimg h1 {
	margin-bottom: 15px;
}
/* -- h2 -- */
.contents h2 {
	font-size: 3.2rem;
	line-height: 1.25;
	padding-left: 25px;
	margin-bottom: 30px;
}
.contents h2::before {
	content: "";
	position: absolute;
	width: 8px;
	height: 100%;
	min-height: 40px;
	background-color: #007a46;
	border-radius: 2px;
    top: 2px;
	left: 0;
    margin: auto;
}
/* -- h3 -- */
.contents h3 {
	font-size: 2.4rem;
	background-color: #f1f6f8;
	border-radius: 6px;
	padding: 15px;
	margin-bottom: 25px;
}
/* -- h4 -- */
.contents h4 {
	font-size: 2.4rem;
	margin-bottom: 15px;
}
/* -- h5 -- */
.contents h5 {
	font-size: 2.2rem;
    margin-bottom: 20px;
}
.contents h5::after {
	content: "";
	display: block;
	width: 100%;
	height: 4px;
	background-color: #e7f0f4;
	border-radius: 2px;
	margin-top: 10px;
}
.contents h5::before {
	content: "";
	position: absolute;
	width: 36px;
	height: 4px;
	background-color: #007a46;
	border-radius: 2px;
	bottom: 0;
	left: 0;
}
/* -- h6 -- */
.contents h6 {
	font-size: 2.2rem;
	margin-bottom: 10px;
}
/* -- 強調テキスト -- */
/* -- lead -- */
.mainLead {
	font-size: 3.2rem;
}
.text-lead {
	font-size: 1.8rem;
	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;
	line-height: 2;
	background-color: #d5e4ea;
	padding: 1px 5px 4px;
	border-radius: 3px;
	-webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
/* 背景色付き（緑） */
.text-marker-gr {
	color: #fff;
	background-color: #007A46;
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- h1 -- */
	.contents h1 {
		font-size: 2.8rem;
		line-height: 1.5;
		margin-bottom: 5px;
	}
	.contents h1 span {
		min-width: 92px;
		min-height: 20px;
		font-size: 1.1rem;
		padding: 2px 0 1px;
		margin-bottom: 5px;
	}
	.contents .heading.noimg h1 {
		margin-bottom: 5px;
	}
	/* -- h2 -- */
	.contents h2 {
		font-size: 2.5rem;
		line-height: 1.35;
		padding-left: 20px;
		margin-bottom: 25px;
	}
	.contents h2::before {
		min-height: 34px;
	}
	/* -- h3 -- */
	.contents h3 {
		font-size: 2.0rem;
		padding: 12px;
		margin-bottom: 15px;
	}
	/* -- h4 -- */
	.contents h4 {
		font-size: 1.8rem;
		margin-bottom: 10px;
	}
	/* -- h5 -- */
	.contents h5 {
		font-size: 1.6rem;
		margin-bottom: 15px;
	}
	.contents h5::before {
		width: 30px;
	}
	.contents h5::before,
	.contents h5::after {
		height: 3px;
	}
	/* -- h6 -- */
	.contents h6 {
		font-size: 1.6rem;
		margin-bottom: 5px;
	}
	/* -- lead -- */
	.mainLead {
		font-size: 2.5rem;
	}
	.text-lead {
		font-size: 1.6rem;
	}
	/* 背景色付き（灰色） */
	.text-marker,
	.text-marker-gr {
		padding: 1px 4px 3px;
		border-radius: 2px;
	}
}
/* ------------------------------
 横幅（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: solid 1px #a1c3d1;
	border-collapse: separate;
	border-radius: 25px;
	overflow: hidden;
}
.contents table th,
.contents table td {
	background-color: #fff;
	border-bottom: dotted 1px #a1c3d1;
	padding: 20px 25px;
}
.contents table th {
	font-weight: bold;
	background-color: #f1f6f8;
}
.contents table th:not(:last-child),
.contents table td:not(:last-child) {
	border-right: dotted 1px #a1c3d1;
}
.contents table tr:last-child th,
.contents table tr:nth-last-child(2) th[rowspan="2"],
.contents table tr:nth-last-child(3) th[rowspan="3"],
.contents table tr:nth-last-child(4) th[rowspan="4"],
.contents table tr:nth-last-child(5) th[rowspan="5"],
.contents table tr:nth-last-child(6) th[rowspan="6"],
.contents table tr:nth-last-child(7) th[rowspan="7"],
.contents table tr:last-child td,
.contents table tr:nth-last-child(2) td[rowspan="2"],
.contents table tr:nth-last-child(3) td[rowspan="3"],
.contents table tr:nth-last-child(4) td[rowspan="4"],
.contents table tr:nth-last-child(5) td[rowspan="5"],
.contents table tr:nth-last-child(6) td[rowspan="6"],
.contents table tr:nth-last-child(7) td[rowspan="7"] {
    border-bottom: none;
}
.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;
}
/* 沿革 */
.contents .schedule table {
	border: none;
	border-collapse: collapse;
	border-radius: 0;
	overflow: unset;
}
.contents .schedule table th:not(:last-child),
.contents .schedule table td:not(:last-child) {
	border-right: none;
}
.contents .schedule table tr th,
.contents .schedule table tr td {
	background-color: transparent;
}
.contents .schedule table tr:not(:last-child) th,
.contents .schedule table tr:not(:last-child) td {
	border-bottom: none;
}
.contents .schedule table tr th {
	font-size: 2.0rem;
	padding: 0 15px 0 0;
}
.contents .schedule table tr th span {
    font-size: 1.6rem;
}
.contents .schedule table tr td {
	position: relative;
	padding: 5px 0 5px 15px;
}
.contents .schedule table tr td::before {
    content: "";
    position: absolute;
    width: 0;
    height: 100%;
	border-left: dotted 1px #007a46;
    top: 20px;
    left: 0;
    margin: auto;
}
.contents .schedule table tr:last-child td::before {
	content: none;
}
.contents .schedule table tr td::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    background-color: #007a46;
    border-radius: 3px;
    top: 14px;
    left: -4px;
    margin: auto;
}
.contents .schedule table tr td img {
    margin-top: 10px;
}
/* スクロール */
.cms_text.scroller {
	overflow-y: hidden !important;
	padding: 1px;
}
@media print, screen and (min-width: 768px) {
	/* デフォルト */
	.contents table th {
		width: 15%;
	}
	/* 沿革 */
	.contents .schedule table tr th {
		width: 19.5%;
	}
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents table {
		border-radius: 15px;
	}
	.contents table th,
	.contents table td {
		padding: 10px 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;
	}
	/* 沿革 */
	.contents .schedule table tr th,
	.contents .schedule table tr td {
		line-height: 1.5;
	}
	.contents .schedule table tr th {
		width: 27%;
		font-size: 1.6rem;
		padding-bottom: 15px;
		padding-right: 5px;
	}
	.contents .schedule table tr th span {
		display: block;
		font-size: 1.4rem;
	}
	.contents .schedule table tr td {
		padding: 0 0 10px 13px;
	}
	.contents .schedule table tr td::before {
		top: 15px;
	}
	.contents .schedule table tr td::after {
		border-radius: 2px;
		top: 8px;
	}
	.contents .schedule table tr td img {
		margin-top: 5px;
	}
	/* スクロール */
	.cms_text.scroller table {
		width: 1140px !important;
	}
	/* コンテンツ幅が狭い時のスクロール */
	.mainContents .cms_text.scroller table {
		width: 750px !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.5em;
	left: 0;
}
.cms_block ol > li > ul {
	margin: 5px 0;
}
/* 数字リスト */
.cms_block .cms_text.list-c > ol > li,
.cms_block ol.list-c > li {
	padding-left: 1.5em;
}
.cms_block .cms_text.list-c > ol > li::before,
.cms_block ol.list-c > li::before {
	content: counter(cnt);
	position: absolute;
	width: 20px;
	height: 20px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 70%;
	font-weight: bold;
	color: #fff;
	line-height: 20px;
	text-align: center;
	background-color: #007A46;
	border-radius: 50%;
	top: 0.5em;
	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 {
	font-size: 1.8rem;
	font-weight: bold;
}
.cms_block .cms_text.list-em > ul > li:not(:last-child),
.cms_block ul.list-em > li:not(:last-child),
.cms_block .cms_text.list-em > ol > li:not(:last-child),
.cms_block ol.list-em > li:not(:last-child) {
	margin-bottom: 5px;
}
.cms_block .cms_text.list-em > ul > li,
.cms_block ul.list-em > li {
    padding-left: 1em;
}
.cms_block .cms_text.list-em > ul > li::before,
.cms_block ul.list-em > li::before {
	content: "";
	width: 9px;
	height: 9px;
	background-color: #007a46;
	border-radius: 3px;
	top: calc(6px + 0.5em);
}
/* 横並びリスト（列揃えない） */
.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,
	.cms_block .cms_text.list-em > ol > li,
	.cms_block ol.list-em > li {
		font-size: 1.6rem;
	}
	.cms_block .cms_text.list-em > ul > li::before,
	.cms_block ul.list-em > li::before {
		width: 8px;
		height: 8px;
		top: calc(5px + 0.5em);
	}
	/* 数字リスト */
	.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: 18px;
        height: 18px;
        line-height: 18px;
        top: 0.4em;
	}
}
/* ------------------------------
 角丸（PC）
------------------------------ */
.r10,
.r10 img {
	border-radius: 10px;
}
.r25,
.r25 img {
	border-radius: 25px;
}
/* ------------------------------
 角丸（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: 20px;
}
/* ------------------------------
 画像（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_image img {
		border-radius: 15px;
	}
}
/* ------------------------------
 背景（PC）
------------------------------ */
.bgBox,
.bgText {
	background-color: #fff;
	border: solid 8px #f1f6f8;
	border-radius: 30px;
	padding: 60px 50px;
}
.bgText {
	padding: 25px;
}
/* ------------------------------
 背景（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.bgBox,
	.bgText {
		border: solid 5px #f1f6f8;
		border-radius: 15px;
		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;
}
/* ------------------------------
 リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 上 */
	.line-t {
		padding-top: 15px;
	}
	/* 下 */
	.line-b {
		padding-bottom: 15px;
	}
}
/* ------------------------------
 リンク（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: 285px;
	min-height: 78px;
	position: relative;
	font-size: 1.7rem;
	font-weight: bold;
	color: #fff;
	text-align: left;
	text-decoration: none;
	background-color: #007a46;
	border-radius: 50px;
	padding: 0 65px 0 30px;
	transition: .3s ease-in-out;
	z-index: 1;
}
.btn a::before,
.btn a::after {
	content: "";
	position: absolute;
    top: 0;
    bottom: 0;
    margin: auto !important;
}
.btn a::before {
	width: 36px;
	height: 36px;
	background-color: #fff;
	border-radius: 100%;
	right: 20px;
}
.btn a::after {
    width: 8px;
    height: 12px;
    mask-image: url(../img/icon_arrow.svg);
	background: transparent;
	background-color: #007a46;
	right: calc(20px + 13px);
}
.btn a[target="_blank"]::after,
.cms_text .btn a[target="_blank"]::after {
    width: 16px;
    height: 16px;
    mask-image: url(../img/icon_blank_btn.svg);
	right: calc(20px + 10px);
}
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-width: 254px;
		min-height: 74px;
		font-size: 1.6rem;
		padding: 0 50px 0 20px;
	}
	.btn a::before {
	    width: 30px;
    	height: 30px;
		right: 15px;
	}
	.btn a::after {
		width: 6px;
		height: 9px;
		right: calc(15px + 11px);
	}
	.btn a[target="_blank"]::after,
	.cms_text .btn a[target="_blank"]::after {
		width: 14px;
		height: 14px;
		right: calc(15px + 8px);
	}
}
/* ------------------------------
 ページ内リンク（PC）
------------------------------ */
.pageLink ul {
	display: flex;
	flex-flow: row wrap;
	gap: 8px 10px;
}
.pageLink ul li {
	display: flex;
    padding-left: 0;
}
.pageLink ul li::before {
    content: none;
}
.pageLink ul li a {
	position: relative;
	font-weight: normal;
	color: #000;
	text-decoration: none;
	background-color: #f1f6f8;
	border-radius: 8px;
	padding: 8px 15px;
}
.pageLink ul li a::before {
	content: "";
	position: absolute;
	display: inline-block;
	width: 3px;
	height: 3px;
	border-left: solid 2px #fff;
	border-bottom: solid 2px #fff;
	transform: rotate(-45deg);
	right: calc(15px + 8px);
	top: 0;
	bottom: 0;
	margin: auto;
}
.pageLink ul li a::after {
	content: "";
	display: inline-block;
	width: 21px;
	height: 21px;
	background-color: #007a46;
	border-radius: 100%;
	vertical-align: middle;
	margin-left: 3px;
    margin-bottom: 3px;
}
@media print, screen and (min-width: 768px) {
	.pageLink {
		display: flex;
		align-items: center;
		gap: 0 50px;
	}
	.pageLink .index::after {
		content: "";
		position: absolute;
		width: 0;
		height: 22px;
		border-right: dotted 1px #a1c3d1;
		right: -25px;
		top: 0;
		bottom: 0;
		margin: auto;
	}
}
/* ------------------------------
 ページ内リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.pageLink ul {
		gap: 5px;
	}
	.pageLink ul li a {
		font-size: 1.4rem;
	    border-radius: 4px;
    	padding: 6px 10px;
	}
	.pageLink ul li a::before {
		right: calc(10px + 7px);
	}
	.pageLink ul li a::after {
		width: 19px;
    	height: 19px;
		margin-left: 3px;
		margin-bottom: 2px;
	}
}
/* ------------------------------
 パンくず（PC）
------------------------------ */
.crumb ul {
	display: flex;
	align-items: center;
	flex-flow: row wrap; 
}
.crumb ul li {
	position: relative;
	font-size: 1.4rem;
	color: #007a46;
}
.crumb ul li:not(:last-child)::after {
	content: "/";
	display: inline-block;
	color: #000;
	margin: 0 10px;
}
.crumb ul li a {
	display: inline-flex;
	align-items: center;
	font-size: 1.4rem;
	font-weight: normal;
	color: #000;
}
/* ----------------------
  パンくず（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.crumb ul li:not(:last-child)::after {
		margin: 0 5px;
	}
}
/* ------------------------------
 下層ページリンク（PC）
------------------------------ */
ul.lowerLink {
	display: flex;
	flex-flow: row wrap;
	gap: 20px 4.21%;
}
ul.lowerLink > li {
	width: 47.895%;
}
.div3 ul.lowerLink {
	gap: 20px 3.947%;
}
.div3 ul.lowerLink > li {
	width: 30.702%;
}
.cms_block ul.lowerLink > li {
	padding: 0;
}
.cms_block ul.lowerLink > li::before {
	content: none;
}
ul.lowerLink > li > a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 106px;
	text-decoration: none;
}
ul.lowerLink > li > a p {
	font-size: 2.0rem;
	font-weight: bold;
	color: #000;
	text-decoration: none;
}
/* 画像あり */
ul.lowerLink > li > a img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 20px;
}
ul.lowerLink > li > a img + p::before,
ul.lowerLink > li > a img + p::after,
ul.lowerLink > li > a:not(:has(img))::before,
ul.lowerLink > li > a:not(:has(img))::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
}
ul.lowerLink > li > a img + p::before,
ul.lowerLink > li > a:not(:has(img))::before {
    width: 36px;
    height: 36px;
    background-color: #007a46;
    border-radius: 100%;
    right: 30px;
}
ul.lowerLink > li > a img + p::after,
ul.lowerLink > li > a:not(:has(img))::after {
    width: 8px;
    height: 12px;
    background: url(../img/icon_arrow.svg) no-repeat center / cover;
    right: calc(30px + 13px);
}
ul.lowerLink > li > a[target="_blank"] img + p::after,
ul.lowerLink > li > a[target="_blank"]:not(:has(img))::after {
    width: 14px;
    height: 14px;
    background: url(../img/icon_blank_btn.svg) no-repeat center / cover;
    right: calc(30px + 11px);
	margin: auto;
}
/* 画像なし */
ul.lowerLink > li > a:not(:has(img)) {
	display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
	background-color: #f1f6f8;
	border-radius: 15px;
	padding: 15px 70px 15px 30px;
}
ul.lowerLink > li > a:not(:has(img)) p {
	font-size: 2.0rem;
	line-height: 1.5;
}
/* ----------------------
 下層ページリンク（SP）
---------------------- */
@media screen and (max-width: 767px) {
	ul.lowerLink,
	.div3 ul.lowerLink {
		gap: 12px 0;
	}
	ul.lowerLink > li,
	.div3 ul.lowerLink > li {
		width: 100%;
	}
	ul.lowerLink > li > a {
		min-height: 76px;
	}
	ul.lowerLink > li > a img {
		height: auto;
    	border-radius: 15px;
	}
	ul.lowerLink > li > a img + p {
	    font-size: 1.8rem;
	}
	ul.lowerLink > li > a img + p::before,
	ul.lowerLink > li > a:not(:has(img))::before{
		width: 28px;
		height: 28px;
		margin-left: 5px;
		right: 5%;
	}
	ul.lowerLink > li > a img + p::after,
	ul.lowerLink > li > a:not(:has(img))::after{
		width: 6px;
		height: 9px;
		right: calc(5% + 10px);
	}
	ul.lowerLink > li > a[target="_blank"] img + p::after,
	ul.lowerLink > li > a[target="_blank"]:not(:has(img))::after {
		width: 12px;
		height: 12px;
		right: calc(5% + 8px);
	}
	ul.lowerLink > li > a:not(:has(img)) {
		padding: 10px calc(5% + 28px) 10px 5%;
    	border-radius: 10px;
	}
	ul.lowerLink > li > a:not(:has(img)) p {
		font-size: 1.6rem;
	}
}
/* ------------------------------
 新着情報・ブログ・イベント（PC）
------------------------------ */
/* -- 新着一覧ページ -- */
.newsList li {
	display: flex;
	align-items: center;
	gap: 0 20px;
	width: 100%;
	padding: 30px 0;
	border-bottom: dotted 1px #000;
}
/*新着タイトル*/
.headline {
	width: 100%;
	line-height: 1.5;
}
/*リンクありの場合*/
.headline a {
	position: relative;
	display: inline-block;
}
/* -- 日付 -- */
.date {
	font-family: "Ubuntu", sans-serif;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
}
.contents .date {
	font-size: 1.7rem;
	color: #007a46;
}
/* -- 下層ページ -- */
.dateBox {
	margin-bottom: 15px;
}
/* -- サイドナビ -- */
.localnavi .title {
    display: flex;
    align-items: center;
    min-height: 70px;
    font-size: 1.8rem;
    font-weight: bold;
    color: #fff;
    line-height: 1.4;
    background-color: #000;
    padding: 10px 30px;
}
.localnavi ul li a {
	display: flex;
	align-items: center;
    min-height: 70px;
	font-weight: bold;
	padding: 10px 30px;
	background-color: #f1f6f8;
	transition: 0.3s ease-in-out;
}
.localnavi ul li:not(:last-child) {
	border-bottom: dotted 1px #45788a;
}
.localnavi ul li a:hover,
.localnavi ul li.on a {
	color: #007a46;
	background-color: #e3edf1;
}
@media print, screen and (min-width: 768px) {
	/* -- サイドナビ -- */
	.localnavi {
		border-radius: 25px 25px 0 0;
		overflow: hidden;
	}
}
/* ----------------------
 新着・ブログ・イベント情報一覧（SP）
---------------------- */
@media screen and (max-width: 767px) {
	/* -- 新着情報一覧 -- */
	.newsList li {
		flex-flow: row wrap;
		gap: 5px 10px;
		padding: 15px 0;
	}
	/*新着タイトル*/
	.headline {
		width: 100%;
	}
	/* -- 日付 -- */
	.contents .date {
		font-size: 1.6rem;
	}
	.dateBox {
		margin-bottom: 10px;
	}
	/* -- サイドナビ -- */
	.localnavi .title {
		min-height: 60px;
		font-size: 1.6rem;
		padding: 5px 5%;
	}
	.localnavi ul li a {
		min-height: 60px;
		padding: 5px 5%;
	}
}