@charset "utf-8";

/*基本設定
---------------------------------------------------------------------------*/
@font-face {
	font-family: 'GenJyuu';
	src: url('../font/GenJyuuGothic-P-Normal.ttf') format('truetype');
}
@font-face {
	font-family: 'Aller';
	src: url('../font/AllerDisplay.ttf') format('truetype');
}
.en_font {
	font-family:"Aller";
	font-weight: normal;
}
body {
	color: #000000;
	margin: 0px;
	padding: 0px;
	font-size: 20px;
	font-family:"ヒラギノ丸ゴ Pro W4","ヒラギノ丸ゴ Pro","Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HG丸ｺﾞｼｯｸM-PRO","HGMaruGothicMPRO";
	/*font: 20px "GenJyuu"; */
	line-height: 1.5;
}
@media screen and (max-width:999px) { /* SP */
	body { font-size: 16px; }
}

/*リンク（全般）設定
---------------------------------------------------------------------------*/
a { color: #fff; }
a:hover {
	color: #fff;
	text-decoration: none;
}

a > img { background:none!important; }

a:hover > img {
	opacity:0.8;
	filter:alpha(opacity=80);
	-ms-filter: "alpha( opacity=80 )";
	background:none!important;
}

/* フォント
---------------------------------------------------------------------------*/


/*その他
---------------------------------------------------------------------------*/
/***非表示***/
.none { display: none; }
@media screen and (min-width:1000px) { /* PC */
	.pc_none { display: none; }
}
@media screen and (max-width:999px) { /* SP */
	.sp_none { display: none; }
}

/***幅***/
.inner03 { padding: 0 20px; }
@media screen and (min-width:1000px) { /* PC */
	.inner, .inner02 {
		width: 1000px;
		margin: 0 auto;
	}
}
@media screen and (max-width:999px) { /* SP */
	.inner02 { padding: 0 20px; }
}

/***改行なし***/
.nowrap { white-space: nowrap;}


/**************************************/
/* ページ共通設定(topページ/template) */
/**************************************/
/*コンテナー
---------------------------------------------------------------------------*/
#wrapper {
	margin: 0px auto;
	background-color: #FFF;
	position: relative;
}
@media screen and (max-width:999px) { /* SP */
	#wrapper { width: auto; }
}

/* ヘッダー
---------------------------------------------------------------------------*/
#header {
	width: 100%;
	z-index: 9999;
	position: fixed;
	top: 0;
	left: 0;
	clear: both;
}
#header .col_01 { float: left; }
#header .col_02 { float: right; }
@media screen and (min-width:1000px) { /* PC */
	#header { height: 70px; }
	#header .col_02 { width: 300px; }
}
@media screen and (max-width:999px) { /* SP */
	#header { height: 50px; }
	#header .col_02 { width: 160px; }
}

/*トップボタン */
#top_btn {
	display: block;
	background-color: #000;
	border-radius: 10px;
	width: 250px;
	padding: 20px 0;
	margin: 20px 50px 0 0;
	text-decoration: none;
	text-align: center;
	font-weight: bold;
	font-size: 20px;
	color: #fff;
}
#top_btn:hover {
	color: #fff;
	background-color: #00398f;
}
@media screen and (max-width:999px) { /* SP */
	#top_btn {
		width: 140px;
		margin: 15px 15px 0 0;
		padding: 10px 0;
		font-size: 14px;
	}
}
@media screen and (max-width:410px) { /* SP */
	#top_logo {
		width: 120px;
		margin: 12px 0 5px 10px;
	}
}


/*トップエリア
---------------------------------------------------------------------------*/
#top_area {
	width: 100%;
	height: 100vh;
	min-height: 800px;
	background-image: url("../img/top_bg.png");
	background-size: cover;
	background-position: center center;
	position: relative;
}
#top_area .catch {
	display: block;
	margin: auto;
	z-index: 1;
	position: absolute;
	height: auto;
	max-width: 1000px;
	width: 100%;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

#top_area .expo_img {
	width: 300px;
	margin: 20px 0 0 20px;
}
@media screen and (max-width:999px) { /* SP */
	#top_area {
		min-height: 500px;
	}
	#top_area .catch {
		max-width: 500px;
		width: 90%;
		height: auto;
	}
	#top_area .expo_img {
		width: 150px;
		margin: 20px 0 0 10px;
	}
}

