/* ==========================================================================
   Besmile Media Base — 基盤CSS
   デザイントークンは CSS変数が正本。子テーマ（スキン）が :root を上書きする。
   既定値は kikuo-fun スキン（仕様書の転記値）と同じにしてある。
   ========================================================================== */

:root {
	--bg: #f4f6f8;
	--surface: #ffffff;
	--surface-2: #eceff3;
	--ink: #16233a;
	--ink-soft: #43536d;
	--ink-faint: #71809a;
	--line: #d8dee7;
	--navy: #0a1424;
	--navy-ink: #eef1f6;
	--gold: #a97f2c;
	--gold-bright: #c9a24b;
	--gold-ink: #7c5c1a;
	--accent-soft: #fdf6e3;
	--radius: 14px;
	--shadow: 0 18px 40px rgba(10, 20, 36, 0.14);
	--font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "YuMincho", serif;
	--font-sans: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	--header-h: 64px;
}

@media (prefers-color-scheme: dark) {
	:root {
		--bg: #0b1220;
		--surface: #131e33;
		--surface-2: #1a2942;
		--ink: #e8edf5;
		--ink-soft: #b3c0d4;
		--ink-faint: #8494ad;
		--line: #2a3a55;
		--navy: #060b16;
		--navy-ink: #e8edf5;
		--gold: #c9a24b;
		--gold-bright: #dcbb6a;
		--gold-ink: #dcbb6a;
		--accent-soft: #2a2410;
		--shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
	}
}

/* ---- 基本 ---- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	overflow-x: clip;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.9;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--gold-ink);
}

[id] {
	scroll-margin-top: calc(var(--header-h) + 12px);
}

.bmb-container {
	width: min(1120px, 100% - 40px);
	margin-inline: auto;
}

.bmb-container--narrow {
	width: min(760px, 100% - 40px);
}

.bmb-main {
	padding: 28px 0 72px;
}

.bmb-gold {
	color: var(--gold);
}

/* ---- フレッシュバー（非追従） ---- */
.bmb-freshbar {
	background: var(--navy);
	color: var(--navy-ink);
	font-size: 0.8125rem;
	line-height: 1.6;
}

.bmb-freshbar__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	align-items: center;
	justify-content: space-between;
	padding-top: 8px;
	padding-bottom: 8px;
}

.bmb-freshbar__left {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	align-items: center;
}

.bmb-freshbar__badge {
	border: 1px solid var(--gold);
	color: var(--gold-bright);
	border-radius: 999px;
	padding: 1px 12px;
	font-family: var(--font-serif);
	font-weight: 700;
	white-space: nowrap;
}

.bmb-freshbar__desc {
	opacity: 0.85;
}

.bmb-freshbar__right {
	display: flex;
	gap: 16px;
	opacity: 0.85;
}

/* ---- サイトヘッダー（スマートヘッダー） ---- */
.bmb-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--surface);
	border-bottom: 1px solid var(--line);
	transition: transform 0.32s ease;
	will-change: transform;
}

.bmb-site-header.is-hidden {
	transform: translateY(-100%);
	pointer-events: none;
}

.bmb-site-header:focus-within {
	transform: none;
	pointer-events: auto;
}

.bmb-site-header__inner {
	display: flex;
	align-items: center;
	gap: 16px 28px;
	padding-top: 10px;
	padding-bottom: 10px;
}

.bmb-site-header__brand {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
}

