@charset "UTF-8";
/*!  base
================================================ */
html {
  overflow: auto;
}

body {
  -webkit-text-size-adjust: 100%;
  min-width: 320px;
  overflow: hidden;
  color: #000;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Meiryo, "メイリオ", sans-serif;
  font-size: 1.4rem;
  line-height: 1.75;
}

a {
  text-decoration: none;
}

.cf:after {
  display: block;
  clear: both;
  content: " ";
}

img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

/*!  KV
================================================ */
.visual {
  background: url(../img/bg_kv.png) 50% 0 no-repeat;
}

.key-visual {
  position: relative;
  width: 960px;
  margin: 0 auto;
}

.key-visual h1 {
  z-index: 1;
  position: absolute;
  top: 0;
  right: 1px;
  width: 355px;
  height: 650px;
  overflow: hidden;
  background: url(../img/item_logo.png) 0 0/100% auto no-repeat;
  text-indent: 100%;
  white-space: nowrap;
}

.key-visual .author {
  z-index: 1;
  position: absolute;
  right: 156px;
  bottom: 204px;
  width: 85px;
  height: 323px;
  overflow: hidden;
  background: url(../img/item_author.png) 0 0/100% auto no-repeat;
  text-indent: 100%;
  white-space: nowrap;
}

.key-visual .tagline01, .key-visual .tagline02 {
  z-index: 1;
  position: absolute;
  overflow: hidden;
  text-indent: 120%;
  white-space: nowrap;
}

.key-visual .tagline01 {
  bottom: 120px;
  left: -4px;
  width: 687px;
  height: 254px;
  background: url(../img/item_tagline01.png) 0 0/100% auto no-repeat;
}

.key-visual .tagline02 {
  bottom: -60px;
  left: -26px;
  width: 1004px;
  height: 106px;
  background: url(../img/item_tagline02.png) 0 0/100% auto no-repeat;
}

.key-visual .book {
  z-index: 1;
  position: absolute;
  right: 12px;
  bottom: 193px;
}

.key-visual .book .release {
  position: absolute;
  top: -93px;
  right: -32px;
  width: 131px;
  height: 142px;
  overflow: hidden;
  background: url(../img/item_release.png) 0 0/100% auto no-repeat;
  text-indent: 100%;
  white-space: nowrap;
}

.key-visual .book .thumb {
  position: relative;
}

.key-visual .book .buy, .key-visual .book .trial {
  position: relative;
  width: 142px;
  height: 42px;
  border: 1px solid #fff;
}

.key-visual .book .buy::before, .key-visual .book .trial::before {
  display: block;
  position: absolute;
  top: 1px;
  left: 1px;
  width: 142px;
  height: 42px;
  content: "";
  cursor: pointer;
}

.key-visual .book .buy a, .key-visual .book .trial a {
  display: block;
  position: relative;
  width: 142px;
  height: 42px;
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
}

.key-visual .book .buy.link-none, .key-visual .book .trial.link-none {
  overflow: hidden;
  border: 1px solid #999;
  text-indent: 100%;
  white-space: nowrap;
}

.key-visual .book .buy {
  margin-top: 5px;
  background-color: #e60044;
  transition: all 0.5s ease;
}

.key-visual .book .buy::before {
  background: url(../img/btn_buy.png) 0 0/100% auto no-repeat;
}

.key-visual .book .buy:hover {
  background-color: rgba(230, 0, 68, 0.7);
  transition: all 0.5s ease;
}

.key-visual .book .buy.link-none:hover {
  background-color: #e60044;
}

.key-visual .book .trial {
  margin-top: 3px;
  background-color: #5d4d6b;
  transition: all 0.5s ease;
}

.key-visual .book .trial::before {
  background: url(../img/btn_trial.png) 0 0/100% auto no-repeat;
}

.key-visual .book .trial.link-none::before {
  background: url(../img/btn_trial_off.png) 0 0/100% auto no-repeat;
  cursor: default;
}

.key-visual .book .trial.link-none:hover {
  background-color: #5d4d6b;
}

.key-visual .mv {
  text-align: center;
}

.key-visual .internal-links {
  position: absolute;
  top: 10px;
  left: -18px;
}

.key-visual .internal-links li {
  -webkit-animation: 0.3s fadeIfromTop forwards;
          animation: 0.3s fadeIfromTop forwards;
  opacity: 0;
}

.key-visual .internal-links li:not(:first-of-type) {
  margin-top: -1px;
}

.key-visual .internal-links li:nth-of-type(1) {
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
}

.key-visual .internal-links li:nth-of-type(2) {
  -webkit-animation-delay: 2.1s;
          animation-delay: 2.1s;
}