/*SNSメニュー
---------------------------------------------------------------------------*/
#sns_menu {
	position: fixed;
	right: 0;
	top: 150px;
	z-index: 999;
}
#sns_menu .yt_btn, #sns_menu .x_btn, #sns_menu .insta_btn {
	background-color: #000;
	display: block;
	padding: 10px;
}
#sns_menu .insta_btn {
	background-color: #f90066;
	margin-bottom: 20px;
}
#sns_menu .x_btn {
	background-color: #000;
	margin-bottom: 20px;
}
#sns_menu .yt_btn {
	background-color: #cc3328;
}
#sns_menu .yt_btn:hover, #sns_menu .x_btn:hover, #sns_menu .insta_btn { opacity: 0.8; }
#sns_menu img {
	display: block;
	width: 25px;
}
@media screen and (max-width:999px) { /* SP */
	#sns_menu { top: 70px; }
	#sns_menu .insta_btn, #sns_menu .x_btn { margin-bottom: 10px; }
}

/* 中身（ヘッダー、フッター以外）
---------------------------------------------------------------------------*/
#container { position: relative; }

/*コンテンツ
---------------------------------------------------------------------------*/
@media screen and (min-width:1000px) { /* PC */
	.contents { padding: 100px 0; }
	.contents_top { padding: 170px 0 100px; }
}
@media screen and (max-width:999px) { /* SP */
	.contents { padding: 60px 0; }
	.contents_top { padding: 110px 0 60px; }
}

/*コンタクトエリア
---------------------------------------------------------------------------*/
.contact_area {
	background-color: #fff100;
}

/*PAGE TOP設定
---------------------------------------------------------------------------*/
/* ページトップ */
#page_top {
	width: 40px;
	height: 40px;
	display: none;
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 1;
	background-color: rgba(255,241,00,0.8);
	border-radius: 20px;
}
#page_top:hover { background-color: #fff100; }
#page_top span {
	position: relative;
	display: block;
}
#page_top span:before {
	content: "\f062";
	color: #fff;
	font-family: "FontAwesome";
	font-size: 16px;
	position: absolute;
	top: 8px;
	left: 13px;
}

/*フッター
---------------------------------------------------------------------------*/
#footer {
	padding: 100px 0 100px;
	background-color: #fff;
	font-size: 12px;
	text-align: center;
}
@media screen and (max-width:999px) { /* SP */
	#footer { padding: 50px 0 50px; }
}

/*コピーライト
---------------------------------------------------------------------------*/
#copyright { text-align: center; }
#copyright small { font-size: 12px; }


/**************************************/
/* 共通パーツ設定 */
/**************************************/
/*---------------------------------------------------------------------------*/
/*タイトル
---------------------------------------------------------------------------*/
.title01 {
	text-align: center;
	width: 300px;
	margin: 0 auto 30px;
}
.title01 img { width: 100%; }
@media screen and (max-width:999px) { /* SP */
	.title01 {
		width: 200px;
		margin: 0 auto 20px;
	}
}

.title02 {
	font-size: 40px;
	font-weight: bold;
	display: flex;
  align-items: center; /* 垂直中心 */
  justify-content: center; /* 水平中心 */
	margin-bottom: 30px;
}
.title02:before, .title02:after {
  border-top: 8px solid;
  content: "";
  width: 3em; /* 線の長さ */
}
.title02:before {
  margin-right: 1em; /* 文字の右隣 */
}
.title02:after {
  margin-left: 1em; /* 文字の左隣 */
}
@media screen and (max-width:999px) { /* SP */
	.title02 {
		font-size: 20px;
		margin-bottom: 20px;
	}
	.title02:before, .title02:after {
	  border-top: 4px solid;
	  content: "";
	  width: 1em; /* 線の長さ */
	}
	.title02:before {
	  margin-right: 0.5em; /* 文字の右隣 */
	}
	.title02:after {
	  margin-left: 0.5em; /* 文字の左隣 */
	}
}

.title03 {
	font-size: 24px;
	font-weight: bold;
	text-align: center;
	margin-bottom: 50px;
}
.title03 span {
	font-size: 50px;
	display: block;
}