.bmb-site-header__name {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.25rem;
	color: var(--ink);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bmb-site-header__domain {
	font-size: 0.75rem;
	color: var(--ink-faint);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bmb-site-header__nav {
	margin-left: auto;
	min-width: 0;
}

.bmb-nav {
	display: flex;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.bmb-nav::-webkit-scrollbar {
	display: none;
}

.bmb-nav a,
.bmb-nav-home {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 4px 14px;
	border: 1px solid var(--line);
	border-radius: 999px;
	color: var(--ink);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
	white-space: nowrap;
	background: var(--surface);
}

.bmb-nav a:hover,
.bmb-nav-home:hover {
	background: var(--surface-2);
}

/* 「トップ」導線はモバイル専用（≤768px のメディアで display:flex に戻す）。
   デスクトップではブランド表示がトップへのリンクを兼ねる。 */
.bmb-nav-home {
	display: none;
}

.bmb-nav .current-menu-item > a,
.bmb-nav .current_page_item > a {
	background: var(--navy);
	color: var(--accent-soft);
	border-color: var(--navy);
}

/* ---- 見出し様式 ---- */
.bmb-kicker {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--gold-ink);
	margin: 0 0 10px;
}

.bmb-section {
	margin-top: 56px;
}

.bmb-section__head {
	margin-bottom: 20px;
}

.bmb-section__kicker {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	color: var(--gold);
	margin-bottom: 4px;
}

.bmb-section__title {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.5rem;
	line-height: 1.5;
	margin: 0;
}

.bmb-section__desc {
	color: var(--ink-soft);
	margin: 6px 0 0;
	font-size: 0.9375rem;
}

.bmb-section__foot {
	margin-top: 18px;
	text-align: right;
}

/* ---- ボタン ---- */
.bmb-btn {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 8px 26px;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
}

.bmb-btn--primary {
	background: var(--navy);
	color: var(--accent-soft);
}

.bmb-btn--ghost {
	background: transparent;
	color: var(--ink);
	border-color: var(--line);
}

/* ---- チップ ---- */
.bmb-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bmb-chip {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 2px 14px;
	border-radius: 999px;
	background: var(--accent-soft);
	color: var(--gold-ink);
	border: 1px solid var(--gold);
	font-size: 0.8125rem;
	font-weight: 700;
	text-decoration: none;
}

/* ---- ヒーロー ---- */
.bmb-hero-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 28px;
	align-items: start;
}

.bmb-hero__title {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 2rem;
	line-height: 1.5;
	margin: 0 0 14px;
}

.bmb-hero__lead {
	font-size: 1.0625rem;
	color: var(--ink-soft);
	margin: 0 0 14px;
}

.bmb-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	font-size: 0.8125rem;
	color: var(--ink-faint);
	margin-bottom: 18px;
}

.bmb-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 22px;
}

.bmb-hero__media {
	margin: 0;
}

.bmb-hero__media img {
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	width: 100%;
}

.bmb-hero__media figcaption,
.bmb-article__hero figcaption,
.bmb-profile-hero__media figcaption {
	font-size: 0.8125rem;
	color: var(--ink-soft);
	margin-top: 8px;
}

.bmb-hero__chips {
	margin-top: 18px;
	padding: 16px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.bmb-hero__chips-label {
	display: block;
	font-weight: 700;
	font-size: 0.875rem;
	margin-bottom: 10px;
}

.bmb-hero-side {
	display: grid;
	gap: 20px;
}

/* ---- プロフィールmini ---- */
.bmb-profile-mini {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 18px;
}

.bmb-profile-mini__media {
	margin: -18px -18px 14px;
}

.bmb-profile-mini__img {
	border-radius: var(--radius) var(--radius) 0 0;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.bmb-profile-mini__name {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.375rem;
	margin: 0;
	line-height: 1.4;
}

.bmb-profile-mini__furigana {
	display: block;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--ink-faint);
	letter-spacing: 0.12em;
}

.bmb-profile-mini__title {
	font-size: 0.875rem;
	color: var(--gold-ink);
	font-weight: 700;
	margin: 4px 0 12px;
}

.bmb-profile-mini__list {
	margin: 0;
	font-size: 0.875rem;
}

.bmb-profile-mini__list > div {
	display: grid;
	grid-template-columns: 4.5em 1fr;
	gap: 8px;
	padding: 6px 0;
	border-top: 1px dashed var(--line);
}

.bmb-profile-mini__list dt {
	color: var(--ink-faint);
	font-weight: 700;
}

.bmb-profile-mini__list dd {
	margin: 0;
}

.bmb-profile-mini__link {
	display: inline-block;
	margin-top: 12px;
	font-weight: 700;
}

/* ---- 会長の言葉 pickup ---- */
.bmb-kotoba-pickup {
	background: var(--accent-soft);
	border: 1px solid var(--gold);
	border-radius: var(--radius);
	padding: 18px;
}

.bmb-kotoba-pickup__label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--gold-ink);
	margin-bottom: 8px;
}

.bmb-kotoba-pickup__quote {
	font-family: var(--font-serif);
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.7;
	margin: 0;
}

.bmb-kotoba-pickup__note {
	font-size: 0.8125rem;
	color: var(--ink-soft);
	margin: 10px 0 0;
}

