/*====================================
  リセット・ベーススタイル
====================================*/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  overflow-x: hidden;
  width: 100%;
}

body {
  font-family: "Helvetica Neue", Arial, sans-serif;
  background: #f9fafe;
  color: #333;
  max-width: 1920px;
  margin: 0 auto;
  position: relative;
  overflow-x: hidden;
  width: 100%;
}

/*====================================
  共通レイアウト
====================================*/

/* モバイルヘッダー
-----------------*/
.mobile-header {
  display: none;
  background: #f9fafe;
  padding: 0 20px 0 0;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  max-width: 1920px;
  margin: 0 auto;
  z-index: 10001;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  justify-content: space-between;
  align-items: center;
}

.mobile-logo {
  width: 250px;
}

.mobile-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hamburger {
  width: 30px;
  height: 24px;
  position: relative;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: #d0d0d0;
  transition: all 0.3s;
}

.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(8px, 8px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(8px, -8px);
}

.mobile-menu {
  display: none;
  position: fixed;
  top: 64px;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(249, 250, 254, 0.98);
  z-index: 10000;
  padding: 40px 20px;
  overflow-y: auto;
  max-width: 1920px;
  margin: 0 auto;
}

.mobile-menu.active {
  display: block;
}

.mobile-menu ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
}

.mobile-menu a {
  text-decoration: none;
  color: #fd93f0;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
  transition: color 0.3s;
}

.mobile-menu a:hover {
  color: #924e8a;
}

/* Mobile Menu Logo */
.mobile-menu-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  /* margin-top: 50px; */
  padding-top: 30px;
}

.mobile-menu-logo img {
  width: 80px;
  height: 80px;
  object-fit: contain;
}

/* Mobile Menu TEL */
.mobile-menu-tel {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px 0;
}

.mobile-menu-tel a {
  color: #333;
  font-size: 24px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 2px;
  transition: all 0.3s ease;
  padding: 12px 30px;
  border: 2px solid #e0e0e0;
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.mobile-menu-tel a:hover {
  color: #fff;
  border-color: #ff69b4;
  background: #ff69b4;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(255, 105, 180, 0.3);
}

/* Mobile Menu Social Icons */
.mobile-menu-social {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  /* margin-top: 30px; */
  padding-top: 20px;
}

.mobile-menu-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid #e0e0e0;
  transition: all 0.3s;
}

.mobile-menu-social a:hover {
  background: #f0f0f0;
  border-color: #d0d0d0;
}

.mobile-menu-social svg {
  width: 20px;
  height: 20px;
  fill: #d0d0d0;
  transition: fill 0.3s;
}

.mobile-menu-social a:hover svg {
  fill: #303030;
}

/* ナビゲーション
-----------------*/
nav {
  background: #f9fafe;
  padding: 0;
  text-align: center;
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  overflow-x: hidden;
  transition: all 0.3s ease;
}

/* 固定ナビゲーション */
nav.nav-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(249, 250, 254, 0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  max-width: 1920px;
  margin: 0 auto;
  height: 81px;
}

nav.nav-fixed a {
  color: #606060;
}

nav.nav-fixed a:hover {
  color: #303030;
}

nav.nav-fixed .nav-slide-text.nav-reset .nav-front {
  /* color: #606060; */
}

nav.nav-fixed .nav-slide-text.nav-reset .nav-incoming {
  /* color: #606060; */
}

nav.nav-fixed .nav-slide-text.nav-hover .nav-incoming {
  color: #303030;
}

nav ul {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
  align-items: center;
}

nav li {
  position: relative;
  padding: 0 30px;
  display: flex;
  align-items: center;
}

nav a {
  text-decoration: none;
  color: #fd93f0;
  font-size: 14px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
  transition: color 0.3s;
  white-space: nowrap;
  position: relative;
  display: inline-block;
  overflow: hidden;
  line-height: 1;
}

nav a:hover {
  color: #924e8a;
}

/* ナビゲーションスライドエフェクト */
.nav-slide-text .nav-front {
  display: inline-block;
  transform: translateY(0);
  transition: transform 0.5s ease;
  will-change: transform;
}

.nav-slide-text .nav-incoming {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: inline-block;
  transform: translateY(-100%);
  transition: transform 0.5s ease;
  will-change: transform;
}

.nav-slide-text.nav-hover .nav-front {
  transform: translateY(100%);
}

.nav-slide-text.nav-hover .nav-incoming {
  transform: translateY(0%);
  color: #303030;
}

.nav-slide-text.nav-reset .nav-front {
  transform: translateY(0);
  /* color: #d0d0d0; */
}

.nav-slide-text.nav-reset .nav-incoming {
  transform: translateY(-100%);
  /* color: #d0d0d0; */
}

.nav-slide-text.nav-no-anim .nav-front,
.nav-slide-text.nav-no-anim .nav-incoming {
  transition: none !important;
}

/* フッター
-----------------*/
footer {
  background: #f9fafe;
  padding: 80px 20px 40px;
  text-align: center;
  max-width: 100%;
  overflow-x: hidden;
}

.footer-logo {
  /* margin-bottom: 30px; */
}

.footer-logo img {
  max-width: 300px;
  height: auto;
  display: block;
  margin: 0 auto;
}

.footer-social {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-bottom: 50px;
}

.footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid #e0e0e0;
  transition: all 0.3s;
}

.footer-social a:hover {
  background: #f0f0f0;
  border-color: #d0d0d0;
}

.footer-social svg {
  width: 18px;
  height: 18px;
  fill: #d0d0d0;
  transition: fill 0.3s;
}

.footer-social a:hover svg {
  fill: #303030;
}

.footer-nav {
  margin: 0 0 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
}

.footer-nav a {
  padding: 0 20px;
  text-decoration: none;
  color: #fd93f0;
  font-size: 11px;
  letter-spacing: 1.5px;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
  text-transform: uppercase;
  border-right: 1px solid #e8e8e8;
  line-height: 14px;
  display: flex;
  align-items: center;
  transition: color 0.3s;
  position: relative;
  overflow: hidden;
}

.footer-nav a:hover {
  color: #924e8a;
}

/* フッターナビゲーションスライドエフェクト */
.footer-slide-text .footer-front {
  display: inline-block;
  transform: translateY(0);
  transition: transform 0.5s ease;
  will-change: transform;
}

.footer-slide-text .footer-incoming {
  position: absolute;
  left: 20px;
  top: 0;
  display: inline-block;
  transform: translateY(-100%);
  transition: transform 0.5s ease;
  will-change: transform;
}

.footer-slide-text.footer-hover .footer-front {
  transform: translateY(100%);
}

.footer-slide-text.footer-hover .footer-incoming {
  transform: translateY(0%);
  color: #303030;
}

.footer-slide-text.footer-reset .footer-front {
  transform: translateY(0);
  /* color: #d0d0d0; */
}

.footer-slide-text.footer-reset .footer-incoming {
  transform: translateY(-100%);
  /* color: #d0d0d0; */
}

.footer-slide-text.footer-no-anim .footer-front,
.footer-slide-text.footer-no-anim .footer-incoming {
  transition: none !important;
}

.footer-nav a:last-child {
  border-right: none;
}

.footer-copyright {
  font-size: 10px;
  color: #d5d5d5;
  letter-spacing: 1px;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
}

/*====================================
  背景エフェクト(全ページ共通)
====================================*/

/* 3D背景ギャラリー
-----------------*/
.background-gallery-3d {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
  perspective: 1500px;
}

.bg-gallery-image {
  position: absolute;
  border-radius: 10px;
  object-fit: cover;
  opacity: 0;
  animation: float-rotate 20s ease-in-out infinite;
}

/* フラッシュバック登場アニメーション */
@keyframes flashback-appear {
  0% {
    opacity: 0;
    transform: translateZ(-1000px) scale(0.3);
  }
  50% {
    opacity: 0.5;
  }
  100% {
    opacity: var(--final-opacity);
    transform: translateZ(var(--final-z)) rotateX(var(--final-rx))
      rotateY(var(--final-ry)) rotateZ(var(--final-rz));
  }
}

/* フラッシュバック退場アニメーション（逆再生・高速） */
@keyframes flashback-disappear {
  0% {
    opacity: var(--final-opacity);
    transform: translateZ(var(--final-z)) rotateX(var(--final-rx))
      rotateY(var(--final-ry)) rotateZ(var(--final-rz));
  }
  40% {
    opacity: 0.4;
  }
  100% {
    opacity: 0;
    transform: translateZ(-1000px) scale(0.3);
  }
}

/* 浮遊アニメーション */
@keyframes float-rotate {
  0%,
  100% {
    transform: translateZ(var(--final-z)) rotateX(var(--final-rx))
      rotateY(var(--final-ry)) rotateZ(var(--final-rz)) translateY(0);
  }
  25% {
    transform: translateZ(calc(var(--final-z) + 30px))
      rotateX(calc(var(--final-rx) + 5deg))
      rotateY(calc(var(--final-ry) + 10deg))
      rotateZ(calc(var(--final-rz) + 3deg)) translateY(-20px);
  }
  50% {
    transform: translateZ(calc(var(--final-z) + 50px))
      rotateX(calc(var(--final-rx) - 3deg))
      rotateY(calc(var(--final-ry) - 8deg))
      rotateZ(calc(var(--final-rz) - 2deg)) translateY(-10px);
  }
  75% {
    transform: translateZ(calc(var(--final-z) + 20px))
      rotateX(calc(var(--final-rx) + 4deg))
      rotateY(calc(var(--final-ry) - 12deg))
      rotateZ(calc(var(--final-rz) + 4deg)) translateY(-30px);
  }
}

/* パーティクルエフェクト
-----------------*/
.particles-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.8) 0%,
    rgba(200, 200, 220, 0.4) 50%,
    transparent 100%
  );
  border-radius: 50%;
  opacity: 0;
  animation: sparkle 3s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.6);
}

@keyframes sparkle {
  0% {
    opacity: 0;
    transform: translateY(0) scale(0);
  }
  50% {
    opacity: 1;
    transform: translateY(-30px) scale(1.2);
  }
  100% {
    opacity: 0;
    transform: translateY(-60px) scale(0);
  }
}

/*====================================
  トップページ(top.php)
====================================*/

/* トップギャラリー
-----------------*/
.top-gallery {
  width: 100%;
  overflow: hidden;
  background: #f9fafe;
  padding: 24px 0 10px 0;
  position: relative;
  min-height: 434px;
}

.gallery-container {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  animation: galleryFade 20s ease-in-out infinite;
  z-index: 0;
}

.gallery-track {
  display: flex;
  gap: 8px;
  animation: scroll 60s linear infinite;
  padding-top: 24px;
}

