@charset "utf-8";

/*==========================================
 General
===========================================*/

::-webkit-scrollbar{
	width: 10px;
}
::-webkit-scrollbar-track{
	background: #ffffff;
	border: none;
	border-radius: 10px;
	box-shadow: inset 0 0 2px #777; 
}
::-webkit-scrollbar-thumb{
	background: #ccc;
	border-radius: 10px;
	box-shadow: none;
}

html {
	font-size: 62.5%;
	-webkit-overflow-scrolling: touch;
	height: 100%;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	-webkit-overflow-scrolling: touch;
/*	min-width: 1024px; */
	font-size: 1.6rem;
	background: #fff;
	letter-spacing: 0.1em;
	display: flex;
	justify-content: center;
	align-items: center;
}

#container {
	width: 80%;
}
@media only screen and (max-width: 480px) {
	#container {
		width: 90%;
	}
}




.w800 {
	max-width:800px;
	min-height: 100%;
	position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}

.w1080 {
	max-width:1080px;
	min-height: 100%;
	position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}




#notice {
	padding: 5%;
	border: 1px solid #6bcdf3;
	height: auto;
}

h5 {
	font-size: 2.2rem;
	font-weight: 400;
	line-height: 180%;
	color: #6bcdf3;
	text-align: center;
}
@media only screen and (max-width: 768px) {
	h5 {
		font-size: 2rem;
	}
}




/* モーダル表示時に背景固定 */
@media only screen and (max-width: 768px) {
	body {
	min-width:auto;
	}
}

@media only screen and (max-width: 480px) {
	body {
	letter-spacing: 0.1em;
	}
}

.sp {
	display: none;
}
@media only screen and (max-width: 768px) {
	.sp {
		display: block;
	}

}

a {
	color: #000000;
	text-decoration: none;
}
a:link {
	color: #d0102c;
}
a:visited {
	color: #d0102c;
}
a:hover {
	color: #d0102c;
	text-decoration: underline;
	cursor: pointer;
}
a:active {
	color: #d0102c;
}

a.btn{
	padding: 10px 30px;
font-size: 1.8rem;
font-weight: normal;
background-color: #d0102c;
color: #d0102c;
text-align:center;
cursor: pointer;
width:100%;
max-width: 300px;
display: block;
margin: 0 auto;
border-radius: 10px 10px 10px 10px;
-moz-border-radius: 10px 10px 10px 10px;
-webkit-border-radius: 10px 10px 10px 10px;
transition: all 0.2s linear;
box-sizing:border-box;
}
a.btn:hover{
	text-decoration:none;
	opacity:0.8;
}
a.outer-link{
	background: url(images/listmark.png)  no-repeat;
  background-size:16px 16px;
  padding-left:20px;
  padding-top:1px;
line-height:140%;	
}
p {
	font-size: 1.6rem;
	text-align: left;
	color: #696969;
	line-height: 180%;
	margin-bottom:30px;
}
p.small{
	font-size: 1.5rem;
	text-align: left;
	color: #444;
	line-height: 2;
	margin-bottom:30px;
}
p.large{
	font-size: 1.8rem!important;
}
.x-small{
	font-size: 1.3rem;
	line-height:1.3;
	
}
p.last-sentence {
	margin-bottom: 70px!important;
}
p.center {
	text-align: center;
}
p.underline {
	text-decoration:underline;
}
.align-left{
	text-align:left!important;
}
.align-right{
	text-align:right!important;
}
.mgn00 {
	margin-bottom: 0px!important;
}
.mgn10 {
	margin-bottom: 10px!important;
}
.mgn20 {
	margin-bottom: 20px!important;
}
.mgn30 {
	margin-bottom: 30px!important;
}
.mgn40 {
	margin-bottom: 40px!important;
}
.mgn50 {
	margin-bottom: 50px!important;
}
.mgn60 {
	margin-bottom: 60px!important;
}
.mgn70 {
	margin-bottom: 70px!important;
}
.mgn80 {
	margin-bottom: 80px!important;
}
.mgn90 {
	margin-bottom: 90px!important;
}
.mgn100 {
	margin-bottom: 100px!important;
}
.mgn120{
	margin-bottom: 120px!important;
}
.center{
	text-align:center;
}

/*==========================================
te
===========================================*/

