@charset "utf-8";
/* 基本スタイル（PDFとHTML共通） */
/* （フォントファミリーは各言語のCSSで設定している） */

/**************************************************
 * 全体のスタイル
 */
body {
    color: #000;
    color: cmyk(0, 0, 0, 1.0);
    line-height: 1.2; /* ここを変えたら、app\Optional\StandardOption.phpのgetOmStyleも変更すること */
    text-align: left;
    text-align-last: left;
}

/* 箇条書き、目次、章目次、索引 */
li {
    list-style-type: none;
    display: block;	/* この設定がないと、PDFのイラスト領域内の箇条書きがなぜか右にずれる */
}

/**************************************************
 * 文字装飾
 */
/* 斜体 */
i {
    font-style: italic;
}

/* 下線 */
u {
    text-decoration: underline;
    border-width: 0.5pt;
}

/* 上付き、下付き */
sup {
    font-size: 0.75em;
    line-height: 0; /* 上付き、下付きを追加しても行間を変えない */
    vertical-align: super;
}

sub {
    font-size: 0.75em;
    line-height: 0; /* 上付き、下付きを追加しても行間を変えない */
    vertical-align: sub;
}

table sup,
table sub {
    line-height: 1; /* 表の罫線との間隔を確保 */
}

/* 囲み罫 */
span.edit_kei {
    box-sizing: border-box;
    border: 0.05em solid #000;
    border-color: cmyk(0, 0, 0, 1.0);

    /* フォントサイズを縮小＆横長（文字幅を標準の文章と同じくらいにする） */
    font-size: 0.82em;
    font-stretch: 1.1;
}
@media print {
    span.edit_kei {
        padding: 0.2em 0.15em 0.06em;
    }
}

/* 白抜き文字 */
span.edit_withoutwhite {
    background-color: #4D4D4D;
    background-color: cmyk(0, 0, 0, 0.83);
    color: #fff;
    color: cmyk(0, 0, 0, 0);

    /* フォントサイズを縮小＆横長（文字幅を標準の文章と同じくらいにする） */
    font-size: 0.82em;
    font-stretch: 1.1;
}
@media print {
    span.edit_withoutwhite {
        padding: 0.2em 0.15em 0.06em;
    }
}

/* 囲罫の中の白抜、白抜の中の囲罫が小さくならないようにする*/
.edit_withoutwhite .edit_kei,
.edit_kei .edit_withoutwhite {
    font-size: 1em;
}

/* 分禁(途中改行の禁止) */
span.edit_unbreak {
    white-space: nowrap;
}

/* ハイフネーション */
.edit_hyphenation {
    hyphens: auto;
}


/******************************
 * タイトルパラ
 */
h1, h2, h3, h4 {
    break-inside: avoid;
    page-break-after: avoid;
}

/* L1タイトルパラ（章） */
/* （フォントサイズはlang.cssのヘッダーで設定） */
h1 {
    border-bottom: 1px solid;
    border-bottom-color: #000;
    border-bottom-color: cmyk(0, 0, 0, 1);
}

/* L2タイトルパラ（節） */
h2 {
    font-size: 12pt;
}

/* L3タイトルパラ（項） */
h3 {
    font-size: 11pt;
}

/* L4タイトルパラ */
/* h4 {
} */


/******************************
 * 文章
 */
p {
    font-size: 1em;
    break-inside: avoid-page;
}


/******************************
 * 箇条書き
 */
li.list_circle,
li.list_triangle,
li.list_point,
li.list_hyphen,
li.list_asterisk,
li.list_em_asterisk,
li.list_jp_asterisk {
    break-inside: avoid-page;
    margin-left: 16pt;
}

li.list_circle:before,
/* li.list_triangle:before, */
li.list_point:before,
li.list_hyphen:before,
li.list_asterisk:before,
li.list_em_asterisk:before,
li.list_jp_asterisk:before {
    display: inline-block;
    margin-left: -16pt;
    width: 16pt;
    text-align: center;
    text-align-last: auto;
    letter-spacing: normal; /* パラの送り幅変更の影響を受けないようにする */
    line-height: 1em; /* 箇条書きの文頭と文章のフォント違いの影響を受けないようにする */
}

li.list_number,
li.list_alphabet,
li.list_posi_number,
li.list_nega_number,
li.list_comment,
li.list_brackets {
    break-inside: avoid-page;
    margin-left: 16pt;
}