.bmb-kotoba-pickup__link {
	display: inline-block;
	margin-top: 10px;
	font-weight: 700;
	font-size: 0.875rem;
}

/* ---- 数字パネル ---- */
.bmb-numbers-panel {
	margin-top: 56px;
	background: var(--navy);
	color: var(--navy-ink);
	border-radius: var(--radius);
	padding: 30px;
	box-shadow: var(--shadow);
}

.bmb-numbers-panel__title {
	font-family: var(--font-serif);
	font-weight: 900;
	color: var(--gold-bright);
	font-size: 1.375rem;
	margin: 0 0 6px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--gold);
}

.bmb-numbers-panel__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 18px;
}

.bmb-numbers-panel__value {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 2.25rem;
	line-height: 1.2;
}

.bmb-numbers-panel__unit {
	font-size: 0.9375rem;
	color: var(--gold-bright);
	margin-left: 6px;
}

.bmb-numbers-panel__metric {
	font-size: 0.875rem;
	opacity: 0.85;
	margin-top: 4px;
}

.bmb-numbers-panel__trend {
	margin: 20px 0 0;
	font-size: 0.9375rem;
}

.bmb-numbers-panel__delta {
	color: var(--gold-bright);
	font-weight: 900;
	margin-left: 8px;
}

.bmb-numbers-panel__source {
	font-size: 0.8125rem;
	opacity: 0.8;
	margin: 10px 0 0;
}

.bmb-numbers-panel__link {
	display: inline-block;
	margin-top: 14px;
	color: var(--gold-bright);
	font-weight: 700;
}

/* ---- 記事カード ---- */
.bmb-card-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}

.bmb-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.bmb-card__media {
	position: relative;
	display: block;
}

.bmb-card__img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
	/* カード（.bmb-card）の角丸＋overflow:hidden と揃え、img 自体にも指定する */
	border-radius: var(--radius) var(--radius) 0 0;
}

.bmb-card__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 18px 14px 8px;
	font-size: 0.75rem;
	color: #fff;
	background: linear-gradient(transparent, rgba(6, 11, 22, 0.75));
}

.bmb-card__body {
	padding: 16px 18px 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}

.bmb-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	font-size: 0.75rem;
	color: var(--ink-faint);
	align-items: center;
}

.bmb-card__cat {
	color: var(--gold-ink);
	font-weight: 900;
	font-size: 0.8125rem;
}

.bmb-card__title {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.125rem;
	line-height: 1.55;
	margin: 0;
}

.bmb-card__title a {
	color: var(--ink);
	text-decoration: none;
}

.bmb-card__excerpt {
	margin: 0;
	font-size: 0.875rem;
	color: var(--ink-soft);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.bmb-card__more {
	margin-top: auto;
	padding-top: 6px;
	font-weight: 700;
	font-size: 0.875rem;
}

/* ---- 見どころ ---- */
.bmb-viewpoints {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.bmb-viewpoint {
	display: block;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 20px;
	text-decoration: none;
	color: var(--ink);
}

.bmb-viewpoint:hover {
	background: var(--surface-2);
}

.bmb-viewpoint__num {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--gold);
}

.bmb-viewpoint__name {
	display: block;
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.25rem;
	margin: 4px 0 6px;
}

.bmb-viewpoint__desc {
	display: block;
	font-size: 0.875rem;
	color: var(--ink-soft);
}

.bmb-viewpoint__example {
	display: block;
	font-size: 0.8125rem;
	color: var(--gold-ink);
	margin-top: 10px;
}

/* ---- 記録カード／写真の壁 ---- */
.bmb-record-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-bottom: 22px;
}

.bmb-record-card {
	display: block;
	background: var(--surface);
	border: 1px solid var(--line);
	border-left: 4px solid var(--gold);
	border-radius: var(--radius);
	padding: 16px 18px;
	text-decoration: none;
	color: var(--ink);
}

.bmb-record-card__label {
	display: block;
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.0625rem;
}

.bmb-record-card__desc {
	display: block;
	font-size: 0.8125rem;
	color: var(--ink-soft);
	margin-top: 2px;
}

.bmb-photo-wall {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}

.bmb-photo-wall--grid {
	grid-template-columns: repeat(3, 1fr);
}

.bmb-photo-wall__item {
	margin: 0;
}

