/* ========== 共通 ========== */
html {
    font-family: 'Noto Serif JP', 'Oswald',"Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif, -apple-system,BlinkMacSystemFont, sans-serif;
	font-size: calc(100vw / 32); /*320px時に10px*/
    color:#333333;
    background-color: #ffffff;
    margin: 0 auto;
    padding: 0;
    min-width: 240px;

	scroll-behavior:smooth;
	-webkit-scroll-behavior:smooth;
	overscroll-behavior-y:contain;
	-webkit-overflow-scrolling: touch;
	overflow-y: scroll;

	opacity: 0;
}

body, header, section, footer {
    margin: 0;
    padding: 0;
}
h1,h2,h3,h4,h5 {
    margin: 0;
    padding: 0;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}
a {
	text-decoration: underline;
	color: #ff6666;
	-webkit-transition: all 0.5s;
	-webkit-transition-delay: 0;
	transition: all 0.5s;
	transition-delay: 0;
	opacity: 1;
}
a:hover {
	color: #999999;
}
body {
	font-size: 1.4em;
	overflow: hidden;
}


/* ========== ファーストビュー ========== */
header {
    position: relative;
    width: 100%;
	height: 24vw;
	height: initial;
	max-height: 24vh;
	background-color: rgba(214,19,57,1);
	z-index: 1000;
}

header h1 {
	position: fixed;
	display: block;
	width: 20%;
	z-index: 10;
	margin: 2%;
	transition: all 0.5s ease;
}
header h1:hover {
	opacity:0.8;
}
#top #logo {
	opacity:0;
}
#top #logo.active {
	opacity:1;
}
header h1 {
	opacity:0;
}
header h1.active {
	opacity:1;
}
input#menu_btn_check {
	display: none;
}
label.menu_btn {
	position: fixed;
	top: 0;
	right: 0;
	width: 12%;
	height: 12vw;
	margin: 6% 4%;
	background-color: rgba(255,255,255,0.8);
	border-radius: 50%;
	z-index: 111;
}
label.menu_btn span {
	display: block;
	position: absolute;
	left: 20%;
	width: 60%;
	height: 4px;
	content: '';
	transition: all 0.2s ease-in-out;
	background-color: rgb(214,19,57);
}
label.menu_btn span:nth-of-type(1) {
	top: calc(30% - 2px);
}
label.menu_btn span:nth-of-type(2) {
	top: calc(50% - 2px);
}
label.menu_btn span:nth-of-type(3) {
	top: calc(70% - 2px);
}

#menu_btn_check:checked ~ label.menu_btn span:nth-of-type(1) {
	top:calc(50% - 2px);
	transform: rotate(135deg);
}
#menu_btn_check:checked ~ label.menu_btn span:nth-of-type(2) {
	transform: scale(0);
}
#menu_btn_check:checked ~ label.menu_btn span:nth-of-type(3) {
	top:calc(50% - 2px);
	transform: rotate(-135deg);
}

header nav {
	position: fixed;
	min-height: 100%;
	width: 100%;
	padding: 20%;
	box-sizing: border-box;
	opacity: 0;
	pointer-events: none;
	z-index: 110;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	overflow-y: auto;

	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap:1em;

	transition: all 0.5s ease;
}
header nav::before {
	position: fixed;
	content: "";
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	pointer-events: none;
	height: 100%;

	background-color: rgba(0, 0, 0, 0.5);
}
#menu_btn_check:checked ~ nav {
	pointer-events: all;
	opacity: 1;
}
header nav a {
	position: relative;
	font-family: 'Oswald', serif;
	font-size: 5vw;
	text-decoration: none;
	color: #fff;
	padding: 0.2em 1em;
	transform: scaleX(0);
	background-color: rgba(214,19,57,0.8);
	flex-grow: 1;
}
header nav a:hover {
	color: #fff;
}
#menu_btn_check:checked ~ nav a {
	transform: scaleX(1);
}
header nav a::after {
	position: absolute;
	display: block;
	content: "";
	top: 0%;
	left: 0%;
	width: 100%;
	height: 100%;
	border: solid 1px transparent;
	transition: all 0.5s ease;
}
header nav a:hover::after {
	border-color: #fff;
	transform: scale(0.95,0.9);
}
header h2 {
	position: absolute;
	display: block;
	width: 75%;
	top: 50%;
	left: 50%;
	right: 50%;
	transform: translate(-50%,-50%);
	mix-blend-mode: multiply;
}
header h3 {
	position: absolute;
	display: block;
	width: 100%;
	margin: auto;
	bottom: 0%;
	left: 0%;
	right: 0%;
	filter: drop-shadow(0 0 6px rgba(0, 0, 0, 0.8));
}
#main {
	display: block;
	position: relative;
    width: 100%;
	height: 142.85vw;
	margin-bottom: 40vw;
	background-size: contain;
	pointer-events: none;
}
#main0 {
	overflow: hidden;
}
#main1 {
	display: block;
	position: absolute;
	width: 120%;
	top: 18%;
	left:-24%;
	z-index: 10;
}
#main2 {
	display: block;
	position: absolute;
	width: 90%;
	top:14%;
	right:-34%;
	z-index: 11;
}
#main_sub {
	display: none;
}

