/* Japanese Typography Optimization */
/* 日本語テキストの改行最適化 */

/* グローバル日本語タイポグラフィ設定 */
body {
    /* 日本語の改行ルール */
    line-break: auto; /* 自動改行 */
    word-break: auto-phrase; /* 文節単位での自動改行 */
    overflow-wrap: break-word; /* 長い単語のみ改行 */
    
    /* 禁則処理 */
    text-wrap: pretty; /* より自然な改行 */
    hanging-punctuation: allow-end; /* 句読点のぶら下げ */
}

/* 段落とテキストコンテナ */
p, 
.content,
.section-content,
.mduc-section,
.mduc-content {
    /* 日本語用の改行設定 */
    line-break: auto;
    word-break: auto-phrase; /* 文節単位での自動改行 */
    overflow-wrap: break-word;
    text-wrap: pretty; /* より自然な改行 */
    
    /* テキストの調整 */
    text-align: left; /* 左寄せに変更（justifyは不自然になりがち） */
    text-justify: inter-ideograph; /* CJK文字間の調整 */
}

/* 見出し要素 */
h1, h2, h3, h4, h5, h6 {
    line-break: auto;
    word-break: auto-phrase;
    overflow-wrap: break-word;
}

/* リスト項目 */
li {
    line-break: auto;
    word-break: auto-phrase;
    overflow-wrap: break-word;
}

/* テーブルセル */
td, th {
    line-break: auto;
    word-break: auto-phrase;
    overflow-wrap: break-word;
}

/* 特定の要素での調整 */
.hero-title,
.section-title {
    line-break: loose; /* タイトルは少し緩めの改行 */
    word-break: auto;
}

/* モバイル対応 */
@media (max-width: 767px) {
    body,
    p,
    .content,
    .section-content {
        /* モバイルでは改行をやや緩める */
        line-break: normal;
        word-break: auto;
        overflow-wrap: anywhere; /* より柔軟な折り返し */
        
        /* フォントサイズに応じた調整 */
        font-feature-settings: "palt" 1; /* プロポーショナル詰め */
    }
    
    /* 狭い画面での見出し */
    h1, h2, h3, h4, h5, h6 {
        line-break: normal;
        overflow-wrap: anywhere;
    }
}

/* 特殊なケースの処理 */
/* 単一文字の改行を防ぐ */
.no-orphan {
    display: inline-block;
    white-space: nowrap;
}

/* 句読点前の改行を防ぐ */
.no-break-before-punctuation {
    display: inline-block;
}

/* 日本語の文節単位改行を最適化 */
p, .content, .section-content, .mduc-section, .mduc-content {
    /* 句読点や助詞の改行を防ぐ追加設定 */
    word-spacing: normal;
    letter-spacing: normal;
    
    /* auto-phraseと併用する設定 */
    -webkit-line-break: after-white-space;
    
    /* フォント機能を活用した禁則処理 */
    font-feature-settings: "jp78" 1, "jp83" 1, "jp90" 1, "jp04" 1;
}

/* CJK句読点の処理 */
.cjk-punctuation {
    font-feature-settings: "halt" 1; /* 半角句読点 */
}

/* 日本語の引用符 */
q:lang(ja) {
    quotes: "「" "」" "『" "』";
}

/* ルビ（振り仮名）のサポート */
ruby {
    line-break: strict;
}

rt {
    font-size: 0.5em;
    line-height: 1;
}

/* 縦書きモードのサポート（必要に応じて） */
.vertical-text {
    writing-mode: vertical-rl;
    text-orientation: upright;
    line-break: strict;
}

/* デバッグ用（開発時のみ使用） */
.debug-line-break {
    border: 1px dashed rgba(255, 0, 0, 0.3);
    background: rgba(255, 0, 0, 0.05);
}