@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600&display=swap");
/*                reset
======================================================= */
body,
h1,
h2,
h3,
h4,
h5,
table,
th,
td,
ul,
li,
ol,
dl,
dt,
dd,
form,
p,
table,
th,
td {
  margin: 0px;
  padding: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  list-style-type: none;
}

body {
  color: #333;
  background-color: #000;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
  line-height: 1.3;
  font-size: 16px;
  -webkit-text-size-adjust: none;
}
@media only screen and (max-width: 900px) {
  body {
    font-size: 1.7777777778vw;
  }
}
@media only screen and (max-width: 800px) {
  body {
    @font-size : calc(100vw * $basefontS / 800);
  }
}
@media only screen and (max-width: 700px) {
  body {
    font-size: 1.6494845361vw;
  }
}
@media only screen and (max-width: 640px) {
  body {
    font-size: 2.5vw;
  }
}
@media only screen and (max-width: 500px) {
  body {
    font-size: 3.2vw;
  }
}
@media only screen and (max-width: 400px) {
  body {
    font-size: 4vw;
  }
}
@media only screen and (max-width: 350px) {
  body {
    font-size: 4.5714285714vw;
  }
}

dt,
dd,
li,
th,
td,
p {
  line-height: 1.5;
}

/* for IE6 */
* html body {
  font-size: 100%;
}

a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-touch-callout: none;
}
a img {
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  transition: 0.5s;
}

img {
  display: block;
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

input,
textArea,
select,
button {
  background: none;
  margin: 0px;
  outline: none;
  padding: 0px;
  font-weight: normal;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  list-style-type: none;
  font-size: 16;
}

button {
  cursor: pointer;
}

* {
  font-feature-settings: "palt" 1;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

@font-face {
  font-family: "FontAwesome";
  src: url("../fonts/fontawesome-webfont.eot?v=4.6.3");
  src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.6.3") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.6.3") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.6.3") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");
  font-weight: normal;
  font-style: normal;
}
/*                link
======================================================= */
a:link {
  color: #333;
  text-decoration: none;
}

a:visited {
  color: #333;
}

@media only screen and (min-width: 1025px) {
  a:hover {
    transition: 0.5s;
  }
  a:hover img {
    transition: 0.5s;
    opacity: 0.8;
  }
}
/*                common
======================================================= */
.clear:after {
  content: "";
  display: block;
  clear: both;
}

.clear_both {
  clear: both;
}

.hidden {
  overflow: hidden;
}

/*                leyout
======================================================= */
body {
  background-color: #dad7cd;
}

/*                bg_parallax（背景パララックス層）
======================================================= */
.l-bg_parallax {
  position: fixed;
  inset: 0;
  z-index: -1;
  background-image: url(../images/bg_parallax.png);
  background-repeat: repeat-y;
  background-size: 100% auto;
  background-position: top center;
  opacity: 0;
  transition: opacity 1.8s ease;
  pointer-events: none;
}
.l-bg_parallax.-in {
  opacity: 1;
}
/*                table
======================================================= */
table {
  width: 100%;
  border-collapse: separate;
  border-collapse: collapse;
  border-spacing: 0;
}

table tr td,
table tr th {
  text-align: left;
  padding: 0px;
}

#wrapper {
  min-height: 100%;
  overflow: hidden;
  position: relative;
}
/*                loading-screen
======================================================= */
.loading-screen {
  position: fixed;
  width: 100vw;
  height: 100vh;
  left: 0;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #e1e3d5;
  z-index: 10;
}

.loading__main {
  width: 100%;
  padding: 10vh 10vw;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  opacity: 0;
}
.loading__main.-in {
  opacity: 1;
  transition: all 1.15s;
}

.loading__parts {
  padding: 0.8vw 0;
}
.loading__parts img {
  margin: auto;
  height: 2.4vw;
  width: auto;
}
.loading__parts.-break {
  width: 100%;
}
@media only screen and (max-width: 1024px) {
  .loading__parts img {
    height: 4vw;
  }
}
/*                header
======================================================= */
#header {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 5;
  width: 100%;
  height: 72px;
  background: rgba(255, 255, 255, 0);
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
@media only screen and (max-width: 768px) {
  #header {
    height: 63px;
  }
}
@media only screen and (max-width: 480px) {
  #header {
    height: 13.128vw;
  }
}

.hd-logo {
  position: absolute;
  left: 0;
  top: 0;
  background-color: #fff;
  width: 190px;
  height: 90px;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media only screen and (max-width: 1024px) {
  .hd-logo {
    width: 180px;
  }
}
@media only screen and (max-width: 950px) {
  .hd-logo {
    width: 152px;
  }
}
@media only screen and (max-width: 768px) {
  .hd-logo {
    width: 125px;
    height: 100%;
    padding: 20px;
  }
}
.hd-nav {
  height: 100%;
  display: flex;
  align-items: center;
  padding: 0 55px 0 0;
}
@media only screen and (max-width: 1200px) {
  .hd-nav {
    display: none;
  }
}
@media only screen and (max-width: 1024px) {
  .hd-nav {
    padding: 0 30px 0 0;
  }
}
@media only screen and (max-width: 950px) {
  .hd-nav {
    padding: 0 25px 0 0;
  }
}

.hd-nav__ul {
  display: flex;
}

.hd-nav__li {
  font-family: "Playfair Display";
  font-weight: 400;
}

.hd-nav__inr {
  display: block;
  padding: 0.5em 0.775em;
  color: #000;
  font-size: 87.5%;
  font-weight: 400;
  letter-spacing: 0.17em;
  line-height: 1.1;
  position: relative;
}
@media only screen and (max-width: 1024px) {
  .hd-nav__inr {
    padding: 0.5em 0.5em;
  }
}
@media only screen and (max-width: 950px) {
  .hd-nav__inr {
    padding: 0.5em 0.4em;
  }
}
.hd-nav__inr:link {
  color: #000;
}

.hd-btn {
  position: absolute;
  right: 0;
  top: 0;
  width: 80px;
  height: 100%;
}
@media only screen and (min-width: 1201px) {
  .hd-btn {
    display: none;
  }
}
@media only screen and (max-width: 480px) {
  .hd-btn {
    width: 16.666vw;
  }
}

.sp_btn {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  width: 40px;
  height: 40px;
}
.sp_btn span {
  display: inline-block;
  transition: all 0.4s;
  /*アニメーションの設定*/
  position: absolute;
  left: 0;
  height: 2px;
  background: #fff;
  width: 100%;
}
.sp_btn span:nth-of-type(1) {
  top: 10px;
}
.sp_btn span:nth-of-type(2) {
  top: 20px;
}
.sp_btn span:nth-of-type(3) {
  top: 30px;
}
.sp_btn.active span {
  background: #000;
}
.sp_btn.active span:nth-of-type(1) {
  top: 22px;
  left: 0;
  transform: translateY(-3px) rotate(-15deg);
}
.sp_btn.active span:nth-of-type(2) {
  opacity: 0;
  /*真ん中の線は透過*/
}
.sp_btn.active span:nth-of-type(3) {
  top: 22px;
  left: 0;
  transform: translateY(-3px) rotate(15deg);
}
@media only screen and (max-width: 480px) {
  .sp_btn {
    right: 2.75vw;
    cursor: pointer;
    width: 11.2vw;
    height: 11.2vw;
  }
  .sp_btn span {
    height: 2px;
  }
  .sp_btn span:nth-of-type(1) {
    top: 3.383vw;
  }
  .sp_btn span:nth-of-type(2) {
    top: 5.46vw;
  }
  .sp_btn span:nth-of-type(3) {
    top: 7.6vw;
  }
  .sp_btn.active span:nth-of-type(1) {
    top: 5.883vw;
    transform: translateY(-0.625vw) rotate(-15deg);
  }
  .sp_btn.active span:nth-of-type(3) {
    top: 5.883vw;
    transform: translateY(-0.625vw) rotate(15deg);
  }
}

body:not(.scrolled) .hd-nav__inr {
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 1px 8px rgba(0, 0, 0, 0.25);
}
body:not(.scrolled) .hd-nav__inr:link {
  color: #fff;
}

@media only screen and (min-width: 769px) {
  body.scrolled #header {
    background: rgba(255, 255, 255, 0.9);
  }
}
body.scrolled #header {
  animation: headerScroll 2s ease;
  align-items: center;
  position: fixed;
  left: 0;
  top: 0;
}
@media only screen and (min-width: 769px) {
  body.scrolled .hd-logo {
    background: rgba(255, 255, 255, 0);
  }
}
body.scrolled .hd-logo {
  height: 100%;
}
@media only screen and (max-width: 768px) {
  body.scrolled .hd-logo {
    display: none;
  }
}

