@charset "UTF-8";
/* mixin情報 */
/* 重要　基本設定 */
html {
  font-size: clamp(10px, 9px + 1.25vw, 21px);
}

body {
  width: 100%;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9rem;
  line-height: 1.4;
  font-weight: 500;
  font-style: normal;
  overflow-x: hidden;
  background: url("../../_img/bg_header.jpg") repeat-x center top, url("../../_img/bg_base.jpg") center top;
}
@media (max-width: 767px) {
  body {
    background-size: 300% auto, 190% auto;
    background-position: center calc(0% - 5rem), center top;
  }
}
body.lower {
  background: url("../../_img/bg_lower.jpg") repeat-x center top, url("../../_img/bg_base.jpg") center top;
}
@media (max-width: 767px) {
  body.lower {
    background-size: 300% auto, 190% auto;
  }
}

#stage {
  position: relative;
  width: 100%;
}
@media (max-width: 767px) {
  #stage {
    margin: -8rem auto 0;
    overflow: hidden;
    padding-bottom: 5rem;
  }
}

#wood {
  width: 100%;
  height: 100%;
  position: absolute;
  pointer-events: none;
  z-index: 10;
  background: url("../../_img/bg_wood.png") repeat-y center top;
}
@media (max-width: 767px) {
  #wood {
    display: none;
  }
}

img {
  max-width: 100%;
}

.mg2rem {
  margin-bottom: 2rem;
}

rt {
  transform: translateY(5px);
}

/* 重要ラッパーの設定 */
#wrapper, #wrapper0 {
  max-width: 700px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

section {
  position: relative;
  text-align: center;
  margin-top: 3rem;
}

.flame {
  width: 100%;
  margin: 0 auto 2rem;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 20px;
  box-sizing: border-box;
  padding: 1rem;
  border: 3px dashed #7e2430;
  outline: 3px solid #FFF;
}
@media (max-width: 767px) {
  .flame {
    width: 94%;
    border-radius: 10px;
  }
}

ol, ul {
  list-style: none;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

img {
  width: 100%;
}

/* 見出し設定*/
h1 {
  font-size: 0;
}

h4 {
  line-height: 1.2rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 700;
  color: #3cb034;
}
h4.pink {
  color: #ff8c9d;
}
h4.archive {
  font-size: 1.5rem;
  margin: 1rem auto;
}

/* 動画のエンベッド */
.youtubeMv {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  box-sizing: border-box;
  margin-bottom: 1rem;
}

.youtubeMv iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

/* SNS */
#sns {
  text-align: center;
  padding: 1rem 0;
  background: #fff;
  margin-bottom: 1rem;
  margin-top: 0;
}
@media (max-width: 767px) {
  #sns ul {
    width: 50%;
    margin: 0 auto;
    display: flex;
    justify-content: space-around;
  }
}
#sns p {
  font-size: 1rem;
  color: #39a731;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

/* フッター */
footer {
  width: 100%;
  padding: 10px 0 100px;
  z-index: 10;
}
@media (max-width: 767px) {
  footer {
    padding-bottom: 5rem;
  }
}
footer p {
  color: #000;
  font-size: 0.6rem;
  line-height: 1rem;
  text-align: center;
  margin-top: 1rem;
}
footer .bannerList {
  max-width: 700px;
  margin: 1rem auto;
  display: flex;
  justify-content: center;
  gap: 10px;
  align-items: start;
}
footer .bannerList li {
  margin: 0;
}

/* ボタン */
a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

a.btn {
  display: inline-block;
  background: #ff8c9d;
  color: #fff;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  font-weight: 700;
}
a.btn.btnBig {
  font-size: 1.3rem;
  padding: 0.4rem 1rem;
  margin: 1rem auto;
  display: inline-block;
}

a.btn:hover {
  background: #ab4151;
  text-decoration: none;
}

/* clearfix */
.clearfix {
  zoom: 1;
}

.clearfix:after, ul:after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}

/* メニュー */
.global-header {
  height: 70px;
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
}
@media (max-width: 767px) {
  .global-header {
    background: url("../../_img/bg_nav_sp.png") no-repeat center/cover;
    top: auto;
    bottom: 0;
    height: auto;
    padding: 5vw 0 2vw;
    box-shadow: none;
  }
}

.global-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  height: 100%;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  .global-header__inner {
    padding: 0;
    display: block;
  }
}

.global-header__logo {
  margin: 0;
  line-height: 1;
}
@media (max-width: 767px) {
  .global-header__logo {
    width: 23%;
    margin: 0 auto;
  }
}

.global-header__logo a {
  display: block;
}

.global-header__logo img {
  display: block;
  height: auto;
  max-height: 50px;
}

