@charset "utf-8";
/* ===========================================================

	Title: contents.css
	Created: 2022-12-27

=========================================================== */

/*

	filter
	sticker
	video
	works
	about
	form
	error-404


=========================================================== */
/* ===========================================================

	contents-tab

=========================================================== */
.contents-tab {
	background-color: #000;
	display: flex;
	justify-content: center;
	padding: 8px;
}
.contents-tab ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	max-width: 1086px;
}
.contents-tab li {
	width: calc(50% - 4px);
}
.contents-tab a {
	height: 56px;
	padding: 0 40px;
	line-height: 1.2;
	background-color: #1B58A7;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	color: #fff;
}
.contents-tab a::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translate(0,-50%);
	height: 12px;
	width: 18px;
	background: url(../img/global/arrow--white.svg) 50% 50% no-repeat;
}
.contents-tab a:hover {
	text-decoration: none;
    background-color: #5BD4F6;
}
.contents-tab a.is-current {
	background-color: #fff;
	color: #1B58A7;
}
@media (min-width: 768px) {
}
@media (min-width: 1200px) {
	.contents-tab {
		padding: 16px;
	}
	.contents-tab ul {
		gap: 16px;
		flex-wrap: nowrap;
	}
	.contents-tab li {
		width: 100%;
	}
	.contents-tab a {
		height: 64px;
	}
	.contents-tab a.is-current::before {
		content: "";
		position: absolute;
		left: 0;
		bottom: -16px;
		height: 16px;
		width: 100%;
		background-color: #fff;
	}
}

/* ===========================================================

	festival-main

=========================================================== */
.festival-main {
	padding: 32px 0;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 64px;
	flex-direction: column;
}
.festival-main__read,
.festival-main__text {
	max-width: 512px;
}
.festival-main__read p {
    font-size: 3.2rem;
    font-weight: 500;
    line-height: 1.4;
}
.festival-main__read p br {
	display: none;
}
.festival-main__text p {
    line-height: 1.8;
}
.festival-main__image {
}
@media (min-width: 768px) {
}
@media (min-width: 1200px) {
	.festival-main {
		padding: 64px 0;
		flex-direction: row;
	}
	.festival-main__read p br {
		display: block;
	}
}
/* ===========================================================

	guideline

=========================================================== */
/* prize
----------------------------------------------------------- */
.prize {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	background-color: rgba(27, 88, 167, 0.05);
	padding: 16px;
	flex-direction: column;
}
.prize + .prize {
	margin-top: 16px;
}
.prize-text p:first-child {
	margin-top: 0;
}
.prize-text p {
	margin-top: 24px;
	font-weight: bold;
}
.prize-text ul {
	margin-bottom: 16px;
}
.prize strong {
	color: #1B58A7;
}
.prize-text {
	order: 2;
	width: 100%;
}
.prize-image {
	order: 1;
}
.prize-image picture {
	width: 100%;
	display: flex;
	justify-content: center;
}
@media (min-width: 768px) {
	.prize {
		flex-direction: row;
		gap: 32px;
	}
	.prize-image picture {
		width: 256px;
	}
}
/* ===========================================================

	judge

=========================================================== */
/* judge-list
----------------------------------------------------------- */
.judge-list li {
	margin-bottom: 24px;
}
.judge-list-box {
	border: solid 2px #1B58A7;
	padding: 16px;
	display: flex;
	justify-content: space-between;
	gap: 48px;
	flex-direction: column;
}
.judge-list-image {
	width: 100%;
	max-width: 320px;
	margin: 0 auto;
}
.judge-list-image img {
}
.judge-list-body__sticker {
	background-color: #1B58A7;
	font-size: 1.4rem;
	padding: 2px 8px;
	display: inline-block;
	color: #fff;
}
.judge-list-body__name {
	color: #1B58A7;
}
.judge-list-body__name strong {
	font-size: 3.2rem;
}
.judge-list-body__responsible {
	margin-top: 16px;
	font-size: 1.4rem;
	padding: 2px 8px;
	display: inline-block;
	border: solid 1px #1B58A7;
	color: #1B58A7;
}
.judge-list-body__text {
	margin-top: 16px;
}
.judge-list-body__sns {
	margin-top: 32px;
}
.judge-list-body__sns ul {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
}
.judge-list-body__sns ul li {
	width: 32px;
}
@media (min-width: 768px) {
}
@media (min-width: 1200px) {
	.judge-list-box {
		flex-direction: row;
		padding: 48px;
	}
	.judge-list-image {
		width: 320px;
		flex-shrink: 0;
	}
}

