/*
 * 本文の装飾（第2段階-2）。AFFINGER をそっくり再現せず、意味（ボックス・吹き出し・ボタン・表・注意書き・マーカー・ブログカードなど）が
 * 伝わるシンプルな見た目にする。本文で使われている class はすべてここ（か base.css・custom.css・ページ内の style）で見た目を当てている。
 * 一覧は migration/check/classes.csv（migration/scripts/check_classes.py が作る）。
 * 色はできるだけ本文の style 属性（AFFINGER のブロックで選んだ色）を優先し、ここでは既定の色だけを決める。
 */

/* ---------- アイコン（AFFINGER の st-fa・Font Awesome の代わりに文字で出す。フォントは読み込まない） ---------- */
.st-fa, .fa, .fas, .far, .st-css-no { font-style: normal; display: inline-block; line-height: 1; }
.st-fa::before, .fa::before { font-family: system-ui, sans-serif; }
.st-svg-after, .fa-after { margin-left: .4em; }
.st-svg-chevron-right::before, .fa-chevron-right::before, .fa-angle-right::before { content: "›"; }
.st-svg-angle-double-right::before, .fa-angle-double-right::before { content: "»"; }
.fa-angle-double-down::before { content: "▾"; }
.st-svg-clock-o::before { content: "🕒"; }
.st-svg-file-text-o::before, .fa-file-text-o::before, .fa-newspaper-o::before { content: "📄"; }
.st-svg-lightbulb-o::before, .fa-lightbulb-o::before { content: "💡"; }
.st-svg-pencil::before, .fa-pencil::before, .fa-edit::before { content: "✎"; }
.st-svg-question-circle::before { content: "?"; font-weight: 700; }
.st-svg-refresh::before { content: "↻"; }
.st-svg-star::before { content: "★"; }
.st-svg-star-half-o::before { content: "☆"; }
.st-svg-tags::before { content: "🏷"; }
.st-svg-user::before, .fa-user-plus::before, .fa-user-tie::before { content: "👤"; }
.st-svg-bullhorn::before { content: "📣"; }
.st-svg-oukan::before { content: "👑"; }
.st-svg-plus-thin::before { content: "+"; }
.fa-check::before, .fa-check-circle::before { content: "✓"; }
.fa-exclamation-circle::before { content: "!"; font-weight: 700; }
.fa-address-book::before, .fa-address-card::before { content: "📇"; }
.fa-briefcase::before { content: "💼"; }
.fa-calculator::before { content: "🧮"; }
.fa-comments::before { content: "💬"; }
.fa-desktop::before { content: "🖥"; }
.fa-list-ol::before, .fa-tasks::before { content: "☰"; }
.fa-rss::before { content: "🚀"; }
.fa-university::before { content: "🏛"; }
.faa-flash { animation: none; }

