/*
padding
*/
.padding5 {
	padding-top: 5px;
	line-height: 5px;
}
.padding10 {
	padding-top: 10px;
	line-height: 10px;
}
.padding15 {
	padding-top: 15px;
	line-height: 15px;
}
.padding20 {
	padding-top: 20px;
	line-height: 20px;
}
.padding25 {
	padding-top: 25px;
	line-height: 25px;
}
.padding30 {
	padding-top: 30px;
	line-height: 30px;
}
.padding40 {
	padding-top: 40px;
	line-height: 40px;
}
.padding50 {
	padding-top: 50px;
	line-height: 50px;
}
.padding60 {
	padding-top: 60px;
	line-height: 60px;
}
.padding70 {
	padding-top: 70px;
	line-height: 70px;
}
.padding80 {
	padding-top: 80px;
	line-height: 80px;
}
.padding90 {
	padding-top: 90px;
	line-height: 90px;
}
.padding100 {
	padding-top: 100px;
	line-height: 100px;
}
/*
section.image03
*/
section.image03 {
	width: 100%;
	position: relative;
	padding-top: 31%;
	font-size: 20px;
	> .back {
		position: absolute;
		top: 0;
		> img {
			width: 100vw;
		}
	}
	> svg {
		position: absolute;
		top: 0;
		width: 100vw;
		> .code {
			font-size: 1.8rem;
			font-family: 'Share Tech Mono';
		}
		> .barcode {
			font-size: 7rem;
			font-family: 'Libre Barcode 128 Text';
		}
		> .pagename {
			font-size: 5rem;
		}
	}
}
/*
section.movie
*/
section.movie {
	background-color: #000;
	> div {
		max-width: 1920px;
		margin-inline: auto;
		> video {
			width: 100%;
			vertical-align: bottom;
		}
	}
}
/*
section.title
*/
section.title {
	padding: 60px 5% 0px 5%;
	> h1 {
		text-align: center;
		font-size: 2.6rem;
		font-weight: 400;
		color: #fff;
		@media (width < 480px) {
			font-size: 2rem;
		}
	}
	> div {
		text-align: center;
		margin-top: 10px;
		@media (width < 800px) {
			text-align: left;
		}
		> p {
			margin-top: 3px;
			font-size: 0.9rem;
			line-height: 1.5;
			color: #aaa;
		}
	}
}
/*
section.text01
*/
section.text01 {
	padding: 40px 5% 0px 5%;
	> div {
		max-width: 800px;
		margin-inline: auto;
		> h3 {
			margin-top: 20px;
			font-size: 1.1rem;
			line-height: 1.3;
			color: #bfc2ff;
		}
		> p {
			margin-top: 10px;
			font-size: 1rem;
			line-height: 1.8;
			color: #eee;
			text-align: justify;
		}
	}
}
/*
section.contentbox
*/
section.contentbox {
	padding: 30px 5% 0 5%;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		background-color: rgba(0,0,0,0.4);
		border-radius: 5px;
		padding: 20px 30px 35px 30px;
		> h2 {
			font-size: 1.3rem;
			font-weight: 500;
			color: #bfc2ff;
			border-bottom: solid 3px rgba(255,255,255,0.1);
			padding-bottom: 4px;
		}
		> h3 {
			margin-top: 20px;
			font-size: 1rem;
			font-weight: 500;
			color: #bfc2ff;
		}
		> p {
			margin-top: 10px;
			font-size: 1rem;
			color: #eee;
			line-height: 1.7;
			text-align: justify;
			> small {
				display: inline-block;
				padding-left: 1.5em;
				text-indent: -0.5em;
			}
		}
		> figure {
			margin-top: 10px;
			> img {
				max-width: 100%;
			}
		}
		> ol {
			margin-top: 5px;
			> li {
				font-size: 0.9rem;
				color: #eee;
				line-height: 1.7;
			}
		}
		> ul {
			list-style: square inside;
			margin-top: 10px;
			margin-left: 20px;
			display: flex;
			flex-direction: column;
			row-gap: 10px;
			> li {
				font-size: 0.9rem;
				color: #ddd;
				line-height: 1.7;
			}
		}
		> .pubdate {
			font-size: 0.9rem;
			line-height: 1.2;
			color: #ccc;
			margin-top: 3px;
		}
		> .button {
			text-align: center;
			margin-top: 15px;
			> a {
				display: inline-block;
				text-decoration: none;
				background-color: #333;
				padding: 10px 3em 8px 2em;
				font-size: 0.8rem;
				color: #fff;
				line-height: 1;
				letter-spacing: 0.1em;
				border-radius: 2px;
				border: solid 3px #444;
				background-image: url(../image/mark_chevron_right_fff.svg);
				background-repeat: no-repeat;
				background-position: right 12px top 50%;
				transition: 0.2s;
				&[target="_blank"] {
					background-image: url(../image/mark_external_fff.svg);
				}
				&:hover {
					border-color: #fff;
				}
			}
		}
	}
}
/*
section.button
*/
section.button {
	padding: 70px 5% 0px 5%;
	> div {
		max-width: 800px;
		margin-inline: auto;
		> a {
			margin-top: 10px;
			display: block;
			text-decoration: none;
			background-color: rgba(50,36,106,0.4);
			padding: 20px 3em 18px 2em;
			font-size: 1rem;
			color: #fff;
			line-height: 1;
			border-radius: 2px;
			border: solid 3px #008b99;
			background-image: url(../image/mark_chevron_right_fff.svg);
			background-repeat: no-repeat;
			background-position: right 12px top 50%;
			transition: border-color 0.15s;
			&[target="_blank"] {
				background-image: url(../image/mark_external_fff.svg);
			}
			&:hover {
				border-color: #fff;
			}
		}
	}
}

