@charset "utf-8";

body {
	background-color : #fff;
	font-size : 62.5%;
	color : #000;
	box-sizing : border-box;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-family: YakuHanJP, 'Noto Sans JP', sans-serif;
}
img {
	vertical-align : top;
}
a {
	text-decoration : none;
}
.clearfix {
	*zoom: 1;
}
.clearfix:before,
.clearfix:after {
	display: table;
	line-height: 0;
	content: "";
}
.clearfix:after {
	clear: both;
}
.dark-colored {
	background-color : #ebebe6;
}


/* ----- ----- ----- */
/* global navigation */
/* ----- ----- ----- */

#header {
	background-color : #fff;
	width : 100%;
}
.header_navi {
	float : left;
	width : calc(100% - 448px);
	margin-top : 30px;
	text-align : center;
}
.header_navi ul {
	display : inline-block;
}
.header_navi li {
	float : left;
	height : 38px;
	margin : 0 24px;
}
.header_navi li img {
	height : 100%;
}
.header_navi li a:hover img {
	filter:alpha(opacity=70);
	-moz-opacity: 0.7;
	opacity: 0.7;
}
.header_inquiry {
	float : right;
	width : 140px;
	padding : 32px 0 0 0;
}
.official-logo {
	text-align : center;
}


#top_news .column_header h2 img, #top_news .column_header .btn_more img {
	height : 100%;
}
#top_news .content {
	width : 100%;
	border-top : 1px solid #000;
	border-bottom : 1px solid #000;
	
}







#top_challenge .fig_challenge-list .cell {
	float : left;
}
#top_challenge .fig_challenge-list .cell img {
	width : 100%;
}
#top_challenge .fig_challenge-list .cell img.icon {
	width : 88%;
	margin : 6%;
}


#top_collabo .column_header img {
	width : 100%;
}
#top_collabo .content img {
	width : 100%;
}


#top_flow {
	width : 100%;
	background-color : #fff;
}
#top_flow .column_header {
	margin : 0 auto;
}




#top_flow .content {
	width : 100%;
}