/* ---------- WordPress 標準のブロック ---------- */
.wp-block-paragraph, .has-text { margin: 0 0 1.2em; }
.wp-block-heading { line-height: 1.4; }
.wp-block-list, .wp-block-latest-posts, .wp-block-latest-posts__list { padding-left: 1.5em; margin: 0 0 1.2em; }
.wp-block-separator, .has-alpha-channel-opacity { border: 0; border-top: 1px solid #ddd; margin: 2em auto; }
.is-style-wide { max-width: none; }
.wp-block-table, .has-fixed-layout { margin: 0 0 1.5em; overflow-x: auto; }
.has-fixed-layout { table-layout: fixed; width: 100%; }
.wp-block-code { background: #f5f5f5; padding: 12px; overflow-x: auto; font-size: .85rem; white-space: pre-wrap; }
.wp-block-quote, .wp-block-quote-is-layout-flow { margin: 0 0 1.5em; padding: .5em 1em; border-left: 4px solid #ddd; color: #555; }
.wp-block-image, .wp-block-media-text__media { margin: 0 0 1.5em; }
.wp-element-caption, figcaption { font-size: .8rem; color: #666; text-align: center; margin-top: .4em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.alignleft { float: left; margin: 0 1em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1em; }
.alignnone, .alignwide, .alignfull { max-width: 100%; }
.is-resized img, .size-full, .size-large, .size-medium, .size-thumbnail, .size-post-thumbnail,
.size-st_thumb150, .size-st_post_slider_3, .wp-post-image,
.attachment-st_thumb150, .attachment-st_post_slider_3, .attachment-thumbnail, .attachment-post-thumbnail,
[class*="wp-image-"] { max-width: 100%; height: auto; }
.clearfix::after { content: ""; display: table; clear: both; }
.is-layout-flow > *, .wp-block-group-is-layout-flow > *, .wp-block-column-is-layout-flow > *,
.wp-block-cover-is-layout-flow > *, .wp-block-latest-posts-is-layout-flow > * { margin-block: 0 1em; }
.is-layout-constrained, .wp-block-group-is-layout-constrained, .wp-block-cover-is-layout-constrained { max-width: 100%; }
.is-layout-flex, .wp-block-columns-is-layout-flex, .wp-block-buttons-is-layout-flex, [class*="wp-container-core-"] { display: flex; flex-wrap: wrap; gap: 1em; }
.wp-block-columns { margin: 0 0 1.5em; }
.wp-block-column { flex: 1 1 240px; min-width: 0; }
.is-vertically-aligned-top, .are-vertically-aligned-top { align-self: flex-start; }
.is-vertically-aligned-center { align-self: center; }
.is-content-justification-center { justify-content: center; }
.wp-block-group, .wp-block-group__inner-container { margin: 0 0 1.5em; }
.has-background { padding: .8em 1em; border-radius: 4px; }
.has-border, .has-st-border { border: 1px solid #ddd; }
.has-st-solid-border { border-style: solid; }
.has-st-dashed-border { border-style: dashed; }
.has-st-medium-border-width { border-width: 2px; }
.has-st-thick-border-width { border-width: 3px; }
.has-st-background { background: #f6f6f6; }
.has-text-color, .has-link-color { /* 色は style 属性のとおり */ color: inherit; }
.has-text-align-center { text-align: center; }
.has-text-align-left { text-align: left; }
.has-text-align-right { text-align: right; }
.has-small-font-size { font-size: .85rem; }
.has-st-regular-font-size { font-size: 1rem; }
.has-large-font-size { font-size: 1.3rem; }
.has-huge-font-size { font-size: 1.8rem; }
.has-custom-font-size { line-height: 1.4; }
.has-white-color { color: #fff; }
.has-very-dark-gray-color { color: #313131; }
.has-very-light-gray-color { color: #eee; }
.has-white-background-color { background-color: #fff; }
.has-very-light-gray-background-color { background-color: #eee; }
.has-very-pale-yellow-background-color { background-color: #fffbe6; }
.has-vivid-yellow-background-color { background-color: #fcb900; }
.has-light-green-cyan-background-color { background-color: #7bdcb5; }
.has-primary-background-color { background-color: #2a7a4f; }
.has-luminous-dusk-gradient-background { background: linear-gradient(135deg, #ffcb70, #c751c0 50%, #4158d0); }
.has-midnight-gradient-background { background: linear-gradient(135deg, #020381, #2874fc); }
.has-pale-ocean-gradient-background { background: linear-gradient(135deg, #fff5cb, #b6e3d4 50%, #33a7b5); }
.has-st-margin-bottom, .has-st-margin-bottom--1, .has-st-margin-bottom--2 { margin-bottom: 1.5em; }
.has-no-st-margin-bottom { margin-bottom: 0; }
.has-st-td-width, .has-st-td-width--1, .has-st-td-width--2 { table-layout: auto; }
.has-custom-width { max-width: 100%; }
.wp-block-buttons { margin: 0 0 1.5em; }
.wp-block-button, .wp-block-button__link, .wp-element-button { display: inline-block; }
.wp-block-button__link, .wp-element-button { padding: .7em 1.4em; border-radius: 6px; background: #2a7a4f; color: #fff; text-decoration: none; font-weight: 700; }
.wp-block-button__width-75 { width: 75%; }
.wp-block-button__width-100 { width: 100%; }
.wp-block-button__width-75 .wp-block-button__link, .wp-block-button__width-100 .wp-block-button__link { display: block; text-align: center; }
.is-style-outline .wp-block-button__link, .is-style-outline--1 .wp-block-button__link, .is-style-outline--2 .wp-block-button__link,
.is-style-outline--3 .wp-block-button__link, .is-style-outline--4 .wp-block-button__link { background: transparent; color: #2a7a4f; border: 2px solid currentColor; }
.is-style-fill .wp-block-button__link, .is-style-default { background-clip: padding-box; }
.wp-block-cover, .wp-block-cover__image-background, .has-parallax { position: relative; min-height: 200px; display: flex; align-items: center; justify-content: center; overflow: hidden; background-size: cover; background-position: center; }
.wp-block-cover__image-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; min-height: 0; }
/* カバーの帯：重ねの色は本文の class（has-very-light-gray-background-color など）のとおり。指定がないときだけ黒 */
.wp-block-cover__background, .has-background-dim { position: absolute; inset: 0; opacity: .5; }
.wp-block-cover__background:not([class*="-background-color"]), .has-background-dim:not([class*="-background-color"]) { background-color: #000; }
.has-background-dim-0 { opacity: 0; }
.has-background-dim-30 { opacity: .3; }
.has-background-dim-40 { opacity: .4; }
.wp-block-cover__inner-container { position: relative; z-index: 1; width: 100%; padding: 1em; color: #fff; }
/* 明るいカバー（is-light）では文字は黒（WordPress の標準と同じ。旧サイトの「専門家を探す」など） */
.wp-block-cover.is-light .wp-block-cover__inner-container { color: #1a1a1a; }
.has-custom-content-position, .is-position-top-left { align-items: flex-start; justify-content: flex-start; }
.wp-block-spacer { display: block; }
.wp-block-media-text { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; align-items: center; margin: 0 0 1.5em; }
.has-media-on-the-right .wp-block-media-text__media { order: 2; }
.wp-block-media-text__content { min-width: 0; }
@media (max-width: 600px) { .wp-block-media-text { grid-template-columns: 1fr; } .has-media-on-the-right .wp-block-media-text__media { order: 0; } }
.wp-block-latest-posts__post-title { font-weight: 700; }
.wp-block-latest-posts__post-excerpt { font-size: .85rem; color: #555; }
.wp-block-latest-posts__featured-image img { max-width: 100%; height: auto; }
[class*="wp-elements-"] a { color: inherit; }
.is-style-regular, .is-style-plain { border: 0; }
.has-title { margin: 0 0 1.5em; }
.has-icon, .has-icon-label, .has-more, .has-excerpt, .has-date { position: relative; }

/* ---------- 目次（Rich Table of Contents。ID の rtoc-N は旧サイトのまま） ---------- */
.rtoc-mokuji-content { border: 1px solid #ddd; background: #fafafa; border-radius: 6px; padding: 12px 16px; margin: 1.5em 0; }
.frame4, .preset5, .animation-none, .helvetica { font-family: inherit; }
#rtoc-mokuji-title, .rtoc_center { text-align: center; font-weight: 700; margin-bottom: .5em; }
/* 開閉のボタンだけ隠す（目次の箱も rtoc_open の class を持つので、button に限る） */
button.rtoc_open_close, button.rtoc_open { display: none; }
.rtoc-mokuji-content.rtoc_open { display: block; }
.rtoc-mokuji, .decimal_ol, .level-1 { margin: 0; padding-left: 1.4em; }
.mokuji_none, .level-2 { list-style: none; padding-left: 1em; }
.rtoc-item { margin: .2em 0; font-size: .92rem; }
.rtoc-item a { text-decoration: none; }

/* ---------- 見出しの飾り ---------- */
.is-style-st-heading-custom-step, .is-style-st-heading-custom-line, .is-style-st-heading-custom-question,
.is-style-st-heading-custom-bubble, .is-style-st-heading-custom-ranking, .rankh4, .rankh4-sc { padding: .4em .6em; border-left: 5px solid #2a7a4f; background: #f3f8f5; }
.is-style-st-heading-custom-question::before { content: "Q. "; color: #2a7a4f; }
.is-style-st-heading-custom-bubble { border-radius: 8px; border-left: 0; background: #e8f3ec; }
.is-style-st-heading-custom-ranking::before, .rankh4::before { content: "👑 "; }
.rankid1::before { content: "1位 "; color: #c9a000; } .rankid2::before { content: "2位 "; color: #888; } .rankid3::before { content: "3位 "; color: #a0522d; }
.rankstlink-l2 a { display: inline-block; padding: .6em 1.2em; background: #2a7a4f; color: #fff; border-radius: 6px; text-decoration: none; }
.st-title-border { border-bottom: 2px solid #2a7a4f; padding-bottom: .3em; }
.st-title-under { position: relative; }
.st-point { font-weight: 700; color: #2a7a4f; margin: 0 0 .5em; }
.st-point-text::before { content: "✔ "; }

/* ---------- ボックス ---------- */
.st-mybox, .st-mybox-class { position: relative; margin: 1.5em 0; padding: 1em 1em .2em; border: 2px solid #9e9e9e; border-radius: 8px; }
.st-mybox-bolder { border-width: 3px; }
.st-mybox-title, .st-mybox-title-text { font-weight: 700; margin: 0 0 .5em; }
.st-in-mybox > *:last-child { margin-bottom: .8em; }
.st-radius { border-radius: 8px; }
.freebox { border-top: 2px solid #feb20a; background: #f6f6f6; margin: 0 0 1.5em; }
.p-free, .p-entry-f { margin: 0; padding: .4em 1em; font-weight: 700; }
.freebox-intitle { display: inline-block; background: #feb20a; color: #fff; padding: .2em .8em; }
.free-inbox { padding: .4em 1em 1em; }
.st-blackboard { border: 3px solid #f3f3f3; padding: 1em; margin: 0 0 1.5em; }
.st-blackboard-title-box { margin: 0 0 .5em; }
.st-blackboard-title { font-weight: 700; border-bottom: 2px solid #ccc; }
.st-blackboard-list { list-style: none; padding: 0; margin: 0; }
.st-blackboard-list li { border-bottom: 1px dashed #ccc; padding: .4em 0 .4em 1.4em; position: relative; }
.st-blackboard-list li::before { content: "✓"; position: absolute; left: 0; color: #2a7a4f; }
.st-no-ck-off { list-style: none; }
.clip-memobox { display: flex; gap: .8em; background: #f3f3f3; border-radius: 4px; padding: .8em; margin: 0 0 1.5em; }
.clip-fonticon { flex: 0 0 2em; display: flex; align-items: center; justify-content: center; font-size: 1.4em; border-right: 1px solid #ccc; padding-right: .4em; }
.clip-memotext { flex: 1; min-width: 0; }
.clip-memotext > *:last-child { margin-bottom: 0; }
.st-memobox2 { border: 2px solid #ccc; border-radius: 6px; padding: 1em; margin: 0 0 1.5em; }
.st-memobox-title { font-weight: 700; margin: 0 0 .4em; }
.inyoumodoki { border-left: 4px solid #ddd; padding: .5em 1em; color: #555; background: #fafafa; margin: 0 0 1.5em; }
.scroll-box, .is-style-scroll-box { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 1em; }
.scroll-box table { min-width: 560px; }
.is-style-st-group-bg-diagonal { background: repeating-linear-gradient(45deg, #fafafa, #fafafa 6px, #f1f1f1 6px, #f1f1f1 12px); padding: 1em; }
.is-style-st-group-bg-grid { background-color: #fff; background-image: linear-gradient(#eee 1px, transparent 1px), linear-gradient(90deg, #eee 1px, transparent 1px); background-size: 16px 16px; padding: 1em; }
.is-style-st-wide-background, .st-wide-background { background: #f6f6f6; padding: 1em; margin-left: -16px; margin-right: -16px; }
.st-header-flexwrap, .st-header-flexbox { display: flex; align-items: center; justify-content: center; min-height: 120px; padding: 1em; background: #f3f3f3 center/cover no-repeat; text-align: center; margin: 0 0 1.5em; }
.st-header-flextitle { font-weight: 700; margin: 0; }
.st-header-flextext { display: inline-block; }
.st-flexbox-link { display: block; text-decoration: none; }
.st-blur { backdrop-filter: blur(2px); }
.pop-box, .simple-box1, .simple-box4, .simple-box6, .concept-box2, .notification { border: 2px solid #ccc; border-radius: 6px; padding: 1em; margin: 0 0 1.5em; }
.notification { border-color: #f0ad4e; background: #fff8ec; }
.rbox { border: 1px solid #ddd; padding: .8em; }

/* ---------- 段落の飾り（注意書き・メモ・チェック・吹き出し） ---------- */
.is-style-st-paragraph-pen, .is-style-st-paragraph-check, .is-style-st-paragraph-memo, .is-style-st-paragraph-attention,
.is-style-st-paragraph-attention-gray, .is-style-st-paragraph-circle-o, .is-style-st-paragraph-link { padding: .8em 1em .8em 2.6em; border-radius: 4px; position: relative; }
.is-style-st-paragraph-pen::before, .is-style-st-paragraph-check::before, .is-style-st-paragraph-memo::before, .is-style-st-paragraph-attention::before,
.is-style-st-paragraph-attention-gray::before, .is-style-st-paragraph-circle-o::before, .is-style-st-paragraph-link::before { position: absolute; left: .8em; top: .8em; font-weight: 700; }
.is-style-st-paragraph-pen { background: #fafafa; } .is-style-st-paragraph-pen::before { content: "✎"; color: #999; }
.is-style-st-paragraph-check { background: #fff8e1; } .is-style-st-paragraph-check::before { content: "✓"; color: #ff8f00; }
.is-style-st-paragraph-memo { background: #f3f3f3; } .is-style-st-paragraph-memo::before { content: "📝"; }
.is-style-st-paragraph-attention { background: #ffebee; } .is-style-st-paragraph-attention::before { content: "!"; color: #e53935; }
.is-style-st-paragraph-attention-gray { background: #f5f5f5; } .is-style-st-paragraph-attention-gray::before { content: "!"; color: #757575; }
.is-style-st-paragraph-circle-o { background: #e8f5e9; } .is-style-st-paragraph-circle-o::before { content: "○"; color: #43a047; }
.is-style-st-paragraph-link { background: #e3f2fd; } .is-style-st-paragraph-link::before { content: "🔗"; }
.has-st-icon-search::before { content: "🔍" !important; }
.has-st-icon-lightbulb::before { content: "💡" !important; }
.has-st-icon-hand-right::before { content: "👉" !important; }
.has-st-icon-user::before { content: "👤" !important; }
.has-st-icon-line::before { content: "💬" !important; }
.has-st-icon { min-height: 1.5em; }
.has-st-toggle-icon { cursor: pointer; }
/* 会話（吹き出し）。顔の画像は旧サイトのテーマの設定にも CSS にも残っていなかった（2026-11-12 に旧HTMLと移したCSSを探し直した）。
   名前も旧HTMLにないため、左の話し手（kaiwa）は灰色、右の話し手（kaiwa-b）は緑の、位置と色で区別する */
.is-style-st-paragraph-kaiwa, .is-style-st-paragraph-kaiwa-b { position: relative; margin: 0 0 1.5em; padding: .8em 1em; background: #f3f3f3; border-radius: 10px; }
.is-style-st-paragraph-kaiwa { margin-left: 56px; }
.is-style-st-paragraph-kaiwa-b { margin-right: 56px; background: #e8f3ec; }
.is-style-st-paragraph-kaiwa::before, .is-style-st-paragraph-kaiwa-b::before { content: "👤"; position: absolute; top: 0; width: 44px; height: 44px; border-radius: 50%; background: #e0e0e0; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.is-style-st-paragraph-kaiwa::before { left: -56px; background: #cfd8dc; }
.is-style-st-paragraph-kaiwa-b::before { right: -56px; background: #a5d6a7; }
.is-style-st-paragraph-kaiwa-b { border: 1px solid #a5d6a7; }
.is-style-st-paragraph-bubble { display: inline-block; position: relative; background: #f3f3f3; border-radius: 6px; padding: .4em .9em; margin-bottom: 1em; }
.is-style-st-paragraph-bubble::after { content: ""; position: absolute; left: 1.2em; top: 100%; border: 7px solid transparent; border-top-color: #f3f3f3; }
.st-kaiwa-box, .kaiwaicon1, .kaiwaicon2 { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 1.5em; }
.st-kaiwa-face, .st-kaiwa-face2 { flex: 0 0 64px; text-align: center; }
.st-kaiwa-face img, .st-kaiwa-face2 img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 1px solid #ddd; }
.st-kaiwa-face-name, .st-kaiwa-face-name2 { font-size: .7rem; color: #666; }
.st-kaiwa-area, .st-kaiwa-area2 { flex: 1; min-width: 0; }
.st-kaiwa-area2 { order: -1; }
.st-kaiwa-hukidashi, .st-kaiwa-hukidashi2 { position: relative; display: inline-block; background: #f3f3f3; border-radius: 8px; padding: .8em 1em; }
.st-kaiwa-hukidashi::before { content: ""; position: absolute; left: -8px; top: 18px; border: 8px solid transparent; border-left: 0; border-right-color: #f3f3f3; }
.st-kaiwa-hukidashi2::before { content: ""; position: absolute; right: -8px; top: 18px; border: 8px solid transparent; border-right: 0; border-left-color: #f3f3f3; }
.st-minihukidashi, .st-minihukidashi-box, .st-card-minihukidashi { display: inline-block; position: relative; background: #f3f3f3; border-radius: 30px; padding: .5em 1.2em; margin: 0 0 1em; line-height: 1.4; }
.st-minihukidashi-arrow { position: absolute; left: 30px; top: 100%; border: 8px solid transparent; border-top-color: #f3f3f3; }
.st-minihukidashi-flexbox { display: flex; align-items: center; gap: .3em; }

/* ---------- 文字の飾り（マーカー・太字・丸文字） ---------- */
.ymarker, .ymarker-s, .rmarker, .rmarker-s, .bmarker, .bmarker-s, .huto, .hutoaka { font-weight: 700; }
.ymarker { background: #fff9c4; } .ymarker-s, .marker, .marker-under, .marker2 { background: linear-gradient(transparent 65%, #fff59d 0); }
.rmarker { background: #ffcdd2; } .rmarker-s { background: linear-gradient(transparent 65%, #ffcdd2 0); }
.bmarker { background: #e1f5fe; } .bmarker-s { background: linear-gradient(transparent 65%, #b3e5fc 0); }
.marker-under-springgreen { background: linear-gradient(transparent 65%, #b9f6ca 0); }
.marker-under-cyan { background: linear-gradient(transparent 65%, #b2ebf2 0); }
.marker-under-deeppink { background: linear-gradient(transparent 65%, #f8bbd0 0); }
.marker-under-moccasin { background: linear-gradient(transparent 65%, #ffe4b5 0); }
.hutoaka, .must { color: #e53935; }
.yellow { color: #b8860b; }
.thin { font-weight: 300; }
.keyboard-key { border: 1px solid #ccc; border-bottom-width: 2px; border-radius: 4px; padding: 0 .3em; font-size: .9em; }
.st-marumozi, .st-marumozi-big, .st-marumozi-big-p { display: inline-block; padding: .3em 1em; border-radius: 30px; background: #f3f3f3; font-size: .85rem; margin: 0 .5em .5em 0; }
.st-marumozi-big { font-size: 1rem; padding: .5em 1.4em; }
.usermark2, .bigginermark, .memomark2, .checkmark2, .dotline { display: inline-block; }
.usermark2::before { content: "👤 "; } .bigginermark::before { content: "🔰 "; } .memomark2::before { content: "📝 "; } .checkmark2::before { content: "✓ "; color: #2a7a4f; }
.dotline { border-bottom: 1px dotted #999; }
.st-notosans { font-family: inherit; }
.center { text-align: center; }
.y-star, .w-star { color: #ffb400; font-size: .9em; }
.on-color { font-weight: 700; }
.photoline img, .is-style-st-photoline img { border: 1px solid #ddd; padding: 2px; }
.st-photohu { margin: 0 0 1em; }
.is-style-st-photo-shadow img { box-shadow: 0 0 8px rgba(0,0,0,.4); }
.indent1, .indention { padding-left: 1em; }
[class~="mb0:ブロック下の余白を０にする"] { margin-bottom: 0; }   /* 旧サイトで class 欄にメモが入ったもの */
.tel { white-space: nowrap; }
.ArticleTitle, .blog-card-title-link { font-weight: 700; }
.imp-cnt-tsutatsu, .taxItemPc { font-size: .9rem; }

/* ---------- リスト ---------- */
.is-style-st-maruck, .maruck, .is-style-st-maruno, .maruno, .is-style-st-circle, .is-style-st-circle-border, .is-style-st-no, .is-style-st-no-border,
.is-style-st-border, .is-style-st-check-list, .is-style-st-circle-list, .is-style-st-komejirusi-list, .is-style-st-square-checkbox,
.is-style-st-square-checkbox-no-border, .st-square-checkbox, .st-list-check, .st-list-circle, .st-list-no, .st-list-border { list-style: none; padding-left: 0; margin: 0 0 1.5em; }
.is-style-st-maruck > li, .maruck li, .is-style-st-check-list > li, .st-list-check li, .is-style-st-square-checkbox > li, .is-style-st-square-checkbox-no-border > li, .st-square-checkbox li,
.is-style-st-circle > li, .is-style-st-circle-border > li, .is-style-st-circle-list > li, .st-list-circle li, .is-style-st-komejirusi-list > li { position: relative; padding: .3em 0 .3em 1.8em; }
.is-style-st-maruck > li::before, .maruck li::before, .is-style-st-check-list > li::before, .st-list-check li::before { content: "✓"; position: absolute; left: 0; width: 1.3em; height: 1.3em; border-radius: 50%; background: #2a7a4f; color: #fff; font-size: .75em; display: flex; align-items: center; justify-content: center; top: .7em; }
.is-style-st-square-checkbox > li::before, .is-style-st-square-checkbox-no-border > li::before, .st-square-checkbox li::before { content: "☑"; position: absolute; left: 0; color: #2a7a4f; }
.is-style-st-circle > li::before, .is-style-st-circle-border > li::before, .is-style-st-circle-list > li::before, .st-list-circle li::before { content: "●"; position: absolute; left: .3em; color: #2a7a4f; font-size: .7em; top: .7em; }
.is-style-st-komejirusi-list > li::before { content: "※"; position: absolute; left: 0; }
.is-style-st-circle-border > li, .is-style-st-border > li, .is-style-st-no-border > li, .st-list-border li { border-bottom: 1px dotted #ccc; }
.is-style-st-maruno, .maruno, .is-style-st-no, .is-style-st-no-border, .st-list-no { counter-reset: stno; }
.is-style-st-maruno > li, .maruno li, .is-style-st-no > li, .is-style-st-no-border > li, .st-list-no li { position: relative; padding: .3em 0 .3em 2em; counter-increment: stno; }
.is-style-st-maruno > li::before, .maruno li::before, .is-style-st-no > li::before, .is-style-st-no-border > li::before, .st-list-no li::before { content: counter(stno); position: absolute; left: 0; top: .45em; width: 1.5em; height: 1.5em; border-radius: 50%; background: #2a7a4f; color: #fff; font-size: .8em; display: flex; align-items: center; justify-content: center; }
.st-count-reset { counter-reset: stno; }
.kintou { display: flex; flex-wrap: wrap; gap: .5em; }
.smart50, .smart100, .pcone, .st-pc-show-4 { width: 100%; }
.smanone { display: none; }
@media (min-width: 600px) { .smanone { display: block; } }
.st-timeline { list-style: none; padding-left: 1.2em; border-left: 2px solid #ddd; margin: 0 0 1.5em; }
.st-timeline > br { display: none; }
.st-timeline-list { position: relative; padding: .2em 0 .8em .8em; }
.st-timeline-list::before { content: ""; position: absolute; left: -1.62em; top: .7em; width: .8em; height: .8em; border-radius: 50%; background: #ccc; }
.st-timeline-list-text { margin: 0; font-size: .85rem; }
.st-timeline-count { font-weight: 700; }
.is-align-default { text-align: left; }
.st-step-box { display: flex; align-items: center; gap: .6em; margin: 0 0 .5em; }
.st-step { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 3.2em; height: 3.2em; border-radius: 50%; background: #2a7a4f; color: #fff; font-size: .7rem; line-height: 1.1; }
.st-step-no { font-size: 1.4em; font-weight: 700; }
.st-step-title { font-weight: 700; }

/* ---------- ボタン ---------- */
/* ボタン：旧サイトと同じく、ブロックのボタンだけ既定で色付き（白い文字）。昔の書き方のボタンは背景なし（色は本文の style のとおり） */
.st-mybtn { display: block; max-width: 100%; margin: 1em auto 1.5em; text-align: center; border: 1px solid #ccc; border-radius: 6px; background: transparent; }
.st-mybtn a { display: block; padding: .8em 1.2em; text-decoration: none; font-weight: 700; }
.st-mybtn.wp-block-st-blocks-my-button, .st-btn-default.wp-block-st-blocks-my-button { background-color: #2a7a4f; border-color: #2a7a4f; }
.st-mybtn.wp-block-st-blocks-my-button a { color: #fff; }
.st-mybtn-noborder { border: 0; }
.st-btn-default { border-radius: 6px; }
.st-mybtn-mini { display: inline-block; font-size: .85rem; }
.st-mybtn-mini a { padding: .4em 1em; }
.st-mybtn-text { display: inline; }
.st-reflection { position: relative; overflow: hidden; }
.st-mcbtn-box { text-align: center; padding: 1em; background: #fafafa; margin: 0 0 1.5em; }
.st-mcbox-title { font-weight: 700; margin: 0 0 .5em; }
.st-mcbox-text { font-size: .85rem; color: #555; margin: .5em 0 0; }
.color-button01-big, .color-button02, .twobutton a { display: inline-block; padding: .7em 1.4em; background: #2a7a4f; color: #fff; border-radius: 6px; text-decoration: none; }
.st-box-btn { list-style: none; padding: 0; margin: 0 0 1.5em; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.st-box-btn li a { display: flex; flex-direction: column; align-items: center; gap: .3em; padding: 1em .5em; border: 1px solid #ddd; border-radius: 8px; text-decoration: none; color: inherit; text-align: center; height: 100%; }
.st-box-btn .st-fa { font-size: 1.6em !important; }
.st-box-btn-text-wrap { display: block; }
.st-box-btn-text { font-weight: 700; margin: 0; }
.st-box-btn-memo { font-size: .75rem; color: #666; margin: 0; }
.st-box-btn-list-vertical { grid-template-columns: 1fr; }
.load-more-action, .load-more-btn, .shortcode-kanren-load-more-action { display: none; }

/* ---------- ブログカード・記事のカード ---------- */
.kanren, .shortcode-kanren, .st-cardbox { margin: 0 0 1.5em; }
.kanren dl, .st-cardbox dl { display: flex; gap: 12px; margin: 0; padding: .8em 0; border-bottom: 1px solid #eee; }
.kanren dt, .st-card-img { flex: 0 0 100px; margin: 0; }
.kanren dt img, .st-card-img img { width: 100px; height: auto; border-radius: 4px; }
.kanren dd { margin: 0; min-width: 0; flex: 1; }
.kanren-t, .st-cardbox-t, .st-card-title-head, .st-card-title-head-sankou { font-size: 1rem; font-weight: 700; margin: 0 0 .3em; line-height: 1.5; }
.st-cardbox { border: 1px solid #ddd; border-radius: 6px; padding: 0 .8em; position: relative; }
.st-cardlink { display: block; text-decoration: none; color: inherit; }
.st-cardbox dl { border-bottom: 0; }
.st-cardbox-label { position: absolute; top: -.8em; left: .8em; }
.st-cardbox-label-text { display: inline-block; background: #2a7a4f; color: #fff; font-size: .7rem; padding: .1em .6em; border-radius: 3px; }
.st-card-excerpt, .st-excerpt { font-size: .8rem; color: #555; }
.cardbox-more { font-size: .75rem; color: #1a5a96; margin: .3em 0 0; }
.st-no-thumbnail .st-card-img { display: none; }
.st-no-shadow { box-shadow: none; }
.blog_info { font-size: .75rem; color: #666; margin: 0; }
.st-catgroup, .itiran-category, .st-catgroup-under { margin: 0 0 .3em; font-size: .7rem; }
.catname, [class*="st-catid"] { display: inline-block; background: #555; color: #fff; padding: .1em .6em; border-radius: 3px; text-decoration: none; }
.post-card-list, .itiran-card-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0 0 1.5em; }
.is-small-columns-2 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 600px) { .is-medium-columns-3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 960px) { .is-large-columns-5 { grid-template-columns: repeat(4, 1fr); } }
.post-card-list-item, .post-card { min-width: 0; }
.post-card-image img { width: 100%; height: auto; border-radius: 4px; }
.post-card-date { font-size: .7rem; color: #666; margin: 0; }
.post-card-body, .post-card-text { min-width: 0; }
.post-card-title { font-size: .9rem; margin: .3em 0; line-height: 1.5; }
.post-card-excerpt { font-size: .75rem; color: #666; }
.is-repeated { display: block; }
/* 記事のスライダー（トップ・旧トップの「新着」）。動かさずに横に並べる */
.slider, .content-post-slider, .post-slider, .is-center-mode { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5em; margin: 0 0 1.5em; }
.slider-item, .post-slide { flex: 0 0 220px; scroll-snap-align: start; border: 1px solid #eee; border-radius: 6px; overflow: hidden; }
.post-slide-image img { width: 100%; height: auto; display: block; }
.post-slide-date { font-size: .7rem; color: #666; margin: .2em .6em; }
.post-slide-body, .post-slide-text { padding: .4em .6em .8em; }
.post-slide-title { font-weight: 700; font-size: .85rem; margin: 0 0 .3em; line-height: 1.5; }
.post-slide-excerpt { font-size: .75rem; color: #666; max-height: 6em; overflow: hidden; }
.post-slide-more { font-size: .75rem; }
.now { font-weight: 700; }
.animated { animation: none; }

/* ---------- 横並びの箱（responbox） ---------- */
.responbox33, .responbox50 { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 1.5em; }
.lbox { flex: 1 1 200px; min-width: 0; }
.responbox50 .lbox { flex-basis: 45%; }

/* ---------- 表 ---------- */
.is-style-st-table-line td, .is-style-st-table-line th { border: 0; border-bottom: 1px solid #ccc; }
.is-style-st-centertable td, .is-style-st-centertable th { text-align: center; }
.cps-table03, .table_from, .table_to, .table_fee, .rankinginfo { border-collapse: collapse; }
.table_from, .table_to, .table_fee { padding: 4px 8px; }

/* ---------- タブ・開閉（JavaScript なし） ---------- */
.st-tab-content { margin: 0 0 1.5em; }
.st-tab-content > br { display: none; }
.st-tab-label { position: absolute; opacity: 0; pointer-events: none; }
.st-tab-content > label, .st-tab-noborder { display: inline-block; padding: .5em 1em; margin: 0 4px 4px 0; border-radius: 6px 6px 0 0; cursor: pointer; background: #eee; }
.st-tab-content-type-button > label { border-radius: 6px; }
.st-tab-main, .st-tab-main-1, .st-tab-main-2, .st-tab-main-3, .st-tab-main-4 { display: none; border-top: 2px solid #ddd; padding-top: 1em; }
.st-tab-content-tab-2, .st-tab-content-tab-4 { position: relative; }
.st-tab-label[value="1"]:checked ~ .st-tab-main-1, .st-tab-label[value="2"]:checked ~ .st-tab-main-2,
.st-tab-label[value="3"]:checked ~ .st-tab-main-3, .st-tab-label[value="4"]:checked ~ .st-tab-main-4 { display: block; }
.st-tab-label:focus-visible + label { outline: 2px solid #1a5a96; }
.st-slidebox-c, .st-slidebox { margin: 0 0 1.5em; }
.st-btn-open, .st-slidebox-btn-text { display: none; }
.is-st-toggle-text-bold, .is-st-toggle-position-left, .is-st-toggle-icon-position-right { font-weight: 700; }
.is-collapsed { display: block; }

/* ---------- よくある質問 ---------- */
.st-faq { margin: 0 0 1.5em; }
.st-faq__item { border-bottom: 1px solid #eee; padding: .6em 0; }
.st-faq__question { font-weight: 700; margin: 0; }
.st-faq__question-content::before { content: "Q. "; color: #2a7a4f; }
.st-faq__question-content, .st-faq__answer-content > *:last-child { margin: 0; }
.st-faq__answer { margin: .4em 0 0; }
.st-faq__answer-content::before { content: "A. "; color: #e53935; font-weight: 700; float: left; margin-right: .3em; }

/* ---------- AFFINGER のブロックの外枠（中身の class で見た目を当てる。外枠は余白だけ） ---------- */
.wp-block-st-blocks-my-button, .wp-block-st-blocks-memo, .wp-block-st-blocks-flexbox, .wp-block-st-blocks-my-box,
.wp-block-st-blocks-midashi-box, .wp-block-st-blocks-st-slidebox, .wp-block-st-blocks-faq, .wp-block-st-blocks-faq-item,
.wp-block-st-blocks-faq-question, .wp-block-st-blocks-faq-answer, .st-shortcode-div { max-width: 100%; }
.wp-block-st-blocks-midashi-box { border: 1px solid #ddd; border-radius: 6px; padding: 1em; margin: 0 0 1.5em; }
.wp-block-quote.is-style-st-quote-line, .is-style-st-quote-line { padding: 1em 1em 1em 1.5em; border-left: 5px solid #eee; color: #757575; }

/* ---------- 文字の読みやすさ（第2段階-2の追加。migration/scripts/check_contrast.cjs で確かめる） ---------- */
/* 明るい背景を持つ箱は、外側（濃いカバーの中など）の白い文字を受け継がない */
.freebox, .free-inbox, .st-mybox, .clip-memobox, .st-blackboard, .st-memobox2, .st-cardbox, .st-mcbtn-box, .wp-block-media-text__content,
.has-white-background-color, .has-very-light-gray-background-color { color: #1a1a1a; }
/* 白い文字の色付きボタンで、背景が明るすぎて読めないもの：同じ系統の濃い色にする（リンクのタグそのものは変えない） */
[style*="background-color:#008bbb" i], [style*="background:#008bbb" i] { background: #00719a !important; }
[style*="background-color:#4682b4" i], [style*="background:#4682b4" i] { background: #3a6d96 !important; }
[style*="background-color:#2e8b57" i], [style*="background:#2e8b57" i] { background: #23704a !important; }
a[style*=";color:#4682b4" i] { color: #2f5d82 !important; }
span[style*="color: #666666"] { color: #555 !important; }
a[style*="background:#f9a825"] { color: #1a1a1a !important; }
.entry-content .cta-button { background-color: #2e7d32; }
.entry-content .cta-note { color: #5f5f5f; }
/* 単価計算ツール：濃い背景の上の小さな文字を明るく */
.entry-content .result-hero-label, .entry-content .result-hero-sub, .entry-content .rhi-label { color: #b4b2a9; }
.entry-content .rhi-sub { color: #a3a19a; }
/* 手取りシミュレーター：使えない改善案は、薄くせずに背景の色で示す */
.entry-content .improve-item.unavailable { opacity: 1; background: #f5f4f0; }
