@charset "UTF-8";

.r {
	justify-content: space-between;
	gap: 20px 0;
}

a {
	transition: .3s;
}

a:hover {
	opacity: 0.3;
}

a.text_link {
	color: #0070c0;
	border-bottom: 1px solid;
}

.title {
	text-align: center;
	margin: 0 0 50px;
}

.title h2 {
	display: inline-block;
	font-size: 3rem;
	line-height: 1.5;
	background: linear-gradient(transparent 70%, #cfe7d9 50%);
}

h3 {
	line-height: 1.5;
}

.hero_box {
	background: #00863C;
}

.hero_box > div {
	height: 300px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px 30px;
}

.hero_box > div > div:nth-of-type(2) {
	text-align: center;
}

.hero_box > div > div:nth-of-type(2) img {
	width: 100%;
	max-width: 450px;
}

.hero_box > div > div > div {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0 30px;
}

.hero_box h1 {
	color: #fff;
	font-size: 1.8rem;
	font-weight: normal;
	text-align: center;
	line-height: 1.5;
}

.hero_box h1 span {
	display: block;
	font-size: 5rem;
	font-weight: bold;
}

.id_box {
	display: grid;
	justify-content: center;
	grid-template-columns: repeat(auto-fit, minmax(200px, 250px));
	gap: 30px 60px;
	text-align: center;
	box-shadow: 0 2px 5px 1px rgb(0 0 0 / 10%);
	padding: 30px 20px;
	margin: 0 auto;
	max-width: 600px;
}

.id_box h2 {
	font-size: 1.6rem;
	line-height: 1.5;
	margin: 0 0 20px;
}

.id_box > div > a {
	display: block;
	border-radius: 28px;
	padding: 20px 10px;
}

.id_box > div:nth-of-type(1) > a {
	color: #fff;
	background: #00863c;
}

.id_box > div:nth-of-type(2) > a {
	color: #00863c;
	border: 1px solid #00863c;
	margin: 0 0 10px;
}

.idtowa_box > div {
	display: grid;
	align-items: center;
	justify-content: center;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px 60px;
	margin: 0 0 60px;
}

.idtowa_box > div:last-of-type {
	margin: 0;
}

.idtowa_box h3 {
	margin: 0 0 30px;
}

.idtowa_box > div img {
	width: 100%;
	max-width: 350px;
}

.idtowa_box > div:nth-of-type(3) img {
	max-width: 250px;
}

.idtowa_box > div:nth-of-type(odd) > div:nth-of-type(1) {
	display: flex;
	justify-content: flex-end;
	background: #deebf7;
	padding: 60px 30px;
	margin: 0 0 0 calc(50% - 50vw);
}

.idtowa_box > div:nth-of-type(even) > div:nth-of-type(2) {
	background: #deebf7;
	padding: 60px 30px;
	margin: 0 calc(50% - 50vw) 0 0;
}

.idtowa_box > div:nth-of-type(4) > div:nth-of-type(1) p:nth-of-type(3) {
	font-weight: bold;
}

.dekirukoto_box {
	max-width: 800px;
	display: grid;
	justify-content: space-between;
	grid-template-columns: repeat(auto-fit, minmax(300px, 320px));
	gap: 60px;
	margin: 0 auto 30px;
}

.dekirukoto_box h3 {
	border-bottom: 2px dashed #0070c0;
	margin: 0 0 10px;
}

.user_box {
	max-width: 700px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin: 0 auto 30px;
}

.user_box > div:nth-of-type(2) {
	min-width: 200px;
	text-align: center;
}

.user_box > div > a {
	width: 100%;
	max-width: 200px;
	display: block;
	color: #00863C;
	border: 1px solid #00863C;
	border-radius: 17px;
	padding: 10px;
	margin: 0 0 10px;
}


.sakusei_box,
.mypage_box {
	max-width: 600px;
	box-shadow: 0 2px 5px 1px rgb(0 0 0 / 10%);
	padding: 20px 20px 30px;
	margin: 0 auto;
}

.sakusei_box h3,
.mypage_box h3 {
	font-size: 2rem;
	font-weight: bold;
	border-bottom: 2px dashed #0070c0;
	padding: 0 0 2px;
	margin: 0 0 20px;
}

.sakusei_box > div > div a,
.mypage_box > a {
	max-width: 200px;
	display: block;
	color: #fff;
	text-align: center;
	background: #00863c;
	border: 1px solid #00863c;
	border-radius: 17px;
	padding: 10px;

}

.sakusei_box > div {
	display: grid;
	justify-content: center;
	grid-template-columns: repeat(auto-fit, minmax(200px, 200px));
	gap: 30px;
	text-align: center;
	margin: 0 auto;
}

.sakusei_box > div > div p {
	margin: 0 0 10px;
}

.sakusei_box {
	margin: 0 auto 60px;
}

.mypage_box > a {
	color: #00863c;
	background: #fff;
	margin: 0 auto;
}

.mypage_box > p:nth-of-type(1),
.mypage_box > p:nth-of-type(2) {
	margin: 0 0 10px;
}


.overflow {
	overflow: hidden;
}

.text_small {
	font-size: 1.1rem;
	line-height: 1.5;
}

.bg_blue {
	background: #f3f7ff;
}

@media screen and (max-width: 1024px) {
	.idtowa_box > div {
		gap: 30px;
	}

	.idtowa_box > div img {
		max-width: 300px;
	}

}

@media screen and (max-width: 767px) {
	.title h2 {
		font-size: 2.4rem;
	}

	.hero_box > div {
		height: 350px;
		flex-flow: column;
	}

	.hero_box > div > div:nth-of-type(2) img {
		max-width: 350px;
	}

	.idtowa_box > div {
		grid-template-columns: repeat(1, 1fr);
	}

	.idtowa_box > div:nth-of-type(odd) > div:nth-of-type(1) {
		order: 2;
	}

	.dekirukoto_box {
		grid-template-columns: repeat(1, 1fr);
		gap: 30px 0;
	}

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