li.list_number:before,
li.list_alphabet:before,
li.list_nega_number:before,
li.list_posi_number:before,
li.list_comment:before,
li.list_brackets:before {
    display: inline-block;
    margin-left: -16pt;
    width: 16pt;
    text-align: center;
    text-align-last: auto;
    letter-spacing: normal; /* パラの送り幅変更の影響を受けないようにする */
    line-height: 1em; /* 箇条書きの文頭と文章のフォント違いの影響を受けないようにする */
}

/* 箇条書き（丸） */
li.list_circle:before {
    content: "\25CF";
    font-size: 7pt;
}

/* 箇条書き（三角） */
li.list_triangle:before {
    content: "";
    display: inline-block;
    vertical-align: -0.5pt;
    margin-left: -10pt;
    margin-right: -6pt;
    width: 16pt;
    box-sizing: border-box;
    border: 4pt solid transparent;
    border-left: 6.5pt solid #666;
    border-left-color: cmyk(0, 0, 0, 0.75);
}

/* 箇条書き（中黒） */
li.list_point:before {
    content: "•";
}

/* 箇条書き（ハイフン） */
li.list_hyphen:before {
    content: "\2212";
}

/* 箇条書き（半角アスタリスク） */
li.list_asterisk:before {
    content: "*";
}

/* 箇条書き（全角アスタリスク） */
li.list_em_asterisk:before {
    content: "＊";
}

/* 箇条書き（※） */
li.list_jp_asterisk:before {
    content: "※";
}

/* 箇条書き（番号） */
li.list_number:before {
    counter-increment: list_number_counter;
    content: counter(list_number_counter)".";
}

/* 箇条書き（アルファベット） */
li.list_alphabet:before {
    counter-increment: list_alphabet_counter;
    content: counter(list_alphabet_counter,lower-alpha)")";
}

/* 箇条書き（丸付き数字 白／黒） */
li.list_nega_number:before {
    content: counter(list_nega_number_counter,lower-alpha);
    counter-increment: list_nega_number_counter;
}

li.list_posi_number:before {
    content: counter(list_posi_number_counter,lower-alpha);
    counter-increment: list_posi_number_counter;
}

/* 箇条書き（半角アスタリスクと番号） */
li.list_comment {
    font-size: 0.75em;
}

li.list_comment:before {
    counter-increment: list_comment_counter;
    content: "*"counter(list_comment_counter);
    vertical-align: 2pt;
}

/* 箇条書き（括弧数字） */
li.list_brackets {
    font-size: 0.8em;
}

li.list_brackets:before {
    counter-increment: list_brackets_counter;
    content: "("counter(list_brackets_counter)")";
}


/******************************
 * リンク
 */
/* 全リンク（目次、章目次、本文の参照、索引） */
a[href] {
    text-decoration: none;
}

a[href]:after {
    white-space: nowrap;
}


/******************************
 * 表
 */
table {
    table-layout: fixed;
}

/* イラスト領域の左・右・中央揃え用のtableタグ */
table[id^="alignTable_"] {
    width: 100%;
}

th, td {
    break-inside: avoid;
}

td {
    vertical-align: middle;
}

td div + * {
    clear: both;
}

/* #3073 表ヘッダが横方向位置未設定のとき左寄せにする */
th:not([class*="align_left"]):not([class*="align_center"]):not([class*="align_right"]) {
    text-align: left;
}

/********************
 * 表テンプレート
 */
table.template_danger,
table.template_warning,
table.template_caution,
table.template_point,
table.template_notice,
table.template_note {
    break-inside: avoid;
}

/* 危険、警告、注意のヘッダ */
table.template_danger th p,
table.template_warning th p,
table.template_caution th p {
    font-size: 13.5pt;
}

/* 危険、警告、注意の「！」アイコン */
table.template_danger th p::before,
table.template_warning th p::before,
table.template_caution th p::before {
    content: "";
    background-image: url("image/hazard_icon.pdf"); /* svgファイルでは、AHF変換でなぜか高さ0になるため、pdfにした */
    background-repeat: no-repeat;
    background-size: contain;
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: middle;
    margin-right: 5px;
}

/* 取扱いのポイントのヘッダ */
table.template_point th {
    padding-bottom: 0 !important;
}

table.template_point th p {
    display: inline-block;
    border: 1px solid #000;
    border-color: cmyk(0%,0%,0%,100%);
    background-color: #fff;
    background-color: cmyk(0%,0%,0%,0%);
}

/* NOTICEのヘッダ */
table.template_notice th {
    padding-bottom: 0 !important;
}

table.template_notice th p {
    display: inline-block;
    background-color: #4D4D4D;
    background-color: cmyk(0, 0, 0, 0.83);
    color: #fff;
    color: cmyk(0%,0%,0%,0%);
    padding: 2px 4px;
}

/******************************
 * 縦横揃え
 */
