/* ===========================================
Program
=============================================*/

#program > .title {
	position: relative;
}

#program > .title .btn-program a {
	border: 1px solid #e6e6e6;
	display: inline-block;
}

#program > .title .btn-program a:hover,
#program > .title .btn-program a:active {
	/* background: #000;
	color: #FFF;
	text-decoration: none; */
}

#program #program-tabs li:hover {

}

#program #program-tabs li.current {
	/* pointer-events: none; */
}

#program .program-contents {
	opacity: 0;
}

#program .program-contents .inner {
	width: 100%;
	/* max-width: 1440px; */
	margin: 0 auto;
}

#main {
	padding-bottom: 0;
}

#modal-wrapper,
#program .left-column {
	font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "游ゴシック体", "Yu Gothic", YuGothic, Meiryo, sans-serif;
}

#category-menu li a,
#genre-menu li a,
#place-menu li a,
#date-menu li a {
	display: block;
	position: relative;
}

#category-menu li a:hover,
#genre-menu li a:hover,
#place-menu li a:hover,
#date-menu li a:hover,
#date-menu li a:hover span {
	/* text-decoration: underline; */
}

#category-menu li a.current,
#genre-menu li a.current,
#place-menu li a.current,
#date-menu li a.current {
	background: #000;
	color: #FFF;
	/* pointer-events: none; */
}

#genre-menu-wrapper {
	border-top: 1px solid #e6e6e6;
	display: none;
}

#genre-menu-wrapper h4 {
	font-weight: normal;
}

#genre-menu {
	display: none;
}

#date-menu li a.closed {
	color: #999;
	pointer-events: none;
}

#btn-schedule {
	width: 100%;
	background: #FFF;
	font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "游ゴシック体", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	text-align: center;
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: 9998;
	box-shadow: 0 -2px 3px 0 rgba(0,0,0,0.1);
}

#btn-schedule.bottom {
	position: absolute;
}

#btn-schedule a {
	width: 100%;
	height: 100%;
	display: block;
	position: relative;
	z-index: 2;
}

#btn-schedule a:after {
	-webkit-transform: translateY(2px);
	transform: translateY(2px);
}

#program .program-list li .img img {
	width: 100%;
	height: auto;
}

#program .program-list > li {
	border-top: 1px solid #e6e6e6;
	position: relative;
}

#program .program-list > li > a {

	display: block;
}

#program .program-list > li .date > span {
	font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "游ゴシック体", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	background: #e6e6e6;
	display: inline-block;
	position: relative;
}

#program .program-list > li .date > span:before {
	content: "";
	background: url("../img/common/icon_calendar.svg") no-repeat center center;
	display: block;
	position: absolute;
	top: 50%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
}

#program .program-list > li .date .supplement {
	background: #000;
	color: #FFF;
	white-space: nowrap;
	display: inline-block;
}

#program .program-list > li .img {
	float: left;
}

#program .program-list > li .data {
	float: right;
}

#program .program-list > li .data .category span {
	font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "游ゴシック体", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	color: #FFF;
	background: #000;
	display: inline-block;
}

#program .program-list > li .data .category span.ticket {
	background: #FFF;
	color: #000;
	border: 1px solid #000;
	position: relative;
}

#program .program-list > li .data .category span.ticket:before {
	content: "";
	background: url("../img/common/icon_ticket.svg") no-repeat center center;
	display: block;
	position: absolute;
	top: 50%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
}

#program .program-list > li .data .detail li {
	font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "游ゴシック体", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	position: relative;
}

#program .program-list > li .data .detail > li:before {
	content: "";
	/* font-family: FontAwesome; */
	background-repeat: no-repeat;
	background-position: center center;
	text-align: center;
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
}

#program .program-list > li .data .detail > li:first-child:before {
	/* content: "\f183"; */
	background-image: url("../img/common/icon_human.svg");
}

#program .program-list > li .data .detail > li:nth-child(2):before {
	/* content: "\f041"; */
	background-image: url("../img/common/icon_map.svg");
}

#program .program-list > li .data .detail > li:nth-child(3):before {
	/* content: "\f073"; */
	background-image: url("../img/common/icon_calendar.svg");
}

#program .program-list > li .data .detail > li .supplement {
	background: #000;
	color: #FFF;
	white-space: nowrap;
	display: inline-block;
}



/* ===========================================
PC
=============================================*/

