@charset "UTF-8";
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-weight: inherit;
  font-style: normal;
  line-height: inherit;
  text-decoration: none;
  vertical-align: baseline; }

article, aside, details, figcaption, figure, picture,
footer, header, menu, nav, section, main, canvas, picture {
  display: block; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

input, textarea {
  font-family: inherit;
  font-size: inherit;
  margin: 0;
  padding: 0; }

select, option, button {
  font-family: inherit;
  font-size: inherit; }

input.styleReset, button.styleReset, textarea.styleReset, select.styleReset {
  color: inherit;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-sizing: border-box; }

.list {
  list-style: none;
  margin: 0;
  padding: 0; }

a {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  text-decoration: none;
  vertical-align: baseline; }

html {
  font-size: calc(10vw / 7.5);
  -webkit-font-smoothing: antialiased; }

body {
  color: #000000;
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: 1.4rem;
  line-height: 1;
  -webkit-text-size-adjust: 100%;
  word-wrap: break-word;
  overflow-wrap: break-word;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

body.lock,
body.loading {
  overflow: hidden;
  width: 100vw;
  height: 100vh; }

@media screen and (min-width: 751px) {
  html {
    font-size: 7.3px; }

  body {
    font-size: 1.6rem;
    line-height: 1; } }
* {
  -webkit-tap-highlight-color: transparent; }

a {
  cursor: pointer;
  color: inherit;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  text-decoration: none; }

p, dt, dd, li {
  word-break: break-word;
  word-wrap: normal; }

img {
  max-width: 100%;
  height: auto;
  vertical-align: top; }

button {
  cursor: pointer;
  font-family: inherit;
  touch-action: manipulation; }

.ib {
  display: inline-block;
  line-height: inherit;
  font-weight: inherit; }

.accordionTrigger {
  cursor: pointer;
  display: block; }

.accordionContent {
  display: none; }

.en {
  font-family: sans-serif; }

.moverLine .line {
  position: relative;
  background-image: linear-gradient(90deg, #000000, #000000);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  transition: lineMove 0.2s ease-out; }

@media screen and (min-width: 751px) {
  /* mover */
  .mover {
    transition: opacity 0.2s ease-out;
    backface-visibility: hidden;
    zoom: 1; }
    .mover:hover {
      opacity: 0.7; }

  .moverContent > * {
    transition: opacity 0.2s ease-out;
    backface-visibility: hidden;
    zoom: 1; }
  .moverContent:hover > * {
    opacity: 0.7; } }
.modePC,
.modePCib {
  display: none; }
  .modePC.important,
  .modePCib.important {
    display: none !important; }

.modeSP {
  display: block; }
  .modeSP.important {
    display: block !important; }

.modeSPib {
  display: inline-block; }
  .modeSPib.important {
    display: inline-block !important; }

@media screen and (min-width: 751px) {
  .modePC {
    display: block; }
    .modePC.important {
      display: block !important; }

  .modePCib {
    display: inline-block; }
    .modePCib.important {
      display: inline-block !important; }

  .modeSP,
  .modeSPib {
    display: none; }
    .modeSP.important,
    .modeSPib.important {
      display: none !important; } }
@keyframes bgloop {
  0% {
    background-position: 0 0; }
  100% {
    background-position: 195px 0; } }
@keyframes move {
  0% {
    transform: translateY(0); }
  50% {
    transform: translateY(-30px); }
  100% {
    transform: translateY(0); } }
@keyframes elasticus {
  0% {
    transform-origin: 0% 0%;
    transform: scale(1, 0); }
  50% {
    transform-origin: 0% 0%;
    transform: scale(1, 1); }
  50.1% {
    transform-origin: 0% 100%;
    transform: scale(1, 1); }
  100% {
    transform-origin: 0% 100%;
    transform: scale(1, 0); } }
@keyframes lineMove {
  0% {
    background-size: 0 2px; }
  50% {
    background-size: 0 2px; }
  100% {
    background-size: 100% 2px; } }
@keyframes wave {
  0% {
    transform: scale(0.95);
    opacity: 1; }
  90% {
    opacity: .1; }
  100% {
    transform: scale(1.2, 1.4);
    opacity: 0; } }
@keyframes blink {
  0% {
    opacity: 1; }
  15% {
    opacity: 1; }
  48% {
    opacity: 0; }
  52% {
    opacity: 0; }
  85% {
    opacity: 1; }
  100% {
    opacity: 1; } }
@keyframes blink2 {
  0% {
    opacity: 1; }
  10% {
    opacity: 0.7; }
  20% {
    opacity: 1; }
  30% {
    opacity: 0.7; }
  40% {
    opacity: 1; }
  100% {
    opacity: 1; } }
@keyframes bound {
  0% {
    opacity: 0;
    transform: scale(0); }
  15% {
    opacity: 1;
    transform: scale(1.04); }
  30% {
    transform: scale(0.98); }
  45% {
    opacity: 1;
    transform: scale(1); }
  100% {
    opacity: 1;
    transform: scale(1); } }
.wrapper {
  transition: opacity 0.3s; }
  .load_complete .wrapper {
    opacity: 1; }

#main {
  overflow: hidden; }

.contentInner {
  width: calc(650 / 750 * 100%);
  margin: auto; }

.scrollPosition {
  margin-top: calc(-100 / 650 * 100%) !important;
  padding-top: calc(100 / 650 * 100%) !important; }

.fadeContent {
  opacity: 0;
  transform: translateY(50px);
  transition: all 0.4s ease;
  will-change: transform, opacity; }

.fadeContent.current {
  opacity: 1;
  transform: translateY(0); }

#stage #scene1,
#stage #scene2 {
  display: none; }

@media screen and (min-width: 751px) {
  #stage {
    display: grid;
    grid-template-areas: "scene1 mainContents scene2";
    grid-template-columns: 1fr 550px 1fr;
    position: relative; }
    #stage #scene1 {
      display: block;
      grid-area: scene1;
      position: sticky;
      top: 0;
      z-index: 2;
      height: 100vh; }
      #stage #scene1 .bg {
        overflow: hidden;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: calc(942 / 682 * 100%);
        min-width: 100%;
        min-height: 100%;
        background: url(../images/common/bg_stage_left.png) center center no-repeat;
        background-size: cover; }
      #stage #scene1 .logo {
        display: none;
        align-items: flex-end;
        position: relative;
        z-index: 10;
        width: 85%;
        max-width: 270px;
        height: 100vh;
        margin: 0 0 0 2.2vw;
        padding: 0 0 35.7vh 0;
        box-sizing: border-box; }
    #stage #scene2 {
      display: block;
      grid-area: scene2;
      position: sticky;
      top: 0;
      height: 100vh; }
      #stage #scene2 .bg {
        overflow: hidden;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        width: calc(733 / 682 * 100%);
        min-width: 100%;
        min-height: 100%;
        background: url(../images/common/bg_stage_right.png) center center no-repeat;
        background-size: cover; }
      #stage #scene2 .menuWrap {
        display: none;
        align-items: center;
        position: relative;
        z-index: 10;
        width: 80%;
        max-width: 404px;
        height: 100vh;
        margin: auto; }
        #stage #scene2 .menuWrap .menu {
          position: relative;
          width: 100%;
          max-height: calc(100vh - 12vh);
          margin: 1vh 0 4vh 0; }
          #stage #scene2 .menuWrap .menu .frame {
            width: 100%; }
            #stage #scene2 .menuWrap .menu .frame:before {
              content: "";
              display: block;
              background: url(../images/common/img_frame_top.png) center top no-repeat;
              background-size: 100% auto;
              aspect-ratio: 655 / 51; }
            #stage #scene2 .menuWrap .menu .frame:after {
              content: "";
              display: block;
              background: url(../images/common/img_frame_bottom.png) center bottom no-repeat;
              background-size: contain;
              aspect-ratio: 655 / 51; }
            #stage #scene2 .menuWrap .menu .frame .frameInner {
              background: url(../images/common/img_frame_middle.png) center top repeat-y;
              background-size: 100% auto;
              margin: -1px 0; }
          #stage #scene2 .menuWrap .menu .list {
            position: relative;
            z-index: 2;
            padding: 2vh 0 2vh 0; }
            #stage #scene2 .menuWrap .menu .list .item {
              width: calc(331 / 394 * 100%);
              margin: 0 auto calc(27 / 394 * 100%) auto; }
              #stage #scene2 .menuWrap .menu .list .item:first-child {
                margin: 0 auto calc(48 / 394 * 100%) auto; }
              #stage #scene2 .menuWrap .menu .list .item a {
                display: block;
                width: 100%; } }
