/* ==========================================================================
   SaaSMatch - 共通スタイルシート
   ファイル: assets/css/common.css
   概要:     全ページで共通して使用するCSS変数・コンポーネントを定義します。
             個別ページ固有のスタイルは各ページのCSSファイルに記述してください。
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. CSS カスタムプロパティ（デザイントークン）
   --------------------------------------------------------------------------
   サイト全体のカラーパレット・フォント・余白などを一元管理します。
   色変更時はここだけ修正すれば全体に反映されます。
   -------------------------------------------------------------------------- */
:root {
  /* --- カラーパレット --- */
  --hj-cream:   #fef8ee;   /* ページ背景（クリームホワイト） */
  --hj-warm:    #fdf0d8;   /* セクション背景（ウォームベージュ） */
  --hj-card:    #ffffff;   /* カード背景 */

  --hj-orange:  #f4732a;   /* アクセントカラー（メインオレンジ） */
  --hj-orange2: #ff9553;   /* アクセントカラー（ライトオレンジ） */
  --hj-pink:    #f0447a;   /* アクセントカラー（ピンク） */
  --hj-yellow:  #f9c832;   /* アクセントカラー（イエロー） */
  --hj-green:   #3abf8f;   /* アクセントカラー（グリーン） */

  --hj-navy:    #1a1f35;   /* テキストカラー（ダークネイビー） */
  --hj-text:    #1a1f35;   /* 本文テキスト */
  --hj-muted:   #7a6f62;   /* サブテキスト（ミュートブラウン） */
  --hj-border:  #e8dfd0;   /* ボーダーカラー */

  /* --- グラデーション --- */
  --hj-grad:    linear-gradient(135deg, #f4732a 0%, #f0447a 50%, #f9c832 100%);
  --hj-grad2:   linear-gradient(135deg, #f9c832 0%, #f4732a 100%);

  /* --- シャドウ --- */
  --hj-shadow-sm:  0 2px 12px rgba(0, 0, 0, 0.06);
  --hj-shadow-md:  0 4px 20px rgba(0, 0, 0, 0.06);
  --hj-shadow-lg:  0 12px 36px rgba(244, 115, 42, 0.13);
  --hj-shadow-cta: 0 4px 20px rgba(244, 115, 42, 0.4);

  /* --- 角丸 --- */
  --hj-radius-sm:  10px;
  --hj-radius-md:  14px;
  --hj-radius-lg:  20px;
  --hj-radius-pill: 30px;

  /* --- トランジション --- */
  --hj-transition: 0.2s ease;
}


/* --------------------------------------------------------------------------
   2. リセット・ベーススタイル
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  font-family: "Noto Sans JP", "DM Sans", sans-serif;
  background: var(--hj-cream);
  color: var(--hj-text);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

a {
  transition: color var(--hj-transition);
}


/* --------------------------------------------------------------------------
   3. ナビゲーション
   -------------------------------------------------------------------------- */

/* ナビバー本体 */
.hj-navbar {
  background: #ffffff;
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 3px solid var(--hj-orange);
  box-shadow: 0 2px 16px rgba(244, 115, 42, 0.1);
}

/* ナビバー内コンテナの高さ調整 */
.hj-navbar .container {
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* ロゴ：グラデーションテキスト */
.hj-logo {
  font-family: "Unbounded", sans-serif;
  font-size: 1.15rem;
  font-weight: 900;
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-decoration: none;
  letter-spacing: 0.03em;
}

/* ナビリンクコンテナ */
.hj-nav-links {
  display: flex;
  align-items: center;
  gap: 0;
}

/* ナビリンク共通 */
.hj-nav-links a {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #1a1f35;
  text-decoration: none;
  text-transform: uppercase;
  padding: 0 14px;
  height: 60px;
  display: flex;
  align-items: center;
  border-left: 1px solid rgba(244, 115, 42, 0.12);
  transition: color var(--hj-transition), background var(--hj-transition);
}

/* ナビリンク：ホバー・アクティブ状態 */
.hj-nav-links a:hover,
.hj-nav-links a.active {
  color: var(--hj-orange);
  background: rgba(244, 115, 42, 0.05);
}

/* 現在のページをアンダーラインで強調 */
.hj-nav-links a.active {
  border-bottom: 3px solid var(--hj-orange);
}

/* CTAボタン（無料相談する） */
.hj-nav-cta {
  background: var(--hj-grad);
  color: #ffffff !important;
  border: none;
  font-family: "Unbounded", sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 9px 20px;
  cursor: pointer;
  transition: opacity var(--hj-transition), transform var(--hj-transition);
  margin-left: 8px;
  border-radius: var(--hj-radius-pill);
  white-space: nowrap;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.hj-nav-links a.hj-nav-cta:hover,
.hj-nav-links a.hj-nav-cta.active {
  background: var(--hj-grad);
  opacity: 0.88;
  transform: translateY(-1px);
  color: #ffffff !important;
  border-bottom: none;
}

/* ハンバーガーメニュートグラー */
.navbar-toggler {
  border: 1.5px solid rgba(244, 115, 42, 0.4);
  padding: 4px 8px;
}

.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23f4732a' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.5' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* --- デスクトップ（992px以上）：メニュー常時表示・ハンバーガー非表示 --- */
@media (min-width: 992px) {
  .hj-navbar .navbar-collapse {
    display: flex !important;   /* Bootstrapの collapse(display:none) を上書き */
    flex-basis: auto;
  }
  .hj-navbar .navbar-toggler {
    display: none !important;
  }
}

/* --- レスポンシブ：モバイルナビ --- */
@media (max-width: 991px) {
  .hj-nav-links {
    flex-direction: column;
    background: #ffffff;
    width: 100%;
    border-top: 2px solid var(--hj-orange);
  }

  .hj-nav-links a {
    width: 100%;
    height: 44px;
    border-left: none;
    border-bottom: 1px solid rgba(244, 115, 42, 0.1);
    padding: 0 20px;
  }

  /* モバイルでのアクティブ表示：左ボーダーに変更 */
  .hj-nav-links a.active {
    border-bottom: 1px solid rgba(244, 115, 42, 0.1);
    border-left: 3px solid var(--hj-orange);
  }

  .hj-nav-cta {
    width: 100%;
    margin: 0;
    border-radius: 0;
    justify-content: center;
    height: 44px;
  }

  .hj-navbar .container {
    flex-wrap: wrap;
    height: auto;
    padding: 10px 16px;
  }
}


/* --------------------------------------------------------------------------
   4. パンくずリスト
   -------------------------------------------------------------------------- */
.hj-breadcrumb {
  background: var(--hj-warm);
  padding: 10px 0;
  border-bottom: 1px solid var(--hj-border);
}

.hj-breadcrumb ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  font-size: 0.75rem;
  color: var(--hj-muted);
}

/* セパレーター */
.hj-breadcrumb li + li::before {
  content: "›";
  margin-right: 4px;
  color: var(--hj-border);
}

.hj-breadcrumb a {
  color: var(--hj-muted);
  text-decoration: none;
}

.hj-breadcrumb a:hover {
  color: var(--hj-orange);
}

/* 現在ページ */
.hj-breadcrumb .current {
  color: var(--hj-orange);
  font-weight: 700;
}


/* --------------------------------------------------------------------------
   5. サブページ共通ヒーロー
   -------------------------------------------------------------------------- */
.hj-page-hero {
  background: linear-gradient(150deg, #fff8f0 0%, #fef0e4 40%, #fde8f0 100%);
  padding: 48px 0 40px;
  border-bottom: 3px solid rgba(244, 115, 42, 0.15);
  position: relative;
  overflow: hidden;
}

/* 背景のグロー効果 */
.hj-page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 55% at 85% 15%, rgba(244, 115, 42, 0.14) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 15% 85%, rgba(240, 68, 122, 0.10) 0%, transparent 55%);
}

/* アイキャッチバッジ */
.hj-page-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(244, 115, 42, 0.25);
  border-radius: var(--hj-radius-pill);
  padding: 3px 14px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--hj-orange);
  text-transform: uppercase;
  margin-bottom: 14px;
}

