/* --- レイアウト基盤（PC・ノートPC用） --- */
.hero-main-container {
  max-width: 1100px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 50px !important;
  padding: 0 30px !important;
}

/* ★ サブ見出し（水色・大きく目立たせる） ★ */
.hero-sub-badge {
  display: block !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #2178d1 !important;
  margin-bottom: 12px !important;
  letter-spacing: 0.05em !important;
}

.giant-catch-copy {
  font-size: 42px !important;
  font-weight: 900 !important;
  color: #0f2a4a !important;
  margin-bottom: 20px !important;
}

.hero-visual-right {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  flex: 0 0 500px !important; /* PCでは500px固定 */
  width: 500px !important;
}

/* ★背面の池（シェイプレイヤー）★ */
.hero-shape-back-layer {
  position: absolute !important;
  top: 50% !important; left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 100% !important; height: 100% !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

.hero-shape-back-layer::before,
.hero-shape-back-layer::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important; left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

.hero-shape-back-layer::before {
  width: 155% !important; height: 130% !important;
  background-color: rgba(0, 242, 255, 0.05) !important;
  border-radius: 60% 40% 60% 40% / 50% 50% 50% 50% !important;
  animation: waveShape 15s ease-in-out infinite alternate !important;
}

.hero-shape-back-layer::after {
  width: 135% !important; height: 140% !important;
  background-color: rgba(33, 120, 209, 0.03) !important;
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50% !important;
  animation: waveShape 18s ease-in-out infinite alternate-reverse !important;
}

.hero-video-wrapper {
  position: relative !important;
  z-index: 10 !important;
  width: 100% !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 15px 45px rgba(15, 42, 74, 0.1) !important;
  background: #ffffff !important;
}

.hero-img-scaled {
  position: relative !important;
  z-index: 10 !important;
  width: 100% !important;
  height: auto !important;
  background: transparent !important;
}

.impact-cta-btn {
  display: inline-block !important;
  background-color: #2178d1 !important;
  color: #ffffff !important;
  padding: 15px 40px !important;
  border-radius: 50px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

@keyframes waveShape {
  0% { border-radius: 60% 40% 60% 40% / 50% 45% 55% 50%; transform: translate(-50%, -50%) rotate(-2deg); }
  100% { border-radius: 45% 55% 45% 55% / 55% 50% 50% 45%; transform: translate(-50%, -50%) rotate(2deg); }
}

/* -------------------------------------------
   ★ モバイル・タブレット用修正（ここが重要）
---------------------------------------------- */
@media (max-width: 991px) {
  .hero-main-container {
    flex-direction: column !important; /* 縦並びに変更 */
    text-align: center !important;     /* テキストを中央寄せ */
    padding: 60px 20px !important;    /* 上下余白を調整 */
    gap: 40px !important;
  }

  .hero-content-left {
    width: 100% !important;
    max-width: 100% !important;
  }

  .hero-sub-badge {
    font-size: 18px !important; /* スマホでは少し小さく */
  }

  .giant-catch-copy {
    font-size: 30px !important; /* 見出しをスマホサイズに縮小 */
    line-height: 1.3 !important;
  }

  .hero-visual-right {
    width: 100% !important;      /* 幅を画面いっぱいに */
    flex: 0 0 auto !important;   /* 500px固定を解除 */
    max-width: 450px !important; /* 大きすぎ防止 */
    margin: 0 auto !important;
  }

  .hero-shape-back-layer::before { width: 130% !important; }
  .hero-shape-back-layer::after { width: 110% !important; }

 .hero-video-description {
  /* ほんの少しだけ文字を小さく、色を優しく */
  font-size: 14px !important;
  color: #6a7d92 !important; /* 少しだけ明るいグレーに */
  line-height: 1.6 !important;
  margin-top: 18px !important; /* 動画との距離を少し詰めると一体感が出ます */
}

/* 「フルバージョンを視聴する」のリンク */
.hero-video-description a {
  color: #2178d1 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border-bottom: 1.5px solid rgba(33, 120, 209, 0.2) !important; /* 下線を細く、薄く */
}