@media only screen and (max-width: 1200px) {
  body.sp-nav_open {
    left: 0;
    top: 0;
    overflow: hidden;
  }
}

@media only screen and (min-width: 1201px) {
  .sp-nav {
    display: none;
  }
}
.sp-nav {
  position: fixed;
  left: 100%;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgb(255, 255, 255);
  transition: left 0.5s;
  z-index: 4;
  padding: 72px 13vw;
  overflow-y: auto;
}
.sp-nav.active {
  left: 0;
  transition: left 0.5s;
}
@media only screen and (max-width: 640px) {
  .sp-nav {
    padding: 60px 13vw;
  }
}

.sp-nav__ul {
  border-bottom: solid 1px #000;
  padding: 0 0 3.5vw;
}

.sp-nav__li {
  font-family: "Playfair Display";
  display: flex;
  justify-content: center;
  margin: 0 0 3.5vw 0;
}

.sp-nav__inr {
  font-size: 131.3%;
}
@media only screen and (max-width: 480px) {
  .sp-nav__inr {
    font-size: 4vw;
  }
}
.sp-nav__inr {
  display: block;
  padding: 0.5em 1em;
  color: #000;
  font-weight: 700;
  letter-spacing: 0.17em;
  line-height: 1.1;
  position: relative;
}
.sp-nav__inr:link {
  color: #000;
}

.sp-nav__bookinfo {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 3vw;
  padding: 5vw 0;
  width: 90vw;
  max-width: 100%;
  margin: 0 auto;
}
.sp-nav__bookinfo .cover__inr--tanko {
  width: 16vw;
  flex-shrink: 0;
  align-self: flex-end;
}
.sp-nav__bookinfo .cover__inr--bunko {
  width: 24vw;
  flex-shrink: 0;
  align-self: flex-end;
}
.sp-nav__bookinfo .bookinfo__main {
  display: contents;
}
.sp-nav__bookinfo .bookinfo__bunko-label {
  width: 18vw;
  height: 18vw;
  order: 3;
  align-self: center;
}
.sp-nav__bookinfo .bookinfo__txt {
  display: none;
}
.sp-nav__bookinfo .bookinfo__btn {
  order: 4;
  flex-basis: 100%;
  width: 60vw;
  max-width: 240px;
  margin: 2vw auto 0;
  height: 10vw;
  max-height: 48px;
  border-radius: 5vw;
}

/*                key-visual
======================================================= */
.key_visual {
  position: relative;
  top: 0;
  left: 0;
  width: 100vw;
}
@media only screen and (min-width: 641px) {
  .key_visual {
    height: 100vh;
    height: 100vh;
    max-height: 800px;
  }
}
@media only screen and (min-width: 641px) and (max-width: 1365px) {
  .key_visual {
    height: 100vh;
    max-height: 78.1vw;
  }
}
@media only screen and (min-width: 641px) {
  .key_visual {
    height: 100vh;
  }
}
.key_visual {
  z-index: 1;
}
@media only screen and (min-width: 951px) {
  .key_visual {
    min-height: 768px;
  }
}
@media only screen and (max-width: 768px) {
  .key_visual.-fadein .main_title::before {
    opacity: 1;
    transition: all 0.7s;
  }
}

.key_visual__inr {
  position: relative;
  display: flex;
}
@media only screen and (min-width: 641px) {
  .key_visual__inr {
    align-items: flex-end;
    justify-content: center;
    width: 100vw;
  }
}
.key_visual__inr {
  z-index: 1;
}
@media only screen and (min-width: 1025px) {
  .key_visual__inr {
    height: 800px;
  }
}
@media only screen and (max-width: 1024px) {
  .key_visual__inr {
    height: 78.1vw;
  }
}
@media only screen and (max-width: 640px) {
  .key_visual__inr {
    flex-direction: column;
    height: auto;
    max-height: 200vh;
  }
}

.main_title {
  width: 57vw;
  max-width: 778px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  height: 100%;
}
@media only screen and (max-width: 950px) {
  .main_title {
    width: 50vw;
  }
}
@media only screen and (max-width: 640px) {
  .main_title {
    width: 100%;
    height: calc(100vh - 70vw);
    height: 576px;
    align-items: flex-start;
  }
}
@media only screen and (max-width: 480px) {
  .main_title {
    height: 110vw;
  }
}

@media only screen and (min-width: 641px) {
  .key_visual.-narrow .main_title__bg,
  .key_visual.-narrow .main_title__figure {
    width: calc(100% - 65px);
    height: 91.65%;
  }
  .key_visual.-narrow .main_title_logo {
    width: calc(100% - 65px);
  }
  .key_visual.-narrow .main_title_author {
    bottom: 8.35%;
  }
}
@media only screen and (min-width: 641px) and (max-width: 1200px) {
  .key_visual.-narrow .main_title__bg,
  .key_visual.-narrow .main_title__figure,
  .key_visual.-narrow .main_title_logo {
    width: calc(100% - 5vw);
  }
  .key_visual.-narrow .main_title__bg,
  .key_visual.-narrow .main_title__figure {
    height: 90%;
  }
  .key_visual.-narrow .main_title_author {
    bottom: 10%;
  }
}
@media only screen and (min-width: 641px) {
  .key_visual.-narrow {
    max-height: 733px;
  }
}
@media only screen and (min-width: 641px) and (max-width: 1365px) {
  .key_visual.-narrow {
    max-height: 71.58vw;
  }
}
@media only screen and (min-width: 641px) and (min-width: 1025px) {
  .key_visual.-narrow .key_visual__inr {
    height: 733px;
  }
}
@media only screen and (min-width: 641px) and (max-width: 1024px) {
  .key_visual.-narrow .key_visual__inr {
    height: 71.58vw;
  }
}
.main_title__inr {
  z-index: 5;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  align-items: flex-start;
  width: 100%;
  height: 100%;
}
@media only screen and (max-width: 640px) {
  .main_title__inr {
    max-width: 480px;
  }
}
@media only screen and (max-width: 480px) {
  .main_title__inr {
    transform: translateY(10vw);
  }
}

.main_title_logo {
  position: absolute;
  width: 100%;
  left: 0;
  top: 338px;
  z-index: 3;
}
@media only screen and (max-width: 1024px) {
  .main_title_logo {
    top: 32.976vw;
  }
}
@media only screen and (max-width: 640px) {
  .main_title_logo {
    top: 211px;
  }
}
@media only screen and (max-width: 480px) {
  .main_title_logo {
    top: 32.976vw;
  }
}

