@charset "UTF-8";

/*==================================

 Layout

==================================*/
.ntv-wrapper{
  background: url(../images/bg_pattern.png);
  background-position: top left;
  margin-bottom: 0;
}

/* 右カラム　タイトル */
.ntv-box-title {
  background: #000000;
}
.ntv-box-title.title-base {
 background: #000000;
}

/* ホバー */
.teaser-banner-area ul li a :hover,
.teaser-banner-series ul li a :hover,
.teaser-main-nav ul li a:hover,
.teaser-contents a:hover{
  transition: opacity .3s;
  text-decoration:none;
  opacity:0.7;
}
.teaser-main-nav ul li a:hover::before{ left: -5px;}
.teaser-main-nav ul li a:hover::after{  right: -5px;}
.teaser-main-nav ul li a:hover span::before{ top: -5px;}
.teaser-main-nav ul li a:hover span::after{  bottom: -5px;}

.teaser-main-mainImg img {
  display: block;
  width: 100%;
}
.teaser-main-onair{
  color: #66aa32;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  text-align: center;
  font-size: 16px;
  font-size: 1.6rem;
  font-weight: 400;
  padding: 0 10px;
  margin-top: 20px;
  line-height: 1.2;
}
.teaser-main-text{
  font-family: 'M PLUS Rounded 1c', sans-serif;
  color: #242424;
  text-align: center;
  padding: 0 10px;
  line-height: 1.2;
  letter-spacing: .1em;
}
.teaser-contents {
  box-sizing: border-box;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  letter-spacing: .2em;
}
::selection {
  background: #66aa33;
  color: #fff;;
}

/* text-over-flow
----------------------------------------------------*/
.to {
    overflow: hidden;
    text-indent: -9999px;
    white-space: nowrap;
    line-height: 1;
    display: none;
}

/* for Firefox */
::-moz-selection {
  background: #66aa33;
  color: #fff;
}

/* リンク無効 */
.link-off{
  opacity: .3;
}
.link-off a{
  pointer-events:none
}