/*
#kv {
  display: block;
  background-color: #000;
}
#kv div {
  position: relative;
}
#kv div img {
  width: 100%;
  margin: 0;
  pointer-events: none;
}
#kv div img:not(:first-child) {
  position: absolute;
  bottom: 0%;
}
#kv div img.text {
  width: 50%;
  left: 2%;
  bottom: 2%;
}
#kv div img.logo {
  width: 25%;
  right: 2%;
  bottom: 2%;
}
#kv video {
	width: 100%;
}
*/
#kv {
	display: block;
	background-color: #000;
	max-height: 100lvh;
	overflow: hidden;
}

#kv video {
	width: 100%;
}

#kv .sp ,
#kv .pc {
	position: relative;
	display: block;
/*	background: linear-gradient(25deg, rgba(215,82,94,1) 15%, rgba(245,214,137,1) 30%, rgba(255,255,151,1) 40%, rgba(255,255,151,1) 75%, rgba(255,255,255,1) 95%);
*/
	overflow: hidden;
}
#kv .sp {
	max-height: 100lvh;
	aspect-ratio: 3 / 4;
	margin: auto;
}
#kv .pc {
	display: none;
	max-height: 1080px;
	margin: auto;
	aspect-ratio: 16 / 9;
}
#kv img {
	position: absolute;
	max-width: initial;
}



#animation_container,
#_preload_div_ {
	width: 100%;
	height: 100%;
	max-width: 1980px;
	max-height: 1080px;
	margin:auto;
	left:0;
	top:0;
	right:0;
}
#animation_container {
	position:relative;
	background-color: rgba(0, 0, 0, 0.5);
}
#_preload_div_ {
	position:absolute;
	display: flex;
	place-items: center;
	justify-content: center;
	background-color: rgba(255, 0, 0, 0.5);
}
#animation_container #canvas {
	width: 100% !important;
	height: 100% !important;
}

.sp #animation_container {
	aspect-ratio: 3 / 4;
}
.pc #animation_container {
	aspect-ratio: 16 / 9;

	margin: auto;
	max-width: 1920px;
	max-height: 1080px;

	background-color: #00ACF2;
}

.banner_top {
	text-align: center;
	margin: 4em 1em auto;
}
.banner_top a:hover {
	transition-duration: 0.2s;
	filter: drop-shadow(0 0 10px rgba(255,255,0,1));
}


/* ========== 各セクション ========== */
article {
/*	background: url("../img/bg.jpg") bottom center ;*/
	background-size: auto auto;
	background-color: rgba(124, 124, 124, 1);

	background-image: repeating-linear-gradient(135deg, transparent, transparent 10px, rgba(0, 0, 0, 1) 10px, rgba(0, 0, 0, 1) 20px ),
	linear-gradient(210deg, rgba(60, 60, 60, 1),
	 rgba(40, 40, 40, 1) 50%,
	 rgba(10, 10, 10, 1));
background-attachment: fixed;
	overflow: hidden;
	background-size: cover;
}
article h3 {
	font-family: 'Oswald', serif;
	color: #fff;
	font-size: 4rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	margin-bottom: 1em;
	padding: 2rem 0 0 1rem;
}
article h3::after {
	content:"_";
}
article h3 a {
	color: #fff;
	text-decoration: none;
}
section {
	position: relative;
	opacity: 0;
	padding: 4em 1em;
	z-index: 1;
}
#s_text {
	padding: 1em;
	background-color: #fff;
}
#s_text img {
	position: relative;
	z-index: 100;
}

/* ========== INTERVIEW_TOP ========== */
#interview_top {
	text-align: center;
	color: #fff;
	margin-bottom: 100px;
}
#interview_top h3 {
	margin-top: 0;
	padding-top:0;
}
#interview_top .list {
	display: grid;
	grid-template-columns: 1fr;
	margin-top: 1em;
	gap: 1em;
}
#interview_top .list div p {
	margin-top: 1em;
}
/*#interview_top .list div p::first-line {
	color: #ffdc00;
	font-weight: bold;
	font-size: 1.25em;
	line-height: 1.5em;
}*/
#interview_top .list div a:hover {
	opacity: 0.75;
}

#interview #interview_top{
	color: #000;
}
/*#interview #interview_top .list div p::first-line {
	color: rgb(214,19,57);
}*/
/* ========== NEWS ========== */
.box1 {
	background-color: #000;
}
.box2 {
	background-color: transparent;
}
.box2 div {
	text-align: center;
}
.box2 img {
	width: 90%;
}

#top #news {
	background-color: rgba(255,255,255,0);
}
#news {
	background-color: rgba(255,255,255,0.9);
	margin-bottom: 100px;
}
#news a {
	position: relative;
	display: inline-block;
	color: rgb(214,19,57);
	text-decoration: none;
	font-weight: bold;
}
#news a::after {
	content: "";
	position: absolute;
	width: 0;
	height: 10px;
	background-color: #f66;
	transform: skewX(-25deg);
	transition: all 0.25s ease ;
	z-index: -1;
}
#news a::after {
	bottom: -5px;
	left: 0;
}
#news a:hover::before,
#news a:hover::after {
	width: 100%;
}
#news ul {
	position: relative;
	padding: 0;
}