.main_title_logo--inr {
  position: relative;
  z-index: 3;
}
.main_title_logo--inr img {
  display: block;
  margin: auto;
  width: 70%;
  max-width: 540px;
  height: auto;
}
@media only screen and (max-width: 640px) {
  .main_title_logo--inr {
    margin-top: -54px;
  }
  .main_title_logo--inr img {
    width: 60vw;
    max-width: 288px;
  }
}
@media only screen and (max-width: 480px) {
  .main_title_logo--inr {
    margin-top: -8.5vw;
  }
}

.main_title__bg,
.main_title__figure {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  opacity: 0;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 65%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 65%, rgba(0, 0, 0, 0) 100%);
}
.main_title__bg.-in,
.main_title__figure.-in {
  opacity: 1;
}
.main_title__bg.-clear,
.main_title__figure.-clear {
  transition: opacity 0s;
}

.main_title__bg {
  z-index: 1;
  background-image: url(../images/main_title__bg.png);
  transition: opacity 8.5s ease;
}

.main_title__figure {
  z-index: 2;
  background-image: url(../images/main_title__figure.png);
  transition: opacity 6s ease;
}

.main_title_author {
  position: absolute;
  left: 20px;
  bottom: 0;
}
@media only screen and (max-width: 1024px) {
  .main_title_author img {
    width: 2.1925vw;
  }
}
@media only screen and (max-width: 640px) {
  .main_title_author {
    left: 50%;
    top: 310px;
    bottom: auto;
  }
  .main_title_author img {
    width: 20px;
    transform: translate(-125px, 0);
  }
}
@media only screen and (max-width: 480px) {
  .main_title_author {
    top: 62vw;
  }
  .main_title_author img {
    width: 4vw;
    transform: translate(-25vw, 0);
  }
}

.key_visual-fadein {
  transform: translate(0, 40px);
  opacity: 0;
}
.key_visual-fadein.-in {
  transform: translate(0, 0);
  opacity: 1;
  transition: all 2.2s;
}

/*                kv_detail
======================================================= */
.kv_detail {
  width: 43vw;
  max-width: 575px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  position: relative;
  z-index: 5;
  padding: 5vw 0;
}
@media only screen and (max-width: 1300px) {
  .kv_detail {
    padding: 5vw 20px 5vw 20px;
  }
}
@media only screen and (max-width: 950px) {
  .kv_detail {
    width: 50vw;
    padding: 5vw 1vw 5vw 0;
  }
}
@media only screen and (max-width: 640px) {
  .kv_detail {
    justify-content: center;
    padding: 0 0 5vw;
    max-width: 100%;
    max-width: 480px;
    margin: auto;
    width: 100%;
  }
}

.kv_detail__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media only screen and (max-width: 640px) {
  .kv_detail__inner {
    display: contents;
  }
}

.kv_detail__catch {
  padding: 3vw 0;
}
@media only screen and (max-width: 640px) {
  .kv_detail__catch {
    position: relative;
    padding: 0;
    width: 100%;
    height: 70vw;
    text-align: center;
  }
}
@media only screen and (max-width: 480px) {
  .kv_detail__catch {
    height: calc(100vh - 110vw);
  }
}

.catch__parts {
  display: block;
  height: 50px;
  overflow: hidden;
  margin: 0.85em 0;
}
.catch__parts img {
  display: block;
  height: 50px;
  width: auto;
  transform: translateY(100%);
}
@media only screen and (max-width: 1024px) {
  .catch__parts {
    height: 40px;
  }
  .catch__parts img {
    height: 40px;
  }
}
@media only screen and (max-width: 950px) {
  .catch__parts {
    height: 30px;
  }
  .catch__parts img {
    height: 30px;
  }
}
@media only screen and (max-width: 640px) {
  .catch__parts {
    height: 29px;
    margin: 0.15em 0;
    margin: 1.5vw 0;
    display: inline-block;
  }
  .catch__parts.-sp-break {
    display: block;
  }
  .catch__parts.-catch_02 {
    margin-right: -2px;
  }
  .catch__parts.-catch_03 {
    margin-left: -2px;
  }
  .catch__parts img {
    height: 29px;
    margin: auto;
  }
}
@media only screen and (max-width: 480px) {
  .catch__parts {
    height: 6vw;
  }
  .catch__parts.-catch_02 {
    margin-right: -0.4166vw;
  }
  .catch__parts.-catch_03 {
    margin-left: -2px;
  }
  .catch__parts img {
    height: 6vw;
  }
}
.catch__parts.-fadein img {
  transform: translateY(0);
  transition: all 2.2s;
}

