@charset "utf-8";

/*================================================================
# 全体スタイル
================================================================ */
.section {
	padding: 32px 0;
}

.bg02 {
	background: url(../img/pat01.png) repeat center top / auto 40px;
}

.bg03 {
	background: #fff;
}

.section .title {
	text-align: center;
}

.section .sub-title {
	margin: 24px 0 0;
}

.section .sub-title.top {
	margin: 0;
}

.page-contents h3 {
	margin: 24px auto 0;
	display: flex;
	justify-content: center;
}

.page-contents h3 span {
	padding: 0 100px;
	border-radius: 9999px;
	background-color: var(--black);
	display: inline-block;
	font-size: 28px;
	font-weight: 500;
	color: var(--white);
	text-align: center;
	letter-spacing: 0.2em;
}

.section .text {
	margin: 16px 0 0;
	position: relative;
	font-size: 18px;
	font-weight: 600;
	text-align: center;
	letter-spacing: -0.03em;
}

.voting-period {
	margin: 16px auto 0;
	text-align: center;
}

.btn01 {
	width: 100%;
	padding: 8px;
	border-radius: 9999px;
	background: var(--black);
	display: block;
	color: var(--white);
	text-align: center;
	letter-spacing: 0.05em;
}

.event-cta {
	margin: 32px 0 0;
	padding: 8px;
	border-radius: 9999px;
	background-color: #c1272d;
}

.event-cta .btn {
	padding: 12px;
	border: 2px solid #fff;
	border-radius: 9999px;
	background-color: #ed1c24;
	display: block;
	justify-content: center;
	align-items: center;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	text-align: center;
	transition: 0.3s;
}

.event-cta.close {
	background-color: var(--black);
}

.event-cta.close .btn {
	pointer-events: none;
	background-color: var(--black);
}

/*================================================================
# header
================================================================ */
header {
	padding: 16px 6vw;
}

header .logo {
	width: 64px;
}

/*================================================================
# mv
================================================================ */
.mv {
	width: 100%;
	max-width: 1170px;
	margin: -8px auto 0;
	padding: 0 0 24px;
	position: relative;
}

.mv_img {
	width: 100%;
	margin: 0 auto;
	text-align: center;
}

.mv_img a {
	display: block;
}

.mv h3 {
	margin: 0 auto;
}

.mv .section05_img01 {
	width: calc(100% - 6vw);
	margin: 16px auto 0;
	text-align: center;
}

/*================================================================
# 最終決選投票
================================================================ */
.final-vote {
	margin: 0;
	padding: 0;
}

.final-vote .final-vote__head {
	padding: 32px 0;
	background: url(../img/fan-event_title.png) repeat-x center top / auto 100%;
	font-size: 40px;
	font-weight: 900;
	line-height: 1.2;
	color: var(--white);
	text-align: center;
}

.final-vote .final-vote__sub-title {
	font-size: 40px;
	font-weight: 900;
	line-height: 40px;
	color: #fff;
}

.final-vote .final-vote__title {
	margin: 10px 0 0;
	font-size: 56px;
	font-weight: 900;
	line-height: 56px;
	color: #fff200;
	text-shadow: 0 4px 0 rgba(0, 0, 0, 0.25);
	letter-spacing: 0;
}

.final-vote .final-vote__lead {
	margin: 32px 0 0;
	text-align: center;
}

.final-vote .final-vote__list {
	padding: 40px 0;
}

.final-vote .final-vote__item {
	display: grid;
	align-items: flex-start;
	grid-template-columns: 1fr;
	gap: 24px;
}

.final-vote .final-vote__item+.final-vote__item {
	margin: 56px 0 0;
}

.final-vote .final-vote__item--right {
	grid-template-columns: 1fr;
}

.final-vote .final-vote__item--last {
	margin-top: 44px;
}

.final-vote .final-vote__media {
	margin: 0 auto;
	padding: 0 24px;
	order: 2;
}

.final-vote .final-vote__media img {
	width: 100%;
	height: auto;
	display: block;
}

.final-vote .final-vote__body {
	padding: 0;
	order: 1;
}

.final-vote .final-vote__label {
	margin: 0;
}

.final-vote .final-vote__spec {
	margin: 16px 0 0;
	padding: 0 24px;
}

.final-vote .final-vote__spec li {
	display: flex;
	align-items: center;
	font-size: 0;
	line-height: 1.45;
}

.final-vote .final-vote__spec li+li {
	margin-top: 8px;
}

.final-vote .final-vote__name {
	font-size: 18px;
	font-weight: 800;
	white-space: nowrap;
	letter-spacing: -0.03em;
}

.final-vote .final-vote__name::before {
	color: #e40000;
}

