.eco_technique {
	counter-reset: number;
}

/*==================================================
contents header
==================================================*/
.page-point-header {
	width: 100%;
	background-color: var(--bghd-color);
}

.page-point-header .img-box {
	width: 40%;
	padding: 2em min(5em, 3vw);
}

.page-point-header .txt-box {
	width: 60%;
	padding: 2em 4em;
	display: flex;
	align-items: center;
}

@media screen and (max-width:767px) {
	.page-point-header .img-box {
		width: 100%;
		padding: 1em 4em;
	}

	.page-point-header .txt-box {
		width: 100%;
		padding: 2em 1em;
		text-align: center;
		justify-content: center;
	}
}

.page-point-header .txt-box .page-number {
	display: block;
	font-size: min(3em, 8vw);
	font-weight: bold;
	text-decoration: underline;
	color: var(--txt-color);
	margin-bottom: .4em;
	text-decoration-thickness: 5px;
	text-underline-offset: 5px;
}

.page-point-header .txt-box .page-title {
	font-size: min(2.2em, 6vw);
	font-weight: bold;
	/* color: var(--txt-color); */
}

/*==================================================
prior
==================================================*/
.prior {
	background-color: #fff;
}

.prior .inner {
	padding: 3em 1em 5em;
}

.fukidashi-pop {
	width: max-content;
	margin-inline: auto;
	margin-bottom: 1.5em;
	padding: .75em 1.5em;
	line-height: 1;
	color: #fff;
	background-color: var(--point-orange);
	letter-spacing: .1em;
	font-weight: bold;
	font-size: 1.2em;
	position: relative;
}

