@charset "utf-8";

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

		basic layout

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

body {
	color: #000;
	font-family: 'Open Sans', sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.05em;
}

body * {
	box-sizing: border-box;
}

/*
body {
	color: #000;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.85;
}

.serif {
	font-family: 'Noto Serif JP', serif;
}
*/

img {
	max-width: 100%;
	vertical-align: top;
	image-rendering: -webkit-optimize-contrast;		/* for chrome */
}

a {
	border: none;
	text-decoration: none;
	transition: all .3s;
}

a:hover {
	/*filter: brightness(110%);*/
}

a.pc_not_tel {
	pointer-events: none;
	cursor: default;
}

em {
	font-style: normal;
	font-weight: bold;
}

p#page_top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 100;
}

.pc_none {
	display: none;
}

.sp_none {
	display: inline;
}

img.sp {
	display: none;
}


.marker {
	background-image: linear-gradient(#000, #000);
	background-size: 0 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: 1.5s;
}

.marker.active {
	background-size: 100% 1px;/
}


@media screen and (max-width: 768px){
	.sp_none {
		display: none;
	}
	
	.pc_none {
		display: inline;
	}
	
	img {
		max-width: 100%;
		width: auto;
	}
	
	img.pc {
		display: none;
	}
	
	img.sp {
		display: inline;
	}
	
	a.pc_not_tel {
		pointer-events: auto;
		cursor: pointer;
	}
	
	p#page_top {
		width: 50px;
		right: 10px;
		bottom: 10px;
	}
}



/*------------------ clearfix layout ---------------------*/
.clearfix::after {
	content: "";
	display: block;
	clear: both;
}
/*
*:after {
	content: "";
	display:block;
	clear:both;
}
*/



/*------------------ flex layout ---------------------*/
.flex_space-between {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
}

.flex_center {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
}





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

		header layout

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

header {
	padding: 0 0 450px;
	background-color: #000;
	position: relative;
	color: #fff;
}

header .mv_blur {
	width: 100%;
	height: 100%;
	background-color: #FFF;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	z-index: - 1;
	opacity: 0;
}

header .header_top {
	width: 100%;
	height: 100px;
	padding: 0 40px;
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	top: 0;
	z-index: 1000;
	transition: all 0.3s;
}

header.on .header_top {
	height: 60px;
	background-color: rgba(0,0,0,0.2);
}

header .header_top .logo {
	max-width: 440px;
}


header .header_bg {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
}

header .header_bg div {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	opacity: 0;
}

header .header_bg .default {
	opacity: 1;
	background: url("../img/main_bg.png") center top / 100% auto no-repeat #08021F;
}

header .header_bg .bg01 {
	background: url("../img/main_bg01.jpg") center top / 100% auto no-repeat #000;
}

header .header_bg .bg02 {
	background: url("../img/main_bg02.jpg") center top / 100% auto no-repeat #000;
}

header .header_bg .bg03 {
	background: url("../img/main_bg03.jpg") center top / 100% auto no-repeat #08021F;
}

header .header_bg .bg04 {
	background: url("../img/main_bg04.jpg") center top / 100% auto no-repeat #000;
}


@media screen and (max-width: 768px){
	header {
		padding: 0 0 10vh;
		background: url("../img/sp/main_bg.png") center top / 100% auto no-repeat #08021F;
	}
	
	header .header_top {
		width: 100%;
		height: 60px;
		min-width: inherit;
		max-width: inherit;
		min-height: 60px;
		padding: 2vh 4vw 0;
		display: block;
	}
	
	header.on .header_top {
		height: 60px;
	}
	
	header .header_top .logo {
		max-width: inherit;
	}
	
	header .header_top .logo img {
		width: 80%;
	}
	
	header .header_bg div {
		display: none;
	}
}



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

		header nav layout

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

header .drawer_button {
	display: none;
}

header .drawer_nav_wrapper {
	
}

header ul.drawer_nav {
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-end;
	gap: 0 40px;
	line-height: 1.0;
}

header.on ul.drawer_nav {
	
}

header ul.drawer_nav li {
	position: relative;
}

header ul.drawer_nav li:not(:last-child)::after {
	content: "｜";
	position: absolute;
	right: -27px;
	top: 1px;
}

