@charset "UTF-8";

/*--------------------------------------------------------------
# ビューポイントごと表示非表示
-------------------------------------------------------------- */
.off1200,
.off1170,
.off1100,
.off991,
.off850,
.off767,
.off640,
.off480,
.off375,
.off360,
.off320 {
	display: block !important;
	margin: auto;
}

.on1200,
.on1170,
.on1100,
.on991,
.on850,
.on767,
.on640,
.on480,
.on375,
.on360,
.on320 {
	display: none !important;
}

@media (max-width: 1200px) {
	.off1200 {
		display: none !important;
	}

	.on1200 {
		display: block !important;
	}
}

@media (max-width: 1170px) {
	.off1170 {
		display: none !important;
	}

	.on1170 {
		display: block !important;
	}
}

@media (max-width: 1100px) {
	.off1100 {
		display: none !important;
	}

	.on1100 {
		display: block !important;
	}
}

@media (max-width: 991px) {
	.off991 {
		display: none !important;
	}

	.on991 {
		display: block !important;
	}
}

@media (max-width: 850px) {
	.off850 {
		display: none !important;
	}

	.on850 {
		display: block !important;
	}
}

@media (max-width: 767px) {
	.off767 {
		display: none !important;
	}

	.on767 {
		display: block !important;
	}
}

@media (max-width: 640px) {
	.off640 {
		display: none !important;
	}

	.on640 {
		display: block !important;
	}
}

@media (max-width: 480px) {
	.off480 {
		display: none !important;
	}

	.on480 {
		display: block !important;
	}
}

@media (max-width: 375px) {
	.off375 {
		display: none !important;
	}

	.on375 {
		display: block !important;
	}
}

@media (max-width: 360px) {
	.off360 {
		display: none !important;
	}

	.on360 {
		display: block !important;
	}
}

@media (max-width: 320px) {
	.off320 {
		display: none !important;
	}

	.on320 {
		display: block !important;
	}
}

/*--------------------------------------------------------------
# 設定
--------------------------------------------------------------*/
* {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	overflow-y: scroll;
	line-height: 1.6;
	-webkit-text-size-adjust: 100%;
	font-size: 10px;
	font-size: 62.5%;
	padding: 0;
}

html.active {
	overflow: hidden;
}

body {
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-o-text-size-adjust: 100%;
	text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-size: 16px;
	font-size: 1.6rem;
	line-height: 1.8;
	font-family: 'Noto Sans JP', sans-serif;
	margin: 0;
	letter-spacing: 2px;
	overflow: hidden;
}

@media (max-width: 480px) {
	body {
		font-size: 14px;
		font-size: 1.4rem;
		line-height: 1.6;
	}
}

body {
	-webkit-animation-name: fadein;
	animation-name: fadein;
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
	-webkit-animation-iteration-count: 1;
	animation-iteration-count: 1;
}

