/*
Theme Name: Naraberu
Theme URI: https://naraberu.jp/
Description: ナラベル（naraberu.jp）用の独立テーマ（親テーマなし）。2026-09-24 に Astra 子テーマからの移行を準備。デザインシステムは本ファイルに実装する。
Author: ナラベル運営
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: naraberu-child
*/

/* デザインシステム「クリア・ブルー」v0.4.0。値の正本はこのファイルの :root。
   ルール・理由・経緯は docs/初期設計.md（表は tools/tokens_sync.py が生成）。余白は --nrb-gap 系から取る（場当たり禁止） */

/* ---------- 1) デザイントークン ---------- */
:root {
	--nrb-primary: #1D7FD6;      /* 主色 */
	--nrb-primary-soft: #4DA3E8; /* 淡 */
	--nrb-primary-dark: #0F5CA8; /* 濃（見出しバー・文字） */
	--nrb-wash: #EAF4FC;         /* 青の淡地 */
	--nrb-wash-soft: #F4F9FD;    /* さらに淡い地 */
	--nrb-line: #CFE3F4;         /* 罫線 */
	--nrb-line-soft: #E3EEF8;    /* 弱い罫線 */
	--nrb-cta: #ED6C2B;          /* CTA（オレンジ） */
	--nrb-cta-hover: #D65E20;    /* CTA ホバー */
	--nrb-cta-wash: #FDF2EA;   /* オレンジの淡地(注意点・警告系) */
	--nrb-cta-line: #F5DCC6;   /* オレンジの罫線 */
	--nrb-cta-dark: #B85417;   /* オレンジの濃色(文字用) */
	--nrb-ink: #21313F;          /* 本文 */
	--nrb-sub: #5E7A92;          /* 補助文字 */
	--nrb-radius: 14px;   /* カード */
	--nrb-radius-s: 10px; /* 小部品 */
	/* 余白スケール(8pxベース) */
	--nrb-gap-xs: 8px;
	--nrb-gap-s: 14px;
	--nrb-gap-m: 20px;
	--nrb-gap-l: 32px;
	--nrb-gap-xl: 56px;
	/* ボックス共通 */
	--nrb-box-pad: 20px 22px; /* ボックス内側の余白 */
	--nrb-shadow: /* カードの影 */ 0 1px 2px rgba(15, 92, 168, 0.05), 0 4px 16px rgba(15, 92, 168, 0.06);
}

/* ---------- 1b) UI 基本色（ヘッダー・一覧・404・フォーム。Astra 時代に実際に表示されていた値） ---------- */
:root {
	--nrb-ui-heading: #1e293b;     /* 記事タイトル・一覧見出し・404 */
	--nrb-ui-nav: #334155;         /* グローバルナビ・コピーライト */
	--nrb-ui-nav-active: #045cb4;  /* ナビのホバー・現在地 */
	--nrb-ui-boxed-bg: #F0F5FA;    /* 記事・一覧・404 の地色 */
	--nrb-ui-border: #D1D5DB;      /* ヘッダー下罫・フォーム枠・コピーライト行の上罫 */
	--nrb-ui-input: #475569;       /* 入力欄の文字 */
	--nrb-ui-placeholder: #9CA3AF; /* 入力欄のプレースホルダー */
	--nrb-ui-field-bg: #FAFAFA;    /* 虫めがね付き検索欄の地 */
	--nrb-ui-search-icon: #3A3A3A; /* 虫めがね */
}

/* ============================================================
   A) 土台・レイアウト（Astra 時代の実表示を実測値で再現。2026-09-24 独立テーマ移行準備）
   値は Astra＋カスタマイザー設定（本文幅 970px・ロゴ幅 170/150/130px・ブレークポイント 921/544px）の実表示。
   詳細度は Astra 時代と同じに揃えてある（下の 2)〜6) の規則が以前と同じ順序・強さで上書きする）
   ============================================================ */

/* ---------- A1) 土台（リセット・基本タイポグラフィ） ---------- */
html {
	box-sizing: border-box;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

blockquote, body, dd, dl, dt, fieldset, figure, h1, h2, h3, h4, h5, h6, hr, html, iframe, legend, li, ol, p, pre, textarea, ul {
	border: 0;
	font-size: 100%;
	font-style: inherit;
	font-weight: inherit;
	margin: 0;
	outline: 0;
	padding: 0;
	vertical-align: baseline;
}

/* 文字の基準: 921px 以下は 91.2%（Astra 時代の設定。リセットより後ろに置く） */
html { font-size: 100%; }

@media (max-width: 921px) {
	html { font-size: 91.2%; }
}

body {
	margin: 0;
	overflow-x: hidden;
	background-color: #fff;
	color: var(--nrb-ink);
	font-size: 1rem;
	font-weight: 400;
	font-style: normal;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

body:not(.logged-in) { position: relative; }

a {
	color: var(--nrb-primary-dark);
	text-decoration: none;
	background-color: transparent;
	transition: all .2s linear;
}

a:hover,
a:focus { color: var(--nrb-primary); }

a:focus { outline: thin dotted; }
a:hover { outline: 0; }
a:focus-visible { outline: thin dotted; }

b, strong { font-weight: 700; }
small { font-size: 80%; }
cite, em, i { font-style: italic; }
dt { font-weight: 600; }
dd { margin: 0 1.5em 1em; }

img {
	border: 0;
	height: auto;
	max-width: 100%;
	vertical-align: middle;
}

figure { margin: 0; }
iframe { max-width: 100%; }

code, kbd, samp, pre { font-size: 1em; }
code, kbd, tt, var { font: 1em Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; }

p { margin-bottom: 1.75em; }

ul, ol { margin: 0 0 1.5em 3em; }
ul { list-style: disc; }
ol { list-style: decimal; }
li > ul, li > ol { margin-bottom: 0; }

h1, h2, h3, h4, h5, h6 {
	clear: both;
	color: var(--nrb-ui-heading);
	font-weight: 600;
}

h1 { font-size: 2.25rem; line-height: 1.4em; }
h2 { font-size: 1.875rem; line-height: 1.3em; }
h3 { font-size: 1.5rem; line-height: 1.3em; }
h4 { font-size: 1.25rem; line-height: 1.2em; }
h5 { font-size: 1.2em; line-height: 1.6; }
h6 { font-size: 1.1em; line-height: 1.7; }

@media (max-width: 921px) {
	h1 { font-size: 1.875rem; }
	h2 { font-size: 1.5625rem; }
	h3 { font-size: 1.25rem; }
}

table {
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--nrb-ui-border);
	border-width: 1px 0 0 1px;
	margin: 0 0 1.5em;
	width: 100%;
}

th,
td {
	border: 1px solid var(--nrb-ui-border);
	border-width: 0 1px 1px 0;
	padding: .7em 1em;
}

th { font-weight: 600; }

::selection {
	background-color: var(--nrb-primary);
	color: #fff;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
	word-break: normal !important;
}

.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	display: block;
	height: auto;
	width: auto;
	left: 5px;
	top: 5px;
	z-index: 100000;
	padding: 15px 23px 14px;
	background-color: #f1f1f1;
	border-radius: 2px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, .6);
	color: #21759b;
	font-size: .875rem;
	line-height: normal;
	text-decoration: none;
}

/* フォーム部品（検索フォームで使う。ボタンは Astra のボタン設定＝主色の塗り） */
button,
input,
select,
textarea {
	color: inherit;
	font: inherit;
	margin: 0;
	vertical-align: baseline;
}