@media screen and (min-width: 1150px) {
  #stage #scene1 .logo {
    display: flex; }
  #stage #scene2 .menuWrap {
    display: flex; } }
@media screen and (min-width: 1321px) {
  #stage #scene2 .menuWrap .menu .list .item a p .top {
    font-size: 2.75rem;
    line-height: 1;
    padding: 0 0 0 1rem; }
  #stage #scene2 .menuWrap .menu .list .item a p .en {
    font-size: 2rem;
    line-height: 1;
    margin: 0 0 0.2rem 0; }
  #stage #scene2 .menuWrap .menu .list .item a p .ja {
    display: block;
    font-size: 2.75rem;
    line-height: 1.16;
    padding: 0 0 1rem 0.3rem; } }
/* maincCntents */
#maincCntents {
  background-color: #000000; }

@media screen and (min-width: 751px) {
  #maincCntents {
    position: relative;
    z-index: 50;
    max-width: 550px;
    margin: auto; }
    #maincCntents:before, #maincCntents:after {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      right: 100%;
      z-index: 20;
      width: 15px;
      filter: drop-shadow(0 0 15px rgba(0, 0, 0, 0.35));
      background: linear-gradient(to left, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0));
      will-change: filter; }
    #maincCntents:after {
      left: 100%;
      right: auto;
      background: linear-gradient(to right, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0)); } }