@-webkit-keyframes fadein {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes fadein {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@-webkit-keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

h1, h2, h3, h4, h5, h6, .font-min {
	font-size: 100%;
	font-weight: 500;
}

h1 span, h2 span, h3 span, h4 span, h5 span, h6 span, .font-min span {
	font-weight: 100;
}

h1, h2, h3, h4, h5, h6,
p, ul, ol, dl, dt, dd, li,
table, td, th,
address,
blockquote, form, fieldset, legend, div, hr, pre {
	margin: 0;
	padding: 0;
	font-style: normal;
	font-size: 100%;
	list-style: none;
}


figure {
	margin: 0 0 2rem;
}

figure img {
	width: 100%;
	height: auto;
}

img,
object,
embed {
	border: 0;
	vertical-align: top;
	outline: none;
	max-width: 100%;
	height: auto;
}

object:focus {
	outline: none;
}

embed:focus {
	outline: none;
}

input[type="button"],
input[type="text"],
input[type="submit"] {
	-webkit-appearance: none;
}

button {
	background-color: transparent;
	border: 0;
	cursor: pointer;
	outline: none;
	padding: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

::-webkit-input-placeholder {
	color: #ccc;
}

::-moz-placeholder {
	color: #ccc;
}

:-moz-placeholder {
	color: #ccc;
}

:-ms-input-placeholder {
	color: #ccc;
}

a {
	color: #333;
	outline: none;
	text-decoration: none;
	transition: all .3s ease;
	-webkit-transition: all .3s ease;
	-moz-transition: all .3s ease;
}

@media (hover: hover) {
	a:hover {
		opacity: 0.8;
		color: #333;
		cursor: pointer;
	}
}

@media (hover: none) {
	a:active {
		opacity: 0.8;
		color: #333;
		cursor: pointer;
	}
}

a:visited {
	color: #333;
}

a:focus {
	outline: none;
}

img {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-webkit-transition: 0.3s;
	transition: 0.3s;
	vertical-align: top;
}

b, strong {
	font-weight: 800;
}

div,
ul,
section,
article {
	width: auto;
	zoom: 1;
}

aside,
li,
dd,
ul,
section,
article {
	zoom: 1;
}

.section-inner {
	background-color: #007bc7;
	max-width: 1000px;
	padding: 2.0rem 0 3.0rem;
	margin: 0 auto;
}

.section-inner h3 {
	padding-top: 2.0rem;
}

@media screen and (max-width: 480px) {
	.section-inner {
		padding: 1.0rem 0;
	}

	h3 img {
		max-width: 60%;
	}
	#cont5 h3 img {
		max-width: 100%;
	}
}

.mark {
	text-indent: -1.0em;
	padding-left: 1.0em;
}

.mark li {
	margin-bottom: 0.5rem;
}

.mark li:last-of-type {
	margin-bottom: 0;
}


#page-top {
	position: fixed;
	bottom: 2.0rem;
	right: 2.0rem;
	z-index: 1;
}

#page-top a {
	display: block;
	text-decoration:none;
}

#page-top img {
	background:#111;
}

#page-top img:hover {
	background:#222;
}

@media screen and (max-width: 480px) {
	#page-top {
		right: 0.2rem;
	}

	#page-top img {
		width: 80%;
		height: auto;
	}
}


/*--------------------------------------------------------------
# header
--------------------------------------------------------------*/
#head_wrap {
	position: relative;
	z-index: 999;
	width: 100%;
	height: 100px;
	margin: 10px auto 0;
	line-height: 1;
}

#head_wrap a {
	text-decoration: none;
}

#head_wrap .inner {
	position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}

#head_wrap .logo {
	float: left;
	font-size: 36px;
}

#global-nav ul {
	display: flex;
}

#global-nav ul li {
	margin: 0 0 0 2.0rem;
	font-size: 1.6rem;
}

#global-nav ul li+li {
	position: relative;
}

#global-nav ul li+li::before {
	content: "";
	display: block;
	height: 1em;
	border-left: 2px solid #ccc;
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
}

#global-nav ul li a {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 100%;
	padding: 0 0 0 2.0rem;
}

#head_wrap.fixed {
	top: 0;
	position: fixed;
	height: auto;
	transition: top 0.65s ease-in;
	-webkit-transition: top 0.65s ease-in;
	-moz-transition: top 0.65s ease-in;
	z-index: 9999;
	background:rgba(255,255,255,0.95);
	margin-top: 0;
}

#head_wrap.fixed #global-nav ul {
	padding: 0 1.0rem;
}

#nav-toggle {
	display: none;
	position: absolute;
	right: 12px;
	top: 14px;
	width: 34px;
	height: 36px;
	cursor: pointer;
	z-index: 101;
}

#nav-toggle div {
	position: relative;
}


