@charset "UTF-8";
/* =====================================
見出し
======================================== */
.single_contents h2 {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 8px;
	font-weight: bold;
	font-size: 24px;
	font-size: 2.4rem;
	padding-bottom: 16px;
	margin-bottom: 16px;
	position: relative;
}
.single_contents h2::before, .single_contents h2::after {
	content: "";
	display: block;
}
.single_contents h2::before {
	background: url(../images/icon_ttl02.svg) no-repeat;
	background-size: contain;
	min-width: 24px;
	max-width: 24px;
	height: 24px;
	margin-top: 8px;
}
.single_contents h2::after {
	background: url(../images/icon_ttl02_line.png) repeat-x;
	background-size: contain;
	width: 100%;
	height: 4px;
	position: absolute;
	bottom: 0;
	left: 0;
}
.single_contents h3 {
	font-weight: bold;
	font-size: 18px;
	font-size: 1.8rem;
	padding-left: 16px;
	margin-bottom: 16px;
	position: relative;
}
.single_contents h3::before {
	content: "";
	display: block;
	width: 4px;
	height: 100%;
	background: #0EA36D;
	border-radius: 40px;
	position: absolute;
	top: 0;
	left: 0;
}
.single_contents h4 {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 8px;
	margin-top: 32px;
	font-weight: bold;
	font-size: 18px;
	font-size: 1.8rem;
	margin-bottom: 16px;
}
.single_contents h3 + h4 {
	margin-top: 16px;
}
.single_contents h4::before {
	content: "";
	display: block;
	min-width: 10px;
	max-width: 10px;
	height: 4px;
	border-radius: 40px;
	background: #0EA36D;
	margin-top: 11px;
}

/* =====================================
基本設定
======================================== */
/* ========== 詳細基本設定 ========== */
.single_contents h2 {
	margin-top: 48px;
}
.single_contents > h2:first-child {
	margin-top: 0;
}
#ez-toc-container + h2 {
	margin-top: 72px;
}
.single_contents h3 {
	margin-top: 32px;
}
.single_contents .btn {
	margin-top: 32px;
}

/* アイキャッチ画像 */
.eyecatch {
	margin-bottom: 24px;
	text-align: center;
}
.eyecatch img {
	width: auto;
	max-width: 100%;
}
.eyecatch span {
	display: block;
	font-weight: bold;
	text-align: center;
}

.single_contents > div,
.single_contents p,
.single_contents ul,
.single_contents ol,
.single_contents figure {
	margin-bottom: 8px;
}
.single_contents > div:last-child,
.single_contents p:last-child,
.single_contents ul:last-child,
.single_contents ol:last-child {
	margin-bottom: 0;
}
.single_contents p:has(> a) {
	margin-bottom: 16px;
}
.single_contents a {
	text-decoration: underline;
	color: #065A2D;
}
.single_contents a[target=_blank]::after {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	background: url(../images/icon_external_link_green.svg) no-repeat;
	background-size: contain;
	position: static;
	-webkit-transform: translate(0, 2px);
	transform: translate(0, 2px);
	margin: 2px 8px 0;
}
.single_contents img {
	width: auto;
	max-width: 100%;
	height: auto;
	border-radius: calc(8 / 375 * 100vw);
}
.single_contents ul {
	list-style-type: disc;
}
.single_contents ul li {
	list-style: none;
	position: relative;
	padding-left: 16px;
	margin-bottom: 8px;
}
.single_contents ul li:last-child {
	margin-bottom: 0;
}
.single_contents ul li::before {
	content: "";
	display: block;
	min-width: 8px;
	max-width: 8px;
	height: 8px;
	background: #00853E;
	border-radius: 50%;
	position: absolute;
	top: 9px;
	left: 0;
}
.single_contents ol {
	list-style-type: decimal;
}
.single_contents ol li {
	list-style-position: inside;
	margin-bottom: 8px;
}
.single_contents ol li:last-child {
	margin-bottom: 0;
}
.single_contents figcaption {
	font-size: 16px;
	font-size: 1.6rem;
	text-align: center;
}
.single_contents table {
	table-layout: fixed;
	width: 100%;
}
.single_contents table th, .single_contents table td {
	padding: 12px 16px;
	border: 1px solid #9AE46B!important;
	font-weight: 500;
	text-align: left;
}
.single_contents table thead {
	border-bottom: none;
}
.single_contents table thead th {
	background: #EBFAD9;
}
.single_contents table thead th:first-of-type {
	width: 35%;
}
.single_contents table tbody td:first-of-type {
	background: #EBFAD9;
	width: 35%;
}
.single_contents .is-style-table-head-color thead th {
	width: 50% !important;
}
.single_contents .is-style-table-head-color tbody td:first-of-type {
	background: transparent;
}
.single_contents h2 + .wp-block-table,
.single_contents h3 + .wp-block-table,
.single_contents h4 + .wp-block-table {
	margin: 16px 0 24px;
}

