/*共通*/
html, body {
	margin: 0;
	padding: 0;
	height: 100%;
}
html {
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	font-feature-settings: "palt";
	width: 100%;
	overflow-x: hidden;
	scroll-padding-top: 120px;
	scroll-snap-type: y proximity;
 	scroll-behavior: smooth;
	@media screen and (min-width:1024px) and (max-width: 1346px) {
		overflow-x: auto;
		scroll-padding-top: 260px;
	}
}
body {
	display:grid;
	grid-template-rows: 1fr auto;
	min-height: 100vh;
	background-color: #f9d9cf;
	line-height: 1.8;
}
a {
	text-decoration: underline;
	transition: 0.7s;
}
a:hover { opacity: 0.5; }
a[href*=".pdf"]::after, a[href*=".xlsx"]::after, a[href*=".docx"]::after, a[href*=".doc"]::after, a[href*=".pptx"]::after, a[href^="http"]::after {
	display: inline-block;
	vertical-align: middle;
	width: 1em;
	margin-left: 5px;
}
a[href^="http"]::after { content: url(../img/common/ico-blank.svg); }
a[href*="smartrelease.jp"]::after, a[href*="nitirinkyo.jp"]::after  { content: none; }
a[href*=".pdf"]::after { content: url(../img/common/ico-pdf.svg); }
a[href*=".xlsx"]::after { content: url(../img/common/ico-xlsx.svg); }
a[href*=".docx"]::after, a[href*=".doc"]::after { content: url(../img/common/ico-docx.svg); }
a[href*=".pptx"]::after { content: url(../img/common/ico-pptx.svg); }
img {
	width: 100%;
	height: auto;
}
.note { font-size: 75%;}
.pc { display: none; }
@media screen and (min-width:768px) {
	.sp { display: none; }
	.pc { display: block; }
}
h2 {
	font-family: 'M PLUS Rounded 1c';
	font-weight: bold;
	line-height: 1.5;
}
p { margin-bottom: 0.5em;}
p.link a {
	text-decoration: none;
	background: #ffffff;
	margin-top: 20px;
	display: inline-block;
	padding: 10px 30px;
	border: 1px solid #333333;
	border-radius: 35px;
	line-height: 1.3;
	&::after {
		content: url(../img/common/ico-arrow.png);
		display: inline-block;
		vertical-align: middle;
		margin-left: 0.5em;
	}
}
table {width: 100%;}
table tr:not(:last-child) { border-bottom: 1px dotted #cccccc;}
table tr th, table tr td { padding: 0.5em; }

/*header*/
header {
	position: fixed;
	width: 100%;
	padding: 15px 5%;
	top: 0;
	left: 0;
	z-index: 100;
	@media screen and (min-width:1025px) {
		width: 1200px;
		height: 100px;
		box-sizing: unset;
		left: 50%;
        	transform: translateX(-50%);
		border-radius: 0 0 60px 60px;
		padding: 0 73px 20px;
	}
	& .logo {
		width: 80%;
		position: relative;
		z-index: 10;
		@media screen and (min-width:768px) {
			width: 25%;
			margin-top: 35px;
		}
		@media screen and (min-width:1025px) { width: 35%; }
	}
	& div {
		background-color: #333333;
		width: 50px;
		height: 50px;
		border-radius: 10px 0 0 10px;
		position: absolute;
		right: 0;
		top: 10px;
		z-index: 10;
		@media screen and (min-width:768px) { display: none; }
		&::after {
			content: "menu";
			color: #ffffff;
			position: absolute;
			left: 50%;
			bottom: 5px;
			transform: translateX(-50%) scale(0.6);
			line-height: 1;
		 }
		& span {
			display: block;
			width: 20px;
			height: 1px;
			background-color: #ffffff;
			position: absolute;
			top: calc(50% - 5px);
			left: 50%;
			transform: translateX(-50%);
			&::before, &::after {
				content: "";
				display: block;
				position: relative;
				background-color: #ffffff;
				height: 1px;
				transition: 0.5s;
			}
			&::before { top: -7px; }
			&::after { top: 6px; }
		}
	}
}
header nav {
	background-color: #ffffff;
	border: 1px solid #333333;
	border-right: 0;
	position: fixed;
	top: 0;
	right: -100%;
	border-radius: 40px 0 0 40px;
	width: 100%;
	padding: 80px 8% 60px;
	transition: 0.7s;
	@media screen and (min-width:768px) {
		background-color: transparent;
		border: 0;
		position: absolute;
		right: 0;
		padding: 0 80px 0 0;
		width: auto;
		display: grid;
	}
	& a { text-decoration: none; }
	& ul { width: fit-content; }
	& ul.global {
		margin-top: 40px;
		display: grid;
		gap: 5px 10px;
		grid-template-columns: repeat(2, 1fr);
		@media screen and (min-width:768px) {
			margin-top: 20px;
			order: 2;
			grid-template-columns: repeat(6, auto);
			margin-left: auto;
			gap: 5px;
		}
		@media screen and (min-width:1025px) { gap: 5px 10px; }
		& li a {
			background-color: #333333;
			color: #ffffff;
			font-weight: bold;
			font-size: 5vw;
			display: block;
			text-align: center;
			padding: 5px;
			border-radius: 25px;
			width: 8em;
			@media screen and (min-width:768px) { 
				font-size: 1.69vw;
				width: auto;
				padding: 0 1em;
			}
			@media screen and (min-width:1025px) {
				 font-size: 106.25%; 
				 width: 7em;
				 padding: 3px 0;
			}
		}
	}
	& ul.sub {
		margin: 25px 0;
		@media screen and (min-width:768px) {
			margin: 0 0 0 auto;
			display: grid;
			gap: 20px;
			grid-template-columns: repeat(4, auto);
		}
		& li a {
			padding: 5px 0;
			display: inline-block;
			font-size: 87.5%;
			&::before {
				content: url(../img/common/ico_login.svg);
				width: 1.5em;
				display: inline-block;
				vertical-align: middle;
				margin-right: 0.5em;
			}
			&.parliament::before { content: url(../img/common/ico_parliament.svg); }
			&.conference::before { content: url(../img/common/ico_conference.svg); }
			&.contact::before { content: url(../img/common/ico_contact.svg); }
		}
	}
	& ul.other {
		column-count: 2;
		@media screen and (min-width:768px) { display: none; }
		& li a { font-size: 75%; }
	}
}
header nav ul.global li:nth-child(2) a {
	@media screen and (min-width:768px) { 
		line-height: 1;
		font-size: 75%;
		letter-spacing: -1px;
		width: 6em;
	}
	@media screen and (min-width:1000px) { 
		font-size: 94%;
		width: 8em;
	}
} 
header.fixed {
	@media screen and (min-width:768px) { 
		position: fixed;
		background-color: #ffffff;
		border: 1px solid #333333;
		border-top: 0;
		transition: 0.7s;
		border-radius: 0 0 60px 60px;
		padding: 0 73px 20px;
		height: 100px;
	}
}
header.active {
	& div {
		&::after { content: "close"; }
		& span {
			transform: translateX(-50%) rotate(30deg);
			&::before, &::after {
				top: 0;
				transform: rotate(-60deg);
			}
		}
	}
	& nav { right: -3%; }
}
/*main*/ 
main {
	padding-top: 70px;
	position: relative;
	@media screen and (min-width:768px) {
		padding-top: 110px;
		overflow-x: visible;
	}
	&::after {
		content: "";
		display: block;
		z-index: -1;
		width: 100%;
		height: 350px;
		background: url(../img/common/bg-footer.svg) no-repeat;
		background-size: 145%;
		background-position-x: center;
		position: absolute;
		bottom: 0;
		@media screen and (min-width:768px) {
			width: 1000px;
			height: 800px;
			left: auto;
			right: 0;
		}
	}
	& section.heading {
		position: relative;
		z-index: -1;
		 & article {
		 	padding: 80px 0;
		 	&::before {
				display: block;
				content: "";
				background: url(../img/common/bg01.svg) no-repeat;
				background-position: 115% top;
				background-size: 125%;
				width: 100%;
				height: 450px;
				position: absolute;
				left: 0;
				top: 30px;
				z-index: -1;
				@media screen and (min-width:768px) {
					background-size: 100%;
					width: 800px;
					height: 520px;
					left: auto;
					right: 0;
				}
			}
		 }
		& h2 {
			font-size: 8vw;
			font-weight: bold;
		}
	}
}
main section:last-child {
	margin-bottom: 60px;
	@media screen and (min-width:768px) {
		margin-bottom: 100px;
	}
}
ul.study-flow {
	display: grid;
	gap: 22px 0;
	text-align: center;
	font-size: 4.26vw;
	position: relative;
	@media screen and (min-width:768px) { font-size: 100%; }
	&::after {
		content: "";
		background: url(../img/common/img_study.png) no-repeat;
		background-size: contain;
		display: block;
		position: absolute;
	}
	& li {
		font-weight: bold;
		&:first-child, &:last-child {
			border: 1px solid #333333;
			border-radius: 30px;
			padding: 0 10px;
			@media screen and (min-width:768px) {
				font-size: 137.5%;
				padding: 5px 10px;
			}
		}
		&:first-child {
			background: #bde593;
			&::before, &::after {
				content: url(../img/common/study-arrow.png);
				bottom: -33px;
				position: relative;
				@media screen and (min-width:768px) { bottom: -45px; }
			}
			&::before {
				left: -17%;
				@media screen and (min-width:768px) { left: -20%; }
			}
			&::after {
				right: -17%;
				@media screen and (min-width:768px) { right: -20%; }
			}
		}
		&:last-child {
			background: #f4d29f;
			&::before, &::after {
				content: url(../img/common/study-arrow.png);
				top: -25px;
				position: relative;
				@media screen and (min-width:768px) { top: -30px; }
			}
			&::before { left: 8%;
				@media screen and (min-width:768px) { left: -2%; }
			}
			&::after { right: 8%;
				@media screen and (min-width:768px) { right: -2%; }
			}
		}
		&:nth-child(2) {
				display: grid;
				gap: 0 5px;
				grid-template-columns: repeat(2, 1fr);
			& dl {
				background: #f2f49f;
				border: 1px solid #333333;
				border-radius: 20px;
				padding: 10px 0;
				@media screen and (min-width:768px) { padding: 15px;}
				& dt {
					line-height: 1.2;
					margin-bottom: 10px;
					@media screen and (min-width:768px) { font-size: 137.5%; }
				}
				& dd {
					font-weight: normal;
					font-size: 75%;
					line-height: 1.5;
				}
			}
		}
	}
}
main section.column {
	@media screen and (min-width: 768px) { margin: 0px;}
}
main section.column article {
	@media screen and (min-width: 1025px) {
	        width: 1200px;
	        margin: 0 auto;
        }
	& h2 { text-align: center; }
	& ul {
		@media screen and (min-width: 768px) {
		        display: grid;
		        gap: 20px;
		        grid-template-columns: repeat(2, 1fr);
		}
		@media screen and (min-width: 1025px) {
			grid-template-columns: repeat(4, 1fr);
			gap: 20px;
		}
	}
}
.column article ul {
	display: grid; 
	gap: 15px 0;
	& li a {
		display: block;
		text-decoration: none;
		& div:has(img)  {
			border-radius: 20px 20px 0 0;
			overflow: hidden;
			border: 1px solid #333333;
			background-color: #ffffff;
			& img {
				object-fit: cover;
				aspect-ratio: 135 / 88;
				transition: 0.7s;
			}
		}
		& div:has(time) {
			background: #ffffff;
			border: 1px solid #333333;
			border-radius: 0 0 20px 20px;
			border-top: 0;
			padding: 15px;
			& span {
				color: #ffffff;
				background: #74b3d6;
				display: inline-block;
				vertical-align: middle;
				width: 6em;
				text-align: center;
				font-size: 75%;
				border-radius: 11px;
				&.column { background: #f49981; }
			}
			& p {
				display: -webkit-box; 
				-webkit-box-orient: vertical; 
				-webkit-line-clamp: 2; 
				overflow: hidden; 
				height: 3.5em;
			}
		}
	}
}
.column article ul li a:hover {
	opacity: 1;
	div img { transform: scale(1.5); }
}

/*footer*/
footer {
	background-color: #333333;
	margin: 0 5%;
	border-radius: 40px 40px 0 0;
        position: relative;
        z-index: 1;
	@media screen and (min-width:1025px) {
		box-sizing: content-box;
		border-radius: 60px 60px 0 0;
		margin: 0 auto;
		max-width: 1200px;
		display: grid;
		grid-template-columns: repeat(2, auto);
		gap: 0 60px;
		padding: 60px 80px 0;
	}
	& section {
		color: #ffffff;
		padding: 30px 10%;
		@media screen and (min-width:1025px) {
			padding: 0;
		}
		& h2 {
			@media screen and (min-width:768px) { width: 340px; }
		}
		& p {
			font-size: 75%;
			margin: 15px 0;
		}
		& ul {
			column-count: 2;
			@media screen and (min-width:768px) {
				width: 350px;
			}
			a[href^="http"]::after { display: none; }
		}
	}
	& nav {
		& a {
			text-decoration: none;
			color: #ffffff;
		}
		@media screen and (min-width:768px) {
			&.pc {display: none;}
		}
		@media screen and (min-width:1025px) {
			&.pc {display: block;}
			& ul {
				display: grid;
				width: fit-content;
				& li a {color: #ffffff;}
				&.global {
					grid-template-columns: repeat(6, 120px);
					gap: 10px;
					& li a {
						font-weight: bold;
						display: block;
						text-align: center;
						padding: 8px;
						border-radius: 25px;
						border: 1px solid #ffffff;
					}
				}
				&.sub {
					grid-template-columns: repeat(4, auto);
					gap: 20px;
					font-size: 87.5%;
					margin: 20px 0;
				}
				&.other {
					grid-template-columns: repeat(2, auto);
					gap: 20px;
					font-size: 75%;
				}
			}
		}
	}
	& .copy {
		color: #999999;
		font-size: 62.5%;
		text-align: center;
		@media screen and (min-width:768px) {
			grid-column:1/3;
			margin-top: 60px;
			font-size: 75%;
		}
	}
}
footer nav ul li:nth-child(2) a {
	@media screen and (min-width:768px) { 
		line-height: 1;
		font-size: 94%;
		letter-spacing: -1px;
	}
}