@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL MIC CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* =============================================
   Design System — CSS Variables
   ============================================= */
:root {
	/* Color Palette */
	--color-primary: #DE7C9A;
	/* Primary Pink */
	--color-primary-dark: #C16280;
	--color-primary-light: #FFF1F6;
	--color-bg: #F8F9FA;
	/* Background Gray */
	--color-border: #EEEEEE;
	/* Border / Divider */
	--color-text: #333333;
	--color-text-muted: #666666;
	--color-white: #ffffff;
	--color-link: #0066CC;

	/* Typography */
	--font-family-base: "Noto Sans JP", "Hiragino Sans", "Meiryo", sans-serif;
	--font-size-xs: 12px;
	--font-size-sm: 14px;
	--font-size-base: 16px;
	--font-size-md: 18px;
	--font-size-lg: 20px;
	--font-size-xl: 24px;
	--font-size-2xl: 32px;
	--line-height-base: 1.8;
	--line-height-heading: 1.4;

	/* Layout */
	--content-width: 860px;
	--content-width-wide: 1100px;
	--spacing-xs: 4px;
	--spacing-sm: 8px;
	--spacing-md: 16px;
	--spacing-lg: 24px;
	--spacing-xl: 40px;
	--spacing-2xl: 64px;

	/* Component */
	--border-radius: 4px;
	--border-width: 1px;
	--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);
	--shadow-md: 0 2px 8px rgba(0, 0, 0, .12);
}

/* =============================================
   theme.json CSS Variables → SWELL Color Bridge
   theme.json が生成する --wp--preset--color--* 変数を
   SWELL のカラー変数に上書きマッピングする。
   child_style は swell_custom に依存するため
   カスタマイザーのインライン CSS より後に出力され、
   カスケードで自然に優先される（!important 不要）。
   ============================================= */
:root {
	--color_main: var(--wp--preset--color--primary);
	--color_main_dark: var(--wp--preset--color--primary-dark);
	--color_link: var(--color-link);
	--color_htag: var(--wp--preset--color--primary);
	--color_bg: var(--wp--preset--color--bg);
	--color_text: var(--wp--preset--color--text);
}

/* Base */
body {
	font-family: var(--font-family-base);
	font-size: var(--font-size-base);
	line-height: var(--line-height-base);
	color: var(--color-text);
	background-color: var(--color-bg);
}

/* =============================================
   1. Article Headings — Style Override
   ============================================= */

/* h2: 左ボーダー + 背景色 */
.post_content h2 {
	font-size: var(--font-size-xl);
	/* 24px */
	font-weight: 700;
	line-height: var(--line-height-heading);
	color: var(--color-text);
	margin: 3em 0 1em;
	padding: .6em 1em;
	border-left: 5px solid var(--color-primary);
	border-bottom: none;
	background: var(--color-primary-light);
	border-radius: 0;
	/* SWELLデフォルトの装飾をリセット */
	box-shadow: none;
}

/* SWELLがh2に追加する before/after 擬似要素を無効化 */
.post_content h2::before,
.post_content h2::after {
	display: none;
	content: none;
}

/* h3: 左細ボーダーのみ */
.post_content h3 {
	font-size: var(--font-size-lg);
	/* 20px */
	font-weight: 700;
	line-height: var(--line-height-heading);
	color: var(--color-text);
	margin: 2.5em 0 .8em;
	padding: .3em .65em;
	border-left: 3px solid var(--color-primary);
	background: none;
	border-radius: 0;
	box-shadow: none;
}

.post_content h3::before,
.post_content h3::after {
	display: none;
	content: none;
}

/* h4: 文字色アクセントのみ */
.post_content h4 {
	font-size: var(--font-size-md);
	/* 18px */
	font-weight: 700;
	line-height: var(--line-height-heading);
	color: var(--color-primary);
	margin: 2em 0 .6em;
	padding: 0;
	background: none;
	border: none;
	box-shadow: none;
}

.post_content h4::before,
.post_content h4::after {
	display: none;
	content: none;
}

/* =============================================
   2. Article Body — Spacing & Readability
   ============================================= */

/* 記事本文の余白・行間をビジネスメディア基準に調整 */
.post_content {
	font-size: var(--font-size-base);
	/* 16px */
	line-height: 1.9;
	color: var(--color-text);
}

.post_content a:not([class*="btn"]):not([class*="wp-block"]):not(.p-toc__link) {
	color: var(--color-link) !important;
}

/* ブロック間マージン */
.post_content>* {
	margin-bottom: 1.75em;
}

/* 段落 */
.post_content p {
	margin: 0 0 1.5em;
	letter-spacing: .02em;
}

/* リスト */
.post_content ul,
.post_content ol {
	padding-left: 1.5em;
	margin-bottom: 1.5em;
}

.post_content li {
	margin-bottom: .5em;
	line-height: 1.75;
}

/* インライン下線強調 */
.ninpu-u {
	background: linear-gradient(transparent 65%, rgba(222, 124, 154, 0.25) 65%);
	padding-bottom: 1px;
}

/* 区切り線 */
.post_content hr {
	border: none;
	border-top: 1px solid var(--color-border);
	margin: 2.5em 0;
}

/* テーブル */
.post_content table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
	margin-bottom: 1.5em;
}

.post_content th,
.post_content td {
	padding: .6em .9em;
	border: 1px solid var(--color-border);
	text-align: left;
}

.post_content th {
	background: var(--color-primary-light);
	color: var(--color-text);
	font-weight: 700;
}

/* 引用 */
.post_content blockquote {
	border-left: 3px solid var(--color-border);
	margin: 1.5em 0;
	padding: .75em 1.25em;
	background: var(--color-bg);
	color: var(--color-text-muted);
	font-size: var(--font-size-sm);
}