header ul.drawer_nav li a {
	display: block;
	position: relative;
	color: #fff;
}

header ul.drawer_nav > li a:hover {
	
}

header ul.drawer_nav li a span {
	display: inline-block;
}

header ul.drawer_nav li a span::after {
	content: '';
	width: 100%;
	border-bottom: solid 2px #fff;
	position: absolute;
	bottom: -5px;
	left: 0;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
}

header ul.drawer_nav li a:hover span::after {
	transform: scale(1, 1);
}


@media screen and (max-width: 960px){
	/* .drawer_button */
	header .drawer_button {
		width: 40px;
		height: 40px;
		padding: 0;
		display: block;
		background: rgba(255,255,255,0.2);
		border: none;
		border-radius: 40px;
		letter-spacing: 0.1em;
		cursor: pointer;
		position: fixed;
		right: 2vw;
		top: 1vh;
		z-index: 1001;
		text-align: center;
		outline: none;
	}
	
	header .drawer_button.active {
		background: rgba(0,0,0,0.2);
	}
	
	header .drawer_button.active .drawer_close {
		display: block;
	}
	
	
	/* .drawer_bar */
	header .drawer_bar {
		display: block;
		width: 15px;
		height: 1px;
		margin: 3px auto;
		background: #fff;
		transition: all 0.2s;
		transform-origin: 50% 50%;
		position: relative;
	}
	
	header .drawer_button.active .drawer_bar {
		width: 15px;
		background: #fff;
	}
	
	header .drawer_button.active .drawer_bar1 {
		top: 4px;
		transform: rotate(45deg);
	}
	
	header .drawer_button.active .drawer_bar2 {
		opacity: 0;
	}
	
	header .drawer_button.active .drawer_bar3 {
		top: -4px;
		transform: rotate(-45deg);
	}
	
	
	/* .drawer_text */
	header .drawer_text {
		/*display: none;*/
		text-align: center;
		font-size: 10px;
		color: #fff;
		letter-spacing: -0.5px;
	}
	
	
	/* .drawer_nav_wrapper */
	header .drawer_nav_wrapper {
		width: 92%;
		height: 100%;
		/*
		width: 100%;
		height: 100%;
		height: auto;
		*/
		margin: 0;
		padding: 0;
		
		box-sizing: border-box;
		background-color: #EEEEEE;
		display: block;
		transform: none;
		
		transition: all 0.2s;
		transform: translate(110%);
		/*transform: translateY(-110%);*/
		position: fixed;
		top: 0;
		right: 0;
		z-index: 1000;
		/*overflow-y: scroll;*/
		-webkit-overflow-scrolling: touch;
	}
	
	header .drawer_nav_wrapper.open {
		transform: translate(0);
	}
	
	
	/* ul.drawer_nav */
	header ul.drawer_nav {
		margin: 10vh 0 0;
		padding: 0;
		background: #eee;
		display: flex;
		flex-wrap: wrap;
		gap: 4vh 0
	}
	
	header ul.drawer_nav li {
		width: 100%;
		margin: 0;
		line-height: 1.4;
	}
	
	header ul.drawer_nav li a {
		width: auto;
		margin: 0;
		padding: 0;
		border-radius: 0;
		border: none;
		display: block;
		text-align: center;
		color: #000;
		font-size: 5vw;
		font-weight: 700;
	}
	
	header ul.drawer_nav li a:hover {
		text-decoration: none;
	}
	
	header ul.drawer_nav li a span::after {
		display: none;
	}
}



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

		.header_main layout

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

header .header_main {
	max-width: 1420px;
	margin: 0 auto;
	padding: 160px 40px 0;
	position: relative;
}

header .header_main nav nav {
	margin: 0 auto 120px;
}

header .header_main nav ul {
	max-width: 700px;
}

header .header_main nav ul li {
	margin: 0 0 20px;
}

header .header_main nav ul li a {
	position: relative;
	display: block;
	color: #fff;
}

header .header_main nav ul li.nav_01 a {
	width: 625px;
	height: 78px;
}

header .header_main nav ul li.nav_02 a {
	width: 672px;
	height: 79px;
}

