@charset "utf-8";

/* ページタイトル
============================================================================= */
.ttlPage-svg{
	fill: #ad5dad;
}


/* NEWS
============================================================================= */
.newswp{
	margin: 0 -8px;
	padding: 16px;
	background: #ffde00;
}
.newsList{
	margin-top: -8px;
}
.newsList_item{
	margin-top: 8px;
}
.newsList_itemBox{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 16px 16px;
	height: 100%;
	min-height: 74px;
	color: #352f25!important;
	font-weight: 500;
	background-color: rgba(255, 255, 255, 0.8);
}
.newsList_itemBox dt{
	position: absolute;
	left: -8px;
	top: -4px;
	padding: 0 4px 4px;
	font-size: 1.6rem;
	font-weight: bold;
	background: url("/2025/_images/news_line.png") center bottom / 100% 15px no-repeat;
	transform:rotate(-8deg); 
}
.newsList_itemBox dd{
	text-align: center;
}
.newsList_itemBox dd span{
	display: inline-block;
}
a.newsList_itemBox, a.newsList_itemBox span{
	text-decoration: underline;
}
a.newsList_itemBox::after{
	position: absolute;
	right: 4px;
	bottom: 0;
	transform: translateY(-50%);
	content: "\F1DF";
	font-family:'Material Icons Round';
	font-weight: bold;
	line-height: 1;
}

.newsMore{
	margin-top: 24px;
	text-align: center;
}
.newsMore a{
	position: relative;
	color: #000;
	font-weight: bold;
	text-decoration: none;
}
.newsMore a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: inline-block;
    width: 0%;
    height: 2px;
    margin: auto;
    background-color: #000;
    transition: width .4s cubic-bezier(0.54, 0.12, 0.11, 0.98);
}
.newsMore .m-ico{
	margin-left: 8px;
}



@media screen and (min-width: 960px){
	.newswp{
		padding: 40px;
		border-radius: 40px;
	}
	.newsWp{
		display: flex;
		align-items: center;
	}
	.newsTtl{
		padding-bottom: 42px;
		width: 300px;
		font-size: 4.0rem;
	}
	.newsTtl::before{
		top: calc(50% - 26px);
		font-size: 10rem;
	}
	.newsList{
		display: flex;
		flex-wrap: wrap;
		margin: -24px 0 0 -24px;
	}
	.newsList_item{
		margin: 24px 0 0 24px;
		width: calc(100% / 3 - 24px);
	}
	.newsList_itemBox{
		padding: 32px 16px;
	}
	.newsList_itemBox dt{
		left: -16px;
		top: -8px;
		font-size: 2.0rem;
	}
	.newsMore{
		margin-top: 16px;
		text-align: right;
	}
	.newsMore a:hover::after {
		width: 100%;
	}
}


