@charset "UTF-8";
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}
.box-wrapper {
  /* フォント指定済 */
  overflow: hidden;
}
.box-wrapper .pc {
  display: none;
}
@media screen and (min-width: 750px) {
  .box-wrapper .pc {
    display: block;
  }
}
.box-wrapper .sp {
  display: block;
}
@media screen and (min-width: 750px) {
  .box-wrapper .sp {
    display: none;
  }
}
.box-wrapper .grise {
  background: #fff;
  color: #000;
}
.box-wrapper .grise a {
  color: inherit;
  text-decoration: none;
}
.box-wrapper .grise__hero {
  display: grid;
  grid-template-columns: 1fr minmax(0, 390px) 1fr;
  align-items: start;
  width: 100%;
  min-height: 100vh;
}
.box-wrapper .grise__hero-side {
  position: fixed;
  top: 0;
  width: calc((100vw - 400px) / 2);
  height: 100vh;
  overflow: hidden;
  z-index: 100;
}
.box-wrapper .grise__hero-side img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.box-wrapper .grise__hero-side .grise__hero-side-overlay {
  position: absolute;
  inset: 0;
}
.box-wrapper .grise__hero-side .grise__hero-side-overlay img {
  position: absolute;
}
.box-wrapper .grise__hero-side--left {
  left: 0;
}
.box-wrapper .grise__hero-side--right {
  right: 0;
}
.box-wrapper .grise__hero-side--right .grise__hero-side-overlay {
  width: 100%;
}
.box-wrapper .grise__hero-fv-text {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-weight: 500;
  font-size: clamp(2.3vh, 4vw, 5.3vh);
  line-height: 1;
  white-space: nowrap;
}
.box-wrapper .grise__hero-fv-text--left {
  left: 0.5%;
}
.box-wrapper .grise__hero-fv-text--right {
  right: 0.5%;
}
.box-wrapper .grise__hero-col {
  position: relative;
  grid-column: 2;
  width: 390px;
  justify-self: center;
}
@media screen and (max-width: 389px) {
  .box-wrapper .grise__hero-col,
  .box-wrapper .grise__col {
    zoom: calc(100vw / 390);
  }
}
.box-wrapper .grise__hero-sp {
  position: relative;
  width: 100%;
 
}

.box-wrapper .grise__hero-sp-top {
  position: relative;
  width: 100%;
  height: calc(326 * 1px);
  background: #fff;
}
.box-wrapper .grise__hero-sp-top img {
  position: absolute;
}
.box-wrapper .grise__hero-sp-top .dots {
  left: 50%;
  top: 0;
  width: 100vw;
  height: 100%;
  margin-left: -50vw;
  object-fit: cover;
}
.box-wrapper .grise__hero-sp-top .photo {
  left: calc(-19 * 1px);
  top: calc(20 * 1px);
  width: calc(428 * 1px);
  height: calc(285 * 1px);
  object-fit: cover;
}

.box-wrapper .grise__hero-sp-band {
  position: relative;
  width: 100%;
  height: calc(324 * 1px);
}
.box-wrapper .grise__hero-sp-band img.bg {
  position: absolute;
  left: 50%;
  top: 0;
  width: 100vw;
  height: 100%;
  margin-left: -50vw;
  object-fit: cover;
}

.box-wrapper .grise__hero-sp .decor {
  position: absolute;
  left: calc(10 * 1px);
  top: calc((326 + 20) * 1px);
  width: calc(380 * 1px);
  height: calc(285 * 1px);
  object-fit: cover;
  z-index: 2;
}
.box-wrapper .grise__title {
  font-family: "Hiragino Sans", sans-serif;
  font-weight: 600;
  font-size: calc(14 * 1px);
  text-align: center;
  margin: 59px 0 calc(19 * 1px) 0;
}
.box-wrapper .grise__desc {
  font-family: "Hiragino Sans", sans-serif;
  font-weight: 500;
  font-size: calc(10 * 1px);
  line-height: 1.8;
  text-align: center;
  width: calc(350 * 1px);
  margin: 0 auto;
}
.box-wrapper .grise__col {
  position: relative;
  width: 390px;
  margin: 0 auto;
}
.box-wrapper .stage {
  position: relative;
  width: 100%;
  height: calc(var(--h) * var(--k, 1) * 1px);
  margin-top: calc(var(--mt, 0) * var(--k, 1) * 1px);
}
.box-wrapper .ph {
  position: absolute;
  left: calc(var(--l, 0) * var(--k, 1) * 1px);
  top: calc(var(--t, 0) * var(--k, 1) * 1px);
  width: calc(var(--w) * var(--k, 1) * 1px);
  height: calc(var(--h) * var(--k, 1) * 1px);
}
/* SP表示(390〜749px)で、写真を切り抜かず縦横比を保ったまま画面幅いっぱいに拡大したいstage専用。
   --k倍率を子要素(.ph)すべてに継承させ、画像だけでなくキャプション等も含めて丸ごと拡大する */