/* SWELLがsimpleタイプで border-left + border-right の二重線疑似要素を注入するため上書きして消す */
.post_content blockquote::before,
.post_content blockquote::after {
	content: none;
	display: none;
}

.post_content blockquote p {
	margin: 0;
}

.post_content blockquote cite {
	display: block;
	margin-top: .75em;
	padding-top: .5em;
	border-top: 1px solid var(--color-border);
	font-size: var(--font-size-xs);
	font-style: normal;
	color: var(--color-text-muted);
	opacity: 1;
}

/* =============================================
   3. TOC (目次) — 最小限の上書き
   SWELLのJSが動的にHTMLを生成するため、構造系CSSは触らない。
   色・余白・ボーダーのみ上書きする。
   ============================================= */

.p-toc {
	background: var(--color-white) !important;
	border: 1px solid var(--color-border) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.p-toc__ttl {
	font-size: var(--font-size-base) !important;
	font-weight: 700 !important;
	color: var(--color-text) !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	padding-bottom: 0.75rem !important;
	border-bottom: 1px solid var(--color-border) !important;
	background: none !important;
	margin-bottom: 1rem !important;
}

/* H2リンク */
.p-toc__list > li > .p-toc__link {
	color: var(--color-link) !important;
	font-weight: 500 !important;
	text-decoration: underline !important;
}

.p-toc__list > li > .p-toc__link:hover {
	opacity: 0.75 !important;
}

/* H3リンク */
.p-toc__childList .p-toc__link {
	color: var(--color-link) !important;
	font-weight: 400 !important;
	text-decoration: underline !important;
}

.p-toc__childList .p-toc__link:hover {
	opacity: 0.75 !important;
}

/* =============================================
   4. Summary Box — 情報まとめボックス
   ============================================= */

.ninpu-summary-box {
	background: var(--color-primary-light);
	border: 1px solid #f0c0cf;
	border-left: 4px solid var(--color-primary);
	border-radius: var(--border-radius);
	padding: 1.5em 1.75em !important;
	margin: 2em 0 !important;
}

.ninpu-summary-box h3,
.ninpu-summary-box .ninpu-summary-box__title {
	font-size: var(--font-size-md);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 .75em !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
}

.ninpu-summary-box p {
	font-size: var(--font-size-base);
	line-height: 1.85;
	color: var(--color-text);
	margin: 0 !important;
}

/* =============================================
   5. CTA Button Pair — 2カラム CTAボタン
   ============================================= */

.ninpu-cta-pair {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-md);
	margin: 2em 0 !important;
}

.ninpu-cta-pair .wp-block-column {
	padding: 0 !important;
}

/* 共通ボタン */
.ninpu-btn-outline,
.ninpu-btn-filled {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .2em;
	padding: 1em 1.25em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	border-radius: var(--border-radius);
	min-height: 80px;
	transition: opacity .15s;
}

.ninpu-btn-outline:hover,
.ninpu-btn-filled:hover {
	opacity: .85;
	text-decoration: none;
}

/* アウトラインボタン（左）*/
.ninpu-btn-outline {
	background: var(--color-white);
	border: 2px solid var(--color-primary);
	color: var(--color-primary);
}

.ninpu-btn-outline .ninpu-btn-label {
	font-size: var(--font-size-xs);
	color: var(--color-primary);
}

.ninpu-btn-outline .ninpu-btn-text {
	font-size: var(--font-size-md);
	font-weight: 700;
	color: var(--color-primary);
}

/* フィルドボタン（右）*/
.ninpu-btn-filled {
	background: #F5A623;
	border: 2px solid #F5A623;
	color: var(--color-white);
}

.ninpu-btn-filled .ninpu-btn-label {
	font-size: var(--font-size-xs);
	color: var(--color-white);
}

.ninpu-btn-filled .ninpu-btn-text {
	font-size: var(--font-size-md);
	font-weight: 700;
	color: var(--color-white);
}

@media (max-width: 640px) {
	.ninpu-cta-pair {
		grid-template-columns: 1fr;
	}
}

/* =============================================
   6. Profile Card — インタビュー人物カード
   ============================================= */

.ninpu-profile-card {
	display: flex;
	align-items: flex-start;
	gap: 1.25em;
	margin: 2em 0 !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
}

.ninpu-profile-card__img {
	flex-shrink: 0;
	width: 100px;
	height: 100px;
	object-fit: cover;
}

.ninpu-profile-card__body {
	flex: 1;
}

.ninpu-profile-card__caption {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	margin: 0 0 .3em;
}

.ninpu-profile-card__org {
	font-size: var(--font-size-sm);
	color: var(--color-text);
	margin: 0 0 .15em;
}

.ninpu-profile-card__name {
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-text);
	margin: 0;
}

/* =============================================
   7. Interview Q&A — インタビュー形式
   ============================================= */

.post_content .ninpu-interview-q {
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-text);
	margin: 3em 0 .75em;
	line-height: 1.7;
}

.ninpu-interview-q::before {
	content: "———";
	margin-right: .5em;
	font-weight: 400;
	color: var(--color-text-muted);
}

.ninpu-interview-a {
	margin: 0 0 1.5em;
	line-height: 1.9;
}

.ninpu-interview-a-label {
	font-weight: 700;
	color: var(--color-text);
}

/* =============================================
   8. Article Title Area — 記事タイトルエリア
   ============================================= */

/* SWELLネイティブタイトル・メタを非表示（ninpu カスタムヘッドに置き換え） */
.p-articleHead,
.p-articleMetas.-top {
	display: none !important;
}

/* サンプルプレビュー用レイアウト（WordPress/SWELLのテンプレートを模倣） */
.l-wrap { max-width: 860px; margin: 0 auto; padding: 2em 1.25em 4em; }

.p-entryMeta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
	color: var(--color-text-muted);
	margin-bottom: 1.25em;
	padding-bottom: .75em;
	border-bottom: 1px solid var(--color-border);
}

