/*---------------------------------------------------------
Reset
---------------------------------------------------------*/
@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Quicksand:wght@300..700&display=swap";
html,
body,
div,
article,
section,
main,
h1,
h2,
h3,
h4,
h5,
h6,
dl,
dt,
dd,
ul,
ol,
li,
pre,
form,
input,
textarea,
address,
nav,
table,
th,
td,
a,
p,
img,
figure,
span,
em,
small {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html:before, html:after,
body:before,
body:after,
div:before,
div:after,
article:before,
article:after,
section:before,
section:after,
main:before,
main:after,
h1:before,
h1:after,
h2:before,
h2:after,
h3:before,
h3:after,
h4:before,
h4:after,
h5:before,
h5:after,
h6:before,
h6:after,
dl:before,
dl:after,
dt:before,
dt:after,
dd:before,
dd:after,
ul:before,
ul:after,
ol:before,
ol:after,
li:before,
li:after,
pre:before,
pre:after,
form:before,
form:after,
input:before,
input:after,
textarea:before,
textarea:after,
address:before,
address:after,
nav:before,
nav:after,
table:before,
table:after,
th:before,
th:after,
td:before,
td:after,
a:before,
a:after,
p:before,
p:after,
img:before,
img:after,
figure:before,
figure:after,
span:before,
span:after,
em:before,
em:after,
small:before,
small:after {
  box-sizing: border-box;
}

main {
  display: block;
}

ul,
li {
  list-style-type: none;
}

table {
  border-collapse: collapse;
}

img {
  border: none;
}

a {
  text-decoration: none;
}

a,
button {
  outline: none;
}
a:focus,
button:focus {
  outline: none;
}

sup,
sub {
  height: 0;
  line-height: 1;
  vertical-align: baseline;
  _vertical-align: bottom;
  position: relative;
}

sup {
  bottom: 0.5ex;
}

sub {
  top: 0.5ex;
}

/*---------------------------------------------------------
font
---------------------------------------------------------*/
/*---------------------------------------------------------
common
---------------------------------------------------------*/
html {
  font-size: 0.5208333333vw;
}

body {
  overflow: hidden;
  font-size: 1.6rem;
  font-family: "Noto Sans JP", sans-serif;
  color: #000;
  background-color: #f5f7f8;
  line-height: 1;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
  word-break: break-word;
  /* * {
  	letter-spacing: 0.05em;
  } */
}

img {
  width: 100%;
  vertical-align: bottom;
  height: auto;
}

a {
  color: inherit;
}

/*---------------------------------------------------------
frame
---------------------------------------------------------*/
#main {
  display: flex;
  justify-content: space-between;
}
#main #nav {
  width: 29rem;
}
#main #contents {
  flex: 1;
}
#main #nav,
#main #contents {
  display: flex;
  justify-content: center;
  flex-direction: column;
}
#main .center-item {
  position: relative;
  min-height: 108rem;
}

.ps .ps__rail-y {
  transform: scale(0.7857142857);
  background-color: #fff;
  width: calc(0.7rem * 1.2727272727);
  opacity: 1 !important;
  right: 2.4rem !important;
  top: 0 !important;
}
.ps .ps__rail-y .ps__thumb-y {
  background-color: #0199cb;
  width: 100%;
  right: 0;
}

/*---------------------------------------------------------
tab
---------------------------------------------------------*/
#tab-contents {
  transition: opacity 0.3s, height 0.3s;
}

.tab-box {
  opacity: 0;
  height: 0;
  min-height: 0;
  visibility: hidden;
  transition: opacity 0.25s 0.15s;
}
.tab-box.open {
  opacity: 1;
  height: auto;
  visibility: visible;
}

