/* ============================================================
 * 北原孝彦アカデミー名鑑 - 共通スタイル（プレビュー版）
 * ========================================================== */
* { box-sizing: border-box; }
body {
	margin: 0;
	font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
	color: #2b2b2b;
	line-height: 1.7;
	background: #fafafa;
}
a { color: inherit; }

/* ---------- ヘッダー ---------- */
.site-header {
	background: #fff;
	border-bottom: 1px solid #eee;
	position: relative;
	z-index: 50;
}
.site-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	position: relative;
}
.site-header__brand {
	display: flex;
	align-items: center;
	min-width: 0;
}
.site-header__logo {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	color: #2b2b2b;
}
/* カスタムロゴ画像 */
.site-header__brand .custom-logo-link {
	display: inline-block;
	line-height: 0;
}
.site-header__brand .custom-logo {
	display: block;
	max-height: var(--meikan-logo-h-pc, 60px);
	width: auto;
	height: auto;
}
@media (max-width: 720px) {
	.site-header__brand .custom-logo {
		max-height: var(--meikan-logo-h-sp, 44px);
	}
}
/* PC用：横並びナビ */
.site-header__nav-pc {
	display: flex;
	gap: 24px;
	font-size: 13px;
	align-items: center;
}
.site-header__nav-pc ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 24px;
	align-items: center;
}
.site-header__nav-pc ul li { list-style: none; padding: 0; margin: 0; }
.site-header__nav-pc a {
	text-decoration: none;
	color: #2b2b2b;
	padding-bottom: 4px;
	border-bottom: 2px solid transparent;
	transition: border-color 0.2s;
	display: inline-block;
}
.site-header__nav-pc a:hover,
.site-header__nav-pc .current-menu-item a { border-bottom-color: #2b2b2b; }

/* スマホ用：ドロワー */
.site-header__drawer {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	padding: 8px 24px 20px;
	border-top: 1px solid #eee;
	box-shadow: 0 8px 20px rgba(0,0,0,0.08);
	z-index: 55;
}
.site-header__drawer.is-open { display: block; }
.site-header__drawer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.site-header__drawer li { list-style: none; }
.site-header__drawer a {
	display: block;
	padding: 16px 0;
	border-bottom: 1px solid #f0f0f0;
	font-size: 15px;
	text-decoration: none;
	color: #2b2b2b;
}
.site-header__contact {
	font-size: 12px;
	color: #6b6b6b;
	text-decoration: none;
}

/* ---------- ハンバーガーボタン（デフォルトは非表示） ---------- */
.site-header__toggle {
	display: none;
	background: none;
	border: 0;
	width: 44px;
	height: 44px;
	padding: 10px;
	cursor: pointer;
	position: relative;
	z-index: 60;
}
.site-header__toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: #2b2b2b;
	margin: 5px auto;
	transition: transform 0.25s, opacity 0.2s;
	transform-origin: center;
}
.site-header__toggle.is-open span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.site-header__toggle.is-open span:nth-child(2) {
	opacity: 0;
}
.site-header__toggle.is-open span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ---------- スマホ／タブレット：ハンバーガー式ドロワー ---------- */
@media (max-width: 900px) {
	.site-header__toggle { display: block; }
	.site-header__nav-pc { display: none; }

	/* メニュー展開中は背面スクロール防止 */
	body.meikan-nav-open { overflow: hidden; }
}

@media (min-width: 901px) {
	.site-header__drawer { display: none !important; }
}

