:root {
	--color-main: #895CE0;
	--color-sub: #3F0000;
	--color-gray: #E5E5E5;
	--color-lightgray: #FBFBFB;
	--color-black: #353535;
}
* {
	-webkit-appearance: none;
	font-family: "Helvetica", "游ゴシック", "ヒラギノ角ゴ ProN", "メイリオ", "MS Pゴシック", sans-serif;
	/* font-weight: 500; */
	font-style: normal;
	font-size: 20px;
	line-height: 1.6;
	position: relative;
	/* color: var(--color-sub); */
	z-index: 1;
	box-sizing: border-box;
}
a {
	text-decoration: none;
}
img {
	width: 100%;
	vertical-align: bottom;
}

h1 {
	font-weight: bold;
	font-size: 1em;
	width: 90%;
	margin: 50px auto 20px;
}
main {
	padding-bottom: 150px;
	transition: 0.3s;
	top: 10px;
	opacity: 0;
}
.loadend {
	transition: 0.3s;
	top: 0px;
	opacity: 1;
}
.w-bar {
	display: block;
	background: #FFF;
	width: 100%;
	height: 1px;
	margin: 50px auto;
	border: 0;
}

/*btn*/
.linebtn {
	background: #06C755;
	width: 90%;
	max-width: 500px;
	margin: 20px auto;
	border-radius: 5px;
}
.linebtn:hover {
	opacity: 0.8;
}
.linebtn a {
	display: block;
	height: 50px;
	padding-left: 50px;
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-align-items: center;
	align-items: center;
	color: #FFF;
	font-size: 0.9em;
	font-weight: bold;
}
.linebtn a:before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 50px;
	height: 50px;
	background-image: url(/common/img/linebtn.png);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	border-right: 1px solid rgb(0 0 0 / 8%);
}
.btn {
	display: block;
	color: #353535;
	background: #FFF;
	border-radius: 5px;
	text-align: center;
	font-size: 0.8em;
	padding: 15px 50px 15px 20px;
	width: 90%;
	max-width: 500px;
	margin: 20px auto;
	cursor: pointer;
	user-select: none;
	font-weight: bold;
	border: 0;
}
.btn.nomal {
	border: 1px solid #EFEFEF;
}
.btn.true {
	color: #FFF;
	box-shadow: 0 5px 20px 0 rgb(141 35 67 / 30%);
	background: rgb(254,220,64);
	background: linear-gradient(126deg, rgba(254,220,64,1) 0%, rgba(247,93,139,1) 100%);
	padding: 15px 50px 15px 50px;
}
.btn.nomal:after,
.btn.true:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
	width: 20px;
	height: 20px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}
.btn.nomal:after {
	background-image: url(/common/img/icon-arrow.png);
}
.btn.true:after {
	background-image: url(/common/img/icon-star.svg);
}
.btn.true:before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0px;
	margin: auto;
	width: 50px;
	height: 100%;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	background-image: url(/common/img/icon-sparkle.png);
	opacity: 0.4;
}


/*メインナビ*/
.mainnav {
	position: fixed;
	bottom: 20px;
	left: 0;
	right: 0;
	margin: auto;
	width: 90%;
	max-width: 600px;
	z-index: 50;
	background: #FFF;
	box-shadow: 0 0px 20px 0 rgb(137 92 224 / 10%);
	border-radius: 10px;
}
.mainnav .nav-list {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 10px;
}
.mainnav .nav-list li {
	width: calc(100% / 4);
}
.mainnav .nav-list a {
	user-select: none;
	display: flex;
	align-items: center;
	margin: auto;
	text-align: center;
	padding: 16px 0;
}
.mainnav .nav-list li img {
	display: block;
	object-fit: cover;
	object-position: center;
	width: 30px;
	height: 30px;
	margin: auto;
}
.mainnav .nav-list li.active:before {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	width: 60%;
	height: 6px;
	background: var(--color-black);
	border-radius: 10px 10px 0 0;
	margin: auto;
}
.mainnav .nav-list li:not(.online).active img {
	filter: invert(1);
}
.mainnav .nav-list li.navprofile img {
	border-radius: 100%;
}


