@charset "UTF-8";

/*================================================================
  リセット & 共通設定
================================================================*/
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
}

body {
  background: #3e6f44;
  background: url(../img/bg_color.webp);
  background-repeat: repeat;
}

ul,
ol {
  list-style: none;
}

a {
  text-decoration: none;
  color: inherit;
}

img {
  height: auto;
  line-height: 0;
  vertical-align: top;
}

#header {
  animation:
    fade-in_content 0.5s ease-in-out both;
}

video {
  filter: drop-shadow(0px 0px rgba(0, 0, 0, 0));
  outline: none;
  border: none;
}

.wrapper #content #sec-statement .inner-block .statement-ttl,
.wrapper #content h2 {
  animation: ttl_zoom 1.2s ease both;
}

.wrapper #content #sec-cm .inner-block,
.wrapper #content #sec-statement .inner-block .statement-txt {
  animation: content_zoom 1.2s ease .3s both;
}

.wrapper #content #sec-04store .inner-block .list01,
.wrapper #content #sec-04store .inner-block .list02,
.wrapper #content #sec-04store .inner-block .list03,
.wrapper #content .cont {
  animation: fade-in_content .7s ease-in-out both;
}

.wrapper #content #sec-01tree .inner-block,
.wrapper #content #sec-02movie .inner-block,
.wrapper #content #sec-03event .inner-block,
.wrapper #content #sec-04store .inner-block {
  animation: fade-in_content .5s ease-in-out both;
}

.wrapper #content #sec-kv .inner-block {
  animation:
    final_kv-in 2.6s ease-in-out 0s both;
}

.wrapper #content #sec-kv .ttl {
  animation:
    ttl-zoomin 1.8s ease-in-out 1.5s both;
}

.pc {
  display: inline-block;
}

.sp {
  display: none;
}

.wrapper #content h2,
.wrapper #content .cont {
  width: 650px;
  margin: 0 auto;
}

.wrapper #content .illust {
  width: 750px;
  margin: 0 auto;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 150;
  pointer-events: none;
}

.wrapper #content h2 img,
.wrapper #content .cont img {
  width: 100%;
  height: auto
}


.wrapper #content .btn-more:hover {
  transform: scale(1.1) !important;
}

#pc_wrap {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
  background: url("../img/bg_all.webp");
  background-repeat: repeat-y;
  background-size: 3000px;
  background-position: top center;
}


#header {
  width: 750px;
  height: 80px;
  margin: 0 auto;
  position: absolute;
  z-index: 10000;
  background: #fff;
}

#header .inner-block {
  width: 600px;
  margin: 0 auto;
  text-align: center;
  padding: 11px 0;
}

#header .inner-block ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 25px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#header .inner-block ul li.logo {
  width: 117.5px;
}

#header .inner-block ul li.logo_gt {
  width: 105.5px;
}

#header .inner-block ul li.logo_pt {
  width: 122.5px;
}

#header .inner-block ul li.logo_sp {
  width: 140.5px;
}

#header .inner-block ul li img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.2s ease;
}

#header .inner-block ul li img:hover {
  transform: scale(1.3);
}

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

.wrapper {
  width: 100%;
}

.wrapper #content {
  width: 750px;
  height: auto;
  margin: 0 auto;
  text-align: center;
  position: relative;
  background: url("../img/bg_red.webp") repeat-y;
}

.wrapper #content:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  font-size: 0;
  visibility: hidden;
}

.wrapper #content #sec-kv {
  width: 100%;
  height: auto;
  margin: 0 auto 0;
  overflow: hidden;
  background: url("../img/bg_mainimg.webp") #fff top center no-repeat;
  background-size: 750px;
}

.wrapper #content #sec-kv .inner-block {
  width: 100%;
  height: 1160px;
  margin: 0 auto;
  position: relative;
  background: url("../img/bg_mainimg-pre.webp") #fff top center no-repeat;
  background-size: 750px;
}

.wrapper #content #sec-kv .ttl {
  z-index: 5000;
  width: 554.921px;
  position: absolute;
  left: 95px;
  top: 1008px;
}

.wrapper #content #sec-wrapper {
  width: 750px;
  margin: 0 auto;
  padding: 0;
  position: relative;
  overflow: hidden;
}