header .header_main nav ul li.nav_03 a {
	width: 459px;
	height: 79px;
}

header .header_main nav ul li.nav_04 a {
	width: 598px;
	height: 79px;
}

header .header_main nav ul li a img {
	width: 100%;
	position: absolute;
	left: 0;
	top: 0;
	transition: all .3s;
}



header .header_main nav ul li a .on {
	opacity: 0;
}

header .header_main nav ul li a:hover .on {
	opacity: 1;
}

header .header_main nav ul li a:hover .off {
	opacity: 0;
}

header .header_main nav ul li span {
	margin: 20px 0 0;
	padding: 0 0 0 50px;
	display: block;
	position: relative;
}

header .header_main nav ul li span::before {
	content: "";
	width: 34px;
	height: 1px;
	background-color: #fff;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}


/*
header .header_main dl.news {
	max-width: 490px;
	position: absolute;
	right: 120px;
	top: 600px;
	z-index: 101;
	font-weight: 700;
}
*/

header .header_main dl.news {
	max-width: 490px;
	margin: 0 0 0 auto;
	position: relative;
	z-index: 101;
	transform: translate(-20px, -130px);
	font-weight: 700;
}

header .header_main dl.news dt {
	margin: 0 0 2px;
}

header .header_main dl.news dd a {
	display: block;
}

header .header_main dl.news dd a:hover {
	filter: brightness(80%);
	/*transform: translateX(10px);*/
}

header .header_main dl.news dd a img {
	box-shadow: 0 13px 26px rgba(0,0,0,0.18);
}


header .header_main dl.news dd video {
	width: 100%;
}

header .header_main dl.news dd span {
	margin: 10px 0 0;
	display: block;
}


header .header_main .main_movie {
	max-width: 1180px;
	margin: 0 auto;
	/*padding: 200px 0 0;*/
	padding: 60px 0 0;
	text-align: center;
}

header .header_main .main_movie video {
	width: 100%;
	background: url("../img/poster01.jpg") no-repeat;
	background-attachment: fixed;
	background-position: center center;
	background-size: cover;
}

header .header_main .main_movie video:hover {
	cursor: pointer;
}

header .header_main .main_movie span {
	margin: 25px auto 0;
	display: block;
	font-size: 24px;
	font-weight: 700;
}

/*
@media screen and (max-width: 1350px){
	header .header_main dl.news {
		right: 40px;
	}
}

@media screen and (max-width: 1260px){
	header .header_main dl.news {
		right: 40px;
	}
}
*/


@media screen and (max-width: 1070px){
	header .header_main dl.news {
		transform: translate(-20px, 0);
	}
}


@media screen and (max-width: 768px){
	header .header_main {
		max-width: inherit;
		margin: 0;
		padding: 20vh 5vw 8vh;
		position: relative;
	}
	
	header .header_main nav {
		margin: 0 auto 8vh;
	}
	
	header .header_main nav ul {
		max-width: inherit;
	}
	
	header .header_main nav ul li {
		margin: 0 0 4vh;
	}
	
	header .header_main nav ul li a {
		width: auto !important;
		height: auto !important;
		color: #fff;
	}
	
	header .header_main nav ul li a:hover .on {
		opacity: 0;
	}
	
	header .header_main nav ul li a:hover .off {
		opacity: 1;
	}
	
	header .header_main nav ul li a img {
		position: static;
	}
	
	header .header_main nav ul li.nav_01 a img {
		width: 65%;
	}
	
	header .header_main nav ul li.nav_02 a img {
		width: 75%;
	}
	
	header .header_main nav ul li.nav_03 a img {
		width: 47%;
	}
	
	header .header_main nav ul li.nav_04 a img {
		width: 62%;
	}
	
	header .header_main nav ul li a .on {
		display: none;
	}
	
	header .header_main nav ul li span {
		margin: 1vh 0 0;
		padding: 0 0 0 8vw;
	}
	
	header .header_main nav ul li span::before {
		width: 6vw;
	}
	
	
	header .header_main dl.news {
		max-width: inherit;
		margin: 0 auto;
		position: static;
		transform: translateX(0);
	}
	
	header .header_main dl.news dd a:hover {
		filter: brightness(100%);
		/*transform: translateX(0);*/
	}
	
	
	header .header_main .main_movie {
		max-width: inherit;
		padding: 5vh 0 0;
	}
	
	header .header_main .main_movie span {
		margin: 4vh auto 0;
		font-size: 4.5vw;
	}
}


/* Scroll */

header .arrowWrap {
	position: relative;
	z-index: 100;
	transform: translateY(-50px);
	margin: -180px 0 0;    /*news表示時*/
	/*margin: 160px 0 0;*/	/* news非表示時 */
}

header .arrowInner p {
	padding: 0 0 0 20px;
	color: #fff;
	font-size: 11px;
	font-weight: 400;
	/*transform: rotate(90deg);*/
}

header .arrow {
	width: 1px;
	height: 160px;
	background-color: #fff;
	position: absolute;
	left: 8px;
	top: 0;
	overflow: hidden;
}

header .arrow::before {
	content: '';
	width: 1px;
	height: 80px;
	margin: 0 auto 0;
	background-color: #000;
	position: absolute;
	top: -160px;
	left: 0;
	animation: arrow 2.5s ease 0s infinite normal;
}

@keyframes arrow {
	0% {
		transform: translate3d(0, 0, 0);
	}
	
	60% {
		transform: translate3d(0, 240px, 0);
	}
	
	100% {
		transform: translate3d(0, 240px, 0);
	}
}


@media screen and (max-width: 1070px){
	header .arrowWrap {
		margin: -80px 0 0;
	}
}


@media screen and (max-width: 768px){
	header .arrowWrap {
		display: none;
	}
}



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

		.header_main .the_8th layout

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

.header_main .the_8th {
	width: calc(100vw - 10px);
	max-height: 1080px;
	margin: 30px calc(50% - 50vw) 0;
	/*padding: 60px 0 150px;*/
	padding: 60px 0;
	background: url("../img/the_8th_bg.jpg") center top / 1920px auto no-repeat;
	box-sizing: border-box;
	overflow: hidden;
	box-shadow: 5px 0 0 20px rgba(0,0,0,0.19) inset;
}

.header_main .the_8th h2 {
	margin: 0 auto 90px;
	text-align: center;
}

.header_main .the_8th h2 img {
	width: min(1180px, 83%);
}

.header_main .the_8th .box {
	width: auto;
	max-width: 1420px;
	margin: 0 auto 50px;
	padding: 0 0 0 20px;
	display: flex;
	justify-content: space-between;
	transform: translateX(5px);
}

.header_main .the_8th .box dl.txt {
	width: 38%;
}

.header_main .the_8th .box dl.txt dt {
	width: 92%;
	margin: 0 0 20px;
}
.header_main .the_8th .box dl.txt dd.txt01 {
	margin: 0 0 20px;
}

.header_main .the_8th .box dl.txt dd:last-of-type {
	width: 68.5%;
	margin: 20px 0 0;
}

.header_main .the_8th .box p.img {
	width: 57%;
    margin-top: 25px;
}

.header_main .the_8th p.btn {
	width: auto;
	max-width: 1420px;
	margin: 0 auto;
	padding: 0 20px 0 40px;
}

.header_main .the_8th p.btn a {
	padding: 20px 25px 15px;
	border: solid 1px #fff;
	border-radius: 6px;
	display: block;
	position: relative;
	text-align: center;
	color: #fff;
	font-size: 18px;
}

.header_main .the_8th p.btn a::before {
	content: "";
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(255,255,255,0) 0%,rgba(255,255,255,0.3) 100%);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 2;
	transition: all 0.3s;
	opacity: 0;
}

