@charset "utf-8";

/* 
===================== 1.Universal reset ==========================
*/
img {
	width: 100%;
	border: none;
	margin: 0;
	padding: 0;
	height:auto;
}
.clear{clear: both;}
.word{display: inline-block;}

/* 
===================== 2.Body and base setting ====================
*/
body{
	font-family: 'M PLUS Rounded 1c', sans-serif;
	font-display:swap;
    background: #FFF;
	color: #803502;
	margin: 0 auto;
	padding: 0;
	text-align: center;
	}
    @media only screen and (max-width:767px){
        body{width:100%;}
    }

a:link{
	color:#803502;
    text-decoration: none;
	}
a:hover img{
    opacity:0.8;
    filter:alpha(opacity=80);
    -ms-filter: “alpha( opacity=80 )”;
	}
a:visited{
    color: inherit;
    }

/* 画面外にいる状態 */
.fadein {
    opacity : 0.1;
    transform : translate(0, 50px);
    transition : all 500ms;
    }
/* 画面内に入った状態 */
.fadein.scrollin {
    opacity : 1;
    transform : translate(0, 0);
    }
/* 2つ目の要素に200msのdelayをかける */
#effect2 > div .fadein:nth-of-type(2) {
    -moz-transition-delay:200ms;
    -webkit-transition-delay:200ms;
    -o-transition-delay:200ms;
    -ms-transition-delay:200ms;
    }
/* 3つ目の要素に400msのdelayをかける */
#effect2 > div .fadein:nth-of-type(3) {
    -moz-transition-delay:400ms;
    -webkit-transition-delay:400ms;
    -o-transition-delay:400ms;
    -ms-transition-delay:400ms;
    }

/* 
===================== 3.Content setting ====================
*/

/* 背景 */ 
.field {
    width:100%;
    margin: 0 auto;
	padding: 0;
	background-color:#fffdf2;
    z-index: -1;
    }

.bg {
	background:url("img/bg.gif")repeat;
	background-size:50px;
	background-position:top center;
}
    @media screen and (max-width:767px){ 
        .bg {background-size:8%;}
    } 

/*================ Navigation ===============*/

.btn-nav {
  position: fixed;
  right: 0px;
  top: 0px;
  width: 54px;
  height: 54px;
  z-index: 9999;
  transition: all 0.4s ease-out;
	justify-content: center;
    align-items: center;
	background-color: #c90900;
}
/* ナビボタン三本線*/
.btn-nav a {
	display: block;
	width: 100%; height: 100%;
	/*background: url(img/btn_humberger.png) no-repeat;
	background-size: 100%;*/
}
.btn-nav span,
.btn-nav span:before,
.btn-nav span:after {
	content: '';
	display: block;
	top:14px;
	left:12px;
	height: 3px;
	width: 30px;
	border-radius: 3px;
	background-color: #FFF;
	position: absolute;
}
.btn-nav span:before {
	top: 10px;
	left:0px;
}
.btn-nav span:after {
	top: 20px;
	left:0px;
}

/* ナビボタン✕ */
.btn-nav-close {
  right: 220px;
}
.btn-nav-close a {
	/*background: url(img/btn_humberger-close.png) no-repeat;
	background-size: 100%;*/
}
.btn-nav-close span,
.btn-nav-close span:before,
.btn-nav-close span:after {
	content: '';
	display: block;
	top:15px;
	left:13px;
	height: 3px;
	width: 30px;
	border-radius: 3px;
	background-color: #00000000;
	position: absolute;
}
.btn-nav-close span:before {
	top: 10px;
	left:0px;
	transform: rotate(-45deg);
	background-color: #FFF;
}
.btn-nav-close span:after {
	top: 10px;
	left:0px;
	transform: rotate(45deg);
	background-color: #FFF;
	}
    @media only screen and (max-width:769px){	
		.btn-nav {
		  right: 0px;
		  top: 0px;
		  width: 45px;
		  height: 45px;
		}
		.btn-nav span,
		.btn-nav span:before,
		.btn-nav span:after {
			top:11px;
			left:8px;
		}
		.btn-nav span:before {
			top: 10px;
			left:0px;
		}
		.btn-nav span:after {
			top: 20px;
			left:0px;
		}
		.btn-nav-close {
			right: 221px;
		}
		.btn-nav-close span:before {
			top: 10px;
		}
		.btn-nav-close span:after {
			top: 10px;
			}
    }

