section.panel {
	> div {
		max-width: 1920px;
		margin-inline: auto;
		> figure {
			> img {
				max-width: 100%;
			}
		}
	}
}
main {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	&::before {
		content: "";
		position: absolute;
		width: 600px;
		height: 300%;
		background-color: #eaf9ea;
		transform: rotate(50deg);
		top: -90%;
		left: 0%;
		z-index: 0;
		@media (width < 1000px) {
			display: none;
		}
	}
}
section.top {
	padding: 50px 5% 0px 5%;
	background-color: #fff;
	> div {
		position: relative;
		z-index: 1;
		max-width: 1000px;
		margin-inline: auto;
		> h1 {
			font-size: 2.0rem;
			line-height: 1.5;
			color: #32c832;
			font-weight: 700;
			text-align: center;
		}
		> p {
			font-size: min(1.1rem,5vw);
			line-height: 1.0;
			color: #333;
			text-align: center;
		}
		> div {
			padding-block: 50px;
			> p {
				font-size: min(1.1rem,5vw);
				line-height: 1.8;
				color: #333;
			}
		}
	}
}
section.link {
	padding: 0px 5% 50px 5%;
	> div {
		position: relative;
		z-index: 2;
		max-width: 1000px;
		margin-inline: auto;
		> div {
			background-color: #fff;
			border: solid 1px #32c832;
			max-width: 800px;
			margin-inline: auto;
			padding: 30px;
			@media (width < 500px) {
				padding: 15px;
			}
			> a {
				margin-bottom: 10px;
				border: 2px solid #32c832;
				background-color: #fff;
				border-radius: 30px;
				max-width: 500px;
				margin-inline: auto;
				display: grid;
				text-decoration: none;
				align-items: center;
				height: 50px;
				@media (width < 500px) {
					height: unset;
					padding-block: 10px;
				}
				> p {
					padding-inline: 40px;
					grid-area: 1/1/2/2;
					text-align: center;
					font-size: 1.2rem;
					line-height: 1.2;
					font-weight: 600;
					color: #32c832;
					@media (width < 500px) {
						padding-inline: 20px 40px;
						text-align: left;
					}
				}
				> div {
					margin-right: 15px;
					clip-path: polygon(0 20%, 50% 95%, 100% 20%);
					justify-self: end;
					grid-area: 1/1/2/2;
					background-color: #32c832;
					width: 20px;
					height: 20px;
				}
				&:hover {
					background-color: #32c832;
					> p {
						color: #fff;
					}
					> div {
						background-color: #fff;
					}
				}
				&:last-of-type {
					margin-bottom: 0px;
				}
			}
		}
	}
}
section.which {
	margin-top: -180px;
	position: relative;
	z-index: 1;
	padding: 200px 5% 0px 5%;
	background: url(./image/crane_bg.webp) , linear-gradient(to right , rgba(255,255,255,0) 0, rgba(255,255,255,0) 10%, #D6F4D6 10% , #D6F4D6);
	background-repeat: no-repeat;
	background-position: 100% 0%;
	background-size: auto 100%;
	@media (width < 1250px) {
		background: url(./image/crane_bg.webp) , linear-gradient(to right , rgba(255,255,255,0) 0, rgba(255,255,255,0) 4%, #D6F4D6 4% , #D6F4D6);
		background-repeat: no-repeat;
		background-position: 100% 0%;
		background-size: auto 100%;
	}
	@media (width < 1000px) {
		background: url(./image/crane_bg.webp);
		background-color: #D6F4D6;
		background-repeat: no-repeat;
		background-position: 100% 0%;
		background-size: auto 100%;
	}
	@media (width < 700px) {
		background-size: auto 70vw;
	}
	> div {
		max-width: 900px;
		margin-inline: auto;
		> h1 {
			font-size: 2.0rem;
			line-height: 1.5;
			color: #32c832;
			font-weight: 700;
			text-align: center;
		}
		> p {
			font-size: min(1.1rem,5vw);
			line-height: 1.0;
			color: #333;
			text-align: center;
		}
		> div {
			padding-block: 50px;
			> p {
				font-size: min(1.1rem,5vw);
				line-height: 1.8;
				color: #333;
				> b {
					color: #32c832;
					font-size: 1.15rem;
					font-weight: 700;
				}
			}
		}
	}
	> div.point {
		max-width: 1000px;
		margin-inline: auto;
		> figure {
			> img {
				max-width: 100%;
			}
		}
	}
}
section.pointcontent {
	position: relative;
	z-index: 1;
	padding: 20px 0% 0px 5%;
	background: linear-gradient(to right , rgba(255,255,255,0) 0, rgba(255,255,255,0) 10%, #D6F4D6 10% , #D6F4D6);
	@media (width < 1250px) {
		background: linear-gradient(to right , rgba(255,255,255,0) 0, rgba(255,255,255,0) 4%, #D6F4D6 4% , #D6F4D6);
	}
	@media (width < 1000px) {
		background-color: #D6F4D6;
	}
	@media (width < 850px) {
		background-color: #D6F4D6;
		padding: 20px 5% 0px 5%;
	}
	> div.point {
		position: relative;
		z-index: 2;
		max-width: 1080px;
		margin-inline: auto;
		> figure {
			> img {
				max-width: 100%;
			}
		}
	}
	> div.text {
		max-width: 960px;
		margin-inline: auto;
		padding-bottom: 60px;
		> h1 {
			padding-top: 20px;
			font-size: 2.0rem;
			line-height: 1.4;
			color: #32c832;
			font-weight: 700;
			@media (width < 720px) {
				text-align: center;
			}
		}
	}
	> div.content {
		margin-top: -20px;
		display: grid;
		grid-template-columns: 1fr 35%;
		max-width: 1200px;
		margin-inline: auto;
		@media (width < 1200px) {
			max-width: unset;
			margin-inline: unset;
		}
		@media (width < 850px) {
			grid-template-columns: 1fr;
			grid-template-rows: auto auto;
			max-width: 1000px;
			margin-inline: auto;
		}
		> div {
			margin-right: 5%;
			width: 100%;
			padding: 30px;
			background-color: #fff;
			grid-area: 1/1/2/3;
			max-width: 900px;
			justify-self: center;
			@media (width < 1300px) {
				max-width: 900px;
				justify-self: center;
				width: 100%;
			}
			@media (width < 850px) {
				grid-area: 1/1/2/2;
				margin-right: unset;
			}
			@media (width < 520px) {
				padding: 20px;
			}
			> h2 {
				font-size: 1.3rem;
				line-height: 1.5;
				color: #333;
				font-weight: 700;
			}
			> p {
				padding-right: 35%;
				font-size: 1.0rem;
				line-height: 1.5;
				color: #333;
				text-align: justify;
				> small {
					font-size: 0.9rem;
					font-weight: 600;
				}
				&:nth-of-type(2) {
					padding-top: 10px;
				}
				@media (width < 850px) {
					padding-right: 0%;
				}
			}
			> div.item {
				padding-right: 35%;
				display: flex;
				flex-wrap: wrap;
				column-gap: 10px;
				> p {
					font-size: 1.0rem;
					line-height: 1.5;
					color: #333;
					text-indent: -1em;
  					padding-left: 1em;
					> c {
						color: #32c832;
					}
				}
				@media (width < 850px) {
					padding-right: 0%;
				}
			}
			> h1 {
				padding-top: 20px;
				font-size: 1.5rem;
				line-height: 1.4;
				color: #32c832;
				font-weight: 700;
				@media (width < 500px) {
					text-align: center;
				}
			}
		}
		> figure {
			margin-top: 30px;
			grid-area: 1/2/2/3;
			justify-self: end;
			align-self: end;
			> img {
				max-width: 100%;
				@media (width < 850px) {
					max-width: 420px;
					margin-inline: auto;
				}
				@media (width < 480px) {
					max-width: 100%;
				}
			}
			@media (width < 850px) {
				margin-top: 20px;
				grid-area: 2/1/3/2;
				justify-self: center;
				align-self: center;
			}
		}
	}
	&.point03 {
		> div.content {
			grid-template-rows: 1fr auto;
			@media (width < 850px) {
				grid-template-columns: 1fr;
				grid-template-rows: auto auto auto;
			}
			> div.explanation {
				grid-area: 1/1/2/3;
				@media (width < 850px) {
					grid-area: 1/1/2/2;
					margin-right: unset;
				}
			}
			> div.table {
				margin-top: 20px;
                margin-right: 4%;
                grid-area: 2 / 1 / 3 / 2;
                background-color: unset;
                padding: 0 0% 0 0;
                justify-self: end;
                max-width: 630px;
				@media (width < 1250px) {
					max-width: clac(85% - 2vw);
				}
				@media (width < 1070px) {
					max-width: 100%;
					margin-right: 0%;
					padding-right: 5%;
				}
				@media (width < 850px) {
					grid-area: 2 / 1 / 3 / 2;
					padding-right: 0%;
				}
				> div.scrolltable {
					max-width: 90vw;
					&:nth-of-type(1) {
						> div.table {
							> table {
								> tbody {
									> tr {
										border-top: 1px solid #231815;
										border-bottom: 1px solid #231815;
										> th {
											&:nth-of-type(n + 2) {
												border-left: 1px solid #231815;
											}
										}
										> td {
											> img {
												padding-left: 5px;
												width: 40px;
											}
											&:nth-of-type(n + 2) {
												border-left: 1px solid #231815;
											}
										}
									}
								}
							}
						}
					}
					&.on {
						> div.guidance {
							display: block;
						}
					}
					> div.guidance {
						display: none;
						background-color: #ddd;
						font-size: 0.9rem;
						line-height: 1;
						color: #777;
						border-radius: 50px;
						padding-block: 3px;
						padding-inline: 10px;
					}
					> div.table {
						overflow: auto;
						> table {
							margin-top: 3px;
							width: 100%;
							height: 100%;
							border-collapse: collapse;
							> tbody {
								> tr {
									> th {
										background-color: #A2E4A2;
										padding-block: 5px;
										padding-inline: 5px;
										color: #222;
										font-size: min(1.0rem,5vw);
										line-height: 1.6;
										font-weight: 500;
										text-align: center;
										white-space: nowrap;
									}
									> td {
										padding-block: 5px;
										padding-inline: 5px;
										color: #222;
										font-size: min(1.0rem,5vw);
										line-height: 1.6;
										text-align: left;
										text-align: center;
										white-space: nowrap;
									}
								}
							}
						}
					}
				}
			}
			> figure {
				grid-area: 1/2/3/3;
				@media (width < 850px) {
					margin-top: 20px;
					grid-area: 3/1/4/2;
					justify-self: center;
					align-self: center;
				}
			}
		}
	}
}
section.type {
	position: relative;
	z-index: 1;
	padding: 20px 0% 60px 5%;
	background: linear-gradient(to right , rgba(255,255,255,0) 0, rgba(255,255,255,0) 10%, #8EDB90 10% , #8EDB90);
	@media (width < 1250px) {
		background: linear-gradient(to right , rgba(255,255,255,0) 0, rgba(255,255,255,0) 4%, #8EDB90 4% , #8EDB90);
	}
	> div.gradient {
		z-index: 1;
		position: absolute;
		top: 0;
		left: 10%;
		width: 90%;
		height: 100%;
		background: linear-gradient(to top, #5AAF75, #8EDB90);
		@media (width < 1250px) {
			left: 4%;
			width: 96%;
		}
		@media (width < 1000px) {
			left: 0%;
			width: 100%;
		}
	}
	> div.main {
		position: relative;
		z-index: 2;
		max-width: 900px;
		margin-inline: auto;
		> h1 {
			font-size: 2.0rem;
			line-height: 1.5;
			color: #fff;
			font-weight: 700;
			text-align: center;
		}
		> p {
			font-size: min(1.1rem,5vw);
			line-height: 1.0;
			color: #fff;
			text-align: center;
		}
		> article {
			padding-block: 40px;
			margin-right: 5%;
			display: grid;
			grid-template-columns: repeat(2 , 1fr);
			&:nth-of-type(2n) {
				> figure {
					order: 2;
					@media (width < 850px) {
						order: 1;
					}
				}
				> div {
					order: 1;
					margin: 10px 40px 0px 4px;
					@media (width < 850px) {
						order: 2;
						margin: 10px 0px 0px 4px;
					}
				}
			}
			@media (width < 850px) {
				grid-template-columns: repeat(1 , 1fr);
				row-gap: 50px;
			}
			> figure {
				> img {
					box-shadow: 15px 15px rgba(255,255,255,0.3);
					max-width: 100%;
				}
			}
			> div {
				align-self: start;
				position: relative;
				padding-left: 20px;
				border-left: 2px solid #fff;
				margin: 10px 0px 0px 44px;
				@media (width < 850px) {
					margin: 10px 0px 0px 4px;
				}
				> div.double_circle {
					position: absolute;
					top: -5px;
					left: -23px;
					transform: translate(50%, -50%);
					width: 20px;
					height: 20px;
					> div.circle.outer {
						position: absolute;
						top: 2px;
						left: 2px;
						width: 20px;
						height: 20px;
						border: 1px solid #fff;
						border-radius: 50%;
					}
					> div.circle.inner {
						position: absolute;
						top: 7px;
						left: 7px;
						width: 10px;
						height: 10px;
						border: 1px solid #fff;
						border-radius: 50%;
						background-color: #fff;
					}
				}
				&::after {
					content: "";
					position: absolute;
					left: -8px;
					bottom: -20px;
					width: 13px;
					height: 30px;
					background-image: url(./image/hook.svg);
					background-size: cover;
					background-repeat: no-repeat;
				}
				> h1 {
					margin-top: -15px;
					font-size: 1.3rem;
					line-height: 1.0;
					color: #fff;
					font-weight: 700;
				}
				> p {
					padding-block: 20px;
					font-size: 1.0rem;
					line-height: 1.6;
					color: #fff;
					text-align: justify;
				}
				> h2 {
					position: relative;
					font-size: 1.2rem;
					line-height: 1.4;
					color: #fff;
					font-weight: 700;
					padding-top: 15px;
					&.circle {
						&::after {
						content: "";
						display: block;
						position: absolute;
						width: 9px;
						height: 9px;
						border-radius: 50%;
						background: #fff;
						top: 24px;
						left: -25px;
						}
				  	}
				}
			} 
			*:last-child {
				margin-bottom: -10px;
			}
		}
	}
}

section.history_cranes {
	padding: 50px 5% 0px 5%;
	&.operate {
		padding: 50px 5% 50px 5%;
		background-color: #E0F7E0;
	}
	> div {
		position: relative;
		z-index: 1;
		max-width: 1000px;
		margin-inline: auto;
		> h1 {
			font-size: 2.0rem;
			line-height: 1.5;
			color: #32c832;
			font-weight: 700;
			text-align: center;
		}
		> p {
			font-size: min(1.1rem,5vw);
			line-height: 1.0;
			color: #333;
			text-align: center;
		}
		> div {
			padding-block: 50px;
			> p {
				font-size: min(1.1rem,5vw);
				line-height: 1.8;
				color: #333;
			}
		}
	}
}
section.circle {
	padding-top: 50px;
	display: grid;
	grid-template-columns: auto 1000px auto;
	align-items: center;
	column-gap: 30px;
	@media (width < 1450px) {
		grid-template-columns: 10% auto 10%;
	}
	@media (width < 1330px) {
		grid-template-columns: 3.5% auto 3.5%;
		column-gap: 15px;
	}
	@media (width < 720px) {
		grid-template-columns: 1fr;
		padding: 50px 5% 0px 5%;
	}
	> div.line_container {
		position: relative;
		width: 100%;
		height: 2px;
		@media (width < 720px) {
			display: none;
		}
		> div.line {
			position: absolute;
			top: 50%;
			left: 0;
			width: 100%;
			height: 2px;
			background-color: var(--color-accent);
		}
		> div.double_circle {
			position: absolute;
			top: 50%;
			right: 0;
			transform: translate(50%, -50%);
			width: 20px;
			height: 20px;
			> div.circle.outer {
				position: absolute;
				top: 1px;
				left: 2px;
				width: 20px;
				height: 20px;
				border: 1px solid var(--color-accent);
				border-radius: 50%;
				background-color: #fff;
			}
			> div.circle.inner {
				position: absolute;
				top: 6px;
				left: 7px;
				width: 10px;
				height: 10px;
				border: 1px solid var(--color-accent);
				border-radius: 50%;
				background-color: var(--color-accent);
			}
		}
	}
	> div.main {
		justify-self: center;
		width: 100%;
		max-width: 1000px;
	} 
}
section.history_text {
	padding: 10px 5% 0px 5%;
	&.operate {
		padding: 0px 5% 50px 5%;
		background-color: #E0F7E0;
	}
	> div {
		position: relative;
		z-index: 1;
		max-width: 900px;
		margin-inline: auto;
		> b {
			color: #32c832;
			font-size: 1.6rem;
			font-weight: 700;
		}
		> p {
			font-size: min(1.1rem,5vw);
			line-height: 1.8;
			color: #333;
			> b {
				color: #32c832;
				font-size: 1.15rem;
				font-weight: 700;
			}
		}
	}
}
section.pointhistory {
	position: relative;
	z-index: 1;
	padding: 20px 0% 0px 5%;
	@media (width < 850px) {
		padding: 20px 5% 0px 5%;
	}
	&.operate {
		background-color: #E0F7E0;
		> div.content {
			> div {
				background-color: #fff;
			}
		}
	}
	> div.point {
		position: relative;
		z-index: 2;
		max-width: 1080px;
		margin-inline: auto;
		> figure {
			> img {
				max-width: 100%;
			}
		}
	}
	> div.text {
		max-width: 960px;
		margin-inline: auto;
		padding-bottom: 60px;
		> h1 {
			padding-top: 20px;
			font-size: 2.0rem;
			line-height: 1.4;
			color: #32c832;
			font-weight: 700;
			@media (width < 720px) {
				text-align: center;
			}
		}
	}
	> div.content {
		margin-top: -20px;
		padding-bottom: 40px;
		display: grid;
		grid-template-columns: 1fr 35%;
		max-width: 1200px;
		margin-inline: auto;
		@media (width < 1200px) {
			max-width: unset;
			margin-inline: unset;
		}
		@media (width < 850px) {
			grid-template-columns: 1fr;
			grid-template-rows: auto auto;
			max-width: 1000px;
			margin-inline: auto;
		}
		> div {
			margin: 0 5% 30px 0;
			margin-right: 5%;
			width: 100%;
			padding: 30px;
			background-color: #E0F7E0;
			grid-area: 1/1/2/3;
			max-width: 900px;
			justify-self: center;
			align-self: start;
			@media (width < 1300px) {
				max-width: 900px;
				justify-self: center;
				width: 100%;
			}
			@media (width < 850px) {
				grid-area: 1/1/2/2;
				margin-right: unset;
			}
			@media (width < 520px) {
				padding: 20px;
			}
			> h2 {
				font-size: 1.3rem;
				line-height: 1.5;
				color: #333;
				font-weight: 700;
			}
			> p {
				padding-right: 35%;
				font-size: 1.0rem;
				line-height: 1.5;
				color: #333;
				text-align: justify;
				&:nth-of-type(2) {
					padding-top: 10px;
				}
				@media (width < 850px) {
					padding-right: 0%;
				}
				> small {
					font-size: 0.9rem;
					font-weight: 600;
				}
			}
			> div.item {
				padding-right: 35%;
				display: flex;
				flex-wrap: wrap;
				column-gap: 10px;
				> p {
					font-size: 1.0rem;
					line-height: 1.5;
					color: #333;
					text-indent: -1em;
  					padding-left: 1em;
					> c {
						color: #32c832;
					}
				}
				@media (width < 850px) {
					padding-right: 0%;
				}
			}
			> h1 {
				padding-top: 20px;
				font-size: 1.5rem;
				line-height: 1.4;
				color: #32c832;
				font-weight: 700;
				@media (width < 500px) {
					text-align: center;
				}
			}
		}
		> figure {
			margin-top: 30px;
			grid-area: 1/2/2/3;
			justify-self: end;
			align-self: end;
			> img {
				max-width: 100%;
				@media (width < 850px) {
					max-width: 420px;
					margin-inline: auto;
				}
				@media (width < 480px) {
					max-width: 100%;
				}
			}
			@media (width < 850px) {
				margin-top: 20px;
				grid-area: 2/1/3/2;
				justify-self: center;
				align-self: center;
			}
		}
	}
}
section.pointhistory_text {
	margin-top: -50px;
	position: relative;
	z-index: 1;
	padding: 20px 5% 0px 5%;
	&.operate {
		padding: 0px 5% 30px 5%;
		background-color: #E0F7E0;
	}
	> div {
		margin-top: -20px;
		display: grid;
		grid-template-columns: 1fr 35%;
		max-width: 1200px;
		margin-inline: auto;
		@media (width < 1200px) {
			max-width: unset;
			margin-inline: unset;
		}
		@media (width < 850px) {
			grid-template-columns: 1fr;
			grid-template-rows: auto auto;
			max-width: 1000px;
			margin-inline: auto;
		}
		> div {
			margin: 0 5% 30px 0;
			margin-right: 5%;
			width: 100%;
			padding: 30px;
			grid-area: 1/1/2/3;
			max-width: 900px;
			justify-self: center;
			align-self: start;
			@media (width < 850px) {
				margin: 0 0% 30px 0;
				padding: 20px 0;
			}
			> p {
				padding-top: 10px;
				padding-right: 35%;
				font-size: 1.0rem;
				line-height: 1.5;
				color: #333;
				text-align: justify;
				@media (width < 850px) {
					padding-right: 0%;
					padding-top: 30px;
				}
			}
			> h1 {
				padding-top: 20px;
				font-size: min(2.5rem, 8vw);
				line-height: 1.4;
				color: #32c832;
				font-weight: 700;
				@media (width < 500px) {
					text-align: center;
				}
			}
		}
	}
}
section.line {
	margin-block: 20px;
	max-width: 60%;
	margin-inline: auto;
	height: 15px;
	background: linear-gradient(to right,#e6e63c,#98e398);
}