.catch__sub {
  font-size: 106.3%;
  line-height: 2.2;
  margin: 1em 0 0;
  color: #000;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}
@media only screen and (max-width: 1024px) {
  .catch__sub {
    font-size: 100%;
  }
}
@media only screen and (max-width: 950px) {
  .catch__sub {
    font-size: 93.8%;
  }
}
@media only screen and (max-width: 640px) {
  .catch__sub {
    font-size: 87.5%;
    margin: 0;
    line-height: 2;
  }
}
@media only screen and (max-width: 480px) {
  .catch__sub {
    font-size: 2.8vw;
  }
}

.kv_detail__bookinfo {
  display: flex;
  align-items: flex-end;
  gap: 16px;
}
@media only screen and (max-width: 1300px) {
  .kv_detail__bookinfo {
    gap: 12px;
  }
}
@media only screen and (max-width: 950px) {
  .kv_detail__bookinfo {
    gap: 1.26vw;
  }
}
@media only screen and (max-width: 640px) {
  .kv_detail__bookinfo {
    padding: 15vw 0 0;
    width: 362px;
    max-width: 100%;
    justify-content: center;
    align-items: flex-end;
    align-self: center;
  }
}
@media only screen and (max-width: 480px) {
  .kv_detail__bookinfo {
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding: 10vw 0 0;
    width: 90vw;
    gap: 3vw;
  }
}

.cover__inr--tanko {
  flex-shrink: 0;
  width: 100px;
  margin: 0;
  align-self: flex-end;
  position: relative;
}
.cover__inr--tanko img {
  width: 100%;
  height: auto;
  display: block;
}
.cover__inr--tanko .book_info__format-label {
  position: absolute;
  left: 0;
  bottom: 100%;
  margin-bottom: 0.4em;
  font-size: 10px;
  padding: 0.2em 0.6em;
  white-space: nowrap;
  background-color: rgba(255, 255, 255, 0.3);
}
@media only screen and (max-width: 1300px) {
  .cover__inr--tanko {
    width: 8vw;
  }
}
@media only screen and (max-width: 950px) {
  .cover__inr--tanko {
    width: 9vw;
  }
  .cover__inr--tanko .book_info__format-label {
    font-size: 9px;
    padding: 0.15em 0.5em;
  }
}
@media only screen and (max-width: 640px) {
  .cover__inr--tanko {
    width: 80px;
  }
}
@media only screen and (max-width: 480px) {
  .cover__inr--tanko {
    width: 16vw;
    align-self: center;
  }
  .cover__inr--tanko .book_info__format-label {
    font-size: 8px;
    padding: 0.1em 0.4em;
    margin-bottom: 0.3em;
  }
}

.cover__inr--bunko {
  flex-shrink: 0;
  width: 152px;
  margin: 0;
  align-self: flex-end;
}
.cover__inr--bunko img {
  width: 100%;
  height: auto;
  display: block;
}
@media only screen and (max-width: 1300px) {
  .cover__inr--bunko {
    width: 12vw;
  }
}
@media only screen and (max-width: 950px) {
  .cover__inr--bunko {
    width: 13.5vw;
  }
}
@media only screen and (max-width: 640px) {
  .cover__inr--bunko {
    width: 120px;
  }
}
@media only screen and (max-width: 480px) {
  .cover__inr--bunko {
    width: 24vw;
    align-self: center;
  }
}

.bookinfo__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
@media only screen and (max-width: 640px) {
  .bookinfo__main {
    justify-content: center;
    gap: 8px;
  }
}
@media only screen and (max-width: 480px) {
  .bookinfo__main {
    display: contents;
  }
}

.bookinfo__bunko-label {
  display: block;
  width: 90px;
  height: 90px;
  flex-shrink: 0;
}
@media only screen and (max-width: 1300px) {
  .bookinfo__bunko-label {
    width: 7vw;
    height: 7vw;
  }
}
@media only screen and (max-width: 950px) {
  .bookinfo__bunko-label {
    width: 8vw;
    height: 8vw;
  }
}
@media only screen and (max-width: 640px) {
  .bookinfo__bunko-label {
    width: 80px;
    height: 80px;
  }
}
@media only screen and (max-width: 480px) {
  .bookinfo__bunko-label {
    width: 18vw;
    height: 18vw;
    order: 3;
  }
}

@media only screen and (min-width: 641px) {
  .bookinfo__main {
    transform: translateY(1.275vw);
  }
}
.bookinfo__txt {
  margin: 0 auto;
  font-size: 93.8%;
  font-weight: 400;
  color: #000;
  text-align: center;
}
@media only screen and (max-width: 950px) {
  .bookinfo__txt {
    font-size: 1.578vw;
  }
}
@media only screen and (max-width: 640px) {
  .bookinfo__txt {
    font-size: 87.5%;
  }
}
@media only screen and (max-width: 480px) {
  .bookinfo__txt {
    display: none;
  }
}

.bookinfo__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 100%;
  width: 204px;
  height: 52px;
  border-radius: 26px;
  color: #fff;
  background-color: #000;
}
.bookinfo__btn .inr {
  display: inline-block;
  padding-left: 30px;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.15em;
  position: relative;
}
.bookinfo__btn .inr::before {
  opacity: 0.5;
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  content: "";
  width: 18px;
  height: 14px;
  background-image: url(../images/bookinfo__icon.png);
  background-repeat: no-repeat;
  background-size: contain;
  transform: translateY(-8px);
}
@media only screen and (max-width: 950px) {
  .bookinfo__btn .inr {
    padding-left: 1.7vw;
    font-size: 1.25vw;
    letter-spacing: 0.04em;
  }
  .bookinfo__btn .inr::before {
    width: 1.4vw;
    height: 1.1vw;
  }
}
@media only screen and (max-width: 640px) {
  .bookinfo__btn .inr {
    font-size: 81.3%;
  }
}
@media only screen and (max-width: 480px) {
  .bookinfo__btn .inr {
    font-size: 2.8vw;
  }
}
@media only screen and (max-width: 950px) {
  .bookinfo__btn {
    width: 17vw;
    max-width: 100%;
    height: 42px;
    border-radius: 21px;
  }
}
@media only screen and (max-width: 640px) {
  .bookinfo__btn {
    width: 200px;
    height: 48px;
    border-radius: 24px;
    margin: auto;
  }
}
@media only screen and (max-width: 480px) {
  .bookinfo__btn {
    order: 4;
    flex-basis: 100%;
    width: 60vw;
    max-width: 240px;
    height: 10vw;
    max-height: 48px;
    border-radius: 5vw;
    margin: 2vw auto 0;
  }
}
.scroll {
  display: table;
  position: absolute;
  z-index: 10;
  opacity: 0;
}
.scroll.-in {
  opacity: 1;
  transition: opacity 0.5s;
}
.scroll:after {
  background-color: #5c5c5c;
  content: "";
  display: block;
  width: 1px;
  height: 75px;
  margin: 12px auto 0;
  animation: scrollPc 2s ease infinite;
}
@media only screen and (max-width: 1200px) {
  .scroll {
    right: 10px;
  }
}
@media only screen and (min-width: 641px) {
  .scroll {
    bottom: 0;
    height: 130px;
    right: 30px;
  }
  .scroll.school--sp {
    display: none;
  }
}
@media only screen and (max-width: 640px) {
  .scroll {
    left: 50%;
    bottom: 0;
  }
  .scroll.school--pc {
    display: none;
  }
  .scroll {
    display: block;
    width: 40px;
    height: 60px;
    transform: translate(-50%, 0%);
  }
  .scroll:after {
    position: absolute;
    left: 20px;
    top: 5px;
    height: 80px;
    animation: scrollSp 2s ease infinite;
  }
  .scroll img {
    width: 40px;
  }
}

@media only screen and (min-width: 950.1px) {
  .key_visual .kv_detail {
    translate: 60px 0;
  }
}
@media only screen and (min-width: 950.1px) and (max-width: 1400px) {
  .key_visual .kv_detail {
    translate: 2.8571428571vw 0;
  }
  .key_visual .kv_detail .catch__parts {
    height: 3.5714285714vw;
  }
  .key_visual .kv_detail .catch__parts img {
    height: 3.5714285714vw;
  }
  .key_visual .kv_detail .catch__sub {
    font-size: 1.2142857143vw;
  }
  .key_visual .kv_detail__bookinfo {
    gap: 1.1428571429vw;
  }
  .key_visual .cover__inr--tanko {
    width: 7.1428571429vw;
  }
  .key_visual .cover__inr--bunko {
    width: 10.8571428571vw;
  }
  .key_visual .bookinfo__main {
    gap: 0.7142857143vw;
  }
  .key_visual .bookinfo__txt {
    font-size: 1.0714285714vw;
  }
  .key_visual .bookinfo__btn {
    width: 14.5714285714vw;
    height: 3.7142857143vw;
    border-radius: 1.8571428571vw;
  }
  .key_visual .bookinfo__btn .inr {
    padding-left: 2.1428571429vw;
    font-size: 0.8571428571vw;
  }
}
@media only screen and (min-width: 950.1px) {
  .key_visual.-narrow02 .kv_detail {
    translate: 0 0;
  }
  .key_visual.-narrow02 .kv_detail .catch__parts {
    height: 50px;
  }
  .key_visual.-narrow02 .kv_detail .catch__parts img {
    height: 50px;
  }
}
@media only screen and (min-width: 950.1px) and (max-width: 1024px) {
  .key_visual.-narrow02 .kv_detail .catch__parts {
    height: 40px;
  }
  .key_visual.-narrow02 .kv_detail .catch__parts img {
    height: 40px;
  }
}
@media only screen and (min-width: 950.1px) {
  .key_visual.-narrow02 .kv_detail .catch__sub {
    font-size: 106.3%;
  }
}
@media only screen and (min-width: 950.1px) and (max-width: 1024px) {
  .key_visual.-narrow02 .kv_detail .catch__sub {
    font-size: 100%;
  }
}
@media only screen and (min-width: 950.1px) {
  .key_visual.-narrow02 .kv_detail__bookinfo {
    gap: 16px;
  }
}
@media only screen and (min-width: 950.1px) and (max-width: 1300px) {
  .key_visual.-narrow02 .kv_detail__bookinfo {
    gap: 12px;
  }
}
@media only screen and (min-width: 950.1px) {
  .key_visual.-narrow02 .cover__inr--tanko {
    width: 100px;
  }
}
@media only screen and (min-width: 950.1px) and (max-width: 1300px) {
  .key_visual.-narrow02 .cover__inr--tanko {
    width: 8vw;
  }
}
@media only screen and (min-width: 950.1px) {
  .key_visual.-narrow02 .cover__inr--bunko {
    width: 152px;
  }
}
@media only screen and (min-width: 950.1px) and (max-width: 1300px) {
  .key_visual.-narrow02 .cover__inr--bunko {
    width: 12vw;
  }
}
@media only screen and (min-width: 950.1px) {
  .key_visual.-narrow02 .bookinfo__main {
    gap: 10px;
  }
  .key_visual.-narrow02 .bookinfo__txt {
    font-size: 93.8%;
  }
  .key_visual.-narrow02 .bookinfo__btn {
    width: 204px;
    height: 52px;
    border-radius: 26px;
  }
  .key_visual.-narrow02 .bookinfo__btn .inr {
    padding-left: 30px;
    font-size: 12px;
  }
}
/*                main_area leyout
======================================================= */
.c-fade--01,
.c-fade--02 {
  opacity: 0;
  transform: translateY(50px);
  transition: 1.4s;
}
.c-fade--01.c-fade--in,
.c-fade--02.c-fade--in {
  opacity: 1;
  transform: translateY(0);
}