/* シェアボタンエリア */
.p-entryMeta__share {
	display: flex;
	align-items: center;
	gap: var(--spacing-sm);
}

.p-entryMeta__copy-btn,
.p-entryMeta__share-link {
	display: inline-flex;
	align-items: center;
	padding: .25em .7em;
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: opacity .15s;
	line-height: 1.6;
}

.p-entryMeta__copy-btn:hover,
.p-entryMeta__share-link:hover {
	opacity: .75;
	text-decoration: none;
	color: var(--color-text-muted);
}

/* プレビュー用セクション区切りラベル */
.preview-label {
	margin: 3em 0 .5em;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #aaa;
	border-top: 1px dashed #ddd;
	padding-top: 1em;
}

/* h1 記事タイトル */
.p-entryTitle,
.entry-title,
.l-article__ttl {
	font-size: 28px !important;
	font-weight: 700 !important;
	line-height: 1.55 !important;
	color: var(--color-text) !important;
	margin: 0 0 .5em !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
}

/* =============================================
   10. Inline CTA Block — 記事内CTAブロック
   ============================================= */

.ninpu-cta-block {
	margin: 2.5em 0;
}

/* グレーボックス（タイトル＋説明文） */
.ninpu-cta-block__box {
	background: var(--color-bg);
	padding: 1.25em 1.5em;
	margin-bottom: 0;
}

.ninpu-cta-block__title {
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 .5em;
	line-height: 1.6;
}

.ninpu-cta-block__body {
	font-size: var(--font-size-sm);
	color: var(--color-text);
	line-height: 1.75;
	margin: 0;
}

/* 全幅オレンジボタン */
.ninpu-cta-block__btn {
	display: block;
	width: 100%;
	box-sizing: border-box;
	background: #F5A623;
	color: var(--color-white);
	font-size: var(--font-size-lg);
	font-weight: 700;
	text-align: center;
	padding: .9em 1em;
	text-decoration: none;
	border-radius: 6px;
	transition: opacity .15s;
}

.ninpu-cta-block__btn:hover {
	opacity: .85;
	text-decoration: none;
	color: var(--color-white);
}

@media (max-width: 640px) {

	.p-entryTitle,
	.entry-title,
	.l-article__ttl {
		font-size: 22px !important;
	}

	.ninpu-eyecatch-overlay__text {
		font-size: 16px;
	}
}

/* =============================================
   11. Insurance Comparison — 保険比較表 & 詳細カード
   ============================================= */

/* ---- Atoms ---- */

.ninpu-rank-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	font-weight: 700;
	font-size: var(--font-size-xs);
	flex-shrink: 0;
	background: #ccc;
	color: #fff;
	line-height: 1.2;
	text-align: center;
}