.gallery-track img {
  width: 280px;
  height: 400px;
  object-fit: cover;
  border-radius: 20px;
  flex-shrink: 0;
}

.gallery-logo {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  animation: logoFade 20s ease-in-out infinite;
}

.gallery-logo-text {
  width: 200px;
  height: 200px;
}

.gallery-logo-text img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@keyframes galleryFade {
  0%,
  25% {
    opacity: 1;
    visibility: visible;
  }
  30%,
  45% {
    opacity: 0;
    visibility: hidden;
  }
  50%,
  100% {
    opacity: 1;
    visibility: visible;
  }
}

@keyframes logoFade {
  0%,
  25% {
    opacity: 0;
    visibility: hidden;
  }
  30%,
  45% {
    opacity: 1;
    visibility: visible;
  }
  50%,
  100% {
    opacity: 0;
    visibility: hidden;
  }
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-2024px);
  }
}

/* Tracking In Expand Animation */
@keyframes trackingInExpand {
  0% {
    letter-spacing: -0.5em;
    opacity: 0;
  }
  40% {
    opacity: 0.6;
  }
  100% {
    letter-spacing: 2px;
    opacity: 1;
  }
}

.tracking-in {
  /* 初期状態：非表示・文字が重なっている */
  letter-spacing: -0.5em;
  opacity: 0;
}

.tracking-in.animated {
  /* スクロールで表示されたら文字が広がる */
  animation: trackingInExpand 1.2s cubic-bezier(0.215, 0.61, 0.355, 1) both;
}

/* バナーセクション
-----------------*/
/* 1920×1080pxの画像・動画も自動的に768×432pxに縮小表示されます */
.banner-section {
  text-align: center;
  padding: 0 20px 60px;
  background: #f9fafe;
  overflow: visible;
  max-width: 100%;
}

.banner-slider {
  max-width: 768px;
  margin: 0 auto;
  overflow: visible;
  position: relative;
}

.banner-track {
  display: flex;
  gap: 20px;
  animation: bannerSlideLoop 18s ease-in-out infinite; /* 3枚対応：18s */
  transform: translateX(-788px);
}

.banner-box {
  width: 768px;
  height: 432px;
  background: #e8e8e8;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
  border: 1px solid #f5f5f5;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #ccc;
  letter-spacing: 3px;
}

/* バナー画像・動画: 1920×1080pxでも自動的に768×432pxに縮小 */
.banner-track img,
.banner-track video {
  width: 768px;
  height: 432px;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
  flex-shrink: 0;
  object-fit: cover; /* 大きい画像も自動縮小 */
  object-position: center;
  display: block;
}

@keyframes bannerSlideLoop {
  0%,
  27.78% {
    /* 5秒 / 18秒 = 27.78% */
    transform: translateX(-788px); /* バナー1 */
  }
  33.33%,
  61.11% {
    /* スライド後、5秒停止 */
    transform: translateX(-1576px); /* バナー2 */
  }
  66.67%,
  94.44% {
    /* スライド後、5秒停止 */
    transform: translateX(-2364px); /* バナー3 */
  }
  100% {
    transform: translateX(
      -3152px
    ); /* ループ用バナー1へ移動後、瞬時に最初に戻る */
  }
}

/* ニュースセクション
-----------------*/
.news-section {
  text-align: center;
  padding: 80px 20px;
  background: transparent;
  max-width: 100%;
  overflow-x: hidden;
  position: relative;
  z-index: 10;
}

.news-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  margin-bottom: 50px;
  font-family: "Times New Roman", Times, serif;
}

.news-list {
  max-width: 1044px;
  margin: 0 auto;
}

.news-item {
  display: flex;
  align-items: flex-start;
  padding: 16px 6px;
  margin: 12px 0;
  background: transparent;
  border-bottom: 1px solid #e8e8e8;
  width: 100%;
}

.news-item:last-child {
  border-bottom: none;
}

.news-date {
  background: #b5b5b5;
  color: white;
  padding: 0;
  border-radius: 15px;
  font-size: 13px;
  margin-right: 15px;
  margin-top: 2px;
  white-space: nowrap;
  font-weight: 400;
  font-family: "Times New Roman", Times, serif;
  letter-spacing: 2px;
  width: 87px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.news-item:nth-child(even) .news-date {
  background: #e8b4c8;
  color: white;
}

.news-text {
  color: #6e6e6e;
  font-size: 15px;
  text-align: left;
  letter-spacing: 0.5px;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
  flex: 1;
  line-height: 1.6;
}

.news-text-date {
  font-size: 12px;
  margin-right: 8px;
  color: #6e6e6e;
}

/* ピックアップセクション
-----------------*/
.pickup-section {
  text-align: center;
  padding: 80px 20px;
  background: #f9fafe;
  max-width: 100%;
  overflow-x: hidden;
}

.pickup-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  margin-bottom: 80px;
  font-family: "Times New Roman", Times, serif;
}

.pickup-grid {
  display: flex;
  justify-content: center;
  gap: 22px;
  flex-wrap: nowrap;
  max-width: 900px;
  margin: 0 auto;
}

.pickup-item {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  cursor: pointer;
}

/* 画像コンテナ */
.pickup-image-container {
  position: relative;
  width: 282px;
  height: 282px;
  margin-bottom: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f9fafe;
  overflow: visible; /* タグを外側に表示するため */
}

/* 回転する円のアニメーション用の疑似要素（背景） */
.pickup-image-container::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(#ff9ff3, #00d2d3, #ff9ff3);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 0;
}

/* ホバー時に回転する円を表示 */
.pickup-item:hover .pickup-image-container::before {
  opacity: 1;
  animation: rotate-circle 5s linear infinite;
}