#main_area {
  margin: 5vw 0 0;
}
@media only screen and (max-width: 640px) {
  #main_area {
    margin: 0;
  }
}

.main_width {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 1052px;
}
@media only screen and (max-width: 1100px) {
  .main_width {
    padding-left: 50px;
    padding-right: 50px;
  }
}
@media only screen and (max-width: 768px) {
  .main_width {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media only screen and (max-width: 480px) {
  .main_width {
    padding-left: 4.166vw;
    padding-right: 4.166vw;
  }
}

.min_width {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 784px;
}
@media only screen and (max-width: 900px) {
  .min_width {
    padding-left: 50px;
    padding-right: 50px;
  }
}
@media only screen and (max-width: 768px) {
  .min_width {
    padding-left: 44px;
    padding-right: 44px;
  }
}
@media only screen and (max-width: 480px) {
  .min_width {
    padding-left: 9.166vw;
    padding-right: 9.166vw;
  }
}

@media only screen and (max-width: 768px) {
  .sp-min_width {
    padding-left: 44px;
    padding-right: 44px;
  }
}
@media only screen and (max-width: 480px) {
  .sp-min_width {
    padding-left: 9.166vw;
    padding-right: 9.166vw;
  }
}

.l-flex_row {
  display: flex;
}
@media only screen and (max-width: 640px) {
  .l-flex_row {
    display: block;
  }
}

.flex__title {
  flex-grow: 1;
  white-space: nowrap;
}
@media only screen and (min-width: 641px) {
  .flex__title {
    margin-top: -1em;
  }
}
@media only screen and (min-width: 641px) and (max-width: 900px) {
  .flex__title {
    margin-top: -0.9em;
  }
}
@media only screen and (max-width: 640px) {
  .flex__title {
    margin-bottom: 2.5em;
  }
}

.flex__detail {
  flex-grow: 2;
  width: 100%;
}

@media (hover: hover) {
  .c-hoverlink:link, .c-hoverlink:visited {
    transition: opacity 0.5s;
  }
  .c-hoverlink:hover {
    opacity: 0.8;
    transition: opacity 0.5s;
  }
}

.title {
  position: relative;
}
.title p.en {
  color: #333;
  font-family: "Playfair Display";
  font-size: 48px;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.125em;
  margin: 0 2em 0.25em -0.125em;
}
@media only screen and (max-width: 900px) {
  .title p.en {
    margin: 0 1.5em 0.25em -0.125em;
    font-size: 4.444vw;
  }
}
@media only screen and (max-width: 640px) {
  .title p.en {
    font-size: 175%;
  }
}
.title h2 {
  font-family: "Yu Mincho", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif;
  font-size: 112.5%;
  font-weight: 500;
  letter-spacing: 2px;
}
@media only screen and (max-width: 900px) {
  .title h2 {
    font-size: 2vw;
  }
}
@media only screen and (max-width: 640px) {
  .title h2 {
    font-size: 68.8%;
  }
}
.title:after {
  background-color: #333;
  content: "";
  display: block;
  height: 2px;
  width: 2.3em;
  margin-top: 2em;
  margin: 2em 0 0 0;
}
@media only screen and (max-width: 640px) {
  .title:after {
    height: 1px;
    width: 1.2em;
    margin: 1em 0 0 0;
  }
}
@media only screen and (min-width: 641px) {
  .title.title--center {
    text-align: center;
    margin-bottom: 2.5em;
  }
  .title.title--center p.en {
    margin: 0 auto 0.25em;
  }
  .title.title--center:after {
    content: "";
    display: block;
    height: 2px;
    width: 2.3em;
    margin: 2em auto;
  }
}
.title.title--white p.en {
  color: #fff;
}
.title.title--white h2 {
  color: #fff;
}
.title.title--white:after {
  background-color: #fff;
}

.lead {
  margin-bottom: 3em;
}
.lead p {
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
  font-size: 93.8%;
  letter-spacing: 0.15em;
  line-height: 2.66;
}
.lead p + p {
  margin-top: 1.25em;
}
@media only screen and (max-width: 640px) {
  .lead p {
    font-size: 75%;
    line-height: 1.85;
  }
}

.box-shadow {
  box-shadow: 0 0 35px 0 rgba(0, 0, 0, 0.15);
}

.c-parallax {
  position: relative;
  background-size: cover;
  z-index: 1;
}

.bg_img-01 {
  position: relative;
}
.bg_img-01 .main_width {
  position: relative;
  z-index: 3;
}
.bg_img-01:after {
  position: absolute;
  right: 0;
  top: 0;
  transform: translate(0, 0);
  display: block;
  width: 380px;
  height: 476px;
  content: "";
  background-image: url("../images/bg_imgdeco-01.png");
  background-position: right top;
  background-repeat: no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 900px) {
  .bg_img-01:after {
    width: 42vw;
    height: 53vw;
  }
}
@media only screen and (max-width: 640px) {
  .bg_img-01:after {
    width: 36vw;
    height: 45vw;
  }
}

.bg_img-02 {
  background-color: #fff;
  position: relative;
}
.bg_img-02:before {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  display: block;
  width: 100%;
  height: 1px;
  content: "";
  padding: 13% 0 0 0;
  background-image: url("../images/bg_paint_pc.png");
  background-position: top center;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 1;
}
.bg_img-02:after {
  position: absolute;
  left: -20px;
  top: 800px;
  transform: translate(0, -50%) scaleX(-1);
  display: block;
  width: 380px;
  height: 476px;
  content: "";
  background-image: url("../images/bg_imgdeco-01.png");
  background-position: left bottom;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.5;
}
@media only screen and (max-width: 900px) {
  .bg_img-02:after {
    transform: translate(0, -50%) scaleX(-1);
    width: 42vw;
    height: 53vw;
  }
}
@media only screen and (max-width: 640px) {
  .bg_img-02 {
    margin-top: 12.5vw;
  }
  .bg_img-02:before {
    padding: 18% 0 0 0;
    background-image: url("../images/bg_paint@sp.png");
  }
  .bg_img-02:after {
    background-image: url("../images/bg_imgdeco-01.png");
    transform: translate(0, -30%) scaleX(-1);
    width: 37vw;
    height: 50vw;
  }
}
@media only screen and (max-width: 480px) {
  .bg_img-02:after {
    transform: translate(0, 10vw) scaleX(-1);
  }
}
.bg_img-02 .main_width {
  position: relative;
  z-index: 3;
}

.c-commingsoon {
  background: #3e3e3e;
  padding: 20px;
  position: relative;
}
.c-commingsoon p {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 187.5%;
  width: 100%;
  text-align: center;
  font-family: "Playfair Display";
  letter-spacing: 0.1em;
  opacity: 0.4;
}
@media only screen and (max-width: 640px) {
  .c-commingsoon p {
    font-size: 100%;
  }
}

/*                #story
======================================================= */
#story {
  padding: 150px 0;
  padding: 10.98vw 0 150px;
}
@media only screen and (min-width: 641px) {
  #story .flex__title {
    margin-top: 0;
  }
}
@media only screen and (max-width: 900px) {
  #story {
    padding: 16.666vw 0;
  }
}
@media only screen and (max-width: 640px) {
  #story {
    padding: 60px 0 20px;
  }
}