/* コンテナ */
.wrapper #content #sec-wrapper #sec-nav {
  width: 750px;
  height: 120px;
  position: absolute;
  top: 0;
  z-index: 100;
  background: url("../img/bg_nav.webp") top center no-repeat;
  background-size: 750px;
  overflow: hidden;
}

/* 内側ナビ */
.wrapper #content #sec-wrapper #sec-nav #global-navi {
  width: 100%;
  padding: 5px 0 0;
  margin: 0 auto;
}

.wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
}

.wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li li {
  height: 50px;
  transition: transform 0.2s ease;
}

/* ホバー演出（!important不要） */
.wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li li:hover {
  transform: scale(1.15);
}

/* a/img の余白対策：block化。position/vertical-alignは不要 */
.wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li li a {
  display: block;
}

.wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li li a img {
  display: block;
  height: 50px;
  width: auto;
}


.wrapper #content #sec-wrapper #sec-nav.fixed {
  width: 750px;
  position: fixed;
  top: 0;
  padding: 0;
  z-index: 10000;
}

.wrapper #content #sec-statement {
  width: 100%;
  height: 1360px;
  margin: 0 auto;
  position: relative;
}

.wrapper #content #sec-statement .inner-block {
  width: 100%;
  height: 1360px;
  padding: 140px 0 0;
}

.wrapper #content #sec-statement img {
  width: 750px;
  margin: 0 auto;
}

.wrapper #content #sec-statement .inner-block .statement-illust {
  z-index: 8;
  width: 750px;
  position: absolute;
  left: 0px;
  top: 140px;
}


.wrapper #content #sec-01tree {
  width: 100%;
  height: 2584px;
  margin: 0 auto;
  position: relative;
}

.wrapper #content #sec-01tree .inner-block {
  width: 650px;
  padding: 0;
  height: 2514px;
  position: absolute;
  z-index: 100;
  border: 5px solid #000;
  border-radius: 30px;
  margin: 0 auto;
  background-color: #fff;
  left: 50px;
}


.wrapper #content #sec-02movie {
  width: 100%;
  height: 733px;
  margin: 0 auto;
  position: relative;
}


.wrapper #content #sec-02movie .inner-block {
  width: 650px;
  padding: 0;
  height: 673px;
  border: 5px solid #000;
  border-radius: 30px;
  margin: 0 auto;
  background-color: #fff;
  left: 50px;
}

.wrapper #content #sec-02movie .inner-block #movie-cm {
  width: 550px;
  margin: 0 auto;
  padding-top: 80px;
  height: auto;
  position: relative;
}

.wrapper #content #sec-02movie .inner-block #movie-cm video {
  width: 550px;
  display: inline-block;
  border: 3px solid #000;
}

.wrapper #content #sec-02movie .inner-block #movie-cm .play_icon {
  width: 118px;
  height: auto;
  position: absolute;
  left: 214px;
  bottom: 100px;
  transition: transform 0.2s ease;
  z-index: 1000;
}

.wrapper #content #sec-02movie .inner-block #movie-cm .play_icon:hover {
  transform: scale(1.1) !important;
}

.wrapper #content #sec-02movie .inner-block #movie-cm .play_icon a img {
  width: 118px;
  height: auto;
  vertical-align: top;
}


.wrapper #content #sec-03event {
  width: 100%;
  height: 2275px;
  margin: 0 auto;
  position: relative;
}

.wrapper #content #sec-03event .inner-block_a {
  width: 650px;
  padding: 0;
  height: 1755px;
  border: 5px solid #000;
  border-radius: 30px;
  margin: 0 auto 50px;
  background-color: #fff;
  left: 50px;
}

.wrapper #content #sec-03event .inner-block_b {
  width: 650px;
  padding: 0;
  height: 415px;
  border: 5px solid #000;
  border-radius: 30px;
  margin: 0 auto;
  background-color: #fff;
  left: 50px;
}



.wrapper #content #sec-04store {
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  /* ← 上 */
}