/*
section.contentbox002
*/
section.contentbox002 {
	&.left {
		> div {
			margin-inline: 5vw auto;
			@media (width < 1070px) {
				margin-inline: auto;
			}
			> div {
				> h2 {
					text-align: right;
					@media (width < 1070px) {
						text-align: left;
					}
				}
			}
		}
	}
	&.right {
		> div {
			margin-inline: auto 5vw;
			@media (width < 1070px) {
				margin-inline: auto;
			}
			> div {
				> h2 {
					text-align: left;
				}
			}
		}
	}
	padding-top: 30px;
	display: grid;
	position: relative;
	> figure {
		grid-area: 1/1/2/2;
		position: absolute;
		width: 100%;
		height: 100%;
		> img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}
	> div {
		grid-area: 1/1/2/2;
		z-index: 1;
		width: 100%;
		max-width: 1000px;
		margin-inline: auto;
		padding-block: min(100px,15vw);
		padding-inline: min(30px,2vw);
		background-color: rgba(255,255,255,0.3);
		margin-block: 20px;
		> div {
			background-color: rgba(255,255,255,0.5);
			backdrop-filter: blur(8px);
			padding-block: 50px 65px;
			padding-inline: min(60px,5vw);
			> h2 {
				font-size: min(2.4rem,7vw);
				color: #555;
				line-height: 1.2;
				font-weight: 700;
				border-bottom: solid 4px rgba(255,255,255,0.5);
				padding-bottom: 4px;
			}
			> h3 {
				margin-top: 20px;
				font-size: 1rem;
				font-weight: 500;
				color: #24c;
			}
			> p {
				margin-top: 15px;
				font-size: 1rem;
				color: #000;
				line-height: 1.9;
				text-align: justify;
				> small {
					display: inline-block;
					padding-left: 1.5em;
					text-indent: -0.5em;
				}
			}
			> ul {
				list-style: square inside;
				margin-top: 10px;
				margin-left: 20px;
				display: flex;
				flex-direction: column;
				row-gap: 10px;
				> li {
					font-size: 0.9rem;
					color: #111;
					line-height: 1.7;
					padding-left: 1em;
					text-indent: -1em;
				}
			}
			> .pubdate {
				font-size: 0.9rem;
				line-height: 1.2;
				color: #777;
				margin-top: 3px;
			}
			> .button {
				text-align: center;
				margin-top: 15px;
				> a {
					display: inline-block;
					text-decoration: none;
					background-color: #333;
					padding: 10px 3em 8px 2em;
					font-size: 0.8rem;
					color: #fff;
					line-height: 1;
					letter-spacing: 0.1em;
					border-radius: 2px;
					border: solid 3px #444;
					background-image: url(../image/mark_chevron_right_fff.svg);
					background-repeat: no-repeat;
					background-position: right 12px top 50%;
					transition: 0.2s;
					&[target="_blank"] {
						background-image: url(../image/mark_external_fff.svg);
					}
					&:hover {
						border-color: #fff;
					}
				}
			}
		}
	}
}

section.column {
	padding: 80px 5% 80px 5%;
	background-color: #f5ffff;
	> div {
		max-width: 1200px;
		margin-inline: auto;
		> h2 {
			font-size: 1.2rem;
			line-height: 1.2;
			color: #0dc;
		}
		> p {
			margin-top: 20px;
			font-size: 1rem;
			line-height: 1.5;
			color: #111;
		}
		> article {
			margin-top: 20px;
			&.ja {
				> p {
					text-align: justify;
				}
			}
			&.en {
				margin-top: 50px;
			}
			> p {
				font-size: 0.9rem;
				line-height: 1.5;
				color: #111;
			}
		}
	}
}
