@charset "utf-8";



:root{
	--commonSidePadding: 30px;
	letter-spacing: .8px;
}


/*  ===============================
			GLOBAL
===============================
container
header
navi
footer
other
*/



/* header
===============================
Ghdr
*/



/* footer
===============================
Gftr
*/

.Gftr{
	padding-top: 30px;
	padding-bottom: 20px;
}
	.Gftr::after{
		mask-image: linear-gradient(to bottom, #fff0 0%, #fffd 25%, #ffff 35%, #ffff 100%);
	}


.Gftr_obj{
	position: absolute;
	/* init */
	left: auto;
	right: auto;
}

	.Gftr_obj--left{
		width: 88px;
		top: -50%;
		left: 10px;
		translate: calc( var(--l) * -1 ) calc( var(--t) * -1 );
	}

	.Gftr_obj--right{
		width: 88px;
		top: 40%;
		right: -10px;
		translate: calc( var(--l) * -1 ) calc( var(--t) * -1 );
	}

.Gftr_obj img{
	max-width: 100%;
}

.Gftr_link{
	margin-top: 30px;
}

/*  ===============================
		  block , element
===============================*/


/* sec
===============================
.sec
.sec_hdr
.sec_ttl
.sec_body
.sec_ftr
*/

.sec{
	--verticalPaddings: 120px;
}

.sec_ttl{
	margin-bottom: 40px;
}




.sec_body{
	/* padding: 2em 0; */
}


/* subSec
===============================
*/


.subSec{
	margin-top: 5rem;
}


.subSec_ttl {
	--underlineOffset: 10px;
	--lh: calc( 1.5em + var(--underlineOffset) );

	font-size: clamp( 15px , 4vw , 20px );
}

.subSec_detail{
	margin-top: .5em;
	display: inline-block;
	text-decoration: inherit;
}


/* texts & notes
===============================
*/





/* btn
===============================
*/
.btn{
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.3em .5em;

	--w: clamp( 270px , 65vw , 320px );
	width: var(--w);
	height: calc( var(--w) * 25%);

	font-weight: 400;
	font-size: clamp( 13px , 3.6vw , 16px );

}


/* label
===============================
*/

.label{
	padding: .3em .5em;
	font-size: clamp( 12px , 3.5vw , 16px);
	margin-right: 0;
}

.label--big{
    padding: 0.4em 2em;
	line-height: 2;
	background: url(../images/bg_entry_ttlBig.png) center /100% 100% no-repeat;
}


/* marker
===============================
*/

.marker {
	background-size: auto 5px;
}



/* loading
===============================
*/

.loading_ttlImg{
	max-height: 60vh;
}



.loading_obj{
	width: 30vw;
	max-width: 220px;
	left: auto;
	right: auto;
}

.loading_obj--left{
	top: 15vh;
	left: 20px;
}
.loading_obj--right{
	top: 65vh;
	right: 30px;
}



/* mv
===============================
*/

.mv{}

.mv_img{}

.pop{}

.pop_ttl{
	--t: 30%;
	--l: 46%;

	top: var(--t);
	left: var(--l);

	translate: calc( var(--l) * -1 ) calc( var(--t) * -1 );
}

.pop_img{
	max-height: 50vh;
}

.pop_item{
	text-align: center;
}

.pop_list{
	width: auto;
}

/* release
===============================
*/
.release_pic{
	margin-bottom: 30px;
}

.release_ttl{
	margin-bottom: 40px;
	font-size: clamp( 22px , 6vw , 24px);
}





/* campaign
===============================
*/

.campaign_ttl{
	font-size: min( 2rem , 5vw );
	margin: 5rem 0 1.5rem;
}

.campaign_texts{
	text-align: left;
	font-size: clamp( 15px , 4vw , 16px);
	line-height: 1.8;
}



.campaign_note{
	font-size: min( 12px , 2.5vw );
}




/* entry
===============================
*/

.entry_list{}

.entry_item{
	display: block;
}

	.entry_item:not(:first-child) {
		margin-top: 60px;
	}


.entry_pic{
	max-width: 100%;
	margin-right: 0;
}

.entry_texts{
	margin-top: 1em;
	font-size: clamp( 14px , 3.3vw , 16px);
	font-weight: 500;
}

.entry_text--long{
	font-size: 16px;
	font-weight: 600;
}


.entry_notes{
	margin-top: 10px;
	font-size: clamp( 11px , 3vw ,14px);
}

.entry_note--strong{
	font-size: 14px;
	font-weight: 400;
}


.entry_btns{}

	.entry_btn:not(:first-child){
		margin-top: 2em;
	}

.entry_notes--btns{
	padding: 0;
}

.entry_note--btns{

}




/* prize */
.prize{
	margin-bottom: 40px;
}

.prize_row{
	display: block;
}

	.prize_row:not(:first-child){
		margin-top: 40px;
	}

.prize_texts{
	font-size: clamp( 12px , 3.3vw , 17px );
}


/* step
===============================
*/

.step{
	margin-top: 60px;
}



.step_list{
	padding: 0;
}

.step_item{
	gap: 1em;
}

	.step_item:not(:first-child){
		margin-top: 40px;
	}


	.step_num{
		width: 32px;
	}

.step_ttl{
	letter-spacing: 0;
	margin: 0;
}

.step_texts{
	font-size: clamp( 14px , 3.8vw ,16px);
	font-weight: 500;
	line-height: 1.8;
}


.step_notes{
	font-size: clamp( 11px , 3vw ,14px);
}

.step_note:not(:first-child){
	margin-top: .5em;
}



.step_btns{
	margin-top: 2.5rem;
}



/* step
===============================
*/

.contact{
	margin-top: 60px;
}

.contact_list{
	display: block;
}

.contact_term{}

.contact_desc{
	margin-top: 0;
}

.contact_anchor{
	font-size: clamp( 13px , 3.7vw ,16px);
	font-weight: 500;
}

.contact_notes{
	font-size: clamp( 11px , 3vw ,14px);
}

.contact_note{
	padding-left: 1em;
	text-indent: -1em;
}


/* input
===============================
*/

.input_pic{
	max-width: 300px;/**/
	margin-right: auto;/**/
}

.input_texts{
	text-align: center;/**/
	font-size: clamp(10px , 3vw , 16px);
}



/* form
===============================
*/

.form{}

.form_ttl{
	font-size: clamp( 16px , 5vw , 21px )
}

.form_list{}

	.form_item:not(:first-child){
		margin-top: 1em;
	}

.form_flex{
	display: block;
}

.form_term:not(.form_term--long),
.form_desc:not(.form_desc--long){
	width: 100%;
}

.form_desc:not(.form_desc--long){
	padding-left: 0;
}

.form_term{
	margin-bottom: 0.5em;
}

.form_term,
.form_desc{
	font-size: clamp( 13px , 3.8vw , 15px )
}


.form_btns{
	margin-top: 3em;
}


input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="url"], textarea{
	--padding-y: 0.75em;
}


/* confirm時 */

.entry--confirm .form_term,
.entry--confirm .form_desc{
	text-align: center;
}


.entry--confirm .form_item--full{
	/* アップロードのブロックを想定 */
	margin-top: 4em;
}




/* note , modal
===============================
*/

.note_sec_ttl{
	width: 100%;
	max-width: 350px;
}

.note{
	padding: 2rem;
}

.note_ttl--big{
	margin-bottom: 3rem;
}

.note ul,
.note_text{
	font-size: min( 14px , 3vw );
}



.modal_content{
	width: 100%;
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
.modal_content,
.modal_inr{
	min-height: 80vh
}


.closeBtn_wrap {
	top: -2vh;
	right: 0;
}

.closeBtn{
	width: 10vw;
	height: 10vw;
}

.closeBtn::before, .closeBtn::after{
	position: absolute;
    top: -50%;
	width: 10vw;
}





/* lyric
===============================
*/

.lyric_texts{
	font-size: min( 12px , 3vw);
	font-weight: 700;
}
.lyric_text{}


/* tieup
===============================
*/

.tieup_img{
	width: 100%;
}

.tieup_ftr{
	margin-top: 40px;
}