@media screen and (min-width:960px) {

	#program > .title {
		/* max-width: 1440px; */
		margin: 80px auto 0 auto;
	}

	#program > .title h2 {
		font-size: 4.0rem;
		font-weight: normal;
		text-align: center;
	}

	#program > .title .btn-program {
		height: 46px;
		position: absolute;
		top: -4px;
		right: 4.6875%;
	}

	#program > .title .btn-program a {
		height: 46px;
		font-size: 1.6rem;
		line-height: 46px;
		padding: 0 20px;
	}

	#program #program-tabs {
		border-bottom: 1px solid #e6e6e6;
		text-align: center;
		margin-top: 70px;
	}

	#program #program-tabs li {
		font-size: 1.4rem;
		display: inline-block;
		margin: 0 30px;
		padding-bottom: 20px;
	}

	#program #program-tabs li.current.hover {
		border-bottom: none;
		padding-bottom: 20px;
	}

	#program #program-tabs li.current {
		border-bottom: 4px solid #000;
		padding-bottom: 16px;
	}

	#program #program-tabs li.current.hover a:hover,
	#program #program-tabs li a:hover {
		text-decoration: none;
	}

	#program .inner {
		position: relative;
	}

	#program .left-column {
		width: 20%;
		height: 100%;
		max-height: calc( 100vh - 64px );
		border-right: 1px solid #e6e6e6;
		box-sizing: border-box;
		position: absolute;
		top: 0;
		overflow: hidden;
	}

	#program .left-column.fixed {
		position: fixed;
		top: 64px;
	}

	#program .left-column.bottom {
		position: absolute;
		top: auto;
		bottom: 0;
	}

	#category-menu,
	#genre-menu,
	#place-menu,
	#date-menu {
		padding: 8px;
	}

	#genre-menu-wrapper h4 {
		font-size: 1.4rem;
	}

	#place-menu > li  {
		margin-bottom: 24px;
	}

	#category-menu li a,
	#genre-menu li a,
	#place-menu li a,
	#date-menu li a {
		font-size: 1.4rem;
		line-height: 1.428;
		padding: 10px 20px;
	}

	#place-menu > li ul li a {
		padding-left: 50px;
	}

	#date-menu > li span.date {
		float: left;
	}

	#date-menu > li span.day {
		width: 4em;
		font-size: 1.2rem;
			line-height: 1.666;
		text-align: center;
		float: right;
	}

	#btn-schedule a {
		height: 50px;
		font-size: 1.6rem;
		line-height: 50px;
		display: block;
	}

	#program .right-column {
		width: 80%;
		border-left: 1px solid #e6e6e6;
		margin-left: -1px;
		float: right;
	}

	#program #date-content .left-column,
	#program #date-content .right-column {
		padding-bottom: 50px;
	}

	#program .right-column .lead {
		font-size: 1.6rem;
		line-height: 2;
		padding: 42px 48px 0 48px;
	}

	#program .program-list {
		width:  calc( 100% - 96px );
		margin: 0 auto;
	}

	#program .program-list > li {
		width: 100%;
	}

	#program .program-list > li > a {
		padding: 48px 0;
	}

	#program .program-list > li:before {
		content: "";
		display: block;
		position: absolute;
		top: 50%;
		right: 3px;
		width: 14px;
		height: 14px;
		border-top: 2px solid #dcdcdc;
		border-right: 2px solid #dcdcdc;
		-webkit-transform: translate(0, -50%) rotate(45deg);
		transform: translate(0, -50%) rotate(45deg);
	}

	#program .program-list > li:first-child {
		border-top: none;
	}

	#program .program-list > li .date {
		margin-bottom: 22px;
	}

	#program .program-list > li .date > span {
		height: 37px;
		line-height: 37px;
		font-size: 1.4rem;
		padding: 0 10px 0 40px;
		margin: 0 10px 10px 0;
	}

	#program  .program-list > li .date > span:before {
		width: 21px;
		height: 21px;
		background-size: 21px 21px;
		left: 10px;
	}

	#program .program-list > li .date .supplement {
		font-size: 1.2rem;
		line-height: 1;
		padding: 5px 5px 4px 5px;
		-webkit-transform: translate(0, -1px);
		transform: translate(0, -1px);
	}

	#program .program-list > li .img {
		width: 22.222%;
	}

	#program .program-list > li .data {
		width: calc( 77.778% - 32px );
		padding-right: 48px;
		box-sizing: border-box;
	}

	#program .program-list > li .data .category span {
		font-size: 1.2rem;
		padding: 6px 16px;
		margin-right: 6px;
	}

	#program .program-list > li .data .category span.ticket {
		padding-left: 34px;
	}

	#program  .program-list > li .data .category span.ticket:before {
		width: 17px;
		height: 18px;
		background-size: 17px 18px;
		left: 9px;
	}

	#program .program-list > li .data h3 {
		font-size: 2.8rem;
		font-weight: normal;
		line-height: 1.428;
		margin-top: 16px;
	}

	#program .program-list > li .data .detail li {
		font-size: 1.4rem;
		line-height: 1.428;
		margin-top: 20px;
		padding-left: 34px;
	}

	#program .program-list > li .data .detail li:nth-child(3) {
		line-height: 2;
	}

	#program .program-list > li .data .detail > li:before {
		width: 18px;
	}

	#program .program-list > li .data .detail > li:first-child:before {
		/* font-size: 2.0rem; */
		width: 21px;
		height: 24px;
		background-image: url("../img/common/icon_human.svg");
		background-size: 21px 24px;
	}

	#program .program-list > li .data .detail > li:nth-child(2):before {
		/* font-size: 2.0rem; */
		width: 21px;
		height: 24px;
		background-image: url("../img/common/icon_access.svg");
		background-size: 17px 24px;
	}

	#program .program-list > li .data .detail > li:nth-child(3):before {
		/* font-size: 1.8rem; */
		width: 21px;
		height: 21px;
		background-image: url("../img/common/icon_calendar.svg");
		background-size: 21px 21px;
	}

	#program .program-list > li .data .detail > li .supplement {
		font-size: 1.2rem;
		line-height: 1;
		padding: 5px 5px 4px 5px;
		-webkit-transform: translate(0, -1px);
		transform: translate(0, -1px);
	}

}