#news li {
	position: relative;
	padding: 1em;
	margin-bottom: 4em;
	transition: all 1s ease;
	background-color: rgba(255,255,255,1);
}
#news li::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -10;
	box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1);
}
#news li::after {
	z-index: -12;
	position: absolute;
	content: "";
	bottom: 15px;
	right: 10px;
	left: auto;
	width: 50%;
	top: 80%;
	max-width:50%;

	transform: rotate(3deg);
}
#news li span {
	font-family: 'Oswald', serif;
	position: absolute;
	left:25%;
	top:-2em;
	padding: 0.5em 1em;
	color: #555555;
	background-color: rgba(255,255,255,1);
	box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1);
}
#news li:nth-child(1) span {
	transform: rotateZ(-3deg);
}
#news li:nth-child(2) span {
	top:-40%;
	transform: rotateZ(3deg);
}
#news li:nth-child(3) span {
	transform: rotateZ(0deg);
}


h3.btn_news a {
	position: relative;
	font-weight: normal;
	color: inherit;
}
h3.btn_news a::before {
	position: absolute;
	content: "";
	transform: none;
	height: 8px;
	width: 0%;

	bottom: 0;
	left: 0;
	background-color: #fff;
	transition: all 0.25s ease;
}
h3.btn_news a:hover::before {
	width: 100%;
}
h3.btn_news::after {
	content: "";
}
h3.btn_news a::after {
	content: "_";
	transition: all 0.25s ease;
}
h3.btn_news a:hover::after {
	color: transparent;
}

.entry p {
	margin-bottom: 1.5em;
}

.entry_date {
	display: inline-block;
	font-family: 'Oswald', serif;
	font-weight: normal;
	color: #555555;
	background-color: #fff;
	width: auto;
	padding: 0.5em 1em;
	margin: 0 5% -1%;
	border:solid 2px #ffffff;
	box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1);
}
.entry_title {
	position: relative;
	font-size: 1.25em;
	font-weight: bold;
	color: rgb(214,19,57);
	padding: 0.75em 1em;
	margin-bottom: 1em;
}
.entry_title::after {
	content: "";
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #fff;
	box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1);
	z-index: -10;	
}
.entry_text {
	position: relative;
}
.entry_text img {
	display: block;
	margin: 2em auto;
}
.entry_link {
	text-align: right;
}
#top .entry_link a {
	color: #fff;
}

.banner {
	text-align: center;
}
.banner img:first-child {
	margin-bottom: 1em;
}

/* ========== ABOUT ========== */
#about {
	background-color: rgba(164,16,48,1);
	color: #fff;
}
#about p {
	position: relative;
	font-size: 1.8em;
	font-weight: bold;
	margin-bottom: 1em;
	text-align: center;
}
#about p:nth-of-type(2) {
	line-height: 1.6em;
}
#about rt {
	font-size: 0.25em;
}
#about span {
	position: relative;
	display: inline-block;
	color: rgb(214,19,57);
	z-index: 2;
}
#about span::before {
	position: absolute;
	display: block;
	content: "";
	top: 50%;
	left: 50%;
	width: calc(100% + 1em);
	height: 100%;
	background-color:#fff;
	z-index: -1;
	transform: skewX(-20deg) translate(-55%,-50%);
}

#about div {
	line-height: 2.6em;
}

/* ========== MOVIE ========== */
#movie {
	background-color: rgb(214,19,57);
	padding: 0em 0em 4em ;
	opacity: 1;
}
#movie::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	z-index: 0;
	opacity: 1;
}
#movie h3 {
	text-align: center;
}
.youtube_box {
	position: relative;
	padding-top:56.25%;
	margin-bottom: 1em;
		z-index: 1;

}
.youtube_box iframe {
	position: absolute;
	display: block;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
}

.movie_btn {
	position: relative;
	background-color: transparent;
	margin: 2em 0;
}
.movie_btn video {
	width: 100%;
	height: 100%;
	opacity: 1;
}
.movie_btn a {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 10;
	background: url(../img/play.svg) no-repeat center;
}
.movie_btn a::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 9;
	background: rgba(0,0,0,0.25);
}
.movie_btn a:hover {
	opacity: 0.25;
}
/* ========== SCENE ========== */
#scene_box {
	position: relative;
	z-index: 1;
}
#scene_box h4 {
	font-size: 1.4em;
	font-family: unset;
	font-weight: bold;
}
#scene_box .slick-arrow {
	position: absolute;
	color: transparent;
	top: 0;
	width: 2em;
	height: 100%;
	z-index: 1;
	transition: ease 0.5s all;
}
#scene_box .slick-arrow:hover {
	opacity: 0.5;
}
#scene_box .slick-prev {
	left: 0;
}
#scene_box .slick-next {
	right: 0;
}
#scene_box .slick-prev::before ,
#scene_box .slick-next::before {
	content:"";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.5em;
	height: 1.5em;
	background-color: rgb(214,19,57);
	border-radius: 50%;
	transform: translate(-50%,-50%);
}
#scene_box .slick-prev::after ,
#scene_box .slick-next::after {
	content:"";
	position: absolute;
	top:50%;
	left: 46%;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0.4em 0.6em 0.4em 0;
	border-color: transparent;
	border-right-color: #ffffff;

	transform: translate(-50%,-50%);
}
#scene_box .slick-next::after {
	left: 54%;
	border-width: 0.4em 0 0.4em 0.6em;
	border-color: transparent;
	border-left-color: #ffffff;
}