/* ===========================================================

	winners

=========================================================== */
h2.winners-title {
	background-color: #004f9a;
	text-align: center;
	color: #fff;
	font-weight: 700;
	padding: 24px 32px 16px;
}
h2.winners-title::before,
h2.winners-title::after {
    position: absolute;
    content: "";
	left: 0;
	top: 0;
    width: 100%;
    height: 8px;
}
h2.winners-title::before {
    background-color: #adeff5;
}
h2.winners-title::after {
    background-color: #45d0f3;
	top: 8px;
}
.winners-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 32px;
}
.winners-list li {
    max-width: 526px;
    margin: 0;
}
.winners-list-box {
	border: solid 2px #1B58A7;
	background-color: #F0F8FA;
	padding: 16px;
	display: flex;
	justify-content: center;
	gap: 16px;
	flex-direction: column;
	text-align: center;
}

.winners-list-movie {
	width: calc(100vw - 96px);
}
@media (min-width: 1200px) {
	.winners-list-image {
		width: 490px;
		height: 490px;
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
		background-color: #ffffff;
		padding: 16px;
	}
	.winners-list-movie {
		width: 490px;
	}
}
.winners-list-image img {
	width: auto;
	height: auto;
	max-height: 458px;
}
.winners-list-body__sticker {
	background-color: #1B58A7;
	font-size: 1.4rem;
	padding: 2px 8px;
	display: inline-block;
	color: #fff;
	line-height: 1.2;
}
.winners-list-body__name {
	color: #1B58A7;
	letter-spacing: 0.025em;
	font-size: 1.8rem;
	font-weight: 700;
}
.winners-list-body__name strong {
}
.winners-list-body__name em {
	color: #1B58A7;
}
.winners-list-body__name em::before {
	content: "/";
	padding: 0 0.5em;
	opacity: 0.5;
}
.winners-list-body__responsible {
	margin-top: 16px;
	font-size: 1.4rem;
	padding: 2px 8px;
	display: inline-block;
	border: solid 1px #1B58A7;
	color: #1B58A7;
}
.winners-list-body__sns {
	margin-top: 8px;
}
.winners-list-body__sns ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin: 0;
}
.winners-list-body__sns ul li {
	width: 32px;
}
/* ===========================================================

	sticker

=========================================================== */

.sticker {
	width: auto;
	width: 80px;
	min-height: 24px;
	margin-right: 16px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-align: center;
}

.sticker--tvcm {
	background-color: #306E5B;
}

.sticker--mv {
	background-color: #be6caa;
}

/* ===========================================================

	video

=========================================================== */

.youtube--16-9 {
	position: relative;
	padding-bottom: 56.25%;
	/*アスペクト比 16:9の場合の縦幅*/
	height: 0;
	overflow: hidden;
	display: block;
}

.youtube--16-9 iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
}


/* ===========================================================

	archive-list

=========================================================== */
.contents-style .archive-list {
	border-top: solid 1px #E2E9F2;
	text-align: left;
	margin-bottom: 64px;
}

.archive-list li {
	margin: 0;
	border-bottom: solid 1px #E2E9F2;
	display: flex;
}

