@charset "utf-8";

:root {
	--point-blue: #0064be;
	--point-sky: #64beeb;
	--point-yellow: #e1e100;
	--point-yellow2: #a3cd0d;
	--point-orange: #ed9032;
	--point-orange2: #edb532;
	--point-green: #72ba48;
	--point-green2: #60b75e;
	--point1: #e0f2fb;
	--point2: #f2f0bb;
	--point2-light: #fcfcf6;
	--point2-dark: #c69f01;
	--point3: #f4e3d7;
	--point4: #c6e5dc;
	--point-pink: #d88e77;
	--point-red: #d25333;
	--point-orange: #e67c3a;
}

#contents {
	padding-bottom: 0 !important;
	--txt-color: var(--point-blue);
	--bg-color: #e8efef;
	--bghd-color: var(--point1);
	background-color: var(--bg-color);
}

#contents.vol1 {
	background-color: color-mix(in srgb, var(--point-sky) 20%, #fff);
}

#contents.vol2 {
	--txt-color: var(--point2-dark);
	--bghd-color: var(--point2);
	--bg-color: var(--point2-light);
}

#contents.vol3 {
	--txt-color: var(--point-pink);
	--bghd-color: var(--point3);
	--bg-color: var(--point3);
}

#contents.vol4 {
	--txt-color: var(--point-green2);
	--bghd-color: var(--point4);
	--bg-color: var(--point4);
}

#contents.eco_technique a {
	text-decoration: none;
}

img {
	width: 100%;
	height: auto;
}

.eco_technique .inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: min(80px, 12vw) 0;
}

@media screen and (max-width:767px){
	.eco_technique .inner {
		width: 95vw;
	}
}

.point-blue {
	color: var(--point-blue);
}

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

/*==================================================
page header
==================================================*/
.page-header {
	width: 100%;
	height: min(450px, 100vw);
	padding: min(60px, 10vw) 0 0;
	position: relative;
}

.page-header .page-title {
	width: min(680px, 70%);
	margin: 0 auto;
}

.page-header .page-header-illust1 {
	width: min(594px, 58%);
	position: absolute;
	left: 50%;
	bottom: 0;
	translate: -50%;
}

.page-header .page-header-illust2 {
	width: min(208px, 20%);
	position: absolute;
	right: calc(50% + min(440px, 40%));
	top: 50%;
	translate: 50% -50%;
}

.page-header .page-header-illust3 {
	width: min(146px, 14%);
	position: absolute;
	left: calc(50% + min(440px, 40%));
	top: 50%;
	translate: -50% -50%;
}

@media screen and (max-width:767px) {
	.page-header .page-header-illust1 {
		width: 80%;
	}

	.page-header .page-header-illust2 {
		width: 24%;
		right: calc(50% + 26%);
		top: 60%;
	}

	.page-header .page-header-illust3 {
		width: 23%;
		left: calc(50% + 28%);
		top: 60%;
	}
}

/*==================================================
soon
==================================================*/
.top-lead-wrp {
	text-align: center;
	color: #fff;
	background-color: var(--point-sky);
}

.top-lead-wrp .lead {
	font-size: min(1.2em, 4vw);
	line-height: 1.8;
	font-weight: bold;
	text-shadow: 0 0 3px rgba(42, 62, 136, 0.3);
}