@media screen and (min-width: 390px) and (max-width: 749px) {
  .box-wrapper .stage--bleed {
    --k: calc(100vw / var(--bleed-w, 390) / 1px);
    position: relative;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
  }
  /* サイズ・縦横比はそのまま、左端だけ実ビューポート端まで届かせる(look3のような片側フレーム画像用) */
  .box-wrapper .ph--bleed-left {
    margin-left: calc((390px - 100vw) / 2);
  }
}
.box-wrapper .crop {
  overflow: hidden;
}
.box-wrapper .crop img {
  position: absolute;
  max-width: none;
  display: block;
}
.box-wrapper .cover {
  overflow: hidden;
}
.box-wrapper .cover img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (min-width: 390px) and (max-width: 749px) {
  .box-wrapper .cover--bleed {
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
  }
}
.box-wrapper .cap {
  left: 50% !important;
  transform: translateX(-50%);
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-weight: 500;
  font-size: calc(18 * 1px);
  white-space: nowrap;
  width: auto !important;
}
.box-wrapper .cap_left {
  left: 65% !important;
}
.box-wrapper .desc-text {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: calc(11 * 1px);
  font-weight: 500;
  line-height: 1.8;
}
.box-wrapper .itemCredit {
  font-family: "Hiragino Sans", sans-serif;
  font-weight: 600;
  font-size: calc(10 * 1px);
  width: auto !important;
  left: auto;
  right: 20px;
}
.box-wrapper .itemCredit ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: calc(5 * 1px);
  white-space: nowrap;
}
.box-wrapper .itemCredit a {
  text-decoration: underline;
}
.box-wrapper .itemCredit .price {
  text-decoration: none;
}
.box-wrapper .deco6 {
  display: flex;
  flex-direction: column;
  gap: calc(34 * 1px);
  width: calc(331 * 1px);
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}
.box-wrapper .deco6__row {
  display: flex;
  align-items: center;
  gap: 20px;
}
.box-wrapper .deco6__row--top {
  gap: 20px;
}
.box-wrapper .deco6__circle {
  display: block;
  width: calc(136 * 1px);
  height: calc(136 * 1px);
}
.box-wrapper .deco6__boot {
  width: calc(175 * 1px);
}
.box-wrapper .deco6__boot img {
  display: block;
  width: 100%;
  height: auto;
}
.box-wrapper .grise__footer-circle {
  overflow: hidden;
  left: 50%;
  transform: translateX(-50%);
}
.box-wrapper .grise__footer-circle img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.box-wrapper .grise__shopinfo {
  display: flex;
  flex-direction: column;
  gap: calc(66 * 1px);
  font-size: calc(14 * 1px);
  font-family: "Yu Gothic Pr6N", "Yu Gothic", "Hiragino Sans", sans-serif;
  line-height: 1.8;
  color: #000;
  height: auto;
}
.box-wrapper .grise__shopinfo .shopinfo__group {
  display: flex;
  flex-direction: column;
}
.box-wrapper .grise__shopinfo .shopinfo__group--right {
  text-align: right;
  gap: calc(40 * 1px);
}
.box-wrapper .grise__shopinfo .shopinfo__limited {
  display: flex;
  flex-direction: column;
  gap: calc(5 * 1px);
}
.box-wrapper .grise__shopinfo .shopinfo__en {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: calc(28 * 1px);
  font-weight: 500;
  line-height: 1.8;
  white-space: nowrap;
  margin: 0;
}
.box-wrapper .grise__shopinfo .shopinfo__list {
  display: flex;
  flex-direction: column;
  gap: calc(5 * 1px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.box-wrapper .grise__shopinfo .shopinfo__links {
  display: flex;
  flex-direction: column;
  gap: calc(5 * 1px);
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: calc(24 * 1px);
  font-weight: 500;
}
.box-wrapper .grise__shopinfo .shopinfo__links a {
  text-decoration: underline;
}

/* ===== circleで始まる画像：右からのスライドイン（複数は時間差） ===== */
.box-wrapper .circle-slide {
  opacity: 0;
  transform: translateX(80px);
  transition: opacity 0.9s ease, transform 0.9s ease;
  transition-delay: calc(var(--circle-i, 0) * 0.18s);
  will-change: opacity, transform;
}
.box-wrapper .circle-slide.is-visible {
  opacity: 1;
  transform: translateX(0);
}