/* 回転アニメーション */
@keyframes rotate-circle {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* 画像本体（シャドウ削除） */
.pickup-item .pickup-image-container > img:not(.newface-tag) {
  width: 278px;
  height: 278px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  position: relative;
  z-index: 1;
  overflow: hidden; /* 画像を円形にクリッピング */
}

/* 新規タグ */
.newface-tag {
  position: absolute;
  top: -45px; /* -35px - 10px = -45px */
  left: 10px;
  width: 150px;
  height: 150px;
  border-radius: 0;
  z-index: 3;
  opacity: 0;
  animation: bounceIn 1s ease-out forwards;
  animation-play-state: paused; /* 初期状態では一時停止 */
}

/* タグ表示後の状態 */
.newface-tag.animated {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* ホバー時のバウンスアニメーション */
.pickup-item:hover .newface-tag.animated {
  animation: bounceHover 0.6s ease-out forwards;
}

/* ホバーから離れた時にアニメーションを即座に停止 */
.pickup-item .newface-tag.animated {
  animation: none;
}

/* バウンスアニメーション（初期表示用） */
@keyframes bounceIn {
  0% {
    opacity: 0;
    transform: scale(0.3) translateY(-50px);
  }
  50% {
    opacity: 1;
    transform: scale(1.05) translateY(0);
  }
  70% {
    transform: scale(0.9) translateY(-10px);
  }
  85% {
    transform: scale(1.02) translateY(0);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* バウンスアニメーション（ホバー用） */
@keyframes bounceHover {
  0% {
    transform: scale(1) translateY(0);
  }
  25% {
    transform: scale(1.1) translateY(-15px);
  }
  50% {
    transform: scale(0.95) translateY(0);
  }
  75% {
    transform: scale(1.03) translateY(-5px);
  }
  100% {
    transform: scale(1) translateY(0);
  }
}

/* Name表示エリア */
.pickup-name {
  color: #c5c5c5;
  font-size: 32px;
  letter-spacing: 2px;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.4s ease;
}

/* ホバー時にnameをふわっと表示 */
.pickup-item:hover .pickup-name {
  opacity: 1;
  transform: translateY(0);
}

/* スケジュールセクション
-----------------*/
.schedule-section {
  text-align: center;
  padding: 80px 20px 100px;
  background: #f9fafe;
  max-width: 100%;
  overflow-x: hidden;
}

.schedule-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  margin-bottom: 80px;
  font-family: "Times New Roman", Times, serif;
}

.schedule-grid {
  display: grid;
  grid-template-columns: repeat(4, 253px);
  gap: 15px;
  max-width: 1057px;
  margin: 0 auto;
  justify-content: center;
}

.schedule-card {
  background: #b5b5b5;
  border-radius: 6px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  width: 253px;
  height: 500px;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(50px);
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
  /* 背景画像対応 */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
  z-index: 10;
}

.schedule-card:nth-child(8n + 2),
.schedule-card:nth-child(8n + 4),
.schedule-card:nth-child(8n + 5),
.schedule-card:nth-child(8n + 7) {
  background: #e8b4c8;
}

/* 背景画像を使う場合のクラス（オプション） */
.schedule-card.has-bg-image {
  background-color: transparent;
}

/* 背景画像使用時は単色背景を無効化 */
.schedule-card.has-bg-image:nth-child(8n + 2),
.schedule-card.has-bg-image:nth-child(8n + 4),
.schedule-card.has-bg-image:nth-child(8n + 5),
.schedule-card.has-bg-image:nth-child(8n + 7) {
  background-color: transparent;
}

/* パララックスフェードイン表示 */
.schedule-card.fade-in {
  opacity: 1;
  transform: translateY(0);
}

.schedule-card-image {
  width: 253px;
  height: 360px;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.schedule-card img,
.schedule-card video {
  width: 253px;
  height: 360px;
  object-fit: cover;
  display: block;
}

/* スケジュールカード用動画スタイル */
.schedule-video {
  width: 253px;
  height: 360px;
  object-fit: cover;
  display: block;
}

.schedule-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(255, 255, 255, 0.95);
  padding: 0;
  border-radius: 15px;
  font-size: 13px;
  color: #6e6e6e;
  font-weight: 400;
  letter-spacing: 0;
  font-family: "Times New Roman", Times, serif;
  z-index: 10;
  width: 70px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  animation: badgeBlink 3s ease-in-out infinite;
}

@keyframes badgeBlink {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}

.schedule-info {
  flex: 1;
  padding: 12px 15px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  gap: 4px;
}

.schedule-time {
  font-size: 17px;
  color: #ffffff;
  letter-spacing: 0.5px;
  font-weight: 400;
  font-family: "Times New Roman", Times, serif;
  margin-bottom: 0;
  line-height: 1;
}

.schedule-name {
  font-size: 20px;
  color: #ffffff;
  margin-bottom: 0;
  padding: 0;
  font-weight: 400;
  font-family: "Times New Roman", Times, serif;
  line-height: 1;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.schedule-name.marquee {
  text-overflow: clip;
}

.schedule-name.marquee .marquee-inner {
  display: inline-block;
  animation: marqueeScroll 10s linear infinite;
  padding-right: 2em;
}

@keyframes marqueeScroll {
  0% { transform: translateX(0); }
  50% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.schedule-age-line {
  font-size: 13px;
  color: #ffffff;
  letter-spacing: 0.5px;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
  line-height: 1;
  margin-bottom: 0;
}

.schedule-measurements {
  font-size: 13px;
  color: #ffffff;
  letter-spacing: 0.5px;
  font-weight: 300;
  font-family: "Times New Roman", Times, serif;
  line-height: 1;
}

.schedule-mode {
  font-size: 14px;
  color: #ffffff;
  letter-spacing: 0.5px;
  font-weight: 400;
  font-family: "Times New Roman", Times, serif;
  line-height: 1;
  margin-bottom: 0;
  min-height: 14px;
}

.schedule-mode.no-mode {
  visibility: hidden;
}

/* イベントセクション
-----------------*/
.event-section {
  text-align: center;
  padding: 60px 20px;
  background: #f9fafe;
  max-width: 100%;
}

.event-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  margin-bottom: 60px;
  font-family: "Times New Roman", Times, serif;
}

.event-item {
  max-width: 800px;
  margin: 0 auto 80px;
  opacity: 0;
  transform: translateX(0);
}

/* 1つ目（:nth-child(2)）はそのままセンターに表示 */
.event-item:nth-child(2) {
  opacity: 1;
  transform: translateX(0);
}

/* 2つ目（:nth-child(3)）は右からスライド */
.event-item:nth-child(3) {
  transform: translateX(100%);
}

/* 3つ目（:nth-child(4)）は左からスライド */
.event-item:nth-child(4) {
  transform: translateX(-100%);
}

/* 4つ目（:nth-child(5)）は右からスライド */
.event-item:nth-child(5) {
  transform: translateX(100%);
}

/* 5つ目（:nth-child(6)）は左からスライド */
.event-item:nth-child(6) {
  transform: translateX(-100%);
}

/* アニメーション適用後 */
.event-item.slide-in {
  opacity: 1;
  transform: translateX(0) !important;
  transition: all 0.5s ease-out;
}

.event-banner {
  width: 100%;
  max-width: 768px;
  margin: 0 auto 30px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
}

.event-banner video,
.event-banner img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.event-description {
  text-align: left;
  padding: 0 20px;
}

.event-title {
  font-size: 24px;
  font-weight: 400;
  color: #303030;
  margin-bottom: 20px;
  letter-spacing: 1px;
  font-family: "Times New Roman", Times, serif;
}

.event-text {
  font-size: 15px;
  line-height: 1.8;
  color: #666;
  margin-bottom: 15px;
  text-align: justify;
}

.event-date {
  font-size: 14px;
  color: #999;
  font-style: italic;
  margin-top: 20px;
}

/* Event Pager */
.event-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 20px auto 0;
  max-width: 800px;
}

.pager-num,
.pager-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border: 1px solid #d0d0d0;
  border-radius: 4px;
  background: #fff;
  color: #6e6e6e;
  font-size: 14px;
  font-family: "Times New Roman", Times, serif;
  letter-spacing: 0.5px;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s ease;
}

.pager-num:hover,
.pager-btn:hover {
  background: #6e6e6e;
  color: #fff;
  border-color: #6e6e6e;
}

.pager-num.active {
  background: #303030;
  color: #fff;
  border-color: #303030;
  cursor: default;
}

.pager-btn {
  font-size: 20px;
  font-weight: 300;
}

.pager-btn.disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}

.pager-dots {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 40px;
  color: #999;
  font-size: 14px;
  font-family: "Times New Roman", Times, serif;
  letter-spacing: 2px;
}

@media (max-width: 768px) {
  .event-pager {
    gap: 4px;
  }

  .pager-num,
  .pager-btn {
    min-width: 36px;
    height: 36px;
    font-size: 13px;
  }

  .pager-btn {
    font-size: 18px;
  }
}

/* Event Page - Static Logo */
.page-event .top-gallery .gallery-logo {
  opacity: 1;
  animation: none;
}

.page-event .top-gallery .gallery-container {
  display: none;
}

/* Event Page - Background */
.page-event {
  background: #f9fafe;
  min-height: 100vh;
}

.page-event .top-gallery,
.page-event .event-section,
.page-event footer {
  background: transparent;
}

.page-event nav {
  background: #f9fafe;
}

.page-event nav.nav-fixed {
  background: rgba(249, 250, 254, 0.9);
}

/*====================================
  下層ページ共通
====================================*/

/* トップギャラリーエリア(カードアニメーション)
-----------------*/
/* トランプカード配置アニメーション */
.card-deal-container {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.deal-card {
  position: absolute;
  width: 224px;
  height: 320px;
  opacity: 1;
  top: 0;
  transform: translate(0, 434px);
  transition: none;
  cursor: grab;
  user-select: none;
}

.deal-card.dragging {
  cursor: grabbing;
}

.deal-card.rotating {
  cursor: grabbing;
}

.deal-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

/* カード1：-12度傾き */
.deal-card[data-card="1"] {
  left: calc(50% - 766px);
  animation: dealCard1 1.4s ease-out 0.6s forwards;
}

/* カード2：+8度傾き */
.deal-card[data-card="2"] {
  left: calc(50% - 552px);
  animation: dealCard2 1.0s ease-out 0.5s forwards;
}

/* カード3：-10度傾き */
.deal-card[data-card="3"] {
  left: calc(50% - 338px);
  animation: dealCard3 1.5s ease-out 0.1s forwards;
}

/* カード4：-8度傾き */
.deal-card[data-card="4"] {
  left: calc(50% + 90px);
  animation: dealCard4 1.6s ease-out 0.1s forwards;
}

/* カード5：+12度傾き */
.deal-card[data-card="5"] {
  left: calc(50% + 304px);
  animation: dealCard5 0.9s ease-out 0.5s forwards;
}

/* カード6：-6度傾き */
.deal-card[data-card="6"] {
  left: calc(50% + 518px);
  animation: dealCard6 1.3s ease-out 0.7s forwards;
}

@keyframes dealCard1 {
  0% {
    transform: translate(0, 434px) rotate(0deg);
  }

  100% {
    transform: translate(0, 47px) rotate(-12deg);
  }
}

@keyframes dealCard2 {
  0% {
    transform: translate(0, 434px) rotate(0deg);
  }

  100% {
    transform: translate(0, 57px) rotate(8deg);
  }
}

@keyframes dealCard3 {
  0% {
    transform: translate(0, 434px) rotate(0deg);
  }

  100% {
    transform: translate(0, 52px) rotate(-10deg);
  }
}

@keyframes dealCard4 {
  0% {
    transform: translate(0, 434px) rotate(0deg);
  }

  100% {
    transform: translate(0, 42px) rotate(5deg);
  }
}

@keyframes dealCard5 {
  0% {
    transform: translate(0, 434px) rotate(0deg);
  }

  100% {
    transform: translate(0, 55px) rotate(-8deg);
  }
}

@keyframes dealCard6 {
  0% {
    transform: translate(0, 434px) rotate(0deg);
  }

  100% {
    transform: translate(0, 40px) rotate(12deg);
  }
}

/* VIPロゴアニメーション */
.event-gallery-logo {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  z-index: 9999;
  animation: eventLogoFadeIn 1s ease-out 2.0s forwards;
  pointer-events: none;
}

.event-gallery-logo-text {
  font-size: 80px;
  letter-spacing: 8px;
  color: #f9fafe;
  font-weight: 300;
  font-family: 'Times New Roman', Times, serif;
  text-align: center;
}

@keyframes eventLogoFadeIn {
  0% {
    opacity: 0;
    transform: translateY(434px);
  }

  100% {
    opacity: 1;
    transform: translateY(217px);
  }
}

/*====================================
  SCHEDULEページ(schedule.php)
====================================*/

/* スケジュール日付トグル
-----------------*/
.schedule-day-toggle-container {
  display: flex;
  justify-content: center;
  margin-bottom: 60px;
}

.schedule-day-toggle {
  position: relative;
  display: flex;
  background: #e8e8e8;
  border-radius: 25px;
  padding: 4px;
  width: 900px;
  height: 50px;
}

.day-option {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.5px;
  color: #999;
  cursor: pointer;
  z-index: 2;
  transition: color 0.3s ease;
  font-family: 'Times New Roman', Times, serif;
  white-space: nowrap;
  min-width: 0;
}

.day-option.active {
  color: #fff;
}

.day-slider {
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc((100% - 8px) / 7);
  height: calc(100% - 8px);
  background: linear-gradient(135deg, #b5b5b5 0%, #d0d0d0 100%);
  border-radius: 21px;
  transition: transform 0.3s ease, background 0.3s ease;
  z-index: 1;
}

/* スケジュールカードアニメーション
-----------------*/
@keyframes logoBounce {
  0% {
    opacity: 0 !important;
    transform: scale(0.3);
  }

  50% {
    opacity: 1 !important;
    transform: scale(1.1);
  }

  65% {
    opacity: 1 !important;
    transform: scale(0.9);
  }

  80% {
    opacity: 1 !important;
    transform: scale(1.05);
  }

  95% {
    opacity: 1 !important;
    transform: scale(0.95);
  }

  100% {
    opacity: 0 !important;
    transform: scale(1);
  }
}

.page-schedule .hexagon-container {
  display: flex;
  flex-direction: column;
  position: relative;
  margin-top: 100px;
  z-index: 1;
}

.page-schedule .hexagon-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  position: relative;
}

/* 2列目を半分ずらして1列目の上部に配置 */
.page-schedule .hexagon-row:nth-child(2) {
  position: absolute;
  top: -87.5px;
  /* 六角形の高さの約76%上に配置 */
  left: 50.5px;
  /* 六角形の幅の半分 + 0.5px */
}

/* 3列目（2セット目の1列目） */
.page-schedule .hexagon-row:nth-child(3) {
  position: absolute;
  top: -175px;
  /* 1列目の-87.5px × 2 */
  left: 0;
}

/* 4列目（2セット目の2列目） */
.page-schedule .hexagon-row:nth-child(4) {
  position: absolute;
  top: -262.5px;
  /* 2列目の-87.5px × 3 */
  left: 50.5px;
  /* 六角形の幅の半分 + 0.5px */
}

/* 5列目（下部1列目） */
.page-schedule .hexagon-row:nth-child(5) {
  position: absolute;
  top: 87.5px;
  /* 1列目の下に87.5px */
  left: 50.5px;
  /* 六角形の幅の半分 + 0.5px */
}

/* 6列目（下部2列目） */
.page-schedule .hexagon-row:nth-child(6) {
  position: absolute;
  top: 175px;
  /* さらに下に87.5px */
  left: 0;
}

.page-schedule .hexagon {
  width: 100px;
  height: 115.47px;
  background: #f9fafe;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  box-sizing: border-box;
  flex-shrink: 0;
  transform-origin: center center;
  will-change: transform;
  transform: scale(1.15);
}

/* 波紋アニメーション（逆転：拡大状態から縮小） */
@keyframes hexagonRipple {
  0% {
    transform: scale(1.15);
  }

  50% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.15);
  }
}