.bmb-photo-wall__item img {
	border-radius: var(--radius);
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.bmb-photo-wall__item figcaption {
	font-size: 0.75rem;
	color: var(--ink-soft);
	margin-top: 6px;
}

/* ---- 書き手＋案内 ---- */
.bmb-about-guide {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
	align-items: start;
}

.bmb-writer {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 22px;
}

.bmb-writer__label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--gold);
	margin-bottom: 8px;
}

.bmb-writer__text {
	margin: 0;
	font-size: 0.9375rem;
}

.bmb-guide {
	display: grid;
	gap: 14px;
}

.bmb-guide__card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 20px;
}

.bmb-guide__card.is-dark {
	background: var(--navy);
	color: var(--navy-ink);
	border-color: var(--navy);
}

.bmb-guide__label {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.0625rem;
	margin-bottom: 6px;
}

.bmb-guide__text {
	font-size: 0.875rem;
	margin: 0 0 12px;
}

.bmb-guide__cta {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 6px 20px;
	border-radius: 999px;
	border: 1px solid var(--gold);
	color: var(--gold-ink);
	font-weight: 700;
	text-decoration: none;
}

.bmb-guide__card.is-dark .bmb-guide__cta {
	background: var(--gold);
	color: var(--navy);
}

/* ---- SNS ---- */
.bmb-sns {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.bmb-sns__card {
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 14px 16px;
	text-decoration: none;
	color: var(--ink);
	min-height: 64px;
}

.bmb-sns__icon {
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--navy);
	color: var(--gold-bright);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-serif);
	font-weight: 900;
}

.bmb-sns__name {
	font-weight: 700;
}

.bmb-sns__sub {
	display: block;
	font-size: 0.75rem;
	color: var(--ink-faint);
}

/* ---- 記事ページ ---- */
.bmb-freshline {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	font-size: 0.8125rem;
	color: var(--ink-faint);
	border-bottom: 1px solid var(--line);
	padding-bottom: 10px;
	margin-bottom: 22px;
}

.bmb-article__title {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.75rem;
	line-height: 1.55;
	margin: 0 0 14px;
}

.bmb-article__lead {
	font-size: 1.0625rem;
	color: var(--ink-soft);
	margin: 0 0 20px;
}

.bmb-article__hero {
	margin: 0 0 24px;
}

.bmb-article__hero img {
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	width: 100%;
}

.bmb-article__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 24px;
}

.bmb-article__chips-label {
	font-weight: 700;
	font-size: 0.875rem;
}

.bmb-article__body,
.bmb-page-body {
	font-size: 16px;
	line-height: 1.9;
}

.bmb-article__body p,
.bmb-page-body p {
	margin: 0 0 1.4em;
}

.bmb-article__body h2,
.bmb-page-body h2 {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.375rem;
	line-height: 1.55;
	margin: 1.8em 0 0.7em;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--gold);
}

.bmb-article__body h3,
.bmb-page-body h3 {
	font-family: var(--font-serif);
	font-weight: 700;
	font-size: 1.125rem;
	margin: 1.6em 0 0.6em;
}

.bmb-article__body figure,
.bmb-page-body figure {
	margin: 1.6em 0;
}

.bmb-article__body figcaption,
.bmb-page-body figcaption {
	font-size: 0.8125rem;
	color: var(--ink-soft);
	margin-top: 8px;
}

/* ---- 画像の角丸（統一ルール） ----
   サイト内の写真・記事画像は、原則として標準の角丸（--radius）で統一する。
   本文中の画像は、figure やリンクで包まれていても img 自体に効かせる
   （素の img、画像ブロック、ギャラリー、メディアと文章ブロック等を包括）。
   例外：アバター（円形 50% を別途指定）、ロゴ・アイコン類。
   リンクカード内サムネイルは compat-emanon.css の小さい角丸が
   詳細度で優先されるため、ここでは上書きしない。 */
.bmb-article__body img,
.bmb-page-body img {
	border-radius: var(--radius);
}

/* カバーブロックは背景画像（img）とオーバーレイをまとめて角丸で切り取る */
.bmb-article__body .wp-block-cover,
.bmb-page-body .wp-block-cover {
	border-radius: var(--radius);
	overflow: hidden;
}

/* ---- 埋め込み（core/embed ブロック：YouTube等のoEmbed） ----
   コアのブロックライブラリCSSと同等の表示をテーマ側でも保証する。
   responsive-embeds サポート宣言（inc/setup.php）と対で機能する。 */