.wp-caption {
	max-width: 100%;
}

.mt_none {
	margin-top: 0!important;
}

/* 目次 */
#ez-toc-container {
	padding: 24px 8px;
	margin: 24px 0;
	position: relative;
	z-index: 1;
}
p + #ez-toc-container,
figure + #ez-toc-container {
	margin-top: 80px;
}
#ez-toc-container::before {
	content: "";
	display: block;
	width: 95.7333333333vw;
	height: 100%;
	background: #fff;
	border-radius: 16px;
	position: absolute;
	top: 0;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	z-index: -1;
}
#ez-toc-container::after {
	content: "";
	display: block;
	width: 100vw;
	height: calc(100% + 48px);
	background: #00853E;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	z-index: -2;
}

#ez-toc-container .ez-toc-title {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 8px;
	font-weight: bold;
	font-size: 24px;
	font-size: 2.4rem;
	padding-bottom: 16px;
	margin-bottom: 16px;
	position: relative;
}
#ez-toc-container .ez-toc-title::before, #ez-toc-container .ez-toc-title::after {
	content: "";
	display: block;
}
#ez-toc-container .ez-toc-title::before {
	background: url(../images/icon_ttl02.svg) no-repeat;
	background-size: contain;
	min-width: 24px;
	max-width: 24px;
	height: 24px;
	margin-top: 8px;
}
#ez-toc-container .ez-toc-title::after {
	background: url(../images/icon_ttl02_line.png) repeat-x;
	background-size: contain;
	width: 100%;
	height: 4px;
	position: absolute;
	bottom: 0;
	left: 0;
}

