@media (max-width: 414px) {
  .hero-section {
    height: 48vh !important;
    min-height: 540px !important;
  }
}
/* ===== フローティングボタン: モバイル中央寄せ ===== */
@media (max-width: 600px) {
  .floating-buttons {
    left: 50% !important;
    right: auto !important;
    bottom: 18px !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    display: flex !important;
    justify-content: center !important;
    gap: 12px !important;
    z-index: 1000;
  }
  .floating-buttons .btn {
    min-width: 110px;
    max-width: 48vw;
    font-size: 1.05rem;
    border-radius: 2.2em;
    box-shadow: 0 2px 12px rgba(0,0,0,0.13);
    margin: 0;
  }
}
/* ===== Hero: PC base height ===== */
.hero-section {
  height: 360px;
  min-height: 120px;
  /* ヘッダー高さ分の余白を静的に確保 */
  padding-top: 88px; /* ヘッダー高さに合わせて調整。必要に応じてpx変更 */
}
/* ===== Hero: Mobile larger, PC unchanged ===== */
@media (max-width: 900px) {
  .hero-section {
    height: 56vh !important;     /* 画面の約半分強 */
    min-height: 360px !important; /* 小さい端末でも十分高く */
  }
  .hero-caption-inner {
    padding: 1.2rem 0.7rem;
  }
  .hero-caption-title { font-size: 1.3rem; }
  .hero-caption-sub   { font-size: 0.95rem; }
}

@media (max-width: 600px) {
  .hero-section {
    height: 12vh !important;     /* さらに少し縦を広く */
    min-height: 310px !important;
  }
  .hero-caption-inner {
    padding: 0.9rem 0.5rem;
  }
  .hero-caption-title { font-size: 1.1rem; }
  .hero-caption-sub   { font-size: 0.85rem; }
}