/* 光のラインアニメーション（カード1用） */
.schedule-card.glowing-border {
  position: relative;
}

.schedule-card.glowing-border svg {
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  pointer-events: none;
  z-index: 10;
}

@keyframes glowingDotMove {
  0% {
    stroke-dashoffset: 0;
    opacity: 0;
  }

  2.5% {
    opacity: 1;
  }

  22.5% {
    opacity: 1;
  }

  25% {
    stroke-dashoffset: -1500;
    opacity: 0;
  }

  25.01%,
  100% {
    stroke-dashoffset: 0;
    opacity: 0;
  }
}

/* 光のボーダー点滅アニメーション（カード2用 - ネオン管風） */
.schedule-card.pulsing-border {
  position: relative;
}

.schedule-card.pulsing-border::before {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  border-radius: 6px;
  border: 2px solid white;
  pointer-events: none;
  z-index: 10;
  opacity: 0;
  box-shadow:
    0 0 4px white,
    0 0 8px white,
    0 0 12px white,
    0 0 20px white,
    0 0 30px rgba(255, 255, 255, 0.8),
    0 0 40px rgba(255, 255, 255, 0.6),
    inset 0 0 8px rgba(255, 255, 255, 0.6),
    inset 0 0 12px rgba(255, 255, 255, 0.4);
  animation: glowingBorderPulse 6s ease-in-out infinite;
}

@keyframes glowingBorderPulse {
  0% {
    opacity: 0;
  }

  33.33% {
    opacity: 1;
    box-shadow:
      0 0 4px white,
      0 0 8px white,
      0 0 12px white,
      0 0 20px white,
      0 0 30px rgba(255, 255, 255, 0.8),
      0 0 40px rgba(255, 255, 255, 0.6),
      inset 0 0 8px rgba(255, 255, 255, 0.6),
      inset 0 0 12px rgba(255, 255, 255, 0.4);
  }

  66.66% {
    opacity: 0;
  }

  100% {
    opacity: 0;
  }
}

/* レインボーボーダー点滅アニメーション（カード4用） */
.schedule-card.rainbow-border::before {
  border: none;
  background: none;
  box-shadow: none;
}

.schedule-card.rainbow-border::after {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  border-radius: 6px;
  background: linear-gradient(90deg, rgba(232, 180, 200, 0.7), rgba(172, 143, 254, 0.7), rgba(124, 207, 255, 0.7), rgba(232, 180, 200, 0.7));
  background-size: 200% 100%;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  animation: rainbowBorderPulse 6s ease-in-out infinite;
}

@keyframes rainbowBorderPulse {
  0% {
    opacity: 0;
    background-position: 0% 0%;
  }

  33.33% {
    opacity: 1;
    background-position: 100% 0%;
  }

  66.66% {
    opacity: 0;
    background-position: 200% 0%;
  }

  100% {
    opacity: 0;
    background-position: 200% 0%;
  }
}

/* 星形キラキラアニメーション（カード5用） */
.schedule-card.star-sparkle {
  position: relative;
}

.schedule-card.star-sparkle .star-container {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-card.star-sparkle .star-container .star {
  font-size: 15px;
  color: #fff;
  opacity: 0;
  text-shadow:
    0 0 5px #fff,
    0 0 10px #fff,
    0 0 15px #fff,
    0 0 20px #fff;
}

.schedule-card.star-sparkle .star-container .star:nth-child(1) {
  font-size: 15px;
  animation: starSparkle 4s ease-in-out infinite;
}

.schedule-card.star-sparkle .star-container .star:nth-child(2) {
  font-size: 16.5px;
  animation: starSparkle 4s ease-in-out infinite 0.3s;
}

.schedule-card.star-sparkle .star-container .star:nth-child(3) {
  font-size: 18px;
  animation: starSparkle 4s ease-in-out infinite 0.6s;
}

@keyframes starSparkle {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }

  10% {
    opacity: 1;
    transform: scale(1.2);
  }

  20% {
    opacity: 0;
    transform: scale(0.5);
  }

  100% {
    opacity: 0;
    transform: scale(0.5);
  }
}

/* NEWテキストキラキラアニメーション（カード3用） */
.schedule-card.new-sparkle {
  position: relative;
}

.schedule-card.new-sparkle .new-container {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 3px;
}

.schedule-card.new-sparkle .new-container .new-letter {
  font-size: 18px;
  font-weight: bold;
  font-family: 'Times New Roman', 'MS PMincho', 'Hiragino Mincho ProN', serif;
  color: #fff;
  opacity: 0;
  text-shadow:
    0 0 5px #fff,
    0 0 10px #fff,
    0 0 15px #fff,
    0 0 20px #fff;
}

.schedule-card.new-sparkle .new-container .new-letter:nth-child(1) {
  animation: starSparkle 4s ease-in-out infinite;
}

.schedule-card.new-sparkle .new-container .new-letter:nth-child(2) {
  animation: starSparkle 4s ease-in-out infinite 0.3s;
}

.schedule-card.new-sparkle .new-container .new-letter:nth-child(3) {
  animation: starSparkle 4s ease-in-out infinite 0.6s;
}

/* NEWバウンドアニメーション（カード1用） */
.schedule-card.new-bounce {
  position: relative;
}

.schedule-card.new-bounce .new-badge {
  position: absolute;
  left: 15px;
  top: 15px;
  z-index: 20;
  font-size: 18px;
  font-weight: bold;
  font-family: 'Times New Roman', 'MS PMincho', 'Hiragino Mincho ProN', serif;
  color: #fff;
  text-shadow:
    0 0 5px #fff,
    0 0 10px #fff,
    0 0 15px #fff;
  animation: newBounce 2s linear infinite;
}

@keyframes newBounce {
  0% {
    transform: scale(1) translateY(0);
  }

  50% {
    transform: scale(1.15) translateY(-3px);
  }

  100% {
    transform: scale(1) translateY(0);
  }
}

/* ハート形キラキラアニメーション（カード6用） */
.schedule-card.heart-sparkle {
  position: relative;
}

.schedule-card.heart-sparkle .heart-container {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-card.heart-sparkle .heart-container .heart {
  font-size: 18.7px;
  color: #fff;
  opacity: 0;
  text-shadow:
    0 0 5px #fff,
    0 0 10px #fff,
    0 0 15px #fff,
    0 0 20px #fff;
}

.schedule-card.heart-sparkle .heart-container .heart:nth-child(1) {
  font-size: 18.7px;
  animation: starSparkle 4s ease-in-out infinite;
}

.schedule-card.heart-sparkle .heart-container .heart:nth-child(2) {
  font-size: 20.6px;
  animation: starSparkle 4s ease-in-out infinite 0.3s;
}

.schedule-card.heart-sparkle .heart-container .heart:nth-child(3) {
  font-size: 22.4px;
  animation: starSparkle 4s ease-in-out infinite 0.6s;
}

/* Sold Outホバーエフェクト（カード7用） */
.schedule-card.sold-out-hover {
  position: relative;
}

.schedule-card.sold-out-hover::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 25;
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: 5px;
}

.schedule-card.sold-out-hover::after {
  content: 'SOLD\AOUT';
  white-space: pre;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, calc(-50% - 70px));
  font-family: 'Times New Roman', Times, serif;
  font-size: 30pt;
  color: #fff;
  text-align: center;
  line-height: 1.0;
  z-index: 30;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.schedule-card.sold-out-hover:hover::before {
  opacity: 1;
}

.schedule-card.sold-out-hover:hover::after {
  opacity: 1;
}

/* スケジュールタイムのスライドアニメーション（全カード共通） */
.schedule-card.time-slide .schedule-time {
  position: relative;
  overflow: hidden;
  height: 20px;
  line-height: 20px;
  color: transparent !important;
}

.schedule-card.time-slide .schedule-time::before {
  content: attr(data-time);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  color: #fff;
  font-size: 17px;
  line-height: 20px;
  animation: timeSlideAnimation 5.2s linear infinite;
}

.schedule-card.time-slide .schedule-time::after {
  content: '';
  position: absolute;
  left: 36px;
  top: 0;
  width: 15px;
  height: 17px;
  line-height: 20px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>');
  background-size: 15px 15px;
  background-repeat: no-repeat;
  background-position: center 2.5px;
  animation: timeSlideAnimation 5.2s linear infinite;
}

/* 出勤情報なしの場合：エリア高さ維持、中身非表示 */
.schedule-card.time-slide .schedule-time.no-time {
  visibility: hidden;
}

.schedule-card.time-slide .schedule-time.no-time::before,
.schedule-card.time-slide .schedule-time.no-time::after {
  display: none;
}

@keyframes timeSlideWithIconAnimation {
  0% {
    transform: translateY(-100%);
  }

  11.54% {
    transform: translateY(-100%);
  }

  23.08% {
    transform: translateY(0%);
  }

  34.62% {
    transform: translateY(0%);
  }

  46.15% {
    transform: translateY(100%);
  }

  57.69% {
    transform: translateY(100%);
  }

  69.23% {
    transform: translateY(200%);
  }

  80.77% {
    transform: translateY(200%);
  }

  92.31% {
    transform: translateY(300%);
  }

  100% {
    transform: translateY(300%);
  }
}

@keyframes timeSlideAnimation {
  0% {
    transform: translateY(-100%);
  }

  11.54% {
    transform: translateY(0);
  }

  88.46% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(100%);
  }
}

/* 回転サークルテキスト
-----------------*/
.rotating-circle-text {
  position: fixed;
  right: 20px;
  bottom: 50px;
  width: 200px;
  height: 200px;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.rotating-circle-text.visible {
  opacity: 1;
  visibility: visible;
}

.rotating-circle-text svg {
  width: 100%;
  height: 100%;
  animation: rotateCircle 180s linear infinite;
  pointer-events: none;
}

.rotating-circle-text text {
  font-family: 'Times New Roman', Times, serif;
  font-size: 18px;
  fill: #d5d5d5;
  letter-spacing: 0.14em;
  animation: circleColorSwap 6s ease-in-out infinite;
}

.rotating-circle-text .circle-center-image {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 120px;
  height: 120px;
  pointer-events: auto;
  animation: imageShake 3s ease-in-out infinite;
  cursor: pointer;
}

.rotating-circle-text .circle-center-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  position: absolute;
  top: 0;
  left: 0;
}