h1 {
	display: none;
}
h2 {
	text-align:center;
	margin-bottom:40px;
	font-size:1.6rem;
	font-weight: 600;
	line-height: 150%;
	padding:0;
	display: block !important;
	color: #ffffff;
}
@media only screen and (max-width: 768px) {
	h1 {

	}
}
@media only screen and (max-width: 768px) {
	h2 {

	}
}

h3 {

}

h4 {

}

@media only screen and (max-width: 768px) {
}


/*==========================================
 header
===========================================*/
header {
	width: 100%;
	top:0;
	left:0;
	z-index:700;
	position: relative;
	background:#00000f;
	opacity:1;
	
}
#head-inner{
	margin:0 auto;
	padding:20px 0 10px 25px;
}

#head-inner #socialArea{
	float:right;
	margin-top:-7px;

}

#head-inner ul#socialArea li{
	float:left;
	margin-right:20px;
    height: 35px;
    width: 35px;
}

ul#socialArea li:hover img{
opacity: 0.5;
}

ul#socialArea li g {
	fill: #000;
}
ul#socialAreal li:hover{
	background: #D0102C;
}
ul#socialArea li:hover{
	fill: #D0102C;
}

header.fixed {
	top: 0;
	position:fixed;
	float:none;
	display: block;
	min-width: 1024px;
}

	header.fixed #head-inner{
	}


@media only screen and (max-width: 768px) {
#header {
	padding-top:0;
	padding-bottom:0px;
	
	position:fixed;
}
#head-inner{
	padding:20px 0 10px;
	min-width:auto;
}

}

/*==========================================
 ナビゲーション
===========================================*/

#menu_btn {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	margin: 0 auto !important;
	opacity: 0;
	filter: blur(20px);
	-webkit-animation: top 1s linear 6s 1 forwards;
	animation: top 1s linear 6s 1 forwards;
}

#menu_btn .btn {
	margin: 1%;
	width: 20%;
	list-style-type: none;
}

#menu_btn .btn a img {
	transition: 0.25s all linear;
}

#menu_btn .btn a:hover img {
	filter: saturate(300%);
	background: rgba(255,255,0,.05);
}

@media only screen and (max-width: 768px) {
	#menu_btn .btn {
		width: 50%;
	}
}

@media only screen and (max-width: 400px) {
	#menu_btn .btn {
		width: 70%;
	}
}

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

footer{
	background: #00000f !important;
}



/*==========================================
 Contents
===========================================*/


/*Layout
================================================== */

#contentsArea .wfull{
	width:100%;
}

#contentsArea .w980{
/*	width:980px;*/
	padding: 0 10%;
}

@media only screen and (max-width: 784px){
#contentsArea section p {
    width: 100%;
    line-height: 220%;
    font-size: 1.3rem;
    font-weight: normal;
}
}


#contentsArea section p.w800{
	padding:0;
}

#contentsArea section img{
	width: 100%;
	height: 100%;
}
#contentsArea {
	width:100%;
	padding-top: 0 !important;
}


#newsTitle, #storyTitle, #introTitle, #castTitle, #staffTitle, #theaterTitle{
    margin: 0 auto !important;
    padding-top: 60px;
    padding-bottom: 50px;
    height: 75px;
}

@media screen and (max-width: 784px) {
	#newsTitle, #storyTitle, #introTitle, #castTitle, #staffTitle, #theaterTitle {
	padding-bottom: 20px;
	height: 55px;
}
}

#story p {
 font-size: 2.3rem !important;
 text-align: center !important;
}

@media screen and (max-width: 784px) {
#story p {
 font-size: 1.6rem!important;
}
}

/*==========================================
 キャンペーン
===========================================*/

section#campaign {
  background: linear-gradient(60deg, rgba(0, 0, 0, 1) 30%, rgba(180, 45, 35, 1) 50%, rgba(0, 0, 0, 1) 70%);
}

#campaign #topVisualWrapper {
	display: flex;
	background: linear-gradient(60deg, rgba(0, 0, 0, 1) 30%, rgba(180, 45, 35, 1) 50%, rgba(0, 0, 0, 1) 70%);
}

#contentsArea #shop-list ul li.area_hover{
font-weight: bold;
}

#contentsArea #shop-list ul li{
margin-right: 30px;
margin-bottom: 20px;
font-size: 2.2rem;
list-style-type: none;
cursor: pointer;
}

#contentsArea #shop-list ul{
display: flex;
flex-wrap: wrap;
justify-content: center;
margin-bottom: 30px;
}