/* ページタイトル */
.hj-page-hero h1 {
  font-family: "Unbounded", sans-serif;
  font-size: clamp(1.5rem, 4vw, 2.6rem);
  font-weight: 900;
  line-height: 1.2;
  color: var(--hj-navy);
  margin-bottom: 12px;
}

/* タイトルのグラデーション部分 */
.hj-page-hero h1 span {
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* サブテキスト */
.hj-page-hero p {
  font-size: 0.9rem;
  color: var(--hj-muted);
  max-width: 560px;
  line-height: 1.85;
}


/* --------------------------------------------------------------------------
   6. セクション共通
   -------------------------------------------------------------------------- */

/* セクション基本パディング */
.hj-section {
  padding: 64px 0;
}

/* セクションラベル（カテゴリ表示） */
.hj-section-label {
  font-family: "Unbounded", sans-serif;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.2em;
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-transform: uppercase;
  margin-bottom: 8px;
  display: inline-block;
}

/* セクションタイトル */
.hj-section-title {
  font-family: "Unbounded", sans-serif;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--hj-navy);
  margin-bottom: 36px;
  line-height: 1.2;
}

/* セクションタイトルのグラデーション部分 */
.hj-section-title span {
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}


/* --------------------------------------------------------------------------
   7. ボタン
   -------------------------------------------------------------------------- */