/*                #pv
======================================================= */
#pv {
  background-image: url(../images/bg_pv_pc.jpg);
  padding: 120px 0 150px;
}
@media only screen and (max-width: 900px) {
  #pv {
    padding: 16.666vw 0;
  }
}
@media only screen and (max-width: 640px) {
  #pv {
    background-image: url(../images/bg_pv_sp.jpg);
    padding: 80px 0 100px;
  }
}
@media only screen and (max-width: 640px) {
  #pv .pv__detail {
    margin-top: 2.5em;
    margin: 2.25em 0 0;
  }
}
@media only screen and (max-width: 480px) {
  #pv .pv__detail {
    margin-top: 2.5em;
    margin: 2.25em -4.5833vw 0;
  }
}

.pv-youtube {
  width: 100%;
  aspect-ratio: 16/9;
}
.pv-youtube iframe {
  width: 100%;
  height: 100%;
  border-style: none;
}

.pv-commingsoon {
  padding: 57% 0 0 0;
}

/*                #interview
======================================================= */
#interview {
  padding: 206px 0 0;
}
@media only screen and (max-width: 900px) {
  #interview {
    padding: 22.888vw 0 0;
  }
}
@media only screen and (max-width: 640px) {
  #interview {
    padding: 80px 0 0;
  }
}

.interview-commingsoon {
  display: block;
  padding: 31.25% 0 0 0;
  background-color: #8b8b8b;
}
@media only screen and (max-width: 640px) {
  .interview-commingsoon {
    padding: 43.34% 0 0 0;
  }
}

/*                #review
======================================================= */
#review {
  padding: 190px 0 250px;
}
@media only screen and (max-width: 900px) {
  #review {
    padding: 21.111vw 0 0;
  }
}
@media only screen and (max-width: 640px) {
  #review {
    padding: 80px 0 0;
  }
}

.review__wrapper {
  display: flex;
  flex-wrap: wrap;
  margin: -17px -16px;
}
@media only screen and (max-width: 900px) {
  .review__wrapper {
    margin: -8px -8px;
  }
}
@media only screen and (max-width: 640px) {
  .review__wrapper {
    margin: 1.5em 0 -12px;
  }
}

.review__column {
  width: 50%;
}
@media only screen and (min-width: 641px) {
  .review__column:nth-child(even) {
    transform: translateY(60px);
  }
}
@media only screen and (max-width: 640px) {
  .review__column {
    width: 100%;
  }
}

.more_text.closed {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  transition: all 1.15s;
}

.review_box {
  padding: 17px 16px;
}
@media only screen and (max-width: 900px) {
  .review_box {
    padding: 8px 8px;
  }
}
@media only screen and (max-width: 640px) {
  .review_box {
    padding: 0 0 12px;
  }
  .review_box.order1 {
    order: 1;
  }
  .review_box.order2 {
    order: 2;
  }
  .review_box.order3 {
    order: 3;
  }
  .review_box.order4 {
    order: 4;
  }
}

.review_box__inr {
  background-color: #fff;
  padding: 46px 46px 40px;
  border-top: solid 1px #000;
  border-bottom: solid 1px #000;
}
@media only screen and (max-width: 900px) {
  .review_box__inr {
    padding: 5.11vw 5.11vw 4.4444vw;
  }
}
@media only screen and (max-width: 640px) {
  .review_box__inr {
    padding: 8vw 6vw 4.4444vw;
  }
}

.reviewer_text {
  font-size: 93.8%;
  letter-spacing: 0.12em;
  line-height: 1.6;
}
@media only screen and (max-width: 640px) {
  .reviewer_text {
    font-size: 75%;
    letter-spacing: 0.12em;
  }
}

.more_text-after {
  text-align: right;
  font-size: 87.5%;
  margin-top: 1em;
  color: #3399ff;
  cursor: pointer;
  text-decoration: underline;
}
.more_text-after :link {
  color: #3399ff;
}
@media (hover: hover) {
  .more_text-after :hover, .more_text-after:hover {
    text-decoration: none;
  }
}

.reviewer_name {
  font-size: 93.8%;
  margin-top: 1.1em;
  font-weight: 600;
  margin-left: -1.3em;
}
.reviewer_name .inr {
  margin-left: 1.3em;
  display: inline-block;
}
@media only screen and (max-width: 640px) {
  .reviewer_name {
    font-size: 75%;
    letter-spacing: 0.12em;
  }
}

/*                #comment
======================================================= */
#comment {
  padding: 100px 0 160px;
}
@media only screen and (max-width: 900px) {
  #comment {
    padding: 11.1111vw 0 17.7777vw;
  }
}
@media only screen and (max-width: 640px) {
  #comment {
    padding: 60px 0 120px;
  }
}

.more__content {
  position: relative;
  height: auto;
  max-height: 800px;
  overflow: hidden;
  transition: max-height 1s;
}
.more__content::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 120px;
  transition: 1s;
  background: linear-gradient(to bottom, transparent 0%, #ffffff 100%);
}
.more__content.open:after {
  z-index: -1;
  opacity: 0;
}
.more__btn {
  margin: 0 auto;
  padding: 8px 40px;
  border: 0;
  color: #ffffff;
  background-color: #00c2bc;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #333;
  cursor: pointer;
  background: #eaebeb;
  width: 236px;
  max-width: 100%;
  height: 56px;
  border-radius: 28px;
  font-size: 100%;
  position: relative;
}
.more__btn:before {
  position: absolute;
  right: 0;
  top: 50%;
  content: "";
  display: block;
  vertical-align: middle;
  color: #333;
  line-height: 1;
  width: 0.35em;
  height: 0.35em;
  border: 0.1em solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  margin-top: -0.17em;
  transform: translate(-30px, -50%) rotate(135deg);
  letter-spacing: 0.05em;
}
.more__btn.closed:before {
  transform: translate(-30px, 0) rotate(-45deg);
}
@media only screen and (max-width: 640px) {
  .more__btn {
    font-size: 93.8%;
    height: 44px;
    border-radius: 22px;
  }
}

.comment_box {
  position: relative;
  padding: 20px 0;
  background: rgba(255, 255, 255, 0.8);
}
.comment_box:before, .comment_box:after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  content: "";
  height: 1px;
}
.comment_box:before {
  width: 100%;
  background: #d8d8d8;
}
.comment_box:after {
  width: 12%;
  background: #000;
}
@media only screen and (max-width: 640px) {
  .comment_box:after {
    width: 16%;
  }
}

.comment_text,
.comment_name {
  font-size: 87.5%;
  letter-spacing: 0.04em;
  line-height: 1.8;
}
@media only screen and (max-width: 640px) {
  .comment_text,
  .comment_name {
    font-size: 75%;
    letter-spacing: 0;
  }
}

.comment_name {
  text-align: right;
  margin-top: 1.15em;
  margin-right: -1em;
}
.comment_name .inr {
  display: inline-block;
  margin-right: 1em;
}

/*                #profile
======================================================= */
#profile {
  background-image: url(../images/bg_profile_pc.jpg);
  padding: 120px 0 130px;
}
@media only screen and (max-width: 900px) {
  #profile {
    padding: 16.666vw 0;
  }
}
@media only screen and (max-width: 640px) {
  #profile {
    background-image: url(../images/bg_profile_sp.jpg);
    padding: 80px 0 100px;
  }
}

