main section {
	margin: 30px 0;
	& article {
		padding: 60px 10%;
		position: relative;
		& h2 {
			font-size: 250%;
			letter-spacing: 10px;
			margin-bottom: 30px;
			& span {
				display: block;
				font-size: 56.7%;
				letter-spacing: normal;
				@media screen and (min-width:768px) {
					display: inline-block;
				}
			}
		}
		& p { font-size: 112.5%; }
		& p.link { text-align: center; }
	}
}
main section.heading {
	margin: 0;
	&::before, &::after {
		display: block;
		content: "";
		position: absolute;
		z-index: -1;
	}
	&::before {
		background : url(../img/common/bg02.svg) no-repeat;
		background-size: 115%;
		width: 60%;
		height: 240px;
		right: 0;
		top: 350px;
		@media screen and (min-width:768px) {
			background-size: 100%;
			width: 405px;
			height: 300px;
			top: 0;
			right: 50%;
			margin-right: 360px;
		}
	}
	&::after {
		background : url(../img/common/bg03.svg) no-repeat;
		background-size: 100%;
		width: 30%;
		height: 170px;
		top: 540px;
		left: -3%;
		@media screen and (min-width:768px) {
			background-size: 100%;
			width: 220px;
			top: 430px;
			height: 300px;
			left: 50%;
			margin-left: -610px;
		}
	}
}
main section.heading article {
	@media screen and (min-width:1025px) {
		width: 1200px;
		padding: 80px 0 200px;
		margin: 0 auto;
		display: grid;
		gap: 0 20px;
		place-items: center;
		grid-template-columns: auto 680px;
	}
	& .visual {
		padding: 0 40px 80px;
		@media screen and (min-width:768px) { padding: 0 20% 80px; }
		@media screen and (min-width:1025px) { padding: 0; }
	}
	& div {
		padding: 0 5%;
		& h2 {
			margin-bottom: 30px;
			letter-spacing: 8px;
			line-height: 1.2;
			font-size: 7.5vw;
			@media screen and (min-width:768px) { font-size: 312.5%; }
		}
		& p {
			font-weight: bold;
			font-size: 4.2vw;
			@media screen and (min-width:768px) { font-size: 125%; }
		}
	}
}
main section.sec01 {
	padding-left: 5%;
	@media screen and (min-width:1025px) { padding-left: 0; }
	& article {
	    background-color: #f2e5cc;
	    border: 2px solid #333333;
	    border-right: 0;
	    border-radius: 60px 0 0 60px;
		@media screen and (min-width:1025px) {
			padding: 35px 0 35px 160px;
			border-radius: 256px 0 0 256px;
			left: 50%;
			margin: 0 0 0 -600px;
			& > div {
		    		max-width: 1040px;
				display: grid;
				gap: 0 80px;
				grid-template-columns: 1fr 1fr;
				place-items: center;
		    }
		}
	   &  .visual {
	    	width: 80%;
	    	margin: 0 auto;
	    	@media screen and (min-width:1025px) { width: 100%; }
	    }
	}
}
main section.sec00,
main section.sec02 {
	padding-right: 5%;
	& article {
	    background-color: #e5efcb;
	    border: 2px solid #333333;
	    border-left: 0;
	    border-radius: 0 60px 60px 0;
	    @media screen and (min-width:1025px) {
	        right: 50%;
		margin-right: -620px;
		display: flex;
		flex-direction: row-reverse;
		padding: 60px 120px 60px 0 ;
		border-radius: 0 250px 250px 0;
	    }
	    & > div {
	    	@media screen and (min-width:1025px) {
	    		max-width: 1060px;
	    		display: grid;
			gap: 0 40px;
			grid-template-columns: 1fr 560px;
			place-items: center;
	    	}
	    	& ul.study-flow {
	    		margin-top: 30px;
	    		@media screen and (min-width:1025px) {
		    		margin-top: 0;
		    		grid-row: 1 / 3;
		    		grid-column: 2 / 3;
		    		width: 100%;
	    		}
	    		&::after {
				width: 80px;
				height: 150px;
				right: -30px;
				bottom: -100px;
				@media screen and (min-width:768px) {
					width: 190px;
					height: 340px;
					right: -160px;
					bottom: -180px;
				}
	    		}
	    	}
	    }
	}
}
main section.sec00 article {
	background-color: #d1eef1;
	@media screen and (min-width:1025px) {margin: -140px -620px 0 0 ;}
	& h2 {
            font-size: 225%;
           letter-spacing: 0;
	}
	& > div {
		grid-template-columns: 1fr 400px;
		& .visual {
			@media screen and (min-width:1025px) {
				grid-column: 2;
				grid-row: 1 / 3;
			}
		}
	}
}
main section.column {
	position: relative;
	&::before {
		content: "";
		display: block;
		background: url(../img/common/bg-main.svg) no-repeat;
		background-position: 120% center;
		background-size: 120%;
		opacity: 0.5;
		width: 50%;
		height: 350px;
		position: absolute;
		top: -40px;
		z-index: -1;
		@media screen and (min-width:768px) {
			width: 500px;
			height: 1000px;
			top: -150px;
	        }
	}
}
main section.column article {
	padding: 80px 5%;
	@media screen and  (min-width: 768px){ padding: 80px 0; }
}
main section.news article {
	background: #ffffff;
        border: 1px solid #333333;
        border-radius: 20px;
        padding: 20px;
	margin: 0 5% 60px;
	@media screen and  (min-width: 768px){
		padding: 40px; 
		max-width: 1200px;
		margin: 0 auto 60px;
	}
	& h2 { text-align: center; }
	& table tr th {
		display: block;
		padding: 0.5em 0.5em 0;
	}
	& table tr td {
		display: block;
		padding: 0 0.5em 0.5em;
	}
	@media screen and (min-width: 768px){ 
		& table tr th,　& table tr td {
			padding: 0.5em;
			display: table-cell;
		}
	}
}
main section.data {
	@media screen and (min-width: 768px) { margin: 20px 0 120px;}
}
main section.data article {
	padding: 0 5% 80px;
	@media screen and (min-width: 768px) { padding: 0;}
	& ul {
		display: grid;
		gap: 20px 0;
		width: 80%;
		margin: 0 auto;
		@media screen and (min-width: 768px) {
			width: 1160px;
			grid-template-columns: repeat(3, 1fr);
			gap: 0 40px;
			margin: 0 auto;
		}
		& li {
			position: relative;
			transition: 0.7s;
			&:hover { transform: scale(1.2); }
			&::after {
				content: '';
				display: block;
				width: 100%;
				height: 100%;
				background: url(../img/top/bg-data.svg);
				position: absolute;
		                top: 10px;
		                left: 10px;
		                border: 1px solid #333333;
		                border-radius: 61px;
		                z-index: -1;
			}
			& a {
				font-size: 6.4vw;
				font-weight: bold;
				display: block;
				text-decoration: none;
				text-align: center;
				background-color: #ffffff;
				padding: 1em;
				border: 1px solid #333333;
				border-radius: 62px;
				letter-spacing: 5px;
				@media screen and (min-width: 768px) {
					font-size: 187.5%;
				}
				&:hover { opacity: 1; }
				&::after {
					content: url(../img/common/ico-arrow.png);
					display: inline-block;
					vertical-align: middle;
					margin-left: 0.5em;
					line-height: 1;
				}
			}
		}
	}
}