/* ナビ展開時 */
.nav-wrap {
	position: fixed;
	width: 220px;
	height: 100%;
	background: rgba(255,255,255,.95);
	/*box-shadow:-1px 0 0px #000;*/
	top: 0;
	right: -220px;
	z-index: 999;
	transition: all 0.4s ease-out;
}
.nav-open {
  top: 0;
  right: 0;
}
.nav-wrap ul {
	overflow: hidden;
	margin:0;
	padding:0;
	text-align:left;
}
.nav-wrap ul li {
	/*list-style-type: none!important;*/
	border-bottom: solid 1px #000;
	margin:0;
}
.nav-wrap ul li a {
	display: block;
	/*width: 100%; height: 100%;*/
	padding: 15px 15px;
	color: #c90900;
	/*background-color:#fd0;*/
	font-weight:bold;
	letter-spacing: .1em;
	transition: all 0.2s ease-out;
}
.nav-wrap ul li a:hover {
	color: #fff;
	background: #c90900;
}


/*================ header ===============*/

#header {
	width:100%;
	margin: 0 auto;
	padding: 0;
	background:#c90900;
	position: relative;
	}

h1 img{width: 100%;}

.text-scroll {
	width:95%;
	max-width:1000px;
    margin:0 auto;  
	padding: 0 0 10px;
    overflow:hidden;
	}
	.text-scroll p {
		margin:0 auto;
		font-size:1.8em;  /*文字サイズ*/
		color:#fff;       /*文字の色*/
		animation: flowing 20s linear infinite; /*アニメーション*/
		transform:translateX(100%);             /*最初の位置*/
		white-space: nowrap;
	}
	@keyframes flowing {
	  100% {transform:translateX(-160%);/*終了の位置*/}
	}
    @media screen and (max-width: 767px) {
        .text-scroll p {font-size: 1.2em;}
		@keyframes flowing {100% {transform:translateX(-280%);/*終了の位置*/}}
    }
		
.cpn {
	width: 100%;
	margin: 0 auto;
	padding: 0;
	left:-420px;
	bottom:-80px;
	position: absolute;
	z-index:1;
	
    }
	.cpn img{
		width: 35%;
		max-width: 220px;
		transition: all 0.2s;
	}
	.cpn img:hover{
		transform: scale(1.1, 1.1);
		opacity:1;
		filter:alpha(opacity=100);
		-ms-filter: “alpha( opacity=100 )”;
    }
    @media screen and (max-width: 1100px) {
        .cpn {left:-35%;bottom:-20%;}
    }
    @media screen and (max-width: 767px) {
        .cpn {left:-31.5%;bottom:-21%;}
    }
    
.tab-box{
	width: 100%;
	max-width: 1000px;
	margin:-3px auto 4rem;
	display: flex;
	flex-wrap:wrap;
	justify-content:flex-end;
	}
    @media screen and (max-width: 767px) {
        .tab-box {
            margin:-3px auto 1rem;
        }
    }
.btn-anker {
    display: inline-block;
	width: 43%;
	max-width: 300px;
	margin: 0 0 0 1rem;
	font-size: 1.5rem;
	font-weight: 700;
	background: #FFF;
	border: 3px solid #c90900;
	border-radius: 0 0 2em 2em;
	/*box-shadow:3px 3px 0px #3333330;
	transition: all 0.2s;*/
    }
	.btn-anker a{
		display:block;
		padding: 20px 0;
		color: #c90900;
	}
    .btn-anker a:after{
        font-family: "Font Awesome 5 Free";
        content: '\f13a';
        padding:0 1%; 
		color: #c90900;
        /*vertical-align: middle;*/
        }
    .btn-anker:hover{
		/*transform: translateY(5px);
		background: #c90900;*/
		color: #c9090080;
    }
    @media screen and (max-width: 767px) {
        .btn-anker{
			font-size: 1em;
			border-radius: 0 0 1em 1em;
        }
		 .btn-anker a{
            padding: 8% 0;
        }
    }