.header_main .the_8th p.btn a::after {
	content: "";
	width: 26px;
	height: 21px;
	background: url("../img/icon_arrow01.svg") left top / 100% auto no-repeat;
	position: absolute;
	left: calc(50% + 180px);
	top: 35%;
	transition: all 0.3s;
}

.header_main .the_8th p.btn a:hover::before {
	opacity: 1;
}

.header_main .the_8th p.btn a:hover::after {
	left: calc(50% + 190px);
}

.header_main .the_8th p.btn a img {
	margin-right: 20px;
	vertical-align: baseline;
}


@media screen and (min-width: 1921px){
	.header_main .the_8th {
		background: url("../img/the_8th_bg.jpg") center center / cover no-repeat;
	}
}


@media screen and (max-width: 1481px){
	.header_main .the_8th p.btn {
		padding: 0 20px 0 25px;
	}
}


@media screen and (max-width: 768px){
	.header_main .the_8th {
		width: auto;
		max-width: inherit;
		min-height: inherit;
		max-height: 100%;
		margin: 8vh -5vw 0;
		/*padding: 30px 0 50px;*/
		padding: 30px 0;
		background: url("../img/sp/the_8th_bg.jpg") center top / 100% auto no-repeat;
		box-shadow: 0 0 0 10px rgba(0,0,0,0.38) inset;
	}
	
	.header_main .the_8th h2 {
		margin: 0 auto 6vh;
	}
	
	.header_main .the_8th h2 img {
		width: 80%;
	}
	
	.header_main .the_8th .box {
		max-width: inherit;
		margin: 0 0 5vh;
		padding: 0 20px;
		display: block;
		transform: translateX(0);
	}
	
	.header_main .the_8th .box dl.txt {
		width: auto;
		margin: 0 0 3vh;
	}
	
	.header_main .the_8th .box dl.txt dt {
		width: 85%;
		margin: 0 0 4vh;
	}
	
	.header_main .the_8th .box dl.txt dd:last-of-type {
		width: 60%;
		margin: 2vh 0 0;
	}
	
	.header_main .the_8th .box p.img {
		width: auto;
	}
	
	.header_main .the_8th p.btn {
		max-width: inherit;
		margin: 0 auto;
		padding: 0 20px;
	}
	
	.header_main .the_8th p.btn a {
		padding: 3vh 4vw 2vh;
		display: block;
		position: relative;
		text-align: left;
		color: #fff;
		font-size: 3.8vw;
	}
	
	.header_main .the_8th p.btn a::before {
		display: none;
	}
	
	.header_main .the_8th p.btn a::after {
		content: "";
		width: 4vw;
		height: 3vh;
		background: url("../img/icon_arrow01.svg") left top / 100% auto no-repeat;
		position: absolute;
		left: auto;
		right: 4vw;
		top: 42%;
		transition: all 0.3s;
	}
	
	.header_main .the_8th p.btn a:hover::after {
		left: auto;
	}
	
	.header_main .the_8th p.btn a img {
		margin-right: 5vw;
	}
}





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

		#contents layout

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