.archive-list li a {
	text-decoration: none !important;
	display: block;
	background: url(../img/global/news__arrow.svg) 98% 50% no-repeat;
	background-size: 32px auto;
	padding: 24px 48px 24px 8px;
	display: flex;
	width: 100%;
	position: relative;
	flex-direction: column;
}
@media (min-width: 768px) {
	.archive-list li a {
		flex-direction: row;
		background: url(../img/global/news__arrow.svg) 98% 50% no-repeat;
		background-size: auto auto;
		padding: 32px 128px 32px 16px;
	}
}
.archive-list li.js-not-link {
	padding: 32px 16px;
}
.archive-list li a:hover,
.archive-list li a:hover .data {
	color: rgba(27, 88, 167, 1);
	background-image: none;
	background-position: 96% 50%;
}
.archive-list li a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0%;
    z-index: -1;
    height: 100%;
    transition: all 0.25s ease-in;
}
.archive-list li a:hover::after {
    width: 100%;
    background-color: rgba(27, 88, 167, 0.10);
    opacity: 1;
}

.link-box a:hover h2 {
    letter-spacing: 0.25em;
    color: #fff;
}

.archive-list li a:hover {
}

.archive-list .date {
	min-width: 7.5em;
	display: inline-block;
}

.archive-list .date {
	margin-right: 1.0em;
}

.archive-list .sticker {
	margin-right: 2em;
}

.archive-list .archive-list__head {
	display: flex;
}

.archive-list .archive-list__body {
	width: 100%;
}

.file-size {
	color: #666;
	font-size: 1.3rem;
	margin: 0 0.1em;
}

/*.file-size::before {
	content: "(";
}
.file-size::after {
	content: ")";
}*/

@media screen and (max-width: 1024px) {
	.archive-list li {
		flex-wrap: wrap;
	}

	.archive-list .archive-list__body {
		width: 100%;
	}
}

/* ===========================================================

	form

=========================================================== */

.form dl {
	width: 100%;
	padding: 8px 0;
}

.form dl dt {
	min-width: 18em;
	line-height: 48px;
}

@media (min-width: 1200px) {
	.form dl {
		display: flex;
		align-items: flex-start;
	}

	.form dl dt {
		display: flex;
		align-items: center;
	}
}

.form dl dt .sticker {
	display: inline-block;
	color: #fff;
	margin-right: 16px;
	padding: 8px 16px;
	font-size: 1.4rem;
	line-height: 1;
	border-radius: 3px;
}

.form dl dt .optional {
	background-color: #9A9A9A;
}

.form dl dt .required {
	background-color: #8C6F51;
}

.form dl dd {
	width: 100%;
}

/************************************
** input
************************************/

.form input[type="text"], .form input[type="password"], .form input[type="datetime"], .form input[type="date"], .form input[type="month"], .form input[type="time"], .form input[type="week"], .form input[type="number"], .form input[type="email"], .form input[type="url"], .form input[type="search"], .form input[type="tel"], .form input[type="color"], .form select, .form textarea, .form .field {
	display: block;
	width: 100%;
	height: 48px;
	line-height: 48px;
	margin-bottom: 0;
	padding: 8px 16px;
	border: 0;
	background-color: #f9f9f9;
	box-shadow: none;
	color: #555;
	font-size: 1em;
	vertical-align: middle;
	transition: background-color 0.24s ease-in-out;
}

.form textarea {
	max-width: 100%;
	min-height: 256px;
	line-height: 1.4;
	padding: 8px 16px;
	overflow: auto;
}

.form .inquiry th {
	text-align: left;
	font-size: 14px;
	color: #444;
	padding-right: 5px;
	width: 30%;
	background: #f7f7f7;
	border: solid 1px #d7d7d7
}

.form .wpcf7-list-item-label {
	position: relative;
}

/* radio
-----------------------------------------*/

.wpcf7-radio {
	line-height: 48px;
}

.wpcf7-radio .wpcf7-list-item {
	margin: 0 32px 0 0;
}

.form input[type="radio"] {
	position: absolute;
	opacity: 0;
}

.wpcf7-radio .wpcf7-list-item-label:before {
	content: '';
	background: #fff;
	border-radius: 100%;
	border: 1px solid #888888;
	display: inline-block;
	width: 1.4em;
	height: 1.4em;
	position: relative;
	top: -0.2em;
	margin-right: 8px;
	vertical-align: middle;
	cursor: pointer;
	text-align: center;
	-webkit-transition: all 250ms ease;
	transition: all 250ms ease;
}