/* ========== CHARACTER ========== */
#character {
	position: relative;
	padding: 0;
}

/* ========== STAFF&CAST ========== */
#staff ,
#cast {
	color: #fff;
}
#staff * ,
#cast * {
	position: relative;
	z-index: 2;
}
#cast h3 ,
#staff h3 {
	padding: 0;
}
#staff::before ,
#cast::before {
	position: absolute;
	content:"";
	display: block;
	width: 100%;
	height: 100%;
	top:0;
	left:10vw;
	z-index: 1;
	background-color: rgba(0,0,0,1);
	transform: skewX(0deg) translateX(100%);
	transform-origin: left top;
	transition: ease 1s all;
}
#staff::before {
	left:0;
	right:10vw;
	transform: skewX(0deg) translateX(-100%);
	transform-origin: right top;
}
#staff.active::before {
	transform: skewX(-10deg);
}
#cast.active::before {
	transform: skewX(10deg);
}
#staff h4 {
	font-weight: bold;
	text-align: center;
	margin-bottom: 1em;
	color: rgb(255, 127, 127);
	color: rgb(255, 255, 255);
	text-shadow: 0 0 4px rgba(0, 0, 0, 1);
}
#staff h4 span {
	display: inline-block;
}
#cast dl ,
#staff dl {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	font-size: 0.8em;
	font-weight: normal;
	line-height: 1.25em;
}
#cast dt ,
#staff dt {
	font-weight: normal;
	width: 60%;
	margin-bottom: 2em;
	padding-right: 1em;
	box-sizing: border-box;
}
#cast dd ,
#staff dd {
	width: 40%;
	margin-bottom: 2em;
	box-sizing: border-box;
}
#staff dt.one {
	width: 100%;
	margin-bottom: 0.5em;
}
#staff dt.one + dd {
	width: 100%;
}
#staff dt.space ,
#staff dt.space + dd {
    margin-bottom: 0;
}
#cast h4 {
	display: block;
	width: 100%;
	margin: 2em 0em 2em;
	font-weight: bold;

}

/* ========== TWITTER ========== */
#twitter {
	padding:4em 1em;
}
#twitter-widget {
	margin: 0 3em;
}

/* ========== FOOTER ========== */
footer {
	position: relative;
	padding: 1em;
	background-color: #333333;
	color: #ffffff;
}
#link_box {
	display: grid;
	gap: 1em;
	margin-bottom: 1em;
	justify-content: center;
}
#link_box a {
	display: block;
}
#copy {
	text-align: center; 
	font-size: 0.6em;
	line-height: 1em;
}

/* ========== Page ========== */
.page {
	background-color: rgba(255,255,255,0.9);
	margin-bottom: 100px;
}
.page section {
	width: 100%;
	margin: 0;
	margin-bottom: 4em;
	padding: 0;
}
.page h4 {
	font-family: 'Oswald', serif;
	color: #000;
	font-size: 4rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	margin-bottom: 1em;
}
.page h4 span{
	font-weight: bold;
}

#episodes.page h4 span {
    transform-origin: center;
	transform: scaleX(0.75);
}

#onair ul {
	margin: 1em 0;
}
#onair ul li {
	padding: 1em;
	border-top: solid 1px #fff;
	border-left: none;
	border-right: none;

	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr;
	gap: 1em;
	justify-content: flex-start;
	align-content: flex-start;
	align-items: flex-start;
}
#onair ul li:last-of-type {
	border-bottom: solid 1px #fff;
}

#onair ul li.one_line {
	grid-template-columns: 1fr;
}

#onair ol {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
	gap: 1em;
	margin: 1em 0 2em;
}
#onair ol li {
	position: relative;

    background-color: rgb(214,19,57);
    text-align: center;
    color: #fff;
    font-weight: bold;
}
#onair ol li::after {
	position: absolute;
	content: "";
	display: block;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
    border-color: rgb(214,19,57);
	transition: all 0.5s ease;
	pointer-events: none;
}
#onair ol li a {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	text-decoration: none;

	width: 100%;
	height: 100%;
    color: #fff;
	padding: 0.5em 1em;
	box-sizing: border-box;

	pointer-events: none;
}
#onair ol li a.txt_l {
	font-size: 0.8em;
}

/*#onair ol li:hover::after {

	border-color: rgb(255 255 255);
	transform: scale(0.9,0.8);
}*/
#onair .att_onair {
	font-size: 0.8em;
	grid-column: 1 / 4;
}
#onair .att {
	font-size: 0.8em;
	margin-left: 2em;
	text-indent: -2em;
}
#onair .box ,
#onair .box_u17 ,
#onair .box_semi {
	display: inline-block;
	width: 2em;
	height: 1em;
	margin-right: 0.5em;
	background   : linear-gradient(to right bottom,
	 rgb(11 61 146)50%,
	 rgb(214,19,57) 49.9%
	 );
}
#onair .box_u17 {
	background   : rgb(11 61 146);
}
#onair .box_semi {
	background   :rgb(214,19,57);
}