/* メニュー */
.teaser-main-nav{
  width: 100%;
  margin-top: 20px;
}
.teaser-main-nav ul{
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
.teaser-main-nav ul li{
  display: block;
  margin-bottom: 10px;
  width: 32.222891%;
}
.teaser-main-nav ul li a{
  position: relative;
  display: block;
  width: 100%;
  height: 0;
  padding-top: 56.07476%;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  line-height: 1;
}
.teaser-main-nav ul li.nav-intro a{background: url(../images/nav_intro.png) no-repeat; background-size: cover;}
.teaser-main-nav ul li.nav-movie a{background: url(../images/nav_movie.png) no-repeat; background-size: cover;}
.teaser-main-nav ul li.nav-story a{background: url(../images/nav_story.png) no-repeat; background-size: cover;}
.teaser-main-nav ul li.nav-cast a{background: url(../images/nav_cast.png) no-repeat; background-size: cover;}
.teaser-main-nav ul li.nav-staff a{background: url(../images/nav_staff.png) no-repeat; background-size: cover;}
.teaser-main-nav ul li.nav-hulu a{background: url(../images/nav_hulu.png) no-repeat; background-size: cover;}
.teaser-main-nav ul li.nav-sns a{background: url(../images/nav_sns.png) no-repeat; background-size: cover;}

.teaser-main-nav ul li a::before,
.teaser-main-nav ul li a::after,
.teaser-main-nav ul li a span::before,
.teaser-main-nav ul li a span::after{
  content: "";
  background-color: rgba(255, 255, 255, .5);
  position: absolute;
  display: block;
}

.teaser-main-nav ul li a::before,
.teaser-main-nav ul li a::after{
  -webkit-transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
  width: 5px;
  height: 100%;
  top: 0;
}
.teaser-main-nav ul li a::before{ left: 0;}
.teaser-main-nav ul li a::after{  right: 0;}

.teaser-main-nav ul li a span::before,
.teaser-main-nav ul li a span::after{
  -webkit-transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
  width: 100%;
  height: 5px;
}
.teaser-main-nav ul li a span::before{ top: 0;}
.teaser-main-nav ul li a span::after{  bottom: 0;}

/* ブロック */
.teaser-block{
  background: #fff;
  color: #242424;
  word-break: break-all;
  border-top: 2px solid #242424;
  border-left: 2px solid #242424;
  border-right: 2px solid #242424;
}

.teaser-block:last-child{
  border-bottom: 2px solid #242424;
  margin-bottom: 30px;
}
.teaser-block-inner{
  width: 100%;
}

/* ブロックタイトル */
.teaser-block-title{
  color: #242424;
  font-weight: bold;
  line-height: 1.0;
  text-align: center;
  margin: 0 auto 60px;
}
/* ブロック内テキスト */
.teaser-block p{
  color: #333;
  line-height: 1.86;
  font-size: 1.6rem;
  margin-bottom: 15px;
}
.teaser-block-title img{
  width: 100%;
}
/* ボタン */
/* .teaser-contents .teaser-btn a{
  width: 100%;
  display: block;
  text-align: center;
  font-weight: 500;
  line-height: 1;
  border: 5px solid rgba(255, 255, 255, .5);
  color: 242424;
} */
.teaser-contents .teaser-btn a{
  display: block;
  text-align: center;
  font-weight: 500;
  line-height: 1;
  background-color: #333;
  padding: 25px 1.2em;
  border: 5px solid rgba(255, 255, 255, .5);
  width: 72.28%;
  max-width: 480px;
  margin: 0 auto;
}
.teaser-banner-area{
  width: 100%;
  margin-top: 20px;
  margin-bottom: 30px;
}

.teaser-banner-area li:first-child {
  margin-top: 30px;
  margin-bottom: 10px;
}
.teaser-banner-area li:last-child {
  margin-bottom: 30px;
}
.teaser-banner-area li{
    margin-bottom: 10px;
}

.teaser-banner-area ul li{
  line-height: 0;
}
.teaser-banner-area ul li a{
  display: block;
  width: 100%;
  height: 100%;
}
.teaser-banner-area ul li a img{
  width: 100%;
}

.teaser-banner-series {
    width: 100%;
    margin-top: 5px;
    margin-bottom: 40px;
}
.teaser-banner-series ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.teaser-banner-series ul li {
  width: 49%;
  margin-top: 1.5%;
  background: #fff;
}
.teaser-banner-series ul li a {
    display: block;
}
.teaser-banner-series ul li img {
  width: 100%;
  height: auto;
  vertical-align: middle;
}

/* イントロダクション */
#intro p{
  text-align: center;
  line-height: 2.5;
}
#intro p span{
  padding: 2px 3px;
  margin: 0 3px;
}
#intro p span.bakari{ background: #d6edf4;}
#intro p span.himu{ background: #f3edac;}
#intro p span.waka{ background: #cdf0d4;}
#intro p span.mizukawa{ background: #fadee4;}

/* PR動画 */
.teaser-contents .movie-player{
  width: 100%;
  padding-top: 56.25%;
  position: relative;
  margin: 0 auto;
}
.teaser-contents .movie-player iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ストーリー */
.sharp{
  color: #74d0eb;
}
.teaser-contents .teaser-btn#btn-story a{
  background-color: #f1ef70;
}
#story .story-box h4{
  font-weight: 500;
  position: relative;
  line-height: 1.2;
}
#story .story-box h4::before{
  content: '';
  background: url(../images/story_icon.png) no-repeat;
  background-size: cover;
  display: block;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(0,-50%);
}
#story .story-box h4 span.number{
  color: #66aa32;
  margin-right: 1em;
}
#story .story-box h4 span.tag{
  font-weight: 400;
  color: #fff;
  background: #66aa32;
  display: inline-block;
}
#story .story-box .story-img{
  position: relative;
}
#story .story-box .story-img img{
  width: 100%;
}
#story .story-box .story-img::before{
  content: '';
  background: url(../images/heart_line.png) no-repeat;
  background-size: cover;
  display: block;
  position: absolute;
}
#story .banner_hulu{
  padding-top: 30px;
  border-top: 1px dotted #242424;
  margin-top: 30px;
  width: 100%;
}
.banner_hulu a{
  display: block;
  width: 100%;
  height: 100%;
}
.banner_hulu a img{
  width: 100%;
}
#story .story-btn-hulu a{
  display: inline-block;
  padding: 5px 10px;
  background: #f5f5f5;
  color: #74d0eb;
  font-size: 1.6rem;
}
/* ▼▼▼▼▼ ストーリーページ ▼▼▼▼▼ */
/* ブロック */
body#second #story.teaser-block{
  border-bottom: 2px solid #242424;
}
body#second #story .story-box{
  padding-bottom: 30px;
  border-bottom: 1px dotted #242424;
  margin-bottom: 30px;
}
body#second #story .story-box:last-child{
  padding-bottom: 0;
  border: none;
  margin-bottom: 0;
}
body#second #story .story-box .story-img::before{
  background: url(../images/heart.png) no-repeat;
  background-size: cover;
}
body#second #story .story-box:first-child .story-img::before{
  background: url(../images/heart_line.png) no-repeat;
  background-size: cover;
}
body#second .banner_hulu{
  width: 100%;
  margin: 30px auto 25px;
}
/* ▲▲▲▲▲ ストーリーページ ▲▲▲▲▲ */