#header {
  position: relative;
  top: 0;
  left: 0;
  right: 0; }
  #header #head {
    position: relative;
    z-index: 1000;
    background-color: #ffffff; }

#globalNav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1001; }
  #globalNav .button {
    cursor: pointer;
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1000;
    width: calc(100 / 750 * 100vw);
    height: 0;
    background: #ffffff;
    padding: calc(100 / 750 * 100vw) 0 0 0;
    box-sizing: border-box; }
    #globalNav .button .wrap {
      display: flex;
      align-items: center;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      width: calc(60 / 100 * 100%);
      height: 0;
      padding: calc(52 / 100 * 100%) 0 0 0;
      margin: auto; }
      #globalNav .button .wrap span {
        position: absolute;
        left: 0;
        right: 0;
        height: 3px;
        background-color: #000000;
        margin: auto;
        transition: all 0.2s; }
        #globalNav .button .wrap span:nth-of-type(1) {
          top: 0; }
        #globalNav .button .wrap span:nth-of-type(2) {
          top: calc(50% - 1px); }
        #globalNav .button .wrap span:nth-of-type(3) {
          bottom: 0; }
  #globalNav .menu {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    height: 100vh;
    background: #ffffff; }
    #globalNav .menu .menuContent .parts {
      position: absolute;
      top: 0;
      right: 0;
      width: calc(405 / 750 * 100%);
      background: url(../images/common/bg_parts01.png) top right no-repeat;
      background-size: contain;
      aspect-ratio: 405 / 237; }
      #globalNav .menu .menuContent .parts.parts02 {
        top: auto;
        bottom: 0;
        left: 0;
        right: auto;
        background: url(../images/common/bg_parts02.png) bottom left no-repeat;
        background-size: contain; }
    #globalNav .menu .menuInner {
      overflow: auto;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 3;
      background: url(../images/common/bg_menu.png) center top no-repeat;
      background-size: contain;
      transform: translateX(0);
      transition: opacity 0.2s ease-out;
      -webkit-overflow-scrolling: touch;
      box-sizing: border-box; }
    #globalNav .menu .bg {
      margin: calc(100 / 750 * 100vw) 0 0 0; }
    #globalNav .menu .list {
      position: relative;
      width: calc(455 / 750 * 100%);
      margin: auto;
      padding: calc(85 / 750 * 100%) 0 calc(140 / 750 * 100%) 0; }
      #globalNav .menu .list .item {
        margin: 0 0 calc(35 / 455 * 100%) 0; }
        #globalNav .menu .list .item:first-child {
          margin: 0 0 calc(75 / 455 * 100%) 0; }
        #globalNav .menu .list .item a {
          display: block;
          width: 100%;
          font-size: 3.4rem;
          line-height: 1; }
  #globalNav.open .button {
    background-color: #f0c3d2; }
    #globalNav.open .button .wrap span:nth-of-type(1) {
      bottom: 0;
      left: 0;
      transform: translateY(50%) translateY(-1px) rotate(-45deg); }
    #globalNav.open .button .wrap span:nth-of-type(2) {
      opacity: 0;
      left: 0; }
    #globalNav.open .button .wrap span:nth-of-type(3) {
      top: 0;
      left: 0;
      transform: translateY(-50%) translateY(1px) rotate(45deg); }