/* ----- エピソード ----- */
#episodes h4 {
	text-align: center;
}
#episodes nav {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 1em;
	justify-items: center;
	align-items: center;
	margin-bottom: 4em;
}
#episodes nav a {
	font-family: 'Oswald',serif;
	display: flex;
	position: relative;
	background-color: rgb(11 61 146);
	color: #ffffff;
	border-radius: 50%;
	width: 2em;
	height: 2em;
	text-decoration: none;
	justify-content: center;
	align-items: center;
}
#episodes nav.ep_semi a {
	background-color: rgb(214,19,57);
}
#episodes nav a.current {
	background-color: #fff;
	color: rgb(11 61 146);
	border: solid 1px rgb(11 61 146);
}
#episodes nav a.current_s {
	background-color: #fff;
	color: rgb(214,19,57);
	border: solid 1px rgb(214,19,57);
}
#episodes nav a.btn_no {
	pointer-events: none;
	background-color: transparent;
	color: rgb(214,19,57);
	border: solid 1px rgb(214,19,57);
}
#episodes nav a::after {
	position: absolute;
	display: block;
	content: "";
	width: 100%;
	height: 100%;
	border-radius: 50%;
	border: solid 2px transparent;
	transition: all 0.25s ease;
}
#episodes nav a:hover:after {
	border-color: #fff;
	transform: scale(0.8);
}
/* 場面写 */
.slider-nav  {
	margin-top: 8px;
}
.slider-nav .slick-slide {
	opacity: 0.4;
	cursor: pointer;
}
.slider-nav .slick-center,
.slider-nav .slick-cloned.is-active-next {
	opacity: 1;
}
.slider-nav .slick-cloned {
	opacity: 0.4;
}

/* youtube */
.youtube_box input {
	display: none;
}
.youtube_box input:checked + label {
	opacity: 0;
	pointer-events: none;
}
.youtube_box label {
	position: absolute;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
	transition: all 0.5s ease;
}
.youtube_box video {
	position: relative;
	width: 100%;
	height: 100%;
	opacity: 1;
}
.youtube_box label::after {
	position: absolute;
	display: block;
	content: "";
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	opacity: 0.5;
	background: url(../img/play.svg) no-repeat center;
}
/* ----- SPECIAL ----- */
#special section {
	padding-bottom: 4em;
	border-bottom: solid 1px #fff;
}
#special h4 {
	font-family: unset;
	font-size: 1.4em;
	font-weight: bold;
	text-align: center;
}
#special a:hover {
	opacity:0.5;
}
#special div {
	text-align: center;
}

#special ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr;
	gap: 1em;
	justify-content: flex-start;
	align-content: flex-start;
	align-items: stretch;
}

.special_link {
	text-align: center;
}
.special_link a {
	position: relative;
	display: inline-block;
	font-size: 0.8em;
	color: #fff;
	background-color: rgb(214,19,57);
	padding: 0.5em 1em;
	text-decoration: none;
}
.special_link a::after {
	content: "";
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: solid 1px transparent;
	transition: all 0.25s ease;
}
.special_link a:hover::after {
	transform: scale(0.95,0.8);
	border-color: #fff;
}

.sl_box {
	display: grid;
	gap:1em;
	place-items: center;
	text-align: center;
}
.sl_box a {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
}
a.btn_u17 {
	background-color: rgb(11 61 146);
}

/* ----- CALENDER ----- */
#calender section ,
#icon section {
	padding-bottom: 4em;
	border-bottom: solid 1px #fff;
}
#calender h4 ,
#campaign h4 ,
#gif h4 ,
#icon h4 ,
#cheer h4 {
	font-family: unset;
	font-size: 1.4em;
	font-weight: bold;
	text-align: center;
	position: relative;
}
#calender h4.mon {
	background-color: rgb(214,19,57);
	color: #fff;
	padding: 0.25em 0;
	font-weight: bold;
}
#calender h4.sep {
	color: rgb(11 61 146);
}
#calender h4.sep::before ,
#calender h4.sep::after {
	content:"";
	display: block;
	position: absolute;
	top:50%;
	left: 0;
	width: calc(50% - 3em);
	height: 1px;
	background-color: rgb(214,19,57);
}
#calender h4.sep::after {
	left: unset;
	right: 0;
}
#calender div ,
#icon div {
	text-align: center;
}
#calender ul ,
#icon ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1em;
	margin-bottom: 2em;
}
#calender li ,
#icon li {
	position: relative;
	padding-top: 100%;
	border: solid 1px #fff;
	overflow: hidden;
}
#calender img ,
#icon img {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	object-fit: contain;
	transition: all 0.25s ease;
	transform: scale(0.8);
}
#calender li a:hover img ,
#icon li a:hover img {
	transform: scale(0.9);
}
#calender li a ,
#icon li a {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}
#calender li a::after ,
#icon li a::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	border: solid 1px transparent;
	transition: all 0.25s ease;
}
#calender li a:hover::after ,
#icon li a:hover::after {
	border-color: #fff;
	transform: scale(0.95);
}