/*---------------------------------------------------------------------------*/
/* ボタン */
/*---------------------------------------------------------------------------*/
.btn01 {
	display: block;
	font-size: 30px;
	text-decoration: none;
	text-align: center;
	margin: 0 auto;
	max-width: 500px;
	width: 100%;
	padding: 30px 0;
	color: #fff;
	background-color: #000;
	border-radius: 10px;
	font-weight: bold;
	transition: all .3s;
	-webkit-transition: all .3s;
	box-shadow: 0 5px 10px 0 rgba(0,0,0,0.12), 0 3px 20px 0 rgba(0,0,0,0.12), 0 5px 6px -2px rgba(0,0,0,0.2);
  position: relative; /* position: relative;で矢印の位置を基点とさせます */
}
.btn01::after{
    /* 擬似要素で三角アイコンをつくる */
    content: '';
    display: inline-block;
    border-style: solid;
    border-width: 10px 0 10px 10px;
    border-color: transparent transparent transparent #fff;
    display: inline-block;
    width: 0;
    height: 0;
    /* 矢印アイコンの位置を設定 */
    position: absolute;
    top: 50%;
    right: 10%;
    transform: translateY(-50%); /* translateYのみ */
}
.btn01:hover {
	color: #fff;
	background-color: #00398f;
	box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.2);
}
@media screen and (max-width:999px) { /* SP */
	.btn01 {
		font-size: 20px;
		padding: 20px 0;
	}
	.btn01::after{
		border-width: 7px 0 7px 7px;
		right: 5%;
	}
}

/*---------------------------------------------------------------------------*/
/* リスト */
/*---------------------------------------------------------------------------*/
/* ドットリスト */
.dot_list > li {
	margin-left:1.5em;
	text-indent:-1.5em;
	line-height: 1.8;
}
.dot_list > li:before { content: "・\0020"; }

/*---------------------------------------------------------------------------*/
/* 画像 */
/*---------------------------------------------------------------------------*/
.img01 {
	display: block;
	margin: 0 auto;
}
.img02 {
	display: block;
	margin: 0 auto;
	width: 100%;
}
.img03 {
	display: block;
	margin: 0 auto;
	height: 100%;
	max-height: 60px;
	width: auto;
}
@media screen and (max-width:999px) { /* SP */
	.img01 { width: 100%; }
}

.img_round { border-radius: 10px; }

/*---------------------------------------------------------------------------*/
/* リンク */
/*---------------------------------------------------------------------------*/
.gaibu_link {
	position: relative;
	padding: 0 40px 0 0;
}
.gaibu_link:before {
	content: " ";
	position: absolute;
	top: 0;
	right: 0;
	background: url(../img/ic_link.png) 0 0 no-repeat;
	background-size: 35px 35px;
	width: 35px;
	height: 35px;
}
@media screen and (max-width:999px) { /* SP */
	.gaibu_link {
		padding: 0 25px 0 0;
	}
	.gaibu_link:before {
		background-size: 20px 20px;
		width: 20px;
		height: 20px;
	}
}

/*---------------------------------------------------------------------------*/
/* その他 */
/*---------------------------------------------------------------------------*/
.alert { color: #ff0000; }
.marker_yellow { background: linear-gradient(transparent 60%, #ffff66 60%); }
.strikethrough {
  text-decoration: line-through;
  text-decoration-color: red; /* 色の指定 */
  text-decoration-style: double;
}
/* ※ */
.kome {
	margin-left:1.5em;
	text-indent:-1.5em;
}
.kome:before { content:"※\0020"; }

.frame01 {
	background-color: #fff;
	padding: 20px;
	border-radius: 30px;
}
.frame02 {
	background-color: #000;
	padding: 20px;
	border-radius: 20px;
}


/**************************************/
/* 個別ページ設定 */
/**************************************/
/*---------------------------------------------------------------------------*/
/* TOPページ(/) */
/*---------------------------------------------------------------------------*/
/* コンテスト概要 */
#event_20 {
	background-color: #0071b6;
	color: #fff;
}

#event_21 {
	background-color: #db0011;
	color: #fff;
}

/* 内容の表 */
.table_caption {
	background-color: #fff;
	border-radius: 30px;
	color: #000;
	text-align: center;
	padding: 10px 0;
	font-size: 30px;
	margin-bottom: 20px;
	font-weight: bold;
}
.table_contents {
	text-align: center;
	font-size: 30px;
	font-weight: bold;
	margin-bottom: 30px;
}
@media screen and (max-width:999px) { /* SP */
	.table_caption {
		font-size: 18px;
		margin-bottom: 10px;
	}
	.table_contents {
		font-size: 18px;
		margin-bottom: 20px;
	}
}

/* MAP */
#map {
	background-color: #e0e0e0;
	text-align: center;
	font-size: 30px;
}
#map .gaibu_link { color: #000; }
#map .gaibu_link:before {
	background-image: url(../img/ic_link02.png);
}
#map .gaibu_link:hover { color: #000; }
#map iframe {
	display: block;
	margin: 50px auto 0;
	max-width: 900px;
	width: 100%;
	border-radius: 30px;
	height: 300px;
}
@media screen and (max-width:999px) { /* SP */
	#map iframe { height: 150px; }
	#map { font-size: 18px; }
}