.global-nav {
  height: 100%;
}
@media (max-width: 767px) {
  .global-nav {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    scrollbar-width: none;
  }
}

.global-nav__list {
  display: flex;
  align-items: center;
  height: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 6px;
}
@media (max-width: 767px) {
  .global-nav__list {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    padding: 0;
    width: -moz-max-content;
    width: max-content;
  }
}

.global-nav__item {
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .global-nav__item {
    flex: 0 0 auto;
  }
}

.global-nav__item a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
@media (max-width: 767px) {
  .global-nav__item a {
    display: block;
  }
}

.global-nav__item img {
  display: block;
  height: auto;
}
@media (max-width: 767px) {
  .global-nav__item img {
    display: block;
    height: 70px;
    width: auto;
    max-width: none;
  }
}

/* リスト関連 */
ul.newsList li {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 0.6rem;
  align-items: center;
  line-height: 1.1rem;
  font-size: 1rem;
}
ul.newsList li:last-child {
  margin-bottom: 0;
}
ul.newsList li p {
  width: 100%;
  display: block;
  text-align: left;
  margin-top: 0.4rem;
}

span {
  display: inline-block;
  margin-right: 0.2rem;
}

span.day {
  color: #e4007f;
}

span.category {
  background: #e4007f;
  color: #fff;
  display: inline-flex;
  align-items: center;
  padding: 0 0.8rem;
  font-size: 0.7rem;
  line-height: 1;
  height: 1.6em; /* ←高さで制御 */
  border-radius: 999px;
}
span.category.brown {
  background: #b25966;
}

ul.line2 {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  text-align: left;
}
@media (max-width: 767px) {
  ul.line2 {
    width: 96%;
    margin: 0 auto 1rem;
  }
}
ul.line2 li {
  width: calc((100% - 20px) / 2);
}
ul.line2 li img {
  width: 100%;
  height: auto;
  margin-bottom: 0.5rem;
}
ul.line2 li p {
  text-align: left;
}

ul.line3 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
ul.line3 li {
  width: calc((100% - 20px) / 3);
}
ul.line3 li img {
  width: 100%;
  height: auto;
  margin-bottom: 0.3rem;
}

.bannerList {
  display: flex;
  justify-content: center;
  gap: 10px;
  align-items: start;
}
.bannerList li {
  margin: 0;
}

#goods ul.line2 {
  width: 80%;
  margin: 1rem auto;
  position: relative;
  z-index: 10111;
}
@media (max-width: 767px) {
  #goods ul.line2 {
    width: 96%;
  }
}
#goods ul.line2 li p {
  text-align: center;
  font-weight: 700;
}
#goods ul.line2 li p span {
  font-size: 0.8em;
}

/* TOP */
#top {
  width: 100%;
  aspect-ratio: 800/700;
  position: relative;
}
@media (max-width: 767px) {
  #top {
    aspect-ratio: 800/1000;
  }
}
#top #logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 65.7142857143%;
  bottom: 22rem;
  z-index: 9;
}
#top .chara1 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 37.4285714286%;
  bottom: -2rem;
  z-index: 9;
}
#top .chara2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-80%);
  width: 25.7142857143%;
  bottom: 2.5rem;
  z-index: 8;
}
#top .chara3 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(90%);
  width: 26.5714285714%;
  bottom: 3rem;
  z-index: 8;
}
#top .chara4 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-150%);
  width: 26%;
  bottom: 6rem;
  z-index: 7;
}
#top .chara5 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(150%);
  width: 25.1428571429%;
  bottom: 4.8rem;
  z-index: 7;
}
#top .chara6 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-70%);
  width: 20.2857142857%;
  bottom: 10rem;
  z-index: 6;
}
#top .chara7 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(70%);
  width: 21.2857142857%;
  bottom: 10.5rem;
  z-index: 6;
}
#top .chara8 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(250%);
  width: 14.8571428571%;
  bottom: 22.5rem;
  z-index: 6;
}
#top .chara9 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-280%);
  width: 14.2857142857%;
  bottom: 22rem;
  z-index: 6;
}
#top .animeBtn {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-110%);
  width: 31.4285714286%;
  bottom: -6rem;
  z-index: 9;
}
@media (max-width: 767px) {
  #top .animeBtn {
    position: absolute;
    left: 50%;
    transform: translateX(-50%) translateX(-60%);
    width: 37.1428571429%;
    bottom: -8rem;
  }
}
#top .youtubeBtn {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(110%);
  width: 31.4285714286%;
  bottom: -6rem;
  z-index: 9;
}
@media (max-width: 767px) {
  #top .youtubeBtn {
    position: absolute;
    left: 50%;
    transform: translateX(-50%) translateX(60%);
    width: 37.1428571429%;
    bottom: -8rem;
  }
}