.rotating-circle-text .circle-center-image .image-default {
  opacity: 1;
  z-index: 1;
}

.rotating-circle-text .circle-center-image .image-hover {
  opacity: 0;
  z-index: 2;
}

.rotating-circle-text .circle-center-image:hover .image-default {
  opacity: 0;
}

.rotating-circle-text .circle-center-image:hover .image-hover {
  opacity: 1;
}

/* サークルテキストのカラースワップアニメーション（ゆっくりフェード） */
@keyframes circleColorSwap {

  0%,
  40% {
    fill: #d5d5d5;
  }

  50%,
  90% {
    fill: #e8b4c8;
  }

  100% {
    fill: #d5d5d5;
  }
}

@keyframes rotateCircle {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* 画像の左右小刻み揺れアニメーション */
@keyframes imageShake {

  0%,
  100% {
    transform: translate(-50%, -50%) translateX(0);
  }

  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translate(-50%, -50%) translateX(-3px);
  }

  20%,
  40%,
  60%,
  80% {
    transform: translate(-50%, -50%) translateX(3px);
  }
}

/*====================================
  GIRLページ(girl.php / now.php)
====================================*/

/* GIRLセクション
-----------------*/
/* GIRL Page - Background */
.page-girl {
  background: #f9fafe;
  min-height: 100vh;
}

.page-girl .top-gallery,
.page-girl .girl-section,
.page-girl footer {
  background: transparent;
}

.page-girl nav {
  background: #f9fafe;
}

.page-girl nav.nav-fixed {
  background: rgba(249, 250, 254, 0.9);
}

.page-girl .top-gallery .gallery-logo {
  opacity: 1;
  animation: none;
}

.page-girl .top-gallery .gallery-container {
  display: none;
}

/* NOW Page Specific Styles */
.page-now {
  background: #f9fafe;
  min-height: 100vh;
}

.page-now .girl-section,
.page-now footer {
  background: transparent;
}

.page-now nav {
  background: #f9fafe;
}

.page-now nav.nav-fixed {
  background: rgba(249, 250, 254, 0.9);
}

.page-now .top-gallery .gallery-logo {
  opacity: 1;
  animation: none;
}

.page-now .top-gallery .gallery-container {
  display: none;
}

.page-now .girl-section h2 {
  margin-bottom: 60px;
}

.girl-section {
  padding: 60px 20px;
  max-width: 1400px;
  margin: 0 auto;
}

.girl-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  margin-bottom: 40px;
  text-align: center;
  font-family: "Times New Roman", Times, serif;
}

/* フィルタートグル
-----------------*/
.filter-toggle-container {
  display: flex;
  justify-content: center;
  margin-bottom: 60px;
}

.filter-toggle {
  position: relative;
  display: flex;
  background: #e8e8e8;
  border-radius: 25px;
  padding: 4px;
  width: 300px;
  height: 50px;
}

.toggle-option {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 1.5px;
  color: #999;
  cursor: pointer;
  z-index: 2;
  transition: color 0.3s ease;
  font-family: "Times New Roman", Times, serif;
}

.toggle-option.active {
  color: #fff;
}

.toggle-slider {
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(50% - 4px);
  height: calc(100% - 8px);
  background: linear-gradient(135deg, #b5b5b5 0%, #d0d0d0 100%);
  border-radius: 21px;
  transition: transform 0.3s ease;
  z-index: 1;
}

.toggle-option[data-filter="new"].active ~ .toggle-slider {
  transform: translateX(100%);
  background: linear-gradient(135deg, #e8b4c8 0%, #f0c0d8 100%);
}

/* Hide cards based on filter */
.girl-grid .schedule-card.hide {
  display: none;
}

/* フィルター切り替え時のアニメーション用クラス */
.girl-grid .schedule-card.filtering {
  opacity: 0 !important;
  transform: translateY(50px) !important;
  transition: none !important;
}

/* GIRL Grid - 4 columns (same as schedule-grid) */
.girl-grid {
  display: grid;
  grid-template-columns: repeat(4, 253px);
  gap: 15px;
  max-width: 1057px;
  margin: 0 auto;
  justify-content: center;
}

/*====================================
  EVENTページ(event.php)
====================================*/
/* Event Page styles are already included in the "イベントセクション" section above */

/*====================================
  SYSTEMページ(system.php)
====================================*/
/* SYSTEM Section */
.system-section {
  text-align: center;
  padding: 60px 20px;
  background: transparent;
  max-width: 100%;
  min-height: 50vh;
}

.system-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  margin-bottom: 60px;
  font-family: "Times New Roman", Times, serif;
}

.system-content {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}

.system-image {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
  margin: 0 auto;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* 料金セクション */
.price-section {
  margin-bottom: 50px;
  padding: 30px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.08);
}

.price-title {
  font-size: 24px;
  font-weight: 500;
  color: #333;
  margin-bottom: 10px;
  text-align: center;
  letter-spacing: 3px;
  border-bottom: 2px solid #e0e0e0;
  padding-bottom: 15px;
}

.price-subtitle {
  font-size: 14px;
  color: #666;
  text-align: center;
  margin: -5px 0 20px 0;
}

.price-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.price-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  background: #f9fafe;
  border-radius: 8px;
  transition: all 0.3s ease;
}

.price-item:hover {
  background: #f0f4ff;
  transform: translateX(5px);
}

.price-time {
  font-size: 16px;
  color: #555;
  font-weight: 400;
}

.price-amount {
  font-size: 18px;
  color: #333;
  font-weight: 600;
}

/* オプション項目 */
.options-section {
  text-align: left;
}

.options-note {
  font-size: 14px;
  color: #d9534f;
  text-align: center;
  margin: 15px 0 25px 0;
  padding: 12px;
  background: #fff5f5;
  border-radius: 6px;
  border-left: 4px solid #d9534f;
}

.options-group {
  margin-bottom: 30px;
}

.options-group:last-child {
  margin-bottom: 0;
}

.options-subtitle {
  font-size: 18px;
  font-weight: 600;
  color: #333;
  margin-bottom: 15px;
  padding-bottom: 8px;
  border-bottom: 2px solid #f0f0f0;
}

.options-basic {
  font-size: 15px;
  line-height: 1.8;
  color: #555;
  margin: 0;
  padding: 10px 0;
}

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

.options-list li {
  font-size: 15px;
  color: #555;
  padding: 8px 0;
  line-height: 1.6;
}



/* スマホサイズ対応 */
@media (max-width: 768px) {
  .system-section {
    padding: 40px 15px;
  }

  .system-section h2 {
    font-size: 24px;
    margin-bottom: 40px;
  }

  .system-content {
    padding: 0 10px;
  }

  .price-section {
    padding: 20px 15px;
    margin-bottom: 30px;
  }

  .price-title {
    font-size: 20px;
    letter-spacing: 2px;
  }

  .price-subtitle {
    font-size: 12px;
  }

  .price-item {
    padding: 12px 15px;
    flex-wrap: wrap;
  }

  .price-time {
    font-size: 14px;
    flex: 1;
  }

  .price-amount {
    font-size: 16px;
  }

  .options-note {
    font-size: 13px;
    margin: 12px 0 20px 0;
    padding: 10px;
  }

  .options-subtitle {
    font-size: 16px;
    margin-bottom: 12px;
  }

  .options-basic {
    font-size: 14px;
  }

  .options-list li {
    font-size: 14px;
    padding: 6px 0;
  }
}

/* 情報セクション */
.info-section {
  text-align: left;
}

.info-content {
  padding: 10px 0;
}

.info-content p {
  font-size: 15px;
  line-height: 1.8;
  color: #555;
  margin-bottom: 15px;
}

.info-highlight {
  font-weight: 600;
  color: #333;
  font-size: 16px;
  margin: 20px 0 10px 0;
}

.info-intro {
  font-weight: 500;
  color: #333;
  margin-bottom: 20px;
}

.info-list {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}

.info-list li {
  font-size: 15px;
  line-height: 1.9;
  color: #555;
  margin-bottom: 10px;
  padding-left: 10px;
}

.info-notice {
  background: #fff8f0;
  padding: 20px;
  border-left: 4px solid #ff9800;
  border-radius: 4px;
  margin-top: 25px;
  font-size: 14px;
  line-height: 1.9;
  color: #666;
}

@media (max-width: 768px) {
  .info-content p {
    font-size: 14px;
  }

  .info-list li {
    font-size: 14px;
    margin-bottom: 5px;
    padding-left: 5px;
  }

  .info-notice {
    padding: 15px;
    font-size: 13px;
  }
}

/*====================================
  CONTACTページ(contact.php)
====================================*/

/* CONTACT Page Specific Styles */
.page-contact {
  background: #f9fafe;
  min-height: 100vh;
}

.page-contact .contact-section,
.page-contact footer {
  background: transparent;
}

.page-contact nav {
  background: #f9fafe;
}

.page-contact nav.nav-fixed {
  background: rgba(249, 250, 254, 0.9);
}

.page-contact .top-gallery .gallery-logo {
  opacity: 1;
  animation: none;
}

.page-contact .top-gallery .gallery-container {
  display: none;
}

/* CONTACT Section */
.contact-section {
  text-align: center;
  padding: 60px 20px;
  background: transparent;
  max-width: 100%;
}

.contact-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  margin-bottom: 60px;
  font-family: "Times New Roman", Times, serif;
}

.contact-container {
  max-width: 700px;
  margin: 0 auto;
}

.contact-intro {
  font-size: 14px;
  color: #6e6e6e;
  line-height: 1.8;
  margin-bottom: 40px;
  font-family: "Times New Roman", Times, serif;
}

.contact-form {
  text-align: left;
  margin-bottom: 60px;
}

.form-group {
  margin-bottom: 25px;
}

.form-group label {
  display: block;
  font-size: 14px;
  color: #6e6e6e;
  margin-bottom: 8px;
  font-weight: 500;
  font-family: "Times New Roman", Times, serif;
}

.form-group .required {
  color: #e8b4c8;
}

.form-group input,
.form-group textarea {
  width: 100%;
  padding: 12px 15px;
  border: 1px solid #d5d5d5;
  border-radius: 4px;
  font-size: 14px;
  color: #6e6e6e;
  background: #fff;
  transition: border-color 0.3s ease;
  font-family: "Times New Roman", Times, serif;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
  color: #aaa;
  font-family: "Times New Roman", Times, serif;
}

.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: #e8b4c8;
}

.form-group textarea {
  resize: vertical;
  min-height: 150px;
}

