* {
	font-family: 'Roboto', "Yu Gothic", "游ゴシック", "メイリオ", Meiryo, sans-serif;
	line-height: 1.4;
	box-sizing: border-box;
}
body {
	background-color: #000;
	color: #FFF;
	text-align: center;
}
section + section {
	margin: 6rem 0 0 0;
}
h3 {
	margin: 30px 0 0 0;
	padding: 0;
}
#date,
#time {
	font-size: 35px;
	font-weight: bold;
}
.tabs {

}
.tabs > li {
	display: inline-block;
}
.tabs > li > a {
	display: block;
	background-color: #FFF;
	text-decoration: none;
	cursor: pointer;
	padding: 0.5rem 2rem;
}
.tabs > li.active > a {
	background-color: #00BFFF;
}

h4 {
	width: 100%;
	max-width: 600px;
	font-size: 25px;
	font-weight: bold;
	text-align: center;
	margin: 50px auto 0 auto;
}
.calendar-wrapper {
	overflow-y: scroll;
	height: 60rem;
}

.calendar {
	width: 100%;
	max-width: 600px;
	list-style: none;
	margin: 0 auto;
	padding: 0;
}
.calendar::after {
	content: "";
	clear: both;
	display: block;
}
.calendar > li {
	float: left;
	width: calc((100% / 7 + 1px));
	margin: 0 -1px -1px 0;
}
.calendar > li::before {
	content: attr(data-day);
	font-weight: bold;
}

.calendar > li::after {
	content: attr(data-holiday);
	display: block;
	font-size: 12px;
	font-weight: normal;
	margin-top: -14px;
}
.calendar > .wd {
	color: #FFF;
	font-size: 18px;
	padding: 10px 0 30px 0;
}
.calendar > .day {
	height: 60px;
	border: 1px solid #666;
}
.calendar > .day::before {
	display: block;
	width: 3rem;
	height: 3rem;
	line-height: 3rem;
	text-align: center;
	font-size: 30px;
	margin: 0 auto;
}
.calendar > [data-holiday] {
	background-color: #555;
}
.calendar > .day.wd0 {
	background-color: #555;
	color: #F30;
}
.calendar > .day.wd6 {
	background-color: #555;
	color: #00BFFF;
}
.calendar > .day:nth-child(8).wd1 {
	margin-left: calc(100% / 7 * 1);
}
.calendar > .day:nth-child(8).wd2 {
	margin-left: calc(100% / 7 * 2);
}
.calendar > .day:nth-child(8).wd3 {
	margin-left: calc(100% / 7 * 3);
}
.calendar > .day:nth-child(8).wd4 {
	margin-left: calc(100% / 7 * 4);
}
.calendar > .day:nth-child(8).wd5 {
	margin-left: calc(100% / 7 * 5);
}
.calendar > .day:nth-child(8).wd6 {
	margin-left: calc(100% / 7 * 6);
}
.calendar > .day.today {
	background-color: transparent !important;
}
.calendar > .day.today::before {
	width: 3rem;
	height: 3rem;
	background-color: #FFF;
	border-radius: 1.5rem;
	color: #000;
}

.cf::after {
	content: "";
	display: block;
	clear: both;
}
.cf > .col-12 {
	float: left;
	width: 100%;
}
.year-list {
	margin: 1rem 0;
	padding: 0;
}
.year-list > li {
	list-style: none;
	text-align: left;
	display: inline-block;
	float: left;
}
.year-list > li.sep {
	margin-bottom: 1rem;
}
@media screen and (max-width: 575px) {
	.year-list > li {
		width: 50%;
	}
}
@media screen and (min-width: 576px) {
	.cf > .col-sm-6 {
		float: left;
		width: 50%;
		padding: 0 0.5rem;
	}
}
@media screen and (min-width: 576px) and (max-width: 767px) {
	.year-list > li {
		width: 33.333%;
	}
}
@media screen and (min-width: 768px) and (max-width: 991px) {
	.year-list > li {
		width: 33.333%;
	}
}
@media screen and (min-width: 992px) {
	.year-list > li {
		width: 25%;
	}
}

#events .calendar > .day.wd0,
#events .calendar > .day.wd6,
#events .calendar > .day {
	height: 80px;
	background-color: transparent;
}
#events .calendar > .day.has-events {
	background-color: #00BFFF !important;
}
#events .calendar > .day.has-plans {
	background-color: #F6FDFF !important;
}
#events .calendar > .day.blocked {
	background-color: #333 !important;
}
#events .calendar > .day.has-events,
#events .calendar > .day.has-events > .event,
#events .calendar > .day.has-plans,
#events .calendar > .day.has-plans > .event,
#events .calendar > .day.blocked,
#events .calendar > .day.blocked > .event {
	color: #000 !important;
}
#events .calendar > .day:hover,
#events .calendar > .day.hover {
	background-color: #00BFFF !important;
}
#events .calendar > .day:hover:not(.today)::before,
#events .calendar > .day.hover:not(.today)::before {
	color: #FFF !important;
}
#events .calendar > .day:hover > .event,
#events .calendar > .day.hover > .event {
	color: #000;
}
#events .calendar > .day::after {
	content: "";
}

.event-list {
	list-style: none;
}
.event-list > li {
	position: relative;
	text-align: left;
	padding: 0.25rem 1rem 0.25rem 8rem;
}
.event-list > li + li {
	border-top: 1px solid #AAA;
}

.event-list > li::before {
	position: absolute;
	top: 0.25rem;
	left: 0;
	width: 8rem;
	text-align: center;
	content: attr(data-date);
}

#events .event-list > li:hover,
#events .event-list > li.hover {
	color: #000;
	background-color: #00BFFF !important;
}

#events .calendar > .day > .event {
	display: block;
	font-size: 0.525rem;
	color: #FFF;
	line-height: 1.2;
}


#events .calendar > .day > .event[data-status="不参加"],
#events .calendar > .day > .event[data-status="キャンセル"],
#events .calendar > .day > .event[data-status="未達"] {
	color: #666 !important;
}
#events .calendar > .day.day.has-events > .event[data-status="不参加"],
#events .calendar > .day.day.has-events > .event[data-status="キャンセル"],
#events .calendar > .day.day.has-events > .event[data-status="未達"] {
	color: #AAA !important;
}

#events .event-list > li[data-status="参加"] {
	color: #000;
	background-color: #00BFFF !important;
}
#events .event-list > li[data-status^="抽選"],
#events .event-list > li[data-status$="中"] {
	color: #000;
	background-color: rgba(255, 255, 255, 1) !important;
}
#events .event-list > li[data-status$="待ち"] {
	color: #000;
	background-color: rgba(255, 255, 255, 0.5) !important;
}
#events .event-list > li[data-status="不参加"],
#events .event-list > li[data-status="キャンセル"],
#events .event-list > li[data-status="未達"] {
	color: #333 !important;
	background-color: #000 !important;
}