/* プライマリボタン（グラデーション） */
.hj-btn-primary {
  background: var(--hj-grad);
  color: #ffffff;
  border: none;
  border-radius: 32px;
  padding: 14px 32px;
  font-size: 0.9rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: opacity var(--hj-transition), transform var(--hj-transition), box-shadow var(--hj-transition);
  box-shadow: var(--hj-shadow-cta);
  text-decoration: none;
  display: inline-block;
}

.hj-btn-primary:hover {
  opacity: 0.9;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(244, 115, 42, 0.5);
  color: #ffffff;
}

/* アウトラインボタン（透明背景） */
.hj-btn-outline {
  background: transparent;
  color: var(--hj-navy);
  border: 2px solid rgba(26, 31, 53, 0.25);
  border-radius: 32px;
  padding: 12px 32px;
  font-size: 0.9rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: all var(--hj-transition);
  text-decoration: none;
  display: inline-block;
}

.hj-btn-outline:hover {
  border-color: var(--hj-orange);
  color: var(--hj-orange);
  background: rgba(244, 115, 42, 0.07);
}

/* CTAセクション用ボタン */
.hj-btn-cta {
  background: var(--hj-grad);
  color: #ffffff;
  border: none;
  border-radius: 32px;
  padding: 15px 38px;
  font-size: 0.95rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 6px 24px rgba(244, 115, 42, 0.45);
  transition: opacity var(--hj-transition), transform var(--hj-transition);
  text-decoration: none;
  display: inline-block;
}

.hj-btn-cta:hover {
  opacity: 0.9;
  transform: translateY(-2px);
  color: #ffffff;
}

/* スモールサイズ修飾クラス */
.hj-btn-sm {
  padding: 9px 20px;
  font-size: 0.82rem;
}


/* --------------------------------------------------------------------------
   8. カード共通
   -------------------------------------------------------------------------- */

/* ベースカード */
.hj-card {
  background: #ffffff;
  border-radius: var(--hj-radius-lg);
  border: 1.5px solid var(--hj-border);
  box-shadow: var(--hj-shadow-md);
  transition: transform var(--hj-transition), box-shadow var(--hj-transition);
}

.hj-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--hj-shadow-lg);
}

/* ステップカード */
.hj-step-card {
  background: #ffffff;
  border-radius: var(--hj-radius-lg);
  padding: 28px 22px;
  border: 1.5px solid var(--hj-border);
  box-shadow: 0 4px 24px rgba(244, 115, 42, 0.07);
  position: relative;
  height: 100%;
  transition: transform var(--hj-transition), box-shadow var(--hj-transition);
}

.hj-step-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--hj-shadow-lg);
}

/* ステップ番号（グラデーション） */
.hj-step-num {
  font-family: "Unbounded", sans-serif;
  font-size: 2.8rem;
  font-weight: 900;
  line-height: 1;
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  opacity: 0.7;
  margin-bottom: 10px;
}

/* ステップアイコン（絵文字） */
.hj-step-icon {
  font-size: 1.8rem;
  margin-bottom: 10px;
}

.hj-step-card h3 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--hj-navy);
  margin-bottom: 8px;
}