#contents {

}

#contents section .inner,
#contents div .inner {
	max-width: 1420px;
	margin: 0 auto;
	padding: 0 40px;
	position: relative;
}


@media screen and (max-width: 768px){
	#contents section .inner,
	#contents div .inner {
		max-width: inherit;
		margin: 0;
		padding: 0 5vw;
	}
}



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

		#contents .past layout

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

#contents .past {
	margin: 0;
	padding: 0 0 180px;
	background-color: #eee;
}
/*
#winners_6th_01 #contents .past,
#winners_6th_02 #contents .past,
#winners_7th_01 #contents .past,
#winners_7th_02 #contents .past {
	padding: 180px 0;
}
*/
#contents .past .inner h2,
.past_winners #contents .past .inner h5 {
	max-width: 70%;
	margin: -60px 0 80px;
	padding: 60px 0 0;
}

#contents .past .inner h2 span,
.past_winners #contents .past .inner h5 span {
	margin: 20px 0 0;
	padding: 0 0 0 50px;
	display: block;
	position: relative;
}

#contents .past .inner h2 span::before,
.past_winners #contents .past .inner h5 span::before {
	content: "";
	width: 34px;
	height: 1px;
	background-color: #000;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.past_winners #contents .past .inner h5 {
	display: none;
}
#contents .past .inner .note{
	max-width: 1180px;
	margin: 20px auto 0;
	text-align: right;
}
#contents .past .inner ul {
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}

#contents .past .inner ul li {
	width: 47%;
	margin: 0 0 30px;
}