@media screen and (min-width: 751px) {
  #globalNav {
    max-width: 550px;
    margin: auto; }
    #globalNav .button {
      position: absolute;
      width: calc(100 / 750 * 100%);
      padding: calc(100 / 750 * 100%) 0 0 0; }
    #globalNav .menu .menuContent {
      overflow: hidden;
      max-width: 550px;
      height: 100vh;
      margin: auto;
      filter: blur(0);
      will-change: filter; }
    #globalNav .menu .wrap:before, #globalNav .menu .wrap:after {
      padding: calc(100 / 750 * 100%) 0 0 0; }
    #globalNav .menu .bg {
      margin: calc(100 / 750 * 100%) 0 0 0; } }
#footer {
  padding: 0; }
  #footer .content {
    position: relative;
    background: #ffffff;
    padding: calc(16 / 375 * 100%) 0 calc(66 / 375 * 100%) 0; }
    #footer .content .parts {
      position: absolute; }
      #footer .content .parts.parts01 {
        top: 0;
        right: 0;
        width: calc(153 / 750 * 100%);
        background: url(../images/common/bg_footer_parts01.png) top right no-repeat;
        background-size: contain;
        aspect-ratio: 153 / 188; }
      #footer .content .parts.parts02 {
        bottom: 0;
        left: 0;
        width: calc(217 / 750 * 100%);
        background: url(../images/common/bg_footer_parts02.png) bottom left no-repeat;
        background-size: contain;
        aspect-ratio: 217 / 155; }
  #footer .contentInner {
    position: relative;
    z-index: 2; }
  #footer .list {
    margin: 0 0 calc(15 / 350 * 100%) 0; }
    #footer .list .item {
      font-size: 2.4rem;
      line-height: 1.17;
      margin: 0 0 calc(4 / 350 * 100%) 0; }
      #footer .list .item a {
        display: inline-block;
        padding: 0.5em 0; }
  #footer .logo {
    text-align: center;
    margin: 0 0 calc(18 / 350 * 100%) 0; }
    #footer .logo a {
      display: block;
      padding: calc(7 / 350 * 100%) calc(51 / 350 * 100%); }
  #footer .copy {
    font-size: 2.4rem;
    line-height: 1.17;
    text-align: center; }

@media screen and (min-width: 751px) {
  #footer .list .item {
    font-size: 2rem;
    line-height: 1.2; }
  #footer .copy {
    font-size: 2rem;
    line-height: 1.2; } }
/* loading */
#loading {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000000;
  background-color: #ffffff; }

.ball-pulse-sync > div {
  display: inline-block;
  width: 15px;
  height: 15px;
  background-color: #000000;
  margin: 10px;
  border-radius: 100%;
  animation-fill-mode: both; }

.ball-pulse-sync > div:nth-child(1) {
  animation: ball-pulse-sync 0.6s -0.14s infinite ease-in-out; }

.ball-pulse-sync > div:nth-child(2) {
  animation: ball-pulse-sync 0.6s -70ms infinite ease-in-out; }

.ball-pulse-sync > div:nth-child(3) {
  animation: ball-pulse-sync 0.6s 0s infinite ease-in-out; }

@keyframes ball-pulse-sync {
  33% {
    transform: translateY(10px); }
  66% {
    transform: translateY(-10px); }
  100% {
    transform: translateY(0); } }
/* animate */
.animate {
  opacity: 0;
  transform: scale(0.6);
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.2s; }
  .animate.current {
    opacity: 1;
    transform: scale(1); }

/* titleType01 */
/* toTop */
#toTop {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 50; }
  #toTop a {
    display: block;
    position: absolute;
    bottom: 3rem;
    right: 3rem; }
  #toTop span {
    display: block;
    position: relative;
    width: 7.2rem;
    height: 7.2rem;
    text-indent: -9999em;
    background: url(../images/common/img_totop.svg) center center no-repeat;
    background-size: contain;
    box-sizing: border-box; }

@media screen and (min-width: 751px) {
  #toTop {
    max-width: 550px;
    margin: auto; }
    #toTop span {
      width: 70px;
      height: 70px;
      line-height: 70px; } }
/* firstContent */
#firstContent .content {
  position: relative;
  z-index: 10;
  background: linear-gradient(to top, #ffd0dc 0, #ffffff 7.28%, #ffffff 100%);
  aspect-ratio: 750 / 1100; }
#firstContent .bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 3;
  aspect-ratio: 750 / 1193; }