.wp-block-embed {
	margin: 1.6em 0;
}

.wp-block-embed__wrapper {
	position: relative;
	overflow-wrap: break-word;
}

.wp-block-embed iframe {
	max-width: 100%;
	border: 0;
}

.wp-block-embed figcaption {
	text-align: center;
}

/* アスペクト比クラス付き： ラッパーに比率分の高さを持たせ、iframe を全面表示。 */
.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper::before {
	content: "";
	display: block;
	padding-top: 56.25%; /* 既定 16/9 */
}

.wp-block-embed.wp-embed-aspect-21-9 .wp-block-embed__wrapper::before {
	padding-top: 42.85%;
}

.wp-block-embed.wp-embed-aspect-18-9 .wp-block-embed__wrapper::before {
	padding-top: 50%;
}

.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper::before {
	padding-top: 56.25%;
}

.wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper::before {
	padding-top: 75%;
}

.wp-block-embed.wp-embed-aspect-1-1 .wp-block-embed__wrapper::before {
	padding-top: 100%;
}

.wp-block-embed.wp-embed-aspect-9-16 .wp-block-embed__wrapper::before {
	padding-top: 177.78%;
}

.wp-block-embed.wp-embed-aspect-1-2 .wp-block-embed__wrapper::before {
	padding-top: 200%;
}

.wp-block-embed.wp-has-aspect-ratio iframe {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* 比率クラスが無い動画埋め込みも、プレイヤーが潰れないよう 16/9 を既定にする。 */
.wp-block-embed.is-type-video:not(.wp-has-aspect-ratio) iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

/* oEmbed 非対応URLの埋め込み（URLのみが描画される形）は、素のテキストに
   見えないようカード状に整える。iframe を含む場合は対象外。 */
.wp-block-embed:not(.wp-has-aspect-ratio) .wp-block-embed__wrapper:not(:has(> iframe)) {
	padding: 16px 20px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-weight: 700;
}

/* テーマ側で描画する埋め込み（inc/embeds.php）：
   YouTube はサムネイル＋再生ボタンのリンクカード（.bmb-ytcard）。
   e-frans.jp は案内カード風のリンクカードにする。.wp-block-embed__wrapper を
   使わない構造のため、上の「URLのみ描画時のカード化」ルールとは競合しない。 */
.bmb-ytcard {
	display: block;
	color: var(--ink);
	text-decoration: none;
}

.bmb-ytcard__thumb {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #000;
	border-radius: var(--radius);
}

.bmb-ytcard__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bmb-ytcard__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 68px;
	height: 48px;
	border-radius: 12px;
	background: rgba(10, 10, 10, .78);
}

.bmb-ytcard__play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-40%, -50%);
	border-style: solid;
	border-width: 9px 0 9px 15px;
	border-color: transparent transparent transparent #fff;
}

.bmb-ytcard:hover .bmb-ytcard__play {
	background: rgba(10, 10, 10, .92);
}

.bmb-ytcard__cta {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-top: 10px;
	padding: 6px 20px;
	border: 1px solid var(--gold);
	border-radius: 999px;
	color: var(--gold-ink);
	font-weight: 700;
}
.bmb-embed-card {
	display: block;
	padding: 20px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	color: var(--ink);
	text-decoration: none;
}

.bmb-embed-card:hover {
	background: var(--surface-2);
}

.bmb-embed-card__label {
	display: block;
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.0625rem;
	margin-bottom: 6px;
}

.bmb-embed-card__text {
	display: block;
	font-size: 0.875rem;
	margin-bottom: 12px;
}

.bmb-embed-card__cta {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 6px 20px;
	border: 1px solid var(--gold);
	border-radius: 999px;
	color: var(--gold-ink);
	font-weight: 700;
}

.bmb-article__body blockquote,
.bmb-page-body blockquote {
	margin: 1.6em 0;
	padding: 18px 22px;
	background: var(--accent-soft);
	border-left: 4px solid var(--gold);
	border-radius: 0 var(--radius) var(--radius) 0;
	font-family: var(--font-serif);
}

.bmb-article__guide {
	margin-top: 40px;
}

.bmb-sources {
	margin-top: 40px;
	padding: 20px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-size: 0.875rem;
}

.bmb-sources__title {
	font-family: var(--font-serif);
	font-size: 1rem;
	margin: 0 0 8px;
}

