/* ══════════════════════════════════════════════════
   article-page.css — MD記事ページ 汎用スタイル
   ══════════════════════════════════════════════════ */

/* Hero（絵文字バナー） */
.article-page-hero {
  height: 220px;
  display: flex; align-items: center; justify-content: center;
  font-size: 5rem;
  background: var(--green-pale); /* JS設定前フォールバック */
}

/* メタバー */
.article-updated { font-size: 0.75rem; color: var(--gray); margin-bottom: 10px; }
.article-meta-bar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-bottom: 12px;
}
.article-cat-badge {
  font-size: 0.72rem; font-weight: 700; padding: 3px 10px;
  border-radius: 100px; background: var(--green-pale); color: var(--green);
}
.article-date  { font-size: 0.78rem; color: var(--gray); }
.article-author { font-size: 0.78rem; color: var(--gray); }

/* タイトル・タグ */
.article-title-main {
  font-size: 1.28rem; font-weight: 900; line-height: 1.65;
  letter-spacing: -0.01em; margin-bottom: 12px;
}
.article-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 28px; }
.article-tag-item {
  font-size: 0.75rem; color: var(--green); font-weight: 700;
  background: var(--green-pale); border-radius: 100px; padding: 3px 10px;
}

/* ══════════════════════════════════════════════════
   本文（MD レンダリング領域）
   ══════════════════════════════════════════════════ */
.article-page-body { font-size: 0.95rem; line-height: 1.85; color: var(--dark); letter-spacing: 0.01em; }

.article-page-body h2 {
  font-size: 1.35rem; font-weight: 900; color: var(--dark);
  padding-bottom: 12px; border-bottom: 3px solid var(--green);
  margin: 36px 0 28px; letter-spacing: -0.3px;
}
.article-page-body h3 {
  font-size: 1rem; font-weight: 700; margin: 24px 0 10px;
  color: var(--dark); letter-spacing: 0.02em;
}
.article-page-body p  { margin-bottom: 16px; }
.article-page-body a  { color: var(--green); font-weight: 700; text-decoration: underline; }
.article-page-body ul,
.article-page-body ol { padding-left: 20px; margin-bottom: 14px; }
.article-page-body li { margin-bottom: 6px; }
.article-page-body strong { font-weight: 700; }

/* テーブル（markdown table → ui-table に自動付与） */
.article-page-body .table-wrap { overflow-x: auto; border-radius: var(--radius); border: 1px solid #E5E7EB; margin: 0 0 20px; }
.article-page-body table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.article-page-body thead tr { background: var(--green); color: #fff; }
.article-page-body th { padding: 12px 16px; font-weight: 700; text-align: left; white-space: nowrap; }
.article-page-body td { padding: 12px 16px; border-top: 1px solid #E5E7EB; vertical-align: top; color: #374151; line-height: 1.7; }
.article-page-body tbody tr:nth-child(even) { background: var(--gray-light); }

/* ══════════════════════════════════════════════════
   汎用コンポーネント
   ══════════════════════════════════════════════════ */

/* 基本情報テーブル（TH列が左側のタイプ） */
.info-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; font-size: 0.88rem; }
.info-table th,
.info-table td { padding: 10px 14px; border: 1px solid #E5E7EB; text-align: left; vertical-align: top; }
.info-table th { background: var(--green-pale); font-weight: 700; width: 35%; color: var(--green); white-space: nowrap; }
.info-table td { background: #fff; line-height: 1.7; }
/* table-wrap内に誤ってinfo-tableを置いた場合でも二重ボーダー・余白を防ぐ */
.table-wrap .info-table { margin-bottom: 0; }

/* アクセスボックス */
.access-box {
  background: #F0FDF4; border: 1px solid #BBF7D0; border-radius: 12px;
  padding: 16px 18px; margin-bottom: 16px;
}
.access-box-head { font-size: 0.82rem; font-weight: 700; color: var(--green); margin-bottom: 8px; }
.access-box p { font-size: 0.88rem; margin: 0; line-height: 1.75; }

/* 警告ボックス */
.warn-box {
  background: #FFFBEB; border-left: 4px solid #F59E0B;
  border-radius: 0 10px 10px 0; padding: 14px 16px; margin-bottom: 20px;
}
.warn-box p { margin: 0; font-size: 0.88rem; line-height: 1.7; }

/* スポットカード */
.spot-card {
  background: #F6FAF7; border: 1px solid #C9E8D5; border-radius: 12px;
  padding: 16px 18px; margin-bottom: 14px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
.spot-card-head {
  display: flex; align-items: center; gap: 8px;
  font-size: 0.95rem; font-weight: 700; margin-bottom: 8px;
}
.spot-badge {
  font-size: 0.68rem; font-weight: 700; padding: 2px 8px;
  border-radius: 100px; background: var(--green-pale); color: var(--green);
}
.spot-card p { font-size: 0.88rem; margin: 0; line-height: 1.75; }

/* 地図 */
.detail-map {
  width: 100%; height: 260px; border-radius: 16px;
  overflow: hidden; background: #F3F4F6; margin-bottom: 20px;
}
.detail-map iframe { width: 100%; height: 100%; border: none; }
.map-placeholder-small {
  width: 100%; height: 260px; border-radius: 16px; background: #F3F4F6;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #6B7280; font-size: 0.85rem; gap: 8px; margin-bottom: 20px;
}

/* ICHICO CTA */
.ichico-cta {
  background: var(--green-pale); border-radius: 14px;
  padding: 24px 20px; text-align: center; margin: 20px 0;
  box-shadow: 0 2px 12px rgba(45, 106, 79, 0.08);
}
.ichico-cta p { font-size: 0.9rem; color: #1F3D32; line-height: 1.8; margin-bottom: 16px; }
.ichico-cta a {
  display: inline-block; background: var(--green); color: #fff;
  font-weight: 700; padding: 12px 28px; border-radius: 100px;
  text-decoration: none; font-size: 0.92rem;
}

/* FAQ（シンプル Q. / A. テキスト形式） */
.article-page-body .faq-list { margin-bottom: 20px; }
.article-page-body .faq-item {
  background: none; border: none; border-radius: 0;
  padding: 0; margin-bottom: 20px;
}
.article-page-body .faq-q { font-size: inherit; font-weight: 700; color: var(--dark); margin-bottom: 4px; }
.article-page-body .faq-a { font-size: 0.92rem; color: #374151; line-height: inherit; margin: 0; }

/* 関連記事 */
.related-wrap { margin-top: 40px; padding-top: 24px; border-top: 2px solid var(--green-pale); }
.related-label { font-size: 0.82rem; font-weight: 700; color: var(--gray); margin-bottom: 12px; }
.related-cards { display: flex; flex-direction: column; gap: 10px; }
.related-card {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; background: #fff; border: 1px solid #E5E7EB;
  border-radius: 12px; text-decoration: none; color: var(--dark);
  font-size: 0.88rem; font-weight: 700; line-height: 1.5;
  transition: box-shadow 0.2s; cursor: pointer; touch-action: manipulation;
}
.related-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.related-card-emoji { font-size: 1.4rem; flex-shrink: 0; }