/*============= YouTube ===============*/
#youtube{
	width:100%;
	margin:0 auto;
	padding:0 0 140px;
	}
    @media screen and (max-width:767px){
		#youtube {
			padding:0 0 15%;
		}
    }
.video-box{
	width:91%;
	max-width:1000px;
	margin:30px auto;
	border:4px solid #FFF;
	border-radius:15px;
    }
    @media screen and (max-width:767px){
        .video-box{
			margin:3% auto;
			border-radius:8px;
		}
    }
.video{
    height: 0;
    overflow: hidden;
	position:relative;
	padding-top:56.25%;
    }
.video-box .video iframe{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
	border-radius:15px;
	}
    @media screen and (max-width:767px){
		.video-box .video iframe{
			border-radius:8px;
		}
    }

/*================ Story ===============*/

#story {
	width:100%;
	margin:0 auto;
	padding:0px 0 140px;
	}
    @media screen and (max-width:767px){ 
		#story {
			padding:10% 0 25%;
		}
    } 

.title{
	width:90%;
	max-width:640px;
	margin:0 auto;
	padding:0;
	z-index:1;
	}
	.title::before{
		content:' ';
		width:750px;
		height:500px;
		margin-top:-90px;
		padding:0;
		background-color:#fffdf2;
		border-radius:100%;
		left:calc(50% - 375px);
		position:absolute;
		}
		@media screen and (max-width:767px){ 
			.title::before {
				width:90%;
				height:300px;
				margin-top:-15%;
				left:calc(50% - 45%);
			}
		} 
.title-bg{
	width:90%;
	max-width:640px;
	margin:0 auto;
	padding:0;
	z-index:1;
	}
	.title-bg::before{
		content:' ';
		width:750px;
		height:500px;
		margin-top:-90px;
		padding:0;
		background:url("img/bg.gif")repeat;
		background-size:50px;
		background-position:50px -60px;
		border-radius:100%;
		left:calc(50% - 375px);
		position:absolute;
		}
		@media screen and (max-width:767px){ 
			.title-bg::before {
				width:90%;
				height:300px;
				margin-top:-15%;
				left:calc(50% - 45%);
				background-size:8.9%;
				background-position:20.5% 8%;
			}
		} 
.title-text{
	width:95%;
	margin:auto;
	padding: .5rem 0 2rem;
	background:url("img/title.png")no-repeat;
	background-position:top center;
	background-size:contain;
	font-size:2.5rem;
    font-weight:700;
	color:#FFF;
	text-shadow : /* 文字の縁取 */ 
       3px  3px 1px #c90900,
      -3px  3px 1px #c90900,
       3px -3px 1px #c90900,
      -3px -3px 1px #c90900,
       3px  0px 1px #c90900,
       0px  3px 1px #c90900,
      -3px  0px 1px #c90900,
       0px -3px 1px #c90900; 
	position:relative;
	}
    @media screen and (max-width:767px){ 
		.title-text {
			margin:-2rem auto 0;
			padding:.5rem 0 2rem;
			font-size:1.3rem;
			text-shadow : /* 文字の縁取 */ 
			   2px  2px 1px #c90900,
			  -2px  2px 1px #c90900,
			   2px -2px 1px #c90900,
			  -2px -2px 1px #c90900,
			   2px  0px 1px #c90900,
			   0px  2px 1px #c90900,
			  -2px  0px 1px #c90900,
			   0px -2px 1px #c90900; 
		}
    } 
	.title-text span{
		display:block;
		margin-top:1rem;
		padding:0;
		font-size:70%;
		font-weight:700;
		color:#c90900;
		text-shadow : /* 文字の縁取 */ 
			   1px  1px 6px #ffffff,
		  -1px  1px 10px #ffffff,
		   1px -1px 10px #ffffff,
		  -1px -1px 10px #ffffff,
		   1px  0px 10px #ffffff,
		   0px  1px 10px #ffffff,
		  -1px  0px 10px #ffffff,
		   0px -1px 10px #ffffff; 
		}
		@media screen and (max-width:767px){ 
			.title-text span{
				margin-top:1rem;
				font-size:85%;
			}
		} 