@media screen and (max-width: 999px) {
	#head_wrap {
		top: 0;
		position: fixed;
		margin-top: 0;
		width: 100%;
		height: auto;
		padding: 0;
	}

	#head_wrap .inner {
		width: 100%;
		padding: 0;
	}

	#head_wrap .fixed {
		padding-top: 0;
		background: transparent;
	}

	#mobile-head {
		background: rgba(255, 255, 255, 0.95);
		width: 100%;
		height: 56px;
		z-index: 999;
		position: relative;
	}

	#head_wrap.fixed .logo,
	#head_wrap .logo {
		position: absolute;
		top: 0.5rem;
		left: 0.5rem;
	}

	#head_wrap .logo img {
		max-width: 50%;
	}

	#global-nav {
		position: absolute;
		top: -500px;
		background: rgba(255, 255, 255, 0.95);
		width: 100%;
		text-align: center;
		-webkit-transition: .5s ease-in-out;
		-moz-transition: .5s ease-in-out;
		transition: .5s ease-in-out;
	}

	#global-nav ul {
		display: block;
		position: static;
		right: 0;
		bottom: 0;
		padding-bottom: 2.0rem;
	}

	#global-nav ul li {
		float: none;
		position: static;
	}

	#global-nav ul li+li::before {
		border-left: 0;
	}

	#head_wrap #global-nav ul li a,
	#head_wrap.fixed #global-nav ul li a {
		display: block;
		width: 100%;
		padding: 2.0rem 0;
		font-size: 1.6rem;
	}

	#nav-toggle {
		display: block;
	}

	/* #nav-toggle 切り替えアニメーション */
	#nav-toggle span {
		display: block;
		position: absolute;
		height: 3px;
		width: 100%;
		background: #007bc7;
		left: 0;
		-webkit-transition: .35s ease-in-out;
		-moz-transition: .35s ease-in-out;
		transition: .35s ease-in-out;
	}

	#nav-toggle span:nth-child(1) {
		top: 0;
	}

	#nav-toggle span:nth-child(2) {
		top: 11px;
	}

	#nav-toggle span:nth-child(3) {
		top: 22px;
	}

	.open #nav-toggle span:nth-child(1) {
		top: 11px;
		-webkit-transform: rotate(315deg);
		-moz-transform: rotate(315deg);
		transform: rotate(315deg);
	}

	.open #nav-toggle span:nth-child(2) {
		width: 0;
		left: 50%;
	}

	.open #nav-toggle span:nth-child(3) {
		top: 11px;
		-webkit-transform: rotate(-315deg);
		-moz-transform: rotate(-315deg);
		transform: rotate(-315deg);
	}

	/* #global-nav スライドアニメーション */
	.open #global-nav {
		/* #global-nav top + #mobile-head height */
		-moz-transform: translateY(556px);
		-webkit-transform: translateY(556px);
		transform: translateY(556px);
	}
}


/*--------------------------------------------------------------
# footer
--------------------------------------------------------------*/
footer {
	max-width: 1000px;
	margin: 2.0rem auto;
}

footer .copyright {
	text-align: center;
	margin-top: 2.0rem;
	font-size: 1.4rem;
}


/*--------------------------------------------------------------
# キービジュアル
--------------------------------------------------------------*/
.mv {
	position: relative;
	max-width: 1000px;
	height: 480px;
	margin: 0 auto;
}

.mv::after {
	content: "";
	z-index: -1;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #007bc7 url(../img/mv_bg.png) center / cover no-repeat;
}

.mv h2 {
	position: absolute;
	top: 50%;
	left: 12%;
	margin: 0;
	text-align: left;
}

@media screen and (max-width: 999px) {
	.mv {
		height: calc(480 / 1000 * 100vw);
		margin-top: 56px;
	}

	.mv h2 div {
		width: calc(401 / 1000 * 100vw);
		height: calc(63 / 1000 * 100vw);
	}
}

@media screen and (max-width: 480px) {
	.mv h2 {
		position: absolute;
		top: 60%;
		left: 10%;
	}

	.mv h2 div {
		width: calc(250 / 480 * 100vw);
	}
}


/*--------------------------------------------------------------
# 案内文
--------------------------------------------------------------*/
.info div {
	position: relative;
}

.info div::before, .info div::after {
	position: absolute;
	content: "";
	width: 10px;
	height: 10px;
}

.info div::before {
	border-right: solid 1px #ff0;
	border-bottom: solid 1px #ff0;
	top: -10px;
	left: 40px;
}

.info div::after {
	border-left: solid 1px #ff0;
	border-top: solid 1px #ff0;
	bottom: -10px;
	right: 40px;
}

.info p {
	position: relative;
	padding: 2.0rem;
	margin: 0 50px;
	color: #ff0;
}

.info p::before, .info p::after {
	position: absolute;
	content: "";
	width: 40px;
	height: 40px;
}

.info p::before {
	border-left: solid 1px #ff0;
	border-top: solid 1px #ff0;
	top: 0;
	left: 0;
}

.info p::after {
	border-right: solid 1px #ff0;
	border-bottom: solid 1px #ff0;
	bottom: 0;
	right: 0;
}