.hj-step-card p {
  font-size: 0.82rem;
  color: var(--hj-muted);
  line-height: 1.75;
}

/* ステップ間の矢印 */
.hj-step-arrow {
  position: absolute;
  right: -18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.2rem;
  z-index: 1;
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* モバイルでは矢印を非表示 */
@media (max-width: 767px) {
  .hj-step-arrow {
    display: none;
  }
}

/* ステップ注記エリア */
.hj-step-note {
  border-left: 4px solid var(--hj-orange);
  background: rgba(244, 115, 42, 0.05);
  border-radius: 0 12px 12px 0;
  padding: 12px 18px;
  margin-top: 28px;
  font-size: 0.78rem;
  color: var(--hj-muted);
  line-height: 1.7;
}

/* 記事カード */
.hj-article-card {
  background: #ffffff;
  border-radius: var(--hj-radius-lg);
  border: 1.5px solid var(--hj-border);
  overflow: hidden;
  height: 100%;
  box-shadow: var(--hj-shadow-md);
  transition: transform var(--hj-transition), box-shadow var(--hj-transition);
}

.hj-article-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 36px rgba(244, 115, 42, 0.14);
}

/* サムネイルエリア */
.hj-article-thumb {
  height: 148px;
  overflow: hidden;
  position: relative;
}

.hj-article-thumb svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* カテゴリバッジ */
.hj-article-cat {
  display: inline-block;
  background: var(--hj-grad);
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 20px;
  margin-bottom: 8px;
  letter-spacing: 0.06em;
}

.hj-article-card .card-body {
  padding: 18px 20px;
}

.hj-article-card h3 {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--hj-navy);
  margin-bottom: 8px;
  line-height: 1.5;
}

.hj-article-card p {
  font-size: 0.78rem;
  color: var(--hj-muted);
  line-height: 1.7;
  margin-bottom: 0;
}

/* 記事リンク */
.hj-article-link {
  font-size: 0.78rem;
  color: var(--hj-orange);
  font-weight: 700;
  margin-top: 10px;
  display: block;
  text-decoration: none;
}

.hj-article-link:hover {
  color: var(--hj-pink);
}

/* SaaSカード */
.hj-saas-card {
  background: #ffffff;
  border-radius: var(--hj-radius-lg);
  border: 1.5px solid var(--hj-border);
  padding: 24px;
  height: 100%;
  box-shadow: var(--hj-shadow-md);
  transition: transform var(--hj-transition), box-shadow var(--hj-transition);
}

.hj-saas-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--hj-shadow-lg);
}

/* SaaSロゴプレースホルダー */
.hj-saas-logo {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Unbounded", sans-serif;
  font-size: 0.85rem;
  font-weight: 900;
  color: #ffffff;
  margin-bottom: 14px;
}

/* SaaSカテゴリバッジ */
.hj-saas-badge {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--hj-orange);
  text-transform: uppercase;
  margin-bottom: 4px;
}

.hj-saas-card h3 {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--hj-navy);
  margin-bottom: 10px;
}

.hj-saas-card p {
  font-size: 0.8rem;
  color: var(--hj-muted);
  line-height: 1.75;
  margin-bottom: 14px;
}

/* SaaSタグ */
.hj-saas-tag {
  background: rgba(244, 115, 42, 0.08);
  color: var(--hj-orange);
  border: 1px solid rgba(244, 115, 42, 0.2);
  font-size: 0.68rem;
  padding: 3px 10px;
  border-radius: 20px;
  display: inline-block;
}


/* --------------------------------------------------------------------------
   9. タグ・バッジ
   -------------------------------------------------------------------------- */

/* フィルタータグ */
.hj-tag {
  display: inline-block;
  background: #ffffff;
  border: 1.5px solid var(--hj-border);
  border-radius: 20px;
  color: var(--hj-muted);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 5px 14px;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--hj-transition);
}

.hj-tag:hover {
  border-color: var(--hj-orange);
  color: var(--hj-orange);
  box-shadow: 0 2px 10px rgba(244, 115, 42, 0.15);
}

/* タグラベル */
.hj-tag-label {
  font-size: 0.72rem;
  color: var(--hj-muted);
  font-weight: 600;
  margin-bottom: 10px;
}