/* 楽しみ方
============================================================================= */
.howtowp{
	margin: 0 auto;
	padding: 30px 0;
	max-width: 800px;
}
.howtosect{
    padding: 20px;
    background: repeating-linear-gradient(-45deg, rgba(247, 241, 213, 75%), rgba(247, 241, 213, 75%) 2px, rgba(247, 241, 213, 100%) 2px, rgba(247, 241, 213, 100%) 4px);
}
.howtobox{
	position: relative;
	padding: 60px 20px 20px;
	border-radius: 20px;
	background-color: #fdfbf3;
}
.howtobox:not(:first-of-type){
	margin-top: 30px;
}
.howtobox:before, .howtobox:after{
	position: absolute;
	content: "";
	display: inline-block;
	width: 60px;
	height: 60px;
}
.howtobox:before{
	left: -5px;
	top: -10px;
	background: #e4f4f0;
}
.howtobox:after{
	left: -10px;
	top: -15px;
	content: attr(data-num);
	display: flex;
	justify-content: center;
	align-items: center;
	color: #432c02;
	font-weight: bold;
	font-size: 3.0rem;
	border-right: solid 1px #aaa49e;
    border-bottom: solid 1px #aaa49e;
}
.howtobox dt{
	color: #432c02;
	font-size: 2.0rem;
	font-weight: bold;
}
.howtobox dd{
	margin-top: 20px;
    line-height: 3.0em;
    padding-bottom: 1px;
	background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fdfbf3 50%, #fdfbf3 100%), linear-gradient(180deg, #e3dbd4 1px, transparent 1px);
    background-size: 5px 100%, 100% 3.0em;
	vertical-align: middle;
}
.howtowp .kome{
	margin-top: 10px;
}
.howtomore{
	margin-top: 30px;
	text-align: center;
	font-size: 1.8rem;
	font-weight: bold;
}
.howtomore span{
	padding: 0 20px;
	background:linear-gradient(transparent 60%, #ff6 60%);
}
.ticket{
	margin-top: 30px;
}

@media screen and (min-width: 960px){
	.howtowp{
		padding: 80px 0 50px;
	}
	.howtosect{
		padding: 50px;
	}
	.howtobox{
		padding: 30px;
	}
	.howtobox:not(:first-of-type){
		margin-top: 30px;
	}
	.howtobox:before, .howtobox:after{
		width: 80px;
		height: 80px;
	}
	.howtobox:before{
		left: -5px;
		top: -5px;
	}
	.howtobox:after{
		left: -15px;
		top: -15px;
		font-size: 3.5rem;
	}
	.howtobox dt{
		padding-left: 70px;
	}
	.howtomore{
		font-size: 2.0rem;
	}
}

/* 注意事項
============================================================================= */
.ruleswp{
	margin: 0 auto;
	padding: 30px 0;
	max-width: 800px;
}
.ruleswp li:not(:first-child){
	margin-top: 20px;
}

@media screen and (min-width: 960px){
	.ruleswp{
		padding: 80px 0 50px;
	}
}

/* 告知
============================================================================= */
.info-sect{
	padding: 30px 0;
}

@media screen and (max-width: 959px){
	div:not(.-top) .contents{
		padding-top: 30px;
	}
}
@media screen and (min-width: 960px) {
	.info-sect{
		margin: 0 auto;
		padding: 80px 0;
		max-width: 1000px;
	}
}

.info-maintxt{
	color: #408ac9;
	font-size: 1.8rem;
	font-weight: bold;
}
.info-txt{
	margin-top: 20px;
	line-height: 1.8;
}
.infobox{
	padding-bottom: 20px;
	line-height: 1.8;
	border-bottom: dashed 1px #ccc;
}
.infobox dt, .infobox dd{
}
.infobox dt{
	margin-top: 30px;
	padding: 10px;
	font-size: 1.8rem;
	font-weight: bold;
	background: #f5f5f5;
}
.infobox dd{
	margin: 20px 10px 0;
}
.infosend-txt{
	margin-top: 30px;
	text-align: center;
}
.infosend-bt{
	margin-top: 20px;
}
.infosend-bt a{
	position: relative;
	display: block;
	padding: 10px;
	text-align: center;
	color: #fff;
	font-size: 1.4rem;
	text-decoration: none;
	border-radius: 50vw;
	background: #408ac9;
}
.infosend-bt .m-ico{
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
}
.infosend-bt em{
	font-weight: bold;
}

@media screen and (min-width: 960px){
	.info-maintxt{
		font-size: 2.5rem;
		text-align: center;
	}
	.info-txt{
		margin-top: 30px;
		line-height: 1.8;
	}
	.infobox{
		display: flex;
		flex-wrap: wrap;
		margin-top: 50px;
		padding-bottom: 0;
	}
	.infobox dt, .infobox dd{
		margin: 0;
		border-top: dashed 1px #ccc;
	}
	.infobox dt{
		padding: 20px;
		width: 300px;
	}
	.infobox dd{
		padding: 20px 30px;
		width: calc(100% - 300px);
	}
	.infosend-txt{
		margin-top: 50px;
	}
	.infosend-bt{
		margin: 30px auto 0;
		max-width: 550px;
	}
	.infosend-bt a{
		padding: 10px 20px;
		font-size: 100%;
	}
	.infosend-bt .m-ico{
		right: 20px;
	}
	.infosend-bt em{
		font-size: 2.0rem;
	}
}




/* 協賛
============================================================================= */
.supporterswp{
	margin: 30px 0;
}
.supporters-maintxt{
	color: #408ac9;
	font-size: 1.8rem;
	font-weight: bold;
}
.supportersTtl{
	padding-bottom: 10px;
	font-size: 2.0rem;
	font-weight: bold;
	border-bottom: dashed 1px #000;
}
.supprotersCas{
	display: flex;
	flex-wrap: wrap;
	margin-left: -8px;
}
.supprotersCas_item{
	margin: 16px 0 0 8px;
	width: calc(100% / 2 - 8px);
}

.supprotersCas_box{
	position: relative;
	display: flex;
	flex-direction: column;
}
a.supprotersCas_box{
	color: #000;
	text-decoration: none;
}
.supprotersCas_img{
	order: -1;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0 auto;
	text-align: center;
	font-weight: bold;
	border: solid 1px #eee;
}
.supprotersCas_img:before{
	content: "";
	padding-top: calc(100 / 250 * 100%);
}
.supprotersCas_img img{
	position: relative;
	z-index: 1;
}
.supprotersCas_ttl{
	margin-top: 4px;
}
.supprotersCas_txt{
	margin-top: 10px;
}

.supprotersCas_box .m-ico{
	color: #ababab;
	font-size: 1.4rem;
}
.supprotersCas_att{
	margin-top: 20px;
	font-size: 1.4rem;
	text-align: right;
}

@media screen and (min-width: 960px){
	.supporterswp{
		margin: 80px 0 50px;
	}
	.supporters-maintxt{
		font-size: 2.5rem;
		text-align: center;
	}
	.supportersTtl{
		font-size: 3.0rem;
	}

	.supprotersCas{
		margin: 8px 0 0 -32px;
	}
	.supprotersCas .supprotersCas_item{
		margin: 32px 0 0 32px;
		width: calc(100% / 5 - 32px);
	}
	.supprotersCas_ttl{
		font-size: 1.6rem;
	}
	.supprotersCas_att{
		margin-top: 30px;
	}
}


.supportersList{
	display: flex;
	flex-wrap: wrap;
	margin: 10px 0 0 -10px;
}
.supportersList_item{
	margin: 10px 0 0 10px;
}

.supportersList_item a{
	color: #000;
	text-decoration: none;
}
.supportersList.-semi .supportersList_item a{
	display: block;
}
.supportersList_logo{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	font-weight: bold;
	border: solid 1px #ccc;
	background: #fff;
}
.supportersList_logo:before{
	content: "";
	padding-top: calc(150 / 300 * 100%);
}
.supportersList_logo img{
	position: relative;
	z-index: 1;
}

.supportersList_txt{
	margin-top: 5px;
}
.supprotersList_box .m-ico,
.supportersList_txt .m-ico{
	margin-left: 5px;
	color: #ababab;
	font-size: 1.4rem;
}
.supportersList.-special .supportersList_item{
	width: 100%;
	max-width: 100%;
	font-size: 1.6rem;
}
.supportersList.-semi .supportersList_item{
	width: calc(100% / 2 - 10px);
}
.supportersList.-nomal .supportersList_item{
	padding-right: 10px;
	border-right: solid 1px #ccc;
}


@media screen and (min-width: 960px){
	.supportersList{
		margin: 30px 30px 0 -24px;
	}
	.supportersList_item{
		margin-left: 24px;
	}
	.supportersList.-semi .supportersList_item{
		width: calc(100% / 4 - 24px);
	}
	.supportersList.-nomal .supportersList_item{
		padding-right: 24px;
	}
}



/* important
============================================================================= */
.sect.-important{
	background: #fff;
}
.sect.-important .sect-ttl{
	padding-bottom: 20px;
	border-bottom: solid 2px #000;
}
.importantList{
	display: flex;
	flex-wrap: wrap;
	margin: 10px 0 0 -10px;
}
.importantList_item{
	margin: 10px 0 0 10px;
	width: calc(100% / 3 - 10px);
}

@media screen and (min-width: 960px){
	.importantList{
		margin: 30px 0 0 -30px;
	}
	.importantList_item{
		margin: 30px 0 0 30px;
		width: calc(100% / 4 - 30px);
	}
	
}