@media screen and (max-width: 480px) {
	.info div::before, .info div::after {
		width: 5px;
		height: 5px;
	}

	.info div::before {
		top: -5px;
		left: 15px;
	}

	.info div::after {
		bottom: -5px;
		right: 15px;
	}

	.info p {
		padding: 1.0rem 2.0rem;
		margin: 0 20px;
	}

	.info p::before, .info p::after {
		width: 20px;
		height: 20px;
	}
}


/*--------------------------------------------------------------
# 応募要項
--------------------------------------------------------------*/
.guideline > div {
	background-color: #fff;
	padding-bottom: 3.0rem;
	margin: 0 50px;
}

.guideline dl {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	padding: 1.0rem 3.0rem 0;
}

.guideline dt, .guideline dd {
	padding: 1.5rem 0;
}

.guideline dt:nth-of-type(even),
.guideline dd:nth-of-type(even) {
	background-color: #ececec;
}

.guideline dt {
	display: inline-block;
	position: relative;
	width: 30%;
	padding-left: 1.5rem;
	font-weight: bold;
}

.guideline dt::before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 2.0rem;
	left: 0;
	background-color: #007bc7;
	width: 8px;
	height: 20px;
}

.guideline dd {
	width: 70%;
	padding-right: 2.0rem;
}

.guideline .entry {
	text-align: center;
	padding-bottom: 3.0rem;
	margin-top: 3.0rem;
}

.guideline .entry.closed {
	font-size: 3.0rem;
	font-weight: bold;
}

@media (max-width: 640px) {
	.guideline dl {
		flex-flow: column;
		padding: 1.0rem 1.0rem 0;
	}

	.guideline dt, .guideline dd {
		width: 100%;
	}

	.guideline dt {
		padding: 0.5rem 0 0 1.5rem;
	}

	.guideline dt::before {
		top: 0.75rem;
	}

	.guideline dd {
		padding: 0.5rem 0 0.5rem 1.5rem;
		margin-bottom: 1.0rem;
	}

	.guideline .entry {
		width: 90%;
		margin: 1.0rem auto 0;
	}
	
	.guideline .entry.closed {
		font-size: 2.0rem;
	}
}

@media screen and (max-width: 480px) {
	.guideline > div {
		margin: 0 2.0rem
	}
}

.winning-work {
	text-align: center;
}


/*--------------------------------------------------------------
# 審査員のメッセージ
--------------------------------------------------------------*/
.movie > div {
	background-color: #e6f2fa;
	margin: 0 50px;
}

.movie .message {
	width: calc(100% - 6.0rem);
	text-align: center;
	margin: 2.0rem 3.0rem 0;
	padding-bottom: 3.0rem;
}

.movie .message-in,
.movie li > div {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 56.25%;
	/* 高さを指定(16:9) */
	margin: 0;
}

.movie .message-in iframe,
.movie li > div iframe,
.movie .message-in a.movie0 {
	position: absolute;
	top: 0;
	left: 0;
	border: 0;
	width: 100%;
	height: 100%;
}

.movie ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-bottom: 3.0rem;
	margin: 0 3.0rem;
}

.movie ul:after {
	content: "";
	display: block;
	width: 48%;
	height: 0;
}

.movie li {
	width: 48%;
	margin-top: 3.0rem;
}


@media (max-width: 480px) {
	.movie > div {
		margin: 0 2.0rem
	}

	.movie .message {
		width: calc(100% - 2.0rem);
		margin: 2.0rem 1.0rem 0;
	}

	.movie ul {
		margin: 0 1.0rem;
	}

	.movie li {
		width: 47%;
		margin-top: 2.0rem;
		text-align: center;
	}
}


/*--------------------------------------------------------------
# 過去の受賞作品
--------------------------------------------------------------*/
.pastworks > div {
	margin: 0 50px;
}

.pastworks h3 {
	display: flex;
	align-items: baseline;
	width: 100%;
}

.pastworks h3::after {
	content: "※クリックすると拡大表示されます";
	color: #fff;
	margin-left: auto;
}

.pastworks ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-bottom: 3.0rem;
}

.pastworks li {
	background-color: #fff;
	box-shadow: 2px 2px 1px rgba(0, 0, 0, .5);
	border-radius: 10px;
	width: 24%;
	margin-top: 2.0rem;
}

.pastworks li a {
	display: block;
	padding: 1.0rem;
}

.pastworks li p {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 0.5rem;
	font-size: 2.0rem;
	font-weight: bold;
}