/* グラデーションバッジ（汎用） */
.badge-cat {
  display: inline-block;
  background: var(--hj-grad);
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 20px;
  letter-spacing: 0.06em;
}


/* --------------------------------------------------------------------------
   10. 検索バー
   -------------------------------------------------------------------------- */
.hj-search-wrap {
  display: flex;
  border-radius: 50px;
  overflow: hidden;
  border: 2px solid var(--hj-border);
  background: #ffffff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
  transition: border-color var(--hj-transition), box-shadow var(--hj-transition);
}

/* フォーカス時のハイライト */
.hj-search-wrap:focus-within {
  border-color: var(--hj-orange);
  box-shadow: 0 4px 24px rgba(244, 115, 42, 0.2);
}

.hj-search-wrap input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: var(--hj-text);
  font-size: 0.9rem;
  font-family: inherit;
  padding: 14px 22px;
}

.hj-search-wrap input::placeholder {
  color: #bbbbbb;
}

.hj-search-wrap button {
  background: var(--hj-grad);
  color: #ffffff;
  border: none;
  padding: 0 30px;
  font-size: 0.88rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  border-radius: 0 50px 50px 0;
  transition: opacity var(--hj-transition);
}

.hj-search-wrap button:hover {
  opacity: 0.88;
}


/* --------------------------------------------------------------------------
   11. トラストバー（実績数値）
   -------------------------------------------------------------------------- */
.hj-trust {
  background: var(--hj-grad);
  padding: 0;
}

.hj-trust-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.hj-trust-item {
  padding: 14px 28px;
  border-right: 1px solid rgba(255, 255, 255, 0.25);
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 140px;
  justify-content: center;
}

.hj-trust-item:last-child {
  border-right: none;
}

.hj-trust-num {
  font-family: "Unbounded", sans-serif;
  font-size: 1.6rem;
  font-weight: 900;
  color: #ffffff;
  line-height: 1;
}

.hj-trust-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}


/* --------------------------------------------------------------------------
   12. CTAセクション
   -------------------------------------------------------------------------- */
.hj-cta-section {
  background: linear-gradient(150deg, #fff8f0 0%, #fef0e4 50%, #fde8f0 100%);
  padding: 64px 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--hj-border);
  border-bottom: 1px solid var(--hj-border);
}

/* グロー装飾 */
.hj-cta-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 50% 80% at 90% 50%, rgba(244, 115, 42, 0.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 60% at 10% 50%, rgba(240, 68, 122, 0.10) 0%, transparent 60%);
}

.hj-cta-section h2 {
  font-family: "Unbounded", sans-serif;
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  font-weight: 900;
  color: #1a1f35;
  margin-bottom: 10px;
  line-height: 1.3;
}

.hj-cta-section p {
  font-size: 0.9rem;
  color: var(--hj-muted);
  line-height: 1.85;
}


/* --------------------------------------------------------------------------
   13. FAQアコーディオン（Bootstrap拡張）
   -------------------------------------------------------------------------- */
.hj-faq-section {
  background: var(--hj-warm);
  padding: 72px 0;
}

/* アコーディオンアイテム */
.accordion-item {
  background: #ffffff !important;
  border-radius: var(--hj-radius-md) !important;
  border: 1.5px solid var(--hj-border) !important;
  margin-bottom: 10px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

/* アコーディオンボタン */
.accordion-button {
  background: #ffffff !important;
  color: var(--hj-navy) !important;
  font-size: 0.88rem;
  font-weight: 700;
  box-shadow: none !important;
  border-radius: var(--hj-radius-md) !important;
}

/* 展開時のスタイル */
.accordion-button:not(.collapsed) {
  color: var(--hj-orange) !important;
  background: rgba(244, 115, 42, 0.04) !important;
}

.accordion-body {
  font-size: 0.83rem;
  color: var(--hj-muted);
  line-height: 1.85;
}

/* FAQページへのリンク */
.hj-faq-more {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--hj-orange);
  text-decoration: none;
}

.hj-faq-more:hover {
  color: var(--hj-pink);
}


/* --------------------------------------------------------------------------
   14. フォーム共通
   -------------------------------------------------------------------------- */