#firstContent .titleWrap {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  margin: calc(280 / 750 * 100%) 0 0 0; }
  #firstContent .titleWrap .title {
    opacity: 0;
    display: block;
    margin: auto;
    transition: all 0.4s ease-out; }
    #firstContent .titleWrap .title.title01 {
      width: calc(434 / 750 * 100%);
      margin-bottom: calc(37 / 750 * 100%);
      transform: scale(0);
      aspect-ratio: 434 / 273; }
    #firstContent .titleWrap .title.period {
      width: calc(462 / 750 * 100%);
      margin-bottom: calc(43 / 750 * 100%);
      transform: translateY(2rem);
      aspect-ratio: 462 / 59;
      transition-delay: 1.7s; }
    #firstContent .titleWrap .title.title02 {
      width: calc(505 / 750 * 100%);
      transform: translateY(2rem);
      aspect-ratio: 505 / 276;
      transition-delay: 2.5s; }
#firstContent .scroll {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: calc(74 / 750 * 100%);
  margin: 0 auto calc(20 /750 * 100%) auto; }
  #firstContent .scroll .blink {
    animation: blink 3s 0s infinite linear; }
.load_complete #firstContent .titleWrap .title {
  opacity: 1; }
  .load_complete #firstContent .titleWrap .title.title01 {
    animation: bound 2s ease forwards 0.6s; }
  .load_complete #firstContent .titleWrap .title.period {
    transform: translateY(0); }
  .load_complete #firstContent .titleWrap .title.title02 {
    transform: translateY(0); }

/* calendar */
#calendar .content {
  position: relative;
  background: #fcdb93; }
#calendar .title {
  position: relative;
  z-index: 2;
  padding: calc(68 / 750 * 100%) 0 calc(7 / 750 * 100%) 0; }
#calendar .contentInner {
  position: relative;
  z-index: 2; }
#calendar .desc {
  margin: 0 0 calc(22 / 750 * 100%) 0; }
#calendar .calendarWrap {
  padding: 0 0 calc(72 / 650 * 100%) 0; }
  #calendar .calendarWrap .calendar {
    overflow: hidden;
    overflow-x: auto; }
    #calendar .calendarWrap .calendar .simplebar-track.simplebar-horizontal {
      height: 2.6rem;
      background-color: #ffffff;
      border-radius: 1.5rem; }
    #calendar .calendarWrap .calendar .simplebar-scrollbar {
      top: 0;
      height: 2.6rem;
      background-color: #9fa0a0;
      border-radius: 1.5rem; }
      #calendar .calendarWrap .calendar .simplebar-scrollbar:before {
        height: 2.6rem;
        background-color: #9fa0a0;
        border-radius: 1.5rem; }
    #calendar .calendarWrap .calendar .table {
      width: calc(9.2rem * 18 + 2px);
      background-color: #ffffff;
      margin: 0 0 7rem 0; }
      #calendar .calendarWrap .calendar .table .month {
        display: flex;
        justify-content: flex-start;
        border-left: 2px solid #37beeb;
        border-right: 2px solid #ff8cbe; }
        #calendar .calendarWrap .calendar .table .month .cell {
          display: flex;
          align-items: center;
          justify-content: flex-start;
          flex-basis: 100%; }
          #calendar .calendarWrap .calendar .table .month .cell.month3 {
            flex-basis: calc(13 / 18 * 100%);
            background: #37beeb; }
          #calendar .calendarWrap .calendar .table .month .cell.month4 {
            flex-basis: calc(5 / 18 * 100%);
            background: #ff8cbe; }
          #calendar .calendarWrap .calendar .table .month .cell .num {
            width: 9rem;
            margin: 0; }
      #calendar .calendarWrap .calendar .table .wrap {
        position: relative;
        border-bottom: 2px solid #f9b32f; }
      #calendar .calendarWrap .calendar .table .day {
        display: flex;
        justify-content: space-between;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        border-left: 2px solid #f9b32f; }
        #calendar .calendarWrap .calendar .table .day .cell {
          display: flex;
          align-items: flex-start;
          justify-content: center;
          flex-basis: calc(1 / 18 * 100%);
          border-right: 2px solid #f9b32f;
          box-sizing: border-box; }
          #calendar .calendarWrap .calendar .table .day .cell.sunday {
            background-color: #fbe6ef; }
          #calendar .calendarWrap .calendar .table .day .cell.saturday {
            background-color: #eaf6fd; }
          #calendar .calendarWrap .calendar .table .day .cell.holiday {
            background-color: #fbe6ef; }
          #calendar .calendarWrap .calendar .table .day .cell .num {
            height: 7.2rem;
            border-bottom: 2px solid #f9b32f;
            box-sizing: border-box; }
      #calendar .calendarWrap .calendar .table .event {
        position: relative;
        padding: 7.7rem 0 0 0; }
        #calendar .calendarWrap .calendar .table .event .cell .num {
          display: none; }
        #calendar .calendarWrap .calendar .table .event .period {
          margin: 2.3rem 0; }
          #calendar .calendarWrap .calendar .table .event .period.type01 .name {
            background-color: #e60012; }
          #calendar .calendarWrap .calendar .table .event .period.type02 .name {
            background-color: #0378b8; }
          #calendar .calendarWrap .calendar .table .event .period.type03 .name {
            background-color: #f4a000; }
          #calendar .calendarWrap .calendar .table .event .period.shape01 .name {
            width: calc(100% - 1.4rem);
            color: #231815;
            text-indent: 1rem;
            margin-left: 0.7rem;
            padding-left: calc(100% - 1.4rem);
            clip-path: none;
            border-radius: 5px;
            -webkit-text-stroke: 2px #ffffff;
            text-stroke: 2px black;
            paint-order: stroke; }
          #calendar .calendarWrap .calendar .table .event .period.period02 {
            width: calc(1 / 18 * 100%);
            margin: 0 0 0 calc(2 / 18 * 100%); }
          #calendar .calendarWrap .calendar .table .event .period.period03 {
            width: calc(4 / 18 * 100%); }
          #calendar .calendarWrap .calendar .table .event .period.period04 {
            width: calc(4 / 18 * 100%); }
            #calendar .calendarWrap .calendar .table .event .period.period04 .name {
              font-size: 2.1rem;
              line-height: 1;
              letter-spacing: -0.25rem;
              padding: 0.4rem 0 0 2.1rem; }
          #calendar .calendarWrap .calendar .table .event .period.period10 {
            width: calc(7 / 18 * 100%);
            margin-left: calc(4 / 18 * 100%); }
            #calendar .calendarWrap .calendar .table .event .period.period10 .name {
              font-size: 2.3rem;
              line-height: 1; }
          #calendar .calendarWrap .calendar .table .event .period .name {
            display: flex;
            align-items: center;
            height: 4.8rem;
            color: #ffffff;
            font-size: 2.5rem;
            line-height: 1;
            font-weight: 700;
            letter-spacing: 0.1rem;
            white-space: nowrap;
            padding: 0.4rem 0 0 4rem;
            box-sizing: border-box;
            clip-path: polygon(0 0, calc(100% - 3rem) 0, 100% 50%, calc(100% - 3rem) 100%, 0 100%); }
            #calendar .calendarWrap .calendar .table .event .period .name.middle {
              font-size: 2.1rem;
              line-height: 1; }
              #calendar .calendarWrap .calendar .table .event .period .name.middle .small {
                font-size: 1.3rem;
                line-height: 1.69;
                letter-spacing: -0.04em; }
            #calendar .calendarWrap .calendar .table .event .period .name.small {
              font-size: 1.9rem;
              line-height: 1.16; }
            #calendar .calendarWrap .calendar .table .event .period .name .sup {
              display: inline-block;
              position: relative;
              top: -0.8em;
              font-size: 0.5em;
              padding: 0 0.6em 0 0; }
            #calendar .calendarWrap .calendar .table .event .period .name .txt {
              display: block;
              text-indent: 0;
              padding: 0 0 0 0.4em; }