button,
input[type="submit"] {
	cursor: pointer;
	border: 0 solid var(--nrb-primary);
	border-radius: 4px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
	background-color: var(--nrb-primary);
	color: #fff;
	padding: 15px 30px;
	font-family: inherit;
	font-weight: 500;
	font-size: 1rem;
	line-height: 1em;
	text-transform: none;
	-webkit-appearance: button;
}

@media (max-width: 921px) {
	button,
	input[type="submit"] { padding: 14px 28px; }
}

@media (max-width: 544px) {
	button,
	input[type="submit"] { padding: 12px 24px; }
}

input[type="search"] {
	box-sizing: border-box;
	width: 100%;
	height: 40px;
	padding: 12px 16px;
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 24px;
	color: var(--nrb-ui-input);
	background: #fff;
	border: 1px solid var(--nrb-ui-border);
	border-radius: 4px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
	outline: none;
	transition: all .2s linear;
	-webkit-appearance: none;
	appearance: none;
}

input[type="search"]:focus {
	background-color: #fff;
	border-color: #046bd2;
	box-shadow: none;
	outline: none;
	border-style: dotted;
	border-width: thin;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

::placeholder { color: var(--nrb-ui-placeholder); }

label {
	color: var(--nrb-ui-heading);
	font-size: 14px;
	font-style: normal;
	font-weight: 500;
	line-height: 20px;
}

/* ---------- A2) レイアウト（固定ページ=白地 plain／記事・一覧・404・検索=淡地に白箱 boxed） ---------- */
#page {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-content { flex-grow: 1; }

.site-container {
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}

@media (min-width: 922px) {
	.site-container {
		display: flex;
		max-width: 1010px;
	}

	/* 記事は枠ごと 970px（白箱の内側は 890px）。固定ページ・一覧は内側が 970px */
	.single .site-container { max-width: 970px; }
}

#primary { width: 100%; }

.nrb-layout-plain { background-color: #fff; }
.nrb-layout-boxed { background-color: var(--nrb-ui-boxed-bg); }

.nrb-layout-plain #primary { margin: 0; }

@media (min-width: 1200px) {
	.nrb-layout-plain:not(.home) #primary { margin: 60px 0; }
}

@media (max-width: 921px) {
	.nrb-layout-plain #primary { padding: 0; }
}

.nrb-layout-boxed #primary {
	margin: 0;
	padding: 4em 0;
}

@media (min-width: 993px) {
	.nrb-layout-boxed #primary {
		margin: 4em 0;
		padding: 0;
	}
}

@media (max-width: 544px) {
	.nrb-layout-boxed .site-container {
		padding-left: .54em;
		padding-right: .54em;
	}
}

/* ---------- A3) ヘッダー（header.php。922px 未満はハンバーガー） ---------- */
.site-header {
	position: relative;
	z-index: 99;
}

.site-header__bar {
	position: relative;
	z-index: 4;
	background-color: #fff;
	border-bottom: 1px solid var(--nrb-ui-border);
}

.site-header__inner {
	display: flex;
	align-items: center;
	max-width: 1010px;
	min-height: 80px;
	margin: 0 auto;
	padding: 0 20px;
}

.site-branding {
	display: flex;
	align-items: center;
	padding: 1em 0;
	line-height: 1;
}

.custom-logo-link { display: block; }

/* ロゴ幅は Astra 時代の設定値（170/150/130px） */
.custom-logo-link img {
	display: block;
	width: 170px;
	max-width: 170px;
}

@media (max-width: 921px) {
	.custom-logo-link img {
		width: 150px;
		max-width: 150px;
	}
}

@media (max-width: 544px) {
	.custom-logo-link img {
		width: 130px;
		max-width: 130px;
	}
}

.main-header-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-header-menu a { color: var(--nrb-ui-nav); }

.main-header-menu a:hover,
.main-header-menu .current-menu-item > a { color: var(--nrb-ui-nav-active); }

.menu-toggle { display: none; }

@media (min-width: 922px) {
	.main-navigation {
		display: flex;
		align-self: stretch;
		margin-left: auto;
	}

	.main-header-menu { display: flex; }

	.main-header-menu > li {
		display: flex;
		flex-direction: column;
		justify-content: center;
		line-height: 80px;
	}

	.main-header-menu a {
		display: flex;
		align-items: center;
		height: 100%;
		padding: 0 1em;
	}
}

@media (max-width: 921px) {
	.site-header__bar {
		min-height: 80px;
		padding: 0 20px;
	}

	.site-header__inner {
		max-width: none;
		min-height: 79px;
		padding: 0;
	}

	.menu-toggle {
		display: flex;
		align-items: center;
		margin-left: auto;
		padding: .5em;
		font-size: 1.5em;
		font-weight: 400;
		line-height: 1.8571428571;
		color: var(--nrb-primary);
		background: transparent;
		border: none;
		border-radius: 2px;
		box-shadow: none;
		-webkit-font-smoothing: antialiased;
	}

	.menu-toggle:hover { color: var(--nrb-primary); }

	.menu-toggle:focus {
		border: thin dotted;
		outline: thin dotted;
	}

	.menu-toggle svg {
		display: block;
		width: 20px;
		height: 20px;
	}

	.menu-toggle .menu-toggle__close,
	.menu-toggle.toggled .menu-toggle__open { display: none; }

	.menu-toggle.toggled .menu-toggle__close { display: block; }

	/* ドロップダウン（ヘッダー直下に重ねて表示。本文は押し下げない） */
	.main-navigation {
		display: none;
		position: absolute;
		left: 0;
		top: calc(100% + 1px);
		width: 100%;
		background-color: #fff;
	}

	.site-header.is-menu-open .main-navigation { display: block; }

	.main-header-menu {
		display: flex;
		flex-wrap: wrap;
		line-height: 3;
		text-align: left;
	}

	.main-header-menu > li { width: 100%; }

	.main-header-menu a {
		display: block;
		padding: 0 20px;
		background-color: #fff;
	}

	.main-header-menu a:hover,
	.main-header-menu .current-menu-item > a { background-color: var(--nrb-ui-boxed-bg); }
}

/* ---------- A4) 記事・固定ページ（single.php・page.php） ---------- */
/* 記事の白箱（固定ページは白地のまま枠なし） */
.single .nrb-article {
	background-color: #fff;
	padding: 2.5em;
}

@media (max-width: 544px) {
	.single .nrb-article { padding: 1.5em 1em; }
}

.entry-header {
	margin-bottom: 1.2em;
	overflow-wrap: break-word;
	text-align: left;
}

.page .entry-header { margin-bottom: 1.5em; }
.single .entry-header { margin-bottom: 2em; }

@media (max-width: 768px) {
	.single .entry-header { margin-bottom: 1em; }
}

.single .entry-header .entry-meta:not(:last-child) { margin-bottom: 15px; }

.entry-title {
	color: var(--nrb-ui-heading);
	font-size: 2rem;
	font-weight: 600;
	margin-bottom: .6em;
}

.entry-meta {
	color: var(--nrb-primary-dark);
	font-size: .8125rem;
	font-weight: 600;
	line-height: 1.45;
}

.single .entry-header .post-thumb {
	margin-bottom: 2em;
	text-align: center;
}

.single .entry-header .post-thumb img {
	aspect-ratio: 16 / 9;
	width: 100%;
	height: 100%;
	margin-top: 0;
	margin-bottom: 0;
}

.entry-content { overflow-wrap: break-word; }

.entry-content::after {
	display: table;
	clear: both;
	content: "";
}

.entry-content p { margin-bottom: 1.6em; }
.entry-content > :last-child { margin-bottom: 0; }

.entry-content :where(h1, h2, h3, h4, h5, h6) {
	clear: none;
	margin-bottom: 20px;
}