/* 横揃え */
.align_left:not([rotate]) {
    text-align: left;
    text-align-last: left;
}

.align_center:not([rotate]) {
    text-align: center;
    text-align-last: center;
}

.align_right:not([rotate]) {
    text-align: right;
    text-align-last: right;
}

/* 縦揃え */
.valign_top:not([rotate]) {
    vertical-align: top;
}

.valign_middle:not([rotate]) {
    vertical-align: middle;
}

.valign_bottom:not([rotate]) {
    vertical-align: bottom;
}

/********************
 * 回転（表のセル）
*/
th[rotate="90"],
td[rotate="90"] {
    writing-mode: vertical-rl;
    text-orientation: sideways;
}

th[rotate="90"] > *,
td[rotate="90"] > * {
    transform: rotate(180deg);
}

/* セル内水平方向の寄せはvertical-alignを使用（180度回転しているため逆転） */
th[rotate="90"].align_left,
td[rotate="90"].align_left {
    vertical-align: bottom;
}

th[rotate="90"].align_center,
td[rotate="90"].align_center {
    vertical-align: middle;
}

th[rotate="90"].align_right,
td[rotate="90"].align_right {
    vertical-align: top;
}

/* セル内垂直方向の寄せはtext-alignを使用 */
th[rotate="90"].valign_top,
td[rotate="90"].valign_top {
    text-align: right;
    text-align-last: right;
}

th[rotate="90"].valign_middle,
td[rotate="90"].valign_middle {
    text-align: center;
    text-align-last: center;
}

th[rotate="90"].valign_bottom,
td[rotate="90"].valign_bottom {
    text-align: left;
    text-align-last: left;
}

/********************
 * 表組み自体の横揃え
 */
table.align_left {
    margin-right: auto;
    margin-left: 0;
}

table.align_center {
    margin-left: auto;
    margin-right: auto;
}

table.align_right {
    margin-right: 0;
    margin-left: auto;
}


/******************************
 * 背景色
 */
/* 薄い灰色  */
.backcolor_silver {
    background-color: #EEE;
    background-color: cmyk(0%,0%,0%,10%);
}

/* 濃い灰色 */
.backcolor_gray {
    background-color: #C9C9C9;
    background-color: cmyk(0%,0%,0%,30%);
}

/* 黒 */
.backcolor_black {
    background-color: #000;
    background-color: cmyk(0%,0%,0%,100%);
    color: #fff;
    color: cmyk(0%,0%,0%,0%);
}

/******************************
 * 罫線
 */

/********************
 * 罫線(細線）
 */
