/* ============================================================
   江田畜産 — 日本語タイポグラフィ 共通ルール
   ------------------------------------------------------------
   全ページ共通: 可読性・禁則処理・最小サイズ・コントラスト

   DESIGN RATIONALE:
   CJK 文字は Latin より画数が多く、同じ px でも視覚的に小さい。
   英語 13px で読めるテキストも日本語だと潰れる。
   --color-ink-muted (#444) は cream (#FAF7F0) 上で 7.2:1 (WCAG AAA)。
   ============================================================ */

/* ── 禁則処理 ── */

/* 見出し: 助詞・読点で切らない */
h1, h2, h3, h4, .hero-title, .page-title, .section-title,
.shop-hero-title, .sub-hero-title, .org-hero-title,
.wagyu-guide-title, .article-body h2, .article-body h3 {
  word-break: keep-all;
  overflow-wrap: break-word;
  line-break: strict;
  -webkit-hyphens: none;
  hyphens: none;
}

/* 本文: 助詞ぶら下がり許容 / 句読点孤立防止 */
.jp-text, p.jp, .news-body p, .article-body p,
.faq-a, .product-desc {
  word-break: normal;
  overflow-wrap: break-word;
  line-break: strict;
}

/* 価格・数値: 分断禁止 */
.price, .amount, [data-nowrap],
.product-price, .gift-product-price,
.sub-plan-price, .sub-plan-old-price {
  white-space: nowrap;
}

/* 日付・電話・メール: 分断禁止 */
.date, .phone, .email, time, a[href^="tel:"], a[href^="mailto:"] {
  white-space: nowrap;
}

/* ── 日本語テキスト可読性強化 ── */

/* 段落・説明文: 最低 15px, ゆったり行間 (レイアウトのみ !important) */
p, .desc, .lead, .product-desc,
.restaurant-desc, .faq-a, .news-body p,
.article-body p, .philosophy-text,
[class*="-desc"], [class*="-text"]:not(input):not(textarea):not(button) {
  font-size: max(15px, inherit) !important;
  line-height: 1.9 !important;
}

/* 色は specificity 0 で指定 → ローカル CSS の color: white 等が容易に上書き可能 */
:where(p, .desc, .lead, .product-desc,
  .restaurant-desc, .faq-a, .news-body p,
  .article-body p, .philosophy-text,
  [class*="-desc"], [class*="-text"]:not(input):not(textarea):not(button)) {
  color: var(--body-text-color, var(--color-ink-muted));
}

/* 🔴 ダーク背景セクション: 本文色を白に上書き
   --body-text-color 変数が継承され、子の <p> 等が自動的に白系に */
.hero, .page-header, .page-hero,
.philosophy, .members, .cta-block,
.site-footer, footer.site-footer,
.legal-footer, .legal-header,
[class*="-hero"][class*="--dark"], [class*="-section--dark"],
.bg-forest, .bg-forest-deep,
.dark-bg, [class*="dark-bg"],
.subscription-hero, .shop-hero, .org-hero, .sub-hero,
.philosophy-hero, .about-hero, .journey-hero,
.investors-hero, .press-hero, .awards-hero,
.contact-hero, .restaurants-hero, .global-hero,
.global-section,
.product-hero, .checkout-hero,
.mypage-hero, .login-hero, .mp-hero,
.kit-hero, .quiz-hero, .order-complete-hero,
.terms-header, .privacy-header, .tokushoho-header {
  --body-text-color: rgba(255, 255, 255, 0.92);
}

/* 個別の暗背景テキストクラスも明示的に白へ
   (色を直接指定している既存スタイルを上書き) */
.hero-subtitle, .hero-sub, .hero-desc, .hero-tagline,
.page-subtitle, .page-header .page-subtitle,
.pillar-text, .member-role, .member-bio,
.cta-text, .cta-desc, .cta-sub,
.footer-meta, .footer-tagline, .cert-block p,
.legal-footer span, .legal-footer p {
  color: var(--body-text-color, inherit) !important;
}

/* カード内テキスト: 最低 15px（14pxは日本語で潰れる） */
[class*="-card"] p,
[class*="-block"] p,
.science-card p, .kit-card p,
.data-card p, .recipe-card p,
.cert-block p, .partner-block p,
.why-card p, .plan-feature-list li,
.footer-column p {
  font-size: 15px !important;
  line-height: 1.85 !important;
}

/* 白背景上の薄いテキスト (opacity: 0.7 等) を濃くする */
[class*="-block"] p[style*="opacity"],
.partner-block p,
.cert-block p {
  opacity: 0.85 !important;
}

/* メタ情報・タグ: 最低 12px, 英語ラベル系OK */
[class*="-tag"], [class*="-meta"],
[class*="-loc"], [class*="-badge"],
.eyebrow {
  font-size: max(12px, inherit);
}

/* ボタン・リンク: 最低 14px */
.btn, [class*="-action"], [class*="-cta"],
button[type="submit"],
a[class*="-link"] {
  font-size: max(14px, inherit);
}

/* フッター内テキスト */
.site-footer, .site-footer a,
.site-footer p, .footer-column li {
  font-size: 14px !important;
  line-height: 1.8 !important;
}

/* ── 日本語フォントウェイト補正 ──
   日本語ゴシック体の weight:400 は英語 Inter の 400 より視覚的に細い。
   本文テキストは 450-500 相当にして潰れを防ぐ。 */
p, li, td, dd, .desc, .lead,
[class*="-desc"], [class*="-text"]:not(input):not(textarea):not(button),
[class*="-card"] p, [class*="-block"] p {
  font-weight: 450;
  -webkit-font-smoothing: antialiased;
}

/* ── ダーク背景上のテキスト ──
   森緑・黒背景では白文字も細く見えるため font-weight を上げる */
[style*="background"][style*="#0"] p,
[style*="background"][style*="forest"] p,
.dark-section p, .hero-section p {
  font-weight: 450;
  -webkit-font-smoothing: antialiased;
}