#sale .contentInner,
#shop .contentInner,
#campaign .contentInner,
#newlife .contentInner,
#resort .contentInner,
#other .contentInner {
  position: relative;
  z-index: 2; }
#sale .title,
#shop .title,
#campaign .title,
#newlife .title,
#resort .title,
#other .title {
  position: relative;
  z-index: 2;
  text-align: center; }
#sale .bannerWrap .banner,
#shop .bannerWrap .banner,
#campaign .bannerWrap .banner,
#newlife .bannerWrap .banner,
#resort .bannerWrap .banner,
#other .bannerWrap .banner {
  position: relative;
  width: calc(650 / 750 * 100%);
  margin: auto; }
  #sale .bannerWrap .banner.soon:before,
  #shop .bannerWrap .banner.soon:before,
  #campaign .bannerWrap .banner.soon:before,
  #newlife .bannerWrap .banner.soon:before,
  #resort .bannerWrap .banner.soon:before,
  #other .bannerWrap .banner.soon:before {
    content: "coming soon\A【12/22（月）公開予定】";
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    color: #ffffff;
    font-size: 4rem;
    line-height: 1.2;
    font-weight: 700;
    text-align: center;
    background-color: rgba(0, 0, 0, 0.4);
    white-space: pre; }
  #sale .bannerWrap .banner .light,
  #shop .bannerWrap .banner .light,
  #campaign .bannerWrap .banner .light,
  #newlife .bannerWrap .banner .light,
  #resort .bannerWrap .banner .light,
  #other .bannerWrap .banner .light {
    box-shadow: 0px 0px 5px 5px white; }
  #sale .bannerWrap .banner .desc,
  #shop .bannerWrap .banner .desc,
  #campaign .bannerWrap .banner .desc,
  #newlife .bannerWrap .banner .desc,
  #resort .bannerWrap .banner .desc,
  #other .bannerWrap .banner .desc {
    font-size: 3rem;
    line-height: 1.47;
    font-weight: 700;
    letter-spacing: -0.04em;
    white-space: nowrap;
    text-align: center;
    padding: calc(24 / 650 * 100%) 0 calc(24 / 650 * 100%) 0; }
    #sale .bannerWrap .banner .desc.small,
    #shop .bannerWrap .banner .desc.small,
    #campaign .bannerWrap .banner .desc.small,
    #newlife .bannerWrap .banner .desc.small,
    #resort .bannerWrap .banner .desc.small,
    #other .bannerWrap .banner .desc.small {
      font-size: 2.1rem;
      line-height: 1.62; }
  #sale .bannerWrap .banner .image,
  #shop .bannerWrap .banner .image,
  #campaign .bannerWrap .banner .image,
  #newlife .bannerWrap .banner .image,
  #resort .bannerWrap .banner .image,
  #other .bannerWrap .banner .image {
    padding: 0 0 calc(45 / 650 * 100%) 0; }
  #sale .bannerWrap .banner .more,
  #shop .bannerWrap .banner .more,
  #campaign .bannerWrap .banner .more,
  #newlife .bannerWrap .banner .more,
  #resort .bannerWrap .banner .more,
  #other .bannerWrap .banner .more {
    width: calc(530 / 650 * 100%);
    margin: auto;
    padding: 0 0 calc(33 / 650 * 100%) 0; }