.wrapper #content #sec-04store .inner-block {
  width: 650px;
  padding: 0 0 70px;
  position: relative;
  border: 5px solid #000;
  border-radius: 30px;
  margin: 0 auto;
  background: #fff url(../img/img_txt_04store.webp) no-repeat top center;
  background-size: 650px;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul {
  margin-top: 90px;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area li {
  width: 155px;
  height: auto;
  transition: transform 0.2s ease;
  display: inline-block;
  margin-bottom: 7px;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area li:hover {
  transform: scale(1.25) !important;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul li img {
  width: 155px;
  height: auto;
  vertical-align: top;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul li img {
  width: 155px;
  height: auto;
  vertical-align: top;
}

.list01 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 30px;
  /* 横の間隔 */
  row-gap: 3px;
  list-style: none;
  margin: 0 auto;
  padding: 0;
  /* 3個行ベース */
}

.list01 li {
  width: 155px;
  transition: transform 0.2s ease;
}

.list01 li:nth-child(15) {
  margin-left: 50px;
}


/* 改行ダミーを完全に無視させる */
.list01 li.break {
  flex-basis: 100%;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  line-height: 0;
  font-size: 0;
  border: none;
}

.list01 li img {
  width: 100%;
  height: auto;
  vertical-align: top;
  display: block;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 {
  display: grid;
  grid-template-columns: repeat(3, 155px);
  /* 3列 */
  column-gap: 30px;
  /* 横間隔 */
  row-gap: 8px;
  /* 行間 */
  justify-content: center;
  /* 全体を中央に */
  width: auto;
  margin: 140px auto 0;
  list-style: none;
  padding: 0;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li {
  width: 155px;
  height: auto;
  transition: transform 0.2s ease;
}

/* 下段の配置：4番目を空けて、5番目・6番目を右寄せ配置 */
.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li:nth-child(4) {
  grid-column: 2;
  /* 2列目に配置 */
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li:nth-child(5) {
  grid-column: 3;
  /* 3列目に配置 */
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li img {
  width: 100%;
  height: auto;
  vertical-align: top;
  display: block;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li {
  width: 155px;
  height: auto;
  transition: transform 0.2s ease;
}

/* 下段の配置：4番目を空けて、5番目・6番目を右寄せ配置 */
.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li:nth-child(4) {
  grid-column: 2;
  /* 2列目に配置 */
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li:nth-child(5) {
  grid-column: 3;
  /* 3列目に配置 */
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li img {
  width: 100%;
  height: auto;
  vertical-align: top;
  display: block;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list03 {
  width: 650px;
  margin: 150px auto 0;
}

.wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list03 li {
  margin: 0 20px 0 10px;
}

.wrapper #content #sec-annotation {
  width: 100%;
  height: 175px;
  margin: 0 auto;
  position: relative;
}

.wrapper #content #sec-annotation img {
  z-index: 1;
  position: absolute;
  top: -50px;
  display: block;
  width: 750px;
  margin: 0 auto;
}

.wrapper #cm_modal_wrap {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99999;
  display: none;
  background: url("../img/bg_red.webp") fixed;
}

.wrapper #cm_modal_wrap #cm_modal_close_wrap {
  position: fixed;
  top: 1.5%;
  right: 1.5%;
  width: 5%;
  height: 5%;
  z-index: 100000;
  cursor: pointer;
}

.wrapper #cm_modal_wrap #cm_modal_close_wrap #cm_modal_close a {
  display: block;
}

.wrapper #cm_modal_wrap #cm_modal_close_wrap #cm_modal_close a img {
  width: 100%;
  height: auto;
}

.wrapper #cm_modal_wrap #cm_modal_video_wrap {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.wrapper #cm_modal_wrap #cm_modal_video_wrap div {
  position: relative;
}

.wrapper #cm_modal_wrap #cm_modal_video_wrap div #cm_modal_video {
  display: block;
  width: auto;
  height: 100%;
}

#footer {
  width: 100%;
  background: #fafafa;
  color: #222222;
  margin: 0 auto;
  padding: 35px 0;
  font-family: 'Noto Sans JP', sans-serif;
  -webkit-font-smoothing: auto;
}

#footer .copyright {
  font-size: 13px;
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  letter-spacing: 0.65px;
  text-align: center;
}


@media screen and (max-width: 768px) {
  .pc {
    display: none !important;
  }

  .sp {
    display: block !important;
  }

  a img {
    transition: transform .2s;
  }

  a img:active {
    transform: scale(.95);
  }

  body {
    -webkit-text-size-adjust: none;
    min-width: 0;
    background: #fff;
  }

  img {
    height: auto;
    width: auto;
  }

  #pc_wrap {
    display: none;
  }

  .wrapper #content h2,
  .wrapper #content .cont {
    width: 86.6667vw;
  }

  .wrapper #content .illust {
    width: 100vw;
    left: 50%;
    transform: translateX(-50%);
  }

  .wrapper #content h2 img,
  .wrapper #content h3 img,
  .wrapper #content .cont img {
    width: 100%;
    height: auto;
  }

  .wrapper #content .inner-block .sttl-lantern {
    width: 86.6667vw;
    /* 650px→86.6667vw */
    position: absolute;
    top: 0;
    left: 6.6667vw;
    /* 50px→(50/750)*100 */
  }

  .wrapper #content .inner-block .sttl-border {
    width: 86.6667vw;
    /* 650px→86.6667vw */
    margin: 0 auto;
  }

  .hanabi-blur {
    filter: blur(10px);
  }

  .wrapper #content .btn-more {
    width: 59.7333vw;
    /* 448px→(448/750)*100 */
    transition: transform 0.2s ease;
  }

  .wrapper #content .btn-more img {
    width: 59.7333vw;
    /* 448px→59.7333vw */
    height: auto;
  }

  .wrapper #content .btn-more:hover {
    transform: scale(1.1) !important;
  }

  #pc_wrap {
    display: none;
  }

  #header {
    width: 100vw;
    height: 10.6667vw;
    margin: 0 auto;
    position: absolute;
    z-index: 10000;
    background: #fff;
  }

  #header .inner-block {
    width: 80vw;
    /* 600px→80vw */
    margin: 0 auto;
    text-align: center;
    padding: 1.4667vw 0;
    /* 11px→(11/750)*100 */
  }

  #header .inner-block ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 3.3333vw;
    /* 25px→(25/750)*100 */
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #header .inner-block ul li.logo {
    width: 15.6667vw;
    /* 117.5px→(117.5/750)*100 */
  }

  #header .inner-block ul li.logo_gt {
    width: 14.0667vw;
    /* 105.5px→14.0667vw */
  }

  #header .inner-block ul li.logo_pt {
    width: 16.3333vw;
    /* 122.5px→16.3333vw */
  }

  #header .inner-block ul li.logo_sp {
    width: 18.7333vw;
    /* 140.5px→18.7333vw */
  }

  #header .inner-block ul li img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.2s ease;
  }

  #header .inner-block ul li img:hover {
    transform: scale(1.3);
  }

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

  .wrapper {
    width: 100%;
  }


  .wrapper #content {
    width: 100vw;
  }

  .wrapper #content #sec-kv {
    background-size: 100vw;
  }

  .wrapper #content #sec-kv .inner-block {
    height: 154.6667vw;
    background-size: 100vw;
  }

  .wrapper #content #sec-kv .ttl {
    width: 73.9895vw;
    left: 12.6667vw;
    top: 134.4vw;
  }

  .wrapper #content #sec-wrapper {
    width: 100vw;
  }

  .wrapper #content #sec-wrapper #sec-nav {
    width: 100vw;
    left: 50%;
    transform: translateX(-50%);
    background-size: 100vw auto;
  }

  .wrapper #content #sec-wrapper #sec-nav #global-navi {
    padding: 0.666vw 0 0;
  }

  /* ←ここをGridに（2列固定）*/
  .wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.33vw 2.13vw;
    justify-items: center;
    padding: 0;
    margin: 0;
    position: relative;
  }

  .wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li li {
    width: 100%;
    height: auto;
  }

  .wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li li a {
    display: block;
  }

  .wrapper #content #sec-wrapper #sec-nav #global-navi ul.global-navi-li li a img {
    display: block;
    width: auto;
    height: 6.66vw;
  }

  .wrapper #content #sec-wrapper #sec-nav.fixed {
    width: 100vw;
    left: 0;
    transform: none;
    top: 0;
  }

  .wrapper #content #sec-statement {
    height: 181.3333vw;
  }

  .wrapper #content #sec-statement .inner-block {
    height: 181.3333vw;
    padding: 18.6667vw 0 0;
  }

  .wrapper #content #sec-statement img {
    width: 100vw;
  }

  .wrapper #content #sec-statement .inner-block .statement-illust {
    width: 100vw;
    top: 18.6667vw;
  }

  .wrapper #content #sec-01tree {
    height: 344.53vw;
  }

  .wrapper #content #sec-01tree .inner-block {
    width: 86.6667vw;
    height: 335.2vw;
    left: 6.6667vw;
    border: 0.8vw solid #000;
    border-radius: 6vw;
  }

  .wrapper #content #sec-02movie {
    height: 100.4vw;
  }

  .wrapper #content #sec-02movie .inner-block {
    width: 86.6667vw;
    height: 89.7333vw;
    left: 6.6667vw;
    border: 0.8vw solid #000;
    border-radius: 6vw;
  }

  .wrapper #content #sec-02movie .inner-block #movie-cm {
    width: 73.3333vw;
    padding-top: 10.6667vw;
  }

  .wrapper #content #sec-02movie .inner-block #movie-cm video {
    width: 73.3333vw;
  }

  .wrapper #content #sec-02movie .inner-block #movie-cm .play_icon {
    width: 15.7333vw;
    left: 28.5333vw;
    bottom: 13.3333vw;
  }

  .wrapper #content #sec-02movie .inner-block #movie-cm .play_icon a img {
    width: 15.7333vw;
  }

  .wrapper #content #sec-03event {
    height: 303.33vw;
  }

  .wrapper #content #sec-03event .inner-block_a {
    width: 86.6667vw;
    height: 235vw;
    margin: 0 auto 4.6667vw;
    left: 6.6667vw;
    border: 0.8vw solid #000;
    border-radius: 6vw;
  }

  .wrapper #content #sec-03event .inner-block_b {
    width: 86.6667vw;
    height: 55.33vw;
    border: 0.8vw solid #000;
    border-radius: 6vw;
    margin: 0 auto;
    left: 6.6667vw;
  }


  .wrapper #content #sec-04store .inner-block {
    width: 86.6667vw;
    padding: 0 0 9.3333vw;
    border: 0.8vw solid #000;
    border-radius: 6vw;
    background-size: 86.6667vw;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area ul {
    margin-top: 12vw;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area li {
    width: 20.6667vw;
    margin-bottom: 0.9333vw;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area ul li img {
    width: 20.6667vw;
  }

  .list01 {
    column-gap: 4vw;
    row-gap: 0.4vw;
  }

  .list01 li {
    width: 20.6667vw;
  }

  .list01 li:nth-child(15) {
    margin-left: 6.6667vw;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 {
    grid-template-columns: repeat(3, 20.6667vw);
    column-gap: 4vw;
    row-gap: 1.0667vw;
    margin: 18.6667vw auto 0;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li {
    width: 20.6667vw;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list02 li img {
    width: 100%;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list03 {
    width: 86.6667vw;
    margin: 20vw auto 0;
  }

  .wrapper #content #sec-04store .inner-block .sec-shoplist_area ul.list03 li {
    margin: 0 2.6667vw 0 1.3333vw;
  }

  .wrapper #content #sec-annotation {
    height: 23.3333vw;
  }

  .wrapper #content #sec-annotation img {
    top: -6.6667vw;
    width: 100vw;
  }


  .wrapper #cm_modal_wrap {
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    display: none;
    background: url("../img/bg_top.webp") fixed;
  }

  .wrapper #cm_modal_wrap #cm_modal_close_wrap {
    position: fixed;
    top: 5%;
    right: 5%;
    width: 20%;
    height: 20%;
    z-index: 100000;
    cursor: pointer;
  }

  .wrapper #cm_modal_wrap #cm_modal_close_wrap #cm_modal_close a {
    display: block;
  }

  .wrapper #cm_modal_wrap #cm_modal_close_wrap #cm_modal_close a img {
    width: 100%;
    height: auto;
  }

  .wrapper #cm_modal_wrap #cm_modal_video_wrap {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
  }

  .wrapper #cm_modal_wrap #cm_modal_video_wrap div {
    position: relative;
  }

  .wrapper #cm_modal_wrap #cm_modal_video_wrap div #cm_modal_video {
    display: block;
    width: auto;
    height: 100%;
  }

  #footer {
    width: 100vw;
    padding: 7vw 0;
    z-index: 500;
    position: relative;
    background: #fafafa;
    color: #222;
    font-family: 'Noto Sans JP', sans-serif;
    -webkit-font-smoothing: auto;
    overflow: hidden;
  }

  #footer .copyright {
    font-size: 2.5vw;
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    letter-spacing: 0.2vw;
    text-align: center;
  }

}