.p-profile_row {
  display: flex;
  align-items: flex-start;
  margin: 5em -16px 0;
  align-items: flex-start;
}

.p-profile_col {
  width: 50%;
  padding: 0 16px;
}

.profile__lead,
.profile__comment {
  padding-left: 70px;
}

@media only screen and (max-width: 1300px) {
  .p-profile_row {
    margin: 5em -1.231vw 0;
  }
  .p-profile_col {
    padding: 0 1.231vwvw;
  }
  .profile__lead,
  .profile__comment {
    padding-left: 5.3846vw;
  }
}
@media only screen and (max-width: 1200px) {
  .profile__lead,
  .profile__comment {
    padding-left: 2.6923vw;
  }
}
@media only screen and (max-width: 900px) {
  .profile__lead,
  .profile__comment {
    padding-left: 0;
  }
}
@media only screen and (max-width: 640px) {
  .p-profile_row {
    display: block;
    margin: 0;
  }
  .p-profile_col {
    width: 100%;
    padding: 0;
  }
}
.profile__photo {
  display: flex;
  justify-content: center;
}
.profile__photo img {
  box-shadow: 0 0 35px 0 rgba(0, 0, 0, 0.85);
}
@media only screen and (max-width: 640px) {
  .profile__photo img {
    margin: 2em auto;
    width: 77.7777%;
  }
}

.profile__detail {
  color: #fff;
}

.profile__lead__title {
  font-size: 137.5%;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-bottom: 1.1em;
}
@media only screen and (max-width: 640px) {
  .profile__lead__title {
    margin-top: 1em;
    font-size: 100%;
    margin-bottom: 0.8em;
  }
}

.profile__text {
  font-size: 100%;
  letter-spacing: 0.08em;
  line-height: 1.725;
}
.profile__text + .profile__text {
  margin-top: 0.5em;
}
@media only screen and (max-width: 640px) {
  .profile__text {
    font-size: 81.3%;
  }
}

.profile__text--sub {
  font-size: 81.3%;
  letter-spacing: 0.08em;
  line-height: 1.725;
}
@media only screen and (max-width: 640px) {
  .profile__text--sub {
    font-size: 68.8%;
  }
}

.profile__comment__sub {
  margin-top: 1.8em;
}
@media only screen and (max-width: 640px) {
  .profile__comment__sub {
    margin-top: 1.2em;
  }
}

.profile__comment {
  margin-top: 3.5em;
}
@media only screen and (max-width: 640px) {
  .profile__comment {
    margin-top: 1.8em;
  }
}

.profile__comment__title {
  font-family: "Yu Mincho", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif;
  font-size: 125%;
  font-weight: 400;
  letter-spacing: 0.14em;
  margin-bottom: 1.1em;
  border-top: solid 1px #999;
  border-bottom: solid 1px #999;
  padding: 1.2em 0;
}
@media only screen and (max-width: 640px) {
  .profile__comment__title {
    font-size: 87.5%;
    padding: 1.5em 0;
    margin-bottom: 1.8em;
  }
}

/*                #book
======================================================= */
#book {
  padding: 180px 0;
}
#book .flex__detail {
  max-width: 746px;
}
@media only screen and (max-width: 900px) {
  #book {
    padding: 20vw 0 20vw;
  }
}
@media only screen and (max-width: 640px) {
  #book {
    padding: 70px 0;
  }
  #book .flex__title {
    margin-bottom: 1em;
  }
}

.p-book_info_row {
  display: flex;
  margin: 0 -35px;
}
.p-book_info_row + .p-book_info_row {
  margin-top: 100px;
}

.p-book_info_col {
  width: 50%;
  padding: 0 35px;
}

@media only screen and (max-width: 1200px) {
  .p-book_info_row {
    margin: 0 -2.9166vw;
  }
  .p-book_info_row + .p-book_info_row {
    margin-top: 8.333vw;
  }
  .p-book_info_col {
    padding: 0 2.9166vw;
  }
}
@media only screen and (max-width: 480px) {
  .p-book_info_row {
    display: block;
    margin: 0;
  }
  .p-book_info_row + .p-book_info_row {
    margin-top: 5.25em;
  }
  .p-book_info_col {
    width: 100%;
    padding: 0;
  }
}
.book_info__image {
  display: flex;
  align-items: center;
  justify-content: center;
}
.book_info__image img {
  box-shadow: 0 0 35px 0 rgba(0, 0, 0, 0.25);
  margin: auto;
  display: block;
  max-width: 100%;
}
@media only screen and (max-width: 480px) {
  .book_info__image img {
    max-width: 204px;
  }
}

.book_info__format-label {
  display: inline-block;
  margin-bottom: 0.8em;
  padding: 0.3em 1em;
  border: 1px solid #000;
  color: #000;
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 1.4;
}
@media only screen and (max-width: 640px) {
  .book_info__format-label {
    font-size: 11px;
    padding: 0.25em 0.8em;
    margin-bottom: 0.6em;
  }
}

.book_info__detail {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.book_info__detail--inr {
  width: 100%;
  max-width: 306px;
}
@media only screen and (max-width: 640px) {
  .book_info__detail {
    justify-content: center;
    margin-top: 1.5em;
  }
  .book_info__detail--inr {
    max-width: 100%;
  }
}

.book_info__title {
  font-size: 225%;
  font-family: "Yu Mincho", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif;
  font-weight: 600;
  padding: 0 0 0.35em;
  border-bottom: solid 1px #999;
  letter-spacing: 0.2em;
}
@media only screen and (max-width: 900px) {
  .book_info__title {
    font-size: 4vw;
  }
}
@media only screen and (max-width: 640px) {
  .book_info__title {
    font-size: 137.5%;
  }
}
@media only screen and (max-width: 480px) {
  .book_info__title {
    font-size: 137.5%;
  }
}

.book_info__data {
  width: 100%;
  font-size: 93.8%;
  margin-top: 1.25em;
}
@media only screen and (max-width: 640px) {
  .book_info__data {
    font-size: 81.3%;
    margin-top: 1em;
  }
}

.book_data--dt,
.book_data--dd {
  padding-top: 0.3em;
  letter-spacing: 0.05em;
}

.book_data--dt {
  float: left;
  font-weight: bold;
}

.book_data--dd {
  margin-left: 5em;
}
@media only screen and (max-width: 640px) {
  .book_data--dd {
    margin-left: 4em;
  }
}

.book_links-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 100%;
  width: 306px;
  height: 64px;
  border-radius: 32px;
  color: #fff;
  background-color: #000;
}
.book_links-btn .inr {
  display: block;
  text-align: center;
  width: 100%;
  color: #fff;
  font-size: 93.8%;
  font-weight: 600;
  letter-spacing: 0.1em;
  position: relative;
}
.book_links-btn .inr::before {
  opacity: 0.5;
  position: absolute;
  left: 30px;
  top: 50%;
  display: block;
  content: "";
  width: 28px;
  height: 28px;
  background-repeat: no-repeat;
  background-size: contain;
  transform: translate(0, -50%);
}
@media only screen and (max-width: 900px) {
  .book_links-btn {
    height: 48px;
    border-radius: 24px;
  }
  .book_links-btn .inr {
    font-size: 100%;
  }
  .book_links-btn .inr::before {
    left: 3.5vw;
    width: 3.2vw;
    height: 3.2vw;
  }
}
@media only screen and (max-width: 480px) {
  .book_links-btn {
    width: 100%;
  }
  .book_links-btn .inr {
    font-size: 87.5%;
  }
}
.book_links-btn.btn--reserv {
  background-color: #ec710d;
  margin-top: 2.2em;
  margin-bottom: 1.5em;
}
.book_links-btn.btn--reserv .inr::before {
  background-image: url(../images/btn-reserv_icon.png);
}
@media only screen and (max-width: 640px) {
  .book_links-btn.btn--reserv {
    margin-top: 1.5em;
    margin-bottom: 0.5em;
  }
}
.book_links-btn.btn--attempt {
  background-color: #000;
}
.book_links-btn.btn--attempt .inr::before {
  background-image: url(../images/btn-attempt_icon.png);
}
.book_links--text {
  font-size: 93.8%;
  text-align: center;
  margin-bottom: 0.6em;
}
@media only screen and (max-width: 640px) {
  .book_links--text {
    font-size: 75%;
  }
}