.contents {
	width: 80%;
	max-width:900px;
	margin: 10px auto 40px;
	padding: 2rem 2%;
	font-size:1.5em;
	background-color:#FFF;
	border-radius:3rem;
	box-shadow:0px 0px 20px 10px rgb(255 255 255);
	position:relative;
	z-index:0;
	}
    @media screen and (max-width:820px){ 
        .contents {
			font-size:1.3em;
		}
    } 
    @media screen and (max-width:767px){ 
        .contents {
			margin: 0 auto;
			padding: 1rem;
			font-size:0.9rem;
			border-radius:1rem;
			box-shadow:0px 0px 10px 5px rgb(255 255 255);
		}
    } 
	.contents p{
		width:90%;
		margin:2rem auto;
		transform:rotate(0.2deg);
		font-weight:bold;
		}
		@media screen and (max-width:767px){
			.contents p{
				width:100%;
				margin:1rem auto;
			}
		}
.scene-image {
	width: 100%;
	margin: 0 auto;
	}
	.scene-image img{
		width: 47%;
		margin: 10px 0;
		}
		@media screen and (max-width:767px){ 
			.scene-image img{
				width: 100%;
				margin: 0 auto;
			}
		} 


/*================ Character ===============*/

#character {
	width:100%;
	margin:0 auto;
	padding:0px 0 140px;
	}
	@media screen and (max-width:767px){
		#character {padding:10% 0 25%;}
	} 
	#character ul{list-style-type: none;padding: 0;}

.chara-box {
	width: 100%;
	margin: 0 auto;
	padding: 0;
	vertical-align: top;
	display: inline-block;
	}
    .chara-box img{ 
        width: 45%;
		margin-top:10px;
        }
		@media screen and (max-width:767px){
			.chara-box img{
				width: 35%;
				margin-top:1rem;
			}
		} 
	.chara-box .text {
		width: 48%;
		font-size: 0.9em;
		}
		@media screen and (max-width:767px){
			.chara-box .text {
				width: 63%;
				font-size: 0.85em;
			}
		} 

.text {
	display: inline-block;
	height: auto;
	margin:5% auto 0;
	padding: 3% 0 0;
	vertical-align: top;
	font-size: 1em;
	font-weight: 700;
	text-align: left;
	transform:rotate(0.2deg);
	}
    .text span{
		width: 100%;
		margin-bottom: 1rem;
		padding-bottom: .8rem;
        font-weight: 700;
        font-size: 1.4em;
		line-height:2rem;
        border-bottom: 4px dotted;
        display: block;
        }
		@media screen and (max-width:767px){
			.text span{
				line-height:1.2rem;
				border-bottom: 3px dotted;
				margin-bottom: .5rem;
				padding-bottom: .5rem;
			}
		} 




/*================ Broadcast ===============*/

#broadcast {
	width:100%;
	margin:0 auto;
	padding:0px 0 140px;
	}
	@media screen and (max-width: 767px) {
		#broadcast {
			padding:10% 0 25%;
		}
		#broadcast ul{
			margin: 0 0 0 -1.2rem !important;
		}
	}
	#broadcast .text{
		margin: 0;
		padding: 0;
		}
		@media screen and (max-width: 767px) {
			#broadcast .text{
				font-size: 1.1em;
			}
			#broadcast .text span{
				font-size: 1.2em;
			}
		}
	