/* 上 */
.border_top {
    border-top: 0.25pt solid #000;
    border-top-color: cmyk(0, 0, 0, 1.0);
}
/* 下 */
.border_bottom {
    border-bottom: 0.25pt solid #000;
    border-bottom-color: cmyk(0, 0, 0, 1.0);
}
/* 左 */
.border_left {
    border-left: 0.25pt solid #000;
    border-left-color: cmyk(0, 0, 0, 1.0);
}
/* 右 */
.border_right {
    border-right: 0.25pt solid #000;
    border-right-color: cmyk(0, 0, 0, 1.0);
}
/* 斜線 右上がり */
@media print {
    .border_upper {
        -ah-reverse-diagonal-border-color: cmyk(0, 0, 0, 1.0);
        -ah-reverse-diagonal-border-style: solid;
        -ah-reverse-diagonal-border-width: 0.25pt;
    }
}
@media screen {
    .border_upper {
        background-image: linear-gradient(to left top, transparent calc(50% - 0.5px), #000 50%, #000 calc(50% + 0.5px), transparent calc(50% + 1px));
    }
}
/* 斜線 右下がり */
@media print {
    .border_downer {
        -ah-diagonal-border-color: cmyk(0, 0, 0, 1.0);
        -ah-diagonal-border-style: solid;
        -ah-diagonal-border-width: 0.25pt;
    }
}
@media screen {
    .border_downer {
        background-image: linear-gradient(to right top, transparent calc(50% - 0.5px), #000 50%, #000 calc(50% + 0.5px), transparent calc(50% + 1px));
    }
}

/********************
 * 罫線（太線）
 */
/* 上 */
.border_top_thick {
    border-top: 1.5pt solid #000;
    border-top-color: cmyk(0, 0, 0, 1.0);
}
/* 下 */
.border_bottom_thick {
    border-bottom: 1.5pt solid #000;
    border-bottom-color: cmyk(0, 0, 0, 1.0);
}
/* 左 */
.border_left_thick {
    border-left: 1.5pt solid #000;
    border-left-color: cmyk(0, 0, 0, 1.0);
}
/* 右 */
.border_right_thick {
    border-right: 1.5pt solid #000;
    border-right-color: cmyk(0, 0, 0, 1.0);
}
/* 斜線 右上がり */
@media print {
    .border_upper_thick {
        -ah-reverse-diagonal-border-color: cmyk(0, 0, 0, 1.0);
        -ah-reverse-diagonal-border-style: solid;
        -ah-reverse-diagonal-border-width: 1.5pt;
    }
}
@media screen {
    .border_upper_thick {
        background-image: linear-gradient(to left top, transparent calc(50% - 1.5px), #000 50%, #000 calc(50% + 1.5px), transparent calc(50% + 1px));
    }
}
/* 斜線 右下がり */
@media print {
    .border_downer_thick {
        -ah-diagonal-border-color: cmyk(0, 0, 0, 1.0);
        -ah-diagonal-border-style: solid;
        -ah-diagonal-border-width: 1.5pt;
    }
}
@media screen {
    .border_downer_thick {
        background-image: linear-gradient(to right top, transparent calc(50% - 1.5px), #000 50%, #000 calc(50% + 1.5px), transparent calc(50% + 1px));
    }
}


/********************
 * シンボル
 */
img.symbol {
    /* 高さ指定しないと大きい画像になる */
    height: 1em;
    line-height: 1em;
    vertical-align: -0.15em;
}


/**************************************************
 * イラスト領域
 */
.svg_parent {
    position: relative;
}

.foreign_object {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 900;
    /* #2871: イラスト領域自体の寄せによる子アイテムの寄せ */
    text-align: left;
    text-align-last: left;
}

/* 大きさマニュアル設定で中央/右寄せのイラスト領域について、HTMLでの表示位置がずれないようイラスト領域の幅変更（画面幅いっぱいからstyleで指定されている幅へ） */
@media screen {
    .template_manual {
        display: inline-block;
    }
}

/* キャプション（イラスト領域内の文章） */
.svg_parent .foreign_object p {
    font-size: 9pt;
}

/* キャプションの行送りを狭める #4361 */
.svg_parent .foreign_object p,
.svg_parent .foreign_object li {
    line-height: 1;
}

/* 座布団 */
.svg_parent .foreign_object p[class*="backcolor_caption"] {
    padding-left: 0.75pt;
    padding-right: 0.75pt;
}


/********************
 * 図表番号（#3060）
 */
/* 図表番号と図表タイトルの間の空白 */
caption span,
figcaption span {
    padding-right: 10px;
}

/* PDF変換時、リンク先に余分な空白が生じないようにする */
.figOrTableLink {
    font-size: 0;
    page-break-after: avoid;
    margin: 0;
}

/* 図と図表番号の泣き別れ禁止 #3034 */
figure {
    break-inside: avoid;
}

/* A4フル図表番号ありの幅がページ幅と同じになるように、htmlで設定されたスタイルを上書きする #2947 */
div.l3_alias > figure,
div.inside_avoid > figure {
    display: block !important;
}

/* イラスト領域内の表 */
.foreign_object > table > caption {
    margin-top: -16px; /* エディタでの表示位置より下にずれるのを補正 */
    white-space: nowrap; /* キャプションを1行にして高さを16pxに固定 */
    width: inherit; /* 表の幅が細いとき、キャプション幅まで表幅が伸びるのを防ぐ */
}


/******************************
 * 制御パラのセパレータ（区切り線）
 */
.gray_separator {
    height: 3pt;
    margin: 8pt;
    background-color: #C9C9C9;
    background-color: cmyk(0, 0, 0, 0.3);
}


/******************************
 * インデント
 */
.layer_1 {
    margin-left: 16pt;
}
.layer_2 {
    margin-left: calc(16pt * 2);
}
.layer_3 {
    margin-left: calc(16pt * 3);
}

/* 文頭装飾付きのインデント */
li.layer_1 {
    margin-left: calc(16pt * 2);
}
li.layer_2 {
    margin-left: calc(16pt * 3);
}
li.layer_3 {
    margin-left: calc(16pt * 4);
}

/* イラスト領域内のインデントの位置を補正 */
.svg_parent .foreign_object > p.layer_1,
.svg_parent .foreign_object > p.layer_2,
.svg_parent .foreign_object > p.layer_3 {
    margin-left: 0;
}

.svg_parent .foreign_object > li.layer_1,
.svg_parent .foreign_object > li.layer_2,
.svg_parent .foreign_object > li.layer_3 {
    margin-left: 0;
    padding-left: 16pt;
}

/* 幅100%の表の幅をインデント量に応じて縮める */
.layer_1[style*="width: 100%;"],
.layer_1[style*="width:100%;"] {
    width: calc(100% - 16pt) !important;
}

.layer_2[style*="width: 100%;"],
.layer_2[style*="width:100%;"] {
    width: calc(100% - 16pt * 2) !important;
}

.layer_3[style*="width: 100%;"],
.layer_3[style*="width:100%;"] {
    width: calc(100% - 16pt * 3) !important;
}


/******************************
 * 泣き別れ禁止
 */
div.inside_avoid {
    page-break-inside: avoid!important;
}


/********************
 * 回り込み
 */
div.wrap_aside[float=left] {
    float: left;
    margin-right: 2.5pt;
}

div.wrap_aside[float=right] {
    float: right;
    margin-left: 2.5pt;
}

/* #2776回り込み内の泣き別れ禁止への対応。イラスト領域を囲うtable幅を上書き */
div.wrap_aside .inside_avoid > table[id^="alignTable_"] {
    width: auto;
}

clear-float {
    clear: both;
    display: block;
}


/********************
 パラ間の余白
********************/
/* タイトルパラ */
/*h1,*/
h4 {
    margin-top: 10pt;
}

h2,
h3 {
    margin-top: 10pt;
}

/* 文章、箇条書きパラ */
h1 + p,
h2 + p,
h3 + p,
/*h4 + p,*/
table + p,
figure + p,
div.svg_parent + p {
    margin-top: 5pt;
}

h1 + li,
h2 + li,
h3 + li,
/*h4 + li,*/
table + li,
figure + li,
div.svg_parent + li {
    margin-top: 5pt;
}

/* 表（横方向レイアウト用の表以外） */
table:not([id^="alignTable_"]) {
    margin-top: 5pt;
}

/* イラスト領域 */
div.svg_parent:first-child,
*:not(figcaption) + div.svg_parent,
figcaption {
    margin-top: 5pt;
}

table:not([id^="alignTable_"]) div.svg_parent:first-child {
    margin-top: 0;
}

.foreign_object > h1,
.foreign_object > h2,
.foreign_object > h3,
.foreign_object > h4 {
    margin-top: 0;
}

.foreign_object > li {
    margin-top: 0;
    padding-right: 14pt; /* #2950 イラスト領域右端からの箇条書きはみ出し防止*/
    box-sizing: border-box;
}

.foreign_object > p,
.foreign_object > table {
    margin-top: 0;
}

/* 回り込み */
div.wrap_aside + p,
div.wrap_aside + li,
div.wrap_aside + h1,
div.wrap_aside + h2,
div.wrap_aside + h3,
div.wrap_aside + h4 {
    margin-top: 5pt;
}

clear-float + p,
clear-float + li,
clear-float + div.inside_avoid {
    margin-top: 5pt;
}

/* 開発用：パラ間の余白の確認に使用する */
/*
@page { border: solid; }
div.l3_alias > * { background-color: #bee0ce; }
*/


/******************************
 * 章目次
 */
/* 章目次後に改ページ */
div.contents_TOC {
    page-break-after: always;
}

/* 章の説明と目次部分の間の余白など */
.index_area.one_column,
.index_area.two_column {
    margin: 20pt 0;
}

/* 目次項目の左余白 */
.section_index li {
    padding-left: 10pt;
}

/* 目次項目のフォントサイズ */
.section_index p.tree_door {
    font-size: 1.4em;
    line-height: 1.2em;
}

/* REDの残骸。非表示にしないと空行になる。できればHTMLに出力しないようにしてもらいたい。 */
.chapter_index_backgroundimage {
    display: none;
}


/******************************
 * 索引
 */
/* 見出し（索引の頭文字）と親索引名 */
p.PL_lead,
li.parent_li > p {
    page-break-after: avoid; /* 直後の改ページを避ける */
}

/* 第1階層（正確には、同一見出し内の索引群）の索引 */
/* ul.t_contents_ul_s {
} */

/* 第2階層の索引 */
ul.t_contents_ul_s ul {
    padding-left: 1em;
}

/* 索引名が複数行のとき、1行目の頭が少し左に出るようにする */
ul.t_contents_ul_s p {
    margin-left: 4.5pt;
    text-indent: -4.5pt;
    text-align: left; /* 日本語でのjustifyを打ち消す */
}

/* 索引名とその下の見出しの間の余白 */
.PL_lead + ul.t_contents_ul_s {
    margin-bottom: 10.0pt;
}

.PL_lead + ul.t_contents_ul_s:last-child {
    margin-bottom: 0;
}

/* 索引名の長体 */
span.tree_index .edit_tall {
    font-stretch: 80%;
}