/*slidebar*/
.slidebar {
	width: 90%;
	max-width: 600px;
	background: #FFF;
	border-radius: 10px;
	box-shadow: 0 10px 20px 0 rgb(137 92 224 / 10%);
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-align-items: center;
	align-items: center;
	margin: 50px auto 20px 5%;
	position: sticky;
	top: 50px;
	z-index: 10;
}
.slidebar .slidebar-item {
	opacity: 0.5;
	transition: 0.3s;
	color: var(--color-black);
	user-select: none;
	cursor: pointer;
	padding: 20px 0;
	font-size: 0.8em;
	font-weight: bold;
	width: calc(100% / 3);
	text-align: center;
}
.slidebar .slidebar-item.active {
	opacity: 1;
}
.slidebar .slidebar-underline {
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: calc(100% / 3);
	height: 6px;
	transition: 0.3s;
}
.slidebar .slidebar-underline:before {
	content: '';
	display: block;
	width: 50%;
	height: 100%;
	background: var(--color-black);
	border-radius: 10px 10px 0 0;
	margin: auto;
}
.slidecontents {
	transition: 0.3s;
	display: none;
	top: 20px;
	opacity: 0;
}
.slidecontents.active {
	transition: 0.3s;
	display: block;
	top: 0;
	opacity: 1;
}




/*広告バナー*/
.adblock {
	background: var(--color-gray);
	margin: 30px auto 30px 5%;
	width: 90%;
	max-width: 728px;
	max-height: 90px;
	aspect-ratio: 364 / 45;
}
.adblock:after {
	content: '広告';
	font-size: 0.4em;
	width: fit-content;
	display: block;
	position: absolute;
	right: 0;
	bottom: -15px;
	background: var(--color-gray);
	width: fit-content;
	padding: 2px 4px 0px;
	border-radius: 0 0 4px 4px;
}
.adblock * {
	max-width: 100% !important;
}
.adblock .pc {
	display: none;
}
@media screen and (min-width: 760px) {
	.adblock .pc {
		display: block;
	}
}




/*募集リスト*/
.eventlist {
	display: -webkit-flex;
	display: flex;
	flex-wrap: wrap;
	-webkit-justify-content: space-between;
	justify-content: space-between;
}
.event-item {
	display: block;
	background: var(--color-lightgray);
	padding: 20px 10px;
	border-radius: 10px;
	width: calc(95% / 2);
	max-width: 300px;
	margin-bottom: 30px;
}
.event-item.none {
	width: 100%;
}

.event-item.mejoin:before {
	content: '';
	display: block;
	position: absolute;
	top: -12px;
	left: 10px;
	width: 22px;
	height: 30px;
	background-image: url(/common/img/joinflag.png);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	z-index: 3;
}
.event-item.mejoin:after {
	content: '';
	display: block;
	position: absolute;
	top: -11px;
	left: 31px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 12px 0 0 7px;
	border-color: transparent transparent transparent #BC5876;
	z-index: 0;
}