.nrb-singular .entry-content a { text-decoration: underline; }

/* 記事だけの規則（固定ページには当てない。:where で Astra 時代と同じ弱い詳細度に揃える） */
:where(.single) .entry-content > * { margin-bottom: 1.5em; }

:where(.single) .entry-content :where(h1, h2, h3, h4, h5, h6) {
	margin-top: 1.5em;
	margin-bottom: calc(.3em + 10px);
}

:where(.single) .nrb-article figure,
:where(.single) .nrb-article img:not(figure img) { box-shadow: 0 0 30px 0 rgba(0, 0, 0, .15); }

:where(.single) code,
:where(.single) kbd,
:where(.single) samp {
	background: #ECEFF3;
	padding: 3px 6px;
}

/* ---------- A5) 一覧（カテゴリ・検索結果。parts/post-grid.php） ---------- */
.archive-header {
	max-width: 970px;
	width: 100%;
	margin-bottom: 2em;
	padding: 3em;
	background-color: #fff;
	text-align: left;
}

.search .archive-header { text-align: center; }

.archive-header > :not(:last-child) { margin-bottom: 10px; }

.archive-title,
.archive-title * {
	color: var(--nrb-ui-heading);
	font-size: 2rem;
	font-weight: 600;
}

.archive-header p { margin-bottom: 0; }

/* 検索結果のパンくず（ホーム » 検索結果: 〇〇） */
.breadcrumbs__items {
	display: inline-block;
	list-style: none;
	margin: 0;
	padding: 0;
}

.breadcrumbs__items li {
	display: inline-block;
	margin: 0;
	padding: 0;
}

.breadcrumbs__items li::after {
	content: "»";
	padding: 0 .3em;
}

.breadcrumbs__items li:last-child::after { display: none; }

.post-grid {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

@media (min-width: 922px) {
	.post-grid {
		margin-left: -1em;
		margin-right: -1em;
	}
}

.post-card {
	position: relative;
	width: 33.33%;
	margin-bottom: 2em;
	padding: 0 1em;
}

@media (max-width: 921px) {
	.post-card { width: 100%; }
}

.post-card__inner {
	height: 100%;
	padding: 1.5em;
	background-color: #fff;
	box-shadow: 0 6px 15px -2px rgba(16, 24, 40, .05);
	overflow-wrap: break-word;
}

/* 角丸はカテゴリ一覧だけ（検索結果は角なし。Astra 時代の表示どおり） */
.archive .post-card__inner {
	border-radius: 6px;
	overflow: hidden;
}

.post-card__thumb {
	margin: -1.5em -1.5em 1.5em;
	overflow: hidden;
}

.post-card__thumb img {
	aspect-ratio: 16 / 9;
	width: 100%;
	transform: scale(1);
	transition: transform .5s ease;
}

.post-card:hover .post-card__thumb img { transform: scale(1.1); }

.post-card__cats {
	display: block;
	margin-bottom: .8em;
	font-weight: 600;
}

.post-card__cats a { font-size: .875rem; }

.post-card__title {
	margin-bottom: .6em;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}

.post-card__title a { color: var(--nrb-ui-heading); }

.post-card__meta {
	margin-bottom: 1.2em;
	color: var(--nrb-primary-dark);
	font-size: .8125rem;
	font-weight: 600;
	line-height: 1.45;
}

.search .post-card__meta { margin-bottom: 1em; }

@media (max-width: 768px) {
	.post-card__meta { margin-bottom: 1em; }
}

.post-card__excerpt p { margin-bottom: 0; }

/* ページ送り（nrb_pagination()）: ← 前 は左、次 → は右、番号は中央。420px 以下は前・次を全幅に */
.nrb-pagination {
	display: inline-block;
	width: 100%;
	padding-top: 2em;
	text-align: center;
}

.nrb-pagination .nav-links {
	display: inline-block;
	width: 100%;
}

.nrb-pagination .page-numbers {
	display: inline-block;
	width: 2.33333em;
	height: 2.33333em;
	font-size: 1.06666rem;
	font-weight: 500;
	line-height: calc(2.33333em - 3px);
}

.nrb-pagination a { color: var(--nrb-ink); }

.nrb-pagination a:hover,
.nrb-pagination a:focus { color: var(--nrb-primary); }

.nrb-pagination .page-numbers.current {
	color: #fff;
	border-color: var(--nrb-primary);
	background-color: var(--nrb-primary);
}

.nrb-pagination .prev.page-numbers,
.nrb-pagination .next.page-numbers {
	width: auto;
	padding: 0 1.5em;
}

.nrb-pagination .prev.page-numbers { float: left; }
.nrb-pagination .next.page-numbers { float: right; }

@media (max-width: 420px) {
	.nrb-pagination .prev.page-numbers,
	.nrb-pagination .next.page-numbers {
		width: 100%;
		margin: 0;
		text-align: center;
	}
}

/* ---------- A6) 404・0 件表示・検索フォーム ---------- */
.error-404,
.no-results {
	background-color: #fff;
	padding: 3.34em 2.4em;
}

@media (min-width: 1201px) {
	.error-404,
	.no-results { padding: 3em; }
}

@media (max-width: 768px) {
	.error-404,
	.no-results { padding: 1.5em 2.14em; }
}

@media (max-width: 544px) {
	.error-404,
	.no-results { padding: 1.5em 1em; }
}

.error-404 { text-align: center; }
.search .no-results { text-align: center; }

.error-404 .page-header { margin-bottom: 1.5em; }

.error-404 .page-title {
	margin-bottom: 0;
	font-weight: 400;
}

.error-404 .page-sub-title {
	font-size: 1.5rem;
	font-weight: inherit;
}

.page-content > :last-child { margin-bottom: 0; }

/* 検索フォーム（searchform.php）: 既定＝入力欄 100% の下に「検索」ボタン（カテゴリ 0 件）。虫めがねは隠す */
.search-form .search-icon { display: none; }

.search-form .search-field {
	width: 100%;
	outline: 0;
}

.search-form input.search-submit { display: inline-block; }

/* 虫めがね付きの 1 行型（404・検索 0 件）: 幅 370px、右端に虫めがね（「検索」ボタンは透明で重ねる） */
.search-box .search-form { position: relative; }
.search-box .search-form > label { position: relative; }

.search-box .search-form .search-field {
	padding: 12px 45px 12px 15px;
	background-color: var(--nrb-ui-field-bg);
	border-radius: 2px;
}

.search-box .search-form .search-icon {
	display: block;
	position: absolute;
	top: 0;
	right: 15px;
	padding: 0;
	border: none;
	background: none;
	color: #fff;
	font-size: 1rem;
	line-height: 1em;
}

.search .search-box .search-form .search-icon { border-radius: 2px; }

.search-box .search-form .search-icon svg {
	display: inline;
	width: .9em;
	height: 1em;
	margin-top: 3px;
	margin-right: 2px;
	color: var(--nrb-ui-search-icon);
	fill: currentColor;
}

.search-box .search-form input.search-submit {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	max-width: 45px;
	padding: 13px 20px;
	border: none;
	border-radius: 2px;
	background: none;
	color: transparent;
}

.error-404__search {
	max-width: 370px;
	margin: 1.5em auto 0;
	padding-top: .5em;
}

.no-results .search-box .search-form {
	max-width: 370px;
	margin: 0 auto;
}

/* ---------- A7) フッターのコピーライト行・トップへ戻る ---------- */
.site-footer__bar {
	display: grid;
	min-height: 60px;
	padding: 20px 0;
	background-color: #fff;
	border-top: 1px solid var(--nrb-ui-border);
}

.site-footer__row {
	display: grid;
	align-items: center;
	max-width: 970px;
	min-height: 60px;
	margin: 0 auto;
	width: 100%;
}

.site-footer__copyright {
	margin: 0;
	color: var(--nrb-ui-nav);
	font-size: 1rem;
	text-align: center;
}

@media (max-width: 921px) {
	.site-footer__copyright { margin-bottom: 10px; }
}

.scroll-top {
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 99;
	width: 2.1em;
	height: 2.1em;
	padding: 0;
	font-size: 15px;
	line-height: 2.1;
	text-align: center;
	color: #fff;
	background-color: var(--nrb-primary-dark);
	border: 0;
	border-radius: 2px;
	box-shadow: none;
	cursor: pointer;
}

.scroll-top[hidden] { display: none; }

.scroll-top svg {
	width: 1.6em;
	height: .6em;
	vertical-align: middle;
	transform: translate(0, -20%) rotate(180deg);
}

@media (max-width: 921px) {
	.scroll-top svg { width: 1em; }
}

.scroll-top:focus {
	border: thin dotted;
	outline: thin dotted;
}

/* ---------- 2) タイポグラフィ(本文のリズム) ---------- */
/* フォントスタック: Astra既定は日本語フォント未指定で「ヒラギノ角ゴProN(W3/W6のみ)」に
   フォールバックし太ウェイトが出ない。Hiragino Sansを明示して見出し800=W8を確保(2026-07-24) */
body, button, input, select, textarea {
	font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
body {
	color: var(--nrb-ink);
}

.entry-content {
	font-size: 16px;
	line-height: 2.0;
	letter-spacing: 0.04em;
	font-feature-settings: "palt" 0; /* 日本語はベタ組みを基本に */
}

.entry-content p {
	margin: 0 0 1.6em;
}

.entry-content ul,
.entry-content ol {
	margin: 0 0 1.6em;
	padding-left: 1.5em;
}
.entry-content li {
	margin: 0.45em 0;
	line-height: 1.9;
}
.entry-content li::marker {
	color: var(--nrb-primary);
}

.entry-content a {
	color: var(--nrb-primary-dark);
	text-decoration-color: var(--nrb-line);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.entry-content a:hover {
	color: var(--nrb-primary);
	text-decoration-color: var(--nrb-primary-soft);
}

/* ---------- 3) 見出し(案B「ライン統一」: バーの太さ8→5→3pxと罫線の強弱だけで階層) ---------- */
/* 詳細度は Astra 時代（親の .ast-single-post .entry-title{line-height:1.2} に勝つ指定）と同じに保つ */
.entry-content h1,
h1.entry-title,
.nrb-singular h1.entry-title {
	position: relative;
	background: none;
	border-radius: 0;
	margin: 0 0 4px;
	padding: 14px 0 30px 26px;
	border-bottom: 3px solid var(--nrb-primary);
	line-height: 1.4;
	letter-spacing: 0.04em;
}
.entry-content h1::before,
h1.entry-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 20px;
	bottom: 38px;
	width: 8px;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--nrb-primary-dark) 0%, var(--nrb-primary-soft) 100%);
}