/* sale */
#sale .content {
  position: relative;
  background: #ffd0dc; }
#sale .title {
  padding: calc(65 / 750 * 100%) 0 calc(10 / 750 * 100%) 0; }
#sale .bannerWrap {
  padding: 0 0 calc(8 / 750 * 100%) 0; }
  #sale .bannerWrap .banner {
    margin-bottom: calc(35 / 750 * 100%); }
    #sale .bannerWrap .banner .desc {
      font-size: 3.6rem;
      line-height: 1.19;
      padding: calc(25 / 750 * 100%) 0 calc(25 / 750 * 100%) 0; }

/* shop */
#shop .content {
  position: relative;
  background: #ffffff; }
#shop .parts {
  position: absolute;
  top: 0;
  width: calc(155 / 750 * 100%);
  margin: calc(-44 / 750 * 100%) 0 0 0;
  aspect-ratio: 155 / 190; }
  #shop .parts.parts01 {
    left: 0;
    background: url(../images/common/bg_shop01.png) left center no-repeat;
    background-size: contain; }
  #shop .parts.parts02 {
    right: 0;
    background: url(../images/common/bg_shop02.png) right center no-repeat;
    background-size: contain; }
#shop .title {
  padding: calc(66 / 750 * 100%) 0 calc(49 / 750 * 100%) 0; }