#contents .past .inner ul li a {
	display: flex;
	align-items: center;
	position: relative;
	color: #000;
}
/*
#contents .past .inner ul li:nth-child(even) a {
	padding: 0 0 0 50px;
}
*/
#contents .past .inner ul li a::after {
	content: "\f061";
	/*content: "\f105";*/
	font-family: "Font Awesome 5 Free";
	font-weight: 600;
	color: #333;
	position: absolute;
	right: 20px;
	bottom: 0;
	opacity: 0;
	transition: all 0.3s;
}

#contents .past .inner ul li a:hover {
	filter: brightness(130%);
}

#contents .past .inner ul li a:hover::after {
	right: 10px;
	opacity: 1;
}

#contents .past .inner ul li a p.img {
	width: 42.373%;
	max-width: 250px;
	text-align: center;
	flex-shrink: 0;
}

#contents .past .inner ul li a p.img img {
	width: 96%;
}

#contents .past .inner ul li a dl.txt {
	margin: 0 0 0 25px;
}

#contents .past .inner ul li a dl.txt dd.number {
	margin: 0 0 10px;
	padding: 0 0 3px;
	border-bottom: solid 2px #fff;
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
}

#contents .past .inner ul li a dl.txt dt {
	margin: 0 0 10px;
	font-size: 36px;
	font-weight: 400;
}

#contents .past .inner ul li a dl.txt dt span {
	display: inline-block;
	position: relative;
}

#contents .past .inner ul li a dl.txt dt span::after {
	content: '';
	width: 100%;
	border-bottom: solid 2px #000;
	position: absolute;
	bottom: 5px;
	left: 0;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
}

#contents .past .inner ul li a:hover dl.txt dt span::after {
	transform: scale(1, 1);
}

#contents .past .inner ul li a dl.txt dd.post {
	letter-spacing: 0;
}


@media screen and (max-width: 959px){
	#contents .past .inner ul li a {
		align-items: flex-start;
	}
	
	#contents .past .inner ul li a dl.txt dt {
		font-size: 3.2vw;
	}
	
	#contents .past .inner ul li a dl.txt dd {
		font-size: 1.7vw;
	}
}

@media screen and (max-width: 768px){
	#contents .past {
		margin: 0;
		padding: 0 0 10vh;
	}
	/*
	#winners_6th_01 #contents .past,
	#winners_6th_02 #contents .past,
	#winners_7th_01 #contents .past,
	#winners_7th_02 #contents .past {
		padding: 10vh 0;
	}
	*/
	#contents .past .inner h2,
	.past_winners #contents .past .inner h5 {
		max-width: inherit;
		margin: -60px 0 4vh;
		padding: 60px 0 0;
	}
	
	#contents .past .inner h2 img,
	.past_winners #contents .past .inner h5 img {
		width: 75%;
	}
	
	#contents .past .inner h2 span,
	.past_winners #contents .past .inner h5 span {
		margin: 1vh 0 0;
		padding: 0 0 0 8vw;
	}
	
	#contents .past .inner h2 span::before,
	.past_winners #contents .past .inner h5 span::before {
		width: 6vw;
	}
	
	#contents .past .inner ul {
		max-width: inherit;
		align-items: flex-start;
	}
	
	#contents .past .inner ul li {
		width: 45%;
		margin: 0 0 3vh;
	}
	
	#contents .past .inner ul li a {
		display: block;
	}
	
	#contents .past .inner ul li:nth-child(even) a {
		padding: 0;
	}
	
	#contents .past .inner ul li a::after {
		display: none;
	}
	
	#contents .past .inner ul li a p.img {
		width: auto;
		max-width: inherit;
		display: flex;
		align-items: center;
	}
	
	#contents .past .inner ul li a p.img img {
		width: auto;
	}
	
	#contents .past .inner ul li a dl.txt {
		margin: 2vh 0 0;
	}
	
	#contents .past .inner ul li a dl.txt dd.number {
		margin: 0 0 1vh;
		font-size: 3vw;
	}
	
	#contents .past .inner ul li a dl.txt dt {
		margin: 0 0 1vh;
		font-size: 7vw;
	}
	
	#contents .past .inner ul li a dl.txt dt span::after {
		display: none;
	}
	
	#contents .past .inner ul li a dl.txt dd {
		font-size: 16px;
	}
	
	#contents .past .inner ul li a dl.txt dd.post {
		line-height: 1.5;
	}
}





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

		footer layout

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

