@charset "utf-8";
/* CSS Document */

/*--------------------------------
共通
--------------------------------*/
:root {
  --hover-opacity: 0.6;
  --transition: .5s;
  --main-color: #E62686;
  --leading-trim: calc((1em - 1lh) / 2);
}

@supports not (top: 1lh) {
  :root {
    --leading-trim: 0px;
  }
}

html{
  font-size: 62.5%;
}

body{
	line-height: 1.3;
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', 'MS PGothic', sans-serif;
  letter-spacing: 0.05em;
}

img {
  max-width: 100%;
  height: auto;
}

#main {
  max-width: 500px;
  width: 100%;
  margin: 0 auto;
  opacity: 1;
  transition: 1s;
  position: relative;
  overflow: clip;
  background-color: #fff;
}

#main .u-image,
#main .image {
  width: 100%;
  height: auto;
}

.hero,
.main_visual,
.main_section,
.site-footer,
.footer{
  overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
  a img:hover{
    opacity: 0.8;
    transition: .3s;
  }

  .more_btn a:hover{
    opacity: 0.8;
    transition: .3s;
  }
}

.site-header .u-image,
.main_header .image {
  width: 100%;
  height: auto;
}

.site-header,
.main_header{
  width: 100%;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .site-header{
    display: none;
  }
}

.site-header__logo,
.header_logo{
  padding-block: 2%;
  padding-inline: 3%;
  margin-inline: 0 auto;
  width: 39%;
}

.site-header__happy,
.header_happy{
  border-top: 1px solid #000;
}

.content__inner {
  width: calc( 335 / 375 * 100% );
  margin-inline: auto;
}

.content__link-btn {
  margin-block-start: min(32px, calc(32 / 375 * 100%));
  text-align: center;
}

@media (hover: hover) and (pointer: fine) {
  .sale-bnr__link:hover{
    opacity: var(--hover-opacity);
    transition: var(--transition);
  }

  .page-nav__link:hover{
    opacity: var(--hover-opacity);
    transition: var(--transition);
  }
}

.tap-image {
  text-align: center;
  padding-bottom: 5%;
}

.tap-image.wh {
  color: #fff;
}

.tap-image span {
  position: relative;
  text-align: center;
  padding-right: 40px;
  display: inline-block;
  font-weight: bold;
  font-size: 1.5rem;
  margin-top: 20px;
}

.tap-image span::after {
  content: "";
  position: absolute;
  top: -10px;
  right: 0;
  background: url(../img/ico-arrow.png) no-repeat;
  background-size: contain;
  width: 35px;
  height: 38px;
}

.link-btn {
  display: block;
}

.link-btn img {
  width: 100%;
}

.area-wave img {
  width: 100%;
}

.area-wave.content_0 {
  background: #133569;
}
.area-wave.content_1 {
  background: #133569;
}

.area-wave.content_2 {
  background: #f6f6f0;
}

.area-wave.content_3 {
  background: #f6f6f0;
}

.area-wave.content_4 {
  background: #f6f6f0;
}

.area-wave.content_4_2 {
  background: #253354;
}

/* hero
--------------------------------*/
.hero {
  position: relative;
}

.hero__fade {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  pointer-events: none;
  width: 100%;
  height: 100%;
  background: #D56B1E;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 1;
  transition: opacity 2s ease;
}

.hero__fade img {
  max-width: min(310px, 82%);
  height: auto;
  opacity: 0;
  transition: opacity 2s ease;
}

/* flex bg sakura
--------------------------------*/
.sakura-bg,
.flex_bg{
  display: block;
  position: -webkit-fixed;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  margin: 0 auto;
  width: 100%;
  height: 100vh;
  background: url(../img/bg-flex.png);
  background-position: center center;
  background-size: 80px auto;
  background-repeat: repeat;
  -webkit-transform: translate3d(0,0,0);
  transform: translate3d(0,0,0);
  overflow: hidden;
}

.sakura-bg::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 90px;
  background-image: url('../img/bg-underline.png');
  background-repeat: repeat-x;
  background-position: left bottom;
}


.sakura-bg::after,
.flex_bg::after {
  position: absolute;
}

.sakura-bg__hanabi {
  position: absolute;
  top: clamp(40px, calc(24vh - max(0px, (900px - 100vh) * 0.25)), 170px);
  left: calc(50% - 400px);
  z-index: 0;
  width: auto;
  height: auto;
  max-width: none;
  transform-origin: center center;
  opacity: 0;
  pointer-events: none;
  animation: none;
}

.sakura-bg__hanabi--02 {
  top: clamp(-20px, calc(12vh - max(0px, (900px - 100vh) * 0.26)), 0px);
  left: calc(50% - 960px);
}

.sakura-bg__hanabi--03 {
  top: clamp(20px, calc(14vh - max(0px, (900px - 100vh) * 0.25)), 85px);
  left: calc(50% - 645px);
}

.sakura-bg__hanabi--04 {
  top: clamp(-80px, calc(16vh - max(0px, (900px - 100vh) * 0.24)), 0px);
  left: calc(50% + 310px);
}

.sakura-bg__hanabi--05 {
  top: clamp(60px, calc(20vh - max(0px, (900px - 100vh) * 0.23)), 150px);
  left: calc(50% + 560px);
  width: 130px;
}

.sakura-bg__hanabi--06 {
  top: clamp(-40px, calc(12vh - max(0px, (900px - 100vh) * 0.26)), 30px);
  left: calc(50% + 720px);
}

@keyframes hanabi-grow-blink {
  0% {
    transform: scale(0.2);
    opacity: 0;
  }
  11% {
    transform: scale(0.2);
    opacity: 0;
  }
  33% {
    transform: scale(1);
    opacity: 1;
  }
  34% {
    transform: scale(1.03);
    opacity: 1;
  }
  36% {
    transform: scale(1.03);
    opacity: 0.2;
  }
  38% {
    transform: scale(1.03);
    opacity: 1;
  }
  40% {
    transform: scale(1.03);
    opacity: 0.2;
  }
  42% {
    transform: scale(1.03);
    opacity: 1;
  }
  46% {
    transform: scale(1.05);
    opacity: 1;
  }
  48% {
    transform: scale(1.05);
    opacity: 0.2;
  }
  50% {
    transform: scale(1.05);
    opacity: 1;
  }
  52% {
    transform: scale(1.06);
    opacity: 0.18;
  }
  54% {
    transform: scale(1.06);
    opacity: 1;
  }
  56% {
    transform: scale(1.06);
    opacity: 0.22;
  }
  58% {
    transform: scale(1.07);
    opacity: 1;
  }
  60% {
    transform: scale(1.07);
    opacity: 0.16;
  }
  62% {
    transform: scale(1.07);
    opacity: 1;
  }
  64% {
    transform: scale(1.08);
    opacity: 0.22;
  }
  66% {
    transform: scale(1.08);
    opacity: 1;
  }
  68% {
    transform: scale(1.08);
    opacity: 0.18;
  }
  70% {
    transform: scale(1.08);
    opacity: 1;
  }
  100% {
    transform: scale(1.08);
    opacity: 1;
  }
}