.ninpu-rank-badge--1 { background: #D4AF37; }
.ninpu-rank-badge--2 { background: #9EA5B0; }
.ninpu-rank-badge--3 { background: #CD7F32; }

.ninpu-stars {
	display: inline-flex;
	gap: 1px;
	line-height: 1;
}

.ninpu-star {
	font-size: 13px;
	color: #FFA500;
}

.ninpu-star--empty {
	color: #ddd;
}

.ninpu-score-value {
	font-weight: 700;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	margin-left: 3px;
}

.ninpu-score-count {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

.ninpu-check {
	display: inline-block;
	font-size: 15px;
	font-weight: 700;
	width: 22px;
	text-align: center;
}

.ninpu-check--yes { color: #27AE60; }
.ninpu-check--no  { color: #bbb; }

.ninpu-tag {
	display: inline-block;
	padding: .2em .55em;
	background: var(--color-primary-light);
	color: var(--color-primary);
	font-size: var(--font-size-xs);
	font-weight: 700;
	border-radius: 3px;
	line-height: 1.5;
}

.ninpu-price {
	font-weight: 700;
	font-size: var(--font-size-base);
	color: var(--color-text);
}

.ninpu-price-unit {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

/* ---- Comparison Table ---- */

.ninpu-comparison {
	margin: 2.5em 0;
}

.ninpu-comparison__title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-primary);
	border-left: 4px solid var(--color-primary);
	padding-left: 0.75em;
	margin: 0 0 1em;
}

.ninpu-comparison__table-wrap {
	margin-bottom: var(--spacing-xl);
}

.ninpu-comparison__table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
}

.ninpu-comparison__scroll-hint {
	display: block;
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	text-align: center;
	margin: .4em 0 0 !important;
}

/* Sticky column widths */
:root {
	--col-name-w: 210px;
	--col-apply-w: 80px;
}

/* .post_content table のグローバルスタイルを上書きするため !important を使用 */
.post_content .ninpu-comparison__table {
	width: 100% !important;
	min-width: 960px;
	border-collapse: collapse !important;
	font-size: var(--font-size-sm) !important;
	margin: 0 !important;
}

.post_content .ninpu-comparison__table thead th {
	background: var(--color-primary) !important;
	color: var(--color-white) !important;
	font-weight: 700 !important;
	font-size: var(--font-size-xs) !important;
	padding: .65em .8em !important;
	white-space: nowrap;
	border: none !important;
	text-align: center !important;
	line-height: 1.4;
}

/* ---- Sticky columns ---- */

.ninpu-comparison__table .ninpu-comparison__sticky {
	position: sticky;
	z-index: 2;
}

.ninpu-comparison__table thead .ninpu-comparison__sticky {
	z-index: 3;
}

/* 順位 */
/* 相談窓口名 */
.ninpu-comparison__th--name,
.ninpu-comparison__td--name {
	left: 0;
	min-width: var(--col-name-w);
	width: var(--col-name-w);
}

/* 相談する（固定セクション末尾に右側シャドウで区切り） */
.ninpu-comparison__th--apply,
.ninpu-comparison__td--apply {
	left: var(--col-name-w);
	width: var(--col-apply-w);
	min-width: var(--col-apply-w);
	box-shadow: 3px 0 6px -2px rgba(0, 0, 0, .14);
}

/* thead sticky の背景 */
.post_content .ninpu-comparison__table thead .ninpu-comparison__sticky {
	background: var(--color-primary) !important;
}

/* tbody sticky の背景（スクロール時に透けないよう明示指定） */
.post_content .ninpu-comparison__table tbody td.ninpu-comparison__sticky {
	background: var(--color-white);
}

.ninpu-comparison__row--top td.ninpu-comparison__sticky {
	background: #FFFBF0 !important;
}

.post_content .ninpu-comparison__th--name {
	text-align: left !important;
}

.post_content .ninpu-comparison__table tbody tr {
	border-bottom: 1px solid var(--color-border);
}

.ninpu-comparison__row--top {
	background: #FFFBF0;
}

.post_content .ninpu-comparison__table tbody td {
	padding: .75em .8em !important;
	vertical-align: middle !important;
	text-align: center !important;
	border: 1px solid var(--color-border) !important;
	background: transparent;
}

.post_content .ninpu-comparison__td--name {
	text-align: left !important;
}

.ninpu-comparison__td--name strong {
	display: block;
	font-weight: 700;
	color: var(--color-text);
	font-size: var(--font-size-sm);
	line-height: 1.4;
}

.ninpu-comparison__company {
	display: block;
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	margin-top: 2px;
}

.ninpu-comparison__td--score,
.ninpu-comparison__td--price {
	white-space: nowrap;
}

.ninpu-comparison__name-link,
.ninpu-comparison__name-link a {
	color: var(--color-link) !important;
	text-decoration: underline !important;
	text-decoration-color: var(--color-link) !important;
	text-underline-offset: 3px;
}

.ninpu-comparison__name-link:hover,
.ninpu-comparison__name-link a:hover {
	opacity: .8;
}

.ninpu-comparison__td--methods {
	min-width: 120px;
	white-space: normal;
}

.ninpu-comparison__td--pregnancy {
	min-width: 140px;
	white-space: normal;
}

.ninpu-comparison__td--gift {
	min-width: 140px;
	white-space: normal;
}

.ninpu-comparison__td--area {
	min-width: 140px;
}

.ninpu-comparison__td--age {
	min-width: 130px;
}

.ninpu-waiting-none {
	color: #27AE60;
	font-weight: 700;
	font-size: var(--font-size-xs);
}

.ninpu-amount {
	font-weight: 700;
	font-size: var(--font-size-sm);
	color: var(--color-text);
}

.ninpu-amount-unit {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

.ninpu-comparison__btn {
	display: inline-block;
	background: #F5A623;
	color: var(--color-white) !important;
	padding: .4em .7em;
	border-radius: var(--border-radius);
	font-size: var(--font-size-xs);
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
	transition: opacity .15s;
}

.ninpu-comparison__btn:hover {
	opacity: .85;
}

/* ---- Detail Cards ---- */

.ninpu-comparison__details {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-lg);
}

.ninpu-ins-card {
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	overflow: hidden;
	background: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.ninpu-ins-card__header {
	display: flex;
	align-items: center;
	gap: var(--spacing-md);
	padding: var(--spacing-md) var(--spacing-lg);
	border-bottom: 1px solid var(--color-border);
	background: var(--color-bg);
}

.ninpu-ins-card__title-group {
	flex: 1;
	min-width: 0;
}

/* .post_content h3 のグローバルスタイルを完全にリセット */
.post_content .ninpu-ins-card__name {
	font-size: var(--font-size-xl) !important;
	font-weight: 700 !important;
	color: var(--color-text) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
	box-shadow: none !important;
	line-height: 1.4 !important;
}

.ninpu-ins-card__name a {
	color: var(--color-link) !important;
	text-decoration: underline !important;
}

.ninpu-ins-card__company {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	margin: 3px 0 0 !important;
}

.ninpu-ins-card__score {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
	white-space: nowrap;
}

.ninpu-ins-card__logo {
	flex-shrink: 0;
	height: 36px;
	width: auto;
	max-width: 120px;
	object-fit: contain;
	display: block;
}

.ninpu-ins-card__features {
	padding: var(--spacing-sm) var(--spacing-lg);
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-xs);
	border-bottom: 1px solid var(--color-border);
}

.ninpu-ins-card__catchcopy {
	padding: var(--spacing-md) var(--spacing-lg);
	border-bottom: 1px solid var(--color-border);
	background: var(--color-primary-light, #FFF1F6);
}

.ninpu-ins-card__catchcopy p {
	font-size: var(--font-size-md) !important;
	font-weight: 700 !important;
	color: var(--color-primary) !important;
	margin: 0 !important;
	line-height: 1.5 !important;
}

.ninpu-ins-card__section {
	padding: var(--spacing-md) var(--spacing-lg);
	border-bottom: 1px solid var(--color-border);
}

.post_content .ninpu-ins-card__section-title {
	font-size: var(--font-size-sm) !important;
	font-weight: 700 !important;
	color: var(--color-text) !important;
	margin: 0 0 .6em !important;
	padding: 0 0 .35em !important;
	border: none !important;
	border-bottom: 2px solid var(--color-border) !important;
	background: none !important;
	line-height: 1.4 !important;
}

.ninpu-ins-card__section-text {
	font-size: var(--font-size-sm) !important;
	line-height: 1.85 !important;
	color: var(--color-text) !important;
	margin: 0 !important;
}

.ninpu-ins-card__meta {
	padding: var(--spacing-md) var(--spacing-lg);
	border-bottom: 1px solid var(--color-border);
}

.ninpu-ins-card__meta-list {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .35em var(--spacing-md);
	margin: 0;
	font-size: var(--font-size-sm);
}

.ninpu-ins-card__meta-item {
	display: contents;
}

.ninpu-ins-card__meta-item dt {
	color: var(--color-text-muted);
	white-space: nowrap;
	font-weight: 700;
	padding: 0;
}

.ninpu-ins-card__meta-item dd {
	color: var(--color-text);
	margin: 0;
	padding: 0;
}

.ninpu-ins-card__body {
	padding: var(--spacing-md) var(--spacing-lg);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-lg);
}

/* .post_content h4 のグローバルスタイルをリセット */
.post_content .ninpu-ins-card__list-title {
	font-size: var(--font-size-sm) !important;
	font-weight: 700 !important;
	margin: 0 0 .75em !important;
	padding: 0 0 .35em !important;
	border: none !important;
	border-bottom: 2px solid currentColor !important;
	background: none !important;
	line-height: 1.4 !important;
}

.post_content .ninpu-ins-card__list-title--pros { color: #27AE60 !important; }
.post_content .ninpu-ins-card__list-title--cons { color: #E74C3C !important; }

.ninpu-ins-card__list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: var(--font-size-sm);
}

.ninpu-ins-card__list li {
	padding: .3em 0 .3em 1.3em !important;
	position: relative;
	line-height: 1.6 !important;
	color: var(--color-text);
	margin-bottom: 0 !important;
}

.ninpu-ins-card__list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #27AE60;
	font-weight: 700;
}

.ninpu-ins-card__list--cons li::before {
	content: "!";
	color: #E74C3C;
}

.ninpu-ins-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--spacing-md);
	padding: var(--spacing-md) var(--spacing-lg);
	border-top: 1px solid var(--color-border);
	background: var(--color-bg);
}

.ninpu-ins-card__price-info {
	font-size: var(--font-size-sm);
	color: var(--color-text);
}

.ninpu-ins-card__price-info strong {
	font-size: var(--font-size-lg);
	color: var(--color-primary);
	margin: 0 2px;
}

.ninpu-ins-card__waiting {
	display: inline-block;
	margin-left: var(--spacing-sm);
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	background: var(--color-border);
	padding: .1em .5em;
	border-radius: 3px;
}

.ninpu-ins-card__waiting--none {
	background: #e6f4ec;
	color: #27AE60;
}

.ninpu-ins-card__actions {
	display: flex;
	align-items: center;
	gap: var(--spacing-md);
}

.ninpu-ins-card__apply-btn {
	display: inline-block;
	background: #F5A623;
	color: var(--color-white) !important;
	padding: .65em 1.5em;
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
	transition: opacity .15s;
}

.ninpu-ins-card__apply-btn:hover {
	opacity: .85;
}

.ninpu-ins-card__detail-link {
	font-size: var(--font-size-xs);
	color: var(--color-link);
	text-decoration: underline;
}

.ninpu-ins-card__banner {
	text-align: center;
	padding: var(--spacing-md) var(--spacing-lg);
	border-bottom: 1px solid var(--color-border);
}

.ninpu-ins-card__banner img {
	max-width: 100%;
	height: auto;
	display: inline-block;
}

.ninpu-ins-card__ad {
	font-size: var(--font-size-sm);
	line-height: 1.7;
	color: var(--color-text);
}

.ninpu-ins-card__ad p {
	margin: 0;
}

.ninpu-ins-card__ad a {
	color: var(--color-link);
	text-decoration: underline;
	font-weight: 700;
}

.ninpu-ins-card__ad img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

@media (max-width: 640px) {
	.ninpu-ins-card__header {
		flex-wrap: wrap;
		gap: var(--spacing-sm);
	}

	.ninpu-ins-card__score {
		flex-basis: 100%;
	}

	.ninpu-ins-card__body {
		grid-template-columns: 1fr;
		gap: var(--spacing-md);
	}

	.ninpu-ins-card__footer {
		flex-direction: column;
		align-items: flex-start;
	}

	.ninpu-ins-card__actions {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
	}

	.ninpu-ins-card__apply-btn {
		text-align: center;
	}
}

/* =============================================
   12. Utility — 記事共通ユーティリティ
   ============================================= */

/* プロモーション表示 */
.promotion-notice {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: .4em .75em;
	margin: 0 0 1.5em !important;
	line-height: 1.6;
}

/* 監修者クレジット */
.supervisor-credit {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	border-top: 1px solid var(--color-border);
	padding-top: 1em;
	margin-top: 2.5em !important;
	line-height: 1.6;
}

/* ─── 固定ページ・投稿: Swell タイトルエリア非表示 ─── */
.page #top_title_area,
.single #top_title_area {
	display: none;
}

/* ─── 記事内 CTA ─── */
.ninpu-cta {
	text-align: center;
	border: 2px solid var(--color-primary);
	border-radius: var(--border-radius);
	padding: 1.5em 1.25em;
	margin: 2.5em 0;
	background: var(--color-primary-light);
}

.ninpu-cta__title {
	font-size: var(--font-size-md);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 1em;
}

.ninpu-cta__btn {
	display: inline-block;
	background: var(--color-primary);
	color: var(--color-white) !important;
	font-size: var(--font-size-base);
	font-weight: 700;
	padding: .7em 2em;
	border-radius: 2em;
	text-decoration: none !important;
	transition: background .2s;
}

.ninpu-cta__btn:hover {
	background: var(--color-primary-dark);
}

/* ─── この記事を書いた人 非表示 ─── */
.l-articleBottom__section.-author { display: none !important; }

/* ─── フッター コピーライト ─── */
.l-footer .copyright {
	text-align: center;
	font-size: 0.75rem;
	color: var(--color-text-muted);
	padding: 12px 0 16px;
	margin: 0;
}

/* =============================================
   出産費用シミュレーター ポップアップ
   ============================================= */

/* オーバーレイ（背景暗幕） — display:none がデフォルト。.is-open で表示 */
.ninpu-sim-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .45);
	z-index: 99999;
	align-items: center;
	justify-content: center;
	padding: var(--spacing-md);
}
.ninpu-sim-overlay.is-open {
	display: flex;
	animation: ninpu-sim-fadein .25s ease;
}

