/* EMMUS Business: design tokens and article body styles. Also loaded in the block editor (add_editor_style). */

:root {
	--b-paper: #F3F2EE;
	--b-ink: #17181C;
	--b-sub: #55575E;
	--b-rule: #CBC9C2;
	--b-accent: #1E5B47;
	--b-accent-dark: #174837;
	--b-tint: #E3E7E1;
	--b-white: #FFFFFF;
	--b-on-dark: #BFC0C4;
	--b-band-accent: #9FC2B4;
	--b-band-rule: #4A4C52;
	--f-head: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
	--f-body: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	--wrap: 1120px;
	--gutter: 36px;
}

body { font-family: var(--f-body); color: var(--b-ink); }

:where(.entry-content, .is-root-container) { font-size: 16px; line-height: 1.95; word-break: normal; overflow-wrap: anywhere; }
:where(.entry-content, .is-root-container) p { margin: 0 0 1.15em; }
:where(.entry-content, .is-root-container) a { color: var(--b-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
:where(.entry-content, .is-root-container) a:hover { color: var(--b-accent-dark); }
:where(.entry-content, .is-root-container) strong { font-weight: 700; }
:where(.entry-content, .is-root-container) h2 { font-family: var(--f-head); font-size: 26px; line-height: 1.5; font-weight: 700; margin: 2.1em 0 .8em; padding-top: 14px; border-top: 3px solid var(--b-ink); }
:where(.entry-content, .is-root-container) h3 { font-size: 18px; font-weight: 700; line-height: 1.6; margin: 1.8em 0 .5em; }
:where(.entry-content, .is-root-container) h4 { font-size: 16px; font-weight: 700; margin: 1.5em 0 .4em; }
:where(.entry-content, .is-root-container) ul, :where(.entry-content, .is-root-container) ol { padding-left: 1.4em; margin: 0 0 1.2em; }
:where(.entry-content, .is-root-container) li { margin: .3em 0; }
:where(.entry-content, .is-root-container) blockquote { margin: 1.5em 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--b-rule); color: var(--b-sub); }
:where(.entry-content, .is-root-container) hr { border: 0; border-top: 1px solid var(--b-rule); margin: 2.4em 0; }
:where(.entry-content, .is-root-container) img { max-width: 100%; height: auto; }
:where(.entry-content, .is-root-container) figcaption, :where(.entry-content, .is-root-container) .wp-element-caption { font-size: 12px; color: var(--b-sub); margin-top: 6px; text-align: left; line-height: 1.6; }

/* Tables (default and 比較表) */
:where(.entry-content, .is-root-container) .wp-block-table, .b-tablewrap { overflow-x: auto; margin: 1em 0 1.4em; }
:where(.entry-content, .is-root-container) table { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; line-height: 1.6; }
/* 表ブロックは WordPress 標準の格子線（.wp-block-table td）より強く指定して、横線だけの表にする */
:where(.entry-content, .is-root-container) th,
:is(.entry-content, .is-root-container) .wp-block-table th { text-align: left; font-size: 12px; letter-spacing: .06em; color: var(--b-sub); font-weight: 700; border: 0; border-bottom: 2px solid var(--b-ink); padding: 10px 12px; vertical-align: bottom; background: none; }
:where(.entry-content, .is-root-container) td,
:is(.entry-content, .is-root-container) .wp-block-table td { border: 0; border-bottom: 1px solid var(--b-rule); padding: 13px 12px; vertical-align: top; }
/* 左の列が見出しの表（運営者情報など）は、行ごとの細い線にそろえる */
:where(.entry-content, .is-root-container) tbody th,
:is(.entry-content, .is-root-container) .wp-block-table tbody th { border-bottom: 1px solid var(--b-rule); vertical-align: top; padding: 13px 12px; white-space: nowrap; }
:is(.entry-content, .is-root-container) .wp-block-table thead { border-bottom: 0; }
:is(.entry-content, .is-root-container) .wp-block-table tfoot { border-top: 0; }
.wp-block-table.is-style-emmus-compare table { min-width: 600px; }
.wp-block-table.is-style-emmus-compare :is(th, td) { box-sizing: border-box; }
.wp-block-table.is-style-emmus-compare th { white-space: nowrap; }
.wp-block-table.is-style-emmus-compare td { min-width: 6em; }
/* 1列目（サービス名）は横スクロールしても左に残す */
.wp-block-table.is-style-emmus-compare :is(th, td):first-child { position: sticky; left: 0; z-index: 1; background: var(--b-paper); box-shadow: inset -1px 0 0 var(--b-rule); min-width: 8.5em; }
.wp-block-table.is-style-emmus-compare td:first-child { font-family: var(--f-head); font-weight: 700; font-size: 16px; }
.wp-block-table.is-style-emmus-compare td:last-child { font-family: var(--f-head); font-weight: 700; font-size: 19px; color: var(--b-accent); white-space: nowrap; min-width: 0; }
.wp-block-table.is-style-emmus-compare figcaption { font-size: 12px; color: var(--b-sub); }

/* 目次 (auto-inserted) */
.b-toc { border-block: 1px solid var(--b-rule); padding-block: 14px; margin: 1.6em 0 1em; }
.b-toc-title { font-size: 12px !important; letter-spacing: .16em; font-weight: 700; margin: 0 0 6px !important; }
.b-toc ol { margin: 0; padding-left: 1.4em; font-size: 14px; display: grid; gap: 4px; line-height: 1.7; }
.b-toc li { margin: 0; }
.b-toc a { color: var(--b-ink); text-decoration: none; }
.b-toc a:hover { text-decoration: underline; }
.ad-area.is-inarticle { margin: 2em auto; }

/* 結論ボックス */
.wp-block-group.is-style-emmus-summary { border: 1px solid var(--b-ink); background: var(--b-white); padding: 20px 24px; margin: 1.6em 0; }
.wp-block-group.is-style-emmus-summary .box-title { font-family: var(--f-head); font-size: 18px; font-weight: 700; margin: 0 0 8px; }
.wp-block-group.is-style-emmus-summary ul, .wp-block-group.is-style-emmus-summary ol { margin: 0; }
.wp-block-group.is-style-emmus-summary li { font-size: 15px; line-height: 1.75; }
.wp-block-group.is-style-emmus-summary > :last-child { margin-bottom: 0; }

/* 補足・注意 */
.wp-block-group.is-style-emmus-point { background: var(--b-tint); padding: 16px 20px; margin: 1.6em 0; font-size: 15px; line-height: 1.85; }
.wp-block-group.is-style-emmus-point .box-title { font-weight: 700; margin: 0 0 4px; color: var(--b-accent); font-size: 14px; letter-spacing: .06em; }
.wp-block-group.is-style-emmus-point > :last-child { margin-bottom: 0; }

/* 申し込みボックス */
.wp-block-group.is-style-emmus-cta { border: 2px solid var(--b-ink); background: var(--b-white); padding: 22px; margin: 2em 0; }
.wp-block-group.is-style-emmus-cta .wp-block-columns { gap: 24px; align-items: center !important; margin: 0; }
.wp-block-group.is-style-emmus-cta .cta-tag { font-size: 11px; letter-spacing: .14em; color: var(--b-accent); font-weight: 700; margin: 0; }
.wp-block-group.is-style-emmus-cta h3 { font-family: var(--f-head); font-size: 24px; margin: 4px 0 8px; }
.wp-block-group.is-style-emmus-cta ul { font-size: 14px; line-height: 1.8; margin: 0 0 16px; padding-left: 1.1em; }
.wp-block-group.is-style-emmus-cta .cta-note { font-size: 11px; color: var(--b-sub); text-align: center; margin: 6px 0 0; }
/* 広告の「PR」表記（広告枠と申し込みボックスで共通。編集画面でも同じ大きさにする） */
.ad-label { display: block; font-size: 10px; letter-spacing: .14em; color: #8A8D93; margin-bottom: 5px; line-height: 1.4; }
.wp-block-group.is-style-emmus-cta .cta-banner { text-align: center; }
.wp-block-group.is-style-emmus-cta .cta-banner img { display: inline-block; }
.wp-block-group.is-style-emmus-cta > :last-child { margin-bottom: 0; }

/* 申し込みボタン */
.wp-block-buttons:has(.is-style-emmus-cta) { display: block; }
.wp-block-button.is-style-emmus-cta { width: 100%; }
.wp-block-button.is-style-emmus-cta .wp-block-button__link { display: flex; justify-content: center; align-items: center; gap: 8px; width: 100%; background: var(--b-accent); color: var(--b-white); border-radius: 0; font-weight: 700; font-size: 15px; padding: 14px 20px; text-decoration: none; }
.wp-block-button.is-style-emmus-cta .wp-block-button__link::after { content: "→"; }
.wp-block-button.is-style-emmus-cta .wp-block-button__link:hover { background: var(--b-accent-dark); color: var(--b-white); }
:where(.entry-content, .is-root-container) .wp-block-button__link { text-decoration: none; }
/* ふつうのボタン（申し込みボタン以外）も、角のない墨色のボタンにそろえる */
:is(.entry-content, .is-root-container) .wp-block-buttons { margin: 1.4em 0; }
:is(.entry-content, .is-root-container) .wp-block-button:not(.is-style-emmus-cta):not(.is-style-outline) .wp-block-button__link { background: var(--b-ink); color: var(--b-white); border-radius: 0; font-weight: 700; font-size: 15px; padding: 12px 22px; }
:is(.entry-content, .is-root-container) .wp-block-button:not(.is-style-emmus-cta):not(.is-style-outline) .wp-block-button__link:hover { background: var(--b-accent); }

/* チェックリスト */
.wp-block-list.is-style-emmus-check { list-style: none; padding-left: 0; }
.wp-block-list.is-style-emmus-check li { position: relative; padding-left: 1.7em; }
.wp-block-list.is-style-emmus-check li::before { content: ""; position: absolute; left: 0; top: .5em; width: 1em; height: .55em; border-left: 2px solid var(--b-accent); border-bottom: 2px solid var(--b-accent); transform: rotate(-45deg); }

@media (max-width: 640px) {
	:where(.entry-content) { font-size: 15.5px; }
	:where(.entry-content) h2 { font-size: 21px; margin-top: 1.9em; }
	.wp-block-group.is-style-emmus-cta { padding: 18px; }
	.wp-block-group.is-style-emmus-summary { padding: 16px 18px; }
}