.sakura-bg__container,
.sakura-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
}

.sakura-bg__petal,
.sakura {
  position: absolute;
  top: -20%;
  left: var(--sakura-left, 50%);
  width: var(--sakura-size, 20px);
  height: auto;
  opacity: 0.9;
  --sakura-drift: -20px;
  --sakura-rotation-direction: 1;
  animation: var(--sakura-anim, sakura-fall) var(--sakura-duration, 18s) linear infinite;
  animation-delay: var(--sakura-delay, 0s);
  animation-timing-function: var(--sakura-ease, linear);
}

@keyframes sakura-fall {
  0% {
    transform: translateY(0) translateX(var(--sakura-drift, 0px)) rotate(calc(0deg * var(--sakura-rotation-direction, 1)));
    opacity: 0;
  }
  10% {
    opacity: 0.9;
  }
  90% {
    opacity: 0.9;
  }
  100% {
    transform: translateY(110vh) translateX(calc(100px - 40vh + var(--sakura-drift, 0px))) rotate(calc(720deg * var(--sakura-rotation-direction, 1)));
    opacity: 0;
  }
}

/* 小さいジグザグ - 右に流れる */
@keyframes sakura-sway-1 {
  0%, 100% { transform: translateY(0) translateX(var(--sakura-drift, 0px)) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateY(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  25% { transform: translateY(20vh) translateX(calc(15px - 10vh + var(--sakura-drift, 0px))) scale(1.05) rotate(calc(90deg * var(--sakura-rotation-direction, 1))) rotateY(20deg); }
  50% { transform: translateY(50vh) translateX(calc(30px - 20vh + var(--sakura-drift, 0px))) scale(0.95) rotate(calc(180deg * var(--sakura-rotation-direction, 1))) rotateY(40deg); }
  75% { transform: translateY(80vh) translateX(calc(45px - 30vh + var(--sakura-drift, 0px))) scale(1.02) rotate(calc(270deg * var(--sakura-rotation-direction, 1))) rotateY(60deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(60px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(360deg * var(--sakura-rotation-direction, 1))) rotateY(80deg); opacity: 0; }
}

/* 大きいジグザグ - 左に流れる */
@keyframes sakura-sway-2 {
  0%, 100% { transform: translateY(0) translateX(var(--sakura-drift, 0px)) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateX(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  25% { transform: translateY(25vh) translateX(calc(-60px - 10vh + var(--sakura-drift, 0px))) scale(0.85) rotate(calc(120deg * var(--sakura-rotation-direction, 1))) rotateX(25deg); }
  50% { transform: translateY(55vh) translateX(calc(-30px - 20vh + var(--sakura-drift, 0px))) scale(1.15) rotate(calc(240deg * var(--sakura-rotation-direction, 1))) rotateX(50deg); }
  75% { transform: translateY(85vh) translateX(calc(-70px - 30vh + var(--sakura-drift, 0px))) scale(0.9) rotate(calc(360deg * var(--sakura-rotation-direction, 1))) rotateX(70deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(-50px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(480deg * var(--sakura-rotation-direction, 1))) rotateX(90deg); opacity: 0; }
}

/* 中くらいジグザグ - 中央付近で揺れる */
@keyframes sakura-sway-3 {
  0%, 100% { transform: translateY(0) translateX(var(--sakura-drift, 0px)) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateY(0deg) rotateX(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  25% { transform: translateY(22vh) translateX(calc(25px - 10vh + var(--sakura-drift, 0px))) scale(1.1) rotate(calc(60deg * var(--sakura-rotation-direction, 1))) rotateY(15deg) rotateX(10deg); }
  50% { transform: translateY(48vh) translateX(calc(-25px - 20vh + var(--sakura-drift, 0px))) scale(0.9) rotate(calc(120deg * var(--sakura-rotation-direction, 1))) rotateY(30deg) rotateX(20deg); }
  75% { transform: translateY(78vh) translateX(calc(20px - 30vh + var(--sakura-drift, 0px))) scale(1.05) rotate(calc(180deg * var(--sakura-rotation-direction, 1))) rotateY(45deg) rotateX(30deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(-10px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(240deg * var(--sakura-rotation-direction, 1))) rotateY(60deg) rotateX(40deg); opacity: 0; }
}

/* ほぼ直線 - 少しだけ右へ */
@keyframes sakura-sway-4 {
  0%, 100% { transform: translateY(0) translateX(var(--sakura-drift, 0px)) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateY(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  50% { transform: translateY(50vh) translateX(calc(20px - 20vh + var(--sakura-drift, 0px))) scale(1.1) rotate(calc(180deg * var(--sakura-rotation-direction, 1))) rotateY(40deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(35px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(360deg * var(--sakura-rotation-direction, 1))) rotateY(80deg); opacity: 0; }
}

/* ほぼ直線 - 少しだけ左へ */
@keyframes sakura-sway-5 {
  0%, 100% { transform: translateY(0) translateX(var(--sakura-drift, 0px)) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateX(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  50% { transform: translateY(50vh) translateX(calc(-15px - 20vh + var(--sakura-drift, 0px))) scale(0.9) rotate(calc(150deg * var(--sakura-rotation-direction, 1))) rotateX(30deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(-25px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(300deg * var(--sakura-rotation-direction, 1))) rotateX(60deg); opacity: 0; }
}

/* 激しいジグザグ - 大きく左右に振れる */
@keyframes sakura-sway-6 {
  0%, 100% { transform: translateY(0) translateX(var(--sakura-drift, 0px)) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateY(0deg) rotateX(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  20% { transform: translateY(15vh) translateX(calc(80px - 8vh + var(--sakura-drift, 0px))) scale(1.2) rotate(calc(144deg * var(--sakura-rotation-direction, 1))) rotateY(30deg) rotateX(15deg); }
  40% { transform: translateY(35vh) translateX(calc(-70px - 16vh + var(--sakura-drift, 0px))) scale(0.8) rotate(calc(288deg * var(--sakura-rotation-direction, 1))) rotateY(60deg) rotateX(30deg); }
  60% { transform: translateY(55vh) translateX(calc(90px - 24vh + var(--sakura-drift, 0px))) scale(1.15) rotate(calc(432deg * var(--sakura-rotation-direction, 1))) rotateY(90deg) rotateX(45deg); }
  80% { transform: translateY(75vh) translateX(calc(-60px - 32vh + var(--sakura-drift, 0px))) scale(0.85) rotate(calc(576deg * var(--sakura-rotation-direction, 1))) rotateY(120deg) rotateX(60deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(40px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(720deg * var(--sakura-rotation-direction, 1))) rotateY(160deg) rotateX(80deg); opacity: 0; }
}

/* 斜め右下へ流れる */
@keyframes sakura-sway-7 {
  0%, 100% { transform: translateY(0) translateX(calc(-30px + var(--sakura-drift, 0px))) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateY(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  25% { transform: translateY(20vh) translateX(calc(10px - 10vh + var(--sakura-drift, 0px))) scale(1.08) rotate(calc(80deg * var(--sakura-rotation-direction, 1))) rotateY(18deg); }
  50% { transform: translateY(50vh) translateX(calc(50px - 20vh + var(--sakura-drift, 0px))) scale(0.92) rotate(calc(160deg * var(--sakura-rotation-direction, 1))) rotateY(36deg); }
  75% { transform: translateY(80vh) translateX(calc(90px - 30vh + var(--sakura-drift, 0px))) scale(1.04) rotate(calc(240deg * var(--sakura-rotation-direction, 1))) rotateY(54deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(120px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(320deg * var(--sakura-rotation-direction, 1))) rotateY(72deg); opacity: 0; }
}

/* 斜め左下へ流れる */
@keyframes sakura-sway-8 {
  0%, 100% { transform: translateY(0) translateX(calc(40px + var(--sakura-drift, 0px))) scale(1) rotate(calc(0deg * var(--sakura-rotation-direction, 1))) rotateX(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  25% { transform: translateY(20vh) translateX(calc(10px - 10vh + var(--sakura-drift, 0px))) scale(0.9) rotate(calc(100deg * var(--sakura-rotation-direction, 1))) rotateX(22deg); }
  50% { transform: translateY(50vh) translateX(calc(-30px - 20vh + var(--sakura-drift, 0px))) scale(1.1) rotate(calc(200deg * var(--sakura-rotation-direction, 1))) rotateX(44deg); }
  75% { transform: translateY(80vh) translateX(calc(-70px - 30vh + var(--sakura-drift, 0px))) scale(0.95) rotate(calc(300deg * var(--sakura-rotation-direction, 1))) rotateX(66deg); }
  90% { opacity: 0.9; }
  100% { transform: translateY(110vh) translateX(calc(-100px - 40vh + var(--sakura-drift, 0px))) scale(1) rotate(calc(400deg * var(--sakura-rotation-direction, 1))) rotateX(88deg); opacity: 0; }
}

/* navigation
--------------------------------*/
.page-nav{
  padding-inline: min(30px, calc(30 / 375 * 100%));
  padding-block: min(40px, calc(40 / 375 * 100%)) min(48px, calc(48 / 375 * 100%));
  background: #fff;
  position: relative;
}

.page-nav__list{
  display: grid;
  grid-template-columns: 49% 49%;
  gap: 15px 2%;
  align-items: stretch;
}

.page-nav__item {
  list-style: none;
  height: 100%;
}

.page-nav__link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  padding-inline: 7.87% 12%;
  padding-block: 6%;
  background: #5EAC30;
  border-radius: 6px;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 3px 0 #478423;
  min-height: 70px;
  height: 100%;
}

.check_first .page-nav__link {
  background: #253354;
  box-shadow: 0 3px 0 #121C34;
}

.check_second .page-nav__link {
  background: #B28E3E;
  box-shadow: 0 3px 0 #90702A;
}

.check_third .page-nav__link {
  background: #104F42;
  box-shadow: 0 3px 0 #053E32;
}

.check_forth .page-nav__link {
  background: #772929;
  box-shadow: 0 3px 0 #622121;
}

.page-nav__label {
  display: block;
  width: 100%;
  font-size: 0.9rem;
  font-weight: bold;
  color: #d2e388;
}

.page-nav__title {
  display: block;
  margin-block-start: min(3px, calc(3 / 165 * 100%));
  font-size: 1.1rem;
  font-weight: bold;
  line-height: 1.28;
}

.page-nav__link::after {
  content: "";
  position: absolute;
  right: min(10px, calc(10 / 165 * 100%));
  top: 50%;
  width: 9px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

.page-nav__scroll-line {
  position: absolute;
  right: 0;
  left: 0;
  height: min(48px, calc(48 / 375 * 100%));
  width: 1px;
  background-color: #8E572E;
  margin-inline: auto;
  margin-block-start: min(28px, calc(28 / 375 * 100%));
  animation: bg 2.5s cubic-bezier(0.42, 0, 0.58, 1) infinite;
  transform: scaleY(0);
}

@keyframes bg {
  0% {
    transform: scaleY(0);
    transform-origin: top;
  }
  50% {
    transform: scaleY(1);
    transform-origin: top;
  }
  51% {
    transform: scaleY(1);
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
  }
}


@media screen and (max-width: 360px) {
  /* .page-nav {
    padding-inline: 12px;
  }

  .page-nav__link {
    padding: 14px 14px 18px;
    min-height: 96px;
  }

  .page-nav__title {
    font-size: 1.1rem;
  } */
}


/* content__discription
--------------------------------*/
.content__discription-text {
  text-align: center;
  margin-block-end: min(32px, calc(32 / 375 * 100%));
}

.content__discription-sub-text {
  font-size: 1.4rem;
  line-height: 2;
  padding-block-end: min(15px, calc(15 / 375 * 100%));
  margin-block-end: min(35px, calc(35 / 375 * 100%));
  text-align: center;
}

/* .content__discription-sub-text {
  background-image: url(../img/bg-sub_description_left.png), url(../img/bg-sub_description_right.png);
  background-repeat: no-repeat, no-repeat;
  background-position: left top, right top;
  background-size: contain, contain;
} */

/* content__timeline
--------------------------------*/
.content__timeline {
  padding-block: min(65px, calc(65 / 375 * 100%)) min(48px, calc(48 / 375 * 100%));
  background: url(../img/bg-timeline_top.png), #FFFCD8;
  background-repeat: no-repeat;
  background-size: contain;
}

.content__timeline-image {
  text-align: center;
}

/* content__shop
--------------------------------*/
.content__shop {
  padding-block: min(60px, calc(60 / 375 * 100%));
}

.content__shop-title {
  text-align: center;
}

.content__shop-list {
  margin-block-start: min(24px, calc(24 / 375 * 100%));
}

.content__shop-item {
  list-style: none;
}

.content__shop-item:not(:first-child) {
  margin-block-start: min(16px, calc(16 / 375 * 100%));
}

.shop-card {
  position: relative;
  background: #fff;
  border: 2px solid #f17cb8;
  border-radius: 5px;
  padding: min(16px, calc(16 / 335 * 100%));
  box-shadow: 0 3px 5px rgba(0,0,0,0.1);
}

.renewal .shop-card {
  border: 2px solid #8FC31F;
}

.shop-card__tag {
  position: absolute;
  top: 0;
  left: 0;
  background: #f06aa9;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.05em;
  font-size: 1.6rem;
  padding: min(8px, calc(8 / 335 * 100%)) min(15px, calc(15 / 335 * 100%)) min(10px, calc(10 / 335 * 100%));
  border-radius: 5px 5px 0 0;
  min-width: 125px;
  width: 100%;
  text-align: center;
}

.renewal .shop-card__tag {
  background: #8FC31F;
}

.shop-card__logo {
  padding-block: min(40px, 15%);
  padding-inline: min(8px, calc(8 / 335 * 100%));
  width: 100%;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.shop-card__logo img {
  width: 100%;
  height: auto;
}

.shop-card__body {
  /* display: grid;
  grid-template-columns: 48% 48%;
  gap: 4%; */
  align-items: start;
  margin-block-start: min(8px, calc(8 / 335 * 100%));
}

.shop-card__media img {
  width: 100%;
  /* border-radius: 4px; */
}

.shop-card__detail {
  display: grid;
  gap: 10px;
}

.shop-card__open {
  font-size: 1.4rem;
  font-weight: bold;
  padding-block: min(40px, 15%);
  padding-inline: min(8px, calc(8 / 335 * 100%));
  width: 100%;
  margin-inline: auto;
  padding: 0;
  }

.shop-card__text {
  font-size: 1.2rem;
  line-height: 1.55;
  margin-block-start: min(8px, calc(8 / 335 * 100%));
  text-align: left;
}

.shop-card__footer {
  display: flex;
  align-items: center;
  gap: min(10px, calc(10 / 335 * 100%));
  margin-block-start: min(10px, calc(10 / 335 * 100%));
}

.shop-card__floor {
  background: #111;
  color: #fff;
  font-weight: bold;
  font-size: 1.4rem;
  padding: min(5px, calc(5 / 335 * 100%)) min(12px, calc(12 / 335 * 100%));
  border-radius: 2px;
  min-width: 50px;
  text-align: center;
}

.shop-card__name {
  font-size: 1.4rem;
  font-weight: bold;
}

/* swiper shop logo (equal speed) */
.shoplogo-swiper .swiper-wrapper {
  transition-timing-function: linear !important;
}

.content__shop-swqiper {
  margin-block-start: min(25px, calc(25 / 375 * 100%));
}
.shop-card__wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-items: start;
  margin-top: min(8%,30px);
}
.shop-card__logo,
.shop-card__open_wrapper {
  display: flex;
  align-items: center; 
  justify-content: center;
  height: 100%;
}
/* content__featuredevent
--------------------------------*/
.content__featuredevent {
  padding-block: min(60px, calc(60 / 375 * 100%));
  background: transparent linear-gradient(180deg, #FFFFFF 0%, #F0FFFB 15%, #F0FBFF 84%, #FFFFFF 100%) 0% 0% no-repeat padding-box;
}

.content__featuredevent-title {
  text-align: center;
}

.content__featuredevent-list {
  margin-block-start: min(24px, calc(24 / 375 * 100%));
}

.content__featuredevent-item {
  list-style: none;
}

.content__featuredevent-item:not(:first-child) {
  margin-block-start: min(16px, calc(16 / 375 * 100%));
}

.featuredevent-card {
  position: relative;
  background: #fff;
  border: 2px solid #5EAC30;
  border-radius: 10px;
  /* padding: min(16px, calc(16 / 335 * 100%)); */
  padding: 0;
  padding-bottom: 30px;
  box-shadow: 0 3px 5px rgba(0,0,0,0.1);
}

.renewal .featuredevent-card {
  border: 2px solid #8FC31F;
}

.featuredevent-card__tag {
  position: absolute;
  top: 0;
  left: 0;
  background: #f06aa9;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.05em;
  font-size: 1.6rem;
  padding: min(8px, calc(8 / 335 * 100%)) min(15px, calc(15 / 335 * 100%)) min(10px, calc(10 / 335 * 100%));
  border-radius: 3px 0 0 0;
  min-width: 125px;
  text-align: center;
}

.renewal .featuredevent-card__tag {
  background: #8FC31F;
}

.featuredevent-card__logo {
  padding: min(8px, calc(8 / 335 * 100%));
  width: 50%;
  margin-inline-start: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.featuredevent-card__logo img {
  max-width: 100%;
  width: 100%;
  height: auto;
}

.featuredevent-card__body {
  display: block;
  grid-template-columns: 48% 48%;
  gap: 4%;
  align-items: start;
  /* margin-block-start: min(8px, calc(8 / 335 * 100%)); */
  margin-block-start: 0;
}

.featuredevent-card__media img {
  width: 100%;
  border-radius: 10px 10px 0 0;
}

.featuredevent-card__detail {
  /* display: grid;
  gap: 10px; */
  margin: 30px;
  margin-block: 20px;
  color: #5EAC30;
}

.featuredevent-card__open {
  font-size: 1.6rem;
  font-weight: bold;
}

.featuredevent-card__text {
  font-size: 1.2rem;
  line-height: 1.55;
  margin-block-start: min(8px, calc(8 / 335 * 100%));
}

.featuredevent-card__footer {
  display: flex;
  align-items: baseline;
  gap: min(10px, calc(10 / 335 * 100%));
  /* margin-block-start: min(10px, calc(10 / 335 * 100%)); */
  margin: 30px;
  margin-block: 10px 0;
}

.featuredevent-card__floor {
  background: #111;
  color: #fff;
  font-weight: bold;
  font-size: 1.4rem;
  padding: min(5px, calc(5 / 335 * 100%)) min(12px, calc(12 / 335 * 100%));
  border-radius: 2px;
  min-width: 50px;
  text-align: center;
}

.featuredevent-card__name {
  font-size: 1.4rem;
  /* font-weight: bold; */
}

.featuredevent-card_text {
  margin: 20px 30px 0;
}

/* swiper featuredevent logo (equal speed) */
.featuredeventlogo-swiper .swiper-wrapper {
  transition-timing-function: linear !important;
}

.content__featuredevent-swqiper {
  margin-block-start: min(25px, calc(25 / 375 * 100%));
}

/* content__event
--------------------------------*/
.content__event {
  padding-block: 0;
}

.content__event .tap-image span {
  color: #B21524;
}

.content__event .content__area {
  padding-bottom: 0;
  background: #141414;
}

.content__event-title {
  padding-top: 7%;
  text-align: center;
}

.content__event .content__event-title {
  width: 83.5%;
  margin-inline: auto;
}

.content__event-list {
  margin-block-start: min(24px, calc(24 / 375 * 100%));
  text-align: center;
}

.content__event-item {
  list-style: none;
}

.content__event-item:not(:first-child) {
  margin-block-start: min(16px, calc(16 / 375 * 100%));
}

.content__event-swiper {
  padding-bottom: 30px;
  width: 100%;
  max-width: 600px; /* カード幅制限 */
  margin: 0 auto;
  overflow: visible;
}

.content__event-swiper .swiper-slide {
  height: auto;
  transition: transform 0.3s;
  transform: translateY(20px);
}

.content__event-swiper .swiper-slide-active {
  transform: translateY(0);
}

.content__event-card {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  height: 100%;
}

.content__event .content__event-card {
  box-shadow: 0 2px 30px rgba(255, 255, 255, 0.05);
  background: none;
}

.content__event-card-border {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  height: 100%;
}

.content__event-card-image {
  width: 100%;
  position: relative;
  overflow: hidden;
}

.content__event-card-image img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
  transition: transform 0.3s
}

@media (hover: hover) and (pointer: fine) {
  .content__event-card-image a:hover img{
    transform: scale(1.03);
  }
}

.content__event-card-body {
  padding-block: min(16px, calc(16 / 295 * 100%)) min(36px, calc(36 / 295 * 100%));
  padding-inline: min(28px, calc(28 / 295 * 100%));
  text-align: left;
}

.content__event-card-title {
  color: #506C23;
  font-weight: bold;
  font-size: 1.6rem;
  line-height: calc(20/16);
  margin-block-end: min(16px, calc(16 / 223 * 100%));
}

.content__event .content__event-card-title {
  color: #B72B23;
  font-weight: bold;
  font-size: 1.6rem;
  line-height: 1.25;
  margin-block-end: min(16px, calc(16 / 223 * 100%));
}

.content__popupshop .content__event-card-detail {
  font-size: 1.3rem;
  line-height: 1.5;
  color: #333;
  max-height: 400px;
  scrollbar-width: thin;
  overflow-y: scroll;
}

.content__event .content__event-card-detail {
  color: #fff;
}

.content__event .content__event-card-detail dd {
  font-size: 1.6rem;
}

.content__event-card-row {
  display: flex;
  align-items: baseline;
  margin-bottom: 8px;
}

.content__event-card-row:last-child {
  margin-bottom: 0;
}

.content__event-card-row dt {
  background-color: #000;
  color: #fff;
  font-weight: bold;
  padding-inline: min(8px, calc(8 / 223 * 100%));
  padding-block: min(4px, calc(4 / 223 * 100%)) min(5px, calc(8 / 223 * 100%));
  border-radius: 2px;
  margin-inline-end:  min(8px, calc(8 / 223 * 100%));
  white-space: nowrap;
  font-size: 1.4rem;
  line-height: 1.4;
  min-width: 3.5em;
  text-align: center;
}

.content__event .content__event-card-row dt {
  background-color: #B21524;
  color: #141414;
}

.content__event .content__event-card-row__body {
  font-size: 1.2rem;
}

.content__event-card-row dd {
  flex: 1;
}

.content__event-swiper .swiper-button-prev,
.content__event-swiper .swiper-button-next {
  color: #fff;
  background: #000000;
  opacity: 0.5;
  width: 40px;
  height: 40px;
  top: min(210px, 38vw);
  border-radius: 5px;
}

.content__event-swiper .swiper-button-prev::after,
.content__event-swiper .swiper-button-next::after {
  font-size: 20px;
  font-weight: bold;
}

/* 共通設定：背景画像のベースとサイズ指定 */
.content__event-swiper .swiper-button-prev,
.content__event-swiper .swiper-button-next {
  width: 40px;
  height: 40px;
  top: clamp(250px, 78vw, 400px);
  background-color: transparent;
  background-size: contain; 
  background-repeat: no-repeat;
  background-position: center;
  opacity: .7; 
}

.content__event-swiper .swiper-button-prev::after,
.content__event-swiper .swiper-button-next::after {
  display: none;
}

.content__event-swiper .swiper-button-prev {
  background-image: url('../img/left-side.png');
}

.content__event-swiper .swiper-button-next {
  background-image: url('../img/right-side.png'); 
}

.content__event-swiper .swiper-pagination-bullet-active {
  background: #E62686;
}

.content__event__description {
  font-size: 1.2rem;
  margin-top: 5px;
  width: 87%;
  margin-inline: auto;
  line-height: 1.6;
}

.content__event__link-btn_outer {
  width: 87%;
  margin-inline: auto;
  margin-top: 8%;
}



/* content__benefits
--------------------------------*/
.content__benefits {
  padding-block: 4%;
  background: #fff;
  background-size: 100%;
}

.content__benefits-title {
  text-align: center;
}

.content__benefits-sub-title {
  display: block;
  margin-block-start: min(10px, calc(10 / 375 * 100%));
  font-size: 1.3rem;
  font-weight: bold;
}

.shoplogo_list {
  width: 91%;
  margin-inline: auto;

}

.content__benefits-list {
  margin-block-start: min(24px, calc(24 / 375 * 100%));
  text-align: left;
}

.content__benefits-item {
  list-style: none;
}

.content__benefits-item:not(:first-child) {
  margin-block-start: min(16px, calc(16 / 375 * 100%));
}

/* Benefits Swiper Styles */
.content__benefits-swiper {
  padding-bottom: 30px;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  overflow: visible;
}

.content__benefits-swiper .swiper-slide {
  height: auto;
  transition: transform 0.3s;
  transform: translateY(20px);
}

.content__benefits-swiper .swiper-slide-active {
  transform: translateY(0);
}

.content__benefits-card {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.content__benefits-card-image {
  width: 100%;
  position: relative;
}

.content__benefits-card-image img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

.content__benefits-card-body {
  padding-block: min(16px, calc(16 / 295 * 100%)) min(36px, calc(36 / 295 * 100%));
  padding-inline: min(28px, calc(28 / 295 * 100%));
  text-align: left;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.content__benefits-card-text {
  font-size: 1.2rem;
  line-height: 1.5;
  color: #333;
  margin-block-end: min(5px, calc(5 / 375 * 100%));
}

.content__benefits-card-off {
  color: #EB6EA5;
  font-weight: bold;
  font-size: 1.6rem;
  line-height: 1.2;
  margin-block-end: min(8px, calc(8 / 375 * 100%));
}

.content__benefits-card-note {
  font-size: 1.0rem;
  line-height: 1.5;
  color: #333;
  text-align: left;
  width: 100%;
}

.content__benefits-card-note:nth-of-type(n + 2) {
  margin-block-start: min(8px, calc(8 / 375 * 100%));
}

.content__benefits-swiper .swiper-button-prev,
.content__benefits-swiper .swiper-button-next {
  color: #fff;
  background: #000000;
  opacity: 0.5;
  width: 40px;
  height: 40px;
  top: min(210px, 38vw);
  border-radius: 5px;
}

.content__benefits-swiper .swiper-button-prev::after,
.content__benefits-swiper .swiper-button-next::after {
  font-size: 20px;
  font-weight: bold;
}

/* content__access
--------------------------------*/
.content__access {
  padding-block: 0;
  background-size: 100%;
}

.content__access .content__area {
  padding-block: 5%;
  background-color: #253354;
}

.content__access-title {
  text-align: center;
}

.content__access-map {
  margin-block-start: min(24px, calc(24 / 375 * 100%));
}

.contents__googlemap {
  aspect-ratio: 335 / 170;
  width: 100%;
  height: auto;
  margin-inline: auto;
  background-color: #f6f6f6;
  /* border-radius: 10px; */
}

.content__access .content__link-btn a {
  width: 88%;
  margin-inline: auto;
  margin-block: 0 5%;
  display: block;
}

.content__access .link-btn_outer a {
  width: 88%;
  margin-inline: auto;
  margin-block: 0 5%;
  display: block;
}

/* content__webflyer
--------------------------------*/
.content__webflyer {
  padding-block: min(60px, calc(60 / 375 * 100%));
  text-align: center;
}

.content__webflyer .content__link-btn {
  margin-block-start: min(57px, calc(57 / 375 * 100%));
}


/* =============================================
   SP Header & Hamburger Menu
============================================= */
.sp-header {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}

.sp-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 0 0 15px;
  max-width: 500px;
  margin: 0 auto;
  background: #fff;
  height: 60px;
}

.sp-header__logo img {
  height: 36px;
  width: auto;
}

.sp-header__hamburger {
  width: 60px;
  height: 100%;
  background: #133569;
  border: none;
  border-radius: 0;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  padding: 10px;
}

.sp-header__hamburger-line {
  display: block;
  width: 20px;
  height: 2px;
  background: #fff;
  transition: 0.3s;
}

.sp-header__hamburger.is-active .sp-header__hamburger-line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.sp-header__hamburger.is-active .sp-header__hamburger-line:nth-child(2) {
  opacity: 0;
}

.sp-header__hamburger.is-active .sp-header__hamburger-line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* SP Menu */
.sp-menu {
  display: none;
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  z-index: 999;
  background: #fff;
  max-height: calc(100vh - 60px);
  overflow-y: auto;
  transform: translateY(-100%);
  opacity: 0;
  transition: transform 0.3s, opacity 0.3s;
  max-width: 500px;
  margin: 0 auto;
  border-radius: 0 0 10px 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.sp-menu.is-open {
  transform: translateY(0);
  opacity: 1;
}

.sp-menu__inner {
  padding: 20px 30px 30px;
}

.sp-menu__title {
  text-align: left;
  margin-bottom: 20px;
  width: 60%;
}

.sp-menu__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-menu__item {
  border-bottom: 1px solid #eee;
}

.sp-menu__item:last-child {
  border-bottom: none;
}

.sp-menu__link {
  display: block;
  padding: 15px 10px;
  color: #133569;
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.4;
  position: relative;
  padding-left: 20px;
}

.sp-menu__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #133569;
  border-right: 2px solid #133569;
  transform: translateY(-50%) rotate(45deg);
}

.sp-menu__overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.5);
  z-index: 998;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.sp-menu__overlay.is-open {
  opacity: 1;
  visibility: visible;
}

/* =============================================
   PC Fixed Navigation
============================================= */
.pc-nav__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.4);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.pc-nav__overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.pc-fixed-nav {
  position: fixed;
  bottom: 30px;
  right: 10px;
  z-index: 1000;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s, visibility 0.3s;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 40px;
}

.pc-fixed-nav > :nth-child(3) {
  margin-top: -20px;
}

.pc-fixed-nav.is-visible {
  opacity: 1;
  visibility: visible;
}

.pc-nav {
  position: relative;
  display: none;
}

.pc-nav__toggle {
  display: flex;
  align-items: center;
  gap: 20px;
  background: #478423;
  border: none;
  width: 100%;
  border-radius: 6px 0 0 6px;
  cursor: pointer;
  padding-inline: 18px 20px;
  padding-block: 15px;
  transition: 0.3s;
}

@media (hover: hover) and (pointer: fine) {
  .pc-nav__toggle:hover {
    opacity: 0.9;
  }
}

.pc-nav__toggle.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.pc-nav__toggle-icon {
  display: block;
  width: 22px;
  height: 16px;
  position: relative;
  border-top: 2px solid #fff;
  border-bottom: 2px solid #fff;
}

.pc-nav__toggle-icon::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.pc-nav__toggle-text {
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  letter-spacing: 0.1em;
}

.pc-nav__menu {
  position: absolute;
  bottom: 0;
  right: 0;
  background: #478423;
  border-radius: 5px 0 0 5px;
  padding: 19px 21px 25px 73px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  opacity: 0;
  visibility: hidden;
  transform: scaleX(0.3) scaleY(0.5);
  transform-origin: right bottom;
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s, min-width 0.3s;
}

.pc-nav__menu.is-open {
  opacity: 1;
  visibility: visible;
  transform: scaleX(1) scaleY(1);
  min-width: 450px;
}

.pc-nav__close {
  position: absolute;
  top: -40px;
  right: 0;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 36px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (hover: hover) and (pointer: fine) {
 .pc-nav__close:hover {
    opacity: 0.8;
  }
}


.pc-nav__title {
  font-size: 2.2rem;
  font-weight: bold;
  color: #fff;
  text-align: right;
  margin-bottom: 15px;
  letter-spacing: 0.1em;
}

.pc-nav__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 20px;
}

.pc-nav__item {
  position: relative;
}

.pc-nav__link {
  display: block;
  color: #fff;
  text-decoration: none;
  font-size: 1.5rem;
  font-weight: bold;
  padding: 5px 0;
  padding-left: 20px;
  transition: 0.3s;
  white-space: nowrap;
}

.pc-nav__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(135deg);
}

@media (hover: hover) and (pointer: fine) {
  .pc-nav__link:hover {
    opacity: 0.7;
  }
}

/* PC TOP Button */
.pc-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin-inline: auto;
}

.pc-top__text {
  font-size: 1.5rem;
  font-weight: bold;
  color: #B28E3E;
}

.pc-top__btn {
  width: 90px;
  height: 90px;
  background: #B28E3E;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  transition: 0.3s;
}

.pc-top__btn_noborder {
  border: none;
}

@media (hover: hover) and (pointer: fine) {
  .pc-top__btn:hover {
    transform: scale(1.05);
  }
}

.pc-top__icon {
  display: block;
  width: 15px;
  height: 15px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: rotate(-45deg);
  margin-top: 6px;
}

/* =============================================
   Responsive
============================================= */
@media screen and (max-width: 767px) {
  .sakura-bg__hanabi {
    display: none;
  }

  .sp-header {
    display: block;
  }

  .sp-menu {
    display: block;
  }

  .sp-menu__overlay {
    display: block;
  }

  .pc-fixed-nav {
    display: flex;
    right: 10px;
  }
  .pc-fixed-nav > * {
    display: none;
  }
  .pc-fixed-nav > :nth-child(3) {
    display: block;
  }

  #main {
    padding-top: 60px;
  }
}

@media screen and (min-width: 768px) {
  .sp-header {
    display: none;
  }

  .sp-menu {
    display: none;
  }

  .sp-menu__overlay {
    display: none;
  }

  .pc-fixed-nav {
    display: flex;
  }
}

/*-----------------------
footer
-------------------------*/
footer .inner {
  position: relative;
}

footer .inner {
  padding: 0;
  overflow: visible;
}

#footerInfo {
  background: #eee;
  padding: 15px 10px 0;
  color: #333;
}
#footerInfo .infoWrap {
  float: none;
  font-size: 11px;
  padding-bottom: 15px;
}
#footerInfo .address {
  float: none;
  margin-left: 0;
  margin-bottom: 0;
}
#footerInfo .address + p {
  margin-top: 15px;
}
#footerInfo .phoneTxt {
  color: #333;
}

#copyright {
  position: relative;
  margin: 0 -10px;
  text-align: center;
  color: #fff;
  right: 0;
  bottom: 0;
  font-size: 11px;
  background: #333;
  padding: 10px 0;
  margin-bottom: 7%;
}

.site-footer__address {
  line-height: 1.5;
  padding-block-end: min(10px, calc(10 / 375 * 100%));
}
/* page_top */

.page_top_btn {
  display: none;
}


/*  limited_event */

.limited_event_text {
  font-size: 1.2rem;
  line-height: 1.6;
}



/* フロートボタン */
.float_btn_area {
  opacity: 0;
  position: sticky;
  bottom: 0;
  z-index: 100;
  transition: all 1s;
  box-shadow: 0px -2px 8px #0000001A;
  border-radius: 0;
  background-color: #fff;
}

.float_btn_list {
  display: flex;
  justify-content: center;
  flex-wrap: nowrap;
  padding: 0;
  box-sizing: border-box;
  height: 69px;
}

.float_btn_list li {
  width: 25%;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.float_btn_list .search_area li {
  width: 100%;
  margin-bottom: 13px;
}



.float_btn_list li img {
  width: auto;
}

.float_btn_list li .search_ico img {
  height: 72px;
}

.float_btn_list li.float_search {
  position: relative;
  margin-top: -6%;
  align-items: flex-start;
}

#wrapper img#float_btn3 {
  position: relative;
  z-index: 900;
}

#wrapper #float_btn3_off {
  position: relative;
  z-index: 900;
}

/* 検索エリア */
.search_area {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100dvh;
	text-align: center;
	background: rgba(0,0,0,0%);
	overflow: auto;
	opacity: 1;
	visibility: hidden;
	transition: 0.7s;
  box-sizing: border-box;
}
/*擬似要素の指定*/
.search_area:before{
	content: "";
	display: inline-block;
	vertical-align: middle;
}
/*「active」クラス付与した時のスタイル*/
.float_search.active .search_area {
	opacity: 1;
  background: rgba(0,0,0,50%);
	visibility: visible;
}
.search_area_outer {
  position: fixed;
  top: 0; bottom: 0;
  left: 0; right: 0;
  max-width: 500px;
  transform: scale(1);
  overflow: hidden;
  margin: 0 auto;

}
.search_area_inner {
  position: fixed;
  width: 200vh;
  height: 200vh;
  background: #fff;
  box-shadow: inset 0 15px 0 0 #CBD8C6;
  border-radius: 50%;
  left: 50%;
  top: 0;
  transform-origin: center calc(100vh - 10vh - 4.776119402%);
  transition: transform 700ms cubic-bezier(0.645, 0.045, 0.355, 1);
  transform: translateX(-50%) scale(0.01);
}

.float_search.active .search_area_inner {
  top: calc(-480px + 100dvh) !important;
  transition: transform 700ms cubic-bezier(0.645, 0.045, 0.355, 1);
  transform: translateX(-50%) scale(1);
}

.search_ttl {
  width: 67.733333333vw;
  padding-top: 30px !important;
  margin: 0 auto 22px;
  transition: all 1s;
}
.category_nav {
  width: 100vw;
  max-width: 350px;
  padding: 0 20px;
  margin: 0 auto;
  box-sizing: border-box;
  text-align: left;
}
.category_ttl {
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
  margin: 15px 0 6px;
}
.category_item {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 500;
  color: #fff;
  border: 1px solid #FFFFFF;
  border-radius: 4px;
  padding: 5px 11px;
  margin-bottom: 8px;
  margin-right: 10px;
}
.category_item.active {
  color: #ED870F;
  background-color: #fff;
}

.close_txt {
  width: 100%;
  color: #fff;
  text-align: center;
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: 110;
}
#wrapper .close_txt img {
  position: absolute;
  width: 122.857142857%;
  bottom: 0;
}
#wrapper img#search_text {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
#in_modal {
  display: none;
}
#wrapper img#float_btn3_on {
  display: none;
  position: relative;
  z-index: 900;
}

.no_info {
  display: none;
  text-align: center;
  font-size: 1.8rem;
  margin-top: 11px;
}
.remove_filter_outer {
  width: 100vw;
  max-width: 750px;
  position: relative;
  bottom: 0;
  box-sizing: border-box;
  margin: 0 auto;
}
.remove_filter {
  width: 30.133333333%;
  max-width: 133px;
  position: absolute;
  left: 20px;
}



/* -------------------------------- */
/* 台湾 */
/* -------------------------------- */

.content__taiwan{
  /* margin-top: 6%; */
}

.content__taiwan .content__inner {
  width: 100%;
}

.content__taiwan .content__taiwan__item {
  padding-block-start: min(16px, calc(16 / 335 * 100%));
}

.content__taiwan.check01 {
  background: #253354;
}

.content__taiwan.check02 {
  background: #FFFCF7;
}

.content__taiwan.check02 .content__inner{
  background: #F6F6F0;
}

.content__taiwan.check02 .content__featuredevent-title{
  padding-block-start: min(32px, calc(32 / 335 * 100%));
}

.content__taiwan.check03 {
  background: #104F42;
}

.content__taiwan.check03 .content__featuredevent-title{
  padding-block-start: min(40px, calc(40 / 335 * 100%));
  background: #104F42;
}

.content__taiwan.check03 .content__taiwan__item {
  padding-block-end: min(32px, calc(32 / 335 * 100%));
}

.content__taiwan .content__taiwan__item li {
  margin-inline: auto;
  width: calc(335 / 375 * 100%);
  padding-bottom: 2%;
}

.content__taiwan .content__taiwan__item dl {
  display: grid;
  grid-template-columns: 1fr 5fr;
  gap: 10px;
  margin-block: 5%;
}

.content__taiwan .content__taiwan__item dl dt {
  text-align: center;
  background: #B28E3E;
  color: #fff;
  font-weight: bold;
  padding: 4px;
  border-radius: 3px;
  margin-inline-end: min(8px, calc(8 / 335 * 100%));
  white-space: nowrap;
  font-size: 1.6rem;
  line-height: 1.4;
  max-height: 2em;
}

.content__taiwan.check03 .content__taiwan__item dl dt {
  background: #B28E3E;
}

.content__taiwan .content__taiwan__item dl dd {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #fff;
}

.content__taiwan .content__taiwan__description {
  font-size: 1.2rem;
  line-height: 1.6;
  color: #fff;
}

#check02 dd,
#check02 .content__taiwan__description {
  color: #000;
}

.content__taiwan__description a {
  border-bottom: 1px solid #fff;
}
#check02 .content__taiwan__description a {
  border-bottom: 1px solid #000;
}
.content__taiwan__description a:hover {
  opacity: .7;
  border-bottom: none;
}
#check02 .content__taiwan__description a:hover {
  opacity: .7;
  border-bottom: none;
}


/* -------------------------------- */
/* POPUP SHOP */
/* -------------------------------- */
.content__popupshop {
  position: relative;
  padding-block: 0 4%;
  background: #FFFCF7;
}

.content__popupshop .content__event-title {
  padding-block-start: 0;
}

.content__popupshop .btn_outer {
  position: absolute;
  top: -70px;
}

.content__popupshop .btn_outer a {
  width: 90%;
  margin-inline: auto;
  display: block;
}


/* winter */
.symphony_wrapper {
  background-color: #133569;
}

.market_title {
  font-size: 1.6rem;
  font-weight: bold;
  color: #B28E3E;
}

.min-font {
  font-size: 1.2rem;
}

.link-btn_ttl {
  margin-block: 40px 20px;
}

.link-btn_sc {
  margin-block: 20px 20px;
  text-align: center;

}

.link-btn_sc img{
  width: 80%;
}

.content__taiwan__item_ul {
  margin-bottom: 40px;
}

.content__event-title {
  margin-top: 20px;
}

.original-story_ttl {
  margin-block: clamp(20px, calc(40 / 1440 * 100vw), 40px) clamp(10px, calc(20 / 1440 * 100vw), 20px);
}

.original-story_wrapper {
  position: relative;
  width: 90%;
  margin-inline: auto;
  margin-bottom: clamp(20px, calc(40 / 1440 * 100vw), 40px);
  aspect-ratio: 16 / 9;
}

.original-story_wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.link-btn_notes {
  width: 90%;
  margin-inline: auto;
  margin-block: clamp(60px, calc(80 / 1440 * 100vw), 80px) clamp(20px, calc(40 / 1440 * 100vw), 40px);
  font-size: 1.2rem;
  line-height: 1.6;
}