.entry-content h2 {
	position: relative;
	color: var(--nrb-ink);
	font-size: 1.45em;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.04em;
	margin: var(--nrb-gap-xl) 0 var(--nrb-gap-m);
	padding: 0.2em 0 0.5em 16px;
	border-bottom: 1px solid var(--nrb-line);
}
.entry-content h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	bottom: 0.5em;
	width: 5px;
	border-radius: 3px;
	background: var(--nrb-primary);
}

.entry-content h3 {
	position: relative;
	color: var(--nrb-ink);
	font-size: 1.18em;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.03em;
	margin: var(--nrb-gap-l) 0 var(--nrb-gap-s);
	padding-left: 13px;
	border-bottom: none;
}
.entry-content h3::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.25em;
	bottom: 0.25em;
	width: 3px;
	border-radius: 2px;
	background: var(--nrb-primary-soft);
}

.entry-content h4 {
	color: var(--nrb-ink);
	font-size: 1.02em;
	font-weight: 700;
	letter-spacing: 0.03em;
	margin: var(--nrb-gap-m) 0 var(--nrb-gap-xs);
}

/* ---------- カスタムフッター ---------- */
.nrb-footer {
	background: #fff;
	border-top: 1px solid var(--nrb-line-soft);
	padding: 56px 20px 48px;
}
.nrb-footer__inner {
	max-width: 970px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	gap: 32px 56px;
	justify-content: space-between;
}
.nrb-footer__brand {
	flex: 1 1 320px;
	max-width: 440px;
}
.nrb-footer__brand img {
	display: block;
	height: 34px;
	width: auto;
}
.nrb-footer__tag {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--nrb-sub);
	margin: 10px 0 0;
}
.nrb-footer__note {
	font-size: 11.5px;
	line-height: 1.9;
	color: var(--nrb-sub);
	margin: 14px 0 0;
}
.nrb-footer__nav {
	display: flex;
	gap: 48px;
	flex-wrap: wrap;
}
.nrb-footer__col {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 150px;
}
.nrb-footer__head {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--nrb-primary-dark);
	border-bottom: 1px solid var(--nrb-line);
	padding-bottom: 8px;
	margin-bottom: 2px;
}
.nrb-footer__col a {
	font-size: 13px;
	color: var(--nrb-ink);
	text-decoration: none;
}
.nrb-footer__col a:hover {
	color: var(--nrb-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}
/* 図版(インラインSVGイラスト+キャプション) */
.entry-content figure.nrb-figure {
	margin: var(--nrb-gap-m) 0;
	background: #fff;
	border: 1px solid var(--nrb-line-soft);
	border-radius: var(--nrb-radius-s);
	padding: 20px 16px 12px;
}
.nrb-figure svg {
	display: block;
	width: 100%;
	height: auto;
}
.entry-content .nrb-figure figcaption {
	font-size: 11px;
	color: #8b9bb0;
	text-align: right;
	margin-top: 8px;
}

/* 編集部・実査体制ブロック(FV信頼要素・監修者確保後は監修医カードへ拡張) */
.nrb-author {
	display: flex;
	flex-direction: column;
	gap: 4px;
	background: #fff;
	border: 1px solid var(--nrb-line);
	border-radius: var(--nrb-radius-s);
	padding: 14px 18px;
	margin: var(--nrb-gap-s) 0 var(--nrb-gap-m);
	font-size: 0.82em;
	line-height: 1.8;
	color: var(--nrb-sub);
}
.nrb-author b {
	color: var(--nrb-ink);
}
.entry-content .nrb-author a {
	color: var(--nrb-primary-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* 根拠ストリップ(✓チップ・リード直後) */
.entry-content ul.nrb-evidence {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	list-style: none;
	margin: 0 0 var(--nrb-gap-m);
	padding: 0;
}
.entry-content .nrb-evidence li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 0.78em;
	font-weight: 600;
	color: var(--nrb-primary-dark);
	background: #fff;
	border: 1px solid var(--nrb-line);
	border-radius: 99px;
	padding: 6px 14px;
	margin: 0;
}
.entry-content .nrb-evidence li::before {
	content: "✓";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 16px;
	height: 16px;
	border-radius: 5px;
	background: var(--nrb-primary);
	color: #fff;
	font-size: 11px;
}

/* 単一記事のアイキャッチ(タイトル→日付の下・インライン表示) */
.single .post-thumb img {
	border-radius: var(--nrb-radius);
	height: auto;
	margin: 6px 0 10px;
}

/* 見出し直後の要素は上マージンを詰める(リズム維持) */
.entry-content h2 + p,
.entry-content h3 + p {
	margin-top: 0;
}

/* ---------- 4) 表(比較表の基本形・全表で同一リズム) ---------- */
.tablewrap {
	overflow-x: auto;
	margin: var(--nrb-gap-m) 0 var(--nrb-gap-s);
	border-radius: var(--nrb-radius-s);
}
.entry-content table {
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
	border: 1px solid var(--nrb-line);
	border-radius: var(--nrb-radius-s);
	overflow: hidden;
	font-size: 0.92em;
	line-height: 1.7;
	margin: var(--nrb-gap-m) 0;
	box-shadow: var(--nrb-shadow);
}
.tablewrap .entry-content table,
.tablewrap table {
	margin: 0;
}
.entry-content table th,
.entry-content table td {
	border: none;
	border-bottom: 1px solid var(--nrb-line-soft);
	padding: 13px 16px;
	vertical-align: top;
	text-align: left;
}
.entry-content table thead th {
	background: var(--nrb-wash);
	color: var(--nrb-primary-dark);
	font-weight: 700;
	font-size: 0.95em;
	letter-spacing: 0.05em;
	white-space: nowrap;
	border-bottom: 2px solid var(--nrb-primary);
	padding: 12px 16px;
}
.entry-content table tbody th {
	background: var(--nrb-wash-soft);
	color: var(--nrb-ink);
	font-weight: 700;
}
.entry-content table tbody tr:nth-child(even) td {
	background: var(--nrb-wash-soft);
}
.entry-content table tbody tr:last-child th,
.entry-content table tbody tr:last-child td {
	border-bottom: none;
}
.entry-content table td.nrb-num {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
@media (max-width: 640px) {
	.entry-content table td.nrb-num {
		white-space: normal; /* モバイルでは折返し優先 */
	}
}

/* ---------- 5) コンポーネント ---------- */

/* --- 静的TOC(build_article.py生成) --- */
.nrb-toc {
	border: 1px solid var(--nrb-line);
	border-radius: var(--nrb-radius-s);
	background: var(--nrb-wash-soft);
	padding: 16px 20px;
	margin: var(--nrb-gap-l) 0;
	font-size: 0.9em;
}
.nrb-toc__title {
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--nrb-primary-dark);
	margin: 0 0 8px !important;
}
.nrb-toc ul {
	margin: 0 !important;
	padding-left: 1.4em;
}
.nrb-toc li { margin: 4px 0; }
.nrb-toc a { text-decoration: none; }
.nrb-toc a:hover { text-decoration: underline; }

/* --- 冒頭ハイライト(結論即答) --- */
.nrb-highlight {
	background: linear-gradient(135deg, var(--nrb-wash) 0%, var(--nrb-wash-soft) 85%);
	border: 1px solid var(--nrb-line-soft);
	border-left: 6px solid var(--nrb-primary);
	border-radius: var(--nrb-radius-s);
	padding: 22px 24px;
	margin: var(--nrb-gap-l) 0;
	line-height: 1.8;
}
/* dl(価格表)入りのhighlightだけ、直後の要素との間隔が旧本番より26px広い
   (theme_compare.pyのgeo.json座標を突き合わせて特定。dlを持たないシンプルな
   highlight(例: /guide/how-we-rate/)はこの追加分がないため:hasで限定する)。 */
.nrb-highlight:has(.nrb-highlight__items) { margin-bottom: calc(var(--nrb-gap-l) + 26px); }
.nrb-highlight__label {
	display: inline-block;
	font-size: 0.76em;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #fff;
	background: var(--nrb-primary);
	border-radius: 99px;
	padding: 4px 16px;
	margin-bottom: 14px;
}
.nrb-highlight__items {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	margin: 26px 0 0;
}
@media (min-width: 640px) {
	.nrb-highlight__items { grid-template-columns: 1fr 1fr; }
}
.nrb-highlight__items > div {
	background: #fff;
	border: 1px solid var(--nrb-line-soft);
	border-radius: 8px;
	padding: 10px 16px;
}
.nrb-highlight__items dt {
	font-size: 0.78em;
	font-weight: 600;
	color: var(--nrb-sub);
	line-height: 1.6;
	margin: 0;
}
.nrb-highlight__items dd {
	font-size: 1.18em;
	font-weight: 700;
	color: var(--nrb-primary-dark);
	font-variant-numeric: tabular-nums;
	line-height: 1.6;
	margin: 2px 0 0;
}
.nrb-highlight .nrb-note {
	display: block;
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px dashed var(--nrb-line);
}
/* 旧形式(インライン記述)の後方互換 */
.nrb-highlight b {
	font-size: 1.18em;
	color: var(--nrb-primary-dark);
	font-variant-numeric: tabular-nums;
}

/* --- クリニックカードの公式サイトFVスクショ --- */
@media (min-width: 768px) {
	.nrb-card__shot,
	.entry-content .nrb-card p.nrb-cite { width: 80%; }
}
.nrb-card__shot {
	margin: 0 auto; /* PC幅80%時に中央寄せ */
	border: 1px solid #e3edf5;
	border-radius: 10px;
	overflow: hidden; /* 角丸から背景がはみ出さないようfigure側でクリップ */
	line-height: 0;
}
.nrb-card__shot img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: top;
	border: none;
	border-radius: 0;
}
/* 出典(画像の下の独立段落・ホワシカtkc-cite方式) */
.entry-content p.nrb-cite {
	font-size: 11px;
	line-height: 1.5;
	color: #8b9bb0;
	text-align: right;
	margin: 5px auto 14px; /* カード内で画像(80%)と同じ中央寄せに追従 */
}
.nrb-cite cite {
	font-style: normal;
	font-size: inherit;
	color: inherit;
}
.entry-content p.nrb-cite a {
	color: #8b9bb0;
	text-decoration: underline;
}
.entry-content p.nrb-cite a:hover {
	color: #5b6b7f;
}

/* カード内の情報表(住所/TEL/診療日/休診日)
   縦型th/td表なのでベース表のゼブラ縞は不適合 → 打ち消して
   「見出し列=青地+縦罫線」でセルの区切りを明確にする */
.nrb-card table.nrb-card__info {
	font-size: 0.85em;
	margin: 20px 0;
	box-shadow: none;
}
.nrb-card table.nrb-card__info th {
	width: 130px;
	white-space: nowrap;
	background: var(--nrb-wash);
	color: var(--nrb-primary-dark);
	border-right: 1px solid var(--nrb-line);
}
.nrb-card table.nrb-card__info tbody tr:nth-child(even) td {
	background: #fff;
}

/* カード内のメニュー料金(案2: 点線リーダー型「項目………金額」) */
.entry-content ul.nrb-menu {
	list-style: none;
	margin: 10px 0 6px;
	padding: 0;
	font-size: 0.88em;
}
.entry-content .nrb-menu li {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 9px 2px;
	margin: 0;
}
.entry-content .nrb-menu li + li {
	border-top: 1px dashed rgba(207, 227, 244, 0.6);
}
.nrb-menu .nrb-menu__item {
	font-weight: 600;
	color: var(--nrb-ink);
	flex: none;
	max-width: 58%;
}
.nrb-menu .nrb-menu__leader {
	flex: 1;
	border-bottom: 2px dotted #B7CCDE;
	transform: translateY(-4px);
	min-width: 24px;
}
.nrb-menu .nrb-menu__price {
	font-weight: 700;
	color: var(--nrb-ink);
	font-variant-numeric: tabular-nums;
	text-align: right;
}
.nrb-menu .nrb-menu__price small {
	display: block;
	font-weight: 500;
	font-size: 0.86em;
	color: var(--nrb-sub);
}

/* カード内の口コミ(★評価行+原文引用) */
.nrb-rating {
	font-size: 0.95em;
	margin: 0 0 14px;
}
.nrb-rating .star {
	color: #F5A623;
	font-weight: 700;
}
.nrb-rating b {
	font-size: 1.15em;
}
.nrb-review {
	background: var(--nrb-wash-soft);
	border: 1px solid var(--nrb-line-soft);
	border-radius: 10px;
	padding: 16px 20px;
	font-size: 0.88em;
	line-height: 1.9;
	margin: 0 0 14px;
}
.nrb-review p { margin: 0 0 0.6em; }
.nrb-review p:last-of-type { margin-bottom: 0; }
.nrb-review__src {
	display: block;
	text-align: right;
	font-size: 0.82em;
	margin-top: 8px;
}

/* カード内の地図 */
.nrb-card__map iframe {
	display: block;
	width: 100%;
	height: 340px;
	border: 1px solid var(--nrb-line-soft);
	border-radius: 10px;
}
.nrb-card h4 {
	margin: var(--nrb-gap-l) 0 var(--nrb-gap-s);
}

/* カード内の院名H3(案B: 4pxバー+破線罫。破線で「カードの中」と分かる差を付ける) */
.entry-content .nrb-card h3.nrb-card__name {
	position: relative;
	font-size: 1.24em;
	font-weight: 700;
	color: var(--nrb-ink);
	line-height: 1.55;
	letter-spacing: 0.02em;
	margin: 0 0 30px; /* 見出し下に約1行分の空白 */
	padding: 2px 0 10px 14px;
	background: none;
	border-left: none;
	border-bottom: 1px dashed var(--nrb-line);
	border-radius: 0;
}
.entry-content .nrb-card h3.nrb-card__name::before {
	display: block;
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	bottom: 14px;
	width: 4px;
	height: auto;
	border-radius: 2px;
	background: var(--nrb-primary);
	transform: none;
}

/* --- タイプ別ベストピック(チップが縁にかかるフローティングカード) --- */
.nrb-bestpick {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px var(--nrb-gap-s);
	margin: var(--nrb-gap-l) 0;
}
@media (min-width: 600px) {
	.nrb-bestpick { grid-template-columns: 1fr 1fr; }
}
.nrb-bestpick__item {
	position: relative;
	border: 1px solid var(--nrb-line);
	border-radius: var(--nrb-radius);
	padding: 28px 22px 18px;
	background: linear-gradient(180deg, var(--nrb-wash-soft) 0%, #fff 42%);
	box-shadow: var(--nrb-shadow);
}
.nrb-bestpick__for {
	position: absolute;
	top: -12px;
	left: 14px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.72em;
	font-weight: 700;
	color: #fff;
	letter-spacing: 0.05em;
	background: linear-gradient(135deg, var(--nrb-cta) 0%, var(--nrb-cta-hover) 100%);
	border-radius: 99px;
	padding: 5px 14px;
	box-shadow: 0 2px 8px rgba(237, 108, 43, 0.3);
}
.nrb-bestpick__for::before {
	content: "◎";
	font-size: 1.05em;
	line-height: 1;
}
.nrb-bestpick__name {
	display: block;
	font-size: 1.12em;
	font-weight: 700;
	color: var(--nrb-ink);
	line-height: 1.5;
}
.nrb-bestpick__why {
	display: block;
	font-size: 0.82em;
	color: var(--nrb-sub);
	line-height: 1.75;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px dashed var(--nrb-line-soft);
}

/* --- クリニックカード --- */
.nrb-card {
	border: 1px solid var(--nrb-line);
	border-radius: var(--nrb-radius);
	background: #fff;
	box-shadow: var(--nrb-shadow);
	padding: 26px 22px 24px;
	margin: 0 0 var(--nrb-gap-l);
}
@media (min-width: 768px) {
	.nrb-card { padding: 34px 38px 32px; }
}
.nrb-card__name {
	font-size: 1.12em;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.02em;
	margin: 0;
	color: var(--nrb-ink);
}
.nrb-card__addr {
	font-size: 0.8em;
	color: var(--nrb-sub);
	line-height: 1.7;
	margin: 4px 0 0;
}
/* ※.entry-content p に負けないよう p 付きで指定(上余白はチップ側の margin-bottom が担う) */
.entry-content p.nrb-card__desc,
.nrb-card__desc {
	font-size: 0.9em;
	line-height: 1.95;
	margin: 0 0 20px;
}
.nrb-card__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nrb-gap-s);
	flex-wrap: wrap;
	border-top: 1px dashed var(--nrb-line);
	padding-top: 20px;
	margin-top: 26px;
}
/* 価格をカード上部の独立セクションへ移した後はCTA単独 → 中央寄せ */
.nrb-card__row .nrb-cta:only-child {
	margin-inline: auto;
}