@keyframes ninpu-sim-fadein {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* パネル本体 */
.ninpu-sim-panel {
	background: var(--color-white);
	border-radius: 12px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, .18);
	width: 100%;
	max-width: 400px;
	padding: var(--spacing-lg) var(--spacing-lg) var(--spacing-xl);
	position: relative;
	animation: ninpu-sim-slidein .3s cubic-bezier(.22, .61, .36, 1);
}

@keyframes ninpu-sim-slidein {
	from { transform: translateY(24px); opacity: 0; }
	to   { transform: translateY(0);    opacity: 1; }
}

/* 閉じるボタン */
.ninpu-sim-close {
	position: absolute;
	top: 12px;
	right: 14px;
	background: none;
	border: none;
	font-size: 22px;
	line-height: 1;
	color: var(--color-text-muted);
	cursor: pointer;
	padding: 4px 8px;
	border-radius: var(--border-radius);
	transition: color .15s, background .15s;
}
.ninpu-sim-close:hover {
	color: var(--color-text);
	background: var(--color-bg);
}

/* ラベル・タイトル */
.ninpu-sim-label {
	font-size: var(--font-size-xs);
	color: var(--color-primary);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin: 0 0 4px;
}
.ninpu-sim-title {
	font-size: var(--font-size-md);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 var(--spacing-md);
	line-height: var(--line-height-heading);
}