/* キャスト */
#cast .teaser-block-inner img{
  width: 100%;
}
#cast .teaser-block-inner h5{
  text-align: center;
  background: #eaeaea;
  margin-top: 30px;
}
#cast .teaser-block-inner .cast-comment{
  margin-top: 25px;
  border-top: 1px dotted #333;
}
#cast .teaser-block-inner .cast-comment dl{
  margin-top: 20px;
}
#cast .teaser-block-inner .cast-comment dl dt{
  font-size: 1.6rem;
  margin-bottom: 15px;
  padding-bottom: 5px;
  border-bottom: 1px solid #333;
}
#cast .teaser-block-inner .cast-comment dl dd{
  font-size: 1.6rem;
  margin-bottom: 30px;
}
.teaser-contents .teaser-btn#btn-cast a{
  background-color: #98d5ec;
}

/* スタッフ */
#staff .staff-list{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
#staff .staff-list dt{
  text-align: right;
  position: relative;
}
#staff .staff-list dt::after{
  content: '／';
  display: block;
  color: #66aa32;
  font-weight: 500;
  position: absolute;
  right: -10px;
  top: 50%;
  transform: translate(0,-50%);
}
#staff .staff-list dd{
  padding-left: 20px;
}

/* SNS */
#sns .teaser-block-inner .sns-banner{
  width: 100%;
}
#sns .teaser-block-inner .sns-banner a{
  display: block;
  width: 100%;
  height: 100%;
}
#sns .teaser-block-inner .sns-banner img{
  width: 100%;
}


/* ---------------------------------
 SP用
--------------------------------- */
@media screen and (max-width: 992px) {
  .br_sp{
    display: block;
  }
  .teaser-contents {
    letter-spacing: .1em;
  }
  /* ブロック */
  .teaser-block{
    padding: 40px 15px;
  }
  .teaser-block:first-child{
    margin-top: 30px;
  }
  /* ブロックタイトル */
  .teaser-block-title{
    margin: 0 auto 40px;
  }
  .teaser-main-onair{
    font-size: 1.8rem;
    margin-top: 10px;
  }
  .teaser-main-onair span{
    font-size: 2.4rem;
  }
    .teaser-main-onair small{
    font-size: 1.6rem;
  }
  .teaser-main-text{
    font-size: 1.6rem;
  }
  .teaser-main-text span{
    font-size: 2.0rem;
  }
  .teaser-contents {
    margin-top: 20px;
  }
  /* ボタン */
  .teaser-contents .teaser-btn{
    margin-top: 20px;
  }
  .teaser-contents .teaser-btn a{
    font-size: 1.6rem;
    width: 85%;
    padding: 20px 1.2em;
  }
  /* イントロダクション */
  #intro .teaser-block-title{
    width: 70.2%; /* (702/2)/500 */
  }
  /* PR動画 */
  #movie .teaser-block-title{
    width: 29.1%;
  }
  /* ストーリー */
  #story .teaser-block-title{
    width: 36.6%;
  }