.bmb-sources ul {
	margin: 0;
	padding-left: 1.2em;
}

.bmb-sources__updated {
	color: var(--ink-faint);
	margin: 10px 0 0;
}

.bmb-record-links {
	display: grid;
	gap: 10px;
	margin-top: 28px;
}

.bmb-record-links__item {
	display: block;
	padding: 14px 18px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-left: 4px solid var(--gold);
	border-radius: var(--radius);
	color: var(--ink);
	text-decoration: none;
	font-weight: 700;
	font-size: 0.9375rem;
}

.bmb-post-nav {
	display: grid;
	gap: 12px;
	margin-top: 40px;
}

.bmb-post-nav__item {
	display: block;
	padding: 16px 18px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	text-decoration: none;
	color: var(--ink);
}

.bmb-post-nav__item.is-next {
	text-align: right;
}

.bmb-post-nav__label {
	display: block;
	font-size: 0.75rem;
	color: var(--gold-ink);
	font-weight: 700;
	letter-spacing: 0.12em;
}

.bmb-post-nav__title {
	font-family: var(--font-serif);
	font-weight: 700;
}

.bmb-article__profile {
	margin-top: 48px;
}

.bmb-article__profile .bmb-profile-mini {
	margin-top: 16px;
}

/* ---- プロフィールページ ---- */
.bmb-profile-hero__title {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 2rem;
	line-height: 1.5;
	margin: 0 0 12px;
}

.bmb-profile-hero__lead {
	color: var(--ink-soft);
	font-size: 1.0625rem;
	margin: 0 0 20px;
}

.bmb-profile-hero__media {
	margin: 0;
}

.bmb-profile-hero__media img {
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	width: 100%;
}

/* ---- 言葉 ---- */
.bmb-quote-list {
	display: grid;
	gap: 16px;
}

.bmb-quote {
	display: flex;
	gap: 18px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 20px;
	margin: 0;
}

.bmb-quote__media {
	flex: none;
	width: 180px;
}

.bmb-quote__media img {
	border-radius: calc(var(--radius) - 4px);
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.bmb-quote__main {
	margin: 0;
}

.bmb-quote__text {
	font-family: var(--font-serif);
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.75;
	margin: 0;
}

.bmb-quote__text a {
	color: var(--ink);
	text-decoration: none;
}

.bmb-quote__src {
	display: grid;
	gap: 2px;
	font-size: 0.8125rem;
	color: var(--ink-soft);
	margin-top: 10px;
}

.bmb-quote--single {
	margin-top: 12px;
}

.bmb-detail-list {
	margin: 22px 0;
	font-size: 0.9375rem;
}

.bmb-detail-list > div {
	display: grid;
	grid-template-columns: 7em 1fr;
	gap: 10px;
	padding: 8px 0;
	border-top: 1px dashed var(--line);
}

.bmb-detail-list dt {
	font-weight: 700;
	color: var(--ink-faint);
}

.bmb-detail-list dd {
	margin: 0;
}

/* ---- 数字の推移 ---- */
.bmb-numbers-table {
	display: grid;
	gap: 14px;
}

.bmb-numbers-row {
	display: flex;
	gap: 18px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 18px 20px;
	align-items: flex-start;
}

.bmb-numbers-row__media {
	flex: none;
	width: 180px;
}

.bmb-numbers-row__media img {
	border-radius: calc(var(--radius) - 4px);
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.bmb-numbers-row__value {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.875rem;
	line-height: 1.25;
}

.bmb-numbers-row__unit {
	font-size: 0.9375rem;
	color: var(--gold-ink);
	margin-left: 6px;
}

.bmb-numbers-row__delta {
	font-size: 1rem;
	color: var(--gold-ink);
	margin-left: 12px;
}

.bmb-numbers-row__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-size: 0.8125rem;
	color: var(--ink-faint);
	margin-top: 4px;
}

.bmb-numbers-row__note {
	font-size: 0.875rem;
	color: var(--ink-soft);
	margin-top: 8px;
}

.bmb-numbers-row__note p {
	margin: 0;
}

.bmb-numbers-single__value {
	font-size: 2.5rem;
	margin-top: 8px;
}

/* ---- 年表 ---- */
.bmb-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bmb-timeline__item {
	display: grid;
	grid-template-columns: 8.5em 1fr;
	gap: 14px;
	padding: 14px 0;
	border-top: 1px solid var(--line);
}

.bmb-timeline__when {
	font-family: var(--font-serif);
	font-weight: 900;
	color: var(--gold-ink);
}

.bmb-timeline__what {
	font-weight: 700;
}

.bmb-timeline__detail {
	font-size: 0.875rem;
	color: var(--ink-soft);
	margin-top: 4px;
}

.bmb-timeline__detail p {
	margin: 0 0 0.6em;
}

.bmb-timeline__src {
	font-size: 0.75rem;
	color: var(--ink-faint);
}

.bmb-timeline--compact .bmb-timeline__item {
	padding: 10px 0;
}

/* ---- アーカイブ／著者／404 ---- */
.bmb-archive-head {
	margin-bottom: 26px;
}

.bmb-archive-head__title {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.75rem;
	line-height: 1.5;
	margin: 0;
}

.bmb-archive-head__desc {
	color: var(--ink-soft);
	margin-top: 8px;
	max-width: 760px;
}

.bmb-pagination {
	margin-top: 36px;
}

.bmb-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}

