/* CSS Document */
@charset "utf-8";

.wrapper{
	padding: 0 2vw;
}


/* header */

header{
	padding: 12vw 0;
	background: url(../images/kv/webp/bg.webp) no-repeat center;
	background-size: cover;
	border-bottom: 10vw solid #BC7C0A;
}
header .wrapper{
	position: relative;
	display: flex;
	flex-wrap: wrap;
	flex-flow: column;
	justify-content: center;
	align-items: center;
}
header .wrapper::before,
header .wrapper::after{
	content: "";
	background-repeat: no-repeat;
	background-size: 100% 100%;
	position: absolute;
}
header .wrapper::before{
	width: 16.5vw;
	height: 3.0vw;
	background-image: url(../images/kv/webp/acc_1.webp);
	bottom: -18.5vw; left: 2vw;
}
header .wrapper::after{
	width: 14.6vw;
	height: 8.0vw;
	background-image: url(../images/kv/webp/acc_2.webp);
	bottom: -16vw; right: 2vw;
}
header h1{
	width: 60%;
}
header h1 img{
	width: 100%;
}
header .fm_logo{
	width: 40%;
	margin-top: 6vw;
	box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.72);
}
header .sns{
	margin-top: 6vw;
	display: flex;
	justify-content: center;
}
header .sns div{
	width: 12%;
	margin: 0 1vw;
}
header .tag{
	margin-top: 6vw;
	display: flex;
	justify-content: center;
}
header .tag div{
	margin: 0 1.5vw;
	font-size: 3.2vw;
}


/* main */

main{
}

h2{
	font-size: 8vw;
	font-weight: 900;
	color: #FEE800;
	letter-spacing: 0.04em;
}
h2 small{
	display: block;
	font-size: 4vw;
	font-weight: 700;
}

.intro{
	padding-top: 8vw;
}
.intro .box{
	display: flex;
}
.intro .icon{
	width: 15%;
}
.intro .inner{
	margin-left: 4vw;
	padding: 3vw;
	background: #A62CFF;
	border-radius: 10px;
	font-size: 3.5vw;
	font-weight: 500;
	text-align: center;
}

.mc{
	padding-top: 10vw;
}
.mc .box{
	margin-top: 6vw;
	overflow-x: auto;
}
.mc .inner{
	width: 128vw;
	display: flex;
}
.mc + .mc .inner{
	width: 84vw;
}
.mc .item{
	width: 40vw;
	margin-right: 4vw;
}
.mc .inner .item:last-child{
	margin-right: 0;
}
.mc .thum{
}
.mc .name{
	margin-top: 2vw;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.04em;
}
.mc .name small{
	display: block;
	font-weight: 500;
}

.table_box{
	padding-top: 8vw;
}
.table_box table{
	width: 100%;
	border: none;
	border-collapse:  collapse; 
	border-spacing: 0;
}
.table_box table tr{
	margin-top: 2vw;
	background: #FFF;
	display: block;
}
.table_box table th,
.table_box table td{
	padding: 2vw;
	font-weight: 700;
	color: #0F0F0F;
	text-align: left;
}
.table_box table th{
	display: block;
}
.table_box table td{
	display: block;
	white-space: pre-wrap;
	position: relative;
}
.table_box table td::before{
	content: "";
	width: calc(100% - 4vw);
	height: 1px;
	background: #CCC;
	position: absolute; top: 0; left: 2vw;
}

.official{
	padding-top: 12vw;
}
.official .box{
	display: flex;
	flex-wrap: wrap;
}
.official .item{
	width: 30vw;
	margin: 6vw 3vw 0 0;
}
.official .box .item:nth-child(3n){
	margin-right: 0;
}
.official .item a{
	display: block;
}
.official .thum{
	display: block;
}
.official .name{
	margin-top: 2vw;
	display: block;
	font-size: 3vw;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.04em;
}

.belt{
	padding-top: 10vw;
	overflow: hidden;
}
.belt .inner{
	content: "";
	width: 1300px;
	height: 55px;
	background: url("../images/belt/webp/image.webp") repeat-x;
	background-size: auto 100%;
	animation: slide 20s linear infinite;
	opacity: 0.15;
}
@keyframes slide{
  0%{
    transform: translate3d(0, 0, 0);
  }
  100%{
    transform: translate3d(-650px, 0, 0);
  }
}

.partner{
	padding-top: 10vw;
	background: #191919;
}
.partner .box{
	padding-top: 3vw;
	display: flex;
	flex-wrap: wrap;
}
.partner .box div{
	width: 46.5vw;
	margin: 3vw 3vw 0 0;
}
.partner .box div:nth-child(even){
	margin-right: 0;
}

.sponsor{
	padding: 10vw 0 12vw 0;
	background: #191919;
}
.sponsor .box{
	padding-top: 3vw;
	display: flex;
	flex-wrap: wrap;
}
.sponsor .box + .box{
	padding-top: 0;
}
.sponsor .box div{
	width: 30vw;
	margin: 3vw 3vw 0 0;
}
.sponsor .box div:nth-child(3n){
	margin-right: 0;
}
.sponsor .box + .box div{
	width: 21.75vw;
}
.sponsor .box + .box div:nth-child(3n){
	margin-right: 3vw;
}
.sponsor .box + .box div:nth-child(4n){
	margin-right: 0;
}
.sponsor .box div.text{
	background: #FFF;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 3.2vw;
	font-weight: 700;
	color: #0F0F0F;
	text-align: center;
}
.sponsor .box div.text a{
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 3.2vw;
	font-weight: 700;
	color: #0F0F0F;
	text-align: center;
}


/* footer */

footer{
	padding-bottom: 4vw;
}

footer .foot{
	padding: 25vw 0;
	background: url(../images/footer/webp/bg.webp) no-repeat 60% top;
	background-size: cover;
}
footer .foot .wrapper{
	display: flex;
	justify-content: center;
	align-items: center;
}
footer .foot .logo{
	width: 30%;
}
footer .foot .logo img{
	width: 100%;
}
footer .bottom{
	margin-top: -5vw;
}
footer .bottom .wrapper{
	display: flex;
	align-items: center;
}
footer .bottom .fm_logo{
	width: 30%;
}
footer .bottom .copy{
	margin-left: 3vw;
	padding-top: 4vw;
	font-size: 3.2vw;
	letter-spacing: 0.04em;
}

.sticker{
	width: 35vw;
	position: fixed; top: 2vw; right: 2vw;
	display: none;
}