#shop-list ul li{
	line-height: 100%;
	display: inline-block;
	position: relative;
	color: #b8b9b9;
 	text-decoration: none;
}

#shop-list ul li:before{
	content: "";
	position: absolute;
	left: 0;
	bottom: -4px;
	width: 100%;
	height: 1px;
	background: #b8b9b9;
	transform: scale(0, 1);
	transition: 0.4s;
}
#shop-list ul li:hover:before {
	transform: scale(1);
}



.fixed-bg {
	background-size:cover;
	background-attachment: fixed;
	background-repeat: no-repeat;
	background-position: center top;
}

.white {
	background: #fff;
	color:#000;
}

.black {
	background: #000;
	color:#fff
}


#contentsArea ul {
	margin-left:20px;
}

#contentsArea ul li{
line-height:180%;
	text-align:left;
	color:#555;
	font-size:1.5rem;
	font-weight:normal;
	list-style-type:disc;

}

.border-box{
	width:100%;
	padding:20px;
	box-sizing:border-box;
	border:1px solid #d0102c;
}

@media only screen and (min-width: 1360px) {
	.fixed-bg {
		background-size: cover;
	}
}

@media only screen and (max-width: 768px) {
	.fixed-bg {
		background-attachment: scroll;
	}
}


	

@media screen and (max-width: 768px) {
/*
#contentsArea{
	padding-top:55px;
}
*/

#contentsArea .contentsBlock{

}
main{
	width:100%;
	float:none;
	margin-right:0;
}
aside{
	width:100%;
	float:none;
}
#contentsArea .w1080{
	width:auto;
}
#contentsArea .w980{
	width:auto;
}
#contentsArea .w900{
	width:auto;
}
#contentsArea .w800{
	width:auto;
}
.fl-box .fl-box-left{
	float:none;
	width:100%;
	margin-right:0;
}
.fl-box .fl-box-right{
	width:100%;
	text-align:center;

}
.fl-box-half{
	width:100%;
}
.fl-box-half-left{
	width:100%;
	float:none;
}
	
section {
	
}

}
@media screen and (max-width: 480px) {
	.fullImg{
		margin-bottom:80px;
	}
.fullImg div{
	width:100%;
	float:none;
	margin-bottom:30px;
	text-align:center;
}
.fullImg div img{
	width:96%;
	margin:0 auto;
}
#contentsArea .w1080{
	padding:0 15px;
}
#contentsArea .w980{
	padding:0 15px;
}
#contentsArea .w800{
	padding:0 15px 15px 15px;
}
#contentsArea section.grey{
	padding-bottom: 20px;
}
}


/*==========================================
news
===========================================*/


#news_release p{
 text-align: left!important;
margin-bottom: 0 !important;
}

.bg_gray {
	background: #b3b3b3;
	padding: 3%;
	margin-bottom: 3%;
}

#news_release h4{
	font-size: 1.6rem;
}

#news_release h3{
	font-size: 2.2rem;
	font-weight: 600;
}

.i30{
 width: 30%!important;
}

.i50{
 width: 50%!important;
}

.i70{
 width: 70%!important;
}







/*==========================================
 Profile&Keyword
===========================================*/
.culumn2{
	width:100%;
	margin-bottom:80px;
}

.culumn2 .left{
	width:240px;
	padding-right:30px;
	float:left;
	text-align:left;
	box-sizing:border-box;
}

.culumn2 .left img{
	width:100%;
	height:auto;
}

.culumn2 .right{
	width: calc(100% - 240px);
	text-align:left;
	float:left;
	box-sizing:border-box;
}

.culumn2 h3{
	line-height:100%!important;
	margin-bottom:5px!important;
	color: #555;
}

.culumn2 p{
	font-size:1.4rem!important;
	margin-bottom:5px!important;
	line-height:170%!important;
}

.culumn2 a{
	color: #009d95!important;
}

.culumn2 .name{
	font-size:1.4rem!important;
	letter-spacing:0!important;
}

.sub_prof {
	padding-top:40px;
}

@media only screen and (max-width: 768px) {
	.culumn2{
		margin-bottom:40px;
	}
	.culumn2 .left{
		width:30%;
	}
	.culumn2 .right{
		width:70%;
		
	}
	.culumn2 .right p{
		
	}

	.culumn2 img{
		margin-bottom:20px;
	}

	.sub_prof {
		padding-top:20px;
	}
}