.form input[type="radio"]:checked+.wpcf7-list-item-label:before {
	background-color: #8C6F51;
	box-shadow: inset 0 0 0 2px #fff;
}

/* radio
-----------------------------------------*/

.wpcf7-acceptance {
	line-height: 48px;
}

.form input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	/*既存のチェックボックスを見えなくする*/
}

.wpcf7-acceptance .wpcf7-list-item {
	margin: 0 32px 0 0;
}

.wpcf7-acceptance .wpcf7-list-item-label:before {
	/*チェックボックスの枠*/
	content: '';
	background: #fff;
	border: 1px solid #888888;
	display: inline-block;
	width: 1.4em;
	height: 1.4em;
	position: relative;
	top: -0.2em;
	margin-right: 8px;
	vertical-align: middle;
	cursor: pointer;
	text-align: center;
	-webkit-transition: all 250ms ease;
	transition: all 250ms ease;
	display: inline-block;
}

.form input[type="checkbox"]:checked+.wpcf7-list-item-label:after {
	/*チェックアイコン*/
	content: "";
	display: block;
	position: absolute;
	top: 0.40em;
	left: 0.25em;
	width: 0.90em;
	height: 0.5em;
	border-left: solid 4px #8C6F51;
	border-bottom: solid 4px #8C6F51;
	transform: rotate(-45deg);
}

/* submit
-----------------------------------------*/

.wpcf7-submit {
	outline: none;
	border: none;
	min-width: 256px;
	height: 64px;
	margin-top: 32px;
	background-color: #000;
	color: #fff;
}

.wpcf7-submit:hover {}

.wpcf7-submit:disabled {
	background-color: #777;
	color: #999;
}

/* form message
-----------------------------------------*/
.wpcf7 form .wpcf7-response-output {
	margin: 2em 0.5em 1em;
	padding: 16px;
	text-align: center;
}
.wpcf7 form div.visible-only-if-invalid {
	display: none;
  }
   
.wpcf7 form.sent div.visible-only-if-invalid {
	display: block;
}

/* spinner
-----------------------------------------*/
.form .wpcf7-spinner {
    display: block;
    margin: 8px auto;
    text-align: center;
}

/* ===========================================================

   fadein

=========================================================== */

.js-fadein {
	opacity: 0;
	transform: scale(1.08, 1.08);
	transition: all 1.2s ease-in-out;
}
.js-scrollin {
	opacity: 1;
	transform: scale(1.0, 1.0);
}

.js-fadein__image {}

.js-fadin__image-wrap {
	position: relative;
	opacity: 0;
	-webkit-transition: all 1.2s ease-in-out;
	transition: all 1.2s ease-in-out;
}

.js-scrollin__image .js-fadin__image-wrap {
	opacity: 1;
}

.js-fadin__image-wrap::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	display: inline-block;
	width: 100%;
	height: calc(100% + 1px);
	background-color: rgba(255, 255, 255, 1.00);
	-webkit-transform: scale(1, 1) translate(0, 0);
	transform: scale(1, 1) translate(0, 0);
	-webkit-transition: all 1.2s ease-in-out;
	transition: all 1.2s ease-in-out;
}

.js-scrollin__image .js-fadin__image-wrap::before {
	left: 50%;
	-webkit-transform: scale(0, 1) translate(50%, 0);
	transform: scale(0, 1) translate(50%, 0);
}

.delay--1 .js-fadin__image-wrap::before {
	-webkit-transition: all 1.2s ease-in-out 1.0s;
	transition: all 1.2s ease-in-out 0.50s;
}

.delay--2 .js-fadin__image-wrap::before {
	-webkit-transition: all 1.2s ease-in-out 2.0s;
	transition: all 1.2s ease-in-out 1.0s;
}


/* ===========================================================

	error-404

=========================================================== */

.error-404 {
	text-align: center;
	padding-top: 124px;
	padding-bottom: 124px;
	min-height: 40vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.error-404 h2 {
	border: none;
}
.error-404 h2 em {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 4.0rem;
	font-weight: 700;
	font-style: normal;
	color: #000;
	display: block;
	text-transform: uppercase;
}

.error-404 h2::after {
	display: none;
}