.marker {
	background: linear-gradient(transparent 60%, #ecef57 60%, #ecef57 96%, transparent 96%);
}

.marker1 {
	background: linear-gradient(transparent 60%, #4c8de1 60%, #4c8de1 96%, transparent 96%);
}

.marker2 {
	background: linear-gradient(transparent 60%, #bae12d 60%, #bae12d 96%, transparent 96%);
}

.marker3 {
	background: linear-gradient(transparent 60%, #f18a5a 60%, #f18a5a 96%, transparent 96%);
}

.marker4 {
	background: linear-gradient(transparent 60%, color-mix(in srgb, var(--point-blue) 40%, #fff) 60%, color-mix(in srgb, var(--point-blue) 40%, #fff) 96%, transparent 96%);
}

.marker5 {
	background: linear-gradient(transparent 60%, color-mix(in srgb, var(--point-pink) 60%, #fff) 60%, color-mix(in srgb, var(--point-pink) 60%, #fff) 96%, transparent 96%);
}

.soon-tilte {
	width: max-content;
	margin-inline: auto;
	padding: 1em 1em 0;
	font-size: 2em;
	letter-spacing: .05em;
	color: #fff;
}

/*==================================================
point
==================================================*/
.point-wrp .point-title {
	font-size: min(1.8em, 4.2vw);
	font-weight: 600;
	text-align: center;
	position: relative;
}

.point-wrp .point-title .icon {
	display: inline-block;
	width: 1.5em;
	margin-right: .75em;
	vertical-align: top;
}

.point-wrp .point-title-illust {
	width: 160px;
	margin: 2em auto;
}

.point-wrp .more-btn {
	width: 15em;
	margin: 3em auto;
	padding: 1em;
	color: #fff;
	background-color: var(--point-sky);
	border-radius: 10px;
	text-align: center;
	font-size: min(1.2em, 4vw);
	position: relative;
	z-index: auto;
	cursor: pointer;
}

.point-wrp .more-btn::before {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	left: .5em;
	top: .75em;
	z-index: -1;
	border-radius: 10px;
	background-color: var(--point-yellow);
	background-image: radial-gradient(circle, #fff 2px, transparent 2px), radial-gradient(circle, #fff 2px, transparent 2px);
	background-position: 0 0, 6px 10px;
	background-size: 12px 20px;
}

.point-wrp .more-btn::after {
	content: '';
	width: .75em;
	height: .75em;
	position: absolute;
	right: 2em;
	top: 50%;
	translate: 50% -50%;
	rotate: 45deg;
	border-right: solid 1px;
	border-top: solid 1px;
}

.point-wrp .more-wrp {
	margin: 0 auto;
	padding: min(60px, 7vw) min(40px, 5vw);
	background-color: #fff;
	border-radius: 10px;
	display: none;
}

.point-wrp .more-wrp p {
	font-size: min(1.1em, 3.9vw);
}

.flex-between {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.flex-center {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

/*==================================================
card
==================================================*/
.cards {
	width: min(100%, 95vw);
	max-width: 1200px;
	counter-reset: number 0;
	padding: 3em 1em;
}

.article-header {
	width: 100%;
}

.first-wrp a {
	display: block;
	width: fit-content;
	margin: 3em auto 0;
	border: 2px solid;
	padding: 1em 4em;
	border-radius: 10px;
	background-color: rgba(255, 255, 255, .7);
	position: relative;
	color: var(--point-blue);
	transition: all .3s;
	text-decoration: none !important;
}

.first-wrp a::after {
	content: '';
	width: .75em;
	height: .75em;
	border-top: 2px solid;
	border-right: 2px solid;
	position: absolute;
	top: 50%;
	right: 1em;
	transform: translateY(-50%) rotate(45deg);
}

.first-wrp a:hover {
	background-color: rgba(255, 255, 255, 1);
}

.first {
	display: block;
	width: min(180px, 35vw);
	margin: 0 auto;
}

.first img {
	width: 100%;
}

.article-header .article-title {
	width: 100%;
	text-align: center;
	font-size: 2em;
	margin: .5em auto 1.5em;
}

.link-wrp .article-header .article-title {
	font-size: 1.6em;
}

.link-wrp .article-header .article-title i {
	display: block;
	font-size: 2em;
}

.card {
	width: 24%;
	padding: .7em;
	border: 1px solid;
	background-color: #fff;
	border-radius: 5px;
	border: 1px solid #ccc;
	overflow: hidden;
}

@media screen and (max-width:767px) {
	.card a,
	.card {
		width: 100%;
		display: flex;
	}

	.card {
		margin-bottom: 1em;
	}
}

.card .thumb {
	width: 100%;
	aspect-ratio: 4/3;
	overflow: hidden;
}

.card .thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all .3s;
}

@media screen and (max-width:767px) {
	.card .thumb {
		width: 30%;
		margin-bottom: 0;
	}
}

.card a:hover .thumb img {
	transform: scale(1.05);
}

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

.card.co1 .thumb {
	background-color: var(--point1);
}

.card.co2 .thumb {
	background-color: var(--point2);
}

.card.co3 .thumb {
	background-color: var(--point3);
}

.card.co4 .thumb {
	background-color: var(--point4);
}

@media screen and (max-width:767px) {
	.card .txt-box {
		width: 70%;
		padding: 0 1em;
	}
}

.card .card-title {
	font-size: min(1em, 3.3vw);
	position: relative;
	padding: 1em .5em .5em;
}

.card .soon {
	color: var(--point-red);
	font-size: 1.3em;
	font-weight: 600;
	display: block;
	margin-top: .5em;
	text-align: center;
}

@media screen and (max-width:767px) {
    .card .soon {
        margin-top: 0;
        font-size: min(1.3em, 4.2vw);
    }
}

.card .co-number {
	display: block;
	width: fit-content;
	font-weight: 600;
	font-size: 1.6em;
	color: var(--point-blue);
	text-decoration: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
	margin: .3em 0 0;
	padding-left: .5rem;
}

/* dot background */
.dot-bg {
	background-color: #f8f8f9;
	background-image: radial-gradient(circle, var(--bghd-color) 2px, transparent 2px), radial-gradient(circle, var(--bghd-color) 2px, transparent 2px);
	background-position: 0 0, 4.5px 9px;
	background-size: 9px 18px;
}

.sekisui-data {
	text-align: center;
}

/* footer link */
.link-wrp .inner {
	max-width: 980px;
	padding: 2em 1em 3em;
}

.link-wrp .banner {
	width: 31%;
	border: 1px solid #ccc;
	background-color: #fff;
	border-radius: 5px;
	overflow: hidden;
}

@media screen and (max-width:640px) {
	.link-wrp .banner {
		width: 100%;
		margin-bottom: 1em;
	}

	.link-wrp .banner a {
        width: 100%;
        padding: 2vw;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

	.link-wrp .banner figure {
        width: 46%;
    }
}

.link-wrp .banner .article-title {
    padding: 1em;
    text-align: center;
    font-size: min(.9em, 3vw);
}

@media screen and (max-width:640px) {
	.link-wrp .banner .article-title {
		width: 52%;
        padding: 0;
        font-size: min(1em, 3vw);
    }
}