footer {
	padding: 150px 0 80px;
	background: linear-gradient(to bottom, #001d59 0%,#000000 100%);
	color: #fff;
}

footer a {
	color: #fff;
}

@media screen and (max-width: 768px){
	footer {
		padding: 10vh 0 5vh;
	}
}



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

		footer .archives layout

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

footer .archives .inner {
	max-width: 1420px;
	margin: 0 auto;
	padding: 0 40px;
	position: relative;
}

footer .archives .inner h2 {
	max-width: 70%;
	margin: -60px 0 45px;
	padding: 60px 0 0;
}

footer .archives .inner h2 span {
	margin: 20px 0 0;
	padding: 0 0 0 50px;
	display: block;
	position: relative;
}

footer .archives .inner span::before {
	content: "";
	width: 34px;
	height: 1px;
	background-color: #fff;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

footer .archives .inner ul {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 40px;
}

footer .archives .inner ul li {
	margin: 0 0 20px;
	font-size: 18px;
}

footer .archives .inner ul li a {
	padding: 20px 25px 15px;
	border: solid 1px #fff;
	border-radius: 6px;
	display: block;
	position: relative;
}

footer .archives .inner ul li a::before {
	content: "";
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(255,255,255,0) 0%,rgba(255,255,255,0.3) 100%);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 2;
	transition: all 0.3s;
	opacity: 0;
}

footer .archives .inner ul li a::after {
	content: "";
	width: 26px;
	height: 21px;
	background: url("../img/icon_arrow01.svg") left top / 100% auto no-repeat;
	position: absolute;
	right: 20px;
	top: 35%;
	transition: all 0.3s;
}

footer .archives .inner ul li a:hover::before {
	opacity: 1;
}

footer .archives .inner ul li a:hover::after {
	right: 15px;
}

footer .archives .inner ul li a img {
	margin-right: 20px;
	vertical-align: baseline;
}


@media screen and (max-width: 768px){
	footer .archives .inner {
		max-width: inherit;
		margin: 0;
		padding: 0 5vw;
	}
	
	footer .archives .inner h2 {
		max-width: inherit;
		margin: -60px 0 4vh;
		padding: 60px 0 0;
	}
	
	footer .archives .inner h2 img {
		width: 47%;
	}
	
	footer .archives .inner h2 span {
		margin: 1vh 0 0;
		padding: 0 0 0 8vw;
	}
	
	footer .archives .inner ul {
		max-width: inherit;
		padding: 0;
	}
	
	footer .archives .inner ul li {
		margin: 0 0 2vh;
		font-size: 3.7vw;
	}
	
	footer .archives .inner ul li a {
		padding: 3vh 4vw 2vh;
		display: block;
		position: relative;
		color: #fff;
	}
	
	footer .archives .inner ul li a::before {
		display: none;
	}
	
	footer .archives .inner ul li a::after {
		content: "";
		width: 4vw;
		height: 3vh;
		background: url("../img/icon_arrow01.svg") left top / 100% auto no-repeat;
		position: absolute;
		right: 4vw;
		top: 42%;
		transition: all 0.3s;
	}
	
	footer .archives .inner ul li a:hover::after {
		right: 4vw;
	}
	
	footer .archives .inner ul li a img {
		margin-right: 5vw;
	}
}


footer .footer_contents {
	text-align: center;
	font-size: 14px;
}

#top footer .footer_contents {
	margin: 90px 0 0;
}

footer .footer_contents p.footer_logo02 {
	margin: 60px 0 40px;
}

footer .footer_contents p.link {
	margin: 40px 0;
}

footer .footer_contents p.link a:hover {
	text-decoration: underline;
}


@media screen and (max-width: 768px){
	footer .footer_contents {
		margin: 0 5vw;
		text-align: center;
		font-size: 3.2vw;
	}
	
	#top footer .footer_contents {
		margin: 10vh 5vw 0;
	}
	
	footer .footer_contents p.footer_logo02 {
		margin: 6vh 0 4vh;
	}
	
	footer .footer_contents p.link {
		margin: 4vh 0;
	}
}