#campaign div {
	text-align: center;
	margin-bottom: 2em;
}
#campaign .att {
	text-align: left;
	font-size: 0.8em;
	margin: 1em 0 2em;
}
#campaign .att_txt {
	margin-top: 0.5em;
	padding-left: 2em;
	text-indent: -2em;
}
#campaign .btn {
	position: relative;
	display: inline-block;
	margin-top: 1em;
	padding: 0.5em 1em;
	color: #fff;
	background: linear-gradient(#00ACF2, #89dcfd);
	border: solid 2px #00ACF2;
	border-radius: 3em;
	box-sizing: border-box;
	text-decoration: none;
}
#campaign .btn::after {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: #00000000;
	border-radius: 3em;
	transition: all 0.5s ease;
}
#campaign .btn:hover::after {
	background: #00000066;
}
#campaign .end {
	border-color: #999999;
	background: #aaaaaa;
}
#campaign .end::after {
	display: none;
}

#cheer div {
	text-align: center;
}
#cheer .txt {
	text-align: left;
	font-size: 0.8em;
	line-height: 1.75em;
	margin: 1em 0 2em;
}
#cheer .btn {
	position: relative;
	display: inline-block;
	margin: 1em auto 2em;
	padding: 0.5em 1em;
	color: #fff;
	background: linear-gradient(#00ACF2, #89dcfd);
	border: solid 2px #00ACF2;
	border-radius: 3em;
	box-sizing: border-box;
	text-decoration: none;
}
#cheer .btn::after {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: #00000000;
	border-radius: 3em;
	transition: all 0.5s ease;
}
#cheer .btn:hover::after {
	background: #00000066;
}

#sample_list {
	display: grid;
	grid-template-columns: 1fr;
}

#gif {
	text-align: center;
}
#gif h4 {
	font-family: unset;
}
/* ----- INTERVIEW ----- */
#interview h4 {
	text-align: center;
	font-family: unset;
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: 1em;
}
#interview .main {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap:1em;
}
#interview .main p {
	text-align: center;
}
#interview .main span {
	display: inline-block;
	margin-top: 0.5em;
	width: 100%;
	padding: 0.25em;
	border: solid 1px #999;
}
#interview .pic {
	text-align: center;
	margin-bottom: 1em;
}
.page_link {
	text-align: center;
}
.page_link a {
	display: inline-block;
	border: solid 2px #ff6666;
	background-color: #ff6666;
	color: #ffffff;
	text-decoration: none;
	padding: 0.25em 1em;
	margin-bottom: 2em;
}
.page_link a:hover {
	background-color: #ffaaaa;
	color: #ffffff;
	text-decoration: none;
	padding: 0.25em 1em;
	margin-bottom: 2em;
}
.q_text {
	color: rgb(214,19,57);
	font-size: 1.25em;
	font-weight: bold;
	margin: 2em auto;
}
.int_l,
.int_r {
	display: grid;
	grid-template-columns:100px 1.6fr;
	gap: 1em;
	margin-bottom: 1em;
}
.int_r {
	grid-template-columns:1.6fr 100px;
}
.int_r *:first-child {
	order: 2;
}
.int_l p,
.int_r p {
	position: relative;
	background-color: #fff;
	border-radius: 1em;
	padding: 1em;
	line-height: 1.5em;
}
.int_l p::before,
.int_r p::before {
	display: block;
	content: "";
	position: absolute;
	top: calc(50px - 0.25em);
	right: 100%;

	width: 0.8em;
	height: 0.5em;
	background-color: #fff;
	clip-path: polygon(0 50%, 100% 0, 100% 100%);
}
.int_r p::before {
	left: 100%;
	right: unset;
	clip-path: polygon(0 0, 100% 50%, 0% 100%);
}
.int_l span,
.int_r span {
	position: relative;
	display: block;
	text-align: center;
}
.int_l span::before,
.int_r span::before {
	display: inline-block;
	content: "";
	width: 100px;
	height: 100px;
	background-size: contain;
}
.endo::before {
	background-image: url('../img/special/interview/endo.png');
}
.endo::after {
	content: "遠藤";
}
.saiga::before {
	background-image: url('../img/special/interview/saiga.png');
}
.saiga::after {
	content: "斎賀";
}
.masuda::before {
	background-image: url('../img/special/interview/masuda.png');
}
.masuda::after {
	content: "増田";
}
.hiyama::before {
	background-image: url('../img/special/interview/hiyama.png');
}
.hiyama::after {
	content: "檜山";
}
.ochiai::before {
	background-image: url('../img/special/interview/ochiai.png');
}
.ochiai::after {
	content: "落合";
}
.ito::before {
	background-image: url('../img/special/interview/ito.png');
}
.ito::after {
	content: "井藤";
}
.okiayu::before {
	background-image: url('../img/special/interview/okiayu.png');
}
.okiayu::after {
	content: "置鮎";
}
.nagai::before {
	background-image: url('../img/special/interview/nagai.png');
}
.nagai::after {
	content: "永井";
}
.kamiyama::before {
	background-image: url('../img/special/interview/kamiyama.png');
}
.kamiyama::after {
	content: "上山";
}
.sawashiro::before {
	background-image: url('../img/special/interview/sawashiro.png');
}
.sawashiro::after {
	content: " 沢城";
}
.azagami::before {
	background-image: url('../img/special/interview/azagami.png');
}
.azagami::after {
	content: "阿座上";
}
.morikubo::before {
	background-image: url('../img/special/interview/morikubo.png');
}
.morikubo::after {
	content: "森久保";
}
.yasumoto::before {
	background-image: url('../img/special/interview/yasumoto.png');
}
.yasumoto::after {
	content: "安元";
}
.tone::before {
	background-image: url('../img/special/interview/tone.png');
}
.tone::after {
	content: "利根";
}