.event-item .event-item__title {
	font-size: 0.8em;
	font-weight: bold;
	overflow: hidden;
	width: 100%;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	margin-bottom: 5px;
}
.event-item .event-item__txt {
	font-size: 0.6em;
	padding: 10px 0;
	border-top: 2px solid #EFEFEF;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	width: 100%;
}
.event-item .event-item__txt.hide:before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	z-index: 2;
	background: rgba( 255, 255, 255, 0.3 );
	backdrop-filter: blur( 3px );
	-webkit-backdrop-filter: blur( 3px );
}
.event-item .event-item__joinlist {
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	border-top: 2px solid #EFEFEF;
	padding: 10px 0;
}
.event-item .event-item__joinlist .event-item__joincount {
	font-size: 0.6em;
	width: 50%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.event-item .event-item__joinlist .event-item__joinimglist {
	width: 50%;
}
.event-item .event-item__joinlist .event-item__joinimglist.nologin {
	filter: blur(2px);
}
.event-item .event-item__joinlist .event-item__joinimglist.fiveout:after {
	content: '…';
	font-size: 0.5em;
	position: absolute;
	bottom: -4px;
	right: 0;
}
.event-item .event-item__joinlist .event-item__joinimglist img {
	width: 20px;
	height: 20px;
	border-radius: 100%;
	object-fit: cover;
	object-position: center;
	border: 1px solid #EFEFEF;
	position: absolute;
	top: 0;
	bottom: 0;
}
.event-item .event-item__joinlist .event-item__joinimglist img:nth-child(1) { right: 10px; }
.event-item .event-item__joinlist .event-item__joinimglist img:nth-child(2) { right: 20px; }
.event-item .event-item__joinlist .event-item__joinimglist img:nth-child(3) { right: 30px; }
.event-item .event-item__joinlist .event-item__joinimglist img:nth-child(4) { right: 40px; }
.event-item .event-item__joinlist .event-item__joinimglist img:nth-child(5) { right: 50px; }

.event-item .event-item__joinlist .event-item__joinimglist img.nologin {
	width: 79px;
	height: 20px;
	object-fit: contain;
	object-position: center right;
	border: 0;
	border-radius: 0;
	right: 0;
}

.event-item .lastflag {
	margin: 0 0 0 auto;
	font-size: 0.6em;
	color: #FFF;
	text-align: center;
	width: fit-content;
	border-radius: 5px;
	padding: 5px 10px;
	background: rgb(103,126,250);
	background: linear-gradient(125deg, rgba(103,126,250,1) 0%, rgba(137,92,224,1) 100%);
}


/*ラジオボタン*/
.inputradio {
	display: block;
	margin: 30px auto;
}
.inputradio label {
	display: block;
	cursor: pointer;
	padding-left: 44px;
	position: relative;
	font-size: 0.9em;
}
.visually-hidden {
	display: none;
}
.inputradio label::before,
.inputradio label::after {
	content: "";
	display: block; 
	position: absolute;
}

.inputradio label::before {
	background-color: #fff;
	border-radius: 0%;
	border: 1px solid #ddd;
	width: 30px;
	height: 30px;
	transform: translateY(-50%);
	top: 50%;
	left: 5px;
	border-radius: 100%;
}
.inputradio label::after {
	border-bottom: 2px solid #FFF;
	border-left: 2px solid #FFF;
	opacity: 0;
	height: 5px;
	width: 10px;
	transform: rotate(-45deg);
	top: 9px;
	left: 15px;
}
input[type="radio"]:checked + label::before,
input[type="checkbox"]:checked + label::before {
	border: 1px solid #FFF;
	background: rgb(254,220,64);
	background: linear-gradient(126deg, rgba(254,220,64,1) 0%, rgba(247,93,139,1) 100%);
}
input[type="radio"]:checked + label::after,
input[type="checkbox"]:checked + label::after {
	opacity: 1;
}


/*=====
=loading
=====*/
#loading {
	position: fixed;
	top: 0px;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: -1;
	width: 100%;
	min-height: 100lvh;
	height: 100vh;
	height: 100lvh;
	background: rgb(255 255 255 / 60%);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: 0.4s;
	opacity: 1;
}
#loading.loadend {
	transition: 0.4s;
	top: 200px;
	opacity: 0;
}
.loading {
	width: 100px;
	height: 100px;
	text-align: center;
	animation: 1.5s linear 0s infinite forwards running loadingloop;
}
.loading img {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}
@keyframes loadingloop {
	0%{
		transform: rotate(0deg);
	}
	100%{
		transform: rotate(360deg);
	}
}