.pastworks li p::before,
.pastworks li p::after {
	background: #333;
	content: "";
	flex-grow: 0.15;
	height: 2px;
}

.pastworks li p::before {
	margin-right: 0.5rem;
}

.pastworks li p::after {
	margin-left: 0.5rem;
}


@media (max-width: 480px) {
	.pastworks > div {
		margin: 0 2.0rem
	}

	.pastworks h3 {
		display: block;
	}

	.pastworks h3::after {
		display: block;
		margin: 0.5rem 0 0;
	}

	.pastworks ul {
		padding-bottom: 1.0rem;
	}

	.pastworks li {
		width: 48%;
		margin-top: 1.0rem;
	}

	.pastworks li p {
		font-size: 1.4rem;
	}
}



/*--------------------------------------------------------------
# 主催・協賛
--------------------------------------------------------------*/
.shusai {
	margin: 0 50px;
}

.shusai p {
	display: inline-block;
	text-align: left;
	color: #fff;
	font-size: 1.4rem;
}

@media (max-width: 480px) {
	.shusai {
		margin: 0 2.0rem;
		text-align: left;
	}
}


/*--------------------------------------------------------------
# フォーム
--------------------------------------------------------------*/
.form > div {
	margin: 0 50px;
}

.form h2 {
	text-align: center;
	margin-bottom: 2.0rem;
	color: #fff;
	font-size: 2.4rem;
	font-weight: bold;
}

.form .att {
	color: #fff;
	border: 1px solid #fff;
	padding: 1.0rem;
	font-size: 1.4rem;
}

.form .att dt {
	margin: 1.0rem 0 0.5rem;
	font-weight: bold;
}
.form .att dt:first-of-type {
	margin-top: 0;
}

.form .att dd {
	padding-left: 2.0rem;
}

.form .att dd span {
	color: #ff0;
}

@media screen and (max-width: 999px) {
	.form {
		margin-top: 56px;
	}
}

@media (max-width: 480px) {
	.form > div {
		margin: 0 2.0rem
	}

	.form h2 {
		margin-bottom: 1.0rem;
		font-size: 2.0rem;
	}

	.form .att {
		margin-bottom: 1.0rem;

	}

	.form .att dd {
		padding-left: 1.0rem;
	}
}



/*--------------------------------------------------------------
# 応募フォーム完了画面
--------------------------------------------------------------*/
.thanks {
	background-color: #fff;
	border-radius: 10px;
	padding: 3.0rem;
}

.thanks .entry {
	text-align: center;
	padding-bottom: 5.0rem;
	margin-top: 3.0rem;
}


@media (max-width: 480px) {
	.thanks {
		padding: 2.0rem;
	}

	.thanks .entry {
		padding-bottom: 3.0rem;
		margin-top: 2.0rem;
	}
}



/*--------------------------------------------------------------
# 入賞作品　詳細ページ
--------------------------------------------------------------*/
.award > div {
	margin: 0 50px;
}

.award_top {
	margin-top: 5.0rem;
	text-align: center;
}
.award_top a {
	display: inline-block;
	background-color: #ff0;
	border-radius: 100px;
	padding: 0.5rem 5.0rem;
	font-size: 1.6rem;
}

@media screen and (max-width: 999px) {
	.award {
		margin-top: 56px;
	}
}

@media (max-width: 480px) {
	.award > div {
		margin: 0 2.0rem
	}
	.award_top {
		margin-top: 2.0rem;
		margin-bottom: 1.0rem;
	}
}


/* ページ拡大表示ボタン */
#positionButtonDiv {
	margin-bottom: 1.0rem;
	color: #fff;
}
#positionButtonDiv.bottom {
	margin-top: 1.0rem;
}

#positionButtonDiv img {
	cursor: pointer;
}

/*
.clBtn {
	margin-bottom: 1.5rem;
	text-align: center;
}
.clBtn li {
	display: inline-block;
	border: 1px solid #fff;
	border-radius: 5px;
	padding: 0.5rem 1.0rem;
	margin: 0 1.0rem;
	color: #fff;
	font-size: 1.4rem;
	cursor: pointer;
}
.clBtn li:hover {
	cursor: pointer;
	background-color: #ff0;
	border: 1px solid #ff0;
	color: #000;
	transition: 0.4s;
}
*/