/* モバイル向け修正スタイル */

/* ヘッダー */
#sp_site #header {
  display: block !important;
  width: 100% !important;
  padding: 10px 0 !important;
  background-color: #fff !important;
  text-align: center !important;
  margin-bottom: 10px !important;
  position: relative !important;
  z-index: 100 !important;
}

#sp_site #logo_image_mobile {
  display: block !important;
  text-align: center !important;
  padding: 5px 0 !important;
  width: 100% !important;
}

#sp_site #logo_image_mobile a {
  display: inline-block !important;
  width: auto !important;
  text-align: center !important;
}

#sp_site #logo_image_mobile img {
  display: inline-block !important;
  max-width: 80% !important;
  height: auto !important;
  margin: 0 auto !important;
}

/* スライダー */
#sp_site #top_slider {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  overflow: visible !important;
  min-height: 200px !important;
}

#sp_site #top_slider .item {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 200px !important;
}

#sp_site #top_slider img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  position: relative !important;
  z-index: 1 !important;
  min-height: 200px !important;
  object-fit: cover !important;
}

/* テキストオーバーレイ */
#sp_site .text-with-gradient {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 85% !important;
  max-width: 320px !important;
  background: rgba(6, 50, 97, 0.7) !important;
  padding: 15px !important;
  border-radius: 5px !important;
  text-align: center !important;
  color: white !important;
  font-weight: bold !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  z-index: 100 !important;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3) !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
}

#sp_site .text-with-gradient .animate {
  opacity: 1 !important;
  display: inline-block !important;
  padding: 0 2px !important;
  margin: 0 1px !important;
}

#sp_site .text-with-gradient .spacer {
  margin: 5px 0 !important;
  height: 1px !important;
  background: rgba(255, 255, 255, 0.5) !important;
  width: 80% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ナビゲーションボタン */
#sp_site #footer_menu_button {
  display: block !important;
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  z-index: 1000 !important;
  background-color: #282C45 !important;
}

#sp_site #footer_menu_button ol {
  display: flex !important;
  justify-content: space-between !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#sp_site #footer_menu_button li {
  flex: 1 !important;
  text-align: center !important;
}

#sp_site #footer_menu_button a {
  display: block !important;
  width: 100% !important;
  padding: 10px 0 !important;
  color: white !important;
  text-align: center !important;
  font-size: 12px !important;
  font-weight: bold !important;
  text-decoration: none !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* SIDEBAR修正 */
#sp_site #footer_menu_button2 a {
  font-size: 12px !important;
}

/* ロゴ画像の修正 - 空白画像問題を解決 */
#sp_site #logo_image_mobile a::before {
  display: none !important;
  content: none !important;
}

#sp_site #logo_image_mobile a img {
  margin: 0 auto !important;
  display: inline-block !important;
}

/* ====================================
   Hero キャッチコピー モダンアニメーション
   Cursor Meetup Tokyo風のエレガントな実装
   ==================================== */

@keyframes fadeUpGentle {
  from {
    opacity: 0;
    transform: translateY(50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ベースクラス - 個別要素のアニメーション */
.hero-text-fade-up {
  opacity: 0;
  transform: translateY(50px);
  animation: fadeUpGentle 1.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* アニメーション遅延設定（段階的表示） */
.hero-text-fade-up[data-delay="1"] {
  animation-delay: 0.4s;
}

.hero-text-fade-up[data-delay="2"] {
  animation-delay: 0.8s;
}

.hero-text-fade-up[data-delay="3"] {
  animation-delay: 1.2s;
}

/* モバイル最適化（CPU負荷軽減） */
@media (prefers-reduced-motion: reduce) {
  .hero-text-fade-up {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