/* ステップドット */
.ninpu-sim-dots {
	display: flex;
	gap: 6px;
	margin-bottom: var(--spacing-lg);
}
.ninpu-sim-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--color-border);
	transition: background .2s, transform .2s;
}
.ninpu-sim-dot.is-active {
	background: var(--color-primary);
	transform: scale(1.3);
}
.ninpu-sim-dot.is-done {
	background: var(--color-primary-dark);
}

/* 質問テキスト */
.ninpu-sim-question {
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 var(--spacing-md);
	line-height: var(--line-height-heading);
}

/* 戻るボタン */
.ninpu-sim-back {
	background: none;
	border: none;
	color: var(--color-text-muted);
	font-size: var(--font-size-xs);
	font-family: var(--font-family-base);
	cursor: pointer;
	padding: 0;
	margin-top: var(--spacing-sm);
	display: inline-block;
	transition: color .15s;
}
.ninpu-sim-back:hover {
	color: var(--color-text);
}

/* 選択肢ボタン */
.ninpu-sim-choices {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-sm);
}
.ninpu-sim-choice {
	background: var(--color-primary-light);
	border: 1.5px solid var(--color-primary);
	border-radius: 24px;
	color: var(--color-primary-dark);
	font-size: var(--font-size-sm);
	font-weight: 700;
	padding: 10px var(--spacing-md);
	cursor: pointer;
	text-align: center;
	transition: background .15s, color .15s, transform .1s;
	font-family: var(--font-family-base);
}
.ninpu-sim-choice:hover,
.ninpu-sim-choice:focus-visible {
	background: var(--color-primary);
	color: var(--color-white);
	transform: translateY(-1px);
}

/* 結果エリア */
.ninpu-sim-result {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-sm);
}

.ninpu-sim-cost-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: var(--spacing-sm) 0;
	border-bottom: 1px solid var(--color-border);
}
.ninpu-sim-cost-row--net {
	border-bottom: none;
	padding-top: var(--spacing-sm);
}
.ninpu-sim-cost-label {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}
.ninpu-sim-cost-value {
	font-size: var(--font-size-lg);
	font-weight: 700;
	color: var(--color-text);
}
.ninpu-sim-cost-value--net {
	font-size: var(--font-size-xl);
	color: var(--color-primary-dark);
}

.ninpu-sim-note {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	margin: 0;
	line-height: 1.6;
}
.ninpu-sim-consult-text {
	font-size: var(--font-size-sm);
	color: var(--color-text);
	line-height: 1.7;
	margin: var(--spacing-sm) 0 0;
}

/* CTAボタン */
.ninpu-sim-cta {
	display: block;
	background: var(--color-primary);
	color: var(--color-white) !important;
	text-align: center;
	font-size: var(--font-size-sm);
	font-weight: 700;
	padding: 14px var(--spacing-md);
	border-radius: 24px;
	text-decoration: none;
	transition: background .15s, transform .1s;
	margin-top: var(--spacing-sm);
}
.ninpu-sim-cta:hover {
	background: var(--color-primary-dark);
	transform: translateY(-1px);
}

/* もう一度ボタン */
.ninpu-sim-retry {
	background: none;
	border: none;
	color: var(--color-text-muted);
	font-size: var(--font-size-xs);
	cursor: pointer;
	text-align: center;
	text-decoration: underline;
	padding: 0;
	font-family: var(--font-family-base);
}
.ninpu-sim-retry:hover {
	color: var(--color-text);
}