/* ----- ----- ----- */
/* device-related    */
/* ----- ----- ----- */
@media screen and (max-width: 768px) {
	.pc-content {
		display : none;
	}
	.header_navi {
		display : none;
	}
	.dark-colored {
		padding : 5vw 5vw;
	}
	.pc-content {
		display : none;
	}
	.header_logo {
		width : calc(100% - 4vw);
		padding : 2vw;
	}
	.header_logo img {
		height : 12vw;
	}
	.header_navi {
		display : none;
	}
	.official-logo {
		width : 100%;
		margin : 8vw auto;
	}
	.official-logo img {
		height : 16vw;
	}
	#top_news {
		box-sizing : border-box;
		width : 100%;
		padding : 4vw;
		background-color : #fff;
	}
	#top_news .column_header {
		width : 100%;
		margin-bottom : 2vw;
	}
	#top_news .column_header h2 {
		width : 50%;
		height : 4.4vw;
		float: left;
	}
	#top_news .column_header .btn_more {
		width : 50%;
		height : 4.4vw;
		float: right;
		padding : 0.2vw 0;
		text-align : right;
	}
	#top_news .content {
		padding : 4.4vw 0 0 0;
	}
	#top_news .content li {
		margin-bottom : 4.4vw;
		letter-spacing : 0.4vw;
		text-align : justify;
	}
	#top_news .content li .date {
		font-size : 3.2vw;
		margin-bottom : 2.4vw;
	}
	#top_news .content li .news-body {
		font-size : 3.2vw;
		line-height : 5.6vw;
	}
	#top_project {
		padding : 6.8vw 0;
	}
	#top_project .column_header,
	#top_flow .column_header,
	#top_media .column_header {
		width : 100%;
		text-align : center;
		margin : 0 auto 9.6vw auto;
	}
	#top_project .column_header h2,
	#top_flow .column_header h2,
	#top_media .column_header h2 {
		font-size : 4.0vw;
		line-height : 6.4vw;
		letter-spacing : 0.44vw;
	}
	#top_project .column_header h2 img,
	#top_flow .column_header h2 img,
	#top_media .column_header h2 img {
		height : 6.0vw;
		margin : 0 0 2.8vw 4vw;
	}
	#top_challenge {
		margin-bottom : 12vw;
	}
	#top_challenge .column_header {
		margin-bottom : 3.2vw;
	}
	#top_challenge .column_header h2 {
		margin-bottom : 3.2vw;
	}
	
	
	#top_challenge .column_header {
		width : 100%;
		text-align : center;
	}
	#top_challenge .column_header h2 {
		font-size : 3.2vw;
		line-height : 6.4vw;
		letter-spacing : 0.44vw;
	}
	#top_challenge .content p {
		margin-bottom : 8vw;
		line-height : 5.6vw;
		font-size : 3.0vw;
		letter-spacing : 0.44vw;
		padding : 0 4vw;
		text-align : justify;
	}
	#top_challenge .content .btn_outer-link {
		display : block;
		text-align : center;
		margin-bottom : 9.6vw;
	}
	#top_challenge .content .btn_outer-link a {
		color : #00f;
		font-size : 3.0vw;
		padding-bottom : 0.4vw;
		border-bottom : 1px solid #00f;
		letter-spacing : 0.44vw;
	}
	#top_challenge .fig_challenge-list {
		width : calc(100% - 8vw);
		margin : 0 auto 9.6vw auto;
	}
	#top_challenge .fig_challenge-list .cell {
		width : calc(100% / 4);
		float : left;
	}
	#top_challenge .fig_challenge-list .cell_w {
		width : calc(100% / 2);
		float : left;
	}
	#top_challenge .fig_challenge-list .cell_w img.icon {
		width : 94%;
		margin : 3%;
	}
	#top_collabo {
		margin-bottom : 9.6vw;
	}
	#top_collabo .column_header {
		width : calc(100% - 8vw);
		margin : 0 auto 6.4vw auto;
	}
	#top_collabo .content {
		width : 100%;
		background-color : #ebebe6;
		margin : 0 0 6.4vw 0;
	}
	#top_flow {
		margin-bottom : 12vw;
	}
	#top_flow .content .cell .main-image {
		width : 100%;
		margin-bottom : 3.2vw;
	}
	#top_flow .content .cell .main-image img {
		width : 100%;
	}
	#top_flow .content .cell {
		width : 100%;
		margin-bottom : 7.2vw;
		position : relative;
	}
	#top_flow .content .cell .text-box {
		width : 100%;
	}
	#top_flow .content .cell .text-box h3 {
		width : calc(100% - 8vw);
		margin : 4vw 4vw 4.4vw 4vw;
	}
	#top_flow .content .cell .text-box h3 img {
		height : 16vw;
	}
	#top_flow .content .cell .text-box p {
		width : calc(100% - 8vw);
		font-weight : bold;
		font-size : 3.2vw;
		line-height : 5.6vw;
		letter-spacing : 0.44vw;
		text-align : justify;
		margin : 0 4vw 4.4vw 4vw;
	}
	#top_flow .content .cell .sub-column {
		width : calc(100% - 4vw);
		background-color : #ebebe6;
		background : linear-gradient(0deg,#ebebe6 0%,#ebebe6 70%,#fff 70%,#fff 100%);
	}
	#top_flow .content .cell .sub-image {
		width : calc(75% - 4vw);
		margin : 0 auto 0 auto;
		padding : 0 0 24px 4vw;
	}
	#top_flow .content .cell .sub-image img {
		width : 100%;
	}
	#top_media {
		padding : 9.6vw 0;
	}
	#top_media .content {
		width : 100%;
		margin : 0 auto 4.4vw auto;
		box-sizing : border-box;
		background-color : #ebebe6;
		padding : 4vw 4vw 0 4vw;
	}
	#top_media .content h3 {
		display : block;
		text-align : center;
		margin-bottom : 6.4vw;
	}
	#top_media .content h3 span {
		font-size : 4vw;
		border-bottom : 2px solid #000;
		letter-spacing : 0.44vw;
		padding : 0 0 2vw 0.44vw;
	}
	#top_media .content .cell {
		box-sizing : border-box;
		width : 100%;
		padding : 4vw;
		margin-bottom : 4.4vw;
		border-radius : 3.2vw;
		background-color : #fff;
		font-size : 3.2vw;
	}
	#top_media .content .cell h4 {
		font-weight : normal;
		margin-bottom : 2.4vw;
	}
	#top_media .content .cell p {
		line-height : 5.6vw;
	}
	#footer_link {
		width : 100%;
	}
	#footer_link .content {
		width : 100%;
		margin : 0 auto;
	}
	#footer_link .content .banner {
		width : 100%;
		background-color : #ebebe6;
	}
	#footer_link .content .banner a {
		display : block;
		color : #000;
	}
	#footer_link .content .banner a:hover {
		color : #666;
	}
	#footer_link .content .banner a:hover img {
		filter:alpha(opacity=70);
		-moz-opacity: 0.7;
		opacity: 0.7;
	}
	#footer_link .content .banner ul {
		padding : 4vw 2vw;
	}
	#footer_link .content .banner ul li {
		display : block;
		float : left;
		background-color : #fff;
		margin : 0 2vw;
		padding : 4vw;
		width : calc(50% - 12vw);
		text-align : center;
		font-size : 2.2vw;
	}
	#footer_link .content .banner ul li img {
		margin-top : 2vw;
		height : 8vw;
	}
	#footer_link .content dl {
		width : calc(100% - 8vw);
		background-color : #e60000;
		padding : 4vw;
		color : #fff;
	}
	#footer_link .content dt {
		text-align : center;
		display : table-cell;
		font-size : 3.6vw;
		font-weight : bold;
		vertical-align : middle;
		border-left : 1px solid #fff;
		border-right : 1px solid #fff;
		width : 18vw;
	}
	#footer_link .content dd {
		display : table-cell;
		font-size : 3.2vw;
		font-weight : bold;
		padding-left : 16px;
	}
	#footer_link .content span {
		vertical-align : middle;
	}
	#footer_link .content span a {
		color : #fff;
	}
	#footer_link .content span a:hover {
		color : #ffc;
	}
	#footer_link .content dd i {
		font-size : 4.8vw;
		vertical-align : middle;
	}
	#footer_link .content dd .phone {
		display : block;
		margin : 3.6vw 0 2.8vw 0;
	}
	#footer_address {
		width : 100%;
		margin : 8vw auto;
	}
	#footer_address .logo {
		width : 40%;
		margin : 0 auto 4vw auto;
	}
	#footer_address .logo img {
		width : 100%;
	}
	#footer_address .text {
		text-align : center;
		font-size : 3.2vw;
		line-height : 4.4vw;
		letter-spacing : 0.44vw;
	}
	#footer_copy {
		font-size : 0.8rem;
		text-align : center;
		background-color : #ebebe6;
		padding : 6px 0;
		letter-spacing : 0.12rem;
	}
}
@media screen and (max-width: 480px) {

}
@media screen and (min-width: 769px) {
	.dark-colored {
		padding : 48px 0;
	}
	.sp-content {
		display : none;
	}
	.header_logo {
		float : left;
		width : 260px;
		padding : 16px 0 16px 32px;
	}
	.header_logo img {
		width : 100%;
	}
	.header_navi {
		float : left;
		width : calc(100% - 448px);
		margin-top : 30px;
		text-align : center;
	}
	.official-logo {
		width : 1200px;
		margin : 64px auto;
	}
	.official-logo img {
		width : 40%;
	}
	#top_news {
		box-sizing : border-box;
		width : 800px;
		margin : 0 auto;
		padding : 48px;
		background-color : #fff;
	}
	#top_news .column_header {
		width : 100%;
		margin-bottom : 12px;
	}
	#top_news .column_header h2 {
		width : 50%;
		height : 24px;
		float: left;
	}
	#top_news .column_header .btn_more {
		width : 50%;
		height : 24px;
		float: right;
		padding : 2px 0;
		text-align : right;
	}
	#top_news .content {
		padding : 32px 0 0 0;
	}
	#top_news .content li {
		margin-bottom : 32px;
		letter-spacing : 0.24rem;
	}
	#top_news .content li .date {
		margin-bottom : 16px;
		font-size : 1.2rem;
	}
	#top_news .content li .news-body {
		font-size : 1.3rem;
		line-height : 1.8rem;
	}
	#top_project {
		padding : 48px 0;
	}
	#top_project .column_header {
		width : 800px;
		height : 24px;
		text-align : center;
		margin : 0 auto 48px auto;
	}
	#top_project .column_header h2 {
		height : 36px;
		font-size : 1.6rem;
		line-height : 2.8rem;
		letter-spacing : 0.24rem;
	}
	#top_project .column_header h2 img {
		height : 100%;
	}
	#top_challenge {
		margin-bottom : 48px;
	}
	#top_challenge .column_header {
		width : 100%;
		text-align : center;
		margin-bottom : 12px;
	}
	#top_challenge .column_header h2 {
		font-size : 1.6rem;
		line-height : 2.8rem;
		letter-spacing : 0.24rem;
		margin-bottom : 24px;
	}
	#top_challenge .content p {
		font-size : 1.3rem;
		letter-spacing : 0.16rem;
		text-align : center;
		margin-bottom : 48px;
		line-height : 3.0rem;
	}
	#top_challenge .content .btn_outer-link {
		display : block;
		text-align : center;
		margin-bottom : 48px;
	}
	#top_challenge .content .btn_outer-link a {
		color : #00f;
		font-size : 1.3rem;
		padding-bottom : 4px;
		border-bottom : 1px solid #00f;
		letter-spacing : 0.24rem;
	}
	#top_challenge .fig_challenge-list {
		width : 1000px;
		margin : 0 auto 48px auto;
	}
	#top_challenge .fig_challenge-list .cell {
		width : calc(100% / 9);
		float : left;
	}
	#top_collabo {
		margin-bottom : 48px;
	}
	#top_collabo .column_header {
		width : 720px;
		margin : 0 auto 48px auto;
	}
	#top_collabo .content {
		width : 100%;
		padding : 24px 0;
		background-color : #ebebe6;
		margin-bottom : 48px;
		text-align : center;
	}
	#top_collabo .content img {
		width : 1200px;
	}
	#top_flow {
		padding-bottom : 48px;
	}
	#top_flow .column_header {
		width : 1200px;
		margin : 0 auto 48px auto;
	}
	#top_flow .column_header h2 {
		height : 36px;
		font-size : 1.6rem;
		line-height : 2.8rem;
		letter-spacing : 0.24rem;
	}
	#top_flow .column_header h2 img {
		height : 100%;
	}
	#top_flow .content .cell .main-image {
		width : 100%;
		position : absolute;
		top : 0;
		z-index : 10000;
	}
	#top_flow .content .cell .main-image img {
		float : right;
		width : 50%;
	}
	#top_flow .content .cell {
		width : 100%;
		margin-bottom : 96px;
		position : relative;
		height : 38vw;
	}
	#top_flow .content .cell .text-box {
		width : 1200px;
		position : absolute;
		top : 0;
		left : 0;
		right : 0;
		margin: 0 auto;
		z-index : 1000;
	}
	#top_flow .content .cell .text-box h3 {
		width : 400px;
		margin-bottom : 24px;
	}
	#top_flow .content .cell .text-box p {
		width : 50%;
		font-weight : bold;
		font-size : 1.3rem;
		line-height : 2.4rem;
		letter-spacing : 0.24rem;
	}
	#top_flow .content .cell .text-box h3 img {
		width : 100%;
	}
	#top_flow .content .cell .sub-column {
		width : 100%;
		position : absolute;
		bottom : 0;
		background-color : #ebebe6;
		background : linear-gradient(90deg,#ebebe6 0%,#ebebe6 80%,#fff 80%,#fff 100%);
	}
	#top_flow .content .cell .sub-image {
		width : 1200px;
		margin : 0 auto;
		padding : 24px 0;
	}
	#top_flow .content .cell .sub-image img {
		width : 25vw;
	}
	#top_media {
		padding : 48px 0;
	}
	#top_media .column_header {
		width : 800px;
		height : 24px;
		text-align : center;
		margin : 0 auto 48px auto;
	}
	#top_media .column_header h2 {
		height : 36px;
		font-size : 1.6rem;
		line-height : 2.8rem;
		letter-spacing : 0.24rem;
	}
	#top_media .column_header h2 img {
		height : 100%;
	}
	#top_media .content {
		width : 1200px;
		margin : 0 auto 24px auto;
		box-sizing : border-box;
		background-color : #ebebe6;
		padding : 32px;
	}
	#top_media .content h3 {
		display : block;
		text-align : center;
		margin-bottom : 32px;
	}
	#top_media .content h3 span {
		font-size : 1.4rem;
		border-bottom : 2px solid #000;
		letter-spacing : 0.24rem;
		padding : 0 0 8px 0.24rem;
	}
	#top_media .content .cell {
		float : left;
		box-sizing : border-box;
		width : calc(50% - 16px);
		padding : 16px;
		margin : 8px;
		border-radius : 8px;
		background-color : #fff;
		font-size : 1.2rem;
		min-height : 8.4rem;
	}
	#top_media .content .cell h4 {
		font-weight : normal;
		margin-bottom : 8px;
	}
	#top_media .content .cell p {
		line-height : 2.0rem;
	}
	#footer_link {
		width : 100%;
		background-color : #ebebe6;
		background : linear-gradient(90deg,#e60000 0%,#e60000 50%,#ebebe6 50%,#ebebe6 100%);
	}
	#footer_link .content {
		width : 1200px;
		margin : 0 auto;
		display : table;
	}
	#footer_link .content .banner {
		float : right;
		width : 50%;
	}
	#footer_link .content .banner a {
		display : block;
		color : #000;
	}
	#footer_link .content .banner a:hover {
		color : #666;
	}
	#footer_link .content .banner a:hover img {
		filter:alpha(opacity=70);
		-moz-opacity: 0.7;
		opacity: 0.7;
	}
	#footer_link .content .banner ul {
		padding : 40px 0;
		margin-left : 32px;
	}
	#footer_link .content .banner ul li {
		display : block;
		float : left;
		background-color : #fff;
		margin-left : 12px;
		padding : 8px;
		width : calc(50% - 28px);
		text-align : center;
		font-size : 1.1rem;
	}
	#footer_link .content .banner ul li img {
		margin-top : 8px;
		height : 48px;
	}
	#footer_link .content dl {
		float : left;
		width : calc(50% - 32px);
		padding : 40px 0;
		color : #fff;
		display : table;
		letter-spacing : 0.24rem;
		margin-left : 32px;
	}
	#footer_link .content dt {
		text-align : center;
		display : table-cell;
		font-size : 1.3rem;
		font-weight : bold;
		vertical-align : middle;
		border-left : 1px solid #fff;
		border-right : 1px solid #fff;
		width : 10.0rem;
	}
	#footer_link .content dd {
		display : table-cell;
		font-size : 1.1rem;
		font-weight : bold;
		padding-left : 16px;
	}
	#footer_link .content span {
		vertical-align : middle;
	}
	#footer_link .content span a {
		color : #fff;
	}
	#footer_link .content span a:hover {
		color : #ffc;
	}
	#footer_link .content dd i {
		font-size : 1.8rem;
		vertical-align : middle;
	}
	#footer_link .content dd .phone {
		display : block;
		margin : 16px 0 12px 0;
	}
	#footer_address {
		width : 1200px;
		margin : 24px auto;
	}
	#footer_address .logo {
		float : left;
		width : 140px;
		margin-right : 24px;
	}
	#footer_address .logo img {
		height : 32px;
	}
	#footer_address .text {
		font-size : 1.0rem;
		line-height : 1.3rem;
	}
	#footer_copy {
		font-size : 0.8rem;
		text-align : center;
		background-color : #ebebe6;
		padding : 6px 0;
		letter-spacing : 0.12rem;
	}
}
@media screen and (min-width: 769px) and (max-width: 1200px) {
	.sp-content {
		display : none;
	}
	.header_logo {
		width : 240px;
		padding : 16px 0 16px 16px;
	}
	.header_navi {
		float : left;
		width : calc(100% - 420px);
		margin-top : 27px;
		text-align : center;
	}
	.header_navi li {
		float : left;
		height : 38px;
		margin : 0 15px;
	}
	.official-logo {
		width : 100%;
	}
	#top_challenge .fig_challenge-list {
		width : calc(100% - 32px);
		margin : 0 auto 48px auto;
	}
	#top_collabo .content {
		width : 100%;
		text-align : center;
	}
	#top_collabo .content img {
		width : calc(100% - 32px);
		margin : 0 auto;
	}
	#top_flow .column_header {
		width : calc(100% - 32px);
	}
	#top_flow .content .cell {
		height : 44vw;
		margin-top : 16vw;
	}
	#top_flow .content .cell .text-box {
		width : calc(100% - 16px);
		margin-left : 16px;
		margin-top : -11.5vw;
	}
	#top_flow .content .cell .text-box h3 {
		width : 40%;
	}
	#top_flow .content .cell .text-box p {
		width : calc(50% - 2vw);
		font-weight: bold;
		font-size: 1.2rem;
		line-height: 2.2rem;
		letter-spacing: 0.24vw;
	}
	#top_flow .content .cell .sub-image {
		width : calc(100% - 16px);
		margin : 0 auto;
		padding : 24px 0 24px 16px;
	}
	#top_flow .content .cell .sub-image img {
		width : 33.22vw;
	}
	#top_media .content {
		width : 100%;
	}
	#top_media .content .cell {
		min-height : 10.5rem;
	}
	#footer_link .content {
		width : 100%;
	}
	#footer_link .content dl {
		width : calc(50% - 16px);
		letter-spacing : 0.12vw;
		margin-left : 16px;
	}
	#footer_link .content dt {
		font-size : 1.6vw;
		width : 10vw;
	}
	#footer_link .content dd {
		font-size : 1.4vw;
		padding-left : 1.4vw;
	}
	#footer_link .content dd i {
		font-size : 1.8vw;
		vertical-align : middle;
	}
	#footer_link .content dd .phone {
		display : block;
		margin : 1.4vw 0 0.8vw 0;
	}
	#footer_link .content .banner ul {
		padding : 40px 0;
		margin : 0 16px 0 0;
	}
	#footer_link .content .banner ul li {
		font-size : 1.2vw;
	}
	#footer_link .content .banner ul li img {
		height : 4vw;
	}
	#footer_address {
		width : calc(100% - 16px);
		margin : 24px 0 24px 16px;
	}
}