/* TOPのアニメーション */
#animation {
  text-align: center;
  padding-top: 12rem;
  margin: 5rem 0;
}
#animation .chara1 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 40.2857142857%;
  top: 0rem;
  z-index: 9;
}
#animation .chara2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-100%);
  width: 27.1428571429%;
  top: 2rem;
  z-index: 8;
}
#animation ul.linkList {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
#animation ul.linkList li {
  margin: 0.5% 1%;
}
#animation::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 990px;
  height: 364px; /* 背景の高さ */
  transform: translateX(-50%);
  background: url("../../_img/anime_header.png") no-repeat center/cover;
  z-index: -1;
}

#news {
  margin-top: 7rem;
}
@media (max-width: 767px) {
  #news {
    margin-top: 10rem;
  }
}

/* TOPのYOUTUBE */
#youtube {
  width: 100%;
}
#youtube #youtube_slider {
  width: 100%;
  border: 3px solid #147900;
}
#youtube h4 {
  margin-top: 2rem;
}
#youtube p.titleList {
  text-align: left;
  margin: 1rem 0;
}
#youtube .header {
  position: relative;
  width: 100%;
  aspect-ratio: 2/1;
}
#youtube .chara_yt1 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 52.8571428571%;
  top: 0;
  z-index: 9;
}
#youtube .chara_yt2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-130%);
  width: 21%;
  top: -2rem;
  z-index: 7;
}
#youtube .chara_yt3 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(100%);
  width: 16.4285714286%;
  top: -3rem;
  z-index: 8;
}

/* TOPのグッズ */
#goods {
  text-align: center;
}
#goods .header {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1.25;
}
#goods .chara1 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 23.4285714286%;
  bottom: 0;
  z-index: 9;
}
#goods .chara2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-110%);
  width: 18.2857142857%;
  bottom: 4.5rem;
  z-index: 8;
}
#goods .chara3 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(110%);
  width: 18.1428571429%;
  bottom: 2rem;
  z-index: 8;
}
#goods .chara4 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-170%);
  width: 20.2857142857%;
  bottom: 12.5rem;
  z-index: 7;
}
#goods .chara5 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(130%);
  width: 18%;
  bottom: 9.4rem;
  z-index: 7;
}
#goods .chara6 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0%);
  width: 17.7142857143%;
  bottom: 13rem;
  z-index: 6;
}
#goods::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1184px;
  height: 818px; /* 背景の高さ */
  transform: translateX(-50%);
  background: url("../../_img/goods_header.png") no-repeat center top/cover;
  z-index: -1;
}
@media (max-width: 767px) {
  #goods::before {
    background-size: 53% auto;
    z-index: 1;
  }
}

/* TOPのストーリー */
#story {
  text-align: center;
}
#story p {
  font-size: 1.1rem;
  margin: 0.1rem 0;
}
@media (max-width: 767px) {
  #story p {
    font-size: 0.95rem;
    margin: 0.3rem 0;
  }
}
#story .header {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1.05;
}
#story .chara1 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 16%;
  bottom: 0;
  z-index: 9;
}
#story .chara2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-95%);
  width: 21.4285714286%;
  bottom: 1.5rem;
  z-index: 8;
}
#story .chara3 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(120%);
  width: 14.2857142857%;
  bottom: 1.5rem;
  z-index: 8;
}
#story .chara4 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-420%);
  width: 9.1428571429%;
  bottom: 0rem;
  z-index: 7;
}
#story .chara5 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(220%);
  width: 15.5714285714%;
  bottom: 0rem;
  z-index: 7;
}
#story::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1331px;
  height: 653px; /* 背景の高さ */
  transform: translateX(-50%);
  background: url("../../_img/story_header.png") no-repeat center top/cover;
  z-index: -1;
}
@media (max-width: 767px) {
  #story::before {
    background-size: 53% auto;
    z-index: 1;
  }
}

/* TOPのキャラクター*/
#character {
  text-align: center;
}
#character ul.line3 {
  width: 90% !important;
  margin: 0 auto;
}

/* TOPのスペシャル */
#special {
  text-align: center;
  padding-bottom: 2rem;
}
#special .header {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1.35;
}
#special .chara1 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 20.1428571429%;
  bottom: 0;
  z-index: 9;
}
#special .chara2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-95%);
  width: 20.4285714286%;
  bottom: 1.5rem;
  z-index: 8;
}
#special .chara3 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(120%);
  width: 16.8571428571%;
  bottom: 1.5rem;
  z-index: 8;
}
#special .chara4 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-260%);
  width: 14.4285714286%;
  bottom: 3rem;
  z-index: 7;
}
#special .chara5 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(180%);
  width: 20.4285714286%;
  bottom: 3rem;
  z-index: 7;
}
#special::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 801px;
  height: 810px; /* 背景の高さ */
  transform: translateX(-50%);
  background: url("../../_img/special_header.png") no-repeat center top/cover;
  z-index: -1;
}
@media (max-width: 767px) {
  #special::before {
    background-size: 53% auto;
    z-index: 1;
  }
}