@media screen and (min-width:1280px) {

	#program .left-column {
		width: 256px;
	}

	#program .right-column {
		width: calc( 100% - 256px );
	}

	#program .program-list > li .img {
		width: 206px;
	}

	#program .program-list > li .data {
		width: calc( 100% - 238px );
	}

}

@media screen and (min-width:1365px) {

	#program > .title .btn-program {
		right: 64px;
	}

}


/* ===========================================
SP
=============================================*/

@media screen and (max-width:959px) {

	#program > .title {
		width: 84%;
		margin: 50px auto 0 auto;
	}

	#program > .title h2 {
		font-size: 2.8rem;
		font-weight: normal;
	}

	#program > .title .btn-program {
		height: 37px;
		position: absolute;
		top: -6px;
		right: 0;
	}

	#program > .title .btn-program a {
		height: 37px;
		font-size: 1.3rem;
		line-height: 37px;
		padding: 0 15px;
	}

	#program #program-tabs {
		border-bottom: 1px solid #e6e6e6;
		text-align: center;
		margin-top: 48px;
	}

	#program #program-tabs li {
		font-size: 1.3rem;
		display: inline-block;
		margin: 0 22px;
		padding-bottom: 22px;
	}

	#program #program-tabs li.current.hover {
		border-bottom: none;
		padding-bottom: 22px;
	}

	#program #program-tabs li.current {
		border-bottom: 3px solid #000;
		padding-bottom: 19px;
	}

	#program #program-tabs li.current.hover a:hover,
	#program #program-tabs li a:hover {
		text-decoration: none;
	}

	#program #current-modal {
		padding: 40px 4% 0 4%;
	}

	#program #current-modal P {
		font-size: 1.2rem;
		text-align: center;
	}

	#program #current-modal .btn {
		background: #000;
		font-size: 1.2rem;
		color: #FFF;
		padding: 18px 24px;
		margin-top: 15px;
		position: relative;
		cursor: pointer;
	}

	#program #current-modal .btn:after {
		content: "\f00c";
		font-size: 1.6rem;
		font-family: FontAwesome;
		position: absolute;
		top: 50%;
		right: 15px;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
	}

	#modal-wrapper {
		width: 100%;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 99999;
		display: none;
	}

	#modal-wrapper .inner {
		width: 100%;
		height: 100vh;
		background: #FFF;
		overflow: hidden;
		position: relative;
		display: none;
	}

	#program #program-modal {
		display: none;
	}

	#program-modal  .btn-close {
		width: 18px;
		height: 17px;
		position: fixed;
		top: 20px;
		right: 5.333%;
		cursor: pointer;
		z-index: 9999;
	}

	#program-modal  .btn-close,
	#program-modal  .btn-close span {
		display: inline-block;
		transition: all .4s;
		box-sizing: border-box;
	}

	#program-modal  .btn-close span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 1px;
		background-color: #000;
	}

	#program-modal  .btn-close span:nth-of-type(1) {
		top:2px;
		-webkit-transform: translateY(6px) rotate(-45deg);
		transform: translateY(6px) rotate(-45deg);
	}

	#program-modal  .btn-close span:nth-of-type(2) {
		bottom: 2px;
		-webkit-transform: translateY(-6px) rotate(45deg);
		transform: translateY(-6px) rotate(45deg);
	}

	#program-modal h4 {
		font-size: 1.8rem;
		font-weight: normal;
		margin: 34px 8% 0 8%;
	}

	#category-menu,
	#genre-menu,
	#place-menu {
		padding: 34px 4%;
	}

	#place-menu > li  {
		margin-bottom: 20px;
	}

	#category-menu li  a,
	#genre-menu li a,
	#place-menu li a {
		font-size: 1.4rem;
		padding: 16px 4.3478%;
	}

	#place-menu > li ul li a {
		padding-left: calc( 4.3478% + 30px );
	}

	#category-menu li a.current:after,
	#genre-menu li a.current:after,
	#place-menu li a.current:after {
		content: "\f00c";
		font-size: 1.6rem;
		font-family: FontAwesome;
		position: absolute;
		top: 50%;
		right: 15px;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
	}

	#date-slide {
		width: 100%;
		height: 99px;
		overflow: hidden;
		position: relative;
	}

	#date-menu {
		width: calc( 17 * 77px );
		padding: 15px;
		position: absolute;
		top: 0;
		left: 0;
	}

	#date-menu li {
		width: 76px;
		height: 69px;
		border-right: 1px solid #d7d7d7;
		float: left;
	}

	#date-menu li:last-child {
		border-right: none;
	}

	#date-menu li a {
		width: 76px;
		height: 69px;
		font-size: 2.2rem;
		text-align: center;
		padding-top: 16px;
		box-sizing: border-box;
	}

	#date-menu li span.date {
		display: block;
	}

	#date-menu li span.day {
		font-size: 1.0rem;
		margin-top: 10px;
		display: block;
	}

	#btn-schedule a {
		height: 48px;
		font-size: 1.3rem;
		line-height: 48px;
	}

	#program #date-content .right-column {
		padding-bottom: 48px;
	}

	#program .right-column .lead {
		font-size: 1.4rem;
		line-height: 2;
		padding: 20px 4% 0 4%;
	}

	#program .program-list {
		margin: 40px auto 0 auto;
	}

	#date-content .program-list {
		margin: 0 auto;
	}

	#program .program-list > li {

	}

	#program .program-list > li > a {
		padding: 30px 4%;
	}

	#program .program-list > li .date {
		margin-bottom: 18px;
	}

	#program .program-list > li .date > span {
		width: 100%;
		height: 34px;
		line-height: 34px;
		font-size: 1.4rem;
		padding: 0 8px 0 32px;
		margin-bottom: 2px;
		box-sizing: border-box;
	}

	#program  .program-list > li .date > span:before {
		width: 16px;
		height: 16px;
		background-size: 16px 16px;
		left: 9px;
	}

	#program .program-list > li .date .supplement {
		font-size: 0.9rem;
		line-height: 1;
		padding: 4px 3px 3px 3px;
		position: absolute;
		top: 50%;
		right: 8px;
		-webkit-transform: translate(0, -50%);
		transform: translate(0, -50%);
	}

	#program .program-list > li .img {
		width: 30.43%;
	}

	#program .program-list > li .data {
		width: 65.21%;
	}

	#program .program-list > li .data .category span {
		font-size: 1.0rem;
		padding: 5px 10px;
		margin-right: 5px;
	}

	#program .program-list > li .data .category span.ticket {
		padding-left: 25px;
	}

	#program .program-list > li .data .category span.ticket:before {
		width: 14px;
		height: 14px;
		background-size: 14px 14px;
		left: 5px;
	}

	#program .program-list > li .data h3 {
		font-size: 1.8rem;
		font-weight: normal;
		line-height: 1.333;
		margin-top: 18px;
	}

	#program .program-list > li .data .detail li {
		font-size: 1.0rem;
		line-height: 1.5;
		margin-top: 16px;
		padding-left: 25px;
	}

	#program .program-list > li .data .detail li:nth-child(3) {
		line-height: 2;
	}

	#program .program-list > li .data .detail > li:before {
		width: 16px;
	}

	#program .program-list > li .data .detail > li:first-child:before {
		/* font-size: 2.0rem; */
		width: 16px;
		height: 19px;
		background-image: url("../img/common/icon_human.svg");
		background-size: 16px 19px;
	}

	#program .program-list > li .data .detail > li:nth-child(2):before {
		/* font-size: 2.0rem; */
		width: 16px;
		height: 19px;
		background-image: url("../img/common/icon_access.svg");
		background-size: 13px 19px;
	}

	#program .program-list > li .data .detail > li:nth-child(3):before {
		/* font-size: 1.8rem; */
		width: 16px;
		height: 16px;
		background-image: url("../img/common/icon_calendar.svg");
		background-size: 16px 16px;
	}

	#program .program-list > li .data .detail > li .supplement {
		font-size: 0.9rem;
		line-height: 1;
		padding: 4px 3px 3px 3px;
		-webkit-transform: translate(0, -1px);
		transform: translate(0, -1px);
	}

}