@media only screen and (max-width: 480px) {
	.culumn2 .left{
		width:100%;
		float:none;
		text-align:center;
		padding:0;
	}
	.culumn2 .left img{
		max-width:210px;
	}
	.culumn2 .right{
		width:100%;
		float:none;
		padding-left:0;
	}
	.culumn2 .left-60{
		width:100%;
		float:none;
		padding-right:0;
	}
	.culumn2 .right-40{
		width:100%;
		float:none;
	}
}


/* ------------------------------------------------------------
	Clearfix
------------------------------------------------------------ */

.clearfix:after {
	content: ".";
	display: block;
	height: 0;
	font-size: 0;
	clear: both;
	visibility: hidden;
}
.clearfix {
	display: inline-block;
}
/* Hides from IE Mac */
* html .clearfix {
	height: 1%;
}
.clearfix {
	display: block;
}
/* End Hack */

/*==========================================
	タイトルとYouTubeモーダル
===========================================*/

.noScroll {
	overflow: hidden;
}
#loader {
	width: 100%;
	height: 100%;
	min-height: 100%;
	background-color: #00000f;
	position: absolute;
	z-index: 1000;
}
#loader img {
	position: absolute;
	top: 35%;
	left: 50%;
	-webkit-transform: translateY(20%) translateX(-50%);
	transform: translateY(50%) translateX(-50%);
	width: 25%;
	animation: blinking 1s ease-out infinite alternate;
}
@keyframes blinking {
	0% {opacity: 0.5;}
	100% {opacity: 1;}
}


@media only screen and (max-width: 768px) {
	#loader img {
		width: 60%;
	}
}

.modalWrapper_y, .modalWrapper_n {
	width: 100%;
	height: 100%;
	background-color: #00000f;
	position: fixed;
	top: 0;
	z-index: 1000;
	overflow: hidden;
	display: none;
}

.youtube {
	position: fixed;
	width: 85%;
	height: 85%;
	top: 50%;
	left: 50%;
	-webkit-transform: translateY(-50%) translateX(-50%);
	transform: translateY(-50%) translateX(-50%);
	overflow: hidden;
}

.iframeWrapper iframe {
	position: fixed;
	width: 70%;
	height: 85%;
	top: 50%;
	left: 50%;
	background: #ffffff;
	-webkit-transform: translateY(-50%) translateX(-50%);
	transform: translateY(-50%) translateX(-50%);
	overflow: scroll;
}

@media screen and (orientation: portrait) {
	.youtube {
		width: 100%;
		height: 56.25%;
	}
}

/*.youtube .iframeWrapper {
	position: relative;
	padding-top: 56.25%;
	width: 100%;
}*/
/*.youtube iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translateY(-50%) translateX(-50%);
	transform: translateY(-50%) translateX(-50%);
	width: 100%;
	height: 80%;
}*/
#closeBtn {
	position: fixed;
	top: 0;
	right: 25px;
	cursor: pointer;
}

#closeBtn:before{
	content: "";
	display: inline-block;
	width: 2px;
	height: 50px;
	background-color: #00000f;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	right: 0;
}
#closeBtn:after{
	content: "";
	display: inline-block;
	width: 2px;
	height: 50px;
	background-color: #00000f;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	position: absolute;
	top: 0;
	right: 0;
}

@media only screen and (max-width: 768px) {
	.youtube iframe {
		top: 55%;
	}
}

/* ------------------------------------------------------------
	コンテンツのフェードインアニメーション
------------------------------------------------------------ */
.fadeInAfterUp {
	-webkit-transform: translateY(0) !important;
	transform: translateY(0) !important;
	opacity: 1 !important;
}
.fadeInAfterLr {
	-webkit-transform: translateX(0) !important;
	transform: translateX(0) !important;
	opacity: 1 !important;
}

/* ------------------------------------------------------------
	ページトップに戻るボタン
------------------------------------------------------------ */
#backToTop {
	width: 40px;
	height: 40px;
	background-color: rgb(0,0,0,0.5);
	position: fixed;
	bottom: 20px;
	right: 20px;
	padding: 5px;
	display: none;
}
#backToTop a {
	width: 20px;
	height: 20px;
	border-top: solid 5px #ffffff;
	border-right: solid 5px #ffffff;
	border-radius: 3px;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	display: block;
	margin: 35% auto 0 auto;
}