.fukidashi-pop::after {
	content: '';
	width: 1em;
	height: .7em;
	background-color: var(--point-orange);
	position: absolute;
	left: 50%;
	top: 99%;
	transform: translateX(-50%);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.prior .prior-title {
	margin-bottom: 1em;
	font-size: 1.6em;
	font-weight: 600;
	text-align: center;
}

.prior-lead {
	margin-bottom: 1em;
	font-size: min(1.2em, 3.5vw);
	text-align: center;
}

figcaption.cap-underline {
	font-size: min(1.05em, 4vw);
	font-weight: 600;
	color: #003856;
	margin-bottom: 2em;
	text-decoration: underline;
	text-underline-offset: 6px;
	line-height: 2;
}

/*==================================================
intro
==================================================*/
.intro {
	background-color: var(--txt-color);
}

.vol1 .intro {
	background-color: var(--point-sky);
}

.vol2 .intro {
	/* background-color: var(--point2); */
	background-color: color-mix(in srgb, var(--point2) 65%, #fff);
}

.intro .inner {
	padding: 3em 1em 5em;
}

.intro-title {
	font-size: 1.6em;
	font-weight: 600;
	text-align: center;
	color: #fff;
	margin-bottom: 1em;
}

.vol2 .intro-title {
	color: var(--point-orange);
}

.intro-lead {
	font-size: min(1.2em, 3.5vw);
	text-align: center;
	color: #fff;
	margin-bottom: 1em;
}

.vol2 .intro-lead {
	color: #222;
}

.intro-illust {
	width: 80%;
	max-width: 470px;
	margin: -8em auto 0;
}

/*==================================================
point contents
==================================================*/
.point-wrp {
	padding: 3em 1em;
}

.point-wrp .inner {
	width: 100%;
	max-width: 900px;
	padding: min(4em, 7vw) 1em;
	background-color: #fff;
	border-radius: 10px;
	overflow: clip;
	margin-bottom: 2em;
	box-shadow: 0 0 3px rgba(0, 0, 0, .3);
	text-align: center;
}

.point-wrp .inner.attention {
	background-color: color-mix(in srgb, var(--bghd-color) 40%, #fff);
}

/* point-header-title */
.point-header-title {
	display: block;
	width: min(300px, 90%);
	margin: 0 auto 1em;
}

.point-header-title::after {
	counter-increment: number 1;
	content: "0" counter(number);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2em;
	height: 2em;
	font-weight: 600;
	font-size: 2em;
	background-color: var(--txt-color);
	background-color: color-mix(in srgb, var(--txt-color) 80%, #fff);
	border-radius: 100%;
	color: #fff;
	margin: -0.5em auto 1em;
}

.vol1 .point-header-title::after {
	background-color: var(--point-sky);
}

/* point-title */
.point .point-title {
	position: relative;
	padding-left: 2em;
	width: fit-content;
	margin: .5em auto;
}

.point .point-title::before {
	content: '';
	width: 1.5em;
	height: 1.5em;
	background-image: url(../images/icon-point.svg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}

.point .attention-title {
	width: fit-content;
	margin: .5em auto;
	color: var(--point-orange);
	font-size: min(1.5em, 4.2vw);
	font-weight: bold;
	position: relative;
}

.point .attention-title::before {
	content: '！';
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.5em;
	height: 1.5em;
	margin: -0.5em auto .3em;
	font-weight: 600;
	font-size: 1.6em;
	line-height: 1;
	background-color: #fff;
	color: var(--point-ornge);
	border: solid 3px var(--point-orange);
	border-radius: 100%;
}

.point .point-lead {
	width: fit-content;
	margin: 2em auto;
	font-size: min(1.2em, 3.5vw);
	line-height: 1.7;
}

.point-check-illust {
	width: 60%;
	max-width: 470px;
	margin: 1.5em auto;
}

.point-contntes .point-contents-lead {
	font-size: min(1.1em, 3.3vw);
}

.res-arrow {
	display: block;
	width: 20%;
	max-width: 100px;
	margin: min(2em, 4vw) auto;
}

/*==================================================
point data
==================================================*/
.point-data {
	width: 90%;
	max-width: 860px;
	border: 2px solid color-mix(in srgb, var(--txt-color) 65%, #fff);
	border-radius: 10px;
	padding: 1em;
	background-color: #fff;
	margin: 4em auto;
	position: relative;
}

.point-data-inner {
	transition: all .3s;
	margin: 0 auto;
	padding: 1em .5em;
}

@media screen and (max-width:600px) {
	.point-data-inner {
		padding: 0;
	}
}

.point-data.on .point-data-inner {
	opacity: .2;
}

.point-data .txt-box {
	width: 100%;
	margin-bottom: 2em;
	text-align: center;
}

.point-data .img-box {
	width: 100%;
	margin-bottom: 2em;
	text-align: center;
}

.point-data .img-box[class*="flex"] {
	align-items: center;
	gap: 1em 2%;
}

.point-data .check-chart-title {
	width: fit-content;
	margin: 1em auto 2em;
	padding: .5em 2em;
	color: #fff;
	background-color: var(--point-orange);
	border: 2px solid;
	border-radius: 5px;
}

.point-data .img-box .chart-box {
	width: 49%;
}

@media screen and (max-width:767px) {
	.point-data .img-box .chart-box {
		width: 100%;
	}

	.point-data .img-box .chart-box+.chart-box {
		margin-top: 3em;
	}
}

.point-data .chart-title {
	font-size: min(.9em, 3.5vw);
	font-weight: 600;
	padding: .5em 0;
	margin-bottom: 1em;
}

.point-data .txt-box .ecopoint-title {
	font-size: min(.9em, 3vw);
	font-weight: bold;
	background-color: color-mix(in srgb, var(--txt-color) 75%, #fff);
	color: #fff;
	border-radius: 3em;
	width: fit-content;
	padding: .5em 2em;
	margin: 1em auto 2em;
}

.point-data .txt-box .ecopoint-lead {
	font-size: min(1.5em, 4vw);
	font-weight: bold;
	margin-bottom: 1em;
}

.point-data .ecopoint-icon {
	display: block;
	width: 50%;
	max-width: 200px;
	margin: 0 auto 2em;
}

.point-data .note-wrp {
	width: fit-content;
	margin: 1em auto 0;
}

.point-data .note {
	font-size: .8em;
	text-align: left;
}

p.note,
.point-data .note-source {
	display: block;
	font-size: min(.8em, 3vw);
	margin-top: .5em;
	text-align: right;
	color: #666;
}

p.note {
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
	text-align: left;
	word-break: break-all;
}

.href-link::before {
	content: attr(href);
	color: var(--link-color);
	text-decoration: underline;
	vertical-align: baseline;
	word-break: break-all;
}

/* vol1 */
.vol1 .point-data {
	border: 2px solid var(--point-sky);
}

.vol1 .point-data .txt-box .ecopoint-title {
	background-color: var(--point-sky);
}

.vol1 .point-data .chart-title .high {
	display: inline-block;
	color: #003856;
	padding: .25em .5em;
	margin-left: .5em;
}

.vol1 .point-data .chart-title .low {
	display: inline-block;
	background-color: var(--point-sky);
	color: #fff;
	padding: .25em .5em;
	border-radius: 4px;
	margin-left: .5em;
}

.vol1 .illust-off {
	width: 60%;
	max-width: 300px;
	margin: 0 auto;
}

.vol1 .recommend {
	width: 100%;
	padding: 1em;
	margin-bottom: 1em;
}

@media screen and (max-width:767px) {
	.vol1 .recommend {
		padding: 0;
	}
}

.vol1 .recommend-lead {
	line-height: 1.8;
}

.vol1 .recommend-lead strong {
	color: var(--txt-color);
}

.vol1 .case-box {
	width: 100%;
	margin-bottom: 1em;
}

.vol1 .case-box .case {
	width: 45%;
	padding: min(1em, 4vw) min(.5em, 2vw);
	border: 1px solid #ccc;
	gap: 1em;
}

.vol1 .case-box .arrow-right {
	width: 5%;
	padding: .5em;
	display: flex;
	align-items: center;
}

@media screen and (max-width:767px) {
	.vol1 .case-box .arrow-right {
		width: 8%;
	}
}

/* vol2 */
.vol2 .prior figure {
	margin: 3em auto 0;
	text-align: center;
}

.vol2 .prior figure img {
	width: 600px;
}

@media screen and (max-width:767px) {
	.vol2 .prior figure img {
		width: min(340px, 90%);
	}
}

.vol2 .prior figure .note {
	margin-top: 2em;
}

.vol2 .point-wrp .water-running {
	width: min(700px, 90%);
	margin: 0 auto;
	gap: 2em;
}

.vol2 .point-wrp .water-running .box {
	width: calc(50% - 1em);
	padding: 1.5em;
	background-color: color-mix(in srgb, var(--point2) 60%, #fff);
	border-radius: 5px;
	text-box: trim-both cap alphabetic;
}

@media screen and (max-width:600px) {
	.vol2 .point-wrp .water-running .box {
		width: 100%;
	}
}

.vol2 .point-wrp .water-running .scene {
	display: block;
	width: fit-content;
	min-width: 12em;
	padding: .5em 1em;
	margin: 0 auto;
	color: var(--point-orange);
	background-color: #fff;
	border: solid 2px;
	border-radius: 3em;
	font-weight: bold;
	font-size: 1em;
}

.vol2 .point-wrp .water-running .flow {
	margin-top: .5em;
	font-size: 1.4em;
	font-weight: bold;
	color: var(--point-orange);
}

.vol2 .point-wrp .water-running .flow .num {
	padding: 0 .2em;
	font-size: 1.6em;
}

.vol2 .summary {
	width: max-content;
	margin-top: 1.5em;
	margin-inline: auto;
	padding: 1em 1.5em;
	text-align: center;
	background-color: var(--point-orange);
	color: #fff;
	font-weight: bold;
	font-size: 1.1em;
	border-radius: 10px;
	position: relative;
}

.vol2 .action {
	margin-top: 2em;
}

@media screen and (max-width:767px) {
	.vol2 .action {
		flex-direction: column;
		gap: 1em;
	}
}

.vol2 .action .case-box {
	width: 48%;
	padding: 1.5em;
	background-color: color-mix(in srgb, var(--point2) 60%, #fff);
	text-align: center;
	border-radius: 5px;
}

@media screen and (max-width:767px) {
	.vol2 .action .case-box {
		width: 100%;
	}
}

.vol2 .action .case-box h5 {
	font-weight: bold;
	font-size: 1.05em;
	display: block;
	width: 100%;
	color: #fff;
	background-color: var(--point-orange);
	border-radius: 3em;
	padding: .5em 1em;
	margin: 0 auto 1em;
}

.vol2 .attention .point-check-illust {
	width: 40%;
}

@media screen and (max-width:767px) {
	.vol2 .attention .point-check-illust {
		width: 60%;
	}
}

.vol2 .attention .img-box {
	margin-top: 4em;
	flex-direction: column;
}

.vol2 .attention .img-box figure {
	width: 90%;
	margin: 0 auto;
	padding: 1.5em;
	background-color: color-mix(in srgb, var(--point2) 60%, #fff);
	text-align: center;
	border-radius: 5px;
	position: relative;
}

@media screen and (max-width:767px) {
	.vol2 .attention .img-box figure {
		width: min(520px, 100%);
	}
}

.vol2 .attention .img-box figcaption {
	width: min(20em, 100%);
	margin: 0 auto 1em;
	padding: .5em 1em;
	background-color: var(--point-blue);
	color: #fff;
	border-radius: 5px;
	position: relative;
}

.vol2 .attention .img-box .value figcaption {
	background-color: var(--point-orange);
}

.vol2 .attention .img-box .value p {
	margin-top: 2em;
	margin-bottom: 1em;
}

.vol2 .attention .img-box img {
	width: min(640px, 100%);
}

/*==================================================
modal - source
==================================================*/
.modal-window {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow-y: auto;
}

.modal-window.on {
	display: block;
	background-color: rgba(245, 245, 245, .95);
	z-index: 999;
}

.source {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	background-color: #fff;
	border: 1px solid #ccc;
	border-radius: 5px;
	padding: min(1.5em, 4vw) min(2.5em, 5vw);
	width: 94%;
	max-width: 780px;
	bottom: 50vh;
	left: 50%;
	transform: translate(-50%, 50%);
	transition: all .3s;
}

.source.on {
	visibility: visible;
	opacity: 1;
	cursor: pointer;
}

.modal-window::before,
.source::before {
	content: "";
	width: 1.5em;
	height: 0;
	border-top: 2px solid #555;
	display: block;
	position: absolute;
	top: 1.5em;
	right: .5em;
	transform: translateY(-50%) rotate(45deg);
}

.modal-window::after,
.source::after {
	content: "";
	width: .0;
	height: 1.5em;
	border-left: 2px solid #555;
	display: block;
	position: absolute;
	top: 1.5em;
	right: calc(1.25em - 1px);
	transform: translateY(-50%) rotate(45deg);
}

.source h3 {
	font-size: min(1.1em, 3.5vw);
	margin-bottom: 1em;
	font-weight: bold;
}

.more-data-btn {
	display: block;
	width: fit-content;
	margin: 2em auto 0;
	padding: .5em 3em;
	font-size: min(1.2em, 3.5vw);
	background-color: var(--txt-color);
	color: #fff;
}

.source-btn {
	font-size: min(.85em, 3vw);
	border: 1px solid #555;
	padding: .5em 2em;
	display: block;
	width: fit-content;
	margin: 1em auto;
	background-color: #fff;
}

.modal-btn::before {
	content: "";
	width: .75em;
	height: 0;
	border-top: 2px solid;
	display: block;
	position: absolute;
	top: 50%;
	right: .5em;
	transform: translateY(-50%);
}

.modal-btn::after {
	content: "";
	width: .0;
	height: .75em;
	border-left: 2px solid;
	display: block;
	position: absolute;
	top: 50%;
	right: calc(.75em + 1px);
	transform: translateY(-50%);
}

.close-window-wrp {
	text-align: center;
	padding-bottom: 4em;
}

.close-window-wrp .close {
	display: inline-block;
	cursor: pointer;
	font-weight: 600;
}

/*==================================================
next
==================================================*/
.next-point {
	background-color: #f9f9f9;
}

.next-point .cards {
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
	padding: 3em 1em;
}

@media screen and (max-width:767px) {
	.next-point .cards {
		padding: 2em 1em;
	}
}

.next-point .article-title {
	font-size: min(1.5em, 4vw);
	position: relative;
	display: block;
	width: fit-content;
	padding: 0 2em;
}

.next-point .article-title::before,
.next-point .article-title::after {
	content: '';
	position: absolute;
	width: 1em;
	height: 0;
	border-bottom: 1px solid;
	top: 50%;
}

.next-point .article-title::before {
	left: 0;
}

.next-point .article-title::after {
	right: 0;
}

.next-point .card {
	width: 100%;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	padding: 1em;
}

.next-point .card a {
	display: flex;
	flex-wrap: wrap;
	padding: 0;
	text-decoration: none;
}

@media screen and (max-width:767px) {
	.next-point .card {
		padding: 0;
	}
}

.next-point .card .thumb {
	width: 35%;
}

@media screen and (max-width:767px) {
	.next-point .card .thumb {
		width: 30%;
		aspect-ratio: unset;
	}
}

.next-point .card .thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.next-point .card .txt-box {
	width: 65%;
	padding: 1em .5em;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
}

@media screen and (max-width:767px) {
	.next-point .card .txt-box {
		width: 70%;
	}

	.card .card-title {
		padding: 1em .5em .5em;
	}
}

.next-point .card .txt-box .co-number {
	margin: 0 auto .3em;
}

/*==================================================
backTop
==================================================*/
.backTop-btn-wrp {
	text-align: center;
	padding: 1em 0 4em;
}

.backTop-btn-wrp .btn {
	position: relative;
	padding: .5em 2em;
}

.backTop-btn-wrp .btn::before {
	content: '';
	width: 0.5em;
	height: 0.5em;
	display: block;
	border-top: 1px solid;
	border-right: 1px solid;
	position: absolute;
	top: calc(50% - 0.25em);
	left: 1em;
	transform: rotate(-135deg);
	transform-origin: center center
}