/* おすすめ記事 */
.ninpu-sim-articles {
	border-top: 1px solid var(--color-border);
	padding-top: var(--spacing-sm);
	margin-top: var(--spacing-xs);
	display: flex;
	flex-direction: column;
	gap: 0;
}
.ninpu-sim-articles-label {
	font-size: var(--font-size-xs);
	font-weight: 700;
	color: var(--color-text-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
	margin: 0 0 var(--spacing-xs);
}
.ninpu-sim-article-item {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px 0;
	text-decoration: none;
	border-bottom: 1px dashed var(--color-border);
}
.ninpu-sim-article-item:last-child {
	border-bottom: none;
}
.ninpu-sim-article-title {
	font-size: var(--font-size-xs);
	font-weight: 700;
	color: var(--color-primary-dark);
	line-height: 1.5;
}
.ninpu-sim-article-item:hover .ninpu-sim-article-title {
	text-decoration: underline;
}
.ninpu-sim-article-desc {
	font-size: 11px;
	color: var(--color-text-muted);
	line-height: 1.5;
}

/* モバイル調整 */
@media (max-width: 480px) {
	.ninpu-sim-panel {
		border-radius: 16px 16px 0 0;
		padding: var(--spacing-lg) var(--spacing-md) var(--spacing-xl);
	}
	.ninpu-sim-overlay {
		align-items: flex-end;
		padding: 0;
	}
}

/* =============================================
   サイドバー — アフィリエイトバナー
   ============================================= */
.ninpu-affiliate-banners {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-sm, 8px);
	margin-bottom: var(--spacing-md, 16px);
}

.ninpu-affiliate-banner {
	display: block;
}

.ninpu-affiliate-banner img {
	width: 100%;
	height: auto;
	border-radius: 4px;
}

/* =============================================
   サイドバー — 検索バー
   ============================================= */
.ninpu-sidebar-search {
	margin-bottom: var(--spacing-md, 16px);
}

.ninpu-sidebar-search form {
	display: flex;
	gap: 4px;
}

.ninpu-sidebar-search input[type="search"] {
	flex: 1;
	padding: 8px 12px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-size: 0.875rem;
	color: var(--color-text);
	background: var(--color-white);
	outline: none;
}

.ninpu-sidebar-search input[type="search"]:focus {
	border-color: var(--color-primary);
}

.ninpu-sidebar-search button[type="submit"] {
	padding: 8px 12px;
	background: var(--color-primary);
	color: var(--color-white);
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 0.875rem;
	white-space: nowrap;
}

.ninpu-sidebar-search button[type="submit"]:hover {
	background: var(--color-primary-dark);
}

/* =============================================
   サイドバー — 人気記事・カテゴリー・SWELL広告 非表示
   ============================================= */
.widget_categories,
.widget_popular_posts,
.widget-popular-posts,
[class*="widget_swell_popular"],
.widget_swell_ad_widget,
.widget_search,
.widget_swell_promotion_banner {
	display: none !important;
}

/* =============================================
   MV（ヒーロー画像エリア）— 子テーマのカスタムヒーローに差し替え済み
   ============================================= */

/* =============================================
   トップページ ポストスライダー 非表示
   ============================================= */
#post_slider {
	display: none !important;
}

/* =============================================
   記事一覧 — アイキャッチ＋タイトルのみ表示
   メタdescription（抜粋）を非表示
   ============================================= */
.p-postList__excerpt {
	display: none !important;
}

/* =============================================
   ヘッダー上部バー（RSS・検索アイコン）非表示
   ============================================= */
.l-header__bar {
	display: none !important;
}

/* =============================================
   トップページ ヒーローセクション
   ============================================= */
.ninpu-hero {
	position: relative;
	padding: calc(4rem + 10px) 1.5rem 4rem;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

.ninpu-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 241, 246, 0.55);
}

.ninpu-hero__inner {
	position: relative;
	max-width: var(--content-width-wide);
	margin: 0 auto;
}

.ninpu-hero__content {
	max-width: 420px;
}

.ninpu-hero__eyebrow {
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 0.75em;
	letter-spacing: 0.05em;
}

.ninpu-hero__title {
	font-size: var(--font-size-2xl) !important;
	font-weight: 700 !important;
	color: var(--color-text) !important;
	line-height: var(--line-height-heading) !important;
	margin: 0 0 1rem !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
	box-shadow: none !important;
	text-align: left !important;
}

.ninpu-hero__title span {
	color: var(--color-primary);
}

.ninpu-hero__desc {
	font-size: var(--font-size-base);
	color: var(--color-text-muted);
	line-height: var(--line-height-base);
	margin: 0;
}

@media (max-width: 640px) {
	.ninpu-hero {
		padding: 2.5rem 1.25rem;
	}

	.ninpu-hero__title {
		font-size: var(--font-size-xl);
	}
}

/* =============================================
   XX. Simulator Page — 出産費用シミュレーター（固定ページ版）
   [ninpu_sim_page] ショートコード用スタイル
   ============================================= */

.ninpu-simp {
	max-width: 680px;
	margin: 0 auto;
	padding: 0 0 var(--spacing-2xl);
}

/* ---- ヒーロー ---- */
.ninpu-simp-hero {
	text-align: center;
	padding: var(--spacing-xl) var(--spacing-md) var(--spacing-lg);
	background: var(--color-primary-light);
	border-radius: var(--border-radius);
	margin-bottom: var(--spacing-xl);
}

.ninpu-simp-badge {
	display: inline-block;
	background: var(--color-primary);
	color: var(--color-white);
	font-size: var(--font-size-xs);
	font-weight: 700;
	padding: 0.25em 0.9em;
	border-radius: 99px;
	letter-spacing: 0.05em;
	margin-bottom: var(--spacing-sm);
}

.ninpu-simp-title {
	font-size: var(--font-size-xl) !important;
	font-weight: 700 !important;
	color: var(--color-text) !important;
	margin: 0.25em 0 0.5em !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
	box-shadow: none !important;
	line-height: var(--line-height-heading) !important;
}

.ninpu-simp-sub {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin: 0;
}

/* ---- ステップ全体 ---- */
.ninpu-simp-steps {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-lg);
}

/* ---- 個別ステップ ---- */
.ninpu-simp-step {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--spacing-lg) var(--spacing-xl);
	box-shadow: var(--shadow-sm);
	/* アニメーション初期状態（is-active で解除） */
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.ninpu-simp-step.is-hidden {
	display: none;
}