.key-visual .internal-links li:nth-of-type(3) {
  -webkit-animation-delay: 2.2s;
          animation-delay: 2.2s;
}

.key-visual .internal-links li:nth-of-type(4) {
  -webkit-animation-delay: 2.3s;
          animation-delay: 2.3s;
}

.key-visual .internal-links li a {
  transition: all 0.3s ease;
}

.key-visual .internal-links li a:hover {
  opacity: 0.7;
  transition: all 0.3s ease;
}

.key-visual .snsbox {
  position: absolute;
  top: 10px;
  left: 170px;
}

.key-visual .snsbox .sns {
  display: flex;
  justify-content: center;
}

.key-visual .snsbox .sns li + li {
  margin-left: 5px;
}

.key-visual .tw iframe {
	min-height: 100%!important;
}

/*!  KVアニメーション
------------------------------------------------ */
.fadein {
  -webkit-animation: 0.8s fadeIn forwards;
          animation: 0.8s fadeIn forwards;
  opacity: 0;
}

.fadein01 {
  -webkit-animation: 0.8s fadeIfromTop forwards;
          animation: 0.8s fadeIfromTop forwards;
  opacity: 0;
}

.fadein02 {
  -webkit-animation: 0.8s fadeIfromBtm forwards;
          animation: 0.8s fadeIfromBtm forwards;
  opacity: 0;
}

.fadein03 {
  -webkit-animation: 0.8s fadeIfromRight forwards;
          animation: 0.8s fadeIfromRight forwards;
  opacity: 0;
}