/* フォームカード（白いコンテナ） */
.hj-form-card {
  background: #ffffff;
  border-radius: var(--hj-radius-lg);
  border: 1.5px solid var(--hj-border);
  padding: 36px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
}

/* フォームラベル */
.hj-form-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--hj-navy);
  margin-bottom: 6px;
  display: block;
}

/* テキストインプット */
.hj-form-input {
  width: 100%;
  padding: 11px 16px;
  border: 1.5px solid var(--hj-border);
  border-radius: 12px;
  font-size: 0.88rem;
  font-family: inherit;
  outline: none;
  transition: border-color var(--hj-transition), box-shadow var(--hj-transition);
  background: #ffffff;
  color: var(--hj-text);
}

/* フォーカス時 */
.hj-form-input:focus {
  border-color: var(--hj-orange);
  box-shadow: 0 0 0 3px rgba(244, 115, 42, 0.1);
}

/* テキストエリア */
.hj-form-textarea {
  min-height: 100px;
  resize: vertical;
}

/* セレクトボックス */
.hj-form-select {
  width: 100%;
  padding: 11px 16px;
  border: 1.5px solid var(--hj-border);
  border-radius: 12px;
  font-size: 0.88rem;
  font-family: inherit;
  background: #ffffff;
  color: var(--hj-text);
  cursor: pointer;
  outline: none;
  appearance: auto;
}

.hj-form-select:focus {
  border-color: var(--hj-orange);
  box-shadow: 0 0 0 3px rgba(244, 115, 42, 0.1);
}


/* --------------------------------------------------------------------------
   15. ウェーブ区切り
   -------------------------------------------------------------------------- */
.hj-wave-divider {
  display: block;
  width: 100%;
  line-height: 0;
  overflow: hidden;
}

.hj-wave-divider svg {
  display: block;
  width: 100%;
}


/* --------------------------------------------------------------------------
   16. フッター
   -------------------------------------------------------------------------- */
.hj-footer {
  background: #2d1810;
  padding: 40px 0 24px;
  border-top: 3px solid var(--hj-orange);
}

/* フッターロゴ（グラデーション） */
.hj-footer-logo {
  font-family: "Unbounded", sans-serif;
  font-size: 1.1rem;
  font-weight: 900;
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* フッターサブテキスト */
.hj-footer-desc {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 4px;
}

/* フッターリンク */
.hj-footer a {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  transition: color var(--hj-transition);
}

.hj-footer a:hover {
  color: var(--hj-orange);
}

/* フッターコピーライト */
.hj-footer-copy {
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.25);
}

/* フッター区切り線 */
.hj-footer-divider {
  border-color: rgba(255, 255, 255, 0.1) !important;
}


/* --------------------------------------------------------------------------
   17. ユーティリティクラス
   -------------------------------------------------------------------------- */

