.menu-section {
  width: 100vw;
  box-sizing: border-box;
}

.menu-container {
  width: 100%;
  margin: 0 auto;
  display: flex;
  gap: 40px;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0 0;
  box-sizing: border-box;
  margin-bottom: 60px;
}

.menu-container.reverse {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}

/* 共通設定 */
.image-left,
.image-right {
  position: relative;
  overflow: hidden;
}

/* 左画像の疑似要素 */
.image-left img {
  transform: scale(1.2);
  filter: blur(10px);
  opacity: 0;
  will-change: transform, filter, opacity;
  transition: transform 1.2s ease, filter 1.2s ease, opacity 1.2s ease;
}

.menu-container.is-show .image-left img {
  transform: scale(1);
  filter: blur(0);
  opacity: 1;
}

/* 左画像コンテナ */
.image-left-wrap {
  position: relative;
  width: 45%;
  max-width: 45%;
  margin-top: 140px;
  height: 580px;
}

.image-left {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  border-radius: 0;
}


.tag {
  position: absolute;
  top: 10px;
  right: -90px;
  z-index: 10;
  user-select: none;
  pointer-events: none;
}

.reverse .tag {
  right: auto;
  left: -90px;
  text-align: left;
}

/* テキスト */
.text-content {
    margin: 200px 0px 0px 0px;
    width: 29%;
    max-width: 29%;
}

/* 右画像の疑似要素 */
.image-right-wrap {
  position: relative;
  width: 10%;
  max-width: 10%;
  height: 516px;
}

.image-right-wrap::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: -15px;
  right: auto;
  width: 100%;
  height: 100%;
  background: #f0ebe5;
  z-index: 0;
  opacity: 0;
  border-radius: 50px 0 0 0;
  transition: opacity 1.2s ease;
  transition-delay: 0.6s;
}

.menu-container.is-show .image-right-wrap::after {
  opacity: 1;
}

.image-right-mask {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.image-right {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.image-right::before {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 0;
  z-index: 1;
  overflow: hidden;
  transform: scale(1.2);
  filter: blur(10px);
  opacity: 0;
  will-change: transform, filter, opacity;
  transition: transform 1.2s ease, filter 1.2s ease, opacity 1.2s ease;
}

.image-right.bg-01::before {
  background-image: url(../img/top/img_menu_01-02.jpg);
  background-position: 60% bottom;
  height: 115%;
}

.menu-container .image-right.bg-02::before {
  background-image: url(../img/top/img_menu_02-02.jpg);
  background-position: 60% top;
}

.menu-container .image-right.bg-03::before {
  background-image: url(../img/top/img_menu_03-02.jpg);
  height: 108%;
}

.menu-container .image-right.bg-04::before {
	background-image: url(../img/top/img_menu_04-02.jpg);
	height: 100%;
	background-position: right top;
}
/* is-show 時の変化 */
.menu-container.is-show .image-right::before {
  transform: scale(1);
  filter: blur(0);
  opacity: 1;
}



.reverse .image-right-wrap::after {
  left: auto;
  right: -15px;
  background: #f4f1ef;
  border-radius: 0 50px 0 0;
}

@media screen and (max-width: 768px) {
  .menu-container,
  .menu-container.reverse  {
    flex-direction: column;
    position: relative;
    margin-bottom: 100px;
  }
  .image-left-wrap {
    width: 71%;
    max-width: 71%;
    margin: 0 auto 0 0;
    height: auto;
  }
  .tag,
  .reverse .tag{
    right: auto;
    left: 10px;
    text-align: left;
  }
  .tag-num {
    font-size: 90px;
  }
  .menu-container .image-left .border-radius-rt-50px{
    border-radius: 50px 0 0 0;
  }
  .menu-container .image-right.border-radius-lt-50px,
  .menu-container .image-right.border-radius-rt-50px{
    border-radius: 0;
  }

  .text-content{
    width: 100%;
    max-width: 100%;
    padding: 0 30px;
    margin-top: 0;
  }

  .image-right-wrap{
    width: 25%;
    max-width: 25%;
    position: absolute;
    right: 10px;
    top: 0;
    aspect-ratio: 189 / 359;
    height: auto;
  }
  .image-right-wrap::after{
    left: auto;
    right: -10px;
  }
}

.menu-fullimg{
  width: 100%;
  overflow: hidden;
  aspect-ratio: 19 / 8;
  position: relative;
  margin: 13rem auto 0 auto;
}

.menu-fullimg img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