/* --- 特徴タグ --- */
.nrb-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}
/* カード内では住所表との間に1行分+5pxの余白・紹介文との間は10px */
.nrb-card .nrb-tags {
	margin-top: 33px;
	margin-bottom: 14px;
}
.nrb-tags span,
.nrb-tags li {
	font-size: 0.72em;
	font-weight: 600;
	line-height: 1;
	padding: 6px 12px;
	border-radius: 99px;
	background: var(--nrb-wash);
	color: var(--nrb-primary-dark);
	letter-spacing: 0.03em;
}

/* --- 価格 --- */
.nrb-price {
	font-variant-numeric: tabular-nums;
	font-size: 0.86em;
	color: var(--nrb-sub);
	line-height: 1.7;
}
.nrb-price b {
	font-size: 1.35em;
	color: var(--nrb-primary-dark);
	letter-spacing: 0.01em;
}

/* --- CTAボタン(SPフル幅・PC上限480px=タップ領域優先) --- */
.entry-content a.nrb-cta,
a.nrb-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 480px;
	gap: 8px;
	background: var(--nrb-cta);
	color: #fff;
	font-size: 0.9em;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	padding: 12px 24px;
	border-radius: var(--nrb-radius-s);
	box-shadow: 0 3px 10px rgba(237, 108, 43, 0.28);
	transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.entry-content a.nrb-cta::after,