/*------------------------------------
topに戻るボタン
------------------------------------*/
#page_top {
  z-index: 10000;
  position: fixed;
  right: 20px;
  bottom: -110px;
}

#page_top img {
  display: block;
  width: 124px;
  height: auto;
  transform: scale(1) !important;
  transition: transform 0.3s ease, opacity 0.3s ease !important;
  transform-origin: center center;
}

@media screen and (max-width: 768px) {
  #page_top {
    right: 3vw;
    bottom: -20vw;
  }

  #page_top img {
    width: 16vw;
  }
}

#page_top img:hover {
  transform: scale(1.1) !important;
}

#page_top img[src*="_on."] {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
}

#page_top img:hover[src*="_on."] {
  opacity: 1;
}

#page_top img:hover {
  transform: scale(1.1);
  transition: transform 0.3s;
}

/*------------------------------------
アニメーション
------------------------------------*/
@keyframes fade-in {
  from {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes zoom-in {
  from {
    opacity: 0;
    transform: scale(4);
    filter: blur(20px);
  }

  35% {
    opacity: 1;
    transform: rotateZ(0);
    transform: scale(0.9);
    filter: blur(0px);
  }

  55% {
    transform: rotateZ(-0.4deg);
    transform: scale(1.05);
  }

  75% {
    transform: rotateZ(0.1deg);
  }

  100% {
    transform: scale(1.00);
  }
}

@keyframes zoom-in_s {
  from {
    opacity: 0;
    transform: scale(2.5);
    filter: blur(20px);
  }

  40% {
    opacity: 1;
    transform: rotateZ(0);
    transform: scale(0.95);
    filter: blur(0px);
  }

  60% {
    transform: rotateZ(-0.4deg);
    transform: scale(1.01);
  }

  75% {
    transform: rotateZ(0.1deg);
  }

  100% {
    transform: scale(1.00);
  }
}


@keyframes ttl_zoom {
  from {
    transform: scale(0);
    filter: blur(10px);
  }

  25% {
    transform: scale(1.6);
    filter: blur(0px);
  }

  50% {
    transform: scale(0.90);
  }

  70% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1.00);
  }
}