.single_contents .ez-toc-list li {
	display: block;
}
.single_contents .ez-toc-list li::before {
	content: none;
}
.single_contents .ez-toc-list li a {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	padding: 8px;
	padding-right: 48px;
	text-decoration: none;
	color: #065A2D;
	font-weight: bold;
	font-size: 14px;
	font-size: 1.4rem;
	border-bottom: 1px solid #065A2D;
	position: relative;
}
.single_contents .ez-toc-list li a::after {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	background: url(../images/arrow_under.svg) no-repeat;
	background-size: contain;
	position: absolute;
	top: 50%;
	right: 16px;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

/* ========== スタイルの打ち消し ========== */
.wp-block-file:not(.wp-element-button) {
	font-size: 100%;
}

.wp-block-image :where(figcaption) {
	margin-bottom: 0;
}

.single_contents .wp-block-table {
	margin: 16px 0;
}

.wp-block-media-text__content {
	margin-top: 8px;
}

.wp-block-media-text > .wp-block-media-text__content {
	padding: 0;
}

.wp-block-gallery {
	margin-bottom: 2.1333333333vw;
}

.wp-block-file * + .wp-block-file__button {
	color: #fff;
	padding: 2px 8px;
}

.wp-block-column figure {
	margin-bottom: 2em;
}
.wp-block-column figure:last-child {
	margin-bottom: 0;
}

/* カラム数が多い場合は横スクロールに */
.wp-block-flexible-table-block-table {
	overflow-x: auto;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table {
	width: 685px!important;
	max-width: none!important;
}

/* iframe */
.single_iframe {
	width: 100%;
}

@media (min-width: 769px) {
	/* =====================================
	見出し
	======================================== */
	.single_contents h2 {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		gap: 8px;
		font-weight: bold;
		font-size: 24px;
		font-size: 2.4rem;
		padding-bottom: 16px;
		margin-bottom: 16px;
		position: relative;
	}
	.single_contents h2::before, .single_contents h2::after {
		content: "";
		display: block;
	}
	.single_contents h2::before {
		background: url(../images/icon_ttl02.svg) no-repeat;
		background-size: contain;
		min-width: 24px;
		max-width: 24px;
		height: 24px;
		margin-top: 8px;
	}
	.single_contents h2::after {
		background: url(../images/icon_ttl02_line.png) repeat-x;
		background-size: contain;
		width: 100%;
		height: 4px;
		position: absolute;
		bottom: 0;
		left: 0;
	}
	.single_contents h3 {
		font-weight: bold;
		font-size: 18px;
		font-size: 1.8rem;
		padding-left: 16px;
		margin-bottom: 16px;
		position: relative;
	}
	.single_contents h3::before {
		content: "";
		display: block;
		width: 4px;
		height: 100%;
		background: #0EA36D;
		border-radius: 40px;
		position: absolute;
		top: 0;
		left: 0;
	}
	/* =====================================
	基本設定
	======================================== */
	.single_contents > div,
	.single_contents p,
	.single_contents ul,
	.single_contents ol,
	.single_contents figure {
		margin-bottom: 24px;
	}
	.single_contents .wp-block-table {
		margin: 24px 0;
	}
	.single_contents a[href^="tel:"] {
		pointer-events: none;
	}
	/* 目次 */
	#ez-toc-container {
		padding: 24px 0;
	}
	.single_contents .ez-toc-list {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 8px 32px;
	}
	.single_contents .ez-toc-list li {
		width: calc(33.3333333333% - 21.3333333333px);
		margin-bottom: 0;
	}
	.single_contents .ez-toc-list li a {
		height: 100%;
		font-size: 16px;
		font-size: 1.6rem;
	}

	/* カラム数が多い場合は横スクロールに */
	.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table {
		width: 100%!important;
	}

	.single_contents img {
		border-radius: min(calc(16 / 1360 * 100vw), 16px);
	}

	/* ========== スタイルの打ち消し ========== */
	.wp-block-table {
		margin: 48px 0;
	}
	figure.wp-block-table {
		margin-top: 8px;
	}
	.wp-block-media-text__content {
		margin-top: 0;
	}
	.wp-block-media-text > .wp-block-media-text__content {
		padding: 0 8%;
	}
	.wp-block-gallery {
		margin-bottom: 24px;
	}

	/* iframe */
	.single_iframe {
		width: 100%;
		height: 288px;
	}
}
/* ========================================
ボタン01
======================================== */
.single_contents .btn a {
	text-decoration: none;
	color: #fff;
}

.single_contents .wp-block-lazyblock-btn01 .btn {
	display: flex;
}

.single_contents .wp-block-lazyblock-btn01 .btn a {
	margin-left: 0;
	margin-right: 0;
}

/* ========================================
ボタン02
======================================== */
.wrap_single_btn {
	margin-top: 32px;
}

.btn_single01 a {
	display: flex;
	align-items: center;
	border: 2px solid #00853E;
	color: #00853E;
	background: #EBFAD9;
	border-radius: 8px;
	padding: 9px 48px 9px 14px;
	text-decoration: none;
	font-size: 18px;
	font-size: 1.8rem;
	font-weight: 500;
	position: relative;
}
.btn_single01 a[target=_blank]::after {
	content: "";
	display: block;
	background: url(../images/icon_external_link_green02.svg) no-repeat;
	background-size: contain;
	width: 16px;
	height: 16px;
	position: absolute;
	top: 50%;
	right: 16px;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.btn_single01.btn_single02 a {
	color: #fff;
	background: #00853E;
}
.btn_single01.btn_single02 a::after {
	content: "";
	display: block;
	background: url(../images/arrow_white.svg) no-repeat;
	background-size: contain;
	width: 24px;
	height: 24px;
	position: absolute;
	top: 50%;
	right: 16px;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

@media (min-width: 769px) {
	.wrap_single_btn {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 16px 32px;
	}
	.wrap_single_btn .btn_single01 {
		width: 352px;
	}
	.wrap_single_btn .btn_single01:has(> a) {
		margin-bottom: 0;
	}
	.wrap_single_btn:has(.btn_download) {
		justify-content: center;
	}
}

/* ========================================
ボタン03(ダウンロード用)
======================================== */
@media (min-width: 769px) {
	.single_contents .wrap_single_btn .btn_download {
		margin: 0;
	}
}

/* ボタンキャプション */
.btn_caption {
	display: block;
	margin-top: 8px;
}

/* ========================================
おすすめプラン
======================================== */
.single_contents .wrap_plan_contents {
	margin: 24px 0;
}
.single_contents .plan_contents {
	border: 1px solid #00853E;
	border-radius: 8px;
	padding: 23px 15px;
	margin-bottom: 32px;
}
.single_contents .plan_contents:last-child {
	margin-bottom: 0;
}
.single_contents .plan_img {
	width: 44.8vw;
	margin: 16px auto;
}

@media (min-width: 769px) {
	.single_contents .wrap_plan_contents {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		gap: min(2.3529411765vw, 32px);
	}
	.single_contents .plan_contents {
		width: calc(33.3333333333% - min(4.7058823529vw, 64px) / 3);
		margin-bottom: 0;
	}
	.single_contents .plan_img {
		width: min(12.3529411765vw, 168px);
	}
}

/* ========================================
お問い合わせ先
======================================== */
.facility_contact {
	margin-top: 64px;
	position: relative;
	z-index: 1;
}
.facility_contact::after {
	content: "";
	display: block;
	width: 100vw;
	height: 100%;
	background: #EBFAD9;
	position: absolute;
	top: 0;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	z-index: -1;
}
.facility_contact .ttl_heading03 {
	margin-top: 0;
}
.facility_contact .wrap_reserve_contents {
	margin: 16px 0;
}
.facility_contact .wrap_reserve_contents .reserve_contents a {
	display: flex;
	justify-content: center;
	align-items: center;
	background: #fff;
	border-radius: 0;
	height: 100%;
}
.facility_contact .btn_single01 {
	max-width: 352px;
}

/* お電話でのご予約・お問い合わせ先 */
.reserve_contents {
	margin-bottom: 24px;
}
.reserve_contents:last-child {
	margin-bottom: 0;
}
.reserve_contents a {
	display: block;
	border: 1px solid #00853E;
	border-radius: 8px;
	padding: 24px 8px;
	text-align: center;
	font-weight: bold;
	font-size: 20px;
	font-size: 2rem;
	color: #002B14;
	text-decoration: none;
}

@media (min-width: 769px) {
	/* お電話でのご予約・お問い合わせ先 */
	.wrap_reserve_contents02 {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 32px;
	}
	.wrap_reserve_contents02 .reserve_contents {
		width: calc(50% - 16px);
		margin-bottom: 0;
	}
	.reserve_contents {
		margin-bottom: 0;
	}
	.wrap_reserve_contents02:has(> .reserve_contents:last-child:nth-child(odd))
	> .reserve_contents:last-child {
		width: 100%;
	}
}

/* ========================================
ボランティアの声
======================================== */
.wrap_voice {
	border: 1px solid #00853E;
	border-radius: 16px;
	padding: 24px;
	margin-bottom: 24px;
}

.wrap_voice:last-of-type {
	margin-bottom: 0;
}

.voice-title {
	color: #00853E;
	font-weight: bold;
	margin-bottom: 16px;
}

/* =====================================
アクセシビリティガイドライン
======================================== */
.single_contents ol {
	counter-reset: listnum; /* カウンターをリセット */
	margin-top: 32px;
}

.single_contents ol li {
	display: flex;
	gap: 8px;
	margin-bottom: 8px;
}

.single_contents ol li:last-child {
	margin-bottom: 0;
}

.single_contents ol li::before {
	counter-increment: listnum; /* counter-resetと同じ文字列 */
	content: counter(listnum) "."; /* カウントした数に応じて番号を表示 */
}

@media (max-width: 768px) {
	.single_contents object {
		height: auto!important;
	}
}