.final-vote .final-vote__name .red {
	color: #e40000;
}

.final-vote .final-vote__dots {
	margin: 0 6px;
	border-bottom: 3px dotted var(--black);
	flex: 1;
}

.page-contents .final-vote .final-vote__value {
	font-size: 18px;
	font-weight: 800;
	color: #e40000;
	white-space: nowrap;
	letter-spacing: -0.03em;
}

.final-vote .final-vote__cta {
	background: var(--white);
	padding: 0 0 40px;
}

.final-vote .final-vote__cta-copy {
	padding: 32px 0;
	background: url(../img/final-vote_title.png) repeat-x center top / auto 100%;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--white);
	text-align: center;
	letter-spacing: -0.05em;
}

.final-vote .final-vote__cta-copy span {
	margin: 0 -4px;
	font-size: 32px;
	line-height: 1;
}

.final-vote .final-vote__period {
	margin: 40px auto 0;
	text-align: center;
}

.final-vote .final-vote__datetime {
	margin: 8px 0 0;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.4;
	color: #ff0000;
	text-align: center;
	letter-spacing: -0.05em;
}

.final-vote .final-vote__datetime small {
	font-size: 24px;
	font-weight: 700;
}

.final-vote .event-cta {
	margin: 16px 0 0;
}

/*================================================================
# intro
================================================================ */
.intro-box {
	margin: 16px auto 0;
	padding: 31px 16px;
	border-radius: 24px;
	background: #c72328 url("../img/intro_back_sp.png") no-repeat center top / 100% auto;
	text-align: center;
}

.intro__title {
	line-height: 1;
}

.intro-box .intro__sub-title {
	margin: 12px 0 0;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--yellow);
	letter-spacing: -0.05em;
}

.intro-box .intro__text {
	margin: 8px 0 0;
	font-size: 18px;
	color: var(--white);
	letter-spacing: -0.05em;
}

/*================================================================
# about
================================================================ */
.about {
	background: #f6150d url("../img/about_back.png") no-repeat center top / cover;
}

.about .container {
	color: var(--white);
}

.about .container+.container {
	margin: 40px 0 0;
}

.about .text-area {
	flex: 0 0 auto;
}

.about .about__copy {
	font-size: 18px;
	font-weight: 700;
	text-align: center;
}

.about .about__info {
	margin: 16px 0 0;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}

.about .btn-wrap {
	margin: 16px 0 0;
}

.about__info .img-area {
	width: 140%;
	margin: 0 -20%;
}

.about__info .img-area figcaption {
	width: 100%;
	margin: 0;
	padding: 0 14%;
	display: block;
	font-size: 14px;
	font-weight: 500;
	text-align: right;
}

.about__info .text-area {
	margin: 16px 0 0;
}

.about .note {
	display: none;
}

.about__hero {
	margin: 40px 0 0;
}

.about__hero .img-area {
	margin: 0 -5% 0 20%;
}

.about__hero .text-area {
	margin: -16px 0 0;
}

.about__hero .img-area02 {
	width: 60%;
	margin: 24px auto 0;
}

/*================================================================
# fan-event
================================================================ */
.fan-event {
	padding: 0 0 24px;
}

.fan-event .title {
	padding: 24px 16px;
	background: url(../img/fan-event_title.png) repeat-x center top / cover;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--white);
	text-align: center;
	letter-spacing: -0.05em;
}

.fan-event .title span {
	margin: -4px 0 0;
	display: inline-block;
	font-size: 40px;
	transform: translate(0, 4px);
}