.ninpu-simp-step.is-active {
	opacity: 1;
	transform: translateY(0);
}

.ninpu-simp-step.is-answered {
	background: var(--color-bg);
	border-color: var(--color-border);
}

/* ---- ステップヘッダー ---- */
.ninpu-simp-step-header {
	display: flex;
	align-items: flex-start;
	gap: var(--spacing-md);
	margin-bottom: var(--spacing-md);
}

.ninpu-simp-q-num {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	font-size: var(--font-size-xs);
	font-weight: 700;
	margin-top: 2px;
}

.ninpu-simp-step.is-answered .ninpu-simp-q-num {
	background: #aaa;
}

.ninpu-simp-q {
	font-size: var(--font-size-md);
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--line-height-heading);
	margin: 0;
}

/* ---- 選択肢ボタン ---- */
.ninpu-simp-choices {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-sm);
	margin-left: 48px;
}

.ninpu-simp-choice {
	display: inline-flex;
	align-items: center;
	padding: 0.65em 1.2em;
	background: var(--color-white);
	border: 2px solid var(--color-border);
	border-radius: 99px;
	font-size: var(--font-size-sm);
	font-weight: 500;
	color: var(--color-text);
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
	line-height: 1.4;
}

.ninpu-simp-choice:hover:not(:disabled) {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.ninpu-simp-choice.is-selected {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.ninpu-simp-choice:disabled {
	cursor: default;
	opacity: 0.5;
}

.ninpu-simp-choice.is-selected:disabled {
	opacity: 1;
}

/* ---- 選択済みラベル ---- */
.ninpu-simp-selected-label {
	margin-top: var(--spacing-sm);
	margin-left: 48px;
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

/* ---- 結果エリア ---- */
.ninpu-simp-result {
	background: var(--color-white);
	border: 2px solid var(--color-primary);
	border-radius: var(--border-radius);
	box-shadow: var(--shadow-md);
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.ninpu-simp-result.is-hidden {
	display: none;
}

.ninpu-simp-result.is-active {
	opacity: 1;
	transform: translateY(0);
}

.ninpu-simp-result-inner {
	padding: var(--spacing-xl);
}

.ninpu-simp-result-heading {
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-primary);
	text-align: center;
	margin: 0 0 var(--spacing-md);
	letter-spacing: 0.05em;
}

/* ---- 費用カード ---- */
.ninpu-simp-cost-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-md);
	margin-bottom: var(--spacing-md);
}

.ninpu-simp-cost-card {
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: var(--spacing-md) var(--spacing-lg);
	text-align: center;
}

.ninpu-simp-cost-card--net {
	background: var(--color-primary-light);
	border-color: #f0c0cf;
}

.ninpu-simp-cost-label {
	display: block;
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	margin-bottom: 0.35em;
}

.ninpu-simp-cost-value {
	display: block;
	font-size: var(--font-size-lg);
	color: var(--color-text);
	line-height: 1.2;
}

.ninpu-simp-cost-value b {
	font-size: var(--font-size-2xl);
	font-weight: 700;
}

.ninpu-simp-cost-value small {
	font-size: var(--font-size-sm);
}

.ninpu-simp-cost-value--net {
	color: var(--color-primary-dark);
}

/* ---- 注釈・メッセージ ---- */
.ninpu-simp-note {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	line-height: 1.75;
	margin: 0 0 var(--spacing-md);
}

.ninpu-simp-ins-msg {
	background: var(--color-bg);
	border-left: 3px solid var(--color-primary);
	padding: 0.75em 1em;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	line-height: 1.75;
	margin-bottom: var(--spacing-md);
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

.ninpu-simp-consult {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	line-height: 1.8;
	margin: 0 0 var(--spacing-md);
}

/* ---- CTA ---- */
.ninpu-simp-cta {
	display: block;
	width: 100%;
	box-sizing: border-box;
	background: var(--color-primary);
	color: var(--color-white) !important;
	font-size: var(--font-size-md);
	font-weight: 700;
	text-align: center;
	padding: 0.9em 1em;
	text-decoration: none !important;
	border-radius: var(--border-radius);
	transition: opacity 0.15s;
	margin-bottom: var(--spacing-lg);
}

.ninpu-simp-cta:hover {
	opacity: 0.85;
	text-decoration: none !important;
}

/* ---- おすすめ記事 ---- */
.ninpu-simp-articles {
	margin-bottom: var(--spacing-lg);
}

.ninpu-simp-articles-label {
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 var(--spacing-sm);
}

.ninpu-simp-article-item {
	display: flex;
	flex-direction: column;
	gap: 0.2em;
	padding: 0.75em 0;
	border-top: 1px solid var(--color-border);
	text-decoration: none;
}

.ninpu-simp-article-item:last-child {
	border-bottom: 1px solid var(--color-border);
}

.ninpu-simp-article-item:hover {
	opacity: 0.75;
}

.ninpu-simp-article-title {
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-link);
	text-decoration: underline;
	line-height: 1.5;
}

.ninpu-simp-article-desc {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	line-height: 1.6;
}

/* ---- やり直しボタン ---- */
.ninpu-simp-retry {
	display: block;
	width: 100%;
	background: none;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	padding: 0.7em 1em;
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	cursor: pointer;
	transition: opacity 0.15s;
	text-align: center;
}

.ninpu-simp-retry:hover {
	opacity: 0.7;
}

/* ---- レスポンシブ ---- */
@media (max-width: 480px) {
	.ninpu-simp-step {
		padding: var(--spacing-md);
	}

	.ninpu-simp-choices {
		margin-left: 0;
	}

	.ninpu-simp-selected-label {
		margin-left: 0;
	}

	.ninpu-simp-cost-cards {
		grid-template-columns: 1fr;
	}

	.ninpu-simp-result-inner {
		padding: var(--spacing-md);
	}
}
