:root {
	--c_main: #333333;
	--c_base: #ffffff;

	--c_set1: #1470B9;
	--c_set2: #C91232;
	--c_set3: #F2D621;
	--c_set4: #438BBA;
	--c_set5: #599F4A;
	--c_set6: #5F4A98;
	--c_set7: #63381A;
	--c_set8: #0E262B;
	--c_set9: #86292A;
	--c_set10: #518B72;
	--c_font: #333333;
	--c_link: #ff3366;
	--c_hover: #ffff66;
}

#page_wrapper {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	min-height: 100lvh;
	margin: 0 auto;
	overflow: hidden;

	font-size: 1.4em;
	box-sizing: border-box;
}

header {
	display: grid;
	grid-template-columns:200px 1fr;
	grid-template-rows: 6em;
	aspect-ratio: unset;
	place-items: center;
	background: linear-gradient(#ffffff00 80%, #ffffffff 100%);
}
header::before {
	mask-image: none;
	background: url("../img/page.png") no-repeat top center ;
	background-size: cover;
}

h1 {
	position: relative;
	width: auto;
	height: 90%;
	top: 0;
	left: 1em;
	place-self: self-start;
}
h1 img{
	height: stretch;
	max-height: 90%;
}
h2 {
	display: flex;
	flex-direction: column;
	text-align: center;
	height: 90%;
}
h2 img:first-of-type {
	height: 40%;
	width: auto;
}
h2 img:last-of-type {
	height: 40%;
	width: auto;
	margin-top: -2%;
}

#page {
	padding: 1em;
}
#page section {
	border: solid 1px #333333;
	border-radius: 2em;
	text-align: left;
	max-width: 920px;
	margin: auto;

	box-shadow: 0.4em 0.4em 0 0 #333333;
}
#page div:first-of-type {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;

	display: flex;
	flex-direction: column;
	justify-content: end;
}
#page img {
	display: block;
	position: absolute;
	inset: 0;
	width: calc(100% + 2px);
	border-radius: 2em 2em 0 0;
}
#page h5 {
	position: relative;
	left: -0.8em;
	width: max-content;
	padding: 0.5em 1em;
	margin-bottom: 0;
	color: #ffffff;
	background-color: #cccccc;
	border-radius: 0.5em 0.5em 0 0;
	font-size: 0.8em;
}
#page h4 {
	display: inline-block;
	position: relative;
	left: -1.2em;
	width: max-content;
	padding: 1em 2em;
	margin-bottom: -1.4em;
	color: var(--c_font);
	background-color: #ffffff;
	border: solid 1px #000000;
	border-radius: 0.5em;
	font-size: 0.75em;
	font-weight: bold;
}

#page div:last-of-type {
	padding: 3em 2em 3em;
}


#page #project_01 {
	border-color: var(--c_set1);
	box-shadow: 0.4em 0.4em 0 0 var(--c_set1);
}
#project_01 h5 {
	background-color: var(--c_set1);
}
#page #project_02 {
	border-color: var(--c_set2);
	box-shadow: 0.4em 0.4em 0 0 var(--c_set2);
}
#project_02 h5 {
	background-color: var(--c_set2);
}
#page #project_03 {
	border-color: var(--c_set13);
	box-shadow: 0.4em 0.4em 0 0 var(--c_set3);
}
#project_03 h5 {
	background-color: var(--c_set3);
}
#page #project_04 {
	border-color: var(--c_set4);
	box-shadow: 0.4em 0.4em 0 0 var(--c_set4);
}
#project_04 h5 {
	background-color: var(--c_set4);
}
#page #project_05 {
	border-color: var(--c_set5);
	box-shadow: 0.4em 0.4em 0 0 var(--c_set5);
}
#project_05 h5 {
	background-color: var(--c_set5);
}
#page #project_06 {
	border-color: var(--c_set6);
	box-shadow: 0.4em 0.4em 0 0 var(--c_set6);
}
#project_06 h5 {
	background-color: var(--c_set6);
}

.btn {
	display: inline-block;
	font-size: 0.75em;
	margin: 2em auto 0;
	padding: 0.5em 0.75em;
	border: solid 1px #333333;
	border-radius: 0.5em;
	transition: all 0.25s ease-in-out 0s;
}
.btn:hover {
	opacity: 0.5;
}


/* ================================================== */
/* ==================== 900px以上 ==================== */
/* ================================================== */
@media (min-width: 980px) {

header {
	grid-template-columns: 1fr;
}
h1 {
	position: absolute;
}
#page h5 {
	left: -1.0em;
}
#page h4 {
	left: -1.6em;
}

}

@media (min-width: 1280px) {

#page section {
	max-width: 1200px;
}

}
@media (min-width: 1920px) {

}

/* ========== safari用 ========== */
@supports (-webkit-touch-callout: none) {

}
@media (min-width: 1080px) {

}

/* ========== firefox用 ========== */
@-moz-document url-prefix(){
}