/*                #sns
======================================================= */
#sns {
  padding: 20px 0 180px;
}
@media only screen and (max-width: 900px) {
  #sns {
    padding: 2.222vw 0 20vw;
  }
}
@media only screen and (max-width: 640px) {
  #sns {
    padding: 15px 0 70px;
  }
}

.official-x--wrapper {
  flex-direction: column;
  background-color: #fff;
  border-radius: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 300px;
  width: 100%;
}

.official-x__text {
  font-size: 125%;
  font-weight: 500;
  margin-bottom: 0.5em;
}
.official-x__text .inr {
  display: inline-block;
}
@media only screen and (max-width: 640px) {
  .official-x__text {
    font-size: 87.5%;
  }
  .official-x__text .inr {
    display: block;
    text-align: center;
  }
}

.official-x__logo {
  margin: 0.5em auto;
}

.official-x__account {
  font-size: 87.5%;
}
@media only screen and (max-width: 640px) {
  .official-x__account {
    font-size: 75%;
  }
}

/*                footer
======================================================= */
.ft-wrapper {
  border-top: solid 1px #686868;
  padding: 125px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}
@media only screen and (max-width: 900px) {
  .ft-wrapper {
    padding: 13.888vwx 0;
  }
}
@media only screen and (max-width: 640px) {
  .ft-wrapper {
    padding: 50px 0 35px;
  }
}
@media only screen and (max-width: 400px) {
  .ft-wrapper {
    padding: 13.3333vw 0 9.3333x;
  }
}

@media only screen and (max-width: 900px) {
  .ft_logo {
    width: 18.888vw;
  }
}
@media only screen and (max-width: 640px) {
  .ft_logo {
    width: 36.5333vw;
  }
}

.page_top {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: 0.5s;
  opacity: 0;
  z-index: -1;
}
.scrolled .page_top {
  opacity: 1;
  z-index: 6;
}
.page_top a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 98px;
  height: 98px;
  background: #000;
  border-radius: 50%;
}
.page_top a img {
  display: block;
  max-width: 18.367%;
}
@media only screen and (max-width: 900px) {
  .page_top a {
    width: 10.8888vw;
    height: 10.8888vw;
  }
}
@media only screen and (max-width: 640px) {
  .page_top a {
    width: 15.466vw;
    height: 15.466vw;
  }
}

/*                @keyframes
======================================================= */
@keyframes headerScroll {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
@keyframes scrollSp {
  0% {
    height: 0;
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  100% {
    height: 50px;
    opacity: 0;
  }
}
@keyframes scrollPc {
  0% {
    height: 0;
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  100% {
    height: 75px;
    opacity: 0;
  }
}
.intervew_navi {
  display: flex;
  flex-wrap: wrap;
  margin: 40px -16px -32px;
}
@media only screen and (max-width: 1024px) {
  .intervew_navi {
    margin: 30px -8px -16px;
  }
}
@media only screen and (max-width: 900px) {
  .intervew_navi {
    display: block;
    margin: 2em 0 0;
  }
}
.intervew_navi .navi_set {
  width: 50%;
  padding: 0 16px;
  margin-bottom: 32px;
}
@media only screen and (max-width: 1024px) {
  .intervew_navi .navi_set {
    padding: 0 8px;
    margin-bottom: 16px;
  }
}
@media only screen and (max-width: 900px) {
  .intervew_navi .navi_set {
    width: 100%;
    padding: 0;
    margin: 0;
  }
  .intervew_navi .navi_set + .navi_set {
    margin-top: 10px;
  }
}
.intervew_navi .navi_set .set_wrap {
  align-items: center;
  background-color: #fff;
  display: flex;
  width: 100%;
  padding: 10px;
}
@media only screen and (max-width: 640px) {
  .intervew_navi .navi_set .set_wrap {
    align-items: flex-start;
  }
}
.intervew_navi .navi_set .set_wrap .img_wrap {
  flex-shrink: 0;
  width: 160px;
}
@media only screen and (max-width: 640px) {
  .intervew_navi .navi_set .set_wrap .img_wrap {
    width: 25%;
  }
}
.intervew_navi .navi_set .set_wrap .info {
  flex: 1 1 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 640px) {
  .intervew_navi .navi_set .set_wrap .info {
    padding: 0 1.5em;
  }
}
.intervew_navi .navi_set .set_wrap .info h3,
.intervew_navi .navi_set .set_wrap .info p {
  white-space: normal;
}
.intervew_navi .navi_set .set_wrap .info h3 {
  font-size: 100%;
  font-weight: 600;
  line-height: 1.4;
}
@media only screen and (max-width: 400px) {
  .intervew_navi .navi_set .set_wrap .info h3 {
    font-size: 87.5%;
  }
}
.intervew_navi .navi_set .set_wrap .info p {
  font-size: 87.5%;
  font-weight: 600;
  text-align: left;
  margin-top: 2px;
}
@media only screen and (max-width: 400px) {
  .intervew_navi .navi_set .set_wrap .info p {
    font-size: 75%;
  }
}

/* ============================================================
   #netabare（ネタバレ感想エリア）
   ============================================================ */
#netabare {
  background-color: #fff;
  border-radius: 10px;
  padding: 55px 50px 66px;
  margin-bottom: 100px;
}
@media only screen and (max-width: 640px) {
  #netabare {
    padding: 15vw 8vw;
  }
}
#netabare h2 {
  font-size: 162.5%;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1em;
}
@media only screen and (max-width: 400px) {
  #netabare h2 {
    font-size: 150%;
  }
}
#netabare h2 img {
  display: block;
  margin: 0 auto 12px;
}
@media only screen and (max-width: 640px) {
  #netabare h2 img {
    width: 35%;
  }
}
@media only screen and (min-width: 641px) {
  #netabare .pc_none {
    display: none;
  }
}
#netabare a {
  background-color: #000;
  border-radius: 50px;
  color: #fff;
  display: block;
  font-weight: 600;
  text-align: center;
  line-height: 1.2;
  max-width: 510px;
  position: relative;
  padding: 1.2em 0;
  margin: 0 auto 1.3em;
}
@media only screen and (max-width: 400px) {
  #netabare a {
    font-size: 75%;
  }
}
#netabare a::before {
  background: url(../images/icon_lock.svg) no-repeat center center/contain;
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  position: absolute;
  top: 50%;
  left: 34px;
  transform: translateY(-50%);
}
@media only screen and (max-width: 640px) {
  #netabare a::before {
    width: 1.5em;
    left: 2em;
  }
}
#netabare .info {
  display: table;
  max-width: 440px;
  margin: 0 auto;
}
@media only screen and (max-width: 400px) {
  #netabare .info {
    font-size: 81.3%;
  }
}
#netabare .info dl .info_set {
  display: flex;
}
#netabare .info dl .info_set + .info_set {
  margin-top: 0.5em;
}
#netabare .info dl .info_set dt {
  color: #222;
  flex-shrink: 0;
  margin-right: 0.5em;
}
#netabare .info dl .info_set dd {
  font-weight: 600;
}