/*---------------------------------------------------------
nav
---------------------------------------------------------*/
#nav {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  background-color: #00a4d2;
  color: #fff;
}
#nav:before {
  position: absolute;
  z-index: -1;
  display: block;
  content: " ";
  background: linear-gradient(45deg, #008ac2, #00a4d2);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
#nav .center-item {
  padding: 5.3rem 2.2rem;
}
#nav #nav-title span {
  display: block;
  margin: 0 auto;
}
#nav #nav-title span._flag {
  width: 4.4rem;
}
#nav #nav-title span._en {
  width: 22rem;
  margin-top: 1.7rem;
}
#nav #nav-title span._jp {
  width: 19.6rem;
  margin-top: 3rem;
}
#nav #nav-title span._jp img {
  display: block;
}
#nav #tab-menu {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 8rem;
}
#nav #tab-menu .btn-set {
  width: 11.8rem;
}
#nav #tab-menu .btn-set:last-of-type {
  width: 100%;
  margin-top: 5.4rem;
}
#nav #tab-menu .btn-set:last-of-type li p {
  font-size: 1.8rem;
}
#nav #tab-menu ._name {
  font-size: 2rem;
  line-height: 1.25;
  font-weight: 700;
  text-align: center;
}
#nav #tab-menu ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 2.4rem;
  margin-bottom: -1.2rem;
}
#nav #tab-menu ul li {
  position: relative;
  z-index: 1;
  width: 11.8rem;
  height: 6rem;
  margin-bottom: 1.4rem;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
#nav #tab-menu ul li p {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 100vw;
  border: 0.3rem solid #fff;
  font-size: 2.2rem;
  letter-spacing: 0.05em;
  font-family: "Quicksand", sans-serif;
  color: #0199cb;
  font-weight: 700;
  box-shadow: 4px 4px 7px 0px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: background 0.25s, color 0.25s, border 0.25s;
}
#nav #tab-menu ul li p:hover {
  border-color: #fff;
  background-color: #0199cb;
  color: #fff;
}
#nav #tab-menu ul li._wide {
  width: 100%;
  max-width: 23.5rem;
  margin-left: auto;
  margin-right: auto;
}
#nav #tab-menu ul li.on p {
  border-color: #fff;
  background-color: #0199cb;
  color: #fff;
}
#nav #nav-footer {
  position: absolute;
  bottom: 4.7rem;
  left: 50%;
  transform: translateX(-50%);
  width: 14.1rem;
}

