@charset "UTF-8";

#footer
{
	margin-top: max(10rem, 10vw);
	background-color: rgb(240, 240, 240);
}
body:after
{
	background-color: rgb(240, 240, 240);
}

/*//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////// About /////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////*/

#about
{
	margin: 0 auto;
	max-width: 2100px;
	display:flex;
	justify-content: space-between;
	align-items:flex-start;
}

#page_menu
{
	width: 15rem;
	padding-left: 2rem;
	position: sticky;
	top: 2rem;
}

#page_menu > div
{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

#page_menu a + a
{
	margin-top: 1em;
}

#page_menu a.dir
{
	line-height: 1.5;
	cursor: pointer;
	align-items: flex-start;
}

#page_menu a.dir > .dir
{
	transform: translateY(2px);
}

#page_menu a.dir.now > .dir
{
	background-color: rgb(0, 0, 0);
}
#page_menu a.dir.now > .dir:after
{
	border-color: rgb(255, 255, 255);
}

#page_menu a.dir > p
{
	margin-left: .5em;
	margin-right: 0;
}

.E #page_menu a.dir > p
{
	margin-left: .75em;
	margin-right: 0;
}

#page_menu a.dir > p > span:nth-of-type(1)
{
	transform:translateX(-.5em);
}

#main
{
	width: calc(100% - 15rem);
	padding-left: max(5vw, 2rem);
}

/**********************************************************************/
/******************************* Slide ********************************/
/**********************************************************************/

#main .slide
{
	width: 100%;
	aspect-ratio: 5 / 3;
}
#main .bannerContainer
{
	cursor: zoom-in;
}

#main .main + .main
{
	margin-top: max(10rem, 10vw);
}

.slideFadeContainer .imgSelector
{
	position:relative;
	justify-content: flex-end;
	top: 0;
	margin-top: .5rem;
}
.slideFadeContainer .imgSelector > a
{
	border-radius: 50%;
}

.slideFadeContainer .cap
{
	display: flex;
	justify-content: flex-end;
	margin-top: 1rem;
	font-size: .9rem;
	padding: 0 1.5rem;
	color: rgb(100,100,100);
}

/**********************************************************************/
/******************************* Desc ********************************/
/**********************************************************************/

#main .description
{
	margin-top: max(3rem, 3vw);
	max-width: 1200px;
	padding-right: 2rem;
}

#main .subTitle h2
{
	display:flex;
	flex-wrap:wrap;
	font-size: clamp(1.3rem, 6vw, 1.7rem);
	margin-bottom: 1em;
}

#main .desc > div
{
	column-width: 400px;
	margin-bottom: clamp(1.1rem, 4vw, 1.3rem);
}

#main .desc h3
{
	font-size: clamp(1.1rem, 4vw, 1.3rem);
	margin-bottom: 1em;
}

#main .more_wrapper
{
	display: flex;
	justify-content: center;
	margin-top: max(2vw, 2rem);
	margin-bottom: max(4vw, 4rem);
}

#main .more_wrapper .moreBt
{
	font-size: clamp(1rem, 5vw, 1.2rem);
	padding: 1em 0;
}

/**********************************************************************/
/******************************* Process ********************************/
/**********************************************************************/

.process_wrapper
{
	padding-right: 2rem;
}

#main .process
{
	font-family: R-R, GG-R, sans-serif;
	margin-top: max(3vw, 3rem);
	max-width: calc(1200px - 2rem);
	padding: max(2.5vw, 2rem);
	background-color:rgb(240, 240, 240);
}

#main .process h3
{
	color: rgb(150, 150, 150);
	margin-bottom: 1em;
}

#main .process h4
{
	color:rgb(50, 50, 50);
	margin-bottom: .5em;
}

#main .process .text
{
	padding: 1em;
	font-size: .9em;
	color:rgb(100, 100, 100);
}

#main .process .contents
{
	display:flex;
	justify-content: space-between;
}
#main .process .contents > div:not(.dir)
{
	width: calc(50% - max(2.5vw, 2rem));
	flex-shrink: 1;
	background-color: rgb(250, 250, 250);
}

#main .process .contents div.dir
{
	width: max(5vw, 5rem);
	flex-shrink: 0;
	display:flex;
	justify-content:center;
	align-items: center;
}
#main .process .contents div.dir:after
{
	content:"";
	display:block;
	width: 1rem;
	height: 1rem;
	transform:rotate(45deg);
	border-style:solid;
	border-width: 5px 5px 0 0;
	border-color: rgb(140,140,140);
}

#main .process .contents figure
{
	width: 100%;
	line-height: 0;
	border-bottom: 2px solid rgb(240, 240, 240);
}
#main .process .contents figure img
{
	width: 100%;
	height: auto;
}

/**********************************************************************/
/******************************* Map **********************************/
/**********************************************************************/

#map_canvas
{
	width: 100%;
	height: min(calc(100vh - 10rem), calc(100vw * 2 / 3));
}

.gm-style-mot
{
	text-align: center;
}

#map_canvas .map_link
{
	font-family: serif, "A1 Mincho", 'YuMin_36pKn-Medium';
}

#map_canvas .location
{
	font-size: .9em;
	color: rgb(100, 100, 100);
}

#map_canvas .mImg
{
	width: 200px;
	overflow: hidden;
	aspect-ratio: 5 / 3;
	margin-bottom: .5rem;
}
#map_canvas .mImg img
{
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit:cover;
	object-position: 50% 50%;
}

/**********************************************************************/
/****************************** Models *********************************/
/**********************************************************************/

#models
{
	margin-top: max(3vw,3rem);
}

#models > div
{
	width: calc(100%);
	display:flex;
	padding: 1rem 1rem;
	flex-wrap: wrap;
	background-color: rgb(240, 240, 240);
}

#models .tile
{
	display:flex;
	flex-direction: column;
	width: calc(100% / 5);
	padding: 1rem 1rem 1.5rem;
}

#models .tile:hover
{
	background-color: rgb(255, 255, 255);
}

#models .tile figure
{
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	margin-bottom: 1em;
}
#models .tile figure > img
{
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit:cover;
	object-position: 50% 50%;
}

#models .tile .period
{
	font-family: R-R, GG-R, sans-serif;
	font-size: .8em;
	margin-bottom: .5em;
	color: rgb(100, 100, 100);
}

#models .tile h3
{
	font-size: clamp(1rem, 3vw, 1.1rem);
	display: flex;
	flex-direction:column;
}

#models .tile h3 span:nth-of-type(2)
{
	font-size: .8em;
	color: rgb(100, 100, 100);
}


/**********************************************************************/
/******************************* cresd ********************************/
/**********************************************************************/

#cresd
{
	padding: 0 2rem;
	margin: 0 0 max(5rem, 5vw);
}

#cresd > div
{
	display:flex;
	align-items: flex-start;
	justify-content: space-between;
	max-width: 900px;
	margin: 0 auto;
}

#cresd .logo
{
	width: calc(50% - 2rem);
	aspect-ratio: 500 / 75;
	background-size:cover;
	background-image: url(../_img/cresd.svg);
}

#cresd .desc
{
	width: calc(50% - 2rem);
}

#cresd .link
{
	font-family: R-R, GG-R, sans-serif;
	display: flex;
	justify-content:center;
	align-items:center;
	width: 100%;
	margin-top: 1rem;
	background-color: rgb(240, 240, 240);
	padding: .5em 1em;
}


/*//////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// MEDIA SCREEN ////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////*/

@media screen and (min-width: 2000px)
{
	#models .tile
	{
		width: calc(100% / 6);
	}
}

@media screen and (max-width: 1500px)
{
	#models .tile
	{
		width: calc(100% / 4);
	}
}

@media screen and (max-width: 1200px)
{
	#models .tile
	{
		width: calc(100% / 3);
	}
}

@media screen and (max-width: 900px)
{
	#about
	{
		flex-direction: column;
	}
	#page_menu > div
	{
		flex-direction: row;
		justify-content: center;
		margin-left: -1em;
		flex-wrap: wrap;
		position: relative;
		margin-bottom: max(5rem, 5vw);
	}
	#page_menu a.dir
	{
		margin-top: 1em;
		margin-left: 1em;
	}
	#main
	{
		width: 100%;
		padding-left: 0rem;
		padding-right: 0rem;
	}
	#main .description,
	.process_wrapper
	{
		padding-left: 2rem;
	}
	
	#models .tile
	{
		width: calc(100% / 3);
	}
}

@media screen and (max-width: 600px)
{
	#main .process .contents
	{
		flex-direction: column;
	}
	#main .process .contents > div:not(.dir)
	{
		width: 100%;
	}
	
	#main .process .contents div.dir
	{
		width: 100%;
		height: 5rem;
	}
	#main .process .contents div.dir:after
	{
		transform:rotate(135deg);
	}
	
	#cresd > div
	{
		flex-direction: column;
	}
	#cresd .logo,
	#cresd .desc
	{
		width: 100%;
	}
	#cresd .logo
	{
		max-width: 20rem;
		margin-bottom: 2rem;
	}

	#models > div
	{
		padding: 2rem .5rem;
	}
	#models .tile
	{
		width: calc(100% / 2);
		padding: 1rem .5rem 1.5rem;
	}
	
	#map_canvas
	{
		height: calc(100vh - 10rem);
	}
}