li {
	margin:-.5rem auto 0;
	}
	@media screen and (max-width: 767px) {
		li {
		margin:0 auto;
		}
	}

.col_1 {
	width:90%;
	margin:1.5rem auto;
    }
.col_2 {
	width:90%;
	margin:2rem auto;
	display: flex;
	flex-wrap:wrap;
	justify-content:space-between;
    }
    .col_2  > div {
        width:48%;
        margin: 10px auto;
        }
		@media screen and (max-width: 767px) {
			.col_2  > div {
				width:100%;
				margin: 2% auto 0;
				padding:1%;
			}
		}
	.col_2 img {
        width:80%;
		max-width: 320px;
        margin: 11px auto;
		border:1px solid #dadada;
        }
		@media screen and (max-width: 767px) {
			.col_2 img {
				width:100%;
			}
		}
#broadcast a:link{
	color:#c90900;
    text-decoration: underline;
	}
#broadcast a:visited{
    color:#c98000;
    }

/*================ Campaign ===============*/

#campaign {
	width:100%;
	margin:0 auto;
	padding:0px 0 140px;
	}
    @media screen and (max-width:768px){
		#campaign {
			padding:10% 0 25%;
		}
    }
	#campaign .text{
		width:100%;
		max-width:640px;
		margin:0 auto;
		padding: 5% 0 0;
		/*border-radius:15px;
		background-color:#FFF;
		box-shadow:0px 0px 5px 5px #00a8ff;*/
		}
		@media screen and (max-width:768px){
			#campaign .text{
				margin: 2% auto;
			}
		}
	#campaign .text span{
		text-align:center;
		color:#00a8ff;
		}
		@media screen and (max-width:768px){
			#campaign .text span{
				font-size:1.2em;
				margin-bottom:0;
			}
		}
	#campaign img{
		width:20%;
		max-width:88px;
		margin:20px auto;
		}
		@media screen and (max-width:768px){
			#campaign img{
				margin:0 auto;
			}
		}
	#campaign li{
		margin: 4% auto !important;
	}
	@media screen and (max-width:768px){
		#campaign ol{
			margin: 0 0 0 -1em !important;
		}
	}
	#campaign a:link{
		color:#00a8ff !important;
		text-decoration: underline !important;
	}
	#campaign a:visited{
		color:#00a8ff !important;
		text-decoration: underline !important;
	}

.twitter-box{
	width: 100%; 
	max-width:450px;
	margin: 0 auto 30px; 
	text-align: center;
}

/*================ Cast & Staff ===============*/

#cast_staff {
	width:100%;
	margin:0 auto;
	padding:0px 0 140px;
	}
    @media screen and (max-width:767px){
		#cast_staff {
			padding:10% 0 25%;
		}
    }
	#cast_staff .text{
		margin:20px auto;
		padding: 0;
		}
	#cast_staff .text span{
		max-width:600px;
		margin:0 auto 1rem;
		text-align:center;
		}

dl{
	width:100%;
	margin:0 auto 2em;
}
dt{
	width:50%;
	display:inline-block;
	text-align:right;
	font-size:90%;
	/*font-weight:normal;*/
	}
    @media screen and (max-width:768px){
		dt{
			width:60%;
			font-size:83%;
		}
    }
dd{
	margin-left:.5rem;
	display:inline-block;
}
.f80{
	font-size:80%;
	display:inline-block;
}
table{
	width:100%;
	border-collapse: separate;
	border-spacing:0 1rem;
	line-height:1.8rem;
	}
    @media screen and (max-width:768px){
        table {
			border-spacing: 0 .5rem;
			line-height:1.2rem;
		}
    }
th{
	width:50%;
	text-align:right;
	font-size:83%;
	/*font-weight:normal;*/
	vertical-align:top;
}

/*================ Link ===============*/

#link {
	width:100%;
	margin:0 auto;
	padding:0px 0 30px;
	}
	@media screen and (max-width: 767px) {
		#link {
			padding:2rem 0;
		}
	}
	