.bmb-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 4px 10px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--surface);
	color: var(--ink);
	text-decoration: none;
}

.bmb-pagination .page-numbers.current {
	background: var(--navy);
	color: var(--accent-soft);
	border-color: var(--navy);
}

.bmb-author {
	display: flex;
	gap: 22px;
	align-items: flex-start;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 24px;
}

.bmb-author__avatar img {
	border-radius: 50%;
}

.bmb-author__name {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.5rem;
	margin: 0 0 8px;
}

.bmb-author__bio {
	margin: 0;
	color: var(--ink-soft);
	font-size: 0.9375rem;
}

.bmb-notfound {
	text-align: left;
	padding: 20px 0;
}

.bmb-notfound__title {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.75rem;
	margin: 0 0 12px;
}

.bmb-notfound .search-form,
.bmb-main .search-form {
	margin-top: 24px;
	display: flex;
	gap: 8px;
}

.search-form input[type="search"] {
	flex: 1;
	min-height: 48px;
	padding: 8px 14px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--surface);
	color: var(--ink);
	font-size: 16px;
}

.search-form button,
.search-form input[type="submit"] {
	min-height: 48px;
	padding: 8px 22px;
	border-radius: 10px;
	border: 1px solid var(--navy);
	background: var(--navy);
	color: var(--accent-soft);
	font-weight: 700;
	cursor: pointer;
}

/* ---- フッター ---- */
.bmb-footer {
	background: var(--navy);
	color: var(--navy-ink);
	margin-top: 0;
	padding: 44px 0 26px;
}

.bmb-footer__name {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.375rem;
	margin-bottom: 18px;
}

.bmb-footer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bmb-footer__links a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 4px 16px;
	border: 1px solid var(--gold);
	border-radius: 999px;
	color: var(--gold-bright);
	text-decoration: none;
	font-size: 0.875rem;
}

.bmb-footer__note {
	font-size: 0.8125rem;
	opacity: 0.85;
	margin: 22px 0 0;
	max-width: 760px;
}

.bmb-footer-extra {
	margin-top: 22px;
	font-size: 0.875rem;
}

.bmb-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	justify-content: space-between;
	border-top: 1px solid rgba(201, 162, 75, 0.4);
	margin-top: 28px;
	padding-top: 16px;
	font-size: 0.8125rem;
	opacity: 0.85;
}

/* ---- ブロックパターン部品 ---- */
.bmb-pattern {
	margin: 1.8em 0;
}

.bmb-profile-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 22px;
}

.bmb-profile-card .bmb-episode {
	background: var(--accent-soft);
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 0.9375rem;
}

.bmb-numbers-strip {
	background: var(--navy);
	color: var(--navy-ink);
	border-radius: var(--radius);
	padding: 24px;
}

.bmb-numbers-strip .bmb-num {
	font-family: var(--font-serif);
	font-weight: 900;
	font-size: 1.875rem;
	line-height: 1.25;
	margin: 0;
}

.bmb-numbers-strip .bmb-num span {
	font-size: 0.875rem;
	color: var(--gold-bright);
	margin-left: 5px;
}

.bmb-numbers-strip .bmb-num-label {
	font-size: 0.8125rem;
	opacity: 0.85;
	margin: 2px 0 0;
}

.bmb-numbers-strip .bmb-source {
	font-size: 0.75rem;
	opacity: 0.8;
	margin: 14px 0 0;
}