/* ---------- フッター ---------- */
.site-footer {
	background: #fff;
	border-top: 1px solid #eee;
	margin-top: 80px;
}
.site-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 32px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 24px;
	justify-content: space-between;
	align-items: center;
	font-size: 12px;
	color: #6b6b6b;
}
.site-footer__nav,
.site-footer__nav ul,
.site-footer__nav li {
	list-style: none !important;
}
.site-footer__nav {
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
	padding: 0;
	margin: 0;
}
.site-footer__nav ul {
	padding: 0;
	margin: 0;
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
}
.site-footer__nav li {
	padding: 0;
	margin: 0;
	display: list-item;
	list-style-type: none !important;
}
.site-footer__nav li::marker { content: none; }
.site-footer__nav a {
	text-decoration: none;
	color: #6b6b6b;
	font-size: 12px;
}
.site-footer__nav a:hover { color: #2b2b2b; }

/* ---------- メイン共通 ---------- */
.meikan-main {
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 24px;
}

/* ---------- ヒーロー ---------- */
.meikan-hero { text-align: center; margin-bottom: 48px; }
.meikan-hero__title {
	font-size: 28px; font-weight: 700;
	letter-spacing: 0.08em; margin: 0 0 8px;
}
.meikan-hero__lead { font-size: 14px; color: #6b6b6b; margin: 0; }

/* ---------- フリーワード検索 ---------- */
.meikan-search {
	margin-bottom: 20px;
}
.meikan-search__box {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
}
.meikan-search__icon {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: #6b6b6b;
	pointer-events: none;
	display: inline-flex;
}
.meikan-search__input {
	width: 100%;
	box-sizing: border-box;
	padding: 14px 48px 14px 48px;
	border: 1.5px solid #d8d8d8;
	border-radius: 999px;
	background: #fff;
	font-size: 15px;
	font-family: inherit;
	color: #2b2b2b;
	transition: border-color 0.15s, box-shadow 0.15s;
	-webkit-appearance: none;
	appearance: none;
}
.meikan-search__input:focus {
	outline: none;
	border-color: var(--meikan-chip-active-bg, #2b2b2b);
	box-shadow: 0 0 0 3px rgba(43,43,43,0.08);
}
.meikan-search__input::placeholder {
	color: #9a9a9a;
}
/* iOS/Chromeのxボタンを消して自作クリアに統一 */
.meikan-search__input::-webkit-search-cancel-button,
.meikan-search__input::-webkit-search-decoration {
	-webkit-appearance: none;
	appearance: none;
}
.meikan-search__clear {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 0;
	background: #ececec;
	color: #555;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	font-family: inherit;
}
.meikan-search__clear:hover {
	background: #dcdcdc;
}
@media (max-width: 600px) {
	.meikan-search__input { font-size: 14px; padding: 12px 44px; }
	.meikan-search__icon { left: 16px; }
}

/* ---------- 絞り込み ---------- */
.meikan-filter {
	margin-bottom: 40px;
	display: flex; flex-direction: column; gap: 24px;
	background: #fff;
	padding: 24px;
	border-radius: 8px;
}
.meikan-filter__heading {
	font-size: var(--meikan-heading-size, 14px);
	font-weight: var(--meikan-heading-weight, 600);
	margin: 0 0 12px;
	color: var(--meikan-heading-color, #2b2b2b);
}
.meikan-filter__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.meikan-chip {
	appearance: none;
	border: 1px solid var(--meikan-chip-border, #d8d8d8);
	background: var(--meikan-chip-bg, #fff);
	color: var(--meikan-chip-color, #2b2b2b);
	font-size: var(--meikan-chip-size, 13px);
	padding: 8px 16px;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.meikan-chip__count {
	background: rgba(0,0,0,0.08);
	color: inherit;
	font-size: 0.85em;
	font-weight: 500;
	padding: 2px 8px;
	border-radius: 999px;
	min-width: 18px;
	text-align: center;
	line-height: 1.2;
}
.meikan-chip.is-active .meikan-chip__count {
	background: rgba(255,255,255,0.25);
}
.meikan-chip:hover { opacity: 0.85; }
.meikan-chip.is-active {
	background: var(--meikan-chip-active-bg, #2b2b2b);
	color: var(--meikan-chip-active-color, #fff);
	border-color: var(--meikan-chip-active-bg, #2b2b2b);
}

/* ---------- 4カラムグリッド ---------- */
.meikan-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px 24px;
	align-items: start;
}
.meikan-card.is-hidden { display: none; }
.meikan-card {
	background: var(--meikan-card-bg, #fff);
	border-radius: var(--meikan-card-radius, 12px);
	padding: 20px 20px 28px;
	transition: transform 0.2s, box-shadow 0.2s;
	display: flex;
	flex-direction: column;
}
.meikan-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}
.meikan-card__link {
	display: flex;
	flex-direction: column;
	flex: 1;
	color: inherit;
	text-decoration: none;
}
.meikan-card__thumb {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f0f0f0;
	border-radius: 12px;
	margin-bottom: 24px;
}
.meikan-card__thumb img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
}
.meikan-card__thumb--placeholder {
	background: linear-gradient(135deg, #e8d9c0 0%, #c4a374 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}
.meikan-card__thumb--placeholder span {
	font-size: 64px;
	font-weight: 700;
	color: #fff;
	font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.meikan-card__body {
	flex: 1;
	text-align: center;
	padding: 0 4px;
}
.meikan-card__category {
	color: var(--meikan-color-category, #e88e3a);
	font-size: var(--meikan-size-category, 13px);
	font-weight: var(--meikan-weight-category, 600);
	margin: 0 0 12px;
	letter-spacing: 0.04em;
}
.meikan-card__name {
	font-size: var(--meikan-size-name, 18px);
	font-weight: var(--meikan-weight-name, 700);
	margin: 0 0 12px;
	color: var(--meikan-color-name, #1a1a1a);
	line-height: 1.5;
}
.meikan-card__position {
	font-size: var(--meikan-size-position, 13px);
	font-weight: var(--meikan-weight-position, 400);
	color: var(--meikan-color-position, #4a4a4a);
	margin: 0 0 4px;
}
.meikan-card__area {
	font-size: var(--meikan-size-area, 13px);
	font-weight: var(--meikan-weight-area, 400);
	color: var(--meikan-color-area, #6b6b6b);
	margin: 0 0 24px;
}

.meikan-card__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-top: auto;
}
.meikan-card__more {
	color: var(--meikan-color-more, #4a7fb8);
	font-size: var(--meikan-size-more, 13px);
	font-weight: var(--meikan-weight-more, 500);
	letter-spacing: 0.02em;
}
.meikan-card__arrow {
	display: block;
	width: 64%;
	height: 1px;
	background: var(--meikan-color-more, #4a7fb8);
	position: relative;
}
.meikan-card__arrow::after {
	content: '';
	position: absolute;
	right: 0;
	top: -3px;
	width: 7px;
	height: 7px;
	border-top: 1px solid var(--meikan-color-more, #4a7fb8);
	border-right: 1px solid var(--meikan-color-more, #4a7fb8);
	transform: rotate(45deg);
}
.meikan-no-result,
.meikan-empty {
	grid-column: 1 / -1;
	text-align: center;
	color: #888;
	padding: 48px 0;
}
.meikan-empty a { color: #2b2b2b; }

/* ---------- もっと見る／閉じるボタン ---------- */
.load-more-wrap {
	text-align: center;
	margin-top: 48px;
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}
.load-more,
.load-close {
	appearance: none;
	display: inline-block;
	font-family: inherit;
	font-size: var(--meikan-btn-size, 14px);
	letter-spacing: 0.06em;
	padding: 16px 56px;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s, color 0.2s, opacity 0.2s;
	border: 1px solid transparent;
}
.load-more {
	background: var(--meikan-btn-more-bg, #2b2b2b);
	color: var(--meikan-btn-more-color, #fff);
	border-color: var(--meikan-btn-more-bg, #2b2b2b);
}
.load-more:hover {
	opacity: 0.85;
	transform: translateY(-2px);
}
.load-close {
	background: var(--meikan-btn-close-bg, #fff);
	color: var(--meikan-btn-close-color, #2b2b2b);
	border-color: var(--meikan-btn-close-color, #2b2b2b);
}
.load-close:hover {
	opacity: 0.85;
	transform: translateY(-2px);
}
.load-more[hidden],
.load-close[hidden] { display: none; }

/* ---------- タグ一覧（地域・カテゴリーで探す） ---------- */
.tag-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.tag-card {
	background: #fff;
	border-radius: 8px;
	padding: 24px;
	text-align: center;
	text-decoration: none;
	color: #2b2b2b;
	border: 1px solid #eee;
	transition: transform 0.2s, box-shadow 0.2s;
}
.tag-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.tag-card__name {
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 4px;
}
.tag-card__count {
	font-size: 12px;
	color: #888;
	margin: 0;
}

/* ---------- TOP FV（画像のみ・オーバーレイなし） ---------- */
.top-fv {
	position: relative;
	width: 100%;
	max-width: 1400px;
	margin: 0 auto 48px;
	height: var(--meikan-fv-h-pc, 480px);
	overflow: hidden;
	border-radius: 12px;
	background: #f4f4f4;
}
.top-fv__img {
	width: 100%;
	height: 100%;
	object-fit: var(--meikan-fv-fit, cover);
	object-position: center;
	display: block;
}

/* 全幅モード */
.top-fv--full {
	max-width: 100vw;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	border-radius: 0;
}

/* スマホ */
@media (max-width: 720px) {
	.top-fv {
		height: var(--meikan-fv-h-sp, 260px);
		border-radius: 0;
		margin-bottom: 24px;
		max-width: 100%;
	}
	.top-fv--full { margin-left: 0; margin-right: 0; width: 100%; }
}

/* ---------- About FV（黒〜グレーグラデ＋CTA・中央寄せ） ---------- */
.about-fv {
	width: 100%;
	background: linear-gradient(90deg, #1a1a1a 0%, #5a5a5a 100%);
	margin: 0 0 64px;
	padding: 96px 0;
}
.about-fv__inner {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 48px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 32px;
	color: #fff;
}
.about-fv__caption { width: 100%; }
.about-fv__title {
	font-size: 36px;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 28px;
	line-height: 1.4;
	text-align: center;
}
.about-fv__lead {
	font-size: 15px;
	line-height: 2.2;
	margin: 0;
	text-align: center;
}

.fv-cta {
	display: inline-block;
	background: linear-gradient(180deg, #f3d98a 0%, #c79a3e 100%);
	color: #2b2b2b;
	font-weight: 700;
	font-size: 15px;
	padding: 22px 44px;
	border-radius: 999px;
	text-decoration: none;
	box-shadow: 0 6px 20px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.4);
	transition: transform 0.2s, box-shadow 0.2s;
	white-space: nowrap;
}
.fv-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.4);
}

@media (max-width: 720px) {
	.about-fv { padding: 64px 0; margin-bottom: 48px; }
	.about-fv__inner { padding: 0 24px; gap: 28px; }
	.about-fv__title { font-size: 24px; margin-bottom: 20px; }
	.about-fv__lead { font-size: 13px; }
	.fv-cta { padding: 18px 32px; font-size: 14px; }
}

/* ---------- About ページ：ブロックエディタで組む本文エリア ---------- */
.about-freecontent { /* ヘッダー直下から幅いっぱいに使える */ }

/* 通常ブロックは max-width で中央寄せ */
.about-freecontent > * {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}

/* About ページの meikan-main は上余白なし */
.meikan-main--about {
	padding-top: 32px;
}

/* ---------- JIN:Rライクな幅コントロールクラス（全ページ共通） ---------- */
/* 追加CSSクラス欄に is-narrow / is-normal / is-wide / is-full を書くと効きます */
.is-narrow,
.is-style-narrow {
	max-width: 800px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.is-normal,
.is-style-normal {
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.is-wide,
.is-style-wide,
.alignwide {
	max-width: 1400px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
/* 全幅：親コンテナの max-width を viewport 幅で突き破る */
.is-full,
.is-fullwidth,
.is-style-full,
.alignfull {
	max-width: 100vw !important;
	width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box;
}

/* ---------- About ページ ---------- */
.about-section {
	background: #fff;
	padding: 48px 32px;
	border-radius: 8px;
	margin-bottom: 32px;
}
.about-section__title {
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 16px;
	text-align: center;
}
.about-section__lead {
	font-size: 15px;
	line-height: 1.9;
	margin: 0 0 24px;
}
.about-cta {
	display: inline-block;
	background: #2b2b2b;
	color: #fff;
	text-decoration: none;
	padding: 14px 32px;
	border-radius: 999px;
	font-size: 14px;
	letter-spacing: 0.04em;
	transition: background 0.2s;
}
.about-cta:hover { background: #555; }
.about-section--center { text-align: center; }

.about-stats {
	background: #fff;
	padding: 48px 32px;
	border-radius: 8px;
	text-align: center;
	margin-bottom: 32px;
}
.about-stats__num {
	font-size: 48px;
	font-weight: 700;
	margin: 0;
}
.about-stats__label {
	font-size: 14px;
	color: #6b6b6b;
	margin: 0;
}
.about-industries {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	margin-top: 24px;
}
.about-industries span {
	background: #f4f4f4;
	font-size: 12px;
	padding: 8px 12px;
	border-radius: 4px;
	text-align: center;
}

/* 業種イメージグリッド（5カラム） */
.about-industries-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
	margin-top: 32px;
}
.about-industry-box {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 6px;
	background: #f4f4f4;
}
.about-industry-box img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 720px) {
	.about-industries-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- 固定ページ（page.php） ---------- */
.single-page-main { max-width: 820px; }
.single-page {
	background: #fff;
	padding: 48px 40px;
	border-radius: 12px;
}
.single-page__thumb { margin: -48px -40px 32px; overflow: hidden; border-radius: 12px 12px 0 0; }
.single-page__thumb img { width: 100%; height: auto; display: block; max-height: 400px; object-fit: cover; }
.single-page__header {
	text-align: center;
	margin-bottom: 40px;
	padding-bottom: 24px;
	border-bottom: 1px solid #eee;
}
.single-page__title {
	font-size: 26px;
	font-weight: 700;
	margin: 0;
	line-height: 1.5;
}
.single-page__body {
	font-size: 15px;
	line-height: 1.95;
}
.single-page__body h2 {
	font-size: 20px;
	border-left: 3px solid #2b2b2b;
	padding-left: 12px;
	margin: 40px 0 16px;
}
.single-page__body h3 { font-size: 18px; margin: 32px 0 12px; }
.single-page__body p { margin: 0 0 20px; }
.single-page__body ul, .single-page__body ol { padding-left: 24px; margin: 0 0 20px; }
.single-page__body a { color: var(--meikan-color-more, #4a7fb8); text-decoration: underline; }
.single-page__back { margin-top: 48px; text-align: center; }
.single-page__back a { color: #2b2b2b; text-decoration: none; border-bottom: 1px solid #2b2b2b; padding-bottom: 2px; font-size: 14px; }
@media (max-width: 720px) {
	.single-page { padding: 32px 20px; }
	.single-page__thumb { margin: -32px -20px 24px; }
	.single-page__title { font-size: 20px; }
}

/* ---------- 投稿ページ（single.php） ---------- */
.single-post-main { max-width: 820px; }
.single-post {
	background: #fff;
	padding: 48px 40px;
	border-radius: 12px;
}
.single-post__thumb {
	margin: -48px -40px 32px;
	overflow: hidden;
	border-radius: 12px 12px 0 0;
}
.single-post__thumb img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	max-height: 460px;
}
.single-post__header {
	text-align: center;
	margin-bottom: 40px;
	padding-bottom: 24px;
	border-bottom: 1px solid #eee;
}
.single-post__cats {
	margin: 0 0 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}
.single-post__cats a {
	background: var(--meikan-color-category, #e88e3a);
	color: #fff;
	font-size: 12px;
	padding: 4px 12px;
	border-radius: 999px;
	text-decoration: none;
}
.single-post__title {
	font-size: 26px;
	font-weight: 700;
	margin: 0 0 16px;
	line-height: 1.5;
}
.single-post__meta {
	margin: 0;
	color: #888;
	font-size: 13px;
}
.single-post__body {
	font-size: 15px;
	line-height: 1.95;
}
.single-post__body h2 {
	font-size: 20px;
	border-left: 3px solid #2b2b2b;
	padding-left: 12px;
	margin: 40px 0 16px;
}
.single-post__body h3 {
	font-size: 18px;
	margin: 32px 0 12px;
}
.single-post__body p { margin: 0 0 20px; }
.single-post__body img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin: 16px 0;
}
.single-post__body a {
	color: var(--meikan-color-more, #4a7fb8);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.single-post__body blockquote {
	border-left: 4px solid #ddd;
	padding: 8px 20px;
	color: #555;
	margin: 20px 0;
	background: #f8f8f8;
	border-radius: 0 8px 8px 0;
}
.single-post__body ul, .single-post__body ol {
	padding-left: 24px;
	margin: 0 0 20px;
}
.single-post__footer {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid #eee;
}
.single-post__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
}
.single-post__tags a {
	color: #888;
	font-size: 13px;
	text-decoration: none;
}
.single-post__nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin: 32px 0;
}
.single-post__nav-link {
	background: #f8f8f8;
	padding: 14px 18px;
	border-radius: 8px;
	text-decoration: none;
	color: #2b2b2b;
	display: block;
	transition: background 0.2s;
}
.single-post__nav-link:hover { background: #ececec; }
.single-post__nav-link span {
	font-size: 12px;
	color: #888;
	display: block;
	margin-bottom: 4px;
}
.single-post__nav-link strong {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}
.single-post__back {
	margin-top: 32px;
	text-align: center;
}
.single-post__back a {
	color: #2b2b2b;
	text-decoration: none;
	border-bottom: 1px solid #2b2b2b;
	padding-bottom: 2px;
	font-size: 14px;
}
@media (max-width: 720px) {
	.single-post { padding: 32px 20px; }
	.single-post__thumb { margin: -32px -20px 24px; }
	.single-post__title { font-size: 20px; }
	.single-post__nav { grid-template-columns: 1fr; }
}

/* ---------- 投稿本文：埋め込み（YouTube等）レスポンシブ ---------- */
.single-post__body .wp-block-embed { margin: 24px 0; }
.single-post__body .wp-block-embed__wrapper { position: relative; width: 100%; }
.single-post__body .wp-block-embed iframe,
.single-post__body iframe[src*="youtube.com"],
.single-post__body iframe[src*="youtu.be"],
.single-post__body iframe[src*="vimeo.com"] {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	display: block;
	max-width: 100%;
	border: 0;
	border-radius: 8px;
}

/* ---------- 投稿本文：alignwide / alignfull（padding 40px を打ち消す） ---------- */
.single-post__body .alignwide {
	margin-left: -40px;
	margin-right: -40px;
	max-width: calc(100% + 80px);
	width: calc(100% + 80px);
}
.single-post__body .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
	border-radius: 0;
}
.single-post__body .alignfull iframe,
.single-post__body .alignfull img { border-radius: 0; }

/* ---------- 投稿本文：画像・キャプション（編集画面と同じ中央寄せ） ---------- */
.single-post__body figure,
.single-post__body .wp-block-image {
	margin: 24px 0;
	text-align: center;
}
.single-post__body figure img,
.single-post__body .wp-block-image img {
	display: inline-block;
	max-width: 100%;
	height: auto;
	margin-bottom: 0;
	border-radius: 8px;
	vertical-align: bottom;
}
/* キャプションを写真の直下に寄せる（中央・小さめ・薄め）
   ※ alignfull 内で figcaption が縦書き/1文字幅になるバグ対策として
      writing-mode と width を強制横書き・100% に固定 */
.single-post__body figure figcaption,
.single-post__body .wp-block-image figcaption,
.single-post__body .wp-block-embed figcaption,
.single-post__body .wp-caption .wp-caption-text {
	display: block;
	writing-mode: horizontal-tb;
	text-orientation: mixed;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	text-align: center;
	font-size: 12px;
	color: #888;
	margin: 4px 0 0;
	padding: 0 16px;
	line-height: 1.5;
	white-space: normal;
	word-break: normal;
}

/* ---------- 投稿本文：ブロック上下余白ユーティリティ（Additional CSS Class 用） ----------
   ブロック右サイドバー「高度な設定 → 追加 CSS クラス」に半角スペース区切りで指定：
   例）「mt-16 mb-32」= 上マージン16px, 下マージン32px */
.single-post__body .mt-0  { margin-top: 0 !important; }
.single-post__body .mt-4  { margin-top: 4px !important; }
.single-post__body .mt-8  { margin-top: 8px !important; }
.single-post__body .mt-16 { margin-top: 16px !important; }
.single-post__body .mt-24 { margin-top: 24px !important; }
.single-post__body .mt-32 { margin-top: 32px !important; }
.single-post__body .mt-48 { margin-top: 48px !important; }
.single-post__body .mt-64 { margin-top: 64px !important; }
.single-post__body .mb-0  { margin-bottom: 0 !important; }
.single-post__body .mb-4  { margin-bottom: 4px !important; }
.single-post__body .mb-8  { margin-bottom: 8px !important; }
.single-post__body .mb-16 { margin-bottom: 16px !important; }
.single-post__body .mb-24 { margin-bottom: 24px !important; }
.single-post__body .mb-32 { margin-bottom: 32px !important; }
.single-post__body .mb-48 { margin-bottom: 48px !important; }
.single-post__body .mb-64 { margin-bottom: 64px !important; }

/* ---------- 投稿本文：align 汎用（float は使わない＝文字の回り込み無し） ---------- */
.single-post__body .aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
/* 左揃え：ブロック単位で左寄せするだけ。文字は横に回り込まず、画像の下に続く */
.single-post__body .alignleft,
.single-post__body .wp-block-image.alignleft,
.single-post__body figure.alignleft {
	float: none;
	display: block;
	margin: 24px auto 24px 0;
	text-align: left;
	max-width: 100%;
}
/* 右揃え：ブロック単位で右寄せするだけ */
.single-post__body .alignright,
.single-post__body .wp-block-image.alignright,
.single-post__body figure.alignright {
	float: none;
	display: block;
	margin: 24px 0 24px auto;
	text-align: right;
	max-width: 100%;
}

@media (max-width: 720px) {
	.single-post__body .alignwide {
		margin-left: -20px;
		margin-right: -20px;
		max-width: calc(100% + 40px);
		width: calc(100% + 40px);
	}
}

/* ---------- 人物詳細 ---------- */
.meikan-detail {
	max-width: 800px;
	margin: 0 auto;
	background: #fff;
	padding: 48px 32px;
	border-radius: 8px;
}
.meikan-detail__header {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 32px;
	margin-bottom: 40px;
	align-items: start;
}
.meikan-detail__thumb img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	display: block;
}
.meikan-detail__position {
	font-size: 12px; color: #888; margin: 0 0 8px;
}
.meikan-detail__name {
	font-size: 24px; font-weight: 700; margin: 0 0 8px;
}
.meikan-detail__area {
	font-size: 14px; color: #6b6b6b; margin: 0 0 16px;
}
.meikan-detail__cats {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 6px;
}
.meikan-detail__cats li {
	font-size: 12px; color: #2b2b2b;
	border: 1px solid #d8d8d8;
	padding: 4px 10px;
	border-radius: 999px;
}
.meikan-detail__body {
	font-size: 15px; line-height: 1.9;
}
.meikan-detail__body h2 {
	font-size: 18px;
	border-left: 3px solid #2b2b2b;
	padding-left: 10px;
	margin: 32px 0 12px;
}
.meikan-detail__back {
	margin-top: 64px; text-align: center;
}
.meikan-detail__back a {
	color: #2b2b2b; text-decoration: none;
	border-bottom: 1px solid #2b2b2b;
	padding-bottom: 2px;
}

/* ---------- レスポンシブ ---------- */
@media (max-width: 960px) {
	.meikan-grid { grid-template-columns: repeat(3, 1fr); }
	.tag-grid { grid-template-columns: repeat(3, 1fr); }
	.about-industries { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
	.meikan-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
	.tag-grid { grid-template-columns: repeat(2, 1fr); }
	.about-industries { grid-template-columns: repeat(2, 1fr); }
	.meikan-detail__header { grid-template-columns: 1fr; }
	.meikan-detail__thumb { max-width: 240px; margin: 0 auto; }
	.site-header__inner { flex-wrap: wrap; }
	.site-header__nav { font-size: 12px; gap: 16px; }
}
@media (max-width: 480px) { .meikan-main { padding: 40px 16px; } }

/* ---------- 編集可能エリアの目印（プレビュー用） ---------- */
[contenteditable="true"] {
	outline: 1px dashed transparent;
	transition: outline-color 0.2s, background 0.2s;
	border-radius: 4px;
	padding: 2px 4px;
}
[contenteditable="true"]:hover {
	outline-color: #d4a418;
	background: #fffbe6;
	cursor: text;
}
[contenteditable="true"]:focus {
	outline: 2px solid #d4a418;
	background: #fffbe6;
}
.edit-note {
	background: #fff8e7;
	border-left: 3px solid #d4a418;
	padding: 12px 18px;
	margin-bottom: 24px;
	font-size: 13px;
	color: #6b5a1a;
	border-radius: 4px;
}
.edit-note b { color: #2b2b2b; }

/* WPでおすすめ記事を選び直すエリア */
.featured-pickbox {
	background: #fff;
	border: 2px dashed #d4a418;
	padding: 16px;
	margin-bottom: 24px;
	border-radius: 8px;
	font-size: 13px;
	color: #6b5a1a;
}
