body {
	background-image: url(./common/image/back01.webp);
	background-size: cover;
	background-position: 50% 50%;
	background-attachment: fixed;
}
section.switchpanel {
	background-color: #eee;
	> div {
		max-width: 1920px;
		margin: 0 auto;
		overflow: hidden;
		> #switchPanelStage {
			user-select: none;
			display: grid;
			grid-template-rows: 1fr;
			grid-template-columns: 1fr;
			> div {
				grid-row: 1/2;
				grid-column: 1/2;
				&:nth-of-type(1) {
					z-index: 0;
				}
				&:nth-of-type(2) {
					z-index: 1;
					transition: 0.5s;
					cursor: ew-resize;
				}
				&:nth-of-type(3) {
					z-index: 2;
					justify-self: flex-end;
					align-self: end;
					display: flex;
					justify-content: center;
					align-items: center;
					column-gap: 5px;
					padding: 0 20px 17px 0;
					@media (width < 670px) {
						column-gap: 3px;
						padding: 0 4px 4px 0;
						> span {
							> img {
								width: 8px;
							}
						}
					}
					> span {
						transition: 0.3s;
						cursor: pointer;
						> img:nth-of-type(1) {
							display: block;
						}
						> img:nth-of-type(2) {
							display: none;
						}
						&.on {
							> img:nth-of-type(1) {
								display: none;
							}
							> img:nth-of-type(2) {
								display: block;
							}
						}
					}
				}
				/*
				> a {
					display: grid;
					> figure {
						grid-area: 1/1/2/2;
						z-index: 2;
						justify-self: center;
						align-self: center;
						> img {
							width: 100%;
						}
					}
					> picture {
						grid-area: 1/1/2/2;
						> img {
							width: 100%;
						}
					}
				}
				*/
				> div {
					display: grid;
					> a {
						grid-area: 1/1/2/2;
						z-index: 2;
						justify-self: center;
						align-self: end;
						margin-bottom: min(9vw,160px);
						text-decoration: none;
						text-align: center;
						/*
						&:hover {
							opacity: 0.7;
						}
						> img {
							max-width: 100%;
							@media (width < 700px) {
								max-width: 70%;
							}
						}
						*/
					}
					> picture {
						grid-area: 1/1/2/2;
						> img {
							width: 100%;
						}
					}
				}
			}
		}
	}
}
section.concept {
	background-color: #f4fafd;
	padding: 60px 5% 60px 5%;
	z-index: 4;
	position: relative;
	> div {
		max-width: 900px;
		margin: 0 auto;
		> h3 {
			font-size: 3.0rem;
			line-height: 1;
			color: #fff;
			font-family: var(--font-en);
			font-weight: 700;
			text-align: center;
			transition: color 0.3s;
		}
		> h1 {
			margin-top: 40px;
			font-size: 1.2rem;
			line-height: 1.2;
			font-weight: 700;
			color: #000;
			text-align: center;
		}
		> h2 {
			margin-top: 20px;
			font-size: 1.2rem;
			line-height: 1.2;
			color: #2039a3;
			text-align: center;
		}
		> p {
			margin-top: 20px;
			font-size: 1rem;
			line-height: 1.5;
			color: #333;
			text-align: center;
		}
	}
}
section.index {
	padding-block: 50px 120px;
	padding-inline: 5%;
	> div {
		max-width: 1300px;
		margin: 0 auto;
		> .panel {
			margin-top: 50px;
			display: grid;
			grid-template-columns: 1fr 1fr;
			column-gap: 30px;
			row-gap: 20px;
			@media (width< 730px) {
				grid-template-columns: 1fr;
			}
			> a {
				display: block;
				text-decoration: none;
				padding: 30px 20px;
				&:nth-of-type(1) {
					background-color: #556;
				}
				&:nth-of-type(2) {
					background-color: #889;
				}
				&:hover {
					opacity: 0.8;
				}
				> div {
					max-width: 300px;
					margin: 0 auto;
					> figure {
						text-align: center;
						> figcaption {
							font-size: 1.6rem;
							line-height: 1.3;
							color: #fff;
							font-weight: 700;
							margin-top: 5px;
							&:nth-of-type(2) {
								font-family: var(--font-en);
							}
						}
						> img {
							margin-top: 10px;
							max-width: 100%;
							border: solid 1px #fff;
						}
					}
					> p {
						margin-top: 10px;
						font-size: 1rem;
						line-height: 1.5;
						color: #fff;
						font-weight: 300;
					}
				}
			}
		}
		> .box {
			margin-top: 50px;
			display: grid;
			grid-template-columns: repeat(3,1fr);
			column-gap: 10px;
			row-gap: 50px;
			@media (width < 900px) {
				grid-template-columns: repeat(2,1fr);
			}
			@media (width < 600px) {
				grid-template-columns: repeat(1,1fr);
			}
			> a {
				background-color: rgba(255,255,255,1);
				display: block;
				padding: 20px;
				text-decoration: none;
				transition: background-color 0.5s;
				border-radius: 20px;
				&:hover {
					background-color: rgba(255,255,255,0.2);
					> figure {
						> img {
							transform: scale(1.05);
						}
					}
				}
				&[href] {
					> h3 {
						background-image: url(./common/image/mark_chevron_right_888.svg);
						background-repeat: no-repeat;
						background-position: right 50%;
						padding-right: 20px;
					}
					&[target="_blank"] {
						> h3 {
							background-image: url(./common/image/mark_external_888.svg);
						}
					}
				}
				> figure {
					overflow: hidden;
					> img {
						transition: transform 0.5s;
						border-radius: 5px;
						max-width: 100%;
					}
				}
				> h3 {
					margin-top: 10px;
					display: inline-block;
					font-size: 1rem;
					line-height: 1.5;
					color: #000;
					font-weight: 700;
				}
				> p {
					margin-top: 5px;
					font-size: 0.9rem;
					line-height: 1.5;
					color: #333;
				}
			}
			> div {
				background-color: rgba(255,255,255,1);
				display: block;
				padding: 20px;
				text-decoration: none;
				transition: background-color 0.5s;
				border-radius: 20px;
				> figure {
					overflow: hidden;
					> img {
						transition: transform 0.5s;
						border-radius: 5px;
						max-width: 100%;
					}
				}
				> h3 {
					margin-top: 10px;
					display: inline-block;
					font-size: 1rem;
					line-height: 1.5;
					color: #000;
					font-weight: 700;
				}
				> p {
					margin-top: 5px;
					font-size: 0.9rem;
					line-height: 1.5;
					color: #333;
				}
				> a {
					margin-top: 5px;
					font-size: 0.9rem;
					line-height: 1.5;
					color: #333;
					background-image: url(./common/image/mark_external_888.svg);
					background-repeat: no-repeat;
					background-position: right 50%;
					padding-right: 20px;
					&:hover {
						opacity: 0.7;
					}
				}
			}
		}
	}
}
section.link {
	background-color: #fff;
	padding: 40px 5% 40px 5%;
	text-align: center;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		> a {
			font-size: 0.9rem;
			line-height: 1.5;
			color: #222;
			background-image: url(./common/image/mark_external_888.svg);
			background-repeat: no-repeat;
			background-position: right 50%;
			padding-right: 20px;
			&:hover {
				opacity: 0.7;
			}
		}
	}
}
section.contact {
	background-color: #001;
	padding: 80px 5% 90px 5%;
	text-align: center;
	> div {
		> h3 {
			font-size: 2.0rem;
			line-height: 1;
			color: #aaa;
			font-weight: 300;
			@media (width < 390px) {
				font-size: 1.5rem;
			}
		}
		> h4 {
			font-size: 1.2rem;
			font-weight: 700;
			color: #fff;
			margin-top: 10px;
		}
		> a {
			margin-top: 20px;
			display: inline-block;
			text-decoration: none;
			font-size: 1rem;
			line-height: 1.5;
			color: #ccf;
			font-weight: 700;
			background-image: url(./common/image/mark_chevron_right_fff.svg);
			background-repeat: no-repeat;
			background-position: 94% 55%;
			padding: 6px 30px 7px 10px;
			&:hover {
				opacity: 0.7;
			}
			> div {
				padding-left: 30px;
				background-image: url(./common/image/mark_mail_ccf.svg);
				background-repeat: no-repeat;
				background-position: 0% 65%;
			}
		}
		> div {
			margin-top: 20px;
			font-size: 1.0rem;
			line-height: 1.2;
			color: #fff;
		}
		> p {
			margin-top: 10px;
			font-size: 0.9rem;
			line-height: 1.4;
			color: #fff;
		}
		> h5 {
			font-size: 0.9rem;
			color: #fff;
			font-weight: 500;
			margin-top: 20px;
		}
	}
}