#story .story-box h4::before{
  width: 60px;
  height: 60px;
}
  #story .story-box h4{
    font-size: 1.8rem;
    padding: 10px 0 10px 70px;
  }
  #story .story-box h4 span.tag{
    font-size: 1.2rem;
    padding: 3px 5px;
    margin-left: 5px;
  }
  #story .story-box img{
    margin-top: 15px;
  }
  #story .story-box .story-text{
    margin-top: 15px;
  }
  #story .story-box .story-img::before{
    width: 24px;
    height: 22px;
    right: 5px;
    bottom: 10px;
  }
  #story .story-box .story-text{
    margin-top: 15px;
  }
  /* キャスト */
  #cast .teaser-block-title{
    width: 28%;
  }
  #cast .teaser-block-inner h5{
    font-size: 1.6rem;
    padding: 3px 10px;
  }
  #cast .teaser-block-inner p{
    margin-top: 10px;
  }
  #cast .teaser-block-inner .cast-comment dl dt{
    font-size: 1.6rem;
    margin-bottom: 15px;
  }
    #cast .teaser-block-inner .cast-comment dl dd{
    font-size: 1.6rem;
    margin-bottom: 30px;
  }
  /* スタッフ */
  #staff .teaser-block-title{
    width: 29.2%;
  }
  #staff .staff-list dt{
    font-size: 1.2rem;
    padding-right: 15px;
    margin-bottom: 15px;
    width: 49%;
  }
  #staff .staff-list dd {
    font-size: 1.6rem;
    padding-left:15px;
    margin-bottom: 15px;
    width: 51%;
  }  
    /* SNS */
    #sns .teaser-block-title{
      width: 34.9%;
    }
}

/* ---------------------------------
 tablet用(SP設定を上書き）
--------------------------------- */
@media screen and (min-width : 601px){
  .br_sp{
    display: none;
  }
  /* ブロック */
  .teaser-block{
    padding: 60px 30px;
  }
  .teaser-block:last-child{
  margin-bottom: 0;
}
  /* ブロックタイトル */
  .teaser-block-title{
    margin: 0 auto 60px;
  }
  .teaser-main-onair{
    font-size: 2.4rem;
    margin-top: 20px;
  }
  .teaser-main-onair span{
    font-size: 3.6rem;
  }
  .teaser-main-onair small{
    font-size: 1.8rem;
  }
  .teaser-main-text{
    font-size: 2.0rem;
  }
  .teaser-main-text span{
    font-size: 3.2rem;
  }
  .teaser-contents {
    margin-top: 20px;
  }
  /* ボタン */
  .teaser-contents .teaser-btn{
    margin-top: 30px;
  }
  .teaser-contents .teaser-btn a{
    font-size: 2.4rem;
  }
  /* イントロダクション */
  #intro .teaser-block-title{
    width: 52.86%;
  }
  /* PR動画 */
  #movie .teaser-block-title{
    width: 21.91%;
  }
  /* ストーリー */
  #story .teaser-block-title{
    width: 27.56%;
  }
  #story .story-box img{
    margin-top: 30px;
  }
  #story .story-box .story-text{
    margin-top: 30px;
  }
  #story .story-box .story-img::before{
    width: 30px;
    height: 27px;
    right: 10px;
    bottom: 15px;
  }
  #story .story-box h4{
    font-size: 2.4rem;
    padding: 20px 0 20px 110px;
  }
  #story .story-box h4 span.tag{
    font-size: 1.2rem;
    padding: 3px 5px;
    margin-left: 5px;
  }
  #story .story-box h4::before{
    width: 80px;
    height: 80px;
  }
  /* キャスト */
  #cast .teaser-block-title{
    width: 21.08%;
  }
  #cast .teaser-block-inner h5{
    font-size: 1.8rem;
    padding: 5px 10px;
  }
  #cast .teaser-block-inner p{
    margin-top: 15px;
  }
  /* スタッフ */
  #staff .teaser-block-title{
    width: 21.98%;
  }
  #staff .staff-list dt{
    font-size: 1.4rem;
    padding-right: 20px;
    margin-bottom: 30px;
    width: 35%;
  }
  #staff .staff-list dd {
    font-size: 1.8rem;
    padding-left:20px;
    margin-bottom: 30px;
    width: 65%;
  }
  /* SNS */
  #sns .teaser-block-title{
    width: 26.16%;
  }
}

/* ---------------------------------
 PC用
--------------------------------- */
@media screen and (min-width: 993px) {

  .ntv-pageTop a{
    background: url(../images/pagetop.png) no-repeat;
    background-size: cover;
    width: 60px;
    height: 60px;
  }
  .ntv-pageTop a:after{
    display: none;
  }


}