#shop .frame {
  width: calc(655 / 750 * 100%);
  margin: auto;
  padding: 0 0 calc(55 / 750 * 100%) 0; }
  #shop .frame:before {
    content: "";
    display: block;
    background: url(../images/common/img_frame_top.png) center top no-repeat;
    background-size: 100% auto;
    aspect-ratio: 655 / 51; }
  #shop .frame:after {
    content: "";
    display: block;
    background: url(../images/common/img_frame_bottom.png) center bottom no-repeat;
    background-size: contain;
    aspect-ratio: 655 / 51; }
  #shop .frame .frameInner {
    background: url(../images/common/img_frame_middle.png) center top repeat-y;
    background-size: 100% auto;
    margin: -1px 0; }
  #shop .frame .list {
    position: relative;
    width: calc(589 / 655 * 100%);
    margin: auto; }
    #shop .frame .list[data-shop="2"] {
      display: flex;
      flex-wrap: wrap;
      position: relative;
      gap: calc(37 / 589 * 100%); }
      #shop .frame .list[data-shop="2"]:before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        width: 3px;
        background: linear-gradient(to left, #ffda2d 0%, #bc7c38 41.4%);
        margin: auto; }
      #shop .frame .list[data-shop="2"] .item {
        flex-basis: calc(276 / 589 * 100%);
        margin: 0 0 calc(9 / 589 * 100%) 0; }
        #shop .frame .list[data-shop="2"] .item .open {
          font-size: 2.9rem;
          line-height: 1.72; }
          #shop .frame .list[data-shop="2"] .item .open .info .logo {
            margin: 0 0 1.3rem 0; }
        #shop .frame .list[data-shop="2"] .item .wrap {
          display: block;
          margin: 0 0 calc(11 / 276 * 100%) 0; }
        #shop .frame .list[data-shop="2"] .item .desc {
          font-size: 2rem;
          line-height: 1.35; }
    #shop .frame .list .item {
      position: relative;
      z-index: 2;
      margin: 0 0 calc(25 / 589 * 100%) 0; }
      #shop .frame .list .item .open {
        color: #036eb8;
        font-size: 4rem;
        line-height: 1.25;
        font-weight: 700;
        text-align: center;
        margin: 0 0 calc(8 / 284 * 100%) 0; }
      #shop .frame .list .item .wrap {
        display: flex;
        justify-content: space-between;
        margin: 0 0 calc(12 / 589 * 100%) 0; }
        #shop .frame .list .item .wrap .info {
          flex-basis: calc(284 / 590 * 100%);
          font-size: 2.2rem;
          line-height: 1.23;
          font-weight: 700; }
          #shop .frame .list .item .wrap .info .logo {
            margin: 0 0 1.5rem 0; }
        #shop .frame .list .item .wrap .image {
          flex-basis: calc(282 / 590 * 100%); }
      #shop .frame .list .item .desc {
        font-size: 2.2rem;
        line-height: 1.23;
        font-weight: 700; }
  #shop .frame .map {
    width: calc(590 / 655 * 100%);
    margin: 0 auto calc(16 / 655 * 100%) auto; }
    #shop .frame .map .image {
      padding: 0 0 calc(22 / 590 * 100%) 0; }
      #shop .frame .map .image:last-child {
        padding: 0; }
  #shop .frame .other {
    color: #036eb8;
    font-size: 4rem;
    line-height: 1.25;
    font-weight: 700;
    text-align: center;
    margin: 0 0 calc(18 / 655 * 100%) 0; }
  #shop .frame .more {
    width: calc(530 / 655 * 100%);
    margin: auto;
    padding: 0 0 calc(24 / 655 * 100%) 0; }

/* campaign */
#campaign .content {
  position: relative;
  background: #ffd0dc; }
#campaign .title {
  padding: calc(71 / 750 * 100%) 0 calc(1 / 750 * 100%) 0; }
#campaign .bannerWrap {
  padding: 0 0 calc(22 / 750 * 100%) 0; }
  #campaign .bannerWrap .banner {
    padding: 0 0 calc(30 / 750 * 100%) 0; }
    #campaign .bannerWrap .banner.campaign07 {
      padding: 0 0 calc(55 / 750 * 100%) 0; }
    #campaign .bannerWrap .banner .desc.up {
      margin: calc(-25 / 750 * 100%) 0 0 0;
      padding: 0 0 calc(10 / 750 * 100%) 0; }

/* newlife */
#newlife .content {
  position: relative;
  background: #fcdb93; }
#newlife .title {
  padding: calc(67 / 750 * 100%) 0 calc(10 / 750 * 100%) 0; }
#newlife .bannerWrap {
  padding: 0 0 calc(22 / 750 * 100%) 0; }
  #newlife .bannerWrap .banner {
    padding: 0 0 calc(20 / 750 * 100%) 0; }
    #newlife .bannerWrap .banner .desc.small {
      margin: calc(-33 / 650 * 100%) 0 0 0;
      padding: 0 0 calc(15 / 650 * 100%) 0; }
    #newlife .bannerWrap .banner .imageWrap {
      display: flex;
      justify-content: space-between; }
      #newlife .bannerWrap .banner .imageWrap .image {
        flex-basis: calc(320 / 650 * 100%); }

/* resort */
#resort .content {
  position: relative;
  background: #73dcff; }
#resort .title {
  padding: calc(67 / 750 * 100%) 0 calc(19 / 750 * 100%) 0; }
#resort .bannerWrap {
  padding: 0 0 calc(22 / 750 * 100%) 0; }
  #resort .bannerWrap .banner {
    padding: 0 0 calc(20 / 750 * 100%) 0; }

/* other */
#other .content {
  position: relative;
  background: #ffffff; }
#other .title {
  padding: calc(92 / 750 * 100%) 0 calc(51 / 750 * 100%) 0; }
#other .bannerWrap {
  padding: 0 0 calc(1 / 750 * 100%) 0; }
  #other .bannerWrap .banner {
    margin-bottom: calc(35 / 750 * 100%); }