#set_flag {
	display: grid;
	grid-template-columns: 1fr 1fr;
	text-align: center;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap:1em;
	color: #fff;
	margin-bottom: 1em;
}
#set_flag label {
	transition: all 0.25s ease;
	font-weight: bold;
	font-size: min(4vw, 1em);
	color: #f66;
	padding: 0;
	box-sizing: border-box;
}
#interview #set_flag label {
	border: solid 1px #f66;
	border-radius: 6px;
	background-color: #fff;
	padding: 0.2em 1em;
}
#set_flag label:checked {
	background-color: #fff;
}
#flag label:active {
	opacity: 0.5;
}

input[name="set_btn"] {
	display: none;
}
#set1 ,
#set2 ,
#set3 {
	position: absolute;
	height: 0%;
	overflow: hidden;
	transition: all 0s ease 0s ;
}
input#set1_btn:checked ~ #set1 ,
input#set2_btn:checked ~ #set2 ,
input#set3_btn:checked ~ #set3 {
	transition-duration: 0s;
	position: relative;
	height: 100%;
}

input#set1_btn:checked ~ #set_flag [for="set1_btn"] ,
input#set2_btn:checked ~ #set_flag [for="set2_btn"] ,
input#set3_btn:checked ~ #set_flag [for="set3_btn"] {
	background-color: rgb(214,19,57);
	color: #fff;
}

.line2 {
	grid-column: span 2;
}

/* ----- bddvd ----- */
.bddvd {
	font-size: 1.2rem;
	line-height: 1.5em;
}
.bddvd h3 {
	font-size: 1.5em;
	font-weight: bold;
}
.bddvd h4 {
	font-family: unset;
	font-size: 1.2em;
	font-weight: bold;
	margin-bottom: 1em;
}
.bddvd h5 {
	font-size: 1.25em;
	font-weight: bold;
	margin-bottom: 1em;
}
.bddvd p {
	margin-bottom: 1em;
	line-height: 2em;
}
.bddvd p.spec {
	margin-left: 1em;
	text-indent: -1em;
	line-height: 1.5em;
}

.bddvd img {
	display: block;
	width: auto;
	max-width: 100%;
	margin: auto auto 1em;
}
.bddvd .sell_detail ,
.bddvd .sell_spec {
	font-size: 0.75em;
	margin-bottom: 2em;
}
.bddvd .sell_box p {
	line-height: 1em;

}


/* ========== on off ========== */
.sp {
    display: block;
}
.pc {
    display: none;
}
br.sp {
	display: inline;
}


/* ================================================== */
/* ==================== 800px以上 ==================== */
/* ================================================== */
@media (min-width: 800px) {
html {
	font-size: 62.5%; /* 10pxを基準に変更 */
}
header {
	height: 0;
}
header h1 {
	width: 12%;
	margin: 2%;
	opacity: 1;
}
header .menu_btn {
	width: 8%;
	height: 8vw;
	margin: 2%;
}
header nav a {
	font-size: 2.8em;
	margin-top: 1em;
}
header h2 {
	width: 40%;
	transform: translate(-50%, -50%);
}
header h3 {
	width: 90%;
	max-width: 1920px;
	filter: drop-shadow(0 0 10px  rgba(0, 0, 0, 0.25));
}

nav.pc {
	width: 80%;
	max-width: 1920px;
}
article {
	margin: auto;
	font-size: 1.6em;
	background-size: cover;
}
article h3 {
	width: 80%;
	font-size: 10rem;
	margin-bottom: 1em;
	padding-left: 0;
	margin: 1em auto 0.25em;
	max-width: 1920px;
}
#top h3 {
	width: 100%;
}
#top #news h3 {
	padding-top: 0;
	margin-top: 0;
	margin-bottom: 1em;
}
section {
	width: 90%;
	margin: auto;
	padding-left: 5%;
	padding-right: 5%;
	box-sizing: border-box;
	max-width: 1920px;
}

#movie ,
#character,
#twitter {
	padding-left: 5%;
	padding-right: 5%;
}
#about h3 ,
#movie h3 {
	margin-top: 0;
}
#about p {
	font-size: 4.6rem;
	margin-bottom: 0.8em;
	word-break: break-all;
}
#about div {
	margin-top: 4em;
	line-height: 2.8em;
}
#about span::before {
	padding: 0.75em 0em;
	transform: skewX(-20deg) translate(-52%,-50%);
}

.chara_semi h4 {
	font-size: 1.2em;
	font-weight: bold;
}
.chara_semi .data {
	font-size: 0.8em;
}

#cast::before {
	left: 5vw;
}
#staff::before {
	right: 5vw;
}
#staff h4 {
	text-align: left;
}