@keyframes sttl_zoom {
  from {
    transform: scale(0);
    filter: blur(10px);
  }

  30% {
    transform: scale(1.15);
    filter: blur(0px);
  }

  60% {
    transform: scale(0.90);
  }

  100% {
    transform: scale(1.00);
  }
}

@keyframes content_zoom {
  from {
    transform: scale(0);
    filter: blur(10px);
  }

  30% {
    transform: scale(1.1);
    filter: blur(0px);
  }

  60% {
    transform: scale(0.90);
  }

  100% {
    transform: scale(1.00);
  }
}

.fade-in_content {
  animation: fade-in_content .6s ease-in-out 0.1s both;
}

@keyframes fade-in_content {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


@keyframes bomb_zoom {
  from {
    transform: scale(0);
    filter: blur(10px);
  }

  20% {
    transform: scale(2.5);
    filter: blur(0px);
  }

  50% {
    transform: scale(0.90);
  }

  80% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1.00);
  }
}

@keyframes final_kv-in {
  from {
    opacity: 1;
    transform: scale(1.3);
    filter: blur(5px);
  }

  40% {
    filter: blur(0px);
  }

  70% {
    opacity: 1;

    transform: scale(1.00);
  }

  100% {
    transform: scale(1.00);
    opacity: 0;
  }
}

@keyframes ttl-zoomin {
  from {
    opacity: 0;
    transform: scale(1.1);
  }

  50% {
    opacity: 1;
  }

  to {
    transform: scale(1.0);
  }
}