section.panel {
	position: relative;
	z-index: 1;
	background-color: #89da87;
	> div {
		max-width: 1920px;
		margin-inline: auto;
		> img {
			max-width: 100%;
			width: 100%;
		}
	}
}
section.breadcrumbs {
	position: relative;
	z-index: 2;
	background-color: #fff;
	margin-top: -28px;
	border-radius: 50px;
	padding-top: 25px;
	padding-bottom: min(25px,2vw);
	> div {
		max-width: 1000px;
	}
}
section.top01 {
	padding: min(10px,1vw) 5% 0 5%;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		> h2 {
			margin-block: min(40px,5vw);
			font-size: min(2.8rem, 8vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
			font-family: var(--font-en);
		}
		> p {
			font-size: min(1.4rem, 6vw);
			line-height: 1.3;
			color: #333;
			font-weight: 800;
			letter-spacing: 0.1em;
			text-align: center;
			margin-bottom: 0px;
		}
	}
}
section.top02 {
	background-color: #f2f2f2;
	> div {
		padding-top: min(80px,10vw);
		background-color: #fff;
		border-radius: 0 0 50px 50px;
	}
}
section.link {
	background-color: #f2f2f2;
	padding: min(100px,13vw) 5% min(100px,13vw) 5%;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		column-gap: 20px;
		row-gap: 20px;
		@media (width < 1010px) {
			grid-template-columns: repeat(2, 1fr);
		}
		@media (width < 670px) {
			column-gap: 10px;
			row-gap: 10px;
		}
		> div {
			> a {
				display: grid;
				text-decoration: none;
				&:hover {
					opacity: 0.8;
					> div {
						background: linear-gradient(90deg,#00a0e9, #0014ff) padding-box, linear-gradient(90deg, #00a0e9, #0014ff) border-box;
						> p {
							color: #fff;
						}
					}
				}
				> div {
					border-radius: 40px;
					border: 4px solid transparent;
					background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(90deg, #00a0e9, #0014ff) border-box;
					> p {
						min-width: 200px;
						align-self: center;
						padding: 10px 10px 10px 10px;
						font-size: min(1.3rem, 5vw);
						font-weight: 600;
						text-align: center;
						color: #0075c1;
						@media (width < 670px) {
							min-width: 0px;
						}
					}
				}
			}
		}
	}
}
section.data {
	padding: min(80px,12vw) 5% min(100px,15vw) 5%;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		> h2 {
			margin-bottom: 20px;
			font-size: min(2.8rem, 8vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
			font-family: var(--font-en);
		}
		> h3 {
			margin-bottom: 40px;
			font-size: min(1.6rem, 7vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
		}
		> p {
			font-size: min(1.1rem, 5vw);
			line-height: 1.6;
			color: #333;
			font-weight: 500;
			text-align: center;
			margin-bottom: 40px;
			@media (width < 500px) {
				font-weight: unset;
				margin-bottom: 0px;
			}
		}
		> article {
			margin-top: min(60px,5vw);
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: min(30px,2vw);
			> figure {
				text-align: center;
				&:nth-of-type(even) {
					transition-delay: 0.2s;
					@media (width < 780px) {
						transition-delay: unset;
					}
				}
				> img {
					border-radius: 50px;
					max-width: 100%;
					border: 5px solid #ccc;
					@media (width < 700px) {
						border-radius: 10px;
						border-width: 2px;
					}
				}
			}
		}
		> h4 {
			text-align: center;
			color: #333;
			font-size: min(1.4rem, 6vw);
			font-weight: 600;
			line-height: 1.0;
			margin-block: 30px 0px;
		}
	}
}
section.training01 {
	border-top-left-radius: 50px;
	border-top-right-radius: 50px;
	background-color: #d5e7fd;
	padding: min(100px,15vw) 5% 50px 5%;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		> h2 {
			margin-bottom: 20px;
			font-size: min(2.8rem, 8vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
			font-family: var(--font-en);
		}
		> h3 {
			margin-bottom: 40px;
			font-size: min(1.6rem, 7vw);
			line-height: 1.3;
			color: #333;
			font-weight: 700;
			letter-spacing: 0.1em;
			text-align: center;
			@media(width < 500px) {
				margin-bottom: 20px;
			}
		}
		> div.top {
			display: grid;
			grid-template-columns: 1fr 1.4fr;
			column-gap: 30px;
			@media (width < 840px) {
				grid-template-columns: 1fr;
				row-gap: 40px;
			}
			> div {
				> h4 {
					color: #333;
					font-size: min(1.7em, 6vw);
					font-weight: 600;
					line-height: 1.0;
					margin-block: 30px 0px;
				}
				> p {
					margin-top: 40px;
					font-size: min(1.0rem, 5vw);
					line-height: 1.8;
					color: #333;
					text-align: justify;
				}
			}
			> figure {
				> img {
					max-width: 100%;
				}
			}
		}
	}
}
section.training02 {
	border-bottom-left-radius: 50px;
	border-bottom-right-radius: 50px;
	background-color: #d5e7fd;
	padding: 50px 5% min(100px,10vw) 5%;
	> div {
		max-width: 1200px;
		margin-inline: auto;
		background-color: #fff;
		padding: 50px 5% min(50px,10vw) 5%;
		&:nth-of-type(1) {
			border-top-left-radius: 30px;
			border-top-right-radius: 30px;
			background-color: #fff;
		}
		&:nth-of-type(2) {
			background-color: #f2f2f2;
			> div {
				grid-template-columns: 1fr 1fr 1fr;
				@media (width < 950px) {
					grid-template-columns: 1fr;
				}
			}
		}
		&:nth-of-type(3) {
			background-color: #fff;
			padding-bottom: 60px;
			border-bottom-left-radius: 30px;
			border-bottom-right-radius: 30px;
		}
		> div {
			max-width: 1000px;
			margin-inline: auto;
			display: grid;
			> p {
				justify-self: start;
				font-size: min(1.5rem, 6.5vw);
				line-height: 1.3;
				color: #333;
				font-weight: 800;
				letter-spacing: 0.1em;
				padding-inline: 5px;
				border-bottom: 2px solid #00a0e9;
				&:nth-of-type(2) {
					margin-top: 60px;
				}
			}
			> figure {
				> img {
					max-width: 100%;
				}
			}
			> picture {
				margin-top: 20px;
				> img {
					width: 100%;
					max-width: 100%;
				}
			}
			> article {
				padding-inline: 20px;
				border-left: 1px solid #999999;
				display: grid;
				grid-template-rows: subgrid;
  				grid-row: span 2;
				&:nth-of-type(1) {
					border-left: none;
				}
				@media (width < 950px) {
					border-left: unset;
					padding-block: 30px;
					border-bottom: 1px solid #999999;
				}
				&:nth-of-type(3) {
					@media (width < 950px) {
						border-bottom: unset;
					}
				}
				> h3 {
					align-self: end;
					justify-self: center;
					text-align: center;
					font-size: min(1.2rem, 6.5vw);
					line-height: 1.8;
					color: #333;
					font-weight: 700;
					letter-spacing: 0.05em;
					padding-inline: 15px;
					border-bottom: 6px solid #92e16f;
					margin-bottom: 10px;
				}
				> p {
					align-self: start;
					text-align: justify;
					font-size: min(1.0rem, 4.5vw);
					line-height: 1.8;
					color: #333;
					font-weight: 500;
					@media (width < 500px) {
						font-weight: unset;
					}
				}
			}
		}
	}
	> div:nth-of-type(3) {
		padding: 0px 5% min(50px,10vw) 5%;
	}
}
section.programs {
	border-radius: 50px;
	background-color: #fff;
	padding: min(100px,15vw) 5%;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		> h2 {
			margin-bottom: 20px;
			font-size: min(2.8rem, 8vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
			font-family: var(--font-en);
		}
		> h3 {
			margin-bottom: 40px;
			font-size: min(1.6rem, 7vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
		}
		> p {
			font-size: min(1.1rem, 5vw);
			line-height: 1.6;
			color: #333;
			font-weight: 500;
			letter-spacing: 0.1em;
			text-align: center;
			margin-bottom: 40px;
		}
		> div {
			margin-top: 150px;
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 40px;
			@media (width < 900px) {
				grid-template-columns: 1fr;
				row-gap: 90px;
			}
			> article {
				padding: 0 20px 20px 20px;
				position: relative;
				display: grid;
				grid-template-rows: subgrid;
  				grid-row: span 2;
				row-gap: 10px;
				@media (width < 900px) {
					padding: 0 0px 20px 0px;
				}
				> figure {
					position: absolute;
					top: 0px;
					right: 0px;
					> img {
						width: 80px;
					}
				}
				> h4 {
					align-self: center;
					border-left: 8px solid #ff8c32;
					border-image: linear-gradient(to top, #ff8c32, #ff5074) 1;
					border-image-width: 0 0 0 8px;
					color: #da3660;
					font-size: min(1.8rem, 5vw);
					font-weight: 600;
					line-height: 1.0;
					text-align: left;
					padding-left: 10px;
					padding-block: 10px;
				}
				> p {
					padding-top: min(20px,2vw);
					color: #333;
					font-size: min(1rem, 4.5vw);
					line-height: 1.6;
					text-align: justify;
				}
				&:nth-of-type(1) {
					> figure {
						top: -20%;
                    	right: 5%;
						> img {
							max-width: 55px;
						}
						@media (width < 900px) {
							top: -100px;
						}
					}
				}
				&:nth-of-type(2) {
					> figure {
						top: -17%;
                    	right: 5%;
						@media (width < 900px) {
							top: -70px;
						}
					}
				}
				&:nth-of-type(3) {
					> figure {
						top: -25%;
                    	right: 5%;
						@media (width < 900px) {
							top: -80px;
						}
						&:nth-of-type(2) {
							> img {
								width: 60px;
							}
						}
					}
				}
				&:nth-of-type(4) {
					> figure {
						top: -25%;
                    	right: 5%;
						@media (width < 900px) {
							top: -60px;
						}
						&:nth-of-type(2) {
							> img {
								width: 90px;
							}
						}
					}
				}
			}
		}
	}
}
section.benefits {
	padding: min(100px,15vw) 5% min(100px,15vw) 5%;
	background-color: #ffef73;
	border-radius: 50px;
	margin-bottom: 40px;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		> h2 {
			margin-bottom: 20px;
			font-size: min(2.8rem, 8vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
			font-family: var(--font-en);
		}
		> h3 {
			margin-bottom: 40px;
			font-size: min(1.6rem, 7vw);
			line-height: 1.3;
			color: #333;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
		}
		> div {
			max-width: 800px;
			margin-inline: auto;
			> p {
				font-size: min(1.1rem, 5vw);
				line-height: 1.6;
				color: #333;
				font-weight: 500;
				letter-spacing: 0.1em;
				text-align: center;
				margin-bottom: 40px;
				background-color: #fff;
				padding-block: 10px;
				padding-inline: 10px;
			}
		}
		> article {
			margin-top: 60px;
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 30px;
			@media (width < 700px) {
				gap: 5px;
			}
			> figure {
				text-align: center;
				&:nth-of-type(even) {
					transition-delay: 0.2s;
					@media (width < 780px) {
						transition-delay: unset;
					}
				}
				> img {
					border-radius: 50px;
					max-width: 100%;
					border: 5px solid #ccc;
					@media (width < 700px) {
						margin-top: 0px;
						border-radius: 10px;
						border-width: 2px;
					}
				}
			}
		}
		> picture {
			display: grid;
			justify-items: center;
			padding-top: 30px;
			@media (width < 700px) {
				padding-top: 5px;
			}
			> img {
				border-radius: 50px;
				max-width: 100%;
				border: 5px solid #ccc;
				margin-top: 30px;
				@media (width < 700px) {
					margin-top: 0px;
					border-radius: 10px;
					border-width: 2px;
				}
			}
		}
		> h4 {
			text-align: center;
			color: #333;
			font-size: min(1.4rem, 6vw);
			font-weight: 600;
			line-height: 1.0;
			margin-block: 30px 0px;
		}
	}
}