#twitter-widget {
    margin: 0 6em;
}
#link_box {
	grid-template-columns: 400px;
	margin-bottom: 1em;
}
#copy {
	font-size: 1.2rem;
}

#onair ol {
	grid-template-columns: 1fr 1fr 1fr;
}
#onair .att {
	grid-column: 1 / 4;
}

/* ----- bddvd ----- */
.bddvd {
	font-size: 1.8rem;
}

#interview h4 {
	font-size: 1.6em;
}

#sample_list {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
}


}
/* ================================================== */
/* ==================== 1080px以上 ==================== */
/* ================================================== */
@media (min-width: 1080px) {
header {
	height: 0;
}
header nav {
	display: none;
}
header h1 {
	width: 160px;
	margin: 10px;
}
#top #logo {
	opacity:0;
}
#top #logo.active {
	opacity:1;
}
header .menu_btn {
	display: none;
	width: 60px;
	height: 60px;
	margin: 20px;
}
header nav a {
	font-size: 2em;
	margin-top: 1em;
}
header h3 {
	width: 80%;
}

#main_wrap {
	position: relative;
}
#main {
	display: block;
	width: 50%;
	height: auto;
	margin-bottom: 0;
}

/*
#kv div img:not(:first-child) {
}
#kv div img.text {
  width: 50%;
  left: 2%;
  bottom: 9em;
}
#kv div img.logo {
  width: 20%;
  right: 2%;
  bottom: 9em;
}
*/
#kv .sp {
	display: none;
}
#kv .pc {
	display: block;
}

#main_sub {
	position: absolute;
	bottom: 1em;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	justify-content: flex-start;
	align-items: stretch;
	flex-grow: 1;
	flex-shrink: 1;

	width: 100%;
	height: 6em;
	padding: 1em;
	background-color: rgba(255,255,255,0.75);
	text-align: center;
	box-sizing: border-box;
	z-index: 20;
}
#main_sub h2 img{
	height: 20vh;
}
#main_sub h3 img{
	margin-bottom: 5vh;
}

.movie_btn {
	position: relative;
	width: 40%;
	margin: auto;
}

/* ----- PCメニュー ----- */
#main_sub nav{
	font-family: 'Oswald', serif;
	font-size: 2em;
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	justify-content: center;
	gap:0em 0.5em;
}
#main_sub nav a{
	position: relative;
	color: rgb(0,0,0);
	text-decoration: none;
	padding: 0.5em;
}
#main_sub nav a::first-letter{
	color: rgb(214,19,57);
}
#main_sub nav a::after{
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background-color: rgb(214,19,57);
	transition: all 0.2s ease;
}
#main_sub nav a:hover::after{
	width: 100%;
}
/* ----- PC共通メニュー ----- */
nav.pc {
	font-family: 'Oswald', serif;
	width: 80%;
	margin: auto;

	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	padding: 0.5em 0;
	max-width: 1920px;
}
nav.pc a {
	position: relative;
	color: #fff;
	text-decoration: none;
	padding: 0.5em;
	filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.4));
}
nav.pc a::after{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	border: solid 1px transparent;
	transition: all 0.5s ease;
}
nav.pc a:hover::after{
	border-color: #fff;
	transform: scale(0.9);
}

#s_text {
	display: none;
}
article {
	clear: both;
}
section {
	width: 80%;
	padding-left: 10%;
	padding-right: 10%;
}
section h3 {
	width: 100%;
}

.box2 {
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 1920px;
	margin: 60px auto;
}
.box2 div {
	width: 40%;
}

/* ========== INTERVIEW_TOP ========== */
#interview_top .list {
	grid-template-columns: 1fr 1fr;
	gap: 1em;
}
#interview #interview_top .list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1em;
}

#top #news {
    width: 80%;
    margin: 0 auto;
	padding-left: 6%;
	padding-right: 6%;
}
#movie {
	display: none;
}
#character ,
#twitter {
	padding-left: 10%;
	padding-right: 10%;
}

.chara_semi .data {
	font-size: 1em;
}

#cast::before {
	left: 10vw;
}
#staff::before {
	right: 10vw;
}
#cast dt {
	width: 40%;
}
#cast dd {
	width: 60%;
}
#staff dt {
	width: 40%;
}
#staff dd {
	width: 60%;
	padding-right: 1em;
}

/* ---------- 別ページ ---------- */
#special ul {
	grid-template-columns: 1fr 1fr 1fr;
}
#calender ul {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
#icon h4 {
	text-align: left;
}

#icon ul {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sl_box {
	grid-template-columns: 1fr 1fr;
}

/* ========== on off ========== */
.sp {
    display: none;
}
.pc {
    display: block;
}
br.sp {
    display: none;
}

}
/* ================================================== */
/* ==================== 1920px以上 ==================== */
/* ================================================== */
@media (min-width: 1920px) {

}

/* ========== safari用 ========== */
@supports (-webkit-touch-callout: none) {

}
@media (min-width: 1080px) {
_::-webkit-full-page-media, _:future, :root
 #main_sub nav a {
	margin-right: 1em;
}
 #main_sub nav a:last-of-type {
	margin-right: 0em;
}
}

/* ========== firefox用 ========== */
@-moz-document url-prefix(){
#about rt {
	margin-bottom: -1em;
}
}