a.nrb-cta::after {
	content: "→";
	font-weight: 700;
	transition: transform 0.15s ease;
}
.entry-content a.nrb-cta:hover,
a.nrb-cta:hover {
	background: var(--nrb-cta-hover);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 5px 14px rgba(237, 108, 43, 0.34);
}
.entry-content a.nrb-cta:hover::after,
a.nrb-cta:hover::after {
	transform: translateX(2px);
}

/* --- スコアバッジ(アプリバッジ型) --- */
.nrb-score {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 76px;
	background: linear-gradient(150deg, var(--nrb-primary) 0%, var(--nrb-primary-dark) 100%);
	color: #fff;
	border-radius: var(--nrb-radius-s);
	padding: 10px 16px 8px;
	font-variant-numeric: tabular-nums;
	box-shadow: 0 3px 12px rgba(15, 92, 168, 0.28);
	vertical-align: middle;
	line-height: 1.1;
}
.nrb-score b {
	font-size: 1.7em;
	color: #fff;
	letter-spacing: 0.01em;
}
.nrb-score small {
	font-size: 0.66em;
	opacity: 0.8;
	letter-spacing: 0.12em;
	margin-top: 3px;
}
.nrb-score-basis {
	font-size: 0.74em;
	color: var(--nrb-sub);
	line-height: 1.7;
}
.nrb-score-basis a { color: var(--nrb-primary-dark); }