#sns_box{
	width:100%;
	margin: 0 auto;
	padding:20px 0 ;
	text-align:center;
	background-color: #FFF;   /* 背景色 */
	}
	#btn_box img{
		float:none;
		margin: 0 auto;
		padding:15px;
		width:70px;
		}
	#btn_box{
		width:100%;
		text-align:center;
		margin:0 auto;
		padding: 0 auto;
		}

#box_bnr{
	width:100%;
	margin: 10px auto;
	padding:0;
	text-align:center;
	}
	#box_bnr img{
		max-width:520px;
		padding-bottom:15px;
		}
    @media screen and (max-width:768px){ 
		#sns_box{
			width:100%;
			margin:  0 auto;
			padding:20px 0 ;
			text-align:center;
			background-color: #FFF;   /* 背景色 */

			}
		#btn_box{
			width:100%;
			text-align:center;
			margin:0 auto;
			padding: 0 ;
			}
		#btn_box img{
			width:14%;
			float:none;
			margin: 0 auto;
			padding:2%;
			}
        #box_bnr{width:90%;margin: 5% auto;padding:0;text-align:center;}
        #box_bnr img{padding-bottom:1%;}	
    }

 /*================ Copyright ===============*/
#copyright {
	width: 100%;
	text-align:center;
	margin: 0 auto;
	padding:10px 0 5%;
	}

/*============= PageTop =============*/
#page_top{
    width: 60px;
    height: 60px;
    position: fixed;
    right: 15px;
    bottom: 15px;
    background: #FFF;
    opacity: 1;
	border:3px solid #de5337;
    border-radius: 50%;
	box-shadow:3px 3px 2px #78341e30;
    z-index: 10;
    }
    #page_top a{
        position: relative;
        display: block;
        width: 60px;
        height: 60px;
        }
    #page_top a::before{
        font-family: 'Font Awesome 5 Free';
        font-weight: 700;
        content: '\f106';
        font-size: 25px;
        color: #de5337;
        position: absolute;
        width: 50%;
        height: 50%;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        margin: auto;
        text-align: center;
        }

/*============= PopUp =============*/
body.open_popup {
    overflow: hidden;
}

.bg_onetime_popup {
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 9999;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    transition: 0.5s;
}

body.open_popup .bg_onetime_popup {
    opacity: 1;
    visibility: visible;
}

.onetime_popup {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 90%;
    max-width: 700px;
    background-color: #fff;
	}
	@media screen and (max-width:1024px){ 
		.onetime_popup {
			max-width: 500px;
		}
	}

.onetime_popup_title {
    position: relative;
    padding: 1em 80px;
    margin: 0px;
    background-color: #c90900;
    color: #fff;
    font-size: 2rem;
    text-align: center;
    line-height: 1.5;
	}

.onetime_popup_title_close {
    position: absolute;
    top: 50%;
    right: 30px;
    width: 30px;
    height: 30px;
    transform: translateY(-50%);
    cursor: pointer;
}
.onetime_popup_title_close::before,
.onetime_popup_title_close::after {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 100%;
    height: 4px;
    background-color: #fff;
    content: "";
}
.onetime_popup_title_close::before {
    transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.onetime_popup_title_close::after {
    transform: translateX(-50%) translateY(-50%) rotate(-45deg);
}

.onetime_popup_content {
    padding: 1rem;
    text-align: center;
	}
	@media screen and (max-height: 600px), screen and (min-width: 1024px){ 
		.onetime_popup {
			width: auto;
		}
		.onetime_popup_content img{
			width: auto;
			max-width: 100%;
			max-height:80vh;
		}
		.onetime_popup_title {
			padding: .5em 80px;
			font-size: 1.5rem;
		}
	}

	
/*===============================================
          SP only  
===============================================*/
@media screen and (max-width:767px){
.sp { display: block !important; }
.pc { display: none !important; }
}
/*==============================================
           PC
==============================================*/
@media only screen and (min-width:768px){
.sp { display: none !important; }
.pc { display: block !important; }
}