.fan-event .row {
	margin: 24px 0 0;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.fan-event .row .col {
	width: calc(100% / 2 - 10px);
	text-align: center;
}

/*================================================================
# guest
================================================================ */
.guest__title01 {
	margin: auto;
	text-align: center;
}

.guest .row {
	margin: 24px auto 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px 16px;
}

.guest .btn-area {
	margin: 8px auto 0;
}

.guest .x-link {
	margin: 0;
	padding: 10px;
	border-radius: 8px;
	background: #000;
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	transition: 0.25s ease;
}

.guest .x-link:hover {
	box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
	transform: translateY(-3px);
}

.guest .x-link-icon {
	width: 24px;
	position: relative;
}

.guest .city-grid {
	margin: 8px 0 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
}

.guest .city-button {
	padding: 8px;
	border: 1px solid #ff4b4b;
	border-radius: 8px;
	background: linear-gradient(to bottom, #ff1a1a, #930000);
	box-shadow: 0 1px 0 rgba(120, 0, 0, 0.8);
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.1;
	color: #fff;
	text-align: center;
	text-decoration: none;
	transition: 0.25s ease;
}

.guest .city-button:hover {
	filter: brightness(1.05);
	box-shadow: 0 2px 8px rgba(200, 0, 0, 0.45);
	transform: translateY(-1px);
}

.guest .city-button:active {
	box-shadow: 0 2px 0 rgba(120, 0, 0, 0.8);
	transform: translateY(2px);
}

.guest .no-link {
	pointer-events: none;
}

.guest .city-button.gray {
	pointer-events: none;
	border: 1px solid #d0d0d0;
	background: linear-gradient(to bottom, #c8c8c8, #666666);
	box-shadow: 0 1px 0 rgba(80, 80, 80, 0.6);
	color: #f5f5f5;
}

/*================================================================
# event-content
================================================================ */
.event-content .text01 {
	margin: 16px 0 0;
	font-size: 16px;
	font-weight: 600;
	text-align: center;
	letter-spacing: 0;
}

.event-content .img {
	width: 100%;
	margin: 24px auto 0;
	text-align: center;
}

.event-content .sp-small {
	width: 64%;
	margin: 24px auto 0;
}

/*================================================================
# date-venue
================================================================ */
.date-venue .event-city {
	margin: 32px auto 0;
}

.date-venue .event-city__name {
	margin: 0 auto;
	border-bottom: 3px solid #000;
	background-color: #ffffff;
	position: relative;
	font-size: 40px;
	font-weight: 800;
	text-align: center;
}

.date-venue .event-city__name::before {
	border-width: 24px 14px 0 14px;
	border-style: solid;
	border-color: #000000 transparent transparent;
	position: absolute;
	content: "";
	bottom: 0;
	left: 50%;
	translate: -50% 100%;
}

.date-venue .event-city__name::after {
	border-width: 17px 10px 0 10px;
	border-style: solid;
	border-color: #ffffff transparent transparent;
	position: absolute;
	content: "";
	bottom: 0;
	left: 50%;
	translate: -50% 100%;
}

.date-venue h3 {
	margin: 40px 0 0;
}

.date-venue .event-city__datetime,
.date-venue .event-city__place {
	margin: 8px 0 0;
	font-size: 37px;
	font-weight: 700;
	line-height: 1.4;
	color: #ff0000;
	text-align: center;
	letter-spacing: -0.05em;
}

.date-venue .event-city__datetime small {
	font-size: 30px;
}

.event-city__note {
	margin: 4px 0 0;
	font-size: 24px;
	font-weight: 600;
	text-align: center;
}

/*================================================================
# 応募要項
================================================================ */
.application-guidelines .entry-block {
	margin: 40px 0 0;
}

.application-guidelines .entry-title {
	padding: 10px;
	background-color: #c1272d;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	text-align: center;
	letter-spacing: 0.3em;
}

.application-guidelines .entry-body {
	padding: 16px 4px 8px;
}

.application-guidelines .entry-lead {
	margin: 0 0 8px;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.4;
	color: #ff0000;
	letter-spacing: -0.03em;
}

.application-guidelines .entry-note {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
}

.application-guidelines .entry-note strong {
	font-size: 20px;
	font-weight: 800;
}

.application-guidelines .entry-note-list {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
}

.application-guidelines .entry-note-list li {
	margin: 4px 0 0;
	padding-left: 1.2em;
	position: relative;
	font-size: 16px;
	font-weight: 600;
}

.application-guidelines .entry-note-list li::before {
	position: absolute;
	content: "※";
	top: 0.1em;
	left: 0;
}

.application-guidelines .entry-note-list .red {
	color: #ff0000;
}

/*================================================================
# kisekae
================================================================ */
.kisekae {
	padding: 0 0 24px;
}

.kisekae .title {
	padding: 24px 16px;
	background: url(../img/kisekae_title.png) repeat-x center top / cover;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--white);
	text-align: center;
	letter-spacing: -0.05em;
}

.kisekae .title span {
	margin: -4px 0 0;
	display: inline-block;
	font-size: 40px;
	transform: translate(0, 4px);
}

.kisekae .youtube {
	margin: 16px auto 0;
}

.kisekae .text {
	margin: 16px 0 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-end;
}

.kisekae .text p {
	width: 100%;
	margin: 0 0 16px;
}

.kisekae .kisekae_illust01 {
	width: calc(227px / 2.2);
	margin: 0;
}

.kisekae .kisekae_illust02 {
	width: calc(476px / 2.2);
}

.kisekae .step {
	margin: 24px 0 0;
	display: flex;
	justify-content: center;
	gap: 10px;
}

.kisekae .kisekae_text01 {
	margin: 24px auto 0;
	text-align: center;
}

.kisekae .kisekae_text02 {
	width: 80%;
	margin: 40px auto 0;
	position: relative;
	text-align: center;
}

.kisekae .gallery {
	max-width: 1440px;
	margin: 32px auto 0;
	padding: 0 10px;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
}

.kisekae .gallery img {
	width: 100%;
}

.kisekae .gallery .note {
	width: 100%;
	margin: -8px 0 0;
	padding: 0;
	font-size: 14px;
	font-weight: 500;
	text-align: right;
	grid-column: 1 / -1;
}

/*================================================================
# download
================================================================ */
.download {
	margin: 24px 0 0;
	padding: 0 0 32px;
}

.download .download_img01 {
	text-align: center;
}

.download .download_title02 {
	margin: 16px 0 0;
}

.download .title {
	margin: 0;
	display: block;
}

.download .row {
	margin: 24px 0 0;
}

.download .row .col {
	margin: 24px auto 0;
	text-align: center;
}

.download .app {
	width: 160px;
	margin: auto;
	text-align: center;
}

.download .btn-area {
	margin: 10px 0 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

.download .note {
	margin: 24px 0 0;
	font-size: 13px;
	font-weight: 600;
}

/*================================================================
# privilege
================================================================ */
.privilege .title02 {
	margin: 24px 0 0;
}

.privilege .text {
	position: relative;
}

.privilege_img01 {
	margin: 8px 0 0;
	text-align: center;
}

.privilege_title02 {
	margin: 24px 0 0;
	text-align: center;
}

.privilege .privilege_illust01 {
	display: none;
}

.privilege .privilege_illust02 {
	width: calc(266px / 2);
	position: absolute;
	top: 149px;
	right: -44px;
	z-index: 1;
}

.privilege h3 span {
	width: 100%;
	padding: 0;
	display: block;
	font-size: 34px;
	font-weight: 700;
	letter-spacing: 0;
}

/*================================================================
# event
================================================================ */
.event {
	padding: 0 0 32px;
}

.event .title {
	padding: 24px 16px;
	background: url(../img/event_title.png) repeat-x center top / auto 100%;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--white);
	text-align: center;
	letter-spacing: -0.05em;
}

.event .title span {
	margin: -4px 0 0;
	display: inline-block;
	font-size: 40px;
	transform: translate(0, 4px);
}

.event .event_text01 {
	margin: 24px auto 0;
	text-align: center;
}

/*================================================================
# schedule
================================================================ */
.schedule .row {
	margin: 24px 0 0;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.schedule .row .col {
	width: calc(100% / 2 - 10px);
	text-align: center;
}

.schedule .schedule_illust01,
.schedule .schedule_illust02,
.schedule .schedule_illust03,
.schedule .schedule_illust04 {
	position: absolute;
}

.schedule .schedule_illust01 {
	width: calc(398px / 2);
	bottom: -80px;
	left: -100px;
}

.schedule .schedule_illust02 {
	width: calc(199px / 1.5);
	top: -200px;
	right: 50px;
}

.schedule .schedule_illust03 {
	width: calc(122px / 1.5);
	bottom: 0px;
	left: 10px;
}

.schedule .schedule_illust04 {
	width: calc(198px / 1.5);
	right: -50px;
	bottom: -10px;
}

.event_text02 {
	width: 88%;
	margin: 32px auto 0;
	text-align: center;
}

.schedule .text {
	padding: 0 6vw;
	font-size: 13px;
	text-align: left;
}

/*================================================================
# footer
================================================================ */
.footer {
	width: 100%;
	margin: 0;
	padding: 32px 0 140px;
	background: var(--white) url(../img/footer-img.png) no-repeat center bottom / 660px auto;
	position: relative;
}

.footer .go-top-top {
	width: calc(318px / 1.3);
	margin: 0 auto;
	display: flex;
	justify-content: center;
}

.footer .go-top-top a {
	display: block;
}

.copyright {
	margin: 24px 0 0;
	font-size: 20px;
	font-weight: 600;
	text-align: center;
}

/*================================================================
# scroll-to-top
================================================================ */
.scroll-to-top {
	width: 44px;
	height: 44px;
	cursor: pointer;
	position: fixed;
	right: 16px;
	bottom: 16px;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9;
}

.scroll-to-top a {
	width: 44px;
	height: 44px;
	border-radius: 9999px;
	background-color: var(--black);
	display: flex;
	justify-content: center;
	align-items: center;
}

.scroll-to-top a:hover {
	background: var(--red);
}

.scroll-to-top img {
	width: 16px;
}

/*================================================================
# aos
================================================================ */
[data-aos="fade-up"] {
	transform: translate3d(0, 40px, 0);
}

[data-aos="zoom-in"] {
	transform: scale(0.8);
}