/* --- Pros/Cons --- */
.nrb-proscons {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--nrb-gap-s);
	margin: var(--nrb-gap-m) 0;
}
@media (min-width: 600px) {
	.nrb-proscons { grid-template-columns: 1fr 1fr; }
}
.nrb-pros, .nrb-cons {
	background: #fff;
	border-radius: var(--nrb-radius-s);
	overflow: hidden;
	padding: 0;
	font-size: 0.88em;
	line-height: 1.85;
	box-shadow: var(--nrb-shadow);
}
.nrb-pros { border: 1px solid var(--nrb-line); }
.nrb-cons { border: 1px solid var(--nrb-cta-line); }
.nrb-pros__title, .nrb-cons__title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	font-size: 0.98em;
	letter-spacing: 0.05em;
	margin: 0;
	padding: 13px 20px;
}
.nrb-pros__title {
	color: var(--nrb-primary-dark);
	background: linear-gradient(135deg, var(--nrb-wash) 0%, var(--nrb-wash-soft) 100%);
	border-bottom: 1px solid var(--nrb-line-soft);
}
.nrb-cons__title {
	color: var(--nrb-cta-dark);
	background: linear-gradient(135deg, var(--nrb-cta-wash) 0%, #FEF9F4 100%);
	border-bottom: 1px solid var(--nrb-cta-line);
}
.nrb-pros__title::before,
.nrb-cons__title::before {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 7px;
	color: #fff;
	font-size: 0.74em;
	flex-shrink: 0;
}
.nrb-pros__title::before { content: "✓"; background: var(--nrb-primary); box-shadow: 0 2px 6px rgba(29, 127, 214, 0.3); }
.nrb-cons__title::before { content: "!"; background: var(--nrb-cta); box-shadow: 0 2px 6px rgba(237, 108, 43, 0.3); }
.nrb-pros ul, .nrb-cons ul {
	list-style: none;
	margin: 0;
	padding: 16px 20px 18px;
}
.nrb-pros li, .nrb-cons li {
	position: relative;
	padding-left: 1.7em;
	margin: 9px 0;
	line-height: 1.8;
}
.nrb-pros li::before, .nrb-cons li::before {
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 700;
}
.nrb-pros li::before { content: "✓"; color: var(--nrb-primary); }
.nrb-cons li::before { content: "△"; color: var(--nrb-cta); font-size: 0.9em; }
.nrb-pros li + li, .nrb-cons li + li {
	border-top: 1px dashed var(--nrb-line-soft);
	padding-top: 9px;
}

/* --- vs判定ボックス --- */
.nrb-verdict {
	border: 1.5px solid var(--nrb-primary);
	border-radius: var(--nrb-radius);
	overflow: hidden;
	margin: var(--nrb-gap-l) 0;
	box-shadow: var(--nrb-shadow);
	background: #fff;
}
.nrb-verdict__title {
	background: linear-gradient(135deg, var(--nrb-primary-dark), var(--nrb-primary));
	color: #fff;
	font-weight: 700;
	font-size: 0.98em;
	letter-spacing: 0.05em;
	padding: 12px 20px;
	margin: 0;
}
.nrb-verdict__body {
	padding: 16px 20px;
	font-size: 0.92em;
	line-height: 1.9;
}
.nrb-verdict__body dl { margin: 0; }
.nrb-verdict__body dt {
	font-weight: 700;
	color: var(--nrb-primary-dark);
	margin-top: 12px;
	padding-left: 16px;
	position: relative;
}
.nrb-verdict__body dt:first-child { margin-top: 0; }
.nrb-verdict__body dt::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 8px;
	height: 8px;
	border-radius: 2px;
	background: var(--nrb-primary);
	transform: rotate(45deg);
}
.nrb-verdict__body dd { margin: 4px 0 0 16px; }

/* --- 監修者表記 --- */
.nrb-supervisor {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 0.82em;
	line-height: 1.8;
	color: var(--nrb-sub);
	border: 1px solid var(--nrb-line);
	border-radius: var(--nrb-radius-s);
	padding: 14px 18px;
	margin: var(--nrb-gap-m) 0;
	background: var(--nrb-wash-soft);
}
.nrb-supervisor img {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #fff;
	box-shadow: var(--nrb-shadow);
}
.nrb-supervisor b { color: var(--nrb-ink); }

/* --- 広告開示 --- */
.nrb-disclosure {
	font-size: 0.76em;
	line-height: 1.8;
	color: var(--nrb-sub);
	background: var(--nrb-wash-soft);
	border: 1px solid var(--nrb-line-soft);
	border-radius: var(--nrb-radius-s);
	padding: 10px 16px;
	margin: var(--nrb-gap-s) 0 var(--nrb-gap-m);
}
.nrb-disclosure a { color: var(--nrb-primary-dark); }

/* --- FAQ --- */
.nrb-faq {
	margin: var(--nrb-gap-m) 0;
}
.nrb-faq dt {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-weight: 700;
	color: var(--nrb-ink);
	line-height: 1.7;
	padding: 16px 4px 0;
	border-top: 1px solid var(--nrb-line-soft);
	margin-top: 16px;
}
.nrb-faq dt:first-child { border-top: none; margin-top: 0; padding-top: 0; }
.nrb-faq dt::before {
	content: "Q";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: var(--nrb-primary);
	color: #fff;
	font-size: 0.82em;
	margin-top: 0.15em;
}
.nrb-faq dd {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 8px 0 0;
	font-size: 0.92em;
	line-height: 1.9;
	color: var(--nrb-ink);
	padding: 0 4px;
}
.nrb-faq dd::before {
	content: "A";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: var(--nrb-wash);
	color: var(--nrb-primary-dark);
	font-weight: 700;
	font-size: 0.82em;
	margin-top: 0.15em;
}

/* --- 自由診療・リスク注記 --- */
.nrb-disclaimer {
	background: var(--nrb-wash-soft);
	border: 1px solid var(--nrb-line-soft);
	border-left: 5px solid var(--nrb-sub);
	border-radius: var(--nrb-radius-s);
	color: #3E5A73;
	font-size: 0.8em;
	line-height: 1.9;
	padding: 16px 20px;
	margin: var(--nrb-gap-l) 0 0;
}

/* --- 補足注記 --- */
.nrb-note {
	color: var(--nrb-sub);
	font-size: 0.79em;
	line-height: 1.8;
}

/* --- 出典 --- */
.nrb-sources {
	font-size: 0.78em;
	line-height: 1.85;
	color: var(--nrb-sub);
	border-top: 2px solid var(--nrb-line);
	padding-top: var(--nrb-gap-s);
	margin-top: var(--nrb-gap-l);
}
.nrb-sources b {
	color: var(--nrb-ink);
	letter-spacing: 0.04em;
}
.nrb-sources ol {
	padding-left: 1.5em;
	margin: 8px 0 0;
}
.nrb-sources li { margin: 4px 0; }

/* ---------- 6) TOPページ専用(.nrb-top・案B「案内型」2026-07-24採用) ----------
   スコープは .nrb-top(このクラスは content/pages/top.html のみで使用)。
   フロント切替前のプレビューでも崩れないよう .home には依存させない */