.submit-btn {
  width: 100%;
  padding: 15px 30px;
  background: linear-gradient(135deg, #e8b4c8 0%, #f0c0d8 100%);
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  transition:
    opacity 0.3s ease,
    transform 0.2s ease;
  font-family: "Times New Roman", Times, serif;
  letter-spacing: 2px;
}

.submit-btn:hover {
  opacity: 0.9;
  transform: translateY(-2px);
}

.submit-btn:active {
  transform: translateY(0);
}

/*====================================
  キャスト詳細ポップアップ
====================================*/

/* オーバーレイ（背景） - 明るさを保つ */
.cast-popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.15);
  z-index: 10002;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s ease,
    visibility 0.4s ease;
  backdrop-filter: blur(1px);
}

.cast-popup-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* ポップアップコンテナ */
.cast-popup-container {
  width: 725px;
  height: 800px;
  background: linear-gradient(
    135deg,
    rgba(255, 250, 252, 0.98) 0%,
    rgba(252, 245, 255, 0.98) 100%
  );
  border-radius: 20px;
  position: fixed;
  left: 50%;
  top: 50%;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(200, 100, 150, 0.35);
  border: 2px solid rgba(255, 182, 193, 0.5);
  font-family:
    "Yu Mincho", "YuMincho", "Hiragino Mincho Pro", "MS PMincho", serif;
  transform: translate(-50%, -50%) scale(0.9);
  opacity: 0;
  transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.cast-popup-overlay.active .cast-popup-container {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}

/* 閉じるボタン - 小さく */
.cast-popup-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 26px;
  height: 26px;
  background: rgba(255, 182, 193, 0.3);
  border: 1px solid rgba(255, 105, 180, 0.4);
  border-radius: 50%;
  color: #c94b9a;
  font-size: 18px;
  line-height: 24px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 10;
  padding: 0;
  font-weight: bold;
}

.cast-popup-close:hover {
  background: rgba(255, 182, 193, 0.5);
  transform: rotate(90deg);
  border-color: rgba(255, 105, 180, 0.7);
}

/* ポップアップコンテンツ */
.cast-popup-content {
  display: flex;
  height: 800px;
  overflow: hidden;
}

/* 左側（画像 & レビューエリア） - 幅を広く */
.cast-popup-left {
  width: 400px;
  flex-shrink: 0;
  background: linear-gradient(
    180deg,
    rgba(255, 240, 250, 0.5) 0%,
    rgba(250, 230, 250, 0.5) 100%
  );
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow-y: auto;
  overflow-x: hidden;
}

/* 左側スクロールバー */
.cast-popup-left::-webkit-scrollbar {
  width: 5px;
}

.cast-popup-left::-webkit-scrollbar-track {
  background: rgba(255, 182, 193, 0.1);
  border-radius: 10px;
}

.cast-popup-left::-webkit-scrollbar-thumb {
  background: rgba(255, 105, 180, 0.3);
  border-radius: 10px;
}

.cast-popup-left::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 105, 180, 0.5);
}

/* 画像スライダー */
.cast-popup-image-slider {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* メイン画像 */
.cast-popup-main-image {
  width: 360px;
  height: 540px;
  border-radius: 15px;
  overflow: hidden;
  border: 2px solid rgba(255, 182, 193, 0.4);
}

.cast-popup-main-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* サムネイル - 横一列 */
.cast-popup-thumbnails {
  position: relative;
}

.thumb-slider-wrapper {
  display: flex;
  overflow-x: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 8px;
  padding: 2px 0;
}

.thumb-slider-wrapper::-webkit-scrollbar {
  display: none;
}

.thumb-slider-track {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.cast-popup-thumbnails .thumbnail {
  width: 85px;
  height: 128px;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid rgba(255, 182, 193, 0.3);
  transition: all 0.3s ease;
  object-fit: cover;
  flex-shrink: 0;
}

.cast-popup-thumbnails .thumbnail:hover {
  border-color: rgba(255, 105, 180, 0.6);
  transform: translateY(-2px);
}

.cast-popup-thumbnails .thumbnail.active {
  border-color: rgba(255, 105, 180, 1);
}

.thumb-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease, background 0.2s ease;
}

.thumb-arrow:hover {
  background: rgba(255, 105, 180, 0.8);
}

.thumb-arrow-left {
  left: -4px;
}

.thumb-arrow-right {
  right: -4px;
}

.thumb-arrow.hidden {
  opacity: 0;
  pointer-events: none;
}

/* 右側（情報エリア） - 幅を狭く */
.cast-popup-right {
  flex: 1;
  padding: 25px 20px;
  overflow-y: auto;
  overflow-x: hidden;
}

/* スクロールバーのカスタマイズ */
.cast-popup-right::-webkit-scrollbar {
  width: 5px;
}

.cast-popup-right::-webkit-scrollbar-track {
  background: rgba(255, 182, 193, 0.1);
  border-radius: 10px;
}

.cast-popup-right::-webkit-scrollbar-thumb {
  background: rgba(255, 105, 180, 0.3);
  border-radius: 10px;
}

.cast-popup-right::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 105, 180, 0.5);
}

/* セクション共通 */
.cast-popup-section {
  margin-bottom: 22px;
}

.cast-popup-section-title {
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 2.5px;
  color: #d946a6;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1.5px solid rgba(255, 105, 180, 0.3);
}

/* プロフィール */
.cast-popup-profile .profile-name {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 15px;
}

.profile-name .name-text {
  font-size: 20px;
  font-weight: bold;
  color: #4a4a4a;
}

.profile-name .age-text {
  font-size: 15px;
  color: #888;
}