.bmb-kotoba-quote {
	background: var(--accent-soft);
	border-left: 4px solid var(--gold);
	border-radius: 0 var(--radius) var(--radius) 0;
	padding: 20px 24px;
	font-family: var(--font-serif);
	font-size: 1.25rem;
	line-height: 1.75;
}

.bmb-kotoba-quote cite {
	font-size: 0.8125rem;
	font-family: var(--font-sans);
	color: var(--ink-soft);
}

.bmb-capture-frame img {
	border-radius: var(--radius);
}

.bmb-guide-cards-static {
	display: grid;
	gap: 10px;
}

.bmb-guide-cards-static p {
	margin: 0;
	padding: 14px 18px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-left: 4px solid var(--gold);
	border-radius: var(--radius);
}

.bmb-sns-row {
	gap: 10px;
}

/* ---- レスポンシブ ---- */
@media (min-width: 640px) {
	.bmb-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bmb-viewpoints,
	.bmb-record-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.bmb-post-nav {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 860px) {
	.bmb-card-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.bmb-viewpoints {
		grid-template-columns: repeat(2, 1fr);
	}

	.bmb-record-cards {
		grid-template-columns: repeat(3, 1fr);
	}

	.bmb-about-guide {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	}

	.bmb-sns {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 1020px) {
	.bmb-viewpoints {
		grid-template-columns: repeat(4, 1fr);
	}

	.bmb-sns {
		grid-template-columns: repeat(5, 1fr);
	}
}

@media (max-width: 1020px) {
	.bmb-hero-wrap {
		grid-template-columns: 1fr;
	}

	.bmb-hero-side {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	/* モバイルの追従ヘッダーは、ナビのピルだけの1段にする。
	   サイト名テキストは出さない（ヒーロー部にサイト名が大きく出る）。
	   ブランドとナビが重なる・はみ出す不具合の対策。
	   なおブランドはトップへのリンクでもあるため、その導線は
	   ピル列先頭の「トップ」（.bmb-nav-home）で別途担保する。 */
	.bmb-site-header__brand {
		display: none;
	}

	.bmb-site-header__inner {
		gap: 0;
	}

	/* スクロールは nav 側で担い、「トップ」ピル＋メニューのピルが
	   1列になって一緒に流れるようにする。 */
	.bmb-site-header__nav {
		flex: 1 1 auto;
		margin-left: 0;
		display: flex;
		align-items: center;
		gap: 8px;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.bmb-site-header__nav::-webkit-scrollbar {
		display: none;
	}

	.bmb-nav {
		flex: none;
		overflow: visible;
	}

	/* ブランド非表示で消えるトップへの導線を、ピル列の先頭で担保する。 */
	.bmb-nav-home {
		display: flex;
		flex: none;
	}
}

@media (max-width: 640px) {
	.bmb-site-header__inner {
		flex-wrap: nowrap;
		gap: 10px;
		padding-top: 6px;
		padding-bottom: 6px;
	}

	.bmb-site-header__name {
		font-size: 1.0625rem;
	}

	.bmb-site-header__domain {
		display: none;
	}

	.bmb-nav a,
	.bmb-nav-home {
		min-height: 44px;
		padding: 2px 12px;
		font-size: 0.8125rem;
	}

	.bmb-hero__title {
		font-size: 1.5rem;
	}

	.bmb-article__title {
		font-size: 1.375rem;
	}

	.bmb-numbers-panel {
		padding: 22px 18px;
	}

	.bmb-numbers-panel__grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.bmb-numbers-panel__value {
		font-size: 1.75rem;
	}

	.bmb-photo-wall,
	.bmb-photo-wall--grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bmb-quote {
		flex-direction: column;
	}

	.bmb-quote__media {
		width: 100%;
	}

	.bmb-numbers-row {
		flex-direction: column;
	}

	.bmb-numbers-row__media {
		width: 100%;
	}

	.bmb-timeline__item {
		grid-template-columns: 1fr;
		gap: 2px;
	}

	.bmb-detail-list > div {
		grid-template-columns: 1fr;
		gap: 2px;
	}

	.bmb-author {
		flex-direction: column;
	}

	.bmb-freshbar__right {
		display: none;
	}
}

/* ---- モーション配慮 ---- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.bmb-site-header {
		transition: none;
	}
}