/* ヒーロー(淡青グラデの全幅帯。calc(50% - 50vw)で970pxコンテナから左右へ抜く) */
.nrb-top .nrb-hero {
	margin: 0 calc(50% - 50vw) var(--nrb-gap-l);
	padding: 52px 20px 40px;
	background: linear-gradient(180deg, var(--nrb-wash) 0%, #fff 100%);
	border-bottom: 1px solid var(--nrb-line-soft);
	text-align: center;
}
/* 全幅帯のスクロールバー幅ぶんのはみ出しを抑止 */
body { overflow-x: clip; }
.entry-content .nrb-top .nrb-hero h1 {
	background: none;
	border: none;
	border-radius: 0;
	margin: 0 0 12px;
	padding: 0;
	font-size: 1.85em;
	font-weight: 800;
	line-height: 1.55;
	letter-spacing: 0.05em;
}
.entry-content .nrb-top .nrb-hero h1::before { content: none; }
.nrb-top .nrb-hero__lede {
	font-size: 0.92em;
	color: var(--nrb-sub);
	line-height: 2.0;
	margin: 0 auto 4px;
	max-width: 640px;
}
.entry-content .nrb-top .nrb-hero ul.nrb-evidence {
	justify-content: center;
	margin: 18px 0 0;
}
@media (max-width: 640px) {
	.nrb-top .nrb-hero { padding: 40px 20px 30px; }
	.entry-content .nrb-top .nrb-hero h1 { font-size: 1.45em; }
}

/* 入口3カード(既存bestpickは2カラム→TOPのみPC3カラム) */
@media (min-width: 768px) {
	.nrb-top .nrb-bestpick { grid-template-columns: 1fr 1fr 1fr; }
}
.entry-content .nrb-top a.nrb-bestpick__item {
	display: block;
	text-decoration: none;
	color: var(--nrb-ink);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.entry-content .nrb-top a.nrb-bestpick__item:hover {
	border-color: var(--nrb-primary-soft);
	box-shadow: 0 2px 4px rgba(15, 92, 168, 0.08), 0 8px 22px rgba(15, 92, 168, 0.10);
}

/* ハブタイル(実在記事へのリンク) */
.entry-content ul.nrb-top__hub {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin: var(--nrb-gap-m) 0 var(--nrb-gap-s);
	padding: 0;
	list-style: none;
}
@media (max-width: 640px) {
	.entry-content ul.nrb-top__hub { grid-template-columns: 1fr; }
}
.entry-content .nrb-top__hub li { margin: 0; }
.entry-content .nrb-top__hub a {
	display: block;
	border: 1px solid var(--nrb-line);
	border-radius: var(--nrb-radius-s);
	background: #fff;
	padding: 14px 18px;
	text-decoration: none;
	box-shadow: var(--nrb-shadow);
	transition: border-color 0.15s ease;
}
.entry-content .nrb-top__hub a:hover { border-color: var(--nrb-primary-soft); }
.nrb-top__hub b {
	display: block;
	font-size: 0.95em;
	color: var(--nrb-ink);
	line-height: 1.6;
}
.nrb-top__hub a span {
	display: block;
	font-size: 0.76em;
	color: var(--nrb-sub);
	margin-top: 4px;
	line-height: 1.7;
}

/* 準備中チップ(非リンク。記事公開時にnrb-top__hubのタイルへ差し替える) */
.entry-content ul.nrb-top__soonlist {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 6px 0 var(--nrb-gap-m);
	padding: 0;
	list-style: none;
}
.entry-content .nrb-top__soonlist li { margin: 0; }
.entry-content li.nrb-top__soon {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.76em;
	font-weight: 600;
	color: #93a7b8;
	background: #F6F9FB;
	border: 1px dashed #D9E5EE;
	border-radius: 99px;
	padding: 6px 14px;
}
.nrb-top__soon::after {
	content: "準備中";
	font-size: 0.82em;
	font-weight: 500;
	color: #AEBFCC;
	border-left: 1px solid #D9E5EE;
	padding-left: 6px;
}

/* 未公開ページへのリンク(export_for_ssg.py が href を外して付ける。公開されると自動でリンクに戻る) */
.entry-content a.nrb-unpublished { color: inherit; text-decoration: none; cursor: default; }
.entry-content a.nrb-unpublished::after {
	content: "（準備中）";
	font-size: 0.85em;
	color: var(--nrb-sub);
}
.entry-content .nrb-top__hub a.nrb-unpublished { box-shadow: none; background: #F6F9FB; border-style: dashed; }
.entry-content .nrb-top__hub a.nrb-unpublished:hover { border-color: var(--nrb-line); }
.entry-content .nrb-top__hub a.nrb-unpublished::after { content: none; }
.nrb-top__hub a.nrb-unpublished b::after {
	content: "準備中";
	margin-left: 8px;
	font-size: 0.78em;
	font-weight: 500;
	color: #93a7b8;
	border: 1px solid #D9E5EE;
	border-radius: 99px;
	padding: 1px 8px;
	vertical-align: 1px;
}

/* 都道府県ラベル */
.entry-content p.nrb-top__pref {
	font-size: 0.82em;
	font-weight: 700;
	color: var(--nrb-primary-dark);
	letter-spacing: 0.08em;
	margin: var(--nrb-gap-m) 0 0;
}

/* --- 6.5) TOP余白リズム改定(2026-07-24) ---
   原則: セクション間(マクロ)=96px・グループ内(ミクロ)は近接させ階層を作る。
   広告開示はヒーロー側のグループに寄せ、本文との段差を明確にする */
/* フロントのヘッダー直下に出る26pxの白帯対策: #primary内でmainが1行分下がる
   幽霊ラインボックス(margin/padding全て0でCSSOM上の原因特定不能・flex化でのみ解消を実測確認) */
.home #primary {
	display: flex;
	flex-direction: column;
}
.nrb-top .nrb-hero {
	padding: 76px 20px 60px;
	margin-bottom: 44px;
}
.entry-content .nrb-top .nrb-hero h1 { margin-bottom: 16px; }
.entry-content .nrb-top .nrb-hero ul.nrb-evidence { margin: 26px 0 0; }
.nrb-top .nrb-disclosure { margin: 0 0 60px; }
.nrb-top .nrb-bestpick { margin: 0 0 48px; gap: 28px 20px; }
.nrb-top .nrb-highlight {
	margin: 0;
	padding: 28px 32px;
}
.nrb-top .nrb-highlight__label { margin-bottom: 16px; }
.nrb-top .nrb-highlight__items { gap: 12px; }
.entry-content .nrb-top h2 { margin: 96px 0 24px; }
/* .nrb-highlight直後のh2だけ、旧本番の実測どおり25px広い(隣接マージンは
   collapseするため、.nrb-highlightのmargin-bottom側をいくら増やしても効かず、
   より大きい方=h2のmargin-top側で調整する必要がある)。他のh2(通常96px)には影響しない。 */
.entry-content .nrb-top .nrb-highlight + h2 { margin-top: 121px; }
.entry-content ul.nrb-top__hub { gap: 14px; margin: var(--nrb-gap-m) 0 18px; }
.entry-content .nrb-top__hub a { padding: 16px 20px; }
.entry-content ul.nrb-top__soonlist { margin: 0 0 8px; }
.entry-content p.nrb-top__pref { margin: 36px 0 0; }
.nrb-top .nrb-faq dt { margin-top: 20px; padding-top: 20px; }
.nrb-top .nrb-faq dt:first-child { border-top: none; margin-top: 0; padding-top: 0; }
.nrb-top .nrb-author { margin: 24px 0 0; }
.nrb-top .nrb-disclaimer { margin: 88px 0 0; }
.nrb-top { padding-bottom: 72px; }
@media (max-width: 640px) {
	.nrb-top .nrb-hero { padding: 52px 20px 40px; margin-bottom: 32px; }
	.nrb-top .nrb-disclosure { margin-bottom: 44px; }
	.entry-content .nrb-top h2 { margin: 64px 0 20px; }
	.entry-content .nrb-top .nrb-highlight + h2 { margin-top: 89px; }
	.nrb-top .nrb-bestpick { margin-bottom: 40px; }
	.nrb-top .nrb-disclaimer { margin-top: 64px; }
}