.profile-details {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.profile-item {
  display: flex;
  font-size: 13px;
  color: #555;
}

.profile-label {
  width: 75px;
  color: #d946a6;
  font-weight: 500;
}

.profile-value {
  flex: 1;
  color: #333;
}

/* スケジュール */
.cast-popup-schedule {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.schedule-row {
  display: flex;
  justify-content: space-between;
  padding: 7px 12px;
  background: rgba(255, 240, 250, 0.6);
  border-radius: 8px;
  font-size: 12px;
  border: 1px solid rgba(255, 182, 193, 0.2);
}

.schedule-day {
  color: #d946a6;
  font-weight: 500;
  min-width: 85px;
}

.schedule-hours {
  color: #555;
  text-align: right;
}

/* お店からのコメント - 縦を広く */
.cast-popup-comment {
  max-height: 280px;
  overflow-y: auto;
  padding: 14px;
  background: rgba(255, 240, 250, 0.6);
  border-radius: 10px;
  border: 1px solid rgba(255, 182, 193, 0.2);
}

.cast-popup-comment::-webkit-scrollbar {
  width: 5px;
}

.cast-popup-comment::-webkit-scrollbar-track {
  background: rgba(255, 182, 193, 0.1);
  border-radius: 10px;
}

.cast-popup-comment::-webkit-scrollbar-thumb {
  background: rgba(255, 105, 180, 0.3);
  border-radius: 10px;
}

.cast-popup-comment p {
  font-size: 13px;
  line-height: 1.8;
  color: #555;
  margin: 0;
}

/* キャストコメント（左側・画像下） */
.cast-popup-mcom {
  font-size: 13px;
  line-height: 1.8;
  color: #555;
  margin: 0;
  max-height: 280px;
  overflow-y: auto;
  padding: 14px;
  background: rgba(255, 240, 250, 0.6);
  border-radius: 10px;
  border: 1px solid rgba(255, 182, 193, 0.2);
}

.cast-popup-mcom::-webkit-scrollbar {
  width: 5px;
}

.cast-popup-mcom::-webkit-scrollbar-track {
  background: rgba(255, 182, 193, 0.1);
  border-radius: 10px;
}

.cast-popup-mcom::-webkit-scrollbar-thumb {
  background: rgba(255, 105, 180, 0.3);
  border-radius: 10px;
}

/* Q&A */
.cast-popup-qa {
  max-height: 300px;
  overflow-y: auto;
  padding: 10px;
  background: rgba(255, 240, 250, 0.6);
  border-radius: 10px;
  border: 1px solid rgba(255, 182, 193, 0.2);
}

.cast-popup-qa::-webkit-scrollbar {
  width: 5px;
}

.cast-popup-qa::-webkit-scrollbar-track {
  background: rgba(255, 182, 193, 0.1);
  border-radius: 10px;
}

.cast-popup-qa::-webkit-scrollbar-thumb {
  background: rgba(255, 105, 180, 0.3);
  border-radius: 10px;
}

.qa-item {
  margin-bottom: 12px;
}

.qa-item:last-child {
  margin-bottom: 0;
}

.qa-question,
.qa-answer {
  display: flex;
  gap: 6px;
  font-size: 13px;
  line-height: 1.6;
  color: #555;
}

.qa-question {
  margin-bottom: 4px;
}

.qa-label {
  font-weight: 600;
  color: #d4789c;
  flex-shrink: 0;
  min-width: 20px;
}

.qa-answer .qa-label {
  color: #7a9cd4;
}

.qa-text {
  flex: 1;
}

.qa-empty {
  font-size: 13px;
  color: #999;
  text-align: center;
  padding: 10px 0;
  margin: 0;
}

/* レビュー（未使用） */
.cast-popup-reviews {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.review-item {
  padding: 12px 14px;
  background: rgba(255, 240, 250, 0.6);
  border-radius: 10px;
  border: 1px solid rgba(255, 182, 193, 0.2);
}

.review-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 8px;
}

.review-stars {
  display: flex;
  gap: 2px;
}

.review-stars .star {
  font-size: 13px;
  color: rgba(255, 182, 193, 0.3);
}

.review-stars .star.filled {
  color: #ff69b4;
}

.review-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.review-author {
  font-size: 12px;
  color: #888;
}

.review-date {
  font-size: 11px;
  color: #aaa;
}

.review-text {
  font-size: 12px;
  line-height: 1.7;
  color: #555;
  margin: 0;
}

/* スケジュールカードにカーソルポインター */
.schedule-card {
  cursor: pointer;
}

/* Disabled Link Styles */
a.disabled-link {
  pointer-events: none;
  cursor: default;
  opacity: 0.6;
}

/*====================================
  ボトムナビゲーション(モバイル)
====================================*/
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  display: none; /* デスクトップでは非表示 */
  justify-content: center;
  align-items: center;
  z-index: 1000;
  opacity: 0;
  transform: translateY(100%);
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
  pointer-events: none; /* 背景部分はクリックを透過 */
  background: none !important;
}

.bottom-nav.show {
  opacity: 1;
  transform: translateY(0);
}

.bottom-nav-container {
  display: flex;
  justify-content: space-around;
  align-items: center;
  width: 100%;
  max-width: 500px;
  padding: 0 20px 15px 20px; /* 下部のみ15pxのパディング */
  background: none !important;
}

.bottom-nav-item {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: transform 0.3s ease;
}

.bottom-nav-item a {
  display: block;
  width: 100%;
  max-width: 100px;
  pointer-events: auto; /* アイコン自体はクリック可能 */
}

.bottom-nav-item img {
  width: 100%;
  height: auto;
  display: block;
}

.bottom-nav-item:active {
  transform: scale(0.95);
}

/*====================================
  ユーティリティ
====================================*/
/* No additional utility styles needed currently */

/*====================================
  レスポンシブ(タブレット 1024px以下)
====================================*/
@media (max-width: 1024px) {
  .gallery-logo-text {
    width: 150px;
    height: 150px;
  }

  .schedule-grid {
    grid-template-columns: repeat(2, 253px);
  }

  .banner-slider {
    max-width: 480px;
  }

  .banner-box {
    width: 480px;
    height: 270px;
  }

  .banner-track img,
  .banner-track video {
    width: 480px;
    height: 270px;
  }

  .banner-track {
    transform: translateX(-500px);
    animation: bannerSlideLoop 18s ease-in-out infinite; /* 3枚対応：18s */
  }

  @keyframes bannerSlideLoop {
    0%,
    27.78% {
      /* 5秒 / 18秒 = 27.78% */
      transform: translateX(-500px); /* バナー1 */
    }
    33.33%,
    61.11% {
      /* スライド後、5秒停止 */
      transform: translateX(-1000px); /* バナー2 */
    }
    66.67%,
    94.44% {
      /* スライド後、5秒停止 */
      transform: translateX(-1500px); /* バナー3 */
    }
    100% {
      transform: translateX(
        -2000px
      ); /* ループ用バナー1へ移動後、瞬時に最初に戻る */
    }
  }
}

/*====================================
  レスポンシブ(モバイル 768px以下)
====================================*/
@media (max-width: 768px) {
  body {
    padding-top: 0px;
  }

  .mobile-header {
    display: flex;
  }

  nav {
    display: none;
  }

  /* 3D背景ギャラリーは非表示 */
  .background-gallery-3d {
    display: none;
  }

  .top-gallery {
    margin-top: 0;
    min-height: 300px;
    padding: 76px 0 0;
  }

  .gallery-track img {
    width: 200px;
    height: 285px;
  }

  .gallery-logo-text {
    width: 120px;
    height: 120px;
  }

  /* スマホ用：カード配置アニメーション */
  .deal-card {
    width: 160px;
    height: 229px;
  }

  /* スマホでは3枚のみ表示（カード2, 4, 6） */
  .deal-card[data-card="1"],
  .deal-card[data-card="3"],
  .deal-card[data-card="5"],
  .deal-card[data-card="7"] {
    display: none;
  }

  .deal-card[data-card="2"] {
    left: calc(50% - 230px);
  }

  .deal-card[data-card="4"] {
    left: calc(50% - 80px);
  }

  .deal-card[data-card="6"] {
    left: calc(50% + 60px);
  }

  /* スマホ用：カード2のdelayを0.3sに */
  .deal-card[data-card="2"] {
    animation: dealCard2 1.0s ease-out 0.3s forwards;
  }

  /* スマホ用：カード4は即座に表示 */
  .deal-card[data-card="4"] {
    animation: dealCard4 1.1s ease-out 0.0s forwards;
  }

  /* スマホ用：カード6のdelayを0.2sに */
  .deal-card[data-card="6"] {
    animation: dealCard6 0.9s ease-out 0.2s forwards;
  }

  /* スマホ用：アニメーション停止位置を50px上に */
  @keyframes dealCard2 {
    0% {
      transform: translate(0, 434px) rotate(0deg);
    }

    100% {
      transform: translate(0, 7px) rotate(-8deg);
    }
  }

  @keyframes dealCard4 {
    0% {
      transform: translate(0, 434px) rotate(0deg);
    }

    100% {
      transform: translate(0, -8px) rotate(5deg);
    }
  }

  @keyframes dealCard6 {
    0% {
      transform: translate(0, 434px) rotate(0deg);
    }

    100% {
      transform: translate(0, 0px) rotate(12deg);
    }
  }

  /* スマホ用：ロゴのアニメーション（1秒早く、100px上） */
  .event-gallery-logo {
    animation: eventLogoFadeIn 1s ease-out 1.0s forwards;
    z-index: 9999;
  }

  .event-gallery-logo img {
    width: 200px;
    height: auto;
  }


  @keyframes eventLogoFadeIn {
    0% {
      opacity: 0;
      transform: translateY(434px);
    }

    100% {
      opacity: 1;
      transform: translateY(117px);
    }
  }

  /* ニュースセクション */
  .news-section {
    padding: 60px 15px;
  }

  .news-list {
    max-width: 100%;
    padding: 0 5px;
  }

  .news-item {
    flex-direction: column;
    align-items: flex-start;
    padding: 12px 8px;
  }

  .news-date {
    margin-bottom: 8px;
    margin-right: 0;
  }

  .news-text {
    font-size: 14px;
    line-height: 1.6;
  }

  .banner-section {
    padding: 20px 20px 30px;
  }

  /* スマホサイズ：モバイルメニューのホバーアクションを無効化 */
  .mobile-menu a:hover {
    color: #d0d0d0; /* ホバー時も通常の色を維持 */
  }

  .mobile-menu-social a:hover {
    background: transparent; /* ホバー時も背景色なし */
    border-color: #e0e0e0; /* ホバー時も通常のボーダー色 */
  }

  .mobile-menu-social a:hover svg {
    fill: #d0d0d0; /* ホバー時も通常の色を維持 */
  }

  /* スマホサイズ：フッターナビのホバーアクションを無効化 */
  .footer-nav a:hover {
    color: #d0d0d0; /* ホバー時も通常の色を維持 */
  }

  /* フッタースライドエフェクトを無効化 */
  .footer-slide-text .footer-front,
  .footer-slide-text .footer-incoming {
    transform: none !important;
    transition: none !important;
  }

  .footer-slide-text .footer-incoming {
    position: static !important;
    display: none !important; /* 2重表示を防ぐ */
  }

  .footer-slide-text.footer-hover .footer-front,
  .footer-slide-text.footer-hover .footer-incoming {
    transform: none !important;
    color: #d0d0d0 !important;
  }

  /* スマホサイズ：フッターソーシャルアイコンのホバーアクションを無効化 */
  .footer-social a:hover {
    background: transparent; /* ホバー時も背景色なし */
    border-color: #e0e0e0; /* ホバー時も通常のボーダー色 */
  }

  .footer-social a:hover svg {
    fill: #d0d0d0; /* ホバー時も通常の色を維持 */
  }

  /* スマホサイズ：pickupセクションのホバーアクションを無効化し、nameを常時表示 */
  .pickup-name {
    opacity: 1 !important; /* nameを常時表示 */
    transform: translateY(0) !important; /* 位置を固定 */
  }

  .pickup-item:hover .pickup-name {
    opacity: 1;
    transform: translateY(0);
  }

  .pickup-item:hover .pickup-image-container::before {
    opacity: 0 !important; /* 回転する円を表示しない */
    animation: none !important; /* アニメーション無効化 */
  }

  .pickup-item:hover .newface-tag.animated {
    animation: none !important; /* タグのホバーバウンスを無効化 */
  }

  .schedule-grid,
  .girl-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    gap: 8px;
    margin: 0 auto;
    padding: 0 8px;
  }

  .schedule-card {
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition: none !important;
  }

  .schedule-card-image {
    width: 100%;
    height: auto;
    aspect-ratio: 253 / 360;
    position: relative;
  }

  .schedule-info {
    padding: 6px 6px;
  }

  .schedule-time {
    font-size: 13px;
  }

  .schedule-mode {
    font-size: 11px;
    min-height: 11px;
  }

  .schedule-name {
    font-size: 14px;
  }

  .schedule-age-line {
    font-size: 10px;
  }

  /* モバイルでは時計アイコンを非表示 */
  .schedule-card.time-slide .schedule-time::after {
    display: none;
  }

  /* モバイルでは動画を非表示 */
  .schedule-video {
    display: none;
  }

  /* スマホサイズのEVENTページ - 左右アニメーションを削除、全てセンター表示 */
  .event-item:nth-child(2),
  .event-item:nth-child(3),
  .event-item:nth-child(4),
  .event-item:nth-child(5),
  .event-item:nth-child(6) {
    opacity: 1;
    transform: translateX(0);
  }

  /* Event Section - Mobile */
  .event-section {
    padding: 60px 20px;
  }

  .event-item {
    margin-bottom: 60px;
  }

  .event-banner {
    margin-bottom: 20px;
  }

  .event-title {
    font-size: 20px;
    margin-bottom: 15px;
  }

  .event-text {
    font-size: 14px;
    line-height: 1.7;
  }

  .event-date {
    font-size: 13px;
    margin-top: 15px;
  }

  .event-description {
    padding: 0 10px;
  }

  .pickup-section {
    padding: 30px 20px 20px;
  }

  .pickup-section h2 {
    margin-bottom: 30px;
  }

  .pickup-grid {
    gap: 30px;
    flex-wrap: wrap;
    justify-content: center;
  }

  .pickup-image-container {
    width: 220px;
    height: 220px;
    margin-bottom: 8px;
  }

  .pickup-item .pickup-image-container > img:not(.newface-tag) {
    width: 216px;
    height: 216px;
  }

  .newface-tag {
    width: 120px;
    height: 120px;
    top: -37px;
    left: 8px;
  }

  .pickup-name {
    font-size: 18px;
    margin-bottom: 0;
  }

  .schedule-section {
    padding: 30px 20px 60px;
  }

  .schedule-section h2 {
    margin-bottom: 30px;
  }

  .banner-slider {
    max-width: 320px;
  }

  .banner-box {
    width: 320px;
    height: 180px;
  }

  .banner-track img,
  .banner-track video {
    width: 320px;
    height: 180px;
  }

  .banner-track {
    transform: translateX(-340px);
    animation: bannerSlideLoop 18s ease-in-out infinite; /* 3枚対応：18s */
  }

  @keyframes bannerSlideLoop {
    0%,
    27.78% {
      /* 5秒 / 18秒 = 27.78% */
      transform: translateX(-340px); /* バナー1 */
    }
    33.33%,
    61.11% {
      /* スライド後、5秒停止 */
      transform: translateX(-680px); /* バナー2 */
    }
    66.67%,
    94.44% {
      /* スライド後、5秒停止 */
      transform: translateX(-1020px); /* バナー3 */
    }
    100% {
      transform: translateX(
        -1360px
      ); /* ループ用バナー1へ移動後、瞬時に最初に戻る */
    }
  }

  .footer-nav {
    flex-wrap: wrap;
    gap: 10px;
  }

  .footer-nav a {
    border-right: none;
    padding: 10px 15px;
  }

  /* Contact Section - Mobile */
  .contact-section {
    padding: 40px 15px;
  }

  .contact-intro {
    font-size: 13px;
  }

  /* スマホサイズでボトムナビを表示 */
  .bottom-nav {
    display: flex !important;
  }

  /* スマホサイズでプルダウン表示 */
  .schedule-day-toggle {
    width: 100%;
    max-width: 300px;
    flex-direction: column;
    height: auto;
    background: #e8e8e8;
    border-radius: 8px;
  }

  .day-slider {
    display: none;
  }

  .day-option {
    display: none;
    padding: 15px;
    border-bottom: 1px solid #ddd;
  }

  .day-option:last-child {
    border-bottom: none;
  }

  .day-option.active {
    display: flex;
    background: #333;
    color: #fff;
    border-radius: 8px;
    position: relative;
  }

  .day-option.active::after {
    content: '▼';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
  }

  .schedule-day-toggle.open {
    background: #fff;
    border: 1px solid #e8e8e8;
  }

  .schedule-day-toggle.open .day-option {
    display: flex;
    background: transparent;
    color: #666;
  }

  .schedule-day-toggle.open .day-option.active {
    background: #333;
    color: #fff;
  }

  .schedule-day-toggle.open .day-option.active::after {
    content: '▲';
  }

  .schedule-day-toggle.open .day-option:hover {
    background: #f5f5f5;
  }

  .schedule-day-toggle.open .day-option.active:hover {
    background: #333;
  }

  /* 回転サークルテキストは非表示 */
  .rotating-circle-text {
    display: none;
  }

  /* スマホサイズでは常にSOLD OUT表示 */
  .schedule-card.sold-out-hover::before {
    opacity: 1;
  }

  .schedule-card.sold-out-hover::after {
    opacity: 1;
  }

  /* Cast Popup - Mobile */
  .cast-popup-container {
    width: 95%;
    max-width: 500px;
    height: 90vh;
    max-height: 90vh;
    overflow: hidden;
  }

  @keyframes cardFlipExpand {
    0% {
      width: var(--start-width);
      height: var(--start-height);
      transform: translate(-50%, -50%) rotateY(0deg) scale(1);
      opacity: 1;
    }
    50% {
      width: calc((var(--start-width) + 95vw) / 2);
      height: calc((var(--start-height) + 90vh) / 2);
      transform: translate(-50%, -50%) rotateY(90deg) scale(1.05);
      opacity: 1;
    }
    100% {
      width: 95vw;
      height: 90vh;
      max-height: 90vh;
      transform: translate(-50%, -50%) rotateY(0deg) scale(1);
      opacity: 1;
    }
  }

  .cast-popup-content {
    flex-direction: column;
    height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* スマホでは縦スクロール1列レイアウト */
  /* display: contents を使用して、子要素を親のflexコンテキストに直接配置 */
  .cast-popup-left {
    display: contents;
  }

  .cast-popup-right {
    display: contents;
  }

  /* 閉じるボタンの位置調整 */
  .cast-popup-close {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 1000;
  }

  /* 表示順序を制御 - display:contentsで全子要素がフラットになる */
  /* 1. 画像エリア */
  .cast-popup-image-slider {
    flex-direction: column;
    align-items: center;
    order: 1;
    width: 100%;
    padding: 0 15px;
    margin-top: 20px;
    margin-bottom: 20px;
  }

  /* 2. PROFILE */
  .cast-popup-right .cast-popup-section:nth-child(1) {
    order: 2;
    width: 100%;
    padding: 0 15px;
  }

  /* 3. SCHEDULE */
  .cast-popup-right .cast-popup-section:nth-child(2) {
    order: 3;
    width: 100%;
    padding: 0 15px;
  }

  /* 4. Q&A（左側のsection） */
  .cast-popup-left .cast-popup-section {
    order: 4;
    width: 100%;
    padding: 0 15px;
  }

  /* 5. CAST COMMENT */
  .cast-popup-right .cast-popup-section:nth-child(3) {
    order: 5;
    width: 100%;
    padding: 0 15px;
  }

  /* 6. SHOP COMMENT */
  .cast-popup-right .cast-popup-section:nth-child(4) {
    order: 6;
    width: 100%;
    padding: 0 15px;
  }

  .cast-popup-main-image {
    width: 240px;
    height: 360px;
  }

  .cast-popup-thumbnails {
    position: relative;
    width: 100%;
    max-width: 240px;
    margin: 8px auto 0;
  }

  .thumb-slider-wrapper {
    max-width: 100%;
    overflow-x: auto;
  }

  .thumb-slider-track {
    gap: 6px;
  }

  .cast-popup-thumbnails .thumbnail {
    width: 54px;
    height: 80px;
  }

  .thumb-arrow {
    width: 24px;
    height: 24px;
    font-size: 14px;
  }

  .thumb-arrow-left {
    left: -12px;
  }

  .thumb-arrow-right {
    right: -12px;
  }

  .profile-name .name-text {
    font-size: 18px;
  }

  .cast-popup-section {
    margin-bottom: 18px;
  }

  .cast-popup-comment {
    max-height: 200px;
  }
}

/*====================================
  レスポンシブ(小型モバイル 375px以下)
====================================*/
@media (max-width: 375px) {
  .banner-slider {
    max-width: 280px;
  }

  .banner-track img,
  .banner-track video {
    width: 280px;
    height: 158px;
  }

  .banner-track {
    transform: translateX(-300px);
    animation: bannerSlideLoop 18s ease-in-out infinite; /* 3枚対応：18s */
  }

  @keyframes bannerSlideLoop {
    0%,
    27.78% {
      /* 5秒 / 18秒 = 27.78% */
      transform: translateX(-300px); /* バナー1 */
    }
    33.33%,
    61.11% {
      /* スライド後、5秒停止 */
      transform: translateX(-600px); /* バナー2 */
    }
    66.67%,
    94.44% {
      /* スライド後、5秒停止 */
      transform: translateX(-900px); /* バナー3 */
    }
    100% {
      transform: translateX(
        -1200px
      ); /* ループ用バナー1へ移動後、瞬時に最初に戻る */
    }
  }

  .schedule-grid,
  .girl-grid {
    gap: 6px;
    padding: 0 4px;
  }

  .pickup-image-container {
    width: 180px;
    height: 180px;
  }

  .pickup-item .pickup-image-container > img:not(.newface-tag) {
    width: 176px;
    height: 176px;
  }

  .newface-tag {
    width: 90px;
    height: 90px;
    top: -29px; /* -39px + 10px = -29px */
    left: 6px;
  }

  .pickup-name {
    margin-bottom: 15px; /* 15px上に移動 */
  }

  .gallery-track img {
    width: 160px;
    height: 228px;
  }
}

/* 3Dホバーエフェクト（デスクトップのみ） */
@media (min-width: 769px) {
  .schedule-card {
    transform-style: preserve-3d;
    transition:
      opacity 0.8s ease,
      transform 0.2s ease;
  }

  .schedule-card.fade-in {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 相互リンク(index.php) */
.age-verification-container {
  overflow-y: auto;
}

.index_banner {
  padding: 20px;
}

.index_banner .link .contentTitle {
  font-size: 2.4rem;
  padding-bottom: 20px;
  text-align: center;
}

.index_banner .link .contentTitle span {
  font-size: 1.4rem;
}

.index_banner .linkBanner {
  text-align: center;
}

.index_banner .linkBanner div {
  margin: auto;
  margin-bottom: 5px;
}

.index_banner .linkBanner div:nth-child(-n+2) {
  width: 468px;
}

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

/* スマホ対応 */
@media (max-width: 768px) {
  .index_banner {
    padding: 10px;
  }

  .index_banner .link .contentTitle {
    font-size: 1.8rem;
    padding-bottom: 15px;
  }

  .index_banner .link .contentTitle span {
    font-size: 1.2rem;
  }

  .index_banner .linkBanner div:nth-child(-n+2) {
    width: 100%;
    max-width: 300px;
  }
}

/* 店長ブログ(index.php) */
.index_widget {
  padding: 20px 0;
  text-align: center;
}

.index_widget .link .contentTitle {
  font-size: 2.4rem;
  padding-bottom: 20px;
  text-align: center;
}

.index_widget iframe {
  margin: 0 auto;
  display: block;
  max-width: 100%;
}

@media (max-width: 768px) {
  .index_widget {
    padding: 10px;
  }



  .index_widget .link .contentTitle {
    font-size: 1.8rem;
    padding-bottom: 15px;
  }

  .index_widget iframe {
    width: 100%;
    max-width: 320px;
    height: 470px;
  }
}

/* ウィジェットFlexコンテナ */

.widget_flax {
  display: flex;
  flex-wrap: wrap;
  /* gap: 10px; */
  margin-bottom: 20px;
}

.widget_flax .index_widget {
  flex: 1;
  min-width: 280px;
}

/* 写メ日記は100%幅 */
.widget_flax + .index_widget {
  width: 100%;
}

@media (max-width: 768px) {
  .widget_flax {
    flex-direction: column;
  }

  .widget_flax .index_widget {
    width: 100%;
    margin-top: 20px;
  }
}

/* 店長ブログセクション(top.php) */
.manager-blog-section {
  text-align: center;
  padding: 80px 20px 100px;
  background: #f9fafe;
  /* max-width: 100%; */
  overflow-x: hidden;
  max-width: 1057px;
  margin: auto;
}

.manager-blog-section h2 {
  font-size: 30px;
  letter-spacing: 5px;
  color: #6e6e6e;
  font-weight: 300;
  /* margin-bottom: 80px; */
  font-family: "Times New Roman", Times, serif;
}

.manager-blog-section .widget_flax {
  max-width: 940px;
  margin: auto;
}

.manager-blog-section .index_widget {
  padding: 0;
}

.manager-blog-section .diary_widget {
  max-width: 940px;
  margin: auto;
}

.manager-blog-section .index_widget .link {
  margin-bottom: 0;
}

.manager-blog-section iframe {
  border: 1px solid #ccc;
}

@media (max-width: 768px) {
  .manager-blog-section {
    padding: 30px 20px 60px;
  }

  .manager-blog-section h2 {
    margin-bottom: 30px;
  }

  .manager-blog-section iframe {
    width: 100%;
    max-width: 360px;
    height: 460px;
  }
}