.fadein04 {
  -webkit-animation: 0.8s fadeIfromLeft forwards;
          animation: 0.8s fadeIfromLeft forwards;
  opacity: 0;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@-webkit-keyframes fadeIfromTop {
  from {
    transform: translateY(-50px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes fadeIfromTop {
  from {
    transform: translateY(-50px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@-webkit-keyframes fadeIfromBtm {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes fadeIfromBtm {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@-webkit-keyframes fadeIfromRight {
  from {
    transform: translateX(20px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes fadeIfromRight {
  from {
    transform: translateX(20px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@-webkit-keyframes fadeIfromLeft {
  from {
    transform: translateX(-20px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes fadeIfromLeft {
  from {
    transform: translateX(-20px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

/*以下遅延の指定*/
.fade01 {
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
}

.fade02 {
  -webkit-animation-delay: 1.3s;
          animation-delay: 1.3s;
}

.fade03 {
  -webkit-animation-delay: 1.6s;
          animation-delay: 1.6s;
}

.fade04 {
  -webkit-animation-delay: 1.8s;
          animation-delay: 1.8s;
}

/*!  Twitterウィジェット
================================================ */
.tw{
  z-index: 1;
  position: absolute;
  right: 12px;
  bottom: 40px;
  width:400px;
}
#twitter-widget-0{
min-height:120px!important;
}

/*!  初回限定版
================================================ */
.first-edition {
  opacity: 0;
  transition-duration: 1s;
  transition-delay: 0.3s;
  margin-top: 65px;
  padding: 0 0 32px;
  background-image: url(../img/bg_limited02.png) , url(../img/bg_limited01.png);
  background-position: 50% 0, 0 0;
  background-repeat: no-repeat, repeat;
}

.first-edition .contents {
  width: 966px;
  margin: 0 auto;
  padding-top: 27px;
  background-image: url(../img/bg_limited04.png) , url(../img/bg_limited03.png);
  background-position: 50% 98px, 50% 0;
  background-repeat: no-repeat, no-repeat;
}

.first-edition h2 {
  text-align: center;
}

.first-edition h3 {
  text-align: center;
}

.first-edition .limited01 {
  margin: -13px 0 7px;
}

.first-edition .limited02 {
  margin-top: 11px;
}

/*! MOVIE
================================================ */
.pv-area {
	opacity: 0;
	transition-duration: 1s;
	background-color: #5d4d6b;
	padding-bottom: 50px;
}
.pv-area h2 {
	text-align: center;
}
.pv-area .youtube {
	width: 852px;
	height: 480px;
	margin: 0 auto 35px; 
}
.pv-area ul {
	position: relative;
	width: 700px;
	margin: 0 auto; 
}
.pv-area ul li {
  	margin: 10px 22px;
  	opacity: 0.6;
  	cursor: pointer; 
}
.pv-area ul li span {
	display: block;
	color: #fff;
	font-size: 12px;
    line-height: 1.2;
	text-align: center;
	padding-top: 10px; 
}
.pv-area ul li.active {
	opacity: 1;
}
/*
.slick-current {
	opacity: 1; 
	transform: scale(1);
	pointer-events: auto;
}*/
.pv-area ul .slick-list {
	padding: 0 !important;
}
.pv-area ul .slick-arrow {
	position: absolute;
	top: 26%;
	width: 12px;
	height: 30px;
	border: none;
	font-size: 0;
	background-color: transparent;
	outline: none;
	cursor: pointer;
}
.pv-area ul .slick-prev {
	background: url(../img/btn_pv01.png) no-repeat top center;
	background-size: contain;
	right: inherit;
	left: -25px; 
}
.pv-area ul .slick-next {
	background: url(../img/btn_pv02.png) no-repeat top center;
	background-size: contain;
	left: inherit;
	right: -25px; 
}


/*!  店舗特典
================================================ */
.from-store {
  opacity: 0;
  transition-duration: 1s;
  padding: 0 0 47px;
  background-image: url(../img/bg_store02.png) , url(../img/bg_store01.png);
  background-position: 50% 0, 0 0;
  background-repeat: no-repeat, repeat;
}

.from-store .contents {
  width: 820px;
  margin: 0 auto;
  padding-top: 27px;
  background: url(../img/bg_store03.png) 50% 0 no-repeat;
}

.from-store h2 {
  text-align: center;
}

.from-store .benefits {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 40px auto 0;
}

.from-store .benefits li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(820px / 2 - 10px);
  min-height: 200px;
}

.from-store .benefits li:nth-of-type(2n) {
  margin-left: 20px;
}

.from-store .benefits li:nth-of-type(n+3) {
  margin-top: 21px;
}

.from-store .benefits li a {
  display: block;
  position: relative;
}

.from-store .benefits li a::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  content: "";
}

.from-store .benefits li a img {
  position: relative;
  transition: all 0.5s ease;
}

.from-store .benefits li a:hover img {
  opacity: 0.7;
  transition: all 0.5s ease;
}



/*!  Twitterキャンペーン
================================================ */
.twitter-area {
  opacity: 0;
  transition-duration: 1s;
  padding: 0 0 47px;
  background: url(../img/bg_twitter.png) top center no-repeat #b8e4ff;
}
.twitter-area h2 {
	text-align: center;
	padding-top: 24px;
	margin-bottom: 15px;
}
.twitter-area .contents {
	position: relative;
	width: 1000px;
	margin: 0 auto;
}
.twitter-area .image {
	text-align: center;
}
.twitter-area .follow {
	position: absolute;
	bottom: 45px;
	left: 260px;
}

/*!  キャラクター
================================================ */
.characters {
  opacity: 0;
  transition-duration: 1s;
  padding: 0 0 41px;
  background-color: #f0e7ec;
  background-image: url(../img/bg_character01.png);
  background-position: 50% 0;
  background-repeat: no-repeat;
}

.characters .contents {
  width: 970px;
  margin: 0 auto;
  padding-top: 27px;
  background: url(../img/bg_character02.png) 50% -88px no-repeat;
}

.characters h2 {
  text-align: center;
}

.characters .list-characters {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  margin-top: 40px;
}

.characters .list-characters li {
  width: calc(100% / 3 - 8px);
}

.characters .list-characters li:nth-of-type(2) {
  margin: 0 8px;
}

.characters .list-characters li:nth-of-type(n+4) {
  width: calc(100% / 4 - 8px);
  margin-top: 12px;
}

.characters .list-characters li:nth-of-type(n+5) {
  margin-left: 8px;
}

/*!  あらすじ
================================================ */
.synopsis {
  opacity: 0;
  transition-duration: 1s;
  padding: 0 0 41px;
  background-color: #fff;
  background-image: url(../img/bg_synopsis01.png);
  background-position: 50% 0;
  background-repeat: no-repeat;
  text-align: center;
}

.synopsis .synopses {
  width: 931px;
  margin: 0 auto;
  padding-top: 28px;
  background: url(../img/bg_synopsis02.png) 50% -90px no-repeat;
}

.synopsis .synopses h2 {
  margin-bottom: 148px;
}

.synopsis .synopses p:nth-of-type(1) {
  margin-bottom: 128px;
}

.synopsis .synopses p:nth-of-type(3) {
  margin-top: -15px;
}

.synopsis .frontispiece {
  display: flex;
  justify-content: center;
  width: 890px;
  margin: 0 auto;
}

.synopsis .frontispiece li {
  width: calc(890px / 2 - 30px);
}

.synopsis .frontispiece li + li {
  margin-left: 30px;
}

/*!  書誌情報
================================================ */
.book-information {
  opacity: 0;
  transition-duration: 1s;   
  padding: 0 0 40px;
  background-color: #d6cee0;
}

.book-information h2 {
  text-align: center;
}

.book-information .contents {
  width: 960px;
  margin: 0 auto;
  padding-top: 27px;
  background: url(../img/bg_book.png) 50% 0 no-repeat;
}

.book-information .book {
  display: flex;
  margin-top: 37px;
}

.book-information .book-cover {
  width: 300px;
  padding-top: 3px;
}

.book-information .information {
  width: calc(960px - 300px - 34px);
  margin-left: 34px;
}

.book-information .title {
  font-size: 3.6rem;
  font-weight: bold;
  line-height: 1.3;
}

.book-information .title span {
  display: block;
  font-size: 2.6rem;
  font-weight: bold;
}

.book-information .title span::before, .book-information .title span::after {
  display: inline-block;
  content: "～";
}

.book-information .author {
  margin-top: 24px;
}

.book-information .author p {
  font-weight: bold;
}

.book-information .author p:nth-of-type(1) {
  display: inline-block;
  font-size: 2.4rem;
  line-height: 1.1195;
}

.book-information .author p:nth-of-type(2) {
  display: inline-block;
  margin-left: 20px;
  font-size: 2rem;
  line-height: 1.1195;
}

.book-information .author p:nth-of-type(3) {
  margin-top: 3px;
  font-size: 1.6rem;
  line-height: 1.399;
}

.book-information .lead {
  margin-top: 25px;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.666;
}

.book-information .summary {
  margin-top: 9px;
  font-size: 1.6rem;
  line-height: 1.5;
}

.book-information .btns {
  display: flex;
  margin-top: 33px;
}

.book-information .btns li {
  position: relative;
  width: 261px;
  height: 64px;
  transition: all 0.5s ease;
}

.book-information .btns li + li {
  margin-left: 29px;
}

.book-information .btns li::after {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 8px;
  height: 23px;
  transform: translateY(-50%);
  background: url(../img/icon_link.png) 0 0 no-repeat;
  content: "";
}

.book-information .btns li:hover {
  transition: all 0.5s ease;
}

.book-information .btns li a {
  display: block;
  position: relative;
  width: 261px;
  height: 64px;
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
}

.book-information .btns li.link-none {
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
}

.book-information .btns li.link-none::after {
  background: url(../img/icon_link_off.png) 0 0 no-repeat;
}

.book-information .btns li.buy {
  background-color: #e60044;
}

.book-information .btns li.buy:hover {
  background-color: rgba(230, 0, 68, 0.7);
}

.book-information .btns li.buy::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 99px;
  height: 24px;
  transform: translate(-50%, -50%);
  background: url(../img/item_book_buy.png) 0 0 no-repeat;
  content: "";
}

.book-information .btns li.buy.link-none:hover {
  background-color: #e60044;
}

.book-information .btns li.trial {
  background-color: #5d4d6b;
}

.book-information .btns li.trial:hover {
  background-color: rgba(93, 77, 107, 0.7);
}

.book-information .btns li.trial::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 102px;
  height: 23px;
  transform: translate(-50%, -50%);
  background: url(../img/item_book_trial.png) 0 0 no-repeat;
  content: "";
}

.book-information .btns li.trial.link-none::before {
  background: url(../img/item_book_trial_off.png) 0 0 no-repeat;
}

.book-information .btns li.trial.link-none:hover {
  background-color: #5d4d6b;
}

/*!  footer
================================================ */
footer {
  padding: 30px 0;
  background-color: #000;
  text-align: center;
}

footer .footer {
  width: 960px;
  margin: 0 auto;
}

footer .pagetop {
  position: relative;
  width: 62px;
  height: 62px;
  margin: 0 auto 0;
}

footer .pagetop a {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: url(../img/img_pagetop.png) 50% 0/100% auto no-repeat;
  text-indent: 100%;
  white-space: nowrap;
  transition: all 0.5s ease;
}

footer .pagetop a:hover {
  opacity: 0.7;
  transition: all 0.5s ease;
}

footer .logo {
  width: 138px;
  height: 31px;
  margin: 21px auto 0;
}

footer .logo a {
  display: block;
  height: 100%;
  overflow: hidden;
  background: url(../img/footer_logo.png) 50% 0/100% auto no-repeat;
  text-indent: 100%;
  white-space: nowrap;
}

footer .sns {
  display: flex;
  justify-content: center;
  margin-top: 16px;
}

footer .sns li + li {
  margin-left: 5px;
}

footer small {
  display: block;
  margin-top: 25px;
  color: #fff;
  font-family: a-otf-ud-shin-go-pr6n, sans-serif;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 300;
  line-height: 1.1;
  text-transform: uppercase;
}

@media print, screen and (min-width: 560px) {
  img {
    width: auto;
  }
}

@media print, screen and (min-width: 768px) {
  .key-visual .book .trial:hover {
    background-color: rgba(93, 77, 107, 0.7);
    transition: all 0.5s ease;
  }
}
