/*
	HTML5 Reset :: style.css
	----------------------------------------------------------
	We have learned much from/been inspired by/taken code where offered from:

	Eric Meyer					:: http://meyerweb.com
	HTML5 Doctor				:: http://html5doctor.com
	and the HTML5 Boilerplate	:: http://html5boilerplate.com

-------------------------------------------------------------------------------*/
/* Let's default this puppy out
-------------------------------------------------------------------------------*/
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, menu, nav, section, time, mark, audio, video, details, summary {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font-weight: normal;
  vertical-align: baseline;
  background: transparent;
}

article, aside, figure, footer, header, nav, section, details, summary {
  display: block;
}

/* Handle box-sizing while better addressing child elements:
   http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
html {
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

/* consider resetting the default cursor: https://gist.github.com/murtaugh/5247154 */
/* Responsive images and other embedded objects */
/* if you don't have full control over `img` tags (if you have to overcome attributes), consider adding height: auto */
img,
object,
embed {
  max-width: 100%;
}

/*
   Note: keeping IMG here will cause problems if you're using foreground images as sprites.
	In fact, it *will* cause problems with Google Maps' controls at small size.
	If this is the case for you, try uncommenting the following:

#map img {
		max-width: none;
}
*/
/* force a vertical scrollbar to prevent a jumpy page */
html {
  overflow-y: scroll;
}

/* we use a lot of ULs that aren't bulleted.
	you'll have to restore the bullets within content,
	which is fine because they're probably customized anyway */
ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help;
}

/* tables still need cellspacing="0" in the markup */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

th {
  font-weight: bold;
  vertical-align: bottom;
}

