/* =============================================
   コラム専用スタイルシート v7
   ============================================= */

/* 外枠 */
.col-wrapper        { max-width: 800px; margin: 0 auto; padding: 20px; line-height: 1.8; color: #333; }
.col-box-outer      { background-color: #fff; padding: 20px; margin-bottom: 40px; }
.col-section        { margin-bottom: 40px; }
.col-section-lg     { margin-bottom: 50px; }

/* 段落 */
.col-paragraph              { line-height: 1.8; margin-bottom: 20px; }
.col-paragraph-md           { line-height: 1.8; margin-bottom: 15px; }
.col-paragraph-lg           { line-height: 1.8; margin-bottom: 30px; }
.col-paragraph-mb8          { margin-bottom: 8px; }
.col-paragraph-mb10         { margin: 0 0 10px 0; line-height: 1.8; }
.col-paragraph-mb12         { margin-bottom: 12px; }
.col-paragraph-mb16         { margin-bottom: 16px; }
.col-paragraph-mb20         { margin-bottom: 20px; }
.col-paragraph-mb24         { margin-bottom: 24px; }
.col-paragraph-mb32         { margin-bottom: 32px; }
.col-paragraph-dark         { line-height: 1.8; color: #333; margin-bottom: 20px; }
.col-paragraph-dark-sm      { line-height: 1.8; color: #333; margin-bottom: 10px; }
.col-paragraph-dark-plain   { line-height: 1.8; color: #333; }
.col-paragraph-plain        { line-height: 1.8; }
.col-paragraph-plain16      { line-height: 1.6; margin: 0; }
.col-paragraph-bold-mb      { font-weight: bold; margin-bottom: 10px; margin-top: 0; }
.col-paragraph-bold-mt0-mb10-fs15 { font-weight: bold; margin-top: 0; margin-bottom: 10px; font-size: 15px; }
.col-paragraph-bold-mt0-mb10 { font-weight: bold; margin-top: 0; margin-bottom: 10px; }
.col-paragraph-bold-m010    { font-weight: bold; margin: 0 0 10px 0; color: #333; }
.col-paragraph-warn         { font-weight: bold; color: #856404; margin-bottom: 10px; }
.col-paragraph-green        { margin-top: 15px; font-weight: bold; color: #28a745; }
.col-paragraph-red          { margin-top: 15px; font-weight: bold; color: #dc3545; }
.col-paragraph-mt           { margin-top: 10px; }
.col-paragraph-box-point    { background-color: #e7f3ff; padding: 15px; margin-bottom: 20px; border-radius: 5px; }
.col-paragraph-box-point-bl  { background-color: #e7f3ff; padding: 15px; margin-bottom: 20px; border-radius: 5px; border-left: 4px solid #0073aa; }
.col-paragraph-box-point-bl2 { background-color: #e7f3ff; border-left: 4px solid #0073aa; padding: 20px; margin-bottom: 20px; border-radius: 5px; }
.col-paragraph-box-point-mb10 { background-color: #e7f3ff; padding: 15px; margin-bottom: 10px; border-radius: 5px; }
.col-paragraph-yellow-inline { background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 15px; margin-bottom: 20px; }
.col-paragraph-sm-gray      { font-size: 13px; color: #666; margin-bottom: 8px; font-weight: bold; }
.col-caption                { text-align: left; }
.col-highlight              { font-size: 1.1em; font-weight: bold; color: #0073aa; margin-top: 30px; padding: 20px; background-color: #f8f9fa; border-radius: 8px; }

/* img */
.col-img-full               { width: 100%; max-width: 800px; height: auto; margin-bottom: 20px; border-radius: 8px; }

/* 見出し */
.col-heading2               { font-size: 24px; font-weight: bold; color: #333; margin-top: 40px; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 3px solid #007bff; }
.col-heading2-sm            { font-size: 22px; font-weight: bold; color: #333; margin-top: 40px; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid #007bff; }
.col-heading2-nocolor       { font-size: 24px; font-weight: bold; margin-top: 40px; margin-bottom: 20px; border-bottom: 3px solid #007bff; padding-bottom: 10px; }
.col-heading2-a             { font-size: 1.8em; color: #0073aa; border-bottom: 3px solid #0073aa; padding-bottom: 10px; margin-top: 40px; margin-bottom: 25px; }
.col-heading2-b             { font-size: 1.6em; margin-bottom: 15px; color: #0073aa; border-left: 4px solid #0073aa; padding-left: 10px; }
.col-heading3               { font-size: 1.4em; color: #333; margin-top: 30px; margin-bottom: 15px; padding-left: 15px; border-left: 4px solid #ffc107; }
.col-heading4               { font-size: 18px; font-weight: bold; color: #555; margin-top: 25px; margin-bottom: 15px; }
.col-heading4-blue          { font-size: 16px; font-weight: bold; color: #333; margin-top: 24px; margin-bottom: 12px; padding-left: 10px; border-left: 3px solid #007bff; }
.col-heading4-plain-lg      { font-size: 18px; font-weight: bold; margin-bottom: 10px; }
.col-heading4-plain         { font-size: 1.1em; color: #495057; margin-bottom: 15px; }
.col-heading4-sm            { font-size: 1.2em; color: #495057; margin-top: 20px; margin-bottom: 10px; }
.col-heading5               { font-size: 1.1em; margin-bottom: 10px; color: #0073aa; }
.col-heading5-warn          { font-size: 1.1em; margin-bottom: 10px; color: #856404; }

/* 目次 */
.col-toc                    { background-color: #fff; border: 2px solid #e9ecef; padding: 20px; margin-bottom: 40px; border-radius: 8px; }
.col-toc-title              { font-size: 1.4em; margin-bottom: 15px; color: #0073aa; }
.col-toc-list               { padding-left: 20px; }
.col-toc-item               { margin-bottom: 10px; }
.col-toc-link               { color: #007bff; text-decoration: none; }
.col-toc-link-dark          { color: #333; text-decoration: none; }
.col-toc-link-blue          { color: #0073aa; text-decoration: none; }
.col-toc-link-blue-bold     { color: #0073aa; text-decoration: none; font-weight: bold; }
.col-toc-link-navy          { color: #000a99; }
.col-toc-link-plain         { text-decoration: none; }

/* ボックス */
.col-box-blue               { background-color: #f1f8ff; padding: 20px; border-radius: 8px; margin-bottom: 20px; }
.col-box-blue-sm            { background: #f1f8ff; padding: 20px; border-radius: 8px; margin-bottom: 20px; }
.col-box-yellow             { background-color: #fff3cd; padding: 15px; border-left: 4px solid #ffc107; margin-bottom: 20px; }
.col-box-yellow-r           { background-color: #fff3cd; padding: 20px; margin-bottom: 20px; border-radius: 8px; }
.col-box-yellow-border      { background-color: #fff3cd; border: 2px solid #ffc107; padding: 20px; margin-bottom: 20px; border-radius: 8px; }
.col-box-yellow-bl          { background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 15px; margin-bottom: 20px; }
.col-box-yellow-tr          { background-color: #fff3cd; }
.col-box-gray               { background-color: #f8f9fa; padding: 20px; border-radius: 8px; margin-bottom: 20px; }
.col-box-gray-sm            { background: #f8f9fa; padding: 20px; border-radius: 8px; }
.col-box-gray-compact       { background-color: #f8f9fa; padding: 16px 20px; margin-bottom: 32px; border-radius: 4px; }
.col-box-gray-compact2      { background-color: #f8f9fa; padding: 16px 20px; border-radius: 4px; margin-bottom: 24px; }
.col-box-gray-border        { background-color: #f8f9fa; padding: 20px; margin: 20px 0; border-radius: 8px; border-left: 4px solid #28a745; }
.col-box-gray-blue          { background-color: #f8f9fa; border: 2px solid #0073aa; padding: 20px; margin-bottom: 20px; border-radius: 8px; }
.col-box-quote              { border-left: 3px solid #ccc; padding: 10px 16px; margin-bottom: 24px; background-color: #f8f9fa; font-size: 14px; }
.col-box-lightblue          { background-color: #e7f3ff; padding: 20px; margin: 20px 0; border-radius: 8px; }
.col-box-lightblue-sm       { background-color: #e7f3ff; padding: 15px; margin-bottom: 20px; border-radius: 5px; border-left: 4px solid #0073aa; }
.col-box-lightblue-border   { background-color: #e7f3ff; border-left: 4px solid #0073aa; padding: 20px; margin-bottom: 20px; border-radius: 5px; }
.col-box-intro              { background-color: #f8f9fa; padding: 20px; border-left: 4px solid #0073aa; margin-bottom: 30px; }
.col-box-white-border       { background-color: #fff; padding: 15px; margin: 15px 0; border-radius: 5px; border: 1px solid #dee2e6; }
.col-box-ref                { background-color: #f8f9fa; padding: 20px; margin-top: 40px; border-radius: 8px; border: 1px solid #dee2e6; }

/* フレックスカード系 */
.col-card                   { border: 1px solid #ddd; border-radius: 4px; margin-bottom: 24px; font-size: 14px; }
.col-card-sm                { border: 1px solid #ddd; border-radius: 4px; margin-bottom: 20px; font-size: 14px; }
.col-card-cols              { display: flex; gap: 12px; margin-bottom: 20px; font-size: 14px; }
.col-card-col               { flex: 1; border: 1px solid #ddd; border-radius: 4px; padding: 14px; }
.col-card-header            { background-color: #f8f9fa; padding: 10px 14px; font-weight: bold; border-bottom: 1px solid #ddd; }
.col-card-header-flex       { display: flex; background-color: #f8f9fa; border-bottom: 1px solid #ddd; padding: 10px 14px; font-weight: bold; }
.col-card-header-flex2      { display: flex; background-color: #f8f9fa; border-bottom: 1px solid #ddd; padding: 10px 12px; font-weight: bold; }
.col-card-row               { display: flex; align-items: flex-start; border-bottom: 1px solid #ddd; padding: 11px 14px; }
.col-card-row-gray          { display: flex; align-items: flex-start; border-bottom: 1px solid #ddd; padding: 11px 14px; background-color: #f8f9fa; }
.col-card-row-p12           { display: flex; align-items: flex-start; border-bottom: 1px solid #ddd; padding: 12px; }
.col-card-row-p12-gray      { display: flex; align-items: flex-start; border-bottom: 1px solid #ddd; padding: 12px; background-color: #f8f9fa; }
.col-card-row-nobd          { display: flex; align-items: flex-start; padding: 11px 14px; }
.col-card-row-nobd-gray     { display: flex; align-items: flex-start; padding: 12px; background-color: #f8f9fa; }
.col-card-row2              { display: flex; border-bottom: 1px solid #ddd; padding: 10px 14px; }
.col-card-row2-gray         { display: flex; border-bottom: 1px solid #ddd; padding: 10px 14px; background-color: #f8f9fa; }
.col-card-row2-last         { display: flex; padding: 10px 14px; }
.col-card-row3              { display: flex; border-bottom: 1px solid #ddd; padding: 10px 12px; }
.col-card-row3-gray         { display: flex; border-bottom: 1px solid #ddd; padding: 10px 12px; background-color: #f8f9fa; }
.col-card-row3-last         { display: flex; padding: 10px 12px; }
.col-card-label             { width: 36%; min-width: 130px; font-weight: bold; color: #333; padding-right: 12px; }
.col-card-label-w40         { width: 40%; min-width: 130px; font-weight: bold; color: #333; padding-right: 12px; }
.col-card-label-w38         { width: 38%; min-width: 100px; font-weight: bold; color: #333; padding-right: 12px; }
.col-card-label2            { width: 30%; min-width: 80px; color: #555; }
.col-card-label2-w90        { width: 30%; min-width: 90px; color: #555; }
.col-card-label2-bold       { width: 30%; min-width: 80px; font-weight: bold; color: #555; }
.col-card-label2-bold-w90   { width: 30%; min-width: 90px; font-weight: bold; color: #555; }
.col-card-label-52          { width: 52px; min-width: 52px; font-weight: bold; color: #007bff; text-align: center; }
.col-card-sep               { padding: 0 12px; width: 80px; min-width: 80px; font-weight: bold; border-left: 1px solid #ddd; border-right: 1px solid #ddd; margin: 0 12px; }
.col-card-value             { flex: 1; }
.col-card-value-border      { flex: 1; padding-left: 12px; border-left: 1px solid #ddd; margin-left: 8px; }
.col-card-divider           { border-top: 1px solid #ddd; padding-top: 16px; }

/* CTA */
.col-cta-box                { background-color: #f0f8ff; padding: 30px 20px; margin-top: 50px; border-radius: 8px; border: 2px solid #0073aa; }
.col-cta-header             { text-align: center; margin-bottom: 20px; }
.col-cta-title              { font-size: 1.6em; color: #0073aa; margin-bottom: 15px; font-weight: bold; }
.col-cta-inner              { background-color: #fff; padding: 20px; border-radius: 5px; margin: 20px 0; border-left: 4px solid #28a745; }
.col-cta-text               { margin: 0; line-height: 1.8; }
.col-cta-strong             { color: #0073aa; font-size: 1.1em; }

/* ラベル・フレーム */
.col-label-blue             { display: inline-block; position: relative; top: 3px; padding: 0 0.5em; height: 1.5em; line-height: 1.5em; color: #ffffff; background: #007bff; font-weight: bold; text-align: center; border-radius: 5px 5px 0 0; margin: 0; }
.col-label-green            { display: inline-block; position: relative; top: 3px; padding: 0 0.5em; height: 1.5em; line-height: 1.5em; color: #ffffff; background: #05a272; font-weight: bold; text-align: center; border-radius: 5px 5px 0 0; margin: 0; }
.col-frame-blue             { background: rgba(255,255,255,0); border: solid 3px #007bff; border-radius: 0 5px 5px; padding: 20px; font-size: 100%; }
.col-frame-green            { background: rgba(255,255,255,0); border: solid 3px #05a272; border-radius: 0 5px 5px; padding: 20px; font-size: 100%; }

/* リスト */
.col-list                   { line-height: 1.8; margin: 0; padding-left: 20px; }
.col-list-mb                { line-height: 1.8; margin-bottom: 20px; padding-left: 20px; }
.col-list-compact           { line-height: 1.8; padding-left: 20px; margin-bottom: 20px; }
.col-list-compact-no-mb     { line-height: 1.8; padding-left: 20px; }
.col-list-old               { line-height: 1.8; color: #333; margin-left: 20px; }
.col-list-old-mb            { line-height: 1.8; color: #333; margin-left: 20px; margin-bottom: 20px; }
.col-list-spaced            { margin: 15px 0; padding-left: 25px; }
.col-list-none              { line-height: 2; margin-left: 0; list-style: none; }
.col-list-none-pl           { list-style: none; padding-left: 12px; line-height: 2; margin: 0; }
.col-list-ol-dark           { line-height: 2; color: #333; margin-left: 20px; }
.col-list-ul-dark           { line-height: 2; color: #333; }
.col-list-sm-gray           { font-size: 13px; color: #666; margin: 0; padding-left: 20px; line-height: 2; }
.col-list-sm14-mb20         { font-size: 14px; margin: 0 0 20px 0; padding-left: 20px; line-height: 2; }
.col-list-sm14              { margin: 0; padding-left: 20px; line-height: 2; font-size: 14px; }
.col-list-pl18              { margin: 0; padding-left: 18px; line-height: 2; }
.col-list-summary           { line-height: 2.0; }
.col-list-item              { margin-bottom: 12px; }
.col-list-item-mb20         { margin-bottom: 20px; }
.col-list-item-sm           { margin-bottom: 8px; }
.col-list-item-none         { list-style-type: none; }
.col-ref-item               { margin-bottom: 10px; }
/* サマリーリスト内インラインブロック */
.col-list-summary-sub       { display: block; margin-top: 8px; margin-left: 20px; }
.col-list-summary-ul        { margin-top: 10px; margin-left: 20px; line-height: 1.8; }

/* テーブル */
.col-table                  { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.col-table-800              { width: 100%; max-width: 800px; border-collapse: collapse; }
.col-th-blue                { background-color: #007bff; color: #fff; padding: 12px; text-align: left; border: 1px solid #ddd; }
.col-th-blue-notext         { padding: 12px; border: 1px solid #ddd; }
.col-th-blue-w30            { padding: 12px; text-align: left; border: 1px solid #ddd; width: 30%; }
.col-th-center              { padding: 15px; text-align: center; }
.col-th-gray-bg             { background-color: #f0f0f0; }
.col-th-darkblue            { background-color: #0073aa; color: white; border: 1px solid #dee2e6; padding: 20px; text-align: left; }
.col-th-gray                { background-color: #f8f9fa; border: 1px solid #dee2e6; padding: 20px; text-align: left; }
.col-td                     { padding: 12px; border: 1px solid #ddd; }
.col-td-bold                { padding: 12px; border: 1px solid #ddd; font-weight: bold; }
.col-td-center              { padding: 15px; text-align: center; }
.col-td-lg                  { border: 1px solid #dee2e6; padding: 20px; }
.col-td-lg-bold             { border: 1px solid #dee2e6; padding: 20px; font-weight: bold; }
.col-td-lg-bold-red         { border: 1px solid #dee2e6; padding: 20px; font-weight: bold; color: #dc3545; }
.col-td-lg-bold-green       { border: 1px solid #dee2e6; padding: 20px; font-weight: bold; color: #28a745; }
.col-tr-gray                { background-color: #f8f9fa; }
.col-tr-blue                { background: #007bff; color: #fff; }
.col-tr-darkblue            { background-color: #0073aa; color: white; }
.col-tr-yellow              { background-color: #fff3cd; }
.col-tr-lightgray           { background-color: #f0f0f0; }
.col-td-lightblue           { border: 1px solid #dee2e6; padding: 20px; background-color: #e7f3ff; }

/* テキスト装飾 */
.col-strong-blue            { color: #0073aa; font-weight: 600; }
.col-strong-red             { color: #dc3545; font-weight: bold; }
.col-link-blue              { color: #0073aa; text-decoration: none; }
.col-link-blue-bold         { color: #0073aa; text-decoration: none; font-weight: bold; }
.col-link-navy              { color: #000a99; }