/* 重要　基本設定 */
/* 下の階層設定 */
.lower .header {
  aspect-ratio: 3/2;
  position: relative;
  max-width: 700px;
  margin: 0 auto;
  z-index: 2;
}
.lower .header .rock {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(-84.5%);
  width: 39.8571428571%;
  top: 4.15rem;
  z-index: 3;
}
@media (max-width: 767px) {
  .lower .header .rock {
    position: absolute;
    left: 50%;
    transform: translateX(-50%) translateX(-83%);
    width: 44.2857142857%;
    top: 3.7rem;
    z-index: 3;
  }
}
.lower .header .chara1 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 22.1428571429%;
  bottom: 2rem;
  z-index: 1;
}
.lower .header .chara2 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateX(0);
  width: 31.8571428571%;
  bottom: 2rem;
  z-index: 2;
}
.lower #wrapper {
  padding-top: 20rem;
}
@media (max-width: 767px) {
  .lower #wrapper {
    padding-top: 2rem;
  }
}
.lower {
  /* ニュース */
}
.lower #newsTemp, .lower #template {
  text-align: left;
  margin-top: 1rem;
}
@media (max-width: 767px) {
  .lower #newsTemp, .lower #template {
    padding-top: 3rem;
  }
}
.lower #newsTemp h2, .lower #template h2 {
  margin-bottom: 1rem;
}
.lower #newsTemp .flame, .lower #template .flame {
  padding: 2rem;
}
@media (max-width: 767px) {
  .lower #newsTemp .flame, .lower #template .flame {
    padding: 1.3rem;
  }
}
.lower #newsTemp .titleBlock, .lower #template .titleBlock {
  margin-bottom: 1rem;
}
.lower #newsTemp span.day, .lower #template span.day {
  color: #666;
}
.lower #newsTemp p, .lower #template p {
  margin-bottom: 1rem;
}
.lower #newsTemp strong, .lower #template strong {
  font-size: 1.2rem;
  line-height: 1.3;
  color: #ff8c9d;
}
.lower #newsTemp p.title, .lower #template p.title {
  font-size: 1.4rem;
  line-height: 1.3;
  font-weight: 700;
  color: #3cb034;
  margin: 0 0 0 -0.5rem;
}
.lower #newsTemp p.centerBtn, .lower #template p.centerBtn {
  text-align: center;
  margin: 0;
}
.lower #newsTemp .pict, .lower #template .pict {
  margin-bottom: 1rem;
}
.lower #newsTemp .pict:last-child, .lower #template .pict:last-child {
  margin-bottom: 0;
}
.lower #newsTemp .episodeLine, .lower #template .episodeLine {
  border: none;
  border-top: 2px dotted #ababab;
  margin: 2rem 0;
}
.lower {
  /* キャラクター */
}
.lower .charaDetail {
  width: 72%;
  margin: 0 auto 2rem;
  position: relative;
}
.lower .charaDetail .charaLogo {
  width: 100%;
  position: absolute;
  top: 20rem;
  left: 0;
  z-index: 3;
}
@media (max-width: 767px) {
  .lower .charaDetail .charaLogo {
    top: 17rem;
  }
}
.lower .charaDetail p {
  text-align: center;
}
.lower .charaDetail p span {
  background: #fff;
  padding: 0.3rem 1rem 0.2rem;
  border-radius: 999px;
  font-size: 0.8em;
}
.lower .charaDetail p {
  /* Safariだけ調整 */
}
@supports (-webkit-hyphens: none) {
  .lower .charaDetail p span {
    padding-top: 0; /* ここだけ調整 */
  }
}
@media (max-width: 767px) {
  .lower .charaDetail p {
    margin-top: 1rem;
  }
}
.lower .charaDetail p.va {
  margin-top: 1rem;
}
.lower .charaDetail .detailHeader {
  width: 100%;
  padding-top: 100%;
  margin: 0 auto;
  position: relative;
  margin-bottom: 1rem;
  text-align: center;
  overflow: hidden;
  border-radius: 50%;
}
.lower .charaDetail .detailHeader .charaPict {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.lower .charaDetail .detailHeader .charaBg {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}/*# sourceMappingURL=style.css.map */