/* グラデーションテキスト */
.text-grad {
  background: var(--hj-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* 区切り線（ウォームカラー） */
.divider-warm {
  border: none;
  border-top: 1px solid var(--hj-border);
  margin: 32px 0;
}


/* --------------------------------------------------------------------------
   18. アニメーション
   -------------------------------------------------------------------------- */

/* フェードアップアニメーション（ページ読み込み時） */
.hj-fade {
  opacity: 0;
  transform: translateY(22px);
  animation: hjFade 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes hjFade {
  to {
    opacity: 1;
    transform: none;
  }
}

/* アニメーション遅延クラス */
.d1 { animation-delay: 0.1s; }
.d2 { animation-delay: 0.2s; }
.d3 { animation-delay: 0.3s; }
.d4 { animation-delay: 0.45s; }


/* ==========================================================================
   11. アクセシビリティ／コントラスト改善パッチ（後付け）
   --------------------------------------------------------------------------
   ・WCAG AA(4.5:1)を満たす色へ調整
   ・キーボードフォーカスの可視化
   ・prefers-reduced-motion 対応
   ========================================================================== */

:root {
  /* 白文字を乗せても 4.5:1 以上になる「ボタン専用」グラデーション */
  --hj-grad-btn:  linear-gradient(135deg, #c2410c 0%, #be3a6b 55%, #b45309 100%);
  /* 白背景に乗せるテキスト用オレンジ（リンク・タグ等）4.5:1 以上 */
  --hj-orange-text: #c2410c;
}

/* ミュートテキストをコントラスト改善（旧 #7a6f62 は warm 背景で 4.36:1 と不足） */
:root { --hj-muted: #6f6456; }

/* --- CTA系ボタン：ヘッダーCTA（.hj-nav-cta）と同じ明るいグラデーションに統一 --- */
.hj-btn-primary,
.hj-btn-cta {
  background: var(--hj-grad);
}

/* --- 白背景に乗るオレンジ文字を、読めるトーンへ --- */
.hj-article-link,
.hj-saas-tag,
.hj-tag,
.hj-tag:hover,
.hj-btn-outline:hover {
  color: var(--hj-orange-text);
}
.hj-tag:hover,
.hj-btn-outline:hover { border-color: var(--hj-orange-text); }

/* --- キーボードフォーカスの可視化（全インタラクティブ要素） --- */
a:focus-visible,
button:focus-visible,
.choice:focus-visible,
.hj-tag:focus-visible,
.accordion-button:focus-visible,
.hj-form-input:focus-visible,
.hj-form-select:focus-visible,
.wiz-tab:focus-visible,
[role="tab"]:focus-visible {
  outline: 3px solid #c2410c;
  outline-offset: 2px;
  border-radius: 6px;
}
/* マウス操作時は輪郭を出さない（focus-visible のみ） */
:focus:not(:focus-visible) { outline: none; }

/* --- 選択中の choice に視覚以外の手掛かりを補強 --- */
.choice[aria-pressed="true"],
.choice[aria-checked="true"] { font-weight: 700; }

/* --- アニメーションを控えめにする設定の尊重 --- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- フォーム検証・状態表示まわり --- */
.req {
  color: var(--hj-orange-text);
  font-size: .82em;
  font-weight: 700;
  margin-left: 2px;
}
.hj-form-err {
  display: block;
  margin-top: 4px;
  font-size: .78rem;
  color: #c2410c;
}
.hj-form-input.is-invalid,
.hj-form-select.is-invalid {
  border-color: #c2410c;
  box-shadow: 0 0 0 3px rgba(194, 65, 12, .15);
}
.hj-form-status {
  margin-top: 14px;
  padding: 10px 14px;
  border-radius: var(--hj-radius-sm);
  font-size: .85rem;
  background: #fdecea;
  color: #9a3412;
}
.hj-form-status.ok {
  background: #e8f6ef;
  color: #1f7a55;
}
/* 選択上限に達したときの軽いフィードバック */
.choice-grid--limit {
  animation: hj-shake .3s ease;
}
@keyframes hj-shake {
  0%, 100% { transform: translateX(0); }
  25%      { transform: translateX(-4px); }
  75%      { transform: translateX(4px); }
}

/* --- ヘッダーCTA（.hj-nav-cta）と同じ配色に揃える修飾クラス --- */
.hj-btn-brand {
  background: var(--hj-grad);
}

/* 文字数上限エラー表示（hidden属性解除後に確実に表示） */
.hj-form-err:not([hidden]) {
  display: block !important;
}




/* --------------------------------------------------------------------------
   20. ページネーション
   -------------------------------------------------------------------------- */

  :root {
    --PgNa-bg: #f6f5f2;
    --PgNa-surface: #ffffff;
    --PgNa-ink: #1f2620;
    --PgNa-ink-soft: #5b6259;
    --PgNa-line: #e1ddd3;
    --PgNa-accent: #2f6f5e;
    --PgNa-accent-soft: #e3efe9;
    --PgNa-danger: #b3492f;
  }
  .pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
  }
  .pagination button {
    min-width: 32px;
    height: 32px;
    border: 1px solid var(--PgNa-line);
    background: var(--PgNa-surface);
    color: var(--PgNa-ink);
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
  }
  .pagination button:hover:not(:disabled) {
    border-color: var(--PgNa-accent);
  }
  .pagination button.active {
    background: var(--hj-grad);
    border-color: var(--hj-grad);
    color: #fff;
    font-weight: 600;
  }
  .pagination button:disabled {
    opacity: 0.35;
    cursor: default;
  }
  .pagination .ellipsis {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    color: var(--PgNa-ink-soft);
    font-size: 13px;
  }