td {
  font-weight: normal;
  vertical-align: top;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

pre {
  white-space: pre; /* CSS2 */
  white-space: pre-wrap; /* CSS 2.1 */
  white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
  word-wrap: break-word; /* IE */
}

input[type=radio] {
  vertical-align: text-bottom;
}

input[type=checkbox] {
  vertical-align: bottom;
}

.ie7 input[type=checkbox] {
  vertical-align: baseline;
}

.ie6 input {
  vertical-align: text-bottom;
}

select, input, textarea {
  font: 99% sans-serif;
}

table {
  font-size: inherit;
  font: 100%;
}

small {
  font-size: 85%;
}

strong {
  font-weight: bold;
}

td, td img {
  vertical-align: top;
}

/* Make sure sup and sub don't mess with your line-heights http://gist.github.com/413930 */
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* standardize any monospaced elements */
pre, code, kbd, samp {
  font-family: monospace, sans-serif;
}

/* hand cursor on clickable elements */
.clickable,
label,
input[type=button],
input[type=submit],
input[type=file],
button {
  cursor: pointer;
}

/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea {
  margin: 0;
}

/* make buttons play nice in IE */
button,
input[type=button] {
  width: auto;
  overflow: visible;
}

/* scale images in IE7 more attractively */
.ie7 img {
  -ms-interpolation-mode: bicubic;
}

/* prevent BG image flicker upon hover
   (commented out as usage is rare, and the filter syntax messes with some pre-processors)
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
*/
/* let's clear some floats */
.clearfix:before, .clearfix:after {
  content: " ";
  display: block;
  height: 0;
  overflow: hidden;
}

.clearfix:after {
  clear: both;
}

.clearfix {
  zoom: 1;
}

html {
  font-size: 62.5%;
}

body {
  color: #B7AA75;
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  letter-spacing: 1px;
  line-height: 1.6;
}

.section {
  margin: 0 auto;
  max-width: 1280px;
  padding: 48px 24px;
  width: 100%;
}

img {
  display: block;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  width: 100%;
}

p,
h1,
h2,
a,
span,
div {
  font-size: inherit;
  font-weight: 700;
}

a {
  color: inherit;
  display: block;
  text-decoration: none;
  transition: 0.3s;
}
a:hover {
  opacity: 0.6;
}

.main {
  display: block;
  margin: 0 auto;
  max-width: 600px;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .main {
    max-width: 100%;
  }
}
.main::before {
  background-color: #461D45;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -2;
}
.main::after {
  background: url("../images/bg_pattern.png") repeat;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

.footer {
  -webkit-align-items: center;
          align-items: center;
  background: #000000;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  margin: 0 auto;
  max-width: 600px;
  padding: 18px 24px 13px;
}
@media screen and (max-width: 768px) {
  .footer {
    max-width: 100%;
    padding: 24px 13px 18px 24px;
  }
}
.footer__copy {
  color: #FFFFFF;
  font-size: 1rem;
}
.footer__fig {
  width: 328px;
}
@media screen and (max-width: 768px) {
  .footer__fig {
    width: 204px;
  }
}
.footer__link {
  -webkit-align-items: center;
          align-items: center;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  margin-top: -4px;
}
.footer__linkTxt {
  font-size: 1.4rem;
  text-align: center;
}
.footer__top {
  width: 98px;
}
@media screen and (max-width: 768px) {
  .footer__top {
    width: 62px;
  }
}

.header {
  background: url("../images/bg_pc.png") no-repeat top center/cover;
  height: 100svh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: -1;
}
.header__catch {
  position: absolute;
}
.header__catch_type_right {
  height: 540px;
  right: calc((100% - 600px) / 4);
  top: calc(50% - 6px);
  translate: 50% -50%;
}
.header__catch_type_left {
  height: 540px;
  left: calc((100% - 600px) / 4);
  top: calc(50% - 3px);
  translate: -50% -50%;
}
.header__img {
  height: 100%;
}

.modal {
  display: none;
}
.modal.active {
  display: block;
}
.modal__wrap {
  background: rgba(0, 0, 0, 0.8);
  display: none;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 10;
}
.modal.active .modal__wrap {
  display: block;
}
.modal__inner {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  height: 100%;
  -webkit-justify-content: center;
          justify-content: center;
  padding: 40px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .modal__inner {
    padding: 0;
  }
  .modal__inner:has(.modal__cast) {
    padding: 0 24px;
  }
}
.modal__content {
  margin: 0 auto 18px;
  max-width: 800px;
  padding-top: 24px;
  width: 100%;
}
.modal__content:has(.modal__cast) {
  max-width: 860px;
}
@media screen and (max-width: 768px) {
  .modal__content:has(.modal__cast) {
    padding-top: 0;
  }
}
.modal__close {
  color: #FFFFFF;
  cursor: pointer;
  font-size: 1.8rem;
  left: 0;
  margin: 0 auto;
  position: relative;
  right: 0;
  transition: 0.3s;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.modal__close:hover {
  opacity: 0.6;
}
.modal__iframe {
  aspect-ratio: 560/315;
  width: 100%;
}
.modal__contentInner {
  display: -webkit-flex;
  display: flex;
  height: 100%;
  max-height: 544px;
  padding: 48px;
  position: relative;
  width: 100%;
}
.modal__contentInner::before {
  background-color: #461D45;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -2;
}
.modal__contentInner::after {
  background: url("../images/bg_pattern.png") repeat;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .modal__contentInner {
    max-height: 555px;
    padding: 24px;
  }
}
.modal__cast {
  display: -webkit-flex;
  display: flex;
  gap: 24px;
}
@media screen and (max-width: 768px) {
  .modal__cast {
    -webkit-flex-direction: column;
            flex-direction: column;
    overflow-y: scroll;
    overscroll-behavior: contain;
  }
}
.modal__contentArea {
  overflow-y: scroll;
  overscroll-behavior: contain;
  padding-right: 16px;
  width: calc(53.4% + 16px);
}
@media screen and (max-width: 768px) {
  .modal__contentArea {
    overflow-y: unset;
    width: 100%;
  }
}

.sectionTtl {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  gap: 8px;
  margin-bottom: 24px;
}
.sectionTtl__main {
  font-size: 2.4rem;
}
.sectionTtl__sub {
  font-size: 1.4rem;
}
.sectionTtl__big {
  font-size: 2.8rem;
}

.sns__2columns {
  -webkit-align-items: stretch;
          align-items: stretch;
  display: -webkit-flex;
  display: flex;
  gap: 16px;
}
.sns__item_2_columns {
  -webkit-flex: 1 0 auto;
          flex: 1 0 auto;
  width: calc((100% - 16px) / 2);
}
.sns__link {
  -webkit-align-items: center;
          align-items: center;
  background: #FFFFFF;
  border: 2px solid #B7AA75;
  display: -webkit-flex;
  display: flex;
  height: 100%;
  -webkit-justify-content: center;
          justify-content: center;
}
.sns__link_to_youtube {
  padding: 50px 45px;
}
@media screen and (max-width: 480px) {
  .sns__link_to_youtube {
    padding: 26px 16px;
  }
}
.sns__link_to_insta {
  padding: 42px 35px;
}
@media screen and (max-width: 480px) {
  .sns__link_to_insta {
    padding: 30px 16px;
  }
}

.bottom__fig {
  margin: 0 auto 24px;
  width: 240px;
}
.bottom__txt {
  text-align: center;
}
.bottom__txt + .bottom__txt {
  margin-top: 27px;
}

.cast {
  cursor: pointer;
  transition: all 0.3s;
}
.cast:hover {
  opacity: 0.6;
}
.castContainer + .cast {
  margin-top: 64px;
}
.castContainer .cast {
  margin-bottom: 24px;
  width: calc((100% - 24px) / 2);
}
@media screen and (max-width: 768px) {
  .castContainer .cast {
    width: calc((100% - 16px) / 2);
  }
}
.castContainer .cast:nth-last-child(1), .castContainer .cast:nth-last-child(2) {
  margin-bottom: 0;
}
.castContainer .cast + .cast {
  margin-top: 0;
}
.cast__comment {
  background-image: linear-gradient(to right, #B7AA75 2px, transparent 2px);
  background-position: center bottom;
  background-repeat: repeat-x;
  background-size: 4px 1px;
  margin-bottom: 16px;
  padding-bottom: 1.6rem;
}
.cast__fig {
  margin-bottom: 16px;
}
.modal__cast .cast__fig {
  max-width: 300px;
}
@media screen and (max-width: 768px) {
  .modal__cast .cast__fig {
    margin: 0 auto;
  }
}
.cast__name {
  font-size: 2.4rem;
}
.cast__profiel {
  font-size: 1.4rem;
}
.cast__role {
  font-size: 1.4rem;
}
.cast__ttl {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
}
.cast + .cast {
  margin-top: 64px;
}

.catch {
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.catch::before {
  background: url("../images/bg_motif.png") no-repeat top center/cover;
  content: "";
  height: 472px;
  left: -4px;
  position: absolute;
  top: -186px;
  width: 1326px;
  z-index: -1;
}
.catch__txt {
  display: block;
  font-size: 2.4rem;
  margin: 0 auto 24px;
  text-align: center;
}
.catch__post {
  margin: 0 auto 16px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .catch__post {
    max-width: 550px;
  }
}
.catch #twitter-widget-0,
.catch .twitter-tweet-rendered {
  max-width: 100% !important;
  width: 100% !important;
}

.comments {
  background: url("../images/bg_contents_content.png") #A87AA3 repeat top center/contain;
  color: #3A183A;
  margin: 80px 0;
  position: relative;
}
.comments::before {
  aspect-ratio: 600/80;
  background: url("../images/bg_contents01.png") no-repeat top center/cover;
  content: "";
  left: 0;
  position: absolute;
  top: -80px;
  width: 100%;
}
.comments::after {
  aspect-ratio: 600/80;
  background: url("../images/bg_contents02.png") no-repeat top center/cover;
  bottom: -80px;
  content: "";
  left: 0;
  position: absolute;
  width: 100%;
}
.comments__item {
  background: url("../images/bg_guest_content.png") repeat-y center/100%;
  margin: 24px 0;
  padding: 0 24px;
  position: relative;
}
.comments__item + .comments__item {
  margin-top: 69px;
}
.comments__item::before {
  background: url("../images/bg_guest01.png") no-repeat top center/cover;
  content: "";
  height: 24px;
  left: 0;
  position: absolute;
  top: -23px;
  width: 100%;
}
.comments__item::after {
  background: url("../images/bg_guest02.png") no-repeat bottom center/cover;
  bottom: -23px;
  content: "";
  height: 24px;
  left: 0;
  position: absolute;
  width: 100%;
}
.comments__name {
  font-size: 2rem;
}
.comments__sub {
  font-size: 1.4rem;
}
.comments__ttl {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  margin-bottom: 16px;
}
.intro {
  background: url("../images/bg_intro_content.png") #8E8568 no-repeat top 32px center/cover;
  margin: 230px 0;
  position: relative;
  width: 100%;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .intro {
    background: url("../images/bg_intro_content.png") #8E8568 no-repeat top center/cover;
  }
}
.intro::before {
  aspect-ratio: 600/230;
  background: url("../images/bg_intro01.png") no-repeat top center/cover;
  content: "";
  left: 0;
  position: absolute;
  top: -228px;
  width: 100%;
  z-index: -1;
}
.intro::after {
  aspect-ratio: 600/230;
  background: url("../images/bg_intro02.png") no-repeat bottom center/cover;
  bottom: -228px;
  content: "";
  left: 0;
  position: absolute;
  width: 100%;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .intro {
    margin: 240px 0;
  }
  .intro::before {
    top: 2px;
    translate: 0 -100%;
  }
  .intro::after {
    bottom: 2px;
    translate: 0 100%;
  }
}
@media screen and (max-width: 480px) {
  .intro {
    margin: 148px 0;
  }
}
.intro__txt, .intro__sectionTtl {
  color: #3A183A;
}
.intro__txt + .intro__txt {
  margin-top: 27px;
}

.member {
  background: url("../images/bg_comment01.png") no-repeat top center/100%, url("../images/bg_comment02.png") no-repeat bottom center/100%;
  color: #3A183A;
  padding: 19px 0;
}
.member__inner {
  background: url("../images/bg_comment_content.png") repeat-y center/100%;
  padding: 5px 24px;
}
.member + .member {
  margin-top: 24px;
}
.member__comment {
  background-image: linear-gradient(to right, #3A183A 2px, transparent 2px);
  background-position: center bottom;
  background-repeat: repeat-x;
  background-size: 4px 1px;
  margin-bottom: 24px;
  padding-bottom: 24px;
}
.member__fig {
  margin-bottom: 24px;
}
.member__profiel {
  font-size: 1.4rem;
}
.member__bookFig {
  margin: 16px auto 0;
  width: 174px;
}
.member__bookImg {
  margin-bottom: 10px;
}
.member__bookCaption {
  font-size: 1rem;
  font-weight: bold;
  white-space: nowrap;
}

.memberTtl {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .memberTtl {
    margin-bottom: 24px;
  }
}
.memberTtl__name {
  font-size: 2.4rem;
}
.memberTtl__sub {
  font-size: 2rem;
}

.mv__announce {
  width: 100%;
}
.mv__illust {
  width: 100%;
}

.news__block {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 24px 16px;
}
.news__fig {
  aspect-ratio: 155/95;
  margin-bottom: 8px;
  width: 100%;
}
.news__item {
  width: calc((100% - 16px) / 2);
}
.news__txtBlock {
  -webkit-align-items: center;
          align-items: center;
  display: -webkit-flex;
  display: flex;
  gap: 10px;
  width: 100%;
}
.news__txt {
  -webkit-flex: 1 0 auto;
          flex: 1 0 auto;
  max-width: calc(100% - 26px);
}
@media screen and (max-width: 768px) {
  .news__txt {
    max-width: calc(100% - 20px);
  }
}
.news__blank {
  aspect-ratio: 1;
  width: 16px;
}
@media screen and (max-width: 768px) {
  .news__blank {
    width: 10px;
  }
}
.news__icon {
  width: 100%;
}

.dashedLine {
  background-image: linear-gradient(to right, #B7AA75 2px, transparent 2px);
  background-position: center bottom;
  background-repeat: repeat-x;
  background-size: 4px 1px;
  height: 1px;
  margin: 0 24px;
}

.story__txt {
  display: inline-block;
  margin-bottom: 48px;
}

.castTtl {
  font-size: 2rem;
  margin-bottom: 24px;
}

.correlation {
  margin-bottom: 48px;
}

.castContainer {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  margin-top: 64px;
}

.u_d_n {
  display: none;
}
.u_d_b {
  display: block;
}
.u_d_f {
  display: -webkit-flex;
  display: flex;
}
@media screen and (max-width: 768px) {
  .u_sp_d_n {
    display: none;
  }
  .u_sp_d_b {
    display: block;
  }
  .u_sp_d_f {
    display: -webkit-flex;
    display: flex;
  }
}
@media screen and (max-width: 1050px) {
  .u_tab_d_n {
    display: none;
  }
  .u_tab_d_b {
    display: block;
  }
  .u_tab_d_f {
    display: -webkit-flex;
    display: flex;
  }
}
@media screen and (max-width: 1400px) {
  .u_pc_d_n {
    display: none;
  }
  .u_pc_d_b {
    display: block;
  }
  .u_pc_d_f {
    display: -webkit-flex;
    display: flex;
  }
}
.u_ta_l {
  text-align: left;
}
.u_ta_c {
  text-align: center;
}
.u_ta_r {
  text-align: right;
}
@media screen and (max-width: 768px) {
  .u_sp_ta_l {
    text-align: left;
  }
  .u_sp_ta_c {
    text-align: center;
  }
  .u_sp_ta_r {
    text-align: right;
  }
}
@media screen and (max-width: 1400px) {
  .u_pc_ta_l {
    text-align: left;
  }
  .u_pc_ta_c {
    text-align: center;
  }
  .u_pc_ta_r {
    text-align: right;
  }
}
.u_jc_fs {
  -webkit-justify-content: flex-start;
          justify-content: flex-start;
}
.u_jc_c {
  -webkit-justify-content: center;
          justify-content: center;
}
.u_jc_fe {
  -webkit-justify-content: flex-end;
          justify-content: flex-end;
}
.u_jc_sb {
  -webkit-justify-content: space-between;
          justify-content: space-between;
}
.u_jc_sa {
  -webkit-justify-content: space-around;
          justify-content: space-around;
}
@media screen and (max-width: 768px) {
  .u_sp_jc_fs {
    -webkit-justify-content: flex-start;
            justify-content: flex-start;
  }
  .u_sp_jc_c {
    -webkit-justify-content: center;
            justify-content: center;
  }
  .u_sp_jc_fe {
    -webkit-justify-content: flex-end;
            justify-content: flex-end;
  }
  .u_sp_jc_sb {
    -webkit-justify-content: space-between;
            justify-content: space-between;
  }
  .u_sp_jc_sa {
    -webkit-justify-content: space-around;
            justify-content: space-around;
  }
}
@media screen and (max-width: 1400px) {
  .u_pc_jc_fs {
    -webkit-justify-content: flex-start;
            justify-content: flex-start;
  }
  .u_pc_jc_c {
    -webkit-justify-content: center;
            justify-content: center;
  }
  .u_pc_jc_fe {
    -webkit-justify-content: flex-end;
            justify-content: flex-end;
  }
  .u_pc_jc_sb {
    -webkit-justify-content: space-between;
            justify-content: space-between;
  }
  .u_pc_jc_sa {
    -webkit-justify-content: space-around;
            justify-content: space-around;
  }
}