/*---------------------------------------------------------
contents
---------------------------------------------------------*/
#contents .center-item {
  padding: 4.7rem;
  padding-top: 2.6rem;
  padding-right: 4rem;
  display: flex;
  align-items: center;
}
#contents .floor-name {
  width: 79rem;
  font-size: 4rem;
  color: #0199cb;
  text-align: center;
  margin-bottom: 5.3rem;
}
#contents .floor-name span {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 6.4rem;
}
#contents .floor-name span big {
  font-size: 9.6rem;
}
#contents .stage {
  display: flex;
  justify-content: space-between;
}
#contents .stage .map {
  position: relative;
  flex: 1;
  background-color: #fff;
  border-radius: 2rem;
  overflow: hidden;
}
#contents .stage .list {
  position: relative;
  width: 70.8rem;
  margin-left: 4.7rem;
}
#contents .stage .list .scroll-btn-box {
  position: absolute;
  top: 0;
  right: 0;
  width: 6rem;
  height: 75.6rem;
}
#contents .stage .list .scroll-btn-box .scroll-btn {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 6rem;
  height: 6rem;
  background-color: #fff;
  border-radius: 100vw;
  border: 0.3rem solid #0199cb;
  background: #fff;
  box-shadow: 4px 4px 7px 0px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  outline: none !important;
  z-index: 9;
}
#contents .stage .list .scroll-btn-box .scroll-btn:before {
  position: absolute;
  display: block;
  content: " ";
  -webkit-mask: url(../img/scroll-arrow.png) no-repeat center center/1.8rem auto;
          mask: url(../img/scroll-arrow.png) no-repeat center center/1.8rem auto;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #0199cb;
}
#contents .stage .list .scroll-btn-box .scroll-btn:active {
  background-color: #0199cb;
}
#contents .stage .list .scroll-btn-box .scroll-btn:active:before {
  background-color: #ffffff;
}
#contents .stage .list .scroll-btn-box .scroll-btn.down {
  top: auto;
  bottom: 0;
}
#contents .stage .list .scroll-btn-box .scroll-btn.down:before {
  transform: scale(1, -1);
}
#contents .stage .list .list-box {
  position: relative;
}
#contents .stage .list .list-box::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 61.6rem;
  border: 1px solid #c2c2c2;
  pointer-events: none;
  z-index: 2;
}
#contents .stage .list .scrollbox {
  width: 100%;
  max-height: 75.6rem;
  overflow: hidden;
}
#contents .stage .list .scrollbox ul {
  width: 61.6rem;
  counter-reset: num 0;
}
#contents .stage .list .scrollbox ul li {
  background-color: #eff7f9;
  position: relative;
}
#contents .stage .list .scrollbox ul li:nth-child(2n) {
  background-color: #fff;
}
#contents .stage .list .scrollbox ul li:before {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  counter-increment: num 1;
  content: counter(num) "";
  background-color: #ccc;
  border-radius: 100vw;
  width: 3.4rem;
  height: 3.4rem;
  top: 50%;
  transform: translateY(-50%);
  left: 1.6rem;
  font-size: 2rem;
  font-family: "Quicksand", sans-serif;
  font-weight: bold;
  color: #fff;
}
#contents .stage .list .scrollbox ul li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 6.5rem;
  padding: 0.5em 0 0.5em 3rem;
  padding: 1.6rem;
}
#contents .stage .list .scrollbox ul li a ._name {
  flex: 1;
  font-size: 1.8rem;
  font-weight: bold;
  padding-left: 4.4rem;
}
#contents .stage .list .scrollbox ul li a ._cat {
  width: 21.6rem;
  font-size: 1.6rem;
  font-weight: 500;
  margin-left: 1rem;
}
#contents .stage .list .scrollbox ul li a.comingsoon {
  pointer-events: none;
}
#contents .stage .list .scrollbox ul li.icon-pink:before {
  background-color: #f6aebd;
}
#contents .stage .list .scrollbox ul li.icon-yellow:before {
  background-color: #f5c351;
}
#contents .stage .list .scrollbox ul li.icon-blue:before {
  background-color: #95d7f8;
}
#contents .common-guide {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 70.8rem;
}
#contents .common-guide ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -1.4rem -0.9rem;
}
#contents .common-guide ul li {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 3rem;
  font-size: 1.6rem;
  font-weight: bold;
  padding-left: 4rem;
  margin: 0 1.4rem 0.9rem;
}
#contents .common-guide ul li:before {
  position: absolute;
  display: block;
  content: " ";
  background-color: #ccc;
  border-radius: 100vw;
  width: 3rem;
  height: 3rem;
  top: 0;
  left: 0;
}
#contents .common-guide ul li.icon-pink {
  width: 100%;
}
#contents .common-guide ul li.icon-pink:before {
  background-color: #f6aebd;
}
#contents .common-guide ul li.icon-yellow:before {
  background-color: #f5c351;
}
#contents .common-guide ul li.icon-blue:before {
  background-color: #95d7f8;
}
#contents .common-icon-tap {
  position: absolute;
  top: 5.4rem;
  right: 5.4rem;
}
#contents .common-icon-tap ._img {
  display: block;
  width: 3.1rem;
  margin: 0 auto;
  animation: 3s tap infinite ease-in-out;
}
@keyframes tap {
  0% {
    transform: scale(1);
  }
  90% {
    transform: scale(1);
  }
  95% {
    transform: scale(0.8);
  }
  100% {
    transform: scale(1);
  }
}
#contents .common-icon-tap ._txt {
  display: block;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.1;
  text-align: center;
  margin-top: 1.8rem;
}

#modal {
  position: absolute;
  z-index: 99;
  top: 0;
  right: 0;
  width: 70.8rem;
  height: 100%;
  padding: 5.4rem;
  padding-right: 7.8rem;
  padding-left: 4.7rem;
  width: 79.3rem;
  padding-top: 16.2rem;
  background-color: #f5f7f8;
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
#modal.open {
  opacity: 1;
  pointer-events: auto;
}
#modal #modal-close {
  position: absolute;
  bottom: 5.4rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 29.3rem;
  height: 6.4rem;
  background-color: #0199cb;
  border-radius: 100vw;
  border: 0.3rem solid #0199cb;
  outline: none;
  box-shadow: 4px 4px 7px 0px rgba(0, 0, 0, 0.25);
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
#modal #modal-close::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(-90deg);
  width: 1.9rem;
  height: 1.9rem;
  -webkit-mask: url(../img/scroll-arrow.svg) no-repeat center/contain;
          mask: url(../img/scroll-arrow.svg) no-repeat center/contain;
  background-color: currentColor;
  left: 2.4rem;
}
#modal #modal-close:active {
  background-color: #fff;
  color: #0199cb;
}
#modal #shop-scrollbox {
  position: relative;
}
#modal #shop {
  width: 100%;
  height: 75.6rem;
  overflow: auto;
  opacity: 0;
  transition: opacity 0.3s;
}
#modal #shop.ps--active-y {
  padding-right: 8rem;
}

#shop .shop-num {
  width: 6rem;
  height: 6rem;
  border-radius: 50%;
  color: #fff;
  font-family: "Quicksand", sans-serif;
  font-size: 3.5rem;
  font-weight: 700;
  margin-block: 4rem;
  background-color: #0199cb;
  display: flex;
  align-items: center;
  justify-content: center;
}
#shop .shop-num.pink {
  background-color: #f6aebd;
}
#shop .shop-num.blue {
  background-color: #95d7f8;
}
#shop .shop-num.yellow {
  background-color: #f5c351;
}
#shop .shop-head {
  display: flex;
  justify-content: space-between;
  gap: 0 2rem;
}
#shop .shop-head .shop-logo {
  display: block;
  width: 26rem;
  border-radius: 2rem;
  overflow: hidden;
  border: 1px solid #d5d5d5;
}
#shop .shop-head .shop-logo img {
  width: 100%;
  aspect-ratio: 260/195;
  -o-object-fit: cover;
     object-fit: cover;
}
#shop .shop-head .shop-textbox {
  flex: 1;
}
#shop .shop-head .shop-textbox ._cat {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 1.4rem;
  font-weight: bold;
  color: #fff;
  background-color: #ccc;
  border-radius: 100vw;
  min-width: 13rem;
  height: 2.8rem;
  line-height: 2.8rem;
  text-align: center;
}
#shop .shop-head .shop-textbox ._cat.pink {
  background-color: #f6aebd;
}
#shop .shop-head .shop-textbox ._cat.yellow {
  background-color: #f5c351;
}
#shop .shop-head .shop-textbox ._cat.blue {
  background-color: #95d7f8;
}
#shop .shop-head .shop-textbox ._name {
  margin-top: 2rem;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.25;
}
#shop .shop-head .shop-textbox ._place {
  margin-top: 2rem;
  font-size: 1.4rem;
  font-weight: 500;
}
#shop .shop-head .shop-textbox ._open {
  margin-top: 2rem;
  width: 11rem;
}
#shop .shop-body {
  margin-top: 4rem;
  overflow: hidden;
}
#shop .shop-body figure {
  float: right;
  width: 28.8rem;
  border-radius: 3rem;
  overflow: hidden;
  margin: 0 0 3.5rem 3.5rem;
}
#shop .shop-body p {
  font-size: 1.6rem;
  line-height: 2;
  text-align: justify;
}
#shop .shop-info {
  margin-top: 4rem;
}
#shop .shop-info table {
  width: 100%;
  table-layout: fixed;
}
#shop .shop-info table th,
#shop .shop-info table td {
  padding: 1.7rem 2.5rem;
  border: 1px solid #c2c2c2;
  font-size: 1.6rem;
  line-height: normal;
}
#shop .shop-info table th {
  width: 23rem;
  background-color: #0199cb;
  font-weight: bold;
  color: #fff;
  text-align: left;
}
#shop .shop-info table td {
  background-color: #fff;
}

#shop-contents {
  display: none;
}

#no2-2f .stage .list .scrollbox ul li a ._cat {
  width: 28.6rem;
}