/* ============================================================
   日本中国伝統功夫研究会 公式サイト テーマ CSS（書き直し 2026-11-09）
   いまはトップページ、教室のご案内（6 ページ）、当会について（6 ページ）、便り・練習スポット・リューダ（一覧 5 種類と記事）、
   お知らせ・FAQ・問い合わせ（最新ニュース、活動の記録、よくある質問、お問い合わせ、サイトマップ、検索、規約など）。
   体験受講について（/trial/）だけは trial-basic.css に分けてある（そのページでだけ読まれる）。
   並び：0 値 → 1 土台 → 2 ヘッダー → 3 フッター → 4 トップページ → 5 ページの共通の形 → 6 教室のご案内 → 7 当会について → 8 便り・練習スポット・リューダ → 9 お知らせ・FAQ・問い合わせ
   画面幅の区切りは二つだけ：1000px（メニューが畳まれる）、782px（スマホの並び）
   ============================================================ */


/* 0. 値 ------------------------------------------------------ */

:root {
	/* 色 */
	--ink: #2c2a26;
	--ink-soft: #625c53;
	--paper: #f5f1e9;
	--surface: #fffdf9;
	--white: #fff;
	--paper-white: #fffefb;   /* 右に目次のあるページの紙と目次の箱 */
	--line: #ddd5c7;
	--line-strong: #cdbd9e;
	--bronze: #796435;
	--bronze-soft: #c7ba9d;
	--bronze-bright: #8a7138;   /* 線や小さな印の明るめの銅色（右の目次の線、一覧の見出しの下線） */
	--sage: #535b55;
	--stone: rgba(112, 108, 96, 0.9);
	--night: #35312b;
	--footer: #77746b;
	--button: #62684f;   /* メニューの主なボタン（緑がかった灰） */
	--cta: #79cf2b;
	--cta-hover: #67ba1f;

	/* 場面ごとの紙の色（トップページ） */
	--paper-classes: #f8f4ec;
	--paper-card-head: #f2ece1;
	--paper-comic: #f3eee4;
	--paper-teachers: #ebe6dc;
	--paper-traditions: #f5eee0;
	--paper-news: #faf8f2;
	--paper-kichijoji: #f7f3eb;
	--paper-trial: #eee6d7;

	/* 文字 */
	--font: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", serif;
	--fs-12: 12px;
	--fs-14: 14px;
	--fs-16: 16px;
	--fs-19: 19px;
	--fs-23: 23px;
	--fs-28: 28px;
	--fs-36: 36px;

	/* 幅と間 */
	--page: 1200px;      /* ヘッダー・フッター・帯の最大幅 */
	--band: 1040px;      /* 色の帯の場面（写真・動画・コミック・留学記・体験）の箱の幅 */
	--band-pad: 62px;    /* その箱の左右の余白 → 中身は 916px */
	--rail: 124px;       /* 見出しの左の帯 */
	--rail-gap: 36px;
	--gutter: 40px;      /* 左右の余白（PC） */
	--header-h: 82px;    /* ヘッダーの高さ（スマホは下で 70px に替える） */
	--admin-bar: var(--wp-admin--admin-bar--height, 0px); /* ログイン中に上に出る WordPress の黒い帯の高さ（出ていなければ 0） */
	--radius: 4px;
	--pill: 999px;

	/* 飾りの絵 */
	--wallpaper: url("../images/official-wallpaper-wp.jpg");
}
@media (max-width: 782px) {
	:root {
		--fs-16: 17px; /* スマホは本文の字を一段大きく */
		--header-h: 70px;
	}
}


/* 1. 土台 ---------------------------------------------------- */

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

body {
	margin: 0;
	font-family: var(--font);
	font-size: var(--fs-16);
	line-height: 1.8;
	color: var(--ink);
	background: var(--paper);
	overflow-wrap: anywhere; /* 長い英字や URL は箱からはみ出さずに折り返す */
	text-underline-offset: 0.18em; /* 下線は字から少し離す */
}

h1, h2, h3, p, figure, ul { margin: 0; }
.wp-block-image { margin: 0; } /* WordPress 本体の下の 1em を消す */
.kf-part-photo img { vertical-align: baseline; } /* 部品の中の写真（.kf-part-photo）：WordPress 本体の「下にそろえる」と説明文の飾り（上下の間・小さい字・灰色・中央寄せ）を使わず、形は部品の決まりに任せる */
.kf-part-photo figcaption { margin: 0; font-size: inherit; color: inherit; text-align: inherit; }
p.kf-inline { all: unset !important; display: contents !important; } /* 箱を作らない段落（.kf-inline）：箱の中にじかに置く文やリンクの並びを入れる。段落そのものは形を持たず、中身だけが親の箱に並ぶ。記事の段落の決まりを一つも受けないよう、ここだけ !important */
ul { padding: 0; list-style: none; }
img { display: block; max-width: 100%; height: auto; }
html {
	overflow-x: clip; /* はみ出した部品があっても、画面は横に動かさない */
	scroll-behavior: smooth; /* ページ内リンクはなめらかに動く */
	scroll-padding-top: calc(var(--header-h) + 24px); /* 行き先がヘッダーの下に隠れないように */
}
a { color: var(--bronze); text-decoration: none; transition: color 0.16s, background-color 0.16s, border-color 0.16s; } /* 色はふわっと変わる */
a:hover { color: var(--ink-soft); } /* マウスを乗せたリンクは、ほかに決まりが無ければ少し薄い墨色 */
.site-main :where(p:where(:not(.kf-inline)), li) > a:not(.wp-block-button__link) { text-underline-offset: 0.28em; } /* 本文の中のリンクの下線は字から少し離す */
button { font: inherit; color: inherit; }
ruby rt { font-size: 0.5em; letter-spacing: 0.08em; color: var(--ink-soft); }

/* キーボードで選んだ所の印：白い線の外に銅色の輪 */
:where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--paper-white); outline-offset: 2px; box-shadow: 0 0 0 4px var(--bronze); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); border: 0;
}

/* WordPress は「constrained」の子どもに 幅 1040px・左右の margin auto（!important）を付ける。
   この紙の幅の決まりはそれより強くするため、.kf-front-page を前に付けて書く */

/* 見出しの文字 */
.kf-section-title {
	font-size: var(--fs-23);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.06em;
}

.kf-section-kicker,
.kf-kicker,
.kf-comic__kicker,
.kf-final-trial__kicker {
	font-size: var(--fs-12);
	letter-spacing: 0.14em;
	color: var(--bronze);
}

/* ボタン（丸い） */
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 44px;
	padding: 10px 24px;
	border: 1px solid transparent;
	border-radius: var(--pill);
	font-size: var(--fs-14);
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-decoration: none;
}

/* 濃い地に置く、白い縁のボタン */
.kf-button--light .wp-block-button__link {
	min-width: 190px;
	border-color: rgba(255, 255, 255, 0.86);
	background: transparent;
	color: var(--white);
}
.kf-button--light .wp-block-button__link:hover { border-color: var(--white); background: rgba(255, 255, 255, 0.12); }

/* 薄い地に置く、紙の色のボタン */
.kf-button--dark .wp-block-button__link {
	min-width: 188px;
	border-color: var(--line-strong);
	background: var(--paper-white);
	color: var(--ink);
}
.kf-button--dark .wp-block-button__link:hover { background: color-mix(in srgb, var(--bronze-bright) 8%, var(--paper-white)); }
.wp-block-button__link:focus-visible { background: #f6f3eb; color: var(--ink); } /* キーボードで選んだボタンは薄い金色の地 */

/* 丸いボタン（クラス案内を見る・体験受講について） */
.kf-sample-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	max-width: 100%;
	min-height: 52px;
	padding: 12px 26px;
	border: 1px solid var(--line-strong);
	border-radius: var(--pill);
	font-size: var(--fs-14);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.06em;
	text-align: center;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}
.kf-sample-text-link { display: flex; align-items: center; gap: 10px; padding: 4px 0; font-size: var(--fs-14); line-height: 1.8; color: var(--bronze); }
.kf-trial-actions { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; max-width: 100%; text-align: center; }
.site-main a.kf-sample-text-link[href$="/trial/"], :is(.kf-trial-actions, .kf-trial-actions > :where(.kf-inline)) > .kf-sample-text-link { text-underline-offset: 4px; }

/* 申し込みの緑のボタン（.kf-sample-button も付くので、この後に書く） */
.kf-contact-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	width: 240px;
	max-width: 100%;
	min-height: 52px;
	padding: 12px 38px;
	border: 1px solid var(--cta);
	border-radius: var(--pill);
	background: var(--cta);
	color: var(--white);
	font-size: var(--fs-16);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.05em;
	text-align: center;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}
.kf-contact-button:is(:hover, :focus-visible) { border-color: var(--cta-hover); background: var(--cta-hover); color: var(--white); }
.kf-contact-button:focus-visible { box-shadow: none; }
.kf-sample-button:focus-visible { outline: 2px solid #62684f; outline-offset: 3px; box-shadow: none; }
.kf-sample-button.kf-contact-button:focus-visible, :is(.kf-trial-actions, .kf-trial-actions > :where(.kf-inline)) > .kf-sample-button:focus-visible { outline-color: var(--cta); }
.kf-sample-button.kf-contact-button--inverse:focus-visible { outline-color: var(--white); }

/* 文字だけのリンクにマウスを乗せた時 */
.kf-sample-text-link:hover, .kf-sample-text-link:not(.kf-sample-text-link--inline):focus-visible { color: var(--ink); }
.kf-sample-text-link:not(.kf-sample-text-link--inline):focus-visible { box-shadow: none; }


/* 2. ヘッダー ------------------------------------------------ */

/* 画面の上に貼り付く帯。ログイン中は、上に出る WordPress の黒い帯の下に付く */
.site-header {
	--menu-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 14' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l5 5-5 5'/%3E%3C/svg%3E"); /* 右向きの矢印の形 */
	position: sticky;
	top: var(--admin-bar);
	z-index: 1000;
	border-bottom: 1px solid var(--line);
	background: rgba(255, 254, 251, 0.96);
}

/* 中身：左にロゴ、右にメニューと検索。幅は 1200px まで、それより狭い画面では左右に 25px を残す */
.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: min(var(--page), 100% - 50px);
	min-height: var(--header-h);
	margin-inline: auto;
}

/* ロゴ。メニューが入りきらない幅では、ロゴの方が縮む */
.site-brand { min-width: 0; }
.site-brand__official-logo {
	display: block;
	width: clamp(260px, 27vw, 320px);
	aspect-ratio: 9 / 1;
	background: url("../images/official-logo-horizontal.png") left center / contain no-repeat;
}

.site-header__actions { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; }

/* メニューの字と、項目の間 */
.kf-global-navigation {
	flex: 0 0 auto;
	font-size: var(--fs-14);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.045em;
}
.site-header .wp-block-navigation__container { gap: 10px 18px; }

/* 項目のリンク。マウスを乗せると銅色になり、下に薄い線が出る。字の色は WordPress 本体の決まりで、まわりの色を受け継ぐ */
.site-header .wp-block-navigation-item__content { padding-block: 4px; border-bottom: 1px solid transparent; }
.site-header .wp-block-navigation-item__content:hover { border-bottom-color: var(--bronze-soft); color: var(--bronze); }

/* 子メニューの中のリンク */
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	width: 100%;
	border-bottom: 0;
	color: var(--ink-soft);
	white-space: nowrap;
}
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: color-mix(in srgb, var(--paper) 72%, transparent); color: var(--bronze); }

/* WordPress 本体が親の横に出す小さな矢印は使わない */
.kf-global-navigation .wp-block-navigation__submenu-icon { display: none; }

/* 「体験可」の小さな印 */
.kf-navigation-trial {
	display: inline-block;
	margin-left: 5px;
	padding: 2px 7px;
	border: 1px solid #d6daca;
	border-radius: var(--radius);
	background: #edf0e6;
	font-size: var(--fs-12);
	line-height: 1.5;
	color: var(--ink-soft);
	vertical-align: middle;
	white-space: nowrap;
}

/* 検索の丸いボタン */
.kf-header-search {
	display: grid;
	place-items: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 50%;
	background: transparent;
	color: var(--ink-soft);
	cursor: pointer;
	transition: border-color 0.18s, background-color 0.18s, color 0.18s;
}
.kf-header-search:is(:hover, :focus-visible, .is-current) {
	border-color: var(--line-strong);
	background: color-mix(in srgb, var(--bronze-bright) 8%, var(--paper-white));
	color: var(--bronze);
}
.kf-header-search:focus-visible { outline: 2px solid var(--bronze-soft); outline-offset: 3px; box-shadow: none; }
.kf-header-search svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }

/* 畳んだメニューの部品は、開いたメニューの中でだけ出す */
.kf-mobile-submenu-toggle,
.kf-mobile-menu__brand,
.kf-mobile-menu__actions,
.kf-mobile-nav-note { display: none; }

/* 1001px から：PC のメニュー。親にマウスを乗せると、真下に子メニューの板が出る（出し入れは WordPress 本体の仕組みのまま） */
@media (min-width: 1001px) {
	/* 親の項目はヘッダーの高さいっぱいでマウスを受ける。子メニューはその下の端から出る */
	.site-header .wp-block-navigation__container > .wp-block-navigation-item { min-height: var(--header-h); }

	/* 子メニューの板。WordPress 本体は「右寄せのメニューの子は右端に」と五つの class の強さで決めているので、同じ強さで書く */
	.site-header .kf-global-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container {
		left: 50%;
		right: auto;
		min-width: 250px;
		padding: 8px 0;
		border: 1px solid var(--line);
		border-top: 2px solid var(--bronze-soft);
		background: var(--paper-white);
		box-shadow: 0 12px 28px rgba(44, 42, 38, 0.1);
		transform: translateX(-50%);
	}
}
/* 1001〜1100px：右端の項目の子メニューは、画面からはみ出さないよう右にそろえる */
@media (min-width: 1001px) and (max-width: 1100px) {
	.site-header .kf-global-navigation .wp-block-navigation__container > .has-child:last-child > .wp-block-navigation__submenu-container { left: auto; right: 0; transform: none; }
}

/* 1000px まで：メニューを畳み、三本線のボタンで開く */
@media (max-width: 1000px) {
	.site-brand__official-logo { width: clamp(210px, 27vw, 240px); }
	.kf-front-page .site-brand__official-logo { width: clamp(220px, 28vw, 252px); } /* トップページだけ少し大きい */

	/* WordPress 本体は 600px 以上で三本線のボタンを隠し、メニューを出したままにする。1000px までは畳むので、ここで直す */
	.site-header .wp-block-navigation__responsive-container-open { display: flex; }
	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }

	/* 開いたメニュー：画面いっぱいの紙。画面に固定するのと重なりの順（いちばん上）は WordPress 本体のまま */
	.site-header .wp-block-navigation__responsive-container.is-menu-open {
		padding: 0 25px calc(40px + env(safe-area-inset-bottom));
		background: var(--paper) var(--wallpaper) left top / 320px 320px;
	}
	/* 本体は中身に上の余白 56px と右寄せの並びを付ける。上から順に、幅いっぱいに並べ直す */
	.site-header .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container) { display: block; }
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0; }

	/* 閉じる印：開く前の三本線と同じ場所に出す（場所は site-navigation.js が --kf-menu-toggle-top / -left で渡す） */
	.site-header .wp-block-navigation__responsive-container-close {
		position: fixed;
		top: var(--kf-menu-toggle-top, 23px);
		left: var(--kf-menu-toggle-left, auto);
		right: 25px;
		width: 24px;
		height: 24px;
		color: var(--ink);
	}

	/* いちばん上：ロゴの行（ヘッダーと同じ高さ） */
	.kf-mobile-menu__brand {
		display: flex;
		align-items: center;
		justify-content: center;
		height: var(--header-h);
		border-bottom: 1px solid var(--line);
	}
	.kf-mobile-menu__brand span {
		width: min(260px, 100vw - 136px);
		aspect-ratio: 9 / 1;
		background: url("../images/official-logo-horizontal.png") center / contain no-repeat;
	}

	/* 親の項目：絵・名前・一言・右端の印。一行ずつ線で区切る。名前の字は本体が開いたメニューに付ける黒 */
	.site-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		border-bottom: 1px solid var(--line);
	}
	.site-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		grid-area: 1 / 1;
		display: grid;
		grid-template-columns: 40px minmax(0, 1fr) 14px;
		align-items: center;
		column-gap: 14px;
		padding: 13px 2px;
		font-size: var(--fs-16);
	}
	.site-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::before {
		content: "";
		grid-row: 1 / span 2;
		width: 40px;
		height: 40px;
		background: var(--menu-icon, none) center / var(--menu-icon-size, contain) no-repeat;
	}
	.site-header [data-kf-mobile-nav="classes"] { --menu-icon: url("../images/heading-icons/heading-classes-v1.png"); }
	.site-header [data-kf-mobile-nav="about"] { --menu-icon: url("../images/heading-icons/heading-teachers-v1.png"); }
	.site-header [data-kf-mobile-nav="depth"] { --menu-icon: url("../images/heading-icons/heading-taijitu-v1.png"); --menu-icon-size: 30px; } /* 太極図は絵が枠いっぱいで大きく見えるので 30px に（うさぎの頼み 2026-11-09。前は 40px） */
	.site-header [data-kf-mobile-nav="kichijoji"] { --menu-icon: url("../images/heading-icons/heading-kichijoji-v1.png"); }
	.site-header [data-kf-mobile-nav="news"] { --menu-icon: url("../images/heading-icons/heading-news-v1.png"); }
	.site-header [data-kf-mobile-nav="contact"] { --menu-icon: url("../images/heading-icons/heading-first-visit-v1.png"); }
	.site-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content > .wp-block-navigation-item__label {
		grid-column: 2;
		font-weight: 600;
		letter-spacing: 0.06em;
	}
	.kf-mobile-nav-note {
		display: block;
		grid-column: 2;
		margin-top: 1px;
		font-size: var(--fs-14);
		font-weight: 400;
		letter-spacing: 0.02em;
		color: var(--ink-soft);
	}
	/* 子メニューを持たない項目（最新ニュース）は右向きの矢印 */
	.site-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.has-child) > .wp-block-navigation-item__content::after {
		content: "";
		grid-area: 1 / 3 / span 2;
		justify-self: end;
		width: 9px;
		height: 14px;
		margin-right: 3px;
		background: var(--bronze);
		mask: var(--menu-arrow) center / contain no-repeat;
	}
	/* 子メニューを開く印。親のリンクと同じマスの右端 64px に重ね、行の高さいっぱいが押せる */
	.kf-mobile-submenu-toggle {
		grid-area: 1 / 1;
		justify-self: end;
		align-self: stretch;
		z-index: 2;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		width: 64px;
		padding: 0 2px 0 0;
		border: 0;
		background: transparent;
		color: var(--bronze);
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}
	.kf-mobile-submenu-toggle svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.18s; }
	.kf-mobile-submenu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
	.kf-mobile-submenu-toggle:focus-visible,
	.site-header .is-menu-open .wp-block-navigation-item__content:focus-visible { outline: 2px solid var(--bronze); outline-offset: -2px; }

	/* 子メニュー：白い角丸の箱。開いた親の下にだけ出す。
	   本体は開いたメニューの子メニューの地を !important で透明にするので、地の色だけ同じ強さで戻す */
	.site-header .kf-global-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container {
		display: none;
		min-width: 0;
		margin: 0 0 14px 48px;
		padding: 0;
		border: 1px solid var(--line);
		border-radius: 12px;
		background: var(--paper-white) !important;
		overflow: hidden;
	}
	.site-header .kf-global-navigation .wp-block-navigation__container > .has-child.is-mobile-submenu-open > .wp-block-navigation__submenu-container { display: flex; }
	.site-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item { border-top: 1px solid var(--line); }
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		align-items: center;
		justify-content: space-between;
		gap: 6px;
		padding: 12px 12px 12px 14px;
		font-size: var(--fs-16);
		letter-spacing: 0.02em;
		white-space: normal;
	}
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
		content: "";
		flex: 0 0 auto;
		width: 7px;
		height: 11px;
		background: var(--bronze);
		mask: var(--menu-arrow) center / contain no-repeat;
	}
	.site-header .is-menu-open .kf-navigation-trial { margin-left: 0; padding: 1px 6px; letter-spacing: 0; }

	/* 下の二つのボタンと検索 */
	.kf-mobile-menu__actions { display: block; padding-top: 26px; }
	.kf-mobile-menu__buttons { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 10px; }
	.kf-mobile-menu__button {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		padding: 0 12px;
		border: 1px solid var(--bronze-soft);
		border-radius: var(--pill);
		background: var(--paper-white);
		font-size: var(--fs-16);
		font-weight: 600;
		letter-spacing: 0.04em;
	}
	.kf-mobile-menu__button.is-primary { border-color: var(--button); background: var(--button); color: var(--white); }
	.kf-mobile-menu__search {
		display: flex;
		align-items: center;
		gap: 10px;
		height: 48px;
		margin-top: 14px;
		padding: 0 18px;
		border: 1px solid var(--line);
		border-radius: var(--pill);
		background: var(--paper-white);
	}
	.kf-mobile-menu__search:focus-within { border-color: var(--bronze); }
	.kf-mobile-menu__search svg { flex: 0 0 auto; width: 18px; height: 18px; fill: none; stroke: var(--bronze); stroke-width: 1.6; stroke-linecap: round; }
	.kf-mobile-menu__search input {
		flex: 1;
		min-width: 0;
		height: 100%;
		padding: 0;
		border: 0;
		outline: 0;
		background: transparent;
		font: inherit;
		font-size: var(--fs-16);
		color: var(--ink);
	}
}

/* 782px まで（スマホ）：ロゴを画面の真ん中に置き、三本線は右端。検索の丸いボタンは出さない（開いたメニューと下の帯にある） */
@media (max-width: 782px) {
	/* WordPress 本体の body .is-layout-flex（display: flex）より強くするため、.site-header を前に付ける */
	.site-header .site-header__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); column-gap: 0; }
	.site-header .site-brand { grid-column: 2; justify-self: center; }
	.site-header .site-brand__official-logo { width: min(260px, 100vw - 136px); } /* 396px より狭い画面ではロゴを縮める */
	.site-header__actions { grid-column: 3; justify-self: end; gap: 0; }
	.kf-header-search { display: none; }
}


/* 3. フッター ------------------------------------------------ */

/* 本文とフッターをつなぐ、模様の帯と東屋の絵 */
.kf-footer-bridge {
	position: relative;
	height: 164px;
	background: var(--paper) var(--wallpaper) center top / 320px 320px;
	overflow: hidden;
}
.kf-footer-bridge::before {
	content: "";
	position: absolute;
	inset: 114px 0 auto;
	height: 1px;
	background: linear-gradient(90deg,
		var(--line-strong) calc(50% - 76px), transparent calc(50% - 76px),
		transparent calc(50% + 76px), var(--line-strong) calc(50% + 76px));
}
.kf-footer-bridge::after {
	content: "";
	position: absolute;
	top: 50px;
	left: 50%;
	width: 118px;
	height: 94px;
	background: url("../images/motif-pavilion-hex-v1-web.webp") center / contain no-repeat;
	transform: translateX(-50%);
}

.site-footer {
	padding-bottom: 30px;
	background: var(--footer);
	color: var(--white);
}
.site-footer a { color: inherit; }
.site-footer a:hover { color: var(--white); }

/* 中身の置き場：幅 1200px、左右の余白 62px。WordPress が子どもを 1040px に寄せる（前と同じ） */
.site-footer__inner {
	position: relative;
	width: min(var(--page), 100% - 50px);
	margin-inline: auto;
	padding: 46px 62px 0;
}

.site-footer__brand {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 28px;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.24);
}
.site-footer .wp-block-site-title { font-size: var(--fs-19); letter-spacing: 0.08em; }
.site-footer__social { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 16px; margin-top: 6px; font-size: var(--fs-12); letter-spacing: 0.07em; color: rgba(255, 255, 255, 0.8); }
.site-footer__social a { display: inline-flex; align-items: center; gap: 0.42em; line-height: 1.4; color: var(--white); }
.site-footer__social-icon { display: block; flex: 0 0 auto; width: 1em; height: 1em; fill: currentColor; transform: translateY(0.08em); }
.site-footer__map-label { font-size: var(--fs-12); letter-spacing: 0.14em; color: rgba(255, 255, 255, 0.82); }

.site-footer__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 28px;
	padding: 18px 0 34px;
}
.site-footer__nav-title {
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.26);
	font-size: var(--fs-14);
	font-weight: 500;
	line-height: 1.75;
	letter-spacing: 0.06em;
}
.site-footer__nav li { font-size: var(--fs-12); line-height: 2; }
.site-footer__nav li + li { margin-top: 5px; }
.site-footer__nav a { line-height: 1.5; }

.site-footer__rule { display: none; }

/* 一番下：左に © 、右下に規約の二つ */
.site-footer__bottom { display: flex; align-items: center; gap: 20px; min-height: 22px; }
.site-footer__note { font-size: var(--fs-12); letter-spacing: 0.04em; color: rgba(255, 255, 255, 0.82); }
.site-footer__legal-row { position: absolute; right: 62px; bottom: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.site-footer__legal-row a { font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.045em; color: rgba(255, 255, 255, 0.82); }
.site-footer__legal-row a + a { position: relative; padding-left: 22px; }
.site-footer__legal-row a + a::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 1px;
	height: 0.8em;
	background: rgba(255, 255, 255, 0.24);
	transform: translateY(-50%);
}

/* PC で、下に進んだら出る「トップへ」の丸。出る時は 8px 下からふわっと上がる */
.site-footer__back-to-top {
	appearance: none;
	position: fixed;
	right: clamp(20px, 3vw, 44px);
	bottom: clamp(20px, 3vw, 42px);
	z-index: 90;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	padding: 0;
	border: 1px solid rgba(119, 114, 103, 0.24);
	border-radius: 50%;
	background: rgba(248, 246, 240, 0.94);
	box-shadow: 0 5px 18px rgba(33, 31, 27, 0.16);
	color: #716d64;
	font-size: 13.3333px; /* ボタンの既定の字の大きさ */
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity 0.18s, visibility 0.18s, transform 0.18s, background-color 0.18s, color 0.18s;
}
.site-footer__back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.site-footer__back-to-top span { font-size: 0.8rem; line-height: 0.8; }
.site-footer__back-to-top small { margin-top: 5px; font-size: 0.5rem; letter-spacing: 0.06em; }
.site-footer__back-to-top:is(:hover, :focus-visible) { background: #fffdf8; color: var(--ink); }
.site-footer__back-to-top:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; }

/* サイト内検索の窓（ヘッダーの虫めがね・スマホの下の帯から）。暗い幕の上に、検索の欄が 8px 下からふわっと出る。開いている間は後ろの紙を動かさない */
html.kf-mobile-search-open,
html.kf-mobile-search-open body { overflow: hidden; }
.kf-mobile-search:not([hidden]) {
	position: fixed;
	inset: 0;
	z-index: 100020;
	display: grid;
	place-items: start center;
	padding: max(145px, 22vh) 40px 80px;
	opacity: 0;
	transition: opacity 0.17s;
}
.kf-mobile-search.is-open { opacity: 1; }
.kf-mobile-search__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: rgba(24, 24, 22, 0.72);
}
.kf-mobile-search__dialog { position: relative; width: min(100%, 620px); transform: translateY(8px); transition: transform 0.18s; }
.kf-mobile-search.is-open .kf-mobile-search__dialog { transform: translateY(0); }
.kf-mobile-search__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 60px;
	overflow: hidden;
	border: 3px solid rgba(255, 253, 249, 0.92);
	outline: 1px solid color-mix(in srgb, var(--bronze-bright) 70%, var(--paper-white));
	background: var(--paper-white);
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.26);
}
.kf-mobile-search__form input[type="search"] {
	width: 100%;
	min-width: 0;
	min-height: 60px;
	margin: 0;
	padding: 13px 20px;
	border: 0;
	border-radius: 0;
	outline: 0;
	background: var(--paper-white);
	font-family: inherit;
	font-size: var(--fs-16);
	line-height: 1.4;
	color: var(--ink);
}
.kf-mobile-search__form input[type="search"]::placeholder { color: var(--ink-soft); }
.kf-mobile-search__form input[type="search"]:focus-visible { box-shadow: inset 0 0 0 2px var(--bronze-soft); }
.kf-mobile-search__form button {
	display: grid;
	place-items: center;
	min-width: 60px;
	min-height: 60px;
	padding: 0;
	border: 0;
	background: var(--bronze);
	color: var(--white);
}
.kf-mobile-search__form button svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.kf-mobile-search__close {
	display: block;
	margin: 16px auto 0;
	padding: 7px 12px;
	border: 0;
	background: transparent;
	color: var(--white);
	font-size: var(--fs-14);
	line-height: normal;
	letter-spacing: 0.04em;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
.kf-mobile-search__close span { font-size: 1.1em; }

/* スマホの下に出る五つのボタンの帯（782px まで。JS の切り替えと同じ幅）。下に進むと下からせり上がり、メニューを開いている間は引っ込む。
   PC の「トップへ」の丸はここで消す */
.kf-mobile-utility { display: none; }
@media (max-width: 782px) {
	body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
	.site-footer__back-to-top { display: none; }
	.kf-mobile-utility {
		position: fixed;
		inset: auto 0 0;
		z-index: 99990;
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		min-height: calc(64px + env(safe-area-inset-bottom, 0px));
		padding: 5px 4px env(safe-area-inset-bottom, 0px);
		border-top: 1px solid rgba(255, 253, 249, 0.28);
		background: color-mix(in srgb, var(--footer) 94%, var(--ink));
		box-shadow: 0 -5px 18px rgba(33, 31, 27, 0.16);
		opacity: 0;
		transform: translateY(calc(100% + env(safe-area-inset-bottom, 0px)));
		transition: transform 0.22s, opacity 0.18s;
		pointer-events: none;
	}
	html:not(.has-modal-open) .kf-mobile-utility.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
	.kf-mobile-utility__item {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		min-width: 0;
		min-height: 54px;
		padding: 5px 2px 4px;
		border: 0;
		background: transparent;
		color: rgba(255, 255, 255, 0.82);
		-webkit-tap-highlight-color: transparent;
	}
	.kf-mobile-utility__item:is(:hover, :focus-visible, .is-current) { background: rgba(255, 253, 249, 0.08); color: var(--white); }
	/* 今いる場所のボタンの上に、薄い銅色の線 */
	.kf-mobile-utility__item.is-current::before {
		content: "";
		position: absolute;
		top: -5px;
		left: 22%;
		width: 56%;
		height: 2px;
		background: var(--bronze-soft);
	}
	.kf-mobile-utility__item svg { width: 23px; height: 23px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
	.kf-mobile-utility__item span { max-width: 100%; overflow: hidden; font-size: var(--fs-12); line-height: 1.2; letter-spacing: 0.01em; white-space: nowrap; text-overflow: ellipsis; }

	.kf-mobile-search:not([hidden]) { padding: max(118px, 24vh) 20px 100px; }
	.kf-mobile-search__dialog { width: min(100%, 520px); }
	.kf-mobile-search__form { grid-template-columns: minmax(0, 1fr) 52px; }
	.kf-mobile-search__form input[type="search"] { min-height: 52px; padding: 11px 15px; }
	.kf-mobile-search__form button { min-width: 52px; min-height: 52px; }
	.kf-mobile-search__close { margin-top: 13px; }
}

@media (max-width: 782px) {
	.site-footer__inner { width: 100%; padding-inline: 25px; }
	.site-footer__brand { align-items: start; }
	.site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer__legal-row { position: static; justify-content: center; margin-bottom: 12px; }
	.site-footer__bottom { justify-content: center; min-height: 0; text-align: center; }
	.site-footer__bottom .site-footer__note { width: 100%; }
}
/* 520px まで：東屋の絵を少し小さく、案内は一列に */
@media (max-width: 520px) {
	.kf-footer-bridge { height: 124px; }
	.kf-footer-bridge::before { top: 88px; }
	.kf-footer-bridge::after { top: 34px; width: 102px; height: 80px; }
	.site-footer__brand > :last-child { margin-top: 16px; }
	.site-footer__grid { grid-template-columns: 1fr; gap: 24px; }
}


/* 4. トップページ -------------------------------------------- */
/* 場面は上から：大きな写真／三つの要点／クラス紹介／動画の便り／功夫コミック／教える人／
   武術の歴史を知る／留学記／最新ニュース／吉祥寺カンフーライフ／体験受講について。
   PC では場面の左右に 25px の余白（WordPress の決まり）があり、中の箱は「100% − 50px」まで広がる。
   左に帯のある場面（クラス紹介・教える人・歴史・ニュース・吉祥寺）は 782px まで同じ形。 */

.kf-front-page {
	--rail-line: color-mix(in srgb, var(--bronze-soft) 66%, transparent); /* 教える人の間の線 */
}

/* 飾りを重ねる場面 */
.kf-front-page :is(.kf-hero-facts, .kf-classes, .kf-teachers, .kf-traditions, .kf-memoir, .kf-news, .kf-kichijoji, .kf-final-trial) { position: relative; overflow: hidden; }

/* この章のリンク：色だけが変わる */
.kf-front-page .site-main :where(p:where(:not(.kf-inline)), li) > a:not(.wp-block-button__link) { text-underline-offset: 0.32em; transition: color 0.16s, text-decoration-color 0.16s; }

/* 左に帯のある場面の中身：帯 124px ＋ 間 36px ＋ 中身 ＋ 右 60px */
.kf-front-page .kf-section-inner {
	position: relative;
	z-index: 1;
	width: min(1120px, 100% - 50px);
	margin-inline: auto;
	padding: 56px 60px 56px calc(var(--rail) + var(--rail-gap));
	background: linear-gradient(var(--rail-color), var(--rail-color) 148px, transparent 252px) left top / var(--rail) 252px no-repeat;
}

/* 見出しの行：題と、帯の中の絵（52px） */
.kf-front-page .kf-section-inner > :where(.kf-heading-icon-row, .kf-traditions__heading, .kf-news__heading, .kf-kichijoji__heading) {
	position: relative;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 6px;
}
.kf-front-page .kf-section-inner > :where(.kf-heading-icon-row, .kf-traditions__heading, .kf-news__heading, .kf-kichijoji__heading) > figure {
	position: absolute;
	top: 50%;
	left: -124px; /* 帯のまん中（間 36 ＋ 帯の半分 62 ＋ 絵の半分 26） */
	flex: 0 0 42px;
	width: 52px;
	height: 52px;
	margin: 0;
	transform: translateY(-50%);
}
.kf-front-page .kf-section-inner > :where(.kf-heading-icon-row, .kf-traditions__heading, .kf-news__heading, .kf-kichijoji__heading) > figure img { display: block; width: 100%; height: 100%; object-fit: contain; }
.kf-front-page .kf-section-inner .kf-heading-icon--teachers { flex-basis: 48px; width: 54px; }
.kf-front-page .kf-section-inner .kf-traditions__book { left: -125px; flex-basis: 46px; width: 54px; height: auto; } /* 本の絵だけ 54px、高さは絵のまま */
.kf-front-page .kf-section-inner .kf-traditions__book img { height: auto; object-fit: fill; }
.kf-front-page .kf-section-inner .kf-news__brush { flex-basis: 38px; }
.kf-front-page .kf-section-inner .kf-kichijoji__tea-motif { flex-basis: 46px; }
.kf-section-title { margin: 0; font-size: var(--fs-23); font-weight: 500; line-height: 1.4; letter-spacing: 0.06em; }

/* 英語の小さな題：帯の中、絵の下 */
.kf-front-page .kf-section-inner > .kf-section-kicker {
	position: absolute;
	top: var(--kicker-top);
	left: 8px;
	width: calc(var(--rail) - 16px);
	margin: 0 !important; /* WordPress が段落の上に付ける間を消す */
	font-size: var(--fs-12);
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-align: center;
	word-break: keep-all;
	overflow-wrap: normal;
	color: var(--bronze);
}
.kf-classes__inner { --rail-color: rgba(238, 227, 206, 0.56); --kicker-top: 110px; --kicker-left: 48px; }
.kf-teachers__inner { --rail-color: rgba(220, 211, 193, 0.52); --kicker-top: 132px; --kicker-left: 54px; }
.kf-traditions__inner { --rail-color: rgba(232, 219, 195, 0.56); --kicker-top: 131px; --kicker-left: 46px; }
.kf-news__inner { --rail-color: rgba(232, 219, 195, 0.52); --kicker-top: 126px; --kicker-left: 50px; }
.kf-kichijoji__inner { --rail-color: rgba(238, 227, 206, 0.54); --kicker-top: 125px; --kicker-left: 50px; }

/* 「〜を読む →」の小さなリンク */
.kf-reference-link { margin: 13px 0 0; font-size: var(--fs-14); line-height: 1.6; }
.kf-reference-link a { display: inline-block; }

/* --- 一番上の大きな写真 --- */
.kf-hero { min-height: 640px; }
.kf-hero .wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; }
.kf-front-page .kf-hero__content { width: min(var(--band), 100% - 50px); margin-inline: auto; padding-inline: var(--band-pad); }
.kf-hero__content > * { margin-inline: 0 !important; } /* WordPress が中央に寄せるのを止める */
.kf-hero__title { max-width: 620px; margin: 0 0 8px; font-size: var(--fs-36); font-weight: 400; line-height: 1.3; letter-spacing: 0.04em; }
.kf-hero__lead { margin: 0 0 22px; font-weight: 500; line-height: 1.6; letter-spacing: 0.05em; }
.kf-hero__actions { margin: 0; }
.kf-hero__actions .wp-block-button__link {
	min-width: 202px;
	min-height: 46px;
	padding: 0.72rem 1.35rem;
	border-color: var(--stone);
	background: var(--stone);
	font-size: var(--fs-14);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.07em;
}
.kf-hero__actions .wp-block-button__link::after { content: "›"; margin-left: 13px; font-size: 1.05em; font-weight: 400; line-height: 1; color: rgba(255, 255, 255, 0.82); }
.kf-hero__actions .wp-block-button__link:hover { border-color: var(--bronze-soft); background: color-mix(in srgb, var(--bronze-bright) 16%, var(--paper-white)); color: var(--ink); }
.kf-hero__actions .wp-block-button__link:hover::after { color: var(--bronze); }
.kf-hero__actions .kf-button--light .wp-block-button__link:focus-visible { color: var(--white); }

/* --- 三つの要点（駅・曜日・初心者） --- */
.kf-front-page .kf-hero-facts { padding: 0 0 38px; background: var(--paper) var(--wallpaper) center top / 320px 320px; }
.kf-front-page .kf-hero-facts__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	width: min(var(--page), 100% - 50px);
	max-width: var(--page);
	margin: 0 auto !important; /* WordPress の左右の決まりより強く */
	border-inline: 1px solid rgba(161, 132, 67, 0.27);
	border-right-color: rgba(98, 119, 92, 0.28);
	background: linear-gradient(102deg, rgba(250, 245, 235, 0.96), rgba(248, 245, 238, 0.97) 50%, rgba(240, 243, 234, 0.96));
}
.kf-hero-facts__grid::after {
	content: "";
	position: absolute;
	z-index: 2;
	inset: auto 0 0;
	height: 1px;
	background: linear-gradient(90deg, rgba(161, 132, 67, 0.28), rgba(145, 126, 82, 0.18) 54%, rgba(89, 112, 84, 0.3));
	pointer-events: none;
}
.kf-hero-fact { position: relative; min-width: 0; padding: 25px 24px 24px; text-align: center; }
.kf-hero-fact + .kf-hero-fact::before {
	content: "";
	position: absolute;
	inset: 22px auto 22px 0;
	width: 1px;
	background: linear-gradient(transparent, rgba(151, 130, 86, 0.27) 24%, rgba(151, 130, 86, 0.27) 76%, transparent);
}
.kf-hero-fact__main { margin: 0; font-weight: 600; line-height: 1.55; letter-spacing: 0.055em; }
.kf-hero-fact__sub { margin: 5px 0 0; font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.04em; color: var(--ink-soft); }

/* --- クラス紹介 --- */
.kf-front-page .kf-classes { border-top: 1px solid rgba(161, 132, 67, 0.12); background: var(--paper-classes); }
/* うしろの二枚：左右の端だけに出る和紙の柄と、上下を薄くした机の絵 */
.kf-front-page :is(.kf-classes, .kf-traditions)::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	background: var(--wallpaper) center top / 320px 320px;
	mask-image: linear-gradient(90deg, #000, transparent 15%, transparent 85%, #000);
	opacity: 0.24;
	pointer-events: none;
}
.kf-front-page .kf-classes::after {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	background: linear-gradient(rgba(248, 244, 236, 0.2), rgba(248, 244, 236, 0.68)), url("../images/background-paper-table-v1-web.webp") center / cover no-repeat;
	mask-image: linear-gradient(transparent, #000 15%, #000 82%, transparent);
	opacity: 0.31;
	pointer-events: none;
}
.kf-front-page .kf-classes__inner { width: min(var(--page), 100% - 50px); } /* クラス紹介だけ、箱が広い */
.kf-classes__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 30px; }

.kf-class-card {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: rgba(255, 253, 248, 0.82);
	box-shadow: inset 0 1px 0 rgba(161, 132, 67, 0.24);
}
.kf-class-card::before { /* 上の端の短い色の線。左の箱は金、右の箱は緑がかった金 */
	content: "";
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	width: 34%;
	height: 2px;
	background: linear-gradient(90deg, #a18443, transparent);
	opacity: 0.72;
	pointer-events: none;
}
.kf-class-card:nth-child(2)::before { right: 0; left: auto; background: linear-gradient(270deg, color-mix(in srgb, rgba(106, 122, 101, 0.22) 72%, #a18443), transparent); }
.kf-class-card__photo { position: relative; margin: 0; overflow: hidden; }
.kf-class-card__photo, .kf-class-card__photo a, .kf-class-card__photo img { display: block; width: 100%; }
.kf-class-card__photo img { height: 185px; object-fit: cover; transition: transform 0.26s; }
.kf-class-card__photo a:hover img { transform: scale(1.015); }
.kf-class-card__photo::after {
	content: "このクラスを見る　↗";
	position: absolute;
	right: 0;
	bottom: 0;
	padding: 9px 14px;
	background: var(--stone);
	font-size: var(--fs-12);
	letter-spacing: 0.08em;
	color: var(--white);
	pointer-events: none;
}
.kf-class-card__photo--course::after { content: "このコースを見る　↗"; }

.kf-class-card__head { padding: 20px 22px; background: var(--paper-card-head); }
.kf-class-card__reading { margin: 0; font-size: var(--fs-12); line-height: 1.2; letter-spacing: 0.06em; color: var(--ink-soft); }
.kf-class-card__name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin: 4px 0 0; font-size: var(--fs-19); }
.kf-class-card__en { font-size: var(--fs-12); font-weight: 400; line-height: 1.4; letter-spacing: 0.15em; color: var(--bronze); }

.kf-class-card__body { padding: 19px 22px; }
.kf-class-card__body > p:first-child { margin: 0 0 16px; }
.kf-class-card__note { display: inline-block; margin: 2px 0 0; padding: 4px 10px; border-radius: 20px; background: #f1eadf; font-size: var(--fs-12); line-height: 1.5; color: var(--bronze); }
.kf-class-card__info { margin: 18px 0 0; padding-top: 15px; border-top: 1px solid var(--line); }
.kf-class-card__info table { width: 100%; border: 0; border-collapse: collapse; font-size: var(--fs-14); line-height: 1.7; }
.kf-class-card__info :is(th, td) { padding: 4px 0; border: 0; text-align: left; vertical-align: top; }
.kf-class-card__info th { width: 58px; font-size: var(--fs-12); font-weight: 600; letter-spacing: 0.05em; color: var(--bronze); }
.kf-class-card__body > .kf-reference-link { text-align: right; }

.kf-classes__common { gap: 12px 26px; margin-top: 24px; font-size: var(--fs-14); color: var(--ink-soft); }
.kf-classes__common p { margin: 0; }
.kf-classes__common strong { color: var(--ink); }

/* --- 動画の便り（緑の帯） --- */
.kf-video-letter { background: var(--sage); color: var(--white); }
.kf-front-page .kf-video-letter__inner { width: min(var(--band), 100%); margin-inline: auto; padding: 72px var(--band-pad); }
.kf-video-letter__grid { display: grid; grid-template-columns: minmax(560px, 1.35fr) minmax(280px, 0.65fr); align-items: center; gap: 32px; }
.kf-video-letter__player { /* まわりに 12px 離した細い枠 */
	aspect-ratio: 16 / 9;
	margin: 0;
	overflow: hidden;
	background: #242824;
	outline: 1px solid rgba(255, 255, 255, 0.18);
	outline-offset: 12px;
}
.kf-video-letter__player iframe { display: block; width: 100%; height: 100%; border: 0; }
.kf-yt-facade__link { position: relative; display: block; width: 100%; height: 100%; }
.kf-yt-facade__thumb { display: block; width: 100%; height: 100%; object-fit: cover; }
.kf-yt-facade__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 68px;
	height: 48px;
	border-radius: 14px;
	background: rgba(33, 33, 33, 0.8);
	transform: translate(-50%, -50%);
	transition: background-color 0.2s;
}
.kf-yt-facade__play::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	border-style: solid;
	border-width: 11px 0 11px 19px;
	border-color: transparent transparent transparent var(--white);
	transform: translate(-50%, -50%);
}
.kf-yt-facade__link:is(:hover, :focus-visible) .kf-yt-facade__play { background: #f00; }

.kf-video-letter__copy > * { margin-inline: 0; }
.kf-video-letter__kicker { margin: 0 0 5px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.17em; color: #ded3bf; }
.kf-video-letter__title { margin: 0 0 10px; font-size: var(--fs-23); line-height: 1.55; color: var(--white); }
.kf-video-letter__title span { display: block; margin-bottom: 3px; font-size: var(--fs-14); font-weight: 400; letter-spacing: 0.08em; }
.kf-video-letter__description { margin: 0 0 10px; font-size: var(--fs-14); line-height: 1.75; color: rgba(255, 255, 255, 0.82); }
.kf-video-letter__episode { margin: 0 0 12px; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, 0.24); font-size: var(--fs-14); line-height: 1.75; color: var(--white); }
.kf-video-letter__copy .wp-block-buttons { justify-content: center; }
.kf-video-letter__copy .wp-block-button__link { padding: 0.55rem 1.25rem; font-size: var(--fs-12); line-height: 1.5; }

/* --- 功夫コミック --- */
.kf-comic { background: linear-gradient(90deg, rgba(161, 132, 67, 0.043), transparent 26%, transparent 74%, rgba(106, 122, 101, 0.04)), var(--paper-comic); }
.kf-front-page .kf-comic__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 250px);
	align-items: center;
	gap: clamp(42px, 5vw, 66px);
	width: min(var(--band), 100% - 50px);
	margin-inline: auto;
	padding: clamp(50px, 5vw, 58px) var(--band-pad);
}
.kf-comic__copy { max-width: 540px; }
.kf-comic__kicker { margin: 0 0 11px; font-size: var(--fs-12); letter-spacing: 0.2em; color: var(--bronze); }
.kf-comic__title { margin: 0; font-size: var(--fs-28); font-weight: 600; line-height: 1.5; letter-spacing: 0.04em; }
.kf-comic__description { max-width: 35em; margin: 17px 0 0; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-comic__actions { justify-content: flex-start; margin-top: 22px; }
.kf-comic__actions .wp-block-button__link { min-height: 40px; padding: 0.56rem 1.18rem; font-size: var(--fs-14); }
.kf-comic__work { width: 100%; max-width: 250px; margin: 0 0 0 auto; }
.kf-comic__cover { aspect-ratio: 1; margin: 0; overflow: hidden; }
.kf-comic__cover a, .kf-comic__cover img { display: block; width: 100%; height: 100%; }
.kf-comic__cover img { object-fit: cover; }
.kf-comic__credit { margin: 9px 0 0; font-size: var(--fs-12); line-height: 1.75; color: var(--ink-soft); }

/* --- 教える人 --- */
.kf-front-page .kf-teachers { background: var(--paper-teachers); }
.kf-front-page .kf-teachers::before { /* 右の岩と竹 */
	content: "";
	position: absolute;
	z-index: 0;
	top: 108px;
	right: max(-84px, -680px + 50vw);
	width: min(430px, 35vw);
	height: 670px;
	background: url("../images/motif-taihu-rock-bamboo-v1-web.webp") right center / contain no-repeat;
	filter: saturate(0.52) sepia(0.08);
	mask-image: linear-gradient(transparent, #000 13%, #000 76%, transparent);
	opacity: 0.11;
	pointer-events: none;
}
.kf-front-page .kf-teachers__inner { padding-top: 78px; padding-bottom: 86px; }
.kf-teachers__spread { display: grid; grid-template-columns: 1fr; }

.kf-teacher {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(190px, 0.58fr) minmax(0, 1.42fr);
	align-items: center;
	gap: clamp(32px, 5vw, 66px);
	min-width: 0;
	min-height: 390px;
	padding: 42px 0;
}
.kf-teacher + .kf-teacher::before { content: ""; position: absolute; inset: 0 0 auto; height: 1px; background: var(--rail-line); }
.kf-teacher:nth-child(2n) { grid-template-columns: minmax(0, 1.42fr) minmax(190px, 0.58fr); }
.kf-teacher:nth-child(2n) .kf-teacher__portrait { grid-area: 1 / 2; }
.kf-teacher:nth-child(2n) .kf-teacher__body { grid-area: 1 / 1; width: 100%; justify-self: end; }

.kf-teacher__portrait { position: relative; width: 100%; max-width: 260px; aspect-ratio: 4 / 5; margin: 0; }
.kf-teacher__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.82) contrast(0.98); }

.kf-teacher__body { min-width: 0; }
.kf-teacher__body > * { margin-inline: 0; }
.kf-teacher__name { margin: 0 0 6px; font-size: var(--fs-23); line-height: 1.4; letter-spacing: 0.06em; }
.kf-teacher__name rt { font-size: var(--fs-12); font-weight: 400; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-teacher__role { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.12em; color: var(--bronze); }
.kf-teacher__role::after { content: ""; width: min(112px, 24vw); height: 1px; background: color-mix(in srgb, var(--bronze-soft) 72%, transparent); }
.kf-teacher__body > p:not(.kf-teacher__role) { max-width: 590px; margin: 0 0 13px; font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.kf-teacher__body > .kf-teacher__signature { font-weight: 600; letter-spacing: 0.055em; }
.kf-teacher__links { display: flex; flex-wrap: wrap; gap: 6px 0; margin-top: 15px; }
.kf-teacher__links p { margin: 0; padding: 0 12px; border-left: 1px solid var(--line-strong); font-size: var(--fs-12); line-height: 1.6; }
.kf-teacher__links p:first-child { padding-left: 0; border-left: 0; }
.kf-teacher__links a::after { content: "  ›"; display: inline-block; color: var(--bronze); }

.kf-front-page .kf-teachers__note {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	align-items: baseline;
	column-gap: 24px;
	width: 100%;
	margin: 26px 0 0;
	padding: 17px 22px 18px;
	border-top: 1px solid rgba(161, 132, 67, 0.42);
	border-bottom: 1px solid rgba(161, 132, 67, 0.2);
	background: rgba(255, 253, 248, 0.42);
}
.kf-teachers__note p { margin: 0; font-size: var(--fs-14); line-height: 1.8; color: var(--ink-soft); }
.kf-teachers__note .kf-teachers__note-label { font-weight: 600; letter-spacing: 0.14em; white-space: nowrap; }

/* --- 武術の歴史を知る --- */
.kf-front-page .kf-traditions { background: var(--paper-traditions); }
.kf-front-page .kf-traditions::before { /* うしろの墨の庭。上は薄く消える */
	background: linear-gradient(rgba(246, 240, 229, 0.9), rgba(246, 240, 229, 0.35) 38%, rgba(246, 240, 229, 0.72)) center / cover, url("../images/background-ink-garden-title-v1-web.webp") center bottom / cover;
	mask-image: linear-gradient(transparent, #000 18%, #000);
	opacity: 0.56;
}
.kf-front-page .kf-traditions::after { /* 下の雲の飾り */
	content: "";
	position: absolute;
	z-index: 0;
	inset: auto 0 0;
	height: 174px;
	background: url("../images/ornament-cloud-ruyi-divider-v1-web.webp") center / min(520px, 46vw) auto no-repeat, linear-gradient(transparent, rgba(45, 40, 34, 0.07)) center;
	mask-image: linear-gradient(90deg, transparent, #000 24%, #000 76%, transparent);
	opacity: 0.64;
	pointer-events: none;
}
.kf-front-page .kf-traditions__inner { padding-top: 76px; padding-bottom: 210px; }
.kf-traditions__grid { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4vw, 48px); margin-top: 42px; }
/* 箱は写真 330px と文の二段。左の箱は左に、右の箱は右に 24px の空きの列がある */
.kf-tradition {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	grid-template-rows: 330px 1fr;
	align-content: start;
	column-gap: 15px;
	min-width: 0;
	background: rgba(255, 253, 248, 0.72);
	box-shadow: inset 0 1px 0 rgba(161, 132, 67, 0.22);
}
.kf-tradition > * { grid-column: 2; }
.kf-tradition:last-child { grid-template-columns: minmax(0, 1fr) 24px; }
.kf-tradition:last-child > * { grid-column: 1; }
.kf-tradition__photo { position: relative; grid-row: 1; width: 100%; height: 100%; margin: 0; overflow: hidden; }
.kf-tradition__photo a, .kf-tradition__photo img { display: block; width: 100%; height: 100%; }
.kf-tradition__photo img { aspect-ratio: 1200 / 630; object-fit: cover; filter: saturate(0.72) brightness(0.88); transition: opacity 0.16s; }
.kf-tradition__photo a:hover img { opacity: 0.88; }
.kf-tradition__body { position: relative; grid-row: 2; padding: 30px 34px 34px; background: linear-gradient(rgba(255, 253, 248, 0.18), rgba(255, 253, 248, 0.48)); }
.kf-tradition__origin { margin: 0 0 16px; font-size: var(--fs-12); letter-spacing: 0.15em; color: var(--bronze); }
.kf-tradition__title { margin: 0; font-size: var(--fs-28); }
.kf-tradition__en { width: 100%; margin: 5px 0 19px; padding-top: 3px; font-size: var(--fs-12); line-height: 1.35; letter-spacing: 0.16em; color: var(--bronze); }
.kf-tradition__glimpse { min-height: 3.8em; margin: 0 0 22px; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }

/* --- 留学記（濃い帯） --- */
.kf-front-page .kf-memoir { min-height: 500px; background: var(--night); color: var(--white); }
.kf-memoir::after { /* 写真の上の膜。左が濃い */
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient(90deg, rgba(25, 31, 27, 0.94), rgba(25, 31, 27, 0.78) 43%, rgba(25, 31, 27, 0.34) 72%, rgba(25, 31, 27, 0.08));
	pointer-events: none;
}
.kf-memoir__image { position: absolute; z-index: 0; inset: 0; width: 100%; max-width: none; height: 100%; margin: 0; }
.kf-memoir__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; filter: brightness(0.82) saturate(0.84); }
.kf-front-page .kf-memoir__content {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 166px minmax(0, 650px);
	grid-template-rows: auto auto auto;
	align-content: center;
	column-gap: 42px;
	width: min(var(--band), 100%);
	min-height: 500px;
	margin-inline: auto;
	padding: 70px var(--band-pad);
}
.kf-memoir__content > * { margin-inline: 0; }
.kf-memoir__kicker {
	grid-area: 1 / 1 / span 3;
	align-self: stretch;
	margin: 0;
	padding: 8px 26px 0 0;
	border-right: 1px solid rgba(222, 195, 139, 0.66);
	font-size: var(--fs-12);
	line-height: 1.8;
	letter-spacing: 0.15em;
	color: #e5d6bb;
}
.kf-memoir__title { grid-area: 1 / 2; max-width: 650px; margin: 0 0 7px; font-size: var(--fs-28); line-height: 1.55; color: var(--white); }
.kf-memoir__lead { grid-area: 2 / 2; max-width: 640px; margin: 0 0 23px; line-height: 2.05; color: rgba(255, 255, 255, 0.82); }
.kf-memoir__content > .wp-block-buttons { grid-area: 3 / 2; }

/* --- 最新ニュース --- */
.kf-front-page .kf-news { background: linear-gradient(rgba(69, 72, 63, 0.1), transparent 34px), var(--paper-news); }
.kf-front-page .kf-news::before { /* 上の端の薄い色 */
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0 0 auto;
	height: 86px;
	background: linear-gradient(90deg, rgba(106, 122, 101, 0.13), rgba(161, 132, 67, 0.06) 48%, transparent 82%);
	mask-image: linear-gradient(#000, transparent);
	pointer-events: none;
}
.kf-front-page .kf-news__inner { padding-top: 72px; padding-bottom: 68px; }
.kf-news-list { position: relative; margin: 30px 0 0; padding: 0; border-top: 1px solid var(--line-strong); list-style: none; }
.kf-news-item { display: grid; grid-template-columns: 118px 100px minmax(0, 1fr); align-items: baseline; gap: 18px; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line); }
.kf-news-item :is(.kf-news-item__date, .kf-news-item__category, .kf-news-item__title) { margin: 0; }
.kf-news-item__date { font-size: var(--fs-12); line-height: 1.6; letter-spacing: 0.03em; color: var(--bronze); }
.kf-news-item__category { font-size: var(--fs-12); line-height: 1.6; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-news-item__category a { color: inherit; }
.kf-news-item__title { font-size: var(--fs-14); font-weight: 600; line-height: 1.7; color: var(--ink); }
.kf-front-page .site-main :is(.kf-news-item__title, .kf-kichijoji-item__title) a { color: var(--ink); transition: color 0.16s; }
.kf-front-page .site-main :is(.kf-news-item__title, .kf-kichijoji-item__title) a:hover { color: var(--bronze); }

/* --- 吉祥寺カンフーライフ --- */
.kf-front-page .kf-kichijoji { background: linear-gradient(90deg, rgba(161, 132, 67, 0.035), transparent 36%, rgba(106, 122, 101, 0.035)), var(--paper-kichijoji); }
.kf-front-page .kf-kichijoji__inner { padding-top: 70px; padding-bottom: 76px; border-top: 1px solid var(--line); }
.kf-kichijoji__lead { max-width: none; margin: 20px 0 0; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-kichijoji__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin-top: 30px; }
.kf-kichijoji-item { position: relative; min-width: 0; margin: 0; }
.kf-kichijoji-item::before { /* 上の端の短い色の線 */
	content: "";
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	width: 54%;
	height: 2px;
	background: linear-gradient(90deg, rgba(153, 116, 55, 0.78), transparent);
	opacity: 0.78;
	pointer-events: none;
}
.kf-kichijoji-item:nth-child(2)::before { background: linear-gradient(90deg, rgba(78, 107, 77, 0.7), transparent); }
.kf-kichijoji-item__image { position: relative; isolation: isolate; margin: 0; background: var(--line); }
.kf-kichijoji-item__image::before { /* 写真のうしろに 10px ずらした色の板 */
	content: "";
	position: absolute;
	z-index: -1;
	inset: 10px -10px -10px 10px;
	background: rgba(170, 137, 78, 0.15);
	pointer-events: none;
}
.kf-kichijoji-item:nth-child(2) .kf-kichijoji-item__image::before { inset: 10px 10px -10px -10px; background: rgba(91, 118, 86, 0.14); }
.kf-kichijoji-item__image a, .kf-kichijoji-item__image img { display: block; width: 100%; }
.kf-kichijoji-item__image img { aspect-ratio: 1.9 / 1; object-fit: cover; filter: saturate(0.82) contrast(0.98); transition: filter 0.18s; }
.kf-kichijoji-item__image a:hover img { filter: brightness(0.94) saturate(0.9); }
.kf-kichijoji-item__body { position: relative; margin: 0; padding: 22px 0 0; }
.kf-kichijoji-item__body > * { margin-inline: 0; }
.kf-kichijoji-item__title { margin: 0 0 10px; font-size: var(--fs-19); line-height: 1.5; }
.kf-kichijoji-item__body > p:not(.kf-reference-link) { margin: 0; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-kichijoji-item .kf-reference-link { margin-top: 16px; }

/* --- 体験受講について（締めの帯） --- */
.kf-front-page .kf-final-trial { background: linear-gradient(90deg, rgba(161, 132, 67, 0.07), transparent 27%, transparent 73%, rgba(106, 122, 101, 0.06)), var(--paper-trial); }
.kf-front-page .kf-final-trial__inner { position: relative; width: min(916px, 100% - 50px); margin-inline: auto; padding: 70px 36px 72px; }
.kf-final-trial__kicker { margin: 0 0 6px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.18em; text-align: center; color: var(--bronze); }
.kf-final-trial__title { margin: 0 0 9px; font-size: var(--fs-23); letter-spacing: 0.08em; text-align: center; }
.kf-final-trial__description { max-width: 700px; margin: 0 auto; font-size: var(--fs-14); line-height: 1.9; text-align: center; color: var(--ink-soft); }
.kf-final-trial__actions { justify-content: center; gap: 12px; margin-top: 22px; }

/* --- 783〜1000px：動画の便りだけ、動画を上・文を下に（どちらも 680px まで） --- */
@media (min-width: 783px) and (max-width: 1000px) {
	.kf-video-letter__grid { grid-template-columns: 1fr; gap: 28px; }
	.kf-video-letter__player, .kf-video-letter__copy { width: min(680px, 100%); margin-inline: auto; }
}

/* --- 782px まで：左の帯をやめて一列に。左右の余白は 34px --- */
@media (max-width: 782px) {
	.kf-front-page .site-main > .alignfull:not(.kf-hero) { padding-inline: 0; } /* 大きな写真だけは左右の余白 1em を残す */

	.kf-front-page .kf-section-inner { width: 100%; padding: 52px 34px; background: none; }
	.kf-front-page .kf-section-inner > :where(.kf-heading-icon-row, .kf-traditions__heading, .kf-news__heading, .kf-kichijoji__heading) > figure { position: static; width: 42px; height: 42px; transform: none; }
	.kf-front-page .kf-section-inner .kf-heading-icon--teachers { width: 48px; height: 46px; }
	.kf-front-page .kf-section-inner .kf-traditions__book { width: 42px; height: 42px; }
	.kf-front-page .kf-section-inner :is(.kf-news__brush, .kf-kichijoji__tea-motif) { flex: 0 0 44px; width: 44px; height: 44px; }
	.kf-front-page .kf-section-inner > .kf-section-kicker { position: static; width: auto; margin: 7px 0 0 var(--kicker-left) !important; text-align: left; }

	.kf-hero { min-height: 460px !important; } /* 中身に書かれた 640px より小さく */
	.kf-hero .wp-block-cover__image-background { object-position: 36% 50% !important; }
	.kf-front-page .kf-hero__content { width: calc(100% - 68px); padding-inline: 0; }
	.kf-hero__title { font-size: var(--fs-28); }

	.kf-front-page .kf-hero-facts { padding-bottom: 27px; }
	.kf-front-page .kf-hero-facts__grid { grid-template-columns: 1fr; width: calc(100% - 68px); }
	.kf-hero-fact { padding: 16px 18px; }
	.kf-hero-fact:first-child { border-top: 2px solid rgba(161, 132, 67, 0.36); }
	.kf-hero-fact + .kf-hero-fact::before {
		inset: 0 18px auto;
		width: auto;
		height: 1px;
		background: linear-gradient(90deg, transparent, rgba(151, 130, 86, 0.32) 20%, rgba(151, 130, 86, 0.32) 80%, transparent);
	}
	.kf-hero-fact__main { font-size: var(--fs-14); letter-spacing: 0.06em; }
	.kf-hero-fact__sub { margin-top: 6px; line-height: 1.5; }

	.kf-front-page :is(.kf-classes, .kf-traditions)::before { mask-image: linear-gradient(#000, transparent 120px); opacity: 0.13; }
	.kf-front-page .kf-classes::after { opacity: 0.24; }
	.kf-front-page .kf-classes__inner { width: 100%; padding: 58px 34px 56px; }
	.kf-classes__grid { grid-template-columns: 1fr; gap: 24px; }
	.kf-classes__common { display: grid; gap: 10px; }

	.kf-front-page .kf-video-letter__inner { width: 100%; padding: 48px 34px; }
	.kf-video-letter__grid { grid-template-columns: 1fr; gap: 28px; }

	.kf-front-page .kf-comic__inner { grid-template-columns: 1fr; gap: 31px; width: 100%; padding: 50px 34px 54px; }
	.kf-comic__copy { max-width: none; }
	.kf-comic__description { line-height: 1.95; }
	.kf-comic__copy .kf-comic__actions { justify-content: center; }
	.kf-comic__work { max-width: none; margin-inline: auto; }
	.kf-comic__cover { width: min(250px, 85%); margin-inline: auto; }

	.kf-front-page .kf-teachers::before { top: 160px; right: -82px; width: 250px; height: 540px; opacity: 0.066; }
	.kf-front-page .kf-teachers__inner { padding: 38px 34px 40px; }
	.kf-teacher, .kf-teacher:nth-child(2n) { grid-template-columns: 1fr; gap: 26px; min-height: 0; padding: 32px 0; }
	.kf-teacher:nth-child(2n) :is(.kf-teacher__portrait, .kf-teacher__body) { grid-area: auto / 1; }
	.kf-teacher__portrait { width: min(210px, 68vw); margin-inline: auto; }
	.kf-front-page .kf-teachers__note { grid-template-columns: 1fr; row-gap: 6px; margin-top: 20px; padding: 15px 16px 16px; }

	.kf-front-page .kf-traditions::before { background-size: auto, auto 88%; opacity: 0.45; }
	.kf-front-page .kf-traditions::after { bottom: 15px; height: 114px; background-size: min(340px, 80vw) auto, auto; opacity: 0.54; }
	.kf-front-page .kf-traditions__inner { padding: 38px 34px 144px; }
	.kf-traditions__grid { grid-template-columns: 1fr; }
	.kf-tradition { grid-template-rows: 240px 1fr; box-shadow: none; }
	.kf-tradition__body { padding: 26px 24px 29px; }
	.kf-tradition__title { font-size: var(--fs-23); }
	.kf-tradition__en { width: auto; padding: 0; }
	.kf-tradition:last-child .kf-tradition__en { margin-bottom: 14px; }
	.kf-tradition__glimpse { min-height: 0; }

	.kf-front-page .kf-memoir { min-height: 430px; }
	.kf-front-page .kf-memoir__content { display: block; width: 100%; min-height: 430px; padding-inline: 34px; }
	.kf-memoir__kicker { margin: 0 0 18px; padding: 0 0 12px; border-right: 0; border-bottom: 1px solid rgba(222, 195, 139, 0.44); }
	.kf-memoir__title { font-size: var(--fs-23); }

	/* ニュースと吉祥寺は、上の端に 12px の色の帯 */
	.kf-front-page :is(.kf-news__inner, .kf-kichijoji__inner) { background: linear-gradient(90deg, var(--rail-color), transparent 72%) left top / 100% 12px no-repeat; }
	.kf-news-item { grid-template-columns: 100px minmax(0, 1fr); gap: 6px 16px; }
	.kf-news-item__title { grid-column: 1 / -1; }

	.kf-kichijoji__grid { grid-template-columns: 1fr; }
	.kf-kichijoji-item__image::before,
	.kf-kichijoji-item:nth-child(2) .kf-kichijoji-item__image::before { inset: 7px -7px -7px 7px; }

	.kf-front-page .kf-final-trial__inner { width: 100%; padding-inline: 34px; }
	.kf-front-page .kf-final-trial__actions { flex-direction: column; align-items: stretch; gap: 11px; width: min(260px, 100%); margin-inline: auto; }
	.kf-front-page .kf-final-trial__actions .wp-block-button__link { white-space: nowrap; }
}

/* --- 520px まで：スマホだけの小さな違い --- */
@media (max-width: 520px) {
	.kf-hero__actions .wp-block-button__link { min-width: 194px; }
	.kf-class-card__photo img { height: auto; aspect-ratio: 1200 / 630; }
	.kf-class-card__head, .kf-class-card__body { padding-inline: 18px; }
	.kf-front-page .kf-section-inner .kf-traditions__book { flex-basis: 40px; }
	.kf-kichijoji__heading .kf-section-title { font-size: var(--fs-19); }
}


/* 5. ページの共通の形（題の帯と紙） ------------------------------
   トップ以外のページに共通：濃い写真の帯に題、その下に紙。
   ここでは教室のご案内の 6 ページで確かめた。ほかの種類は書くときに確かめる */

.site-main { position: relative; min-height: 55vh; /* 短いページでもフッターが上がりすぎない */ background: var(--paper) var(--wallpaper) center top / 320px 320px; }

/* 題の帯。WordPress が style="min-height:280px" を直に書くので、高さだけ !important で値を差し替える */
.kf-page-title-scene {
	--title-h: 280px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--title-h) !important;
	padding: 56px 24px;
	overflow: hidden;
	background: var(--night) var(--kf-title-image) center / cover;
	color: var(--white);
}
.kf-page-title-scene .wp-block-cover__background { position: absolute; inset: 0; background: var(--night); opacity: 0.5; }
/* 薄い膜の帯（--title-veil を決めたページ）。WordPress の濃い膜は色が !important で替えられないので消し、帯の ::before に薄い膜を置く */
/* 当会についての四ページと規約の二ページは、前のテーマで膜が半分の濃さで出ていた（WordPress の「50%」の決まりが勝っていた）。同じ濃さにする（--title-veil-opacity） */
.kf-page-title-scene::before { content: ""; position: absolute; inset: 0; background: var(--title-veil, none); opacity: var(--title-veil-opacity, 1); }
.kf-page-title-scene:where(:is(.kf-page-context--about:not(.kf-about-hub-page), .kf-legal-page, .kf-faq-page, .kf-contact-page) *) .wp-block-cover__background { opacity: 0; }
.kf-page-title-scene .wp-block-cover__inner-container {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 760px);
	width: 100%;
	max-width: var(--page);
	margin-inline: auto;
	padding: 0;
}
.kf-page-title-scene .wp-block-cover__inner-container > * { width: 100%; } /* WordPress が左右の margin を auto（!important）にするので、幅を埋めて左に寄せる */
.kf-page-title-scene__eyebrow {
	font-family: Georgia, "Times New Roman", serif;
	font-size: var(--fs-12);
	line-height: 1.6;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.82);
}
.kf-page-title-scene__title {
	margin: 8px 0 10px;
	font-size: var(--fs-36);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.08em;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.32);
}

/* 紙の置き場：幅 1040px、左右の余白 40px */
.kf-page-layout { width: min(var(--band), 100% - 50px); /* 左右 25px は WP の既定の余白と同じ（前と同じ） */ margin: 48px auto 0; }
.kf-page-layout--sidebar { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; }
.kf-page-context--class .kf-page-context-sidebar { display: none; } /* 教室のページは右の欄を使わない */
.kf-page-article { position: relative; min-width: 0; padding: 0; } /* padding: 0 は WordPress の has-global-padding を消す */
.kf-page-article :where(h2, h3, h4) { scroll-margin-top: 110px; } /* 見出しへ飛んだ時、ヘッダーの下に少し間をあけて止まる */
/* 紙の中の初期値。:where で弱くしておき、部品ごとの決まりが勝つようにする */
:where(.kf-page-article) :where(h2, h3, h4, h5, strong, b, dt) { font-weight: 500; }
:where(.kf-page-article) :where(ol, dl, dd, h4, h5) { margin: 0; }
:where(.kf-page-article) :where(ol) { padding: 0; list-style: none; }
:where(.kf-page-article) :where(small) { display: block; }
:where(.kf-page-article) :where(mark) { background: transparent; }

/* 白い紙のページ（当会について、参考資料、会長のプロフィール、よくある質問、お問い合わせ、プライバシーポリシー、利用規約）。角の丸い白い紙に本文を置く */
:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile, .kf-faq-page, .kf-contact-page, .kf-legal-page) .kf-page-article { padding: 56px 62px; border: 1px solid rgba(221, 213, 199, 0.72); border-radius: 12px; background: var(--paper-white); }
:where(:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile, .kf-faq-page, .kf-contact-page, .kf-legal-page) .kf-page-article) :where(p, li) { line-height: 2; } /* :where で弱くし、部品の決まりが勝つようにする */
:where(:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile, .kf-faq-page, .kf-contact-page, .kf-legal-page) .kf-page-article) p { margin: 1em 0; } /* ブラウザの既定と同じ（前と同じ） */
:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile, .kf-faq-page, .kf-contact-page, .kf-legal-page) .kf-page-article :where(p:where(:not(.kf-inline)), li) > a:hover { color: var(--ink-soft); } /* 本文の中のリンクにマウスを乗せた色（前と同じ） */

/* 右の目次（当会についてのページと、便り・練習スポット・リューダの記事で共通）。画面を送っても付いてくる */
:is(.kf-page-context-sidebar, .kf-post-sidebar) { position: sticky; top: calc(var(--admin-bar) + var(--header-h) + 24px); max-height: calc(100vh - var(--admin-bar) - var(--header-h) - 48px); overflow-y: auto; }
.kf-post-sidebar { overscroll-behavior: contain; } /* 目次の中を端までスクロールしても、ページは動かさない */
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) { padding: 24px 24px 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-white); }
.kf-post-sidebar__panel + .kf-post-sidebar__panel { margin-top: 24px; }
:is(.kf-page-context-sidebar__panel > p, .kf-post-sidebar__eyebrow) { display: none; } /* 英語の小見出しは出さない */
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) h2 { position: relative; margin: 0 0 8px; padding: 0 0 12px; border-bottom: 1px solid var(--line); font-size: var(--fs-16); font-weight: 500; line-height: 1.6; letter-spacing: 0.06em; }
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) h2::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 40px; height: 1px; background: var(--bronze-bright); }
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) li { border-bottom: 1px solid #ece5d8; }
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) li:last-child { border-bottom: 0; }
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) li > a { display: block; padding: 10px; border-left: 2px solid transparent; font-size: var(--fs-14); line-height: 1.6; color: var(--ink); transition: color 0.16s, background-color 0.16s; }
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) li > a:is(:hover, :focus-visible) { color: var(--bronze); }
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) li > a:focus-visible { box-shadow: none; }
:is(.kf-page-context-sidebar__panel, .kf-post-sidebar__panel) li > a.is-current { border-left: 0; background: #f7f5ef; color: var(--ink); }

@media (max-width: 1000px) {
	.kf-page-title-scene { --title-h: 230px; }
	/* 右の目次は本文の下へ。記事では二つの箱を横に並べる */
	:is(.kf-page-context-sidebar, .kf-post-sidebar) { position: static; order: 2; max-height: none; overflow: visible; }
	.kf-post-sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
	.practice-sidebar { gap: 22px; } /* 練習スポットの右の目次は前から 22px */
	.kf-post-sidebar__panel + .kf-post-sidebar__panel { margin-top: 0; }
}
@media (max-width: 782px) {
	.kf-page-title-scene { --title-h: 190px; padding: 40px 20px; background-image: var(--kf-title-mobile-image, var(--kf-title-image)); }
	.kf-page-title-scene__title { font-size: var(--fs-28); }
	.kf-page-layout { width: min(var(--band), 100% - 50px); margin-top: 30px; }
	:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile, .kf-faq-page, .kf-contact-page, .kf-legal-page) .kf-page-article { padding: 38px 25px; }
	.kf-post-sidebar { display: block; }
	.kf-post-sidebar__panel + .kf-post-sidebar__panel { margin-top: 24px; }
	.practice-sidebar .kf-post-sidebar__panel + .kf-post-sidebar__panel { margin-top: 46px; } /* 練習スポットは前から 46px（22+24） */
}


/* 6. 教室のご案内 ---------------------------------------------
   6 ページ：入口（教室のご案内）、基礎クラス二つ（陳式・八卦掌）、中級二つ、五禽戯。
   並び：6-1 共通の部品 → 6-2 入口 → 6-3 基礎クラス → 6-4 中級 → 6-5 五禽戯 → 画面幅 */

:root {
	--panel: #fffefb;            /* 中身の白い紙 */
	--class-green: #73896c;      /* 教室案内の緑（見出しの短い線） */
	--class-gold: #b79a5a;
	--wash-green: linear-gradient(145deg, #fffdf8, #edf3e8);
}

/* 6-1 共通の部品 */

/* 短い線つきの見出しの行（入口の各場面） */
.kf-class-selector__section-head {
	position: relative;
	margin-bottom: 28px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--line-strong);
}
.kf-class-selector__section-head::after { content: ""; position: absolute; bottom: -2px; left: 0; width: 92px; height: 3px; border-radius: 2px; background: var(--class-green); }

/* 左に絵のある見出し */
.kf-editorial-heading-with-icon {
	position: relative;
	min-height: 48px;
	padding-left: 58px;
	font-size: var(--fs-28);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.1em;
}
.kf-editorial-heading-with-icon::before { content: ""; position: absolute; top: 0; left: 0; width: 44px; height: 44px; background: var(--heading-icon) center / contain no-repeat; }
.kf-editorial-heading-with-icon--large::before { transform: scale(1.4); }
.kf-editorial-heading-with-icon--taichi { --heading-icon: url("../images/heading-icons/heading-taijitu-v1.png"); }
.kf-editorial-heading-with-icon--bagua { --heading-icon: url("../images/heading-icons/heading-bagua-v1.png"); }
.kf-editorial-heading-with-icon--class-guide { --heading-icon: url("../images/heading-icon-candidates/new/C18-access-signpost.png"); }

/* 読みがな（ふりがな） */
.kf-page-context--class rt { font-size: var(--fs-12); letter-spacing: 0.12em; color: var(--bronze); }


/* 指導する人の箱（基礎・中級・五禽戯で同じ形。うさぎ 11/9「一種類にしたい」）
   HTML は三つとも少し違うので、入れ物を display: contents で透かして、顔写真・役・名前・文・リンクを同じ升目に置く */
.kf-class-guide-instructors { margin: 42px 0 40px; }
.kf-class-guide-instructors h3,
.kf-intermediate__instructors h3 { margin-bottom: 0; padding-bottom: 13px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-19); line-height: 1.6; letter-spacing: 0.05em; }
.kf-class-guide-instructors__grid,
.kf-intermediate__instructor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.kf-class-guide-instructors__grid > article:only-child { grid-column: 1 / -1; width: min(620px, 100%); margin-inline: auto; }
.kf-class-guide-instructors__note,
.kf-intermediate__instructor-note { padding: 15px 18px 0; font-size: var(--fs-14); line-height: 1.8; text-align: center; color: var(--ink-soft); }

/* 一人分 */
.kf-class-guide-instructors article,
.kf-intermediate__instructor-grid article,
.kf-event-guide__item:has(.kf-person-summary) { display: grid; grid-template-columns: 84px 1fr; grid-auto-rows: auto; gap: 0 20px; align-items: start; padding: 24px 28px 24px 0; }
.kf-class-guide-instructors article + article,
.kf-intermediate__instructor-grid article + article { padding: 24px 0 24px 28px; border-left: 1px solid var(--line); }
.kf-event-guide__item:has(.kf-person-summary) { padding: 24px 30px 26px; } /* 五禽戯は升目の中なので左右も空ける */
.kf-class-guide-instructors__copy,
.kf-intermediate__instructor-grid article > div,
.kf-event-guide__item:has(.kf-person-summary) dd,
.kf-person-summary__copy { display: contents; }
.kf-class-guide-instructors__avatar,
.kf-intermediate__avatar { grid-column: 1; grid-row: 1 / span 4; display: block; width: 84px; height: 84px; overflow: hidden; border: 1px solid rgba(183, 154, 90, 0.42); border-radius: 50%; background: #f5f0e7; }
.kf-class-guide-instructors__avatar img,
.kf-intermediate__avatar img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.kf-class-guide-instructors__avatar:hover img,
.kf-intermediate__avatar:hover img { transform: scale(1.035); }
.kf-class-guide-instructors__copy > :where(.kf-inline) > span,
.kf-intermediate__instructor-grid article > div > :where(.kf-inline) > span,
.kf-event-guide__item:has(.kf-person-summary) dt { grid-column: 2; margin: 0; font-size: var(--fs-12); line-height: 1.8; letter-spacing: 0.12em; color: var(--bronze); }
.kf-class-guide-instructors__copy h4,
.kf-intermediate__instructor-grid h4,
.kf-person-summary strong { grid-column: 2; display: block; margin: 6px 0 9px; font-size: var(--fs-16); font-weight: 500; line-height: 1.45; letter-spacing: 0.05em; color: var(--ink); }
.kf-class-guide-instructors__copy p,
.kf-intermediate__instructor-grid p,
.kf-person-summary small { grid-column: 2; display: block; margin: 0 0 12px; font-size: var(--fs-14); line-height: 1.85; color: var(--ink-soft); }
.kf-class-guide-instructors__copy a,
.kf-intermediate__instructor-grid article > div > :where(.kf-inline) > a,
.kf-person-summary__copy a { grid-column: 2; display: inline-flex; align-items: center; gap: 8px; width: fit-content; margin: 0; font-size: var(--fs-12); font-weight: 400; line-height: 1.8; color: var(--bronze); }
.kf-class-guide-instructors__copy a:is(:hover, :focus-visible),
.kf-intermediate__instructor-grid article > div > :where(.kf-inline) > a:is(:hover, :focus-visible),
.kf-person-summary__copy a:is(:hover, :focus-visible) { color: var(--ink); }

/* 6-2 入口（教室のご案内） */

.kf-class-guide-index .kf-page-article { overflow: hidden; }

.kf-class-selector__route { margin-bottom: 76px; padding: 34px 36px 36px; border-radius: 18px; background: rgba(251, 249, 244, 0.78); }
.kf-class-selector__opening { position: relative; max-width: 780px; margin: 0 auto 42px; padding: 0 36px; text-align: center; }
.kf-class-selector__opening-mark { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 16px; }
.kf-class-selector__opening-mark img { width: 54px; height: 54px; object-fit: contain; }
.kf-class-selector__opening h2 {
	position: relative;
	margin-bottom: 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line-strong);
	font-size: var(--fs-36);
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0.1em;
}
.kf-class-selector__lead { max-width: 670px; margin-inline: auto; line-height: 2; text-align: left; color: var(--ink-soft); }

.kf-class-selector__doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.kf-class-selector__door {
	position: relative;
	display: grid;
	grid-template-rows: 220px 1fr;
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--white);
	color: inherit;
	transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.kf-class-selector__door:is(:hover, :focus-visible) { border-color: color-mix(in srgb, var(--class-green) 55%, var(--line)); box-shadow: 0 14px 30px rgba(62, 60, 50, 0.11); color: inherit; transform: translateY(-2px); }
.kf-class-selector__door:focus-visible { outline: 2px solid color-mix(in srgb, var(--class-green) 45%, transparent); outline-offset: 3px; }
.kf-class-selector__door > img { width: 100%; height: 220px; object-fit: cover; }
.kf-class-selector__door-copy { position: relative; display: grid; align-content: start; min-height: 162px; padding: 24px 26px 25px; background: var(--wash-green); }
.kf-class-selector__door-copy strong { margin-bottom: 7px; font-size: var(--fs-23); font-weight: 400; letter-spacing: 0.08em; }
.kf-class-selector__door-copy > span { font-size: var(--fs-14); line-height: 1.75; color: var(--ink-soft); }
.kf-class-selector__door-copy i { display: flex; align-items: center; gap: 10px; margin-top: 20px; font-size: var(--fs-14); font-style: normal; line-height: 1.75; color: var(--ink-soft); }

.kf-class-selector__choice-guide,
.kf-class-selector__discipline { padding: 34px 36px 36px; border-radius: 18px; background: var(--panel); }
.kf-class-selector__choice-guide { padding-bottom: 32px; }
.kf-class-selector__discipline { margin-top: 76px; }
.kf-class-selector__choice-guide, .kf-class-selector__discipline { scroll-margin-top: 100px; }
.kf-class-selector__choice-lead { max-width: 60em; line-height: 2; color: var(--ink-soft); }
.kf-class-selector__choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 26px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.kf-class-selector__choice-grid article { position: relative; overflow: hidden; padding: 30px 34px 31px; background: var(--wash-green); }
.kf-class-selector__choice-grid article::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--beast) right center / auto 100% no-repeat;
	opacity: 0.46;
	pointer-events: none;
}
.kf-class-selector__choice-grid article:first-child { --beast: url("../images/class-selector/tiger-ivory-wash-v1.png"); }
.kf-class-selector__choice-grid article + article { --beast: url("../images/class-selector/dragon-ivory-wash-v1.png"); border-left: 1px solid var(--line); }
:is(.kf-class-selector__choice-grid article, .kf-class-selector__choice-grid article > :where(.kf-inline)) > * { position: relative; }
.kf-class-selector__choice-grid h3 { margin-bottom: 13px; font-size: var(--fs-19); font-weight: 400; line-height: 1.55; letter-spacing: 0.08em; }
.kf-class-selector__beast-copy { display: block; margin: -3px 0 10px; font-size: var(--fs-14); font-weight: 500; line-height: 1.7; letter-spacing: 0.04em; color: var(--bronze); }
.kf-class-selector__choice-grid article > :where(.kf-inline) > span { display: block; font-size: var(--fs-14); line-height: 1.85; color: var(--ink-soft); }
.kf-class-selector__choice-grid article > :where(.kf-inline) > strong { display: block; margin-top: 10px; font-size: var(--fs-14); line-height: 1.85; color: var(--ink-soft); }
.kf-class-foundation { margin-top: 26px; padding: 0 28px; }
.kf-class-foundation h3 { margin: 33px 0 10px; font-size: var(--fs-14); line-height: 1.6; letter-spacing: 0.08em; color: var(--bronze); }
.kf-class-foundation__lead { margin-bottom: 7px; font-weight: 500; line-height: 1.95; }
.kf-class-foundation p + p { font-size: var(--fs-14); line-height: 1.95; color: var(--ink-soft); }

.kf-class-selector__discipline-intro { display: grid; gap: 10px; margin-bottom: 28px; }
.kf-class-selector__discipline-intro strong { line-height: 1.75; letter-spacing: 0.04em; color: var(--ink-soft); }
.kf-class-selector__discipline-intro strong span { display: inline-block; }
.kf-class-selector__discipline-intro > :where(.kf-inline) > span { font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }

.kf-course-venue { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: center; margin-bottom: 38px; }
.kf-course-venue img { width: 100%; height: 244px; object-fit: cover; }
.kf-course-venue > div { padding: 0 35px; }
.kf-course-venue__label { margin-bottom: 10px; font-size: var(--fs-12); line-height: 2; letter-spacing: 0.1em; color: var(--bronze); }
.kf-course-venue__title { margin-bottom: 16px; font-size: var(--fs-23); font-weight: 400; line-height: 1.65; letter-spacing: 0.04em; text-wrap: balance; }
.kf-course-venue__title span { display: inline-block; }
.kf-course-venue__note { max-width: 350px; font-size: var(--fs-14); line-height: 1.95; color: var(--ink-soft); }

.kf-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.kf-course-card {
	--card-accent: #5d745b;
	--card-line: #cfdbca;
	--card-tint: #e9f0e5;
	--card-hover: #dce8d6;
	--card-text: var(--ink-soft);
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 32px 34px 34px;
	border: 1px solid var(--card-line);
	border-radius: 18px;
	background: var(--panel);
}
.kf-course-card--next { --card-accent: #886b3e; --card-line: #e2d2b8; --card-tint: #f3eadb; --card-hover: #eadcc3; --card-text: var(--bronze); }
.kf-course-card__entry { margin-bottom: 12px; font-size: var(--fs-12); line-height: 1.7; letter-spacing: 0.06em; color: var(--card-text); }
.kf-course-card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 12px; margin-bottom: 20px; }
.kf-course-card__title { font-size: var(--fs-28); font-weight: 400; line-height: 1.5; letter-spacing: 0.08em; }
.kf-course-card__status { padding: 3px 10px; border-radius: var(--pill); background: var(--card-tint); font-size: var(--fs-12); line-height: 1.7; white-space: nowrap; color: var(--card-text); }
.kf-course-card__target { min-height: 68px; line-height: 1.95; letter-spacing: 0.035em; text-wrap: balance; color: var(--card-text); }
.kf-course-card__target span { display: inline-block; }
.kf-course-card__description { min-height: 60px; margin: 18px 0 25px; font-size: var(--fs-14); line-height: 1.95; text-wrap: pretty; color: var(--ink-soft); }
.kf-course-card__details { display: grid; gap: 14px; margin: auto 0 28px; padding-top: 20px; border-top: 1px solid var(--card-line); }
.kf-course-card__details > div { display: grid; grid-template-columns: 46px 1fr; gap: 16px; align-items: baseline; }
.kf-course-card__details dt { font-size: var(--fs-12); font-weight: 400; line-height: 1.8; letter-spacing: 0.1em; white-space: nowrap; color: var(--card-text); }
.kf-course-card__details dd { line-height: 1.85; }
.kf-course-card__fee { font-size: var(--fs-23); line-height: 1.5; letter-spacing: 0.025em; }
.kf-course-card__frequency { margin-left: 12px; font-size: var(--fs-12); line-height: 1.85; white-space: nowrap; color: var(--ink-soft); }
.kf-course-card .kf-sample-button { align-self: flex-start; border-color: var(--card-line); background: var(--card-tint); color: var(--card-text); }
.kf-course-card .kf-sample-button:is(:hover, :focus-visible) { border-color: var(--card-accent); background: var(--card-hover); }

.kf-class-selector__cta { margin: 78px 0 8px; padding: 34px 36px 40px; border-radius: 18px; background: var(--panel); text-align: center; }
/* 英字の小さなラベルは Georgia（教室のご案内の 6 ページに共通） */
.kf-class-selector__choice-grid article > p,
.kf-class-selector__section-head > p,
.kf-class-selector__discipline-intro > div > p,
.kf-class-selector__cta > p,
.kf-vertical-step__label,
.kf-intermediate__eyebrow,
.kf-intermediate__section-head p,
.kf-intermediate__eligibility > p:first-child,
.kf-intermediate__flow li > :where(.kf-inline) > span,
.kf-event-intro__eyebrow,
.kf-event-guide__note span,
.kf-wuqinxi-animals__header > div > p,
.kf-wuqinxi-animal p,
.kf-sample-media > div > p { font-family: Georgia, "Times New Roman", serif; }
.kf-course-card__time { white-space: nowrap; }
.kf-class-selector__cta > p { margin-bottom: 9px; font-size: var(--fs-12); line-height: 1.6; letter-spacing: 0.18em; color: var(--bronze); }
.kf-class-selector__cta-guide-name { display: block; max-width: 700px; margin: -2px auto 0; font-size: var(--fs-12); line-height: 1.7; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-class-selector__cta-guide { width: 168px; margin: 16px auto 18px; }
.kf-class-selector__cta h2 {
	position: relative;
	max-width: 700px;
	margin: 0 auto 15px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line-strong);
	font-size: var(--fs-28);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.1em;
}
.kf-class-selector__cta h2 span { display: inline-block; }
:is(.kf-class-selector__cta, .kf-class-selector__cta > :where(.kf-inline)) > span { text-wrap: balance; }
.kf-class-selector__cta h2 + :where(.kf-inline) > span { display: block; max-width: 700px; margin-inline: auto; font-size: var(--fs-14); line-height: 1.9; text-wrap: balance; color: var(--ink-soft); }
.kf-class-selector__cta .swell-block-button { max-width: 400px; margin: 36px auto 8px; }

/* 6-3 基礎クラス（陳式太極拳・程派八卦掌） */

.kf-class-detail-page .kf-page-title-scene { --title-h: clamp(420px, 36vw, 500px); background-position: center 60%; }
.kf-class-detail-page .kf-page-layout--sidebar { margin-top: -68px; } /* 紙を帯に重ねる */

.kf-class-opening { position: relative; margin-bottom: 76px; }
.kf-class-opening__copy { position: relative; padding: 72px 90px 66px; overflow: hidden; background: var(--panel); text-align: center; }
.kf-class-opening__copy::before { content: ""; position: absolute; inset: 0; background: var(--beast) center top / cover no-repeat; opacity: var(--beast-opacity); pointer-events: none; }
.kf-chenstyle-taichi-class-page .kf-class-opening__copy { --beast: url("../images/chenstyle-white-tiger-pearl-background-v1.png"); --beast-opacity: 0.2; }
.kf-bagua-class-page .kf-class-opening__copy { --beast: url("../images/bagua-soaring-dragon-background-v1.png"); --beast-opacity: 0.24; }
.kf-class-opening__copy > * { position: relative; }
.kf-class-opening__copy h2 {
	max-width: 760px;
	margin-inline: auto;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line-strong);
	font-size: var(--fs-36);
	line-height: 1.6;
	letter-spacing: 0.055em;
}
.kf-class-opening__copy h2 span { display: block; }
.kf-class-opening__lead { max-width: 760px; margin: 24px auto 0; line-height: 2.1; color: var(--ink-soft); }

.kf-class-studio-note {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 42px;
	padding: 30px 36px 32px;
	border-top: 1px solid rgba(150, 112, 78, 0.24);
	border-bottom: 1px solid rgba(150, 112, 78, 0.24);
	background: rgba(255, 252, 245, 0.96);
}
.kf-class-studio-note h3 { margin-bottom: 11px; font-size: var(--fs-23); line-height: 1.55; letter-spacing: 0.04em; }
.kf-class-studio-note__points { display: grid; gap: 8px; margin-top: 17px; }
.kf-class-studio-note__points p { position: relative; padding-left: 18px; font-weight: 500; line-height: 1.7; }
.kf-class-studio-note__points p::before { content: ""; position: absolute; top: 0.72em; left: 1px; width: 7px; height: 7px; border-radius: 50%; background: #7b9075; }
.kf-class-studio-note__points p:nth-child(2)::before { background: #b79055; }
.kf-class-studio-note__title ul { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.kf-class-studio-note__title li { padding: 5px 10px; border: 1px solid rgba(110, 132, 105, 0.34); border-radius: var(--pill); background: rgba(239, 244, 236, 0.82); font-size: var(--fs-12); line-height: 1.5; color: var(--ink-soft); }
.kf-class-studio-note__detail { padding-left: 42px; border-left: 1px solid var(--line); }
.kf-class-studio-note__first-copy { font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-class-studio-note__first-copy strong { font-weight: 700; }
.kf-class-studio-note__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 16px; padding: 13px 16px; background: #f4efe5; font-size: var(--fs-14); line-height: 1.85; color: var(--ink-soft); }
.kf-class-studio-note__price span { font-size: var(--fs-12); letter-spacing: 0.05em; color: var(--bronze); }
.kf-class-studio-note__price strong { font-size: var(--fs-19); color: var(--ink); }
.kf-class-studio-note__price small { flex-basis: 100%; font-size: var(--fs-12); }

.kf-class-detail-panel { padding: 56px 56px 64px; border-radius: 18px; background: var(--panel); }

/* 記事の中にある、前のテーマの名残は出さない：最初の見出し、クラス案内の後の文とボタン */
.kf-class-detail-page .entry-content > h2:first-child,
.kf-class-guide-sheet + p,
.kf-class-guide-sheet + p + .swell-block-button { display: none; }

/* 絵つきの大見出し（クラスの特徴・クラス案内・授業の進め方・体験受講・練習内容） */
.kf-class-features-heading,
.kf-class-detail-page .entry-content > h2 {
	position: relative;
	min-height: 68px;
	margin: 72px 0 30px;
	padding: 0 0 17px 70px;
	border-bottom: 1px solid var(--line-strong);
	font-size: var(--fs-28);
	line-height: 1.65;
	letter-spacing: 0.05em;
}
.kf-class-features-heading { margin-top: 0; }
.kf-class-features-heading::after,
.kf-class-detail-page .entry-content > h2::after { content: ""; position: absolute; bottom: -2px; left: 0; width: 92px; height: 3px; border-radius: 2px; background: var(--class-green); }
.kf-bagua-class-page .kf-class-features-heading::after,
.kf-bagua-class-page .entry-content > h2::after { background: linear-gradient(90deg, #b86c77 0 38%, #72886d 38% 100%); }
.kf-class-features-heading__icon,
.kf-class-detail-page .entry-content > h2::before { content: ""; position: absolute; top: 0; left: 0; width: 58px; height: 58px; background: var(--heading-icon) center / contain no-repeat; }
.kf-class-features-heading__icon { --heading-icon: url("../images/heading-icons/heading-classes-v1.png"); }
.kf-class-detail-page .entry-content > h2:has(+ .kf-class-guide-sheet) { --heading-icon: url("../images/heading-icon-candidates/new/C18-access-signpost.png"); }
.kf-class-detail-page .entry-content > h2:has(+ .kf-vertical-steps) { --heading-icon: url("../images/heading-icon-candidates/new/C19-schedule-calendar.png"); }
.kf-class-detail-page .entry-content > h2:has(+ p + .swell-block-button) { --heading-icon: url("../images/heading-icon-candidates/new/C01-trial-gate.png"); margin-bottom: 38px; }
.kf-chenstyle-taichi-class-page .entry-content > h2:has(+ .kf-class-practice-reading) { --heading-icon: url("../images/heading-icons/heading-taijitu-v3.png"); }
.kf-bagua-class-page .entry-content > h2:has(+ .kf-class-practice-reading) { --heading-icon: url("../images/heading-icons/heading-bagua-v1.png"); }
.kf-class-detail-page .entry-content > h2:has(+ .kf-class-practice-reading)::before { transform: translateY(-5px) scale(0.76); }
.kf-class-features-lead { margin: -4px 14px 30px; line-height: 2; color: var(--ink-soft); }

/* 特徴の表（陳式） */
.kf-sample-table-wrap { overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.kf-sample-table-wrap .wp-block-table { margin: 0; } /* WordPress 本体の下の 1em を消す */
.kf-sample-table-wrap table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--white); }
.kf-sample-table-wrap :is(th, td) { padding: 15px 18px; border: 0; border-bottom: 1px solid var(--line); line-height: 1.75; text-align: left; vertical-align: middle; }
.kf-sample-table-wrap th { width: 22%; min-width: 6.5rem; border-right: 1px solid var(--line); background: #f6f3eb; font-weight: 500; text-align: center; }
.kf-sample-table-wrap tr:last-child > * { border-bottom: 0; }

/* 向く人・向かない人（八卦掌） */
:where(.kf-class-detail-page) .swell-block-capbox { width: calc(100% - 28px); margin: 0 auto 64px; } /* 記事の直下の箱は WordPress が左右 auto にするので、幅で余白を作る（以下同じ） */
:where(.kf-class-detail-page) .swell-block-capbox .cap_box_ttl { display: none; }
:where(.kf-class-detail-page) .swell-block-capbox ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
:where(.kf-class-detail-page) .swell-block-capbox li {
	position: relative;
	padding: 24px 22px 24px 50px;
	border: 1px solid var(--line);
	border-top: 4px solid var(--li-accent, #7b9075);
	border-radius: 7px;
	background: linear-gradient(145deg, rgba(255, 253, 248, 0.96), var(--li-wash, rgba(237, 243, 234, 0.78)));
	line-height: 1.9;
}
:where(.kf-class-detail-page) .swell-block-capbox li:nth-child(2) { --li-accent: #b86c77; --li-wash: rgba(249, 236, 232, 0.78); }
:where(.kf-class-detail-page) .swell-block-capbox li:last-child { --li-accent: var(--class-gold); --li-wash: rgba(248, 242, 222, 0.8); grid-column: 1 / -1; }
:where(.kf-class-detail-page) .swell-block-capbox li::before {
	content: "●"; /* 丸の字にチェックの形の窓をかぶせる。字の色とうしろの緑の両方が見える（前と同じ） */
	position: absolute;
	top: 23px;
	left: 22px;
	width: 1em;
	font-size: var(--fs-12);
	font-weight: 600;
	color: var(--ink-soft);
	background: #52cb4c;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M11.2 20.56l-5.92-5.92c-0.16-0.16-0.4-0.16-0.56 0l-2.8 2.8c-0.16 0.16-0.16 0.4 0 0.56l9.040 9.040c0.16 0.16 0.4 0.16 0.56 0l18.64-18.64c0.16-0.16 0.16-0.4 0-0.56l-2.8-2.8c-0.16-0.16-0.4-0.16-0.56 0l-15.6 15.52z"></path></svg>') center / contain no-repeat;
}
:where(.kf-class-detail-page) .swell-block-capbox li:last-child::before { color: var(--bronze); }
.kf-class-fit-guide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 34px; width: calc(100% - 28px); margin: -18px auto 64px; padding-top: 28px; border-top: 1px solid var(--line); }
.kf-class-fit-guide h3 { margin-bottom: 15px; line-height: 1.7; letter-spacing: 0.05em; }
.kf-class-fit-guide :where(h3:nth-of-type(1)) { grid-area: 1 / 1; }
.kf-class-fit-guide :where(h3:nth-of-type(2)) { grid-area: 1 / 2; }
.kf-class-fit-guide :where(ul:nth-of-type(1)) { grid-area: 2 / 1; }
.kf-class-fit-guide :where(ul:nth-of-type(2)) { grid-area: 2 / 2; }
.kf-class-fit-guide li { position: relative; padding: 8px 0 8px 24px; font-size: var(--fs-14); line-height: 1.85; color: var(--ink-soft); }
.kf-class-fit-guide li::before { content: "○"; position: absolute; top: 0.78em; left: 2px; font-size: var(--fs-12); }
.kf-class-fit-guide ul:nth-of-type(2) li::before { content: "△"; color: var(--bronze); }

/* クラス案内の一覧（場所・日時・受講料・入会金・体験日・地図・指導する人） */
.kf-class-guide-sheet { width: calc(100% - 28px); margin: 0 auto 64px; }
.kf-class-guide-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.kf-class-guide-summary__item { display: grid; grid-template-columns: 72px 1fr; gap: 16px; padding: 24px 0 24px 22px; border-bottom: 1px solid var(--line); }
.kf-class-guide-summary__item:nth-child(2n + 1) { padding: 24px 22px 24px 0; border-right: 1px solid var(--line); }
.kf-class-guide-summary__item:nth-last-child(-n + 2) { border-bottom: 0; }
.kf-class-guide-summary dt,
.kf-class-guide-trial__label { font-weight: 500; letter-spacing: 0.06em; color: var(--bronze); }
.kf-class-guide-summary dd { color: var(--ink-soft); }
.kf-class-guide-summary dd strong { color: var(--ink); }
.kf-class-guide-summary dd a { margin-left: 12px; font-size: var(--fs-12); }
.kf-class-guide-summary dd a:is(:hover, :focus-visible) { color: var(--ink); }
.kf-class-guide-summary dd small { margin-top: 7px; font-size: var(--fs-14); line-height: 1.75; }
.kf-class-guide-trial { display: grid; grid-template-columns: 72px 1fr; gap: 16px; padding: 24px 0; border-bottom: 1px solid var(--line-strong); }
.kf-class-guide-trial__label { line-height: 2; }
.kf-trial-dates ul { display: flex; flex-wrap: wrap; gap: 8px; }
.kf-trial-dates li { line-height: 2; }
.kf-trial-date { display: inline-flex; align-items: center; min-height: 36px; padding: 2px 14px; border: 1px solid var(--cta); border-radius: var(--pill); background: var(--white); font-size: var(--fs-14); font-weight: 500; line-height: 1.4; color: var(--ink-soft); }
.kf-trial-date:is(:hover, :focus-visible) { background: var(--cta); color: var(--white); }
.kf-trial-dates small { display: block; margin-top: 8px; font-size: var(--fs-14); line-height: 1.7; color: var(--ink-soft); }
.kf-class-access-map { margin: 40px 70px 0; }
.kf-class-access-map img { border: 1px solid rgba(183, 154, 90, 0.34); }
.kf-class-access-map figcaption { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: baseline; padding: 14px 2px 13px; border-bottom: 1px solid var(--line); }
.kf-class-access-map figcaption > span { font-size: var(--fs-12); line-height: 1.8; letter-spacing: 0.16em; color: var(--bronze); }
.kf-class-access-map figcaption strong { line-height: 1.8; letter-spacing: 0.04em; }
.kf-class-access-map figcaption a { font-size: var(--fs-12); line-height: 1.8; }
.kf-class-access-map figcaption a:is(:hover, :focus-visible) { color: var(--ink); }

/* 授業の進め方（縦の三段） */
.kf-vertical-steps { position: relative; display: grid; gap: 14px; list-style: none; width: calc(100% - 28px); margin: 48px auto; padding: 30px; border: 1px solid #d8e0d3; border-radius: 12px; background: rgba(251, 252, 249, 0.96); }
.kf-vertical-step { position: relative; display: grid; grid-template-columns: 54px 1fr; gap: 20px; padding: 22px 24px; border: 1px solid #d8e0d3; border-radius: 10px; background: #f2f6ee; line-height: 2; }
.kf-vertical-step:not(:last-child)::after { content: ""; position: absolute; bottom: -15px; left: 48px; width: 1px; height: 14px; background: #aab8a5; }
.kf-vertical-step__marker { position: relative; z-index: 1; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: #667a63; font-size: var(--fs-12); line-height: 2; color: var(--white); }
.kf-vertical-step__label { margin-bottom: 6px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.16em; color: var(--bronze); }
.kf-vertical-step__title { margin-bottom: 9px; font-weight: 500; line-height: 1.6; letter-spacing: 0.06em; }
.kf-vertical-step__body { font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }

/* 体験受講 */
.kf-class-detail-page .entry-content > h2 + p { margin: 16px 0; line-height: 2; }
.kf-class-detail-page .entry-content > .swell-block-button { max-width: 400px; margin: 30px auto 8px; }

/* あわせて読みたい（練習内容へ） */
.kf-related-page { position: relative; width: calc(100% - 88px); margin-inline: auto; padding: 14px 18px 14px 14px; overflow: hidden; border: 1px solid rgba(92, 82, 67, 0.24); border-radius: 1px; background: #fbfaf7; }
.kf-related-page:is(:hover, :has(.kf-related-page__stretched:focus-visible)) { border-color: rgba(92, 82, 67, 0.42); background: #f8f6f1; box-shadow: 0 8px 18px rgba(57, 50, 40, 0.07); transform: translateY(-1px); }
.kf-related-page__body { position: relative; display: grid; grid-template-columns: 164px 1fr; gap: 20px; }
.kf-related-page__body figure { height: 116px; overflow: hidden; background: var(--paper); }
.kf-related-page__body figure img { width: 100%; height: 100%; object-fit: cover; }
.kf-related-page__body img { filter: saturate(0.88) contrast(1.025); transition: filter 0.22s, transform 0.22s; } /* 写真も小さな絵も、色を少し落とす */
.kf-related-page:is(:hover, :has(.kf-related-page__stretched:focus-visible)) img { transform: scale(1.018); }
.kf-related-page__copy { position: relative; display: flex; flex-direction: column; padding-right: 112px; }
.kf-related-page__heading { display: flex; align-items: center; gap: 9px; margin: -1px 0 6px; }
.kf-related-page__heading img { width: 38px; height: 38px; object-fit: contain; }
.kf-related-page__heading span { display: block; margin-bottom: 1px; font-size: var(--fs-12); font-weight: 600; line-height: 1.2; letter-spacing: 0.16em; color: var(--bronze); }
.kf-related-page__heading h5 { font-size: var(--fs-12); font-weight: 600; line-height: 1.35; letter-spacing: 0.08em; }
.kf-related-page__kind { position: absolute; top: 5px; right: 2px; padding: 2px 0 3px; border-bottom: 1px solid rgba(118, 102, 77, 0.46); font-size: var(--fs-12); font-weight: 600; line-height: 1.8; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-related-page__copy > :where(.kf-inline) > strong { max-width: 560px; line-height: 1.55; letter-spacing: 0.025em; }
.kf-related-page__stretched { color: var(--ink); }
.kf-related-page__stretched:hover { color: var(--ink-soft); }
.kf-related-page__stretched:focus-visible { outline: 0; }
.kf-related-page__stretched::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.kf-related-page__summary { max-width: 552px; margin: 4px 0 0; font-size: var(--fs-12); line-height: 1.62; color: var(--ink-soft); }
.kf-related-page__action { position: absolute; right: 2px; bottom: 3px; display: inline-flex; align-items: center; gap: 7px; padding-top: 5px; font-size: var(--fs-12); font-weight: 600; letter-spacing: 0.05em; color: var(--ink-soft); }
.kf-related-page__action i { display: grid; place-items: center; width: 18px; height: 18px; font-style: normal; border: 1px solid #81745f; border-radius: 50%; line-height: 1; transition: background 0.22s, transform 0.22s; }
.kf-related-page:is(:hover, :has(.kf-related-page__stretched:focus-visible)) .kf-related-page__action i { border-color: #514b42; background: #514b42; color: var(--white); transform: translateX(2px); }

/* 6-4 中級クラス・中級コース */

.kf-intermediate-class-page .kf-page-article { padding: 48px 50px 58px; border: 1px solid rgba(221, 213, 199, 0.72); border-radius: 12px; background: var(--panel); }

.kf-intermediate__opening {
	position: relative;
	display: grid;
	grid-template-columns: minmax(190px, 0.68fr) minmax(0, 1.32fr);
	gap: 36px;
	align-items: center;
	padding: 30px;
	overflow: hidden;
	border: 1px solid rgba(205, 189, 158, 0.72);
	border-top: 3px solid rgba(121, 100, 53, 0.7);
	background: linear-gradient(145deg, #faf8f2, #f1f4ec);
}
.kf-intermediate__opening::after { content: ""; position: absolute; right: -58px; bottom: -76px; width: 190px; height: 190px; border: 1px solid rgba(138, 115, 68, 0.12); border-radius: 50%; pointer-events: none; }
.kf-intermediate__opening figure { position: relative; z-index: 1; }
.kf-intermediate__opening figure::before { content: ""; position: absolute; top: 10px; left: 10px; width: 100%; height: 100%; border: 1px solid rgba(121, 100, 53, 0.4); }
.kf-intermediate__opening img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.kf-intermediate__opening-copy { position: relative; }
.kf-intermediate__eyebrow { font-size: var(--fs-12); line-height: 1.95; letter-spacing: 0.18em; color: var(--bronze); }
.kf-intermediate__stage { display: inline-flex; margin: 10px 0 14px; padding: 4px 10px; border: 1px solid rgba(91, 111, 85, 0.28); border-radius: var(--pill); font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.1em; color: var(--ink-soft); }
.kf-intermediate__opening h2 { margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.65; letter-spacing: 0.09em; }
.kf-intermediate__opening-copy p { line-height: 1.95; }
.kf-intermediate__opening-copy p + p { margin-top: 13px; }

.kf-intermediate__section,
.kf-intermediate__heritage,
.kf-intermediate__eligibility { margin-top: 74px; }
.kf-intermediate__section-head { display: grid; grid-template-columns: 52px 1fr; gap: 0 15px; align-items: start; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 1px solid var(--line-strong); }
.kf-intermediate__section-head > div { display: contents; } /* 英語と題を包む div は無いものとして並べる */
.kf-intermediate__section-head img { grid-area: 2 / 1; width: 48px; height: 48px; object-fit: contain; }
.kf-intermediate__section-head p { grid-area: 1 / 2; margin-bottom: 4px; font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.18em; color: var(--bronze); }
.kf-intermediate__section-head h2 { grid-area: 2 / 2; font-size: var(--fs-28); font-weight: 400; line-height: 1.55; letter-spacing: 0.1em; }
.kf-intermediate__section-lead { max-width: 680px; line-height: 1.95; color: var(--ink-soft); }
.kf-intermediate__facets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 25px; }
.kf-intermediate__facets article { padding: 24px 21px 25px; border: 1px solid var(--line); border-top: 3px solid rgba(121, 100, 53, 0.62); background: color-mix(in srgb, var(--paper-white) 96%, var(--paper)); }
.kf-intermediate__facets span { font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.12em; color: var(--bronze); }
.kf-intermediate__facets h3 { margin: 11px 0 10px; line-height: 1.6; letter-spacing: 0.06em; }
.kf-intermediate__facets p { font-size: var(--fs-14); line-height: 1.95; color: var(--ink-soft); }

.kf-intermediate__heritage { display: grid; grid-template-columns: minmax(0, 1.174fr) minmax(0, 1fr); border: 1px solid rgba(221, 213, 199, 0.76); background: #f8f5ed; }
.kf-intermediate__heritage-copy { padding: 38px 36px 40px; }
.kf-intermediate__heritage-copy .kf-intermediate__section-head { margin-bottom: 22px; }
.kf-intermediate__heritage-copy > p { line-height: 1.95; }
.kf-intermediate__heritage-copy > p + p { margin-top: 14px; }
.kf-intermediate__heritage > figure { overflow: hidden; }
.kf-intermediate__heritage > figure img,
.kf-intermediate__venue img { width: 100%; height: 100%; object-fit: cover; }

.kf-intermediate__flow { display: grid; gap: 10px; padding: 15px; border: 1px solid rgba(221, 213, 199, 0.75); background: #fbfaf7; }
.kf-intermediate__flow li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; align-items: start; padding: 22px 24px; background: #eef3eb; line-height: 2; }
.kf-intermediate__flow li > :where(.kf-inline) > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #667a61; font-size: var(--fs-12); line-height: 2; letter-spacing: 0.08em; color: var(--white); }
.kf-intermediate__flow small { display: inline; font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.12em; color: var(--bronze); }
.kf-intermediate__flow h3 { margin: 5px 0 6px; line-height: 1.55; letter-spacing: 0.05em; }
.kf-intermediate__flow p { font-size: var(--fs-14); line-height: 1.95; color: var(--ink-soft); }

.kf-intermediate__venue { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr); min-height: 300px; overflow: hidden; border: 1px solid var(--line); background: #f8f5ed; }
.kf-intermediate__venue > div { align-self: center; padding: 32px 34px; }
.kf-intermediate__venue span { font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.12em; color: var(--bronze); }
.kf-intermediate__venue h3 { margin: 12px 0 18px; font-size: var(--fs-19); line-height: 1.6; letter-spacing: 0.06em; }
.kf-intermediate__venue p { line-height: 1.95; }
.kf-intermediate__venue p + p { margin-top: 10px; }
.kf-intermediate__heritage-copy > :where(.kf-inline) > a,
.kf-intermediate__venue a { display: inline-flex; align-items: center; gap: 9px; margin-top: 18px; font-size: var(--fs-12); font-weight: 500; line-height: 1.8; }
.kf-intermediate__heritage-copy > :where(.kf-inline) > a:is(:hover, :focus-visible),
.kf-intermediate__venue a:is(:hover, :focus-visible) { color: var(--ink); }

.kf-intermediate__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.kf-intermediate__facts > div { display: grid; grid-template-columns: 92px 1fr; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.kf-intermediate__facts dt { padding: 16px 17px; background: #f4f1e8; font-size: var(--fs-12); line-height: 1.7; letter-spacing: 0.06em; color: var(--ink-soft); }
.kf-intermediate__facts dd { padding: 16px 17px; font-size: var(--fs-14); line-height: 1.7; }

.kf-intermediate__instructors { margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--line-strong); }
.kf-intermediate__instructors > p:first-child { display: none; } /* 英語の小見出し INSTRUCTORS は他の二つの箱に無いので出さない */

.kf-intermediate__eligibility { padding: 40px 42px 42px; border: 1px solid rgba(205, 189, 158, 0.78); background: linear-gradient(145deg, #faf6ed, #eef3e9); text-align: center; }
.kf-intermediate__eligibility > p:first-child { font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.18em; color: var(--bronze); }
.kf-intermediate__eligibility h2 { margin: 7px 0 17px; padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.6; letter-spacing: 0.08em; }
.kf-intermediate__eligibility > p:not(:first-child) { max-width: 650px; margin-inline: auto; line-height: 1.95; }
.kf-intermediate__eligibility small { max-width: 650px; margin: 14px auto 0; font-size: var(--fs-12); line-height: 1.8; text-align: left; color: var(--ink-soft); }
.kf-intermediate__eligibility small span { margin-right: 3px; color: #a75c50; }
.kf-intermediate__eligibility > div { display: flex; justify-content: center; gap: 12px; margin-top: 25px; }
.kf-intermediate__eligibility > div a:where(:not(.kf-contact-button)) { display: flex; align-items: center; justify-content: center; gap: 10px; min-width: 210px; min-height: 48px; padding: 11px 20px; border: 1px solid #61745d; border-radius: var(--pill); font-size: var(--fs-14); font-weight: 500; line-height: 1.5; color: var(--ink-soft); }
.kf-intermediate__eligibility > div a:where(:not(.kf-contact-button)):is(:hover, :focus-visible) { background: #52654f; color: var(--white); }

/* 6-5 華佗五禽戯イベント */

.kf-content-flow { display: grid; gap: 64px; }
.kf-event-intro { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr); gap: 36px; align-items: center; }
.kf-event-intro__eyebrow { font-size: var(--fs-12); line-height: 2; letter-spacing: 0.18em; color: var(--bronze); }
.kf-event-intro h2 { padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); line-height: 1.5; letter-spacing: 0.06em; }
.kf-event-intro h2 + p { max-width: 784px; margin-top: 18px; font-size: var(--fs-12); line-height: 1.9; letter-spacing: 0.18em; color: var(--ink-soft); }
.kf-event-intro__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.kf-event-intro__facts > :where(.kf-inline) > span { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; }
.kf-event-intro__facts > :where(.kf-inline) > span + span { border-left: 1px solid var(--line); }
.kf-event-intro__facts strong { font-size: var(--fs-14); line-height: 1.8; }
.kf-event-intro__facts small { font-size: var(--fs-12); line-height: 1.55; color: var(--ink-soft); }

.kf-site-heading-b { position: relative; margin-bottom: 25px; padding-bottom: 16px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.5; letter-spacing: 0.12em; }

.kf-event-guide { overflow: hidden; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); background: rgba(255, 253, 248, 0.82); }
.kf-event-guide__note { display: flex; align-items: center; gap: 18px; padding: 17px 28px; border-bottom: 1px solid var(--line); font-size: var(--fs-14); line-height: 1.8; color: var(--ink-soft); }
.kf-event-guide__note span { font-size: var(--fs-12); line-height: 1.8; letter-spacing: 0.17em; color: var(--bronze); }
.kf-event-guide__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kf-event-guide__item { padding: 24px 30px 26px; border-bottom: 1px solid var(--line); }
.kf-event-guide__item:where(:nth-child(2n + 1):not(.kf-event-guide__item--wide)) { border-left: 1px solid var(--line); }
.kf-event-guide__item:where(:nth-last-child(-n + 2)) { border-bottom: 0; }
.kf-event-guide__item--wide { grid-column: 1 / -1; display: grid; grid-template-columns: 118px 1fr; gap: 22px; align-items: center; }
.kf-event-guide__item dt { font-size: var(--fs-12); font-weight: 400; line-height: 1.8; letter-spacing: 0.14em; color: var(--bronze); }
.kf-event-guide__item:not(.kf-event-guide__item--wide) dt { margin-bottom: 10px; }
.kf-event-guide__item dd:not(.kf-person-summary) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px 16px; line-height: 1.8; }
.kf-event-guide__item dd > :where(.kf-inline) > strong:not(.kf-event-guide__free) { font-size: var(--fs-19); line-height: 1.8; letter-spacing: 0.04em; }
.kf-event-guide__item small { display: inline; font-size: var(--fs-12); line-height: 1.7; color: var(--ink-soft); }
.kf-event-guide__free { padding: 3px 13px; border-radius: var(--pill); background: #e7eee4; font-size: var(--fs-14); line-height: 1.8; letter-spacing: 0.04em; color: var(--ink-soft); }
.kf-event-guide__item a:is(:hover, :focus-visible) { color: var(--ink); }

.kf-wuqinxi-animals { padding: 38px 34px 32px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); background: rgba(255, 253, 248, 0.76); }
.kf-wuqinxi-animals__header { display: grid; grid-template-columns: minmax(0, 1.27fr) minmax(0, 1fr); gap: 34px; align-items: end; }
.kf-wuqinxi-animals__header > div p { margin-bottom: 9px; font-size: var(--fs-12); line-height: 2; letter-spacing: 0.18em; color: var(--bronze); }
.kf-wuqinxi-animals__header h2 { font-size: var(--fs-28); line-height: 1.5; letter-spacing: 0.07em; }
.kf-wuqinxi-animals__header > p { font-size: var(--fs-14); line-height: 1.95; color: var(--ink-soft); }
.kf-wuqinxi-animals__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 30px; }
.kf-wuqinxi-animal { min-width: 0; border-top: 2px solid #8b7952; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, 0.9); transition: box-shadow 0.2s, transform 0.2s; }
.kf-wuqinxi-animal:hover { box-shadow: 0 10px 24px rgba(58, 51, 38, 0.11); transform: translateY(-2px); }
.kf-wuqinxi-animal a { display: flex; flex-direction: column; color: inherit; }
.kf-wuqinxi-animal figure { aspect-ratio: 3 / 2; overflow: hidden; background: #e8e6dd; }
.kf-wuqinxi-animal img { width: 100%; height: 100%; object-fit: cover; transition: filter 0.25s, transform 0.3s; }
.kf-wuqinxi-animal:hover img { filter: saturate(1.04) contrast(1.02); transform: scale(1.025); }
.kf-wuqinxi-animal figure + div { display: flex; flex-direction: column; padding: 16px 15px 18px; }
.kf-wuqinxi-animal p { margin-bottom: 7px; font-size: var(--fs-12); line-height: 2; letter-spacing: 0.12em; color: var(--bronze); }
.kf-wuqinxi-animal h3 { display: flex; align-items: baseline; gap: 7px; margin-bottom: 11px; line-height: 1.4; letter-spacing: 0.06em; }
.kf-wuqinxi-animal h3 small { display: inline; font-size: var(--fs-12); font-weight: 400; line-height: 1.4; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-wuqinxi-animal span { font-size: var(--fs-12); line-height: 1.75; color: var(--ink-soft); }
.kf-wuqinxi-animal i { margin-top: auto; padding-top: 14px; font-size: var(--fs-12); font-style: normal; line-height: 1.8; color: var(--bronze); }
.kf-wuqinxi-animals__source { display: inline-flex; align-items: center; gap: 34px; margin-top: 25px; font-size: var(--fs-12); line-height: 1.8; }
.kf-wuqinxi-animals__source:is(:hover, :focus-visible) { color: var(--ink); }

.kf-sample-lists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.kf-related-link { position: relative; height: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); transition: border-color 0.2s, box-shadow 0.2s, color 0.2s, transform 0.2s; }
.kf-related-link:is(:hover, :has(.kf-related-link__stretched:focus-visible)) { border-color: var(--bronze); box-shadow: 0 10px 24px rgba(66, 55, 38, 0.1); transform: translateY(-1px); }
.kf-related-link figure { aspect-ratio: 16 / 8.6; overflow: hidden; background: var(--paper); }
.kf-related-link img { width: 100%; height: 100%; object-fit: cover; transition: filter 0.25s, transform 0.25s; }
.kf-related-link:is(:hover, :has(.kf-related-link__stretched:focus-visible)) img { filter: saturate(1.05) contrast(1.02); transform: scale(1.02); }
.kf-related-link__copy { padding: 19px 22px 21px; }
.kf-related-link__copy small { margin-bottom: 7px; font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); line-height: 1.8; letter-spacing: 0.12em; color: var(--bronze); }
.kf-related-link__copy strong { display: block; line-height: 1.7; }
.kf-related-link__stretched { color: inherit; }
.kf-related-link__stretched:hover { color: var(--ink-soft); }
.kf-related-link:has(.kf-related-link__stretched:focus-visible) { outline: 2px solid var(--bronze); outline-offset: 3px; }
.kf-related-link__stretched:focus-visible { outline: 0; }
.kf-related-link__stretched::after { content: ""; position: absolute; inset: 0; z-index: 4; }
.kf-related-link__copy p { margin-top: 10px; font-size: var(--fs-12); line-height: 1.75; color: var(--ink-soft); }
.kf-related-link__copy span { display: block; margin-top: 14px; font-size: var(--fs-12); line-height: 1.8; color: var(--bronze); }

.kf-wuqinxi-contact { padding: 36px 34px 34px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); background: rgba(255, 253, 248, 0.78); }
.kf-wuqinxi-contact p { max-width: 832px; margin: 16px 0 27px; line-height: 1.9; color: var(--ink-soft); }

/* --- 1000px まで --- */
@media (max-width: 1000px) {
	.kf-class-detail-page .kf-page-layout--sidebar { margin-top: -36px; }
	.kf-sample-lists { grid-template-columns: 1fr; }
	.kf-wuqinxi-animals__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* --- 782px まで：一列に --- */
@media (max-width: 782px) {
	/* 共通の部品 */
	.kf-editorial-heading-with-icon { min-height: 42px; padding-left: 50px; font-size: var(--fs-23); }
	.kf-editorial-heading-with-icon::before { width: 38px; height: 38px; }

	/* 入口 */
	.kf-class-selector__route { margin-bottom: 62px; padding: 28px 22px 30px; border-radius: 14px; }
	.kf-class-selector__opening { margin-bottom: 38px; padding: 0; }
	.kf-class-selector__opening h2 { font-size: var(--fs-28); letter-spacing: 0.07em; text-wrap: balance; }
	.kf-class-selector__doors { grid-template-columns: 1fr; gap: 16px; }
	.kf-class-selector__door { grid-template-rows: 180px 1fr; }
	.kf-class-selector__door > img { height: 180px; }
	.kf-class-selector__choice-guide { padding: 28px 22px 27px; border-radius: 14px; }
	.kf-class-selector__discipline { margin-top: 62px; padding: 28px 14px 30px; border-radius: 14px; }
	.kf-class-selector__choice-grid { grid-template-columns: 1fr; margin-top: 21px; }
	.kf-class-selector__choice-grid article { padding: 27px 24px 28px; }
	.kf-class-selector__choice-grid article::before { background-size: auto 88%; }
	.kf-class-selector__choice-grid article + article { border-left: 0; border-top: 1px solid var(--line); }
	.kf-class-foundation { margin-top: 24px; padding: 0 18px; }
	.kf-course-venue { grid-template-columns: 1fr; gap: 16px; margin-bottom: 28px; }
	.kf-course-venue img { height: auto; aspect-ratio: 1.85 / 1; }
	.kf-course-venue > div { padding: 0 21px; }
	.kf-course-venue__label { margin-bottom: 5px; }
	.kf-course-venue__title { margin-bottom: 8px; font-size: var(--fs-19); }
	.kf-course-venue__note { max-width: none; font-size: var(--fs-12); }
	.kf-course-grid { grid-template-columns: 1fr; gap: 22px; }
	.kf-course-card { padding: 26px 20px 28px; border-radius: 16px; }
	.kf-course-card__head { gap: 8px 12px; margin-bottom: 17px; }
	.kf-course-card__target { min-height: 0; }
	.kf-course-card__description { min-height: 0; margin: 16px 0 24px; }
	.kf-course-card__details { gap: 13px; margin-bottom: 24px; }
	.kf-course-card__details > div { grid-template-columns: 42px 1fr; gap: 10px; }
	.kf-course-card__details dd { font-size: var(--fs-14); }
	.kf-course-card .kf-sample-button { align-self: stretch; gap: 12px; padding: 12px; }
	.kf-class-selector__cta { margin: 64px 0 8px; padding: 28px 22px 32px; border-radius: 14px; }
	.kf-class-selector__cta h2 { font-size: var(--fs-23); }
	.kf-class-selector__cta-guide { width: 142px; margin: 16px auto 15px; }
	.kf-class-selector__cta .swell-block-button { width: min(300px, 100%); }
	.kf-contact-button { padding: 12px 26px; }

	/* 基礎クラス */
	.kf-class-detail-page .kf-page-title-scene { --title-h: 280px; background-position: center; }
	.kf-class-opening { margin-bottom: 54px; }
	.kf-class-opening__copy { padding: 48px 24px 42px; text-align: left; }
	.kf-class-opening__copy::before { background-position: 62% center; background-size: auto 92%; opacity: 0.16; }
	.kf-class-opening__copy h2 { font-size: var(--fs-28); }
	.kf-class-opening__copy h2 span { display: inline; }
	.kf-class-opening__lead { font-size: var(--fs-14); line-height: 2; }
	.kf-class-studio-note { grid-template-columns: 1fr; gap: 22px; padding: 23px 24px 24px; }
	.kf-class-studio-note h3 { font-size: var(--fs-19); }
	.kf-class-studio-note__points p { font-size: var(--fs-14); }
	.kf-class-studio-note__detail { order: -1; padding: 0 0 22px; border-left: 0; border-bottom: 1px solid var(--line); }
	.kf-class-detail-panel { padding: 34px 20px 42px; border-radius: 14px; }
	.kf-class-features-heading,
	.kf-class-detail-page .entry-content > h2 { min-height: 0; margin: 48px 0 22px; padding: 0 0 15px 52px; font-size: var(--fs-23); }
	.kf-class-features-heading { margin-top: 0; }
	.kf-class-features-heading__icon,
	.kf-class-detail-page .entry-content > h2::before { width: 42px; height: 42px; }
	.kf-class-detail-page .entry-content > h2:has(+ .kf-class-practice-reading)::before { transform: translateY(-3.5px) scale(0.76); }
	.kf-class-features-lead { margin: -4px 0 24px; font-size: var(--fs-14); line-height: 1.95; }
	.kf-sample-table-wrap--stack { overflow: visible; }
	.kf-sample-table-wrap--stack :is(tbody, tr, th, td) { display: block; width: 100%; }
	.kf-sample-table-wrap--stack tr + tr { border-top: 1px solid var(--line); }
	.kf-sample-table-wrap--stack th { min-width: 0; padding: 10px 16px; border: 0; text-align: left; }
	.kf-sample-table-wrap--stack td { padding: 12px 16px 18px; border: 0; overflow-wrap: anywhere; }
	:where(.kf-class-detail-page) .swell-block-capbox { width: 100%; }
	:where(.kf-class-detail-page) .swell-block-capbox ul { grid-template-columns: 1fr; }
	.kf-class-fit-guide { grid-template-columns: 1fr; gap: 0; width: 100%; margin: -10px auto 48px; }
	.kf-class-fit-guide > * { grid-area: auto; }
	.kf-class-fit-guide h3:nth-of-type(2) { margin-top: 28px; }
	.kf-class-guide-sheet { width: 100%; margin-bottom: 48px; }
	.kf-class-guide-summary { grid-template-columns: 1fr; }
	.kf-class-guide-summary__item,
	.kf-class-guide-summary__item:nth-child(2n + 1) { grid-template-columns: 58px 1fr; gap: 12px; padding: 18px 0; border-right: 0; border-bottom: 1px solid var(--line); }
	.kf-class-guide-summary__item:last-child { border-bottom: 0; }
	.kf-class-guide-summary dd a { display: block; margin: 5px 0 0; }
	.kf-class-guide-trial { grid-template-columns: 58px 1fr; gap: 12px; padding: 18px 0; }
	.kf-class-access-map { margin: 30px 0 0; }
	.kf-class-access-map figcaption { grid-template-columns: 1fr; gap: 5px; padding: 12px 0; }
	.kf-class-access-map figcaption strong { font-size: var(--fs-14); }
	.kf-class-access-map figcaption a { margin-top: 2px; }
	/* 指導する人の箱：一列、顔写真は左 */
	.kf-class-guide-instructors { margin: 34px 0 40px; }
	.kf-class-guide-instructors__grid,
	.kf-intermediate__instructor-grid { grid-template-columns: 1fr; }
	.kf-class-guide-instructors article,
	.kf-class-guide-instructors article + article,
	.kf-intermediate__instructor-grid article,
	.kf-intermediate__instructor-grid article + article,
	.kf-event-guide__item:has(.kf-person-summary) { grid-template-columns: 64px 1fr; gap: 0 14px; padding: 20px 0; border-left: 0; }
	.kf-class-guide-instructors article + article,
	.kf-intermediate__instructor-grid article + article { border-top: 1px solid var(--line); }
	.kf-event-guide__item:has(.kf-person-summary) { padding: 20px 18px 21px; }
	.kf-class-guide-instructors__avatar,
	.kf-intermediate__avatar { width: 64px; height: 64px; }
	.kf-class-guide-instructors__note,
	.kf-intermediate__instructor-note { padding: 15px 0 0; text-align: left; }
	.kf-vertical-steps { gap: 12px; width: 100%; margin: 28px auto; padding: 14px; }
	.kf-vertical-step { grid-template-columns: 46px 1fr; gap: 14px; padding: 18px 16px; }
	.kf-vertical-step:not(:last-child)::after { bottom: -13px; left: 36px; height: 12px; }
	.kf-vertical-step__marker { width: 42px; height: 42px; }
	.kf-related-page { width: 100%; padding: 12px; }
	.kf-related-page__body { grid-template-columns: 102px 1fr; gap: 12px; }
	.kf-related-page__body figure { height: 104px; }
	.kf-related-page__copy { padding-right: 0; }
	.kf-related-page__heading { gap: 6px; margin-bottom: 5px; }
	.kf-related-page__heading img { width: 30px; height: 30px; }
	.kf-related-page__heading span,
	.kf-related-page__summary,
	.kf-related-page__action { display: none; }
	.kf-related-page__kind { position: static; width: fit-content; margin-bottom: 4px; padding: 2px 7px 3px; }
	.kf-related-page__copy > :where(.kf-inline) > strong { max-width: 490px; font-size: var(--fs-14); line-height: 1.5; }

	/* 中級 */
	.kf-intermediate-class-page .kf-page-article { padding: 30px 20px 40px; }
	.kf-intermediate__opening { grid-template-columns: 1fr; gap: 28px; padding: 22px; }
	.kf-intermediate__opening figure { width: min(100%, 280px); margin-inline: auto; }
	.kf-intermediate__opening h2 { font-size: var(--fs-23); }
	.kf-intermediate__section,
	.kf-intermediate__heritage,
	.kf-intermediate__eligibility { margin-top: 58px; }
	.kf-intermediate__section-head { grid-template-columns: 44px 1fr; gap: 0 11px; }
	.kf-intermediate__section-head h2 { font-size: var(--fs-23); }
	.kf-intermediate__section-head img { width: 40px; height: 40px; }
	.kf-intermediate__facets { grid-template-columns: 1fr; }
	.kf-intermediate__facets article { padding: 22px 20px; }
	.kf-intermediate__heritage { grid-template-columns: 1fr; }
	.kf-intermediate__heritage > figure { order: -1; }
	.kf-intermediate__heritage > figure img,
	.kf-intermediate__venue img { aspect-ratio: 4 / 3; }
	.kf-intermediate__heritage-copy { padding: 28px 22px 30px; }
	.kf-intermediate__flow { padding: 10px; }
	.kf-intermediate__flow li { grid-template-columns: 42px 1fr; gap: 14px; padding: 19px 17px; }
	.kf-intermediate__flow li > :where(.kf-inline) > span { width: 38px; height: 38px; }
	.kf-intermediate__venue { grid-template-columns: 1fr; min-height: 0; }
	.kf-intermediate__venue > div { padding: 27px 22px 29px; }
	.kf-intermediate__facts { grid-template-columns: 1fr; }
	.kf-intermediate__facts > div { grid-template-columns: 82px 1fr; }
	.kf-intermediate__facts :is(dt, dd) { padding: 14px 13px; }
	.kf-intermediate__eligibility { padding: 32px 20px 34px; }
	.kf-intermediate__eligibility h2 { font-size: var(--fs-23); }
	.kf-intermediate__eligibility > div { display: grid; justify-content: center; }
	.kf-intermediate__eligibility > div a { width: 100%; min-width: 0; }

	/* 五禽戯 */
	.kf-content-flow { gap: 50px; }
	.kf-event-intro { grid-template-columns: 1fr; gap: 20px; }
	.kf-event-intro h2 { font-size: var(--fs-23); }
	.kf-event-intro h2 + p { margin-top: 14px; font-size: var(--fs-14); }
	.kf-event-intro__facts { grid-template-columns: 1fr; margin-top: 20px; }
	.kf-event-intro__facts > :where(.kf-inline) > span { padding: 10px 0; }
	.kf-event-intro__facts > :where(.kf-inline) > span + span { border-left: 0; border-top: 1px solid var(--line); }
	.kf-site-heading-b { font-size: var(--fs-23); }
	.kf-event-guide__note { flex-direction: column; align-items: flex-start; gap: 5px; padding: 15px 18px; }
	.kf-event-guide__details { grid-template-columns: 1fr; }
	.kf-event-guide__item { padding: 20px 18px 21px; border-left: 0; border-bottom: 1px solid var(--line); }
	.kf-event-guide__item:last-child { border-bottom: 0; }
	.kf-event-guide__item--wide { display: block; }
	.kf-event-guide__item dd > :where(.kf-inline) > strong:not(.kf-event-guide__free) { font-size: 17px; }
	.kf-wuqinxi-animals { padding: 28px 18px; }
	.kf-wuqinxi-animals__header { grid-template-columns: 1fr; gap: 17px; }
	.kf-wuqinxi-animals__header h2 { font-size: var(--fs-23); }
	.kf-wuqinxi-animals__grid { grid-template-columns: 1fr; margin-top: 24px; }
	.kf-wuqinxi-animal a { display: grid; grid-template-columns: minmax(0, 0.64fr) minmax(0, 1fr); }
	.kf-wuqinxi-animal figure { min-height: 178px; aspect-ratio: auto; }
	.kf-wuqinxi-animal figure + div { padding: 15px 14px 16px; }
	.kf-wuqinxi-animals__source { justify-content: space-between; gap: 15px; width: 100%; line-height: 1.7; }
	.kf-related-link__copy strong { font-size: var(--fs-14); }
	.kf-wuqinxi-contact { padding: 28px 18px; }
}


/* 7. 当会について ---------------------------------------------
   6 ページ：/about/ 入口、/greeting/ 会長挨拶、/message/ 代表挨拶、/our-purpose/ 活動目的、/naming/ 会名の由来、/history/ 会のあゆみ。
   入口以外の 5 ページは前と同じ見た目。入口は 11/9 うさぎ「任せる」で新しく作る（7-7）。
   並び：7-1 右に目次のある紙 → 7-2 本文の字と見出し → 7-3 顔写真と略歴の箱 → 7-4 別の記事へつなぐ箱 → 7-5 活動目的の箇条書き → 7-6 会のあゆみ → 7-7 入口
   ----------------------------------------------------------- */

/* 7-1 右に目次のある紙（本文 840px ＋ 目次 320px、間 40px） */
:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile) .kf-page-layout--sidebar { grid-template-columns: minmax(0, 840px) minmax(0, 320px); gap: 40px; width: min(var(--page), 100% - 50px); }
/* 白い紙そのものは 5 の「白い紙のページ」 */

/* 右の目次は 5 の「右の目次」（当会についてと記事で共通） */

/* 題の帯：ページごとの写真。薄い緑灰の膜を左から右へ */
.kf-page-context--about:not(.kf-about-hub-page) .kf-page-title-scene { --title-veil: linear-gradient(90deg, rgba(64, 72, 61, 0.36) 0%, rgba(75, 82, 69, 0.28) 34%, rgba(92, 96, 77, 0.1) 64%, rgba(255, 255, 255, 0.02) 100%); --title-veil-opacity: 0.5; }
.kf-greeting-editorial .kf-page-title-scene { background-image: url("../images/greeting-header-sasa-grounded-v5-1800x360.jpg"); }
.kf-message-editorial-headings .kf-page-title-scene { background-image: url("../images/message-header-pine-gate-v2-1800x360.jpg"); }
.kf-purpose-editorial .kf-page-title-scene { background-image: url("../images/our-purpose-header-heaven-earth-water-v3-1800x360.jpg"); }
.kf-naming-editorial .kf-page-title-scene { background-image: url("../images/naming-header-books-ink-seal-v2-1800x360.jpg"); }

/* 7-2 本文の字と見出し */
/* 段落の行間と上下の間は 5 の「白い紙のページ」 */
body:not(.home) .site-main p:empty { display: none; } /* 空の段落は場所を取らない（前と同じ） */
.kf-page-context--about .kf-page-article :where(p:where(:not(.kf-inline)), h2, li) > strong { font-weight: 700; }
.kf-page-context--about .kf-page-article h2 { margin: 64px 0 24px; padding: 0 0 16px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.5; letter-spacing: 0.12em; text-wrap: pretty; }
.kf-page-context--about:not(.kf-message-editorial-headings) .kf-page-article .entry-content > h2:first-of-type { margin-top: 0; }
.kf-message-editorial-headings.kf-editorial-headings .entry-content h2 { margin: 52px 0 22px; padding-bottom: 14px; } /* 代表挨拶は見出しが二つの列の箱の中にもある。8 章の編集風の見出しの決まりより強くする */
/* 冒頭の一文（会長挨拶は最初の h2、代表挨拶は p.kf-message-lead） */
.kf-greeting-editorial .entry-content > h2:first-of-type,
.kf-message-editorial-headings .entry-content > .kf-message-lead { margin: 0 0 52px; padding: 0; border: 0; font-size: var(--fs-28); font-weight: 400; line-height: 1.85; letter-spacing: 0.075em; text-wrap: pretty; }
.kf-greeting-editorial .entry-content > h2:first-of-type::after,
.kf-message-editorial-headings .entry-content > .kf-message-lead::after { content: ""; display: block; width: 100%; height: 1px; margin-top: 22px; background: var(--line-strong); }
/* 本文の中の写真は真ん中に */
.kf-page-context--about .kf-page-article figure.wp-block-image:not(.wp-block-gallery *, .kf-part-photo) { margin: 0 0 1em; text-align: center; }
.kf-page-context--about .kf-page-article figure.wp-block-image:not(.wp-block-gallery *, .kf-part-photo) > img { margin-inline: auto; }
.kf-page-context--about .kf-page-article .wp-block-gallery { margin: 0 0 1em; } /* 写真を並べる箱の下の間はブラウザの既定と同じ */
.kf-page-context--about .kf-page-article .entry-content > ul.wp-block-list:not(.kf-purpose-list) { margin: 1em 0; padding-left: 40px; list-style: disc; } /* 経歴の箇条書き。ブラウザの既定と同じ */

/* 7-3 顔写真と略歴の箱（会長挨拶・代表挨拶） */
.kf-columns { margin-block: 42px; }
.kf-columns .wp-block-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: clamp(18px, 3vw, 30px); align-items: start; margin: 0; }
.kf-columns .wp-block-column { min-width: 0; }
:is(.is-style-kakko_box, .is-style-big_kakko_box) { margin: 0 0 28px; padding: clamp(18px, 3vw, 28px); border: 1px solid #d9c8aa; border-radius: 10px; background: rgba(255, 253, 248, 0.82); }
.is-style-big_kakko_box strong { font-weight: 700; }

/* 7-4 別の記事へつなぐ箱。会長挨拶の aside.kf-legacy-post-link（代表挨拶・活動目的の .kf-related-page は 6-3 と同じ部品） */
.kf-page-context--about .kf-related-page { width: 100%; margin: 0 auto; }
.kf-page-context--about .kf-purpose-related-page { margin-top: 38px; }
.kf-legacy-post-link { position: relative; isolation: isolate; overflow: hidden; margin: 34px auto 38px; padding: 14px 18px 14px 14px; border: 1px solid rgba(92, 82, 67, 0.24); border-radius: 1px; background: #fbfaf7; transition: background-color 0.22s, border-color 0.22s, box-shadow 0.22s, transform 0.22s; }
.kf-legacy-post-link:is(:hover, :has(a:focus-visible)) { border-color: rgba(92, 82, 67, 0.42); background: #f8f6f1; box-shadow: 0 8px 18px rgba(57, 50, 40, 0.07); transform: translateY(-1px); }
.kf-legacy-post-link > :where(.kf-inline) > a { position: relative; display: grid; grid-template-columns: 164px minmax(0, 1fr); align-items: stretch; gap: 20px; min-height: 116px; color: var(--ink); }
.kf-legacy-post-link__thumb { display: block; width: 164px; height: 116px; overflow: hidden; background: var(--paper); }
.kf-legacy-post-link__thumb img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.88) contrast(1.025); transition: filter 0.22s, transform 0.22s; }
.kf-legacy-post-link:is(:hover, :has(a:focus-visible)) .kf-legacy-post-link__thumb img { filter: saturate(1.02) contrast(1.025); transform: scale(1.018); }
.kf-legacy-post-link__copy { position: relative; display: flex; flex-direction: column; min-width: 0; padding-right: 112px; }
.kf-legacy-post-link__heading { display: flex; align-items: center; gap: 9px; margin: -1px 0 6px; }
.kf-legacy-post-link__heading > img { width: 38px; height: 38px; object-fit: contain; }
.kf-legacy-post-link__icon--course { padding: 5px; }
.kf-legacy-post-link br { display: none; } /* WordPress が勝手に入れる改行を消す */
.kf-legacy-post-link__heading > span { display: block; min-width: 0; }
.kf-legacy-post-link__heading small { display: block; margin: 0 0 1px; font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); font-weight: 600; line-height: 1.2; letter-spacing: 0.16em; color: var(--bronze); }
.kf-legacy-post-link__heading b { display: block; font-size: var(--fs-12); font-weight: 600; line-height: 1.35; letter-spacing: 0.08em; color: var(--ink); }
.kf-legacy-post-link__kind { position: absolute; top: 5px; right: 2px; width: fit-content; padding: 2px 0 3px; border-bottom: 1px solid rgba(118, 102, 77, 0.46); font-size: var(--fs-12); font-weight: 600; line-height: 1.4; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-legacy-post-link__copy > strong { display: block; max-width: 35em; font-size: var(--fs-16); font-weight: 500; line-height: 1.55; letter-spacing: 0.025em; }
.kf-legacy-post-link__summary { display: block; max-width: 46em; margin: 4px 0 0; font-size: var(--fs-12); line-height: 1.62; color: var(--ink-soft); }
.kf-legacy-post-link__action { position: absolute; right: 2px; bottom: 3px; display: inline-flex; align-items: center; gap: 7px; padding-top: 5px; font-size: var(--fs-12); font-weight: 600; letter-spacing: 0.05em; color: var(--bronze); }
.kf-legacy-post-link__action i { display: grid; place-items: center; width: 18px; height: 18px; border: 1px solid #81745f; border-radius: 50%; font-size: var(--fs-12); font-style: normal; line-height: 1; color: var(--ink-soft); transition: transform 0.22s; }
.kf-legacy-post-link:is(:hover, :has(a:focus-visible)) .kf-legacy-post-link__action i { transform: translateX(2px); }
.kf-legacy-post-link a:focus-visible { outline: 2px solid var(--bronze); outline-offset: 5px; }

/* 7-5 活動目的の箇条書き */
.kf-purpose-list { margin: 0 0 64px; padding-left: 1.4rem; list-style: disc; }
.kf-purpose-list > li { margin: 0.7rem 0; line-height: 1.7; }
.kf-columns .is-style-big_kakko_box { margin: 0 0 28px; }
.kf-purpose-list > li::marker { color: var(--ink); }

/* 7-6 会のあゆみ（/history/）。帯も紙も使わない一枚の長い巻物。中の色はここだけの値 */
.kf-history-page > .entry-content { margin: 0; padding: 0; }
.kfh-page {
	--kfh-paper: #fbfaf6;
	--kfh-paper-warm: #f4ecdc;
	--kfh-paper-deep: #ece1cd;
	--kfh-gold: #a88750;
	--kfh-gold-light: #d8c6a3;
	--kfh-sage-dark: #586157;
	--kfh-line: #d9c9ab;
	--kfh-content: var(--page);
	width: 100%;
	overflow: hidden;
	color: var(--ink);
	background: var(--kfh-paper);
	line-height: 1.9;
	letter-spacing: 0.035em;
}
.kfh-page a { color: inherit; }
.kfh-page :where(h1, h2, h3) { font-weight: 500; }

/* 表紙 */
.kfh-masthead { position: relative; isolation: isolate; display: grid; place-items: center; min-height: 520px; padding: 82px 24px 72px; color: var(--white); text-align: center; background: linear-gradient(135deg, rgba(67, 67, 57, 0.88), rgba(92, 83, 65, 0.73)), url("../images/official-shunko-stay-henan.jpg") center 42% / cover; }
.kfh-masthead::before,
.kfh-masthead::after { content: ""; position: absolute; z-index: -1; inset: 26px; border: 1px solid rgba(255, 255, 255, 0.36); pointer-events: none; }
.kfh-masthead::after { inset: 34px; border-color: rgba(216, 198, 163, 0.25); }
.kfh-masthead__inner { max-width: 790px; }
.kfh-masthead__mark { width: 66px; margin: 0 auto 20px; filter: drop-shadow(0 5px 12px rgba(0, 0, 0, 0.24)); }
.kfh-masthead__eyebrow { margin: 0 0 12px; font-family: Georgia, serif; font-size: var(--fs-12); letter-spacing: 0.28em; }
.kfh-masthead h1 { font-size: var(--fs-36); font-weight: 600; letter-spacing: 0.13em; text-indent: 0.13em; }
.kfh-masthead__lead { max-width: 680px; margin: 24px auto 0; font-size: var(--fs-19); line-height: 2.15; }

/* 前書きと三つの数字 */
.kfh-intro { padding: 74px 24px 66px; background: rgba(251, 250, 246, 0.9); }
.kfh-intro__inner { max-width: var(--kfh-content); margin: auto; text-align: center; }
.kfh-intro__ornament { width: 78px; margin: 0 auto 18px; }
.kfh-intro h2 { margin: 0 0 18px; font-size: var(--fs-36); }
.kfh-intro p { max-width: 760px; margin: 0 auto; color: var(--ink-soft); }
.kfh-milestones { display: grid; grid-template-columns: repeat(3, 1fr); max-width: var(--kfh-content); margin: 48px auto 0; overflow: hidden; border: 1px solid var(--kfh-line); border-radius: 18px; background: var(--white); box-shadow: 0 14px 35px rgba(57, 48, 34, 0.08); }
.kfh-milestone { padding: 24px 18px 20px; text-align: center; }
.kfh-milestone + .kfh-milestone { border-left: 1px solid var(--kfh-line); }
.kfh-milestone strong { display: block; font-size: var(--fs-28); font-weight: 700; line-height: 1.2; color: var(--bronze); }
.kfh-milestone span { display: block; margin-top: 7px; font-size: var(--fs-12); color: var(--ink-soft); }

/* 四つの時代へ飛ぶ帯（画面を送っても上に付いてくる） */
.kfh-era-nav { position: sticky; top: calc(var(--admin-bar) + var(--header-h)); z-index: 20; padding: 14px 20px; border-block: 1px solid rgba(168, 135, 80, 0.28); background: rgba(250, 248, 241, 0.94); backdrop-filter: blur(12px); }
.kfh-era-nav__inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; max-width: var(--kfh-content); margin: auto; }
.kfh-era-nav a { display: flex; align-items: center; gap: 10px; padding: 8px 11px; border-radius: var(--pill); font-size: var(--fs-12); color: var(--ink-soft); transition: 0.2s; }
.kfh-era-nav a:is(:hover, :focus-visible) { background: var(--kfh-paper-deep); color: var(--ink); }
.kfh-era-nav b { display: grid; place-items: center; flex: 0 0 28px; height: 28px; border-radius: 50%; background: var(--kfh-gold); color: var(--white); font: 700 var(--fs-12) / 1 Georgia, serif; }

/* 時代（四つ。奇数は雲の模様、偶数は温かい紙） */
.kfh-era { position: relative; padding: 96px clamp(18px, 3vw, 46px); scroll-margin-top: calc(var(--admin-bar) + var(--header-h) + 64px); }
.kfh-era:nth-of-type(2n) { background: rgba(244, 236, 220, 0.72); }
.kfh-era:nth-of-type(2n + 1) { background: linear-gradient(rgba(251, 250, 246, 0.9), rgba(251, 250, 246, 0.9)), url("../images/background-moon-cloud-lattice-v1-web.webp") center / 540px auto repeat; }
.kfh-era__inner { max-width: var(--kfh-content); margin: auto; }
.kfh-era__head { display: grid; grid-template-columns: 120px minmax(0, 1fr) 112px; align-items: end; gap: 26px; margin-bottom: 54px; padding-left: clamp(60px, 9vw, 130px); }
.kfh-era__number { place-self: start end; margin-top: 27px; font: 700 82px / 0.8 Georgia, serif; letter-spacing: -0.08em; color: var(--kfh-gold-light); transform: translateY(8px); }
.kfh-era__number--adjusted .kfh-era__zero { display: inline-block; font-size: 1em; }
.kfh-era__number--adjusted .kfh-era__digit { display: inline-block; font-size: 1.22em; transform: translateY(0.08em); }
.kfh-era__period { display: block; margin-bottom: 8px; font: 700 var(--fs-12) / 1.5 Georgia, serif; letter-spacing: 0.16em; color: var(--bronze); }
.kfh-era h2 { font-size: var(--fs-36); letter-spacing: 0.08em; }
.kfh-era__summary { margin: 10px 0 0; color: var(--ink-soft); }
.kfh-era__motif { width: 96px; max-height: 104px; object-fit: contain; justify-self: end; }
.kfh-era__motif--brush { width: 168px; max-height: 112px; }
.kfh-era__motif--rock { width: 110px; max-height: 130px; }
.kfh-era__motif--gate { width: 150px; max-height: 118px; }

/* 年表：左に世の中、真ん中に軸、右に会の出来事 */
.kfh-timeline { --society-width: 30%; --axis-width: 58px; position: relative; }
.kfh-timeline::before { content: ""; position: absolute; top: 14px; bottom: 12px; left: calc(var(--society-width) + var(--axis-width) / 2); width: 1px; background: linear-gradient(var(--kfh-gold-light), var(--kfh-gold), var(--kfh-gold-light)); }
.kfh-timeline__labels,
.kfh-event { display: grid; grid-template-columns: minmax(190px, var(--society-width)) var(--axis-width) minmax(0, 1fr); }
.kfh-timeline__labels { margin: 0 0 18px; font: 700 var(--fs-12) / 1.5 sans-serif; letter-spacing: 0.16em; color: var(--bronze); }
.kfh-timeline__labels span:first-child { padding-right: 24px; text-align: right; }
.kfh-timeline__labels span:last-child { padding-left: 24px; }
.kfh-event { align-items: start; margin: 0 0 34px; }
.kfh-event__society { padding: 12px 24px 0 0; line-height: 1.55; text-align: right; color: var(--ink-soft); }
.kfh-event__society time { display: block; margin-bottom: 5px; font: 500 var(--fs-28) / 1.1 Georgia, var(--font); letter-spacing: -0.015em; color: var(--ink); }
.kfh-event__society span { display: block; font-size: var(--fs-12); }
.kfh-event__node { z-index: 2; width: 13px; height: 13px; margin: 19px auto 0; border: 3px solid var(--kfh-paper); border-radius: 50%; background: var(--kfh-gold); box-shadow: 0 0 0 1px var(--kfh-gold); }
.kfh-event__card { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; overflow: hidden; border: 1px solid rgba(168, 135, 80, 0.28); border-radius: 5px; background: rgba(255, 255, 255, 0.95); box-shadow: 0 10px 28px rgba(61, 50, 34, 0.06); }
.kfh-event--photo .kfh-event__card { grid-template-columns: minmax(0, 1fr) clamp(248px, 27vw, 336px); }
.kfh-event--quiet .kfh-event__card { background: rgba(255, 255, 255, 0.62); }
.kfh-event__photo { order: 2; align-self: center; width: calc(100% - 16px); aspect-ratio: 16 / 9; margin: 16px 16px 16px 0; border: 1px solid rgba(168, 135, 80, 0.24); border-radius: 3px; object-fit: cover; }
.kfh-event__body { order: 1; padding: 24px 28px 25px; }
.kfh-event__date { display: block; margin: 0 0 8px; font: 500 var(--fs-23) / 1.2 Georgia, serif; letter-spacing: 0.02em; color: var(--bronze); }
.kfh-event__tag { display: inline-block; margin-bottom: 9px; padding: 3px 10px; border-radius: var(--pill); background: var(--kfh-paper-warm); font-size: var(--fs-12); letter-spacing: 0.12em; color: var(--bronze); }
.kfh-event h3 { font-size: var(--fs-23); letter-spacing: 0.04em; }
.kfh-event p { margin: 10px 0 0; font-size: var(--fs-14); color: var(--ink-soft); }

/* 「この時代の古い記録を開く」 */
.kfh-archive { margin: 46px 0 0 calc(30% + 58px); overflow: hidden; border: 1px solid var(--kfh-line); border-radius: 14px; background: linear-gradient(rgba(255, 253, 247, 0.88), rgba(255, 253, 247, 0.88)), url("../images/background-paper-table-v1-web.webp") center / cover; }
.kfh-archive summary { padding: 18px 22px; font-weight: 600; list-style: none; cursor: pointer; }
.kfh-archive summary::after { content: "＋"; float: right; color: var(--bronze); }
.kfh-archive[open] summary::after { content: "−"; }
.kfh-archive__body { padding: 0 22px 22px; border-top: 1px solid var(--kfh-line); }
.kfh-archive__body ul { margin: 16px 0 0; }
.kfh-archive__body li { display: grid; grid-template-columns: 86px 1fr; gap: 14px; padding: 10px 0; border-bottom: 1px dashed rgba(168, 135, 80, 0.25); font-size: var(--fs-14); color: var(--ink-soft); }
.kfh-archive__body time { font-family: Georgia, serif; color: var(--bronze); }

/* 結び */
.kfh-closing { padding: 78px 24px 52px; background: var(--kfh-sage-dark); color: var(--white); text-align: center; }
.kfh-closing h2 { margin: 0 0 14px; font-size: var(--fs-36); }
.kfh-closing p { max-width: 670px; margin: auto; color: rgba(255, 255, 255, 0.82); }
.kfh-closing__cloud { width: min(680px, 86vw); max-height: 124px; margin: 24px auto 0; object-fit: contain; filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.08)); }

/* 7-7 入口（/about/）：11/9 うさぎ「シンプルすぎる。研究会がどんな会かが書いていない。任せる」
   17:07「線だけの形は手抜き。丸い顔写真は置かない。品格を高く。地域を限定しない」→ 二つ目の案
   上から：会の一文と奥付（線なし）→ 如意雲の飾り → 会長と代表（挨拶ページの写真を四角く）→ 考え方 → 会のあゆみ（四つの時代）
   17:5x うさぎ「テーブルや線がない」→ 線を無くすのは取り違え。他の 5 ページと同じ線の使い方（見出しの下線・表の横線・仕切りの線）に戻し、升目だけの形にはしない。英字は付けない */
.kf-about-hub-page .kf-page-article { padding-top: 60px; padding-bottom: 72px; }
.kf-about > * + * { margin-top: 72px; }
.kf-about h3 { margin: 0 0 34px; padding: 0 0 14px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-23); font-weight: 400; line-height: 1.5; letter-spacing: 0.12em; }

/* 会の一文と奥付 */
.kf-about__lead { margin: 0; font-size: var(--fs-28); font-weight: 400; line-height: 1.9; letter-spacing: 0.08em; text-wrap: pretty; }
.kf-about__sub { margin: 28px 0 0; font-size: var(--fs-16); line-height: 2.1; letter-spacing: 0.03em; color: var(--ink-soft); text-wrap: pretty; }
/* 奥付：横線だけの表（縦線は引かない） */
.kf-about__colophon { margin: 44px 0 0; border-top: 1px solid var(--line-strong); }
.kf-about__colophon > div { display: grid; grid-template-columns: 9em minmax(0, 1fr); align-items: baseline; padding: 13px 4px; border-bottom: 1px solid var(--line); }
.kf-about__colophon dt { font-size: var(--fs-14); line-height: 2; letter-spacing: 0.16em; color: var(--bronze); }
.kf-about__colophon dd { margin: 0; font-size: var(--fs-16); line-height: 2; letter-spacing: 0.04em; }
.kf-about__ornament { display: block; width: 300px; height: auto; margin: 44px auto 0; opacity: 0.9; }

/* 会長と代表：挨拶ページの写真を 3:4 の四角で。写真は小さく、名前を明朝で大きく */
.kf-about__person { display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: 0 44px; align-items: start; }
.kf-about__person + .kf-about__person { margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--line); }
.kf-about__portrait { display: block; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 2px; background: var(--paper); }
.kf-about__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.kf-about__portrait:hover img { transform: scale(1.03); }
.kf-about__person-copy { padding-top: 6px; }
.kf-about__person-head span { display: block; font-size: var(--fs-14); line-height: 1.8; letter-spacing: 0.2em; color: var(--bronze); }
.kf-about__person-head h4 { margin: 4px 0 18px; font-size: var(--fs-28); font-weight: 400; line-height: 1.4; letter-spacing: 0.14em; }
.kf-about__person-copy p { margin: 0; font-size: var(--fs-16); line-height: 2; letter-spacing: 0.02em; color: var(--ink-soft); text-wrap: pretty; }
.kf-about__person-copy > :where(.kf-inline) > a { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; font-size: var(--fs-14); line-height: 1.8; letter-spacing: 0.06em; color: var(--bronze); }
.kf-about__person-copy > :where(.kf-inline) > a:hover { color: var(--ink); }

/* 考え方：二つの扉。線も箱も使わず、字の大小だけ */
.kf-about__idea-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kf-about__idea { display: flex; flex-direction: column; padding: 4px 0; color: var(--ink); }
.kf-about__idea + .kf-about__idea { padding-left: 44px; border-left: 1px solid var(--line); }
.kf-about__idea:first-child { padding-right: 44px; }
.kf-about__idea > span { font-size: var(--fs-14); line-height: 1.8; letter-spacing: 0.2em; color: var(--bronze); }
.kf-about__idea h4 { margin: 8px 0 14px; font-size: var(--fs-19); font-weight: 400; line-height: 1.65; letter-spacing: 0.08em; text-wrap: pretty; transition: color 0.2s; }
.kf-about__idea p { margin: 0; font-size: var(--fs-16); line-height: 2; letter-spacing: 0.02em; color: var(--ink-soft); text-wrap: pretty; }
.kf-about__idea i { display: inline-flex; align-items: center; gap: 8px; width: fit-content; margin-top: 18px; font-size: var(--fs-14); font-style: normal; line-height: 1.8; letter-spacing: 0.06em; color: var(--bronze); transition: color 0.2s; }
.kf-about__idea:hover h4 { color: var(--bronze); }
.kf-about__idea:hover i { color: var(--ink); }

/* 会のあゆみ：四つの時代。年は小さく、名前は明朝で */
.kf-about__eras { margin: 0; padding: 0; list-style: none; }
.kf-about__eras li { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 0 24px; align-items: baseline; padding: 20px 4px; border-bottom: 1px solid var(--line); }
.kf-about__eras li:first-child { padding-top: 0; }
.kf-about__eras time { font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-16); line-height: 2; letter-spacing: 0.1em; color: var(--bronze); }
.kf-about__eras strong { display: block; font-size: var(--fs-19); font-weight: 400; line-height: 1.6; letter-spacing: 0.1em; }
.kf-about__eras span { display: block; margin-top: 6px; font-size: var(--fs-16); line-height: 2; letter-spacing: 0.02em; color: var(--ink-soft); text-wrap: pretty; }
.kf-about__history-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 28px; margin-left: calc(9.5em + 28px); font-size: var(--fs-14); line-height: 1.8; letter-spacing: 0.06em; color: var(--bronze); }
.kf-about__history-link:hover { color: var(--ink); }


@media (max-width: 1000px) {
	/* 目次は本文の下へ */
	:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile) .kf-page-layout--sidebar { grid-template-columns: 1fr; width: min(840px, 100% - 50px); }
	:is(.kf-page-context--about, .kf-page-context--reference, .kf-page-context--profile) .kf-page-article { order: 1; }
	/* 右の目次は 5 の 1000px の決まりで本文の下へ */

	/* 会のあゆみ：年表を一列に */
	.kfh-page { line-height: 1.8; }
	.kfh-masthead { min-height: 440px; padding-inline: 28px; }
	.kfh-masthead::before { inset: 14px; }
	.kfh-masthead::after { display: none; }
	.kfh-milestones { grid-template-columns: 1fr; margin-top: 36px; }
	.kfh-milestone + .kfh-milestone { border-top: 1px solid var(--kfh-line); border-left: 0; }
	.kfh-era-nav { position: static; padding: 12px; }
	.kfh-era-nav__inner { grid-template-columns: 1fr 1fr; }
	.kfh-era-nav a { border-radius: 12px; background: rgba(244, 236, 220, 0.72); }
	.kfh-era { padding: 72px 18px; }
	.kfh-era__head { grid-template-columns: 74px 1fr; gap: 12px; margin-bottom: 42px; padding-left: 0; }
	.kfh-era__number { align-self: start; font-size: var(--fs-28); transform: translateY(5px); }
	.kfh-era__motif { grid-column: 2; width: 70px; justify-self: start; }
	.kfh-era__motif--brush { width: 120px; max-height: 82px; }
	.kfh-era__motif--rock { width: 78px; max-height: 94px; }
	.kfh-era__motif--gate { width: 112px; max-height: 88px; }
	.kfh-timeline { --society-width: 0px; --axis-width: 35px; }
	.kfh-timeline::before { left: 17px; }
	.kfh-timeline__labels { display: none; }
	.kfh-event { grid-template-columns: 35px minmax(0, 1fr); margin-bottom: 22px; }
	.kfh-event__society { grid-area: 1 / 2; margin: 0 0 9px; padding: 10px 13px; border-left: 3px solid var(--kfh-gold-light); background: rgba(255, 255, 255, 0.48); text-align: left; }
	.kfh-event__society time { display: inline; margin-right: 8px; font-size: var(--fs-16); }
	.kfh-event__society span { display: inline; }
	.kfh-event__society span + span::before { content: "／"; margin-inline: 4px; color: var(--bronze); }
	.kfh-event--no-society .kfh-event__society { display: none; }
	.kfh-event--no-society .kfh-event__node,
	.kfh-event--no-society .kfh-event__card { grid-row: 1; }
	.kfh-event__node { grid-area: 1 / 1 / span 2; margin-top: 13px; }
	.kfh-event__card { grid-area: 2 / 2; }
	.kfh-event--photo .kfh-event__card { grid-template-columns: 1fr; }
	.kfh-event__photo { order: 1; width: calc(100% - 28px); margin: 14px 14px 0; }
	.kfh-event__body { order: 2; padding: 22px 20px 23px; }
	.kfh-archive { margin-left: 35px; }
	.kfh-archive__body li { grid-template-columns: 68px 1fr; gap: 8px; }
}

@media (max-width: 782px) {
	.kf-page-context--about .kf-page-article h2 { margin-top: 52px; padding-bottom: 13px; font-size: var(--fs-23); }
	.kf-message-editorial-headings.kf-editorial-headings .entry-content h2 { margin-top: 42px; padding-bottom: 11px; }
	.kf-greeting-editorial .entry-content > h2:first-of-type,
	.kf-message-editorial-headings .entry-content > .kf-message-lead { margin-bottom: 44px; font-size: var(--fs-23); line-height: 1.8; letter-spacing: 0.055em; }
	.kf-greeting-editorial .entry-content > h2:first-of-type::after,
	.kf-message-editorial-headings .entry-content > .kf-message-lead::after { margin-top: 18px; }
	.kf-page-context--about .kf-related-page__body figure { height: 100%; min-height: 104px; }
	.kf-columns { margin-block: 24px; }
	.kf-purpose-list { margin-bottom: 52px; }

	/* つなぐ箱：写真を小さく、説明と「→」は出さない */
	.kf-legacy-post-link { margin: 28px auto 32px; padding: 12px; }
	.kf-legacy-post-link > :where(.kf-inline) > a { grid-template-columns: 102px minmax(0, 1fr); gap: 12px; min-height: 104px; }
	.kf-legacy-post-link__thumb { width: 102px; height: 104px; }
	.kf-legacy-post-link__copy { padding-right: 0; }
	.kf-legacy-post-link__heading { gap: 6px; margin-bottom: 5px; }
	.kf-legacy-post-link__heading > img { width: 30px; height: 30px; }
	.kf-legacy-post-link__icon--course { padding: 4px; }
	.kf-legacy-post-link__heading small { display: none; }
	.kf-legacy-post-link__kind { position: static; flex-shrink: 0; margin: 0 0 4px; padding: 2px 7px 3px; border: 0; background: #eee7d5; }
	.kf-legacy-post-link__copy > strong { flex-shrink: 0; font-size: var(--fs-14); line-height: 1.5; }
	.kf-legacy-post-link__summary,
	.kf-legacy-post-link__action { display: none; }

	/* 入口 */
	.kf-about-hub-page .kf-page-article { padding-top: 44px; padding-bottom: 52px; }
	.kf-about > * + * { margin-top: 56px; }
	.kf-about h3 { margin-bottom: 26px; padding-bottom: 12px; font-size: var(--fs-19); }
	.kf-about__lead { font-size: var(--fs-23); line-height: 1.85; letter-spacing: 0.06em; }
	.kf-about__sub { margin-top: 22px; font-size: var(--fs-14); line-height: 2; }
	.kf-about__colophon { margin-top: 36px; }
	.kf-about__colophon > div { grid-template-columns: 1fr; padding: 11px 0; }
	.kf-about__colophon dd { font-size: var(--fs-14); line-height: 1.9; }
	.kf-about__ornament { width: 220px; margin-top: 40px; }
	/* 写真の横に役と名前、略歴は写真の下に幅いっぱい */
	.kf-about__person { grid-template-columns: 96px minmax(0, 1fr); grid-template-areas: "photo head" "body body" "link link"; gap: 0 20px; }
	.kf-about__person + .kf-about__person { margin-top: 32px; padding-top: 32px; }
	.kf-about__portrait { grid-area: photo; }
	.kf-about__person-copy { display: contents; }
	.kf-about__person-head { grid-area: head; align-self: center; }
	.kf-about__person-head h4 { margin: 2px 0 0; font-size: var(--fs-23); }
	.kf-about__person-copy p { grid-area: body; margin-top: 18px; font-size: var(--fs-14); line-height: 1.95; }
	.kf-about__person-copy > :where(.kf-inline) > a { grid-area: link; margin-top: 14px; }
	.kf-about__idea-grid { grid-template-columns: 1fr; }
	.kf-about__idea:first-child { padding-right: 0; padding-bottom: 32px; }
	.kf-about__idea + .kf-about__idea { padding-top: 32px; padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
	.kf-about__eras li { grid-template-columns: 1fr; gap: 0; padding: 16px 0; }
	.kf-about__eras time { font-size: var(--fs-14); }
	.kf-about__eras strong { font-size: var(--fs-16); }
	.kf-about__eras span { font-size: var(--fs-14); }
	.kf-about__idea p { font-size: var(--fs-14); }
	.kf-about__eras span { margin-top: 4px; }
	.kf-about__history-link { margin-top: 24px; margin-left: 0; }

	/* 会のあゆみ */
	.kfh-masthead { min-height: 420px; padding: 70px 28px 62px; }
	.kfh-masthead h1 { font-size: var(--fs-28); }
	.kfh-masthead__lead { font-size: var(--fs-14); }
	.kfh-intro { padding: 58px 22px 54px; }
	.kfh-intro h2 { font-size: var(--fs-23); }
	.kfh-milestone { padding-block: 20px; }
	.kfh-era-nav a { gap: 7px; padding: 8px; }
	.kfh-era-nav b { flex-basis: 25px; height: 25px; }
	.kfh-era { padding: 60px 14px; }
	.kfh-era__head { grid-template-columns: 61px minmax(0, 1fr); margin-bottom: 34px; }
	.kfh-era__number { margin-top: 22px; }
	.kfh-era h2 { font-size: var(--fs-28); }
	.kfh-event__body { padding: 19px 16px 21px; }
	.kfh-event h3 { font-size: var(--fs-19); }
	.kfh-archive summary { padding: 16px; }
	.kfh-archive__body { padding: 0 16px 18px; }
	.kfh-closing { padding: 66px 22px 44px; }
	.kfh-closing h2 { font-size: var(--fs-28); }
}


/* 8. 便り・練習スポット・リューダ ---------------------------------
   カテゴリー「吉祥寺カンフーライフ」（/strolling/）とその下の四つ：吉祥寺リューダ（side-trip）、井の頭公園だより（inokashira-park）、
   おすすめ練習スポット（training-spot）、カンフーライフ実践記（/note/）。
   一覧が 5 種類、記事が 5 種類（リューダ・公園だより・練習スポット・実践記・分類だけの記事）。
   並び：8-1 記事の共通の形（写真の帯・紙・本文・前後の記事・著者） → 8-2 スマホの入口 → 8-3 写真を大きく見る窓 → 8-4 段の箱
   　　　→ 8-5 一覧の共通の帯 → 8-6〜8-10 一覧 5 種類 → 8-11〜8-14 記事の種類ごとの形
   ----------------------------------------------------------- */

/* 8-1 記事の共通の形 ------------------------------------------ */

/* 写真の帯。WordPress が style="min-height:…" を直に書くので、高さだけ !important で差し替える（題の帯と同じ） */
.kf-single-hero {
	--title-h: 300px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(var(--page), 100% - 50px);
	min-height: var(--title-h) !important;
	margin: 0 auto;
	padding: 1em; /* スマホは字が 17px なので 17px になる（前と同じ） */
	overflow: clip;
	background: var(--night) var(--kf-title-image) center / cover;
	color: var(--white);
}
.kf-single-hero .wp-block-cover__background { position: absolute; inset: 0; background: var(--night); opacity: 0.5; }
.kf-single-hero .wp-block-cover__inner-container { position: relative; width: min(916px, 100% - 80px); padding: 0 25px; }
.kf-single-hero__category { margin: 0 0 14px; font-size: var(--fs-12); line-height: 1.8; letter-spacing: 0.16em; text-transform: uppercase; color: #e7e3db; }
.kf-single-hero__category a { color: inherit; }
.kf-single-hero__title { max-width: 17em; font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 500; line-height: 1.5; letter-spacing: 0.06em; text-shadow: 0 2px 18px rgba(0, 0, 0, 0.34); }
.kf-single-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-top: 24px; font-size: var(--fs-12); line-height: 1.8; color: rgba(255, 255, 255, 0.82); }
.kf-post-dates { display: inline-flex; flex-wrap: wrap; gap: 0.45em 1em; }

/* 紙と右の目次（本文 840px ＋ 目次 320px、間 40px）。練習スポットと公園だよりも同じ形 */
:is(.kf-single-layout, .practice-layout, .letter-layout) { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; width: min(var(--page), 100% - 50px); margin: 48px auto 0; }
.kf-single-article { position: relative; min-width: 0; padding: 50px 58px 54px; border: 1px solid rgba(221, 213, 199, 0.72); border-radius: 12px; background: rgba(255, 254, 251, 0.97); }
.kf-singular-featured-image { margin: 0 0 44px; overflow: hidden; border-radius: 10px; }
.kf-singular-featured-image img { width: 100%; border-radius: inherit; }

/* 本文の字 */
.kf-single-article .wp-block-post-content > :first-child { margin-top: 0; }
.kf-single-article .wp-block-post-content p { margin: 1em 0; } /* ブラウザの既定と同じ（前と同じ） */
.kf-single-article .wp-block-post-content :where(p, li) { font-size: var(--fs-16); line-height: 2; }
.kf-single-article .wp-block-post-content p + p { margin-top: 20px; }
.kf-single-article .wp-block-post-content p:is(.is-style-kakko_box, .is-style-big_kakko_box) { margin-bottom: 28px; } /* 囲みの下の間は、記事の中でも 28px（前と同じ） */
.kf-single-article .wp-block-post-content :is(.wp-block-image, .wp-block-gallery) { margin-bottom: 1em; } /* 写真の下の間はブラウザの既定のまま（前と同じ）。写真の並びの中は WordPress 本体が 0 にする */
.kf-single-article .wp-block-post-content h2 { position: relative; margin: 2.8em 0 0.83em; padding-bottom: 17px; border-bottom: 1px solid var(--line); font-size: var(--fs-23); font-weight: 500; letter-spacing: 0.055em; }
.kf-single-article .wp-block-post-content h2::after { content: ""; position: absolute; bottom: -1px; left: 0; width: clamp(175px, 37%, 260px); height: 1px; background: var(--bronze); }
.kf-single-article .wp-block-post-content h3 { margin: 2.3em 0 1em; font-weight: 500; }
.kf-single-article .wp-block-post-content figcaption { font-size: var(--fs-12); text-align: center; color: var(--ink-soft); }
.kf-single-article .wp-block-post-content :where(p:where(:not(.kf-inline)), li) > a:hover { color: var(--ink-soft); } /* 本文の中のリンクにマウスを乗せた色（前と同じ）。下線は前も無い */
.kf-single-article__terms { margin-top: 36px; font-size: var(--fs-12); color: var(--ink-soft); }
.kf-article-note-mark, .kf-food-walk-note-mark { font-weight: 600; color: #b64f49; }
.kf-article-note-mark { margin-right: 0.08em; }
body.single-post .wp-block-image img { border-radius: 0; }
body.single-post .wp-block-gallery figure.wp-block-image, body.single-post .wp-block-gallery figure.wp-block-image img { border-radius: 0; }
body.single-post .wp-block-gallery figure.wp-block-image { overflow: hidden; }
body.single-post .wp-block-gallery.kf-gallery-lightbox-ready figure.wp-block-image { position: relative; cursor: zoom-in; }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption { font-size: var(--fs-12); }
:where(figure:not(.kf-part-photo)) > .wp-element-caption { font-size: var(--fs-12); color: var(--ink-soft); }
.kf-columns--swell, .kf-columns--ark { margin-block: clamp(24px, 4vw, 42px); }
.is-style-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: clamp(18px, 3vw, 30px); align-items: start; }
.wp-block-column { min-width: 0; }

/* 章の見出し（線が一本、字は 28px の細め）。本文の見出し h2 より後に書いて勝たせる */
:is(h2.kf-editorial-section-heading, h2.kf-practice-editorial-heading, .kf-editorial-headings .entry-content > h2), :is(.kf-park-letter-editorial .letter-content, .kf-food-walk-single .entry-content, .kf-practice-note-single .entry-content) > :is(h2, h3) { position: relative; margin: 64px 0 24px; padding: 0 0 16px; border: 0; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.5; letter-spacing: 0.12em; color: var(--ink); text-wrap: pretty; }
:is(h2.kf-editorial-section-heading, h2.kf-practice-editorial-heading, .kf-editorial-headings .entry-content > h2)::after, :is(.kf-park-letter-editorial .letter-content, .kf-food-walk-single .entry-content, .kf-practice-note-single .entry-content) > :is(h2, h3)::after { content: none; }
:is(.entry-content, .practice-content, .letter-content) > :is(h2.kf-editorial-section-heading, h2.kf-practice-editorial-heading):first-child, :is(.kf-park-letter-editorial .letter-content, .kf-food-walk-single .entry-content, .kf-practice-note-single .entry-content) > :is(h2, h3):first-child { margin-top: 0; }

/* 前後の記事（本文の下、破線の上） */
.kf-post-footer-standard .kf-single-article { display: flex; flex-direction: column; }
.kf-post-footer-standard .kf-single-article > .wp-block-post-content { order: 1; width: 100%; }
.kf-post-footer-standard .kf-post-footer-primary-navigation { order: 2; width: 100%; }
.kf-post-footer-standard .kf-post-footer-author-section { order: 3; width: 100%; }
.kf-post-footer-standard .kf-single-article__terms { display: none; }
.kf-post-footer-primary-navigation { margin-top: 56px; padding-top: 30px; border-top: 1px dashed rgba(205, 189, 158, 0.7); }
.kf-post-footer-series-label { margin: 0 0 30px; }
.kf-post-footer-series-label > a { display: inline-flex; align-items: center; gap: 8px; padding: 5px 11px; border-radius: var(--pill); background: rgba(98, 92, 83, 0.65); font-size: var(--fs-12); color: var(--white); transition: background-color 0.18s; }
.kf-post-footer-series-label > a:is(:hover, :focus-visible) { background: var(--ink-soft); }
.kf-post-footer-series-label a > span { width: 7px; height: 7px; background: currentcolor; }
.kf-series-navigation { display: flex; justify-content: space-between; }
.kf-series-navigation a > span, .kf-series-navigation a > strong { display: block; }
.kf-series-navigation a > span { margin-bottom: 4px; font-size: var(--fs-12); letter-spacing: 0.1em; color: var(--bronze); }
.kf-series-navigation a > strong { font-weight: 400; }
.kf-post-footer-story-navigation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 34px; }
.kf-post-footer-story-navigation > a { display: grid; grid-template-columns: 18px 72px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 64px; padding-right: 10px; border: 1px solid transparent; border-radius: 3px; color: var(--ink); transition: background-color 0.18s, border-color 0.18s, box-shadow 0.18s, color 0.18s; }
.kf-post-footer-story-navigation > a:last-child { grid-template-columns: minmax(0, 1fr) 72px 18px; padding-right: 0; padding-left: 10px; text-align: right; }
.kf-post-footer-story-navigation > a.kf-post-footer-story-navigation__previous:only-child { grid-template-columns: 18px 72px minmax(0, 1fr); padding-right: 10px; padding-left: 0; text-align: left; }
.kf-post-footer-story-navigation > a:hover, .kf-post-footer-story-navigation > a:focus-visible { border-color: rgba(205, 189, 158, 0.48); background: color-mix(in srgb, var(--paper-white) 96%, var(--paper)); box-shadow: 0 4px 13px rgba(72, 62, 44, 0.07); color: var(--bronze); outline: 0; }
.kf-post-footer-story-navigation i { display: grid; place-items: center; width: 18px; height: 62px; background: rgba(98, 92, 83, 0.68); font-size: var(--fs-23); font-style: normal; color: var(--white); transition: background-color 0.18s; }
.kf-post-footer-story-navigation > a:hover i, .kf-post-footer-story-navigation > a:focus-visible i { background: var(--ink-soft); }
.kf-post-footer-story-navigation__image, .kf-post-footer-story-navigation__image img { display: block; width: 72px; height: 52px; border-radius: 4px; object-fit: cover; }
.kf-post-footer-story-navigation strong { font-size: var(--fs-12); font-weight: 400; line-height: 1.65; }

/* 著者の箱 */
.kf-post-footer-author-section { margin-top: 82px; }
.kf-post-footer-author-section > h2 { margin: 0 0 28px; padding-left: 16px; border-left: 2px solid var(--ink-soft); font-size: var(--fs-23); font-weight: 600; }
.kf-post-footer-author-card { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 24px; padding: 24px; border: 1px solid rgba(205, 189, 158, 0.62); border-radius: 8px; background: var(--paper-white); }
.kf-post-footer-author-card__identity { display: grid; gap: 12px; justify-items: center; align-content: center; padding-right: 24px; border-right: 1px solid var(--line); }
.kf-post-footer-author-card__identity img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; transition: filter 0.18s, transform 0.18s; }
.kf-post-footer-author-card__profile-link { display: block; padding-bottom: 9px; border-radius: 50%; } /* 下の 9px は前の行の余り（写真と名前の間）をそのまま */
.kf-post-footer-author-card__profile-link:focus-visible { outline: 2px solid var(--bronze); outline-offset: 4px; }
.kf-post-footer-author-card__profile-link:hover img, .kf-post-footer-author-card__profile-link:focus-visible img { filter: brightness(0.94) saturate(1.08); transform: scale(1.035); }
.kf-post-footer-author-card__identity strong { font-size: var(--fs-16); }
.kf-post-footer-author-card__details { display: grid; gap: 18px; align-content: center; }
.kf-post-footer-author-card__details p { margin: 0; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-post-footer-standard .kf-post-footer-author-card__details a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 18px; border: 1px solid transparent; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--line); font-size: var(--fs-12); color: var(--ink); transition: background-color 0.18s, box-shadow 0.18s, color 0.18s; }
.kf-post-footer-standard .kf-post-footer-author-card__details a:hover, .kf-post-footer-standard .kf-post-footer-author-card__details a:focus-visible { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sage) 38%, var(--line)); background: color-mix(in srgb, var(--sage) 9%, var(--paper-white)); }
.kf-post-footer-standard .kf-post-footer-author-card__details a:focus-visible { outline: 0; }
.kf-post-footer-author-card__details a span { margin-left: auto; }

/* 右の目次の「体験可」の印 */
.kf-post-sidebar .kf-navigation-trial { display: inline-block; margin-left: 5px; padding: 2px 7px; border: 1px solid #d6daca; border-radius: 4px; background: #edf0e6; font-size: var(--fs-12); line-height: 1.5; vertical-align: middle; white-space: nowrap; font-weight: 400; color: var(--ink-soft); }

/* 8-2 スマホの入口（一覧の帯の下、四つの行き先。PC では出さない） */
.kf-hub-mobile-nav { display: none; width: calc(100% - 28px); margin: 0 auto; border: 1px solid var(--line); background: rgba(255, 254, 250, 0.96); }
.kf-hub-mobile-nav a { display: flex; flex-direction: column; justify-content: center; min-height: 76px; padding: 15px 20px; font-size: var(--fs-14); text-align: center; color: var(--ink-soft); }
.kf-hub-mobile-nav a + a { border-top: 1px solid var(--line); }
.kf-hub-mobile-nav .kf-hero-fact__main { font-size: var(--fs-14); letter-spacing: 0.06em; color: var(--ink); }
.kf-hub-mobile-nav .kf-hero-fact__sub { margin-top: 6px; line-height: 1.5; }

/* 8-3 写真を大きく見る窓（dialog） */
.kf-gallery-lightbox { width: min(1180px, 100vw - 40px); max-width: none; max-height: calc(100vh - 40px); margin: auto; padding: 0; overflow: visible; border: 0; background: transparent; color: var(--white); }
.kf-gallery-lightbox__stage { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; grid-template-rows: minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: min(760px, 100vh - 40px); }
.kf-gallery-lightbox__figure { display: grid; place-items: center; min-width: 0; min-height: 0; }
.kf-gallery-lightbox__image { max-width: 100%; max-height: calc(100vh - 150px); object-fit: contain; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); }
.kf-gallery-lightbox__caption { grid-column: 2; min-height: 1.6em; font-size: var(--fs-14); line-height: 1.7; text-align: center; color: rgba(255, 255, 255, 0.82); }
.kf-gallery-lightbox__counter { position: absolute; top: 8px; left: 8px; font-size: var(--fs-12); letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.82); }
.kf-gallery-lightbox__button { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255, 255, 255, 0.48); border-radius: 50%; background: rgba(20, 20, 18, 0.34); font-size: var(--fs-23); line-height: 1; color: var(--white); cursor: pointer; transition: border-color 0.16s, background-color 0.16s; }
.kf-gallery-lightbox-ready figure.wp-block-image:focus-visible { outline: 2px solid var(--bronze); outline-offset: 4px; }
.kf-gallery-lightbox__button:hover, .kf-gallery-lightbox__button:focus-visible { border-color: var(--white); background: rgba(255, 255, 255, 0.14); outline: 0; }
.kf-gallery-lightbox__button--previous { grid-area: 1 / 1; justify-self: center; }
.kf-gallery-lightbox__button--next { grid-area: 1 / 3; justify-self: center; }
.kf-gallery-lightbox__button--close { position: absolute; z-index: 2; top: 8px; right: 8px; }

/* 8-4 段の箱（番号つきの手順。静かな形は中央寄せ） */
.kf-vertical-steps { position: relative; display: grid; gap: 14px; list-style: none; width: min(100%, 900px); margin: clamp(28px, 5vw, 48px) auto; padding: clamp(20px, 3vw, 30px); border: 1px solid #d8e0d3; border-radius: 12px; background: rgba(251, 252, 249, 0.96); }
.kf-vertical-step { position: relative; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 20px; min-width: 0; padding: 22px 24px; border: 1px solid #d8e0d3; border-radius: 10px; background: #f2f6ee; }
.kf-vertical-step:not(:last-child)::after { content: ""; position: absolute; bottom: -15px; left: 48px; width: 1px; height: 14px; background: #aab8a5; }
.kf-vertical-step__marker { position: relative; z-index: 1; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: #667a63; font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); font-variant-numeric: tabular-nums; color: var(--white); }
.kf-vertical-step__copy { min-width: 0; }
.kf-vertical-step__title { margin: 0 0 9px; font-size: var(--fs-16); font-weight: 500; line-height: 1.6; letter-spacing: 0.06em; }
.kf-vertical-step__body, .kf-vertical-step__body p { font-size: var(--fs-14); line-height: 1.9; text-align: left; color: var(--ink-soft); }
.kf-vertical-step__body > :first-child { margin-top: 0; }
.kf-vertical-step__body > :last-child { margin-bottom: 0; }
.kf-single-article .kf-vertical-step__body > :is(p, ul, ol):first-child { margin-top: 0; }
.kf-single-article .kf-vertical-step__body > :is(p, ul, ol):last-child { margin-bottom: 0; }
.kf-vertical-steps--quiet { display: block; width: min(100%, 760px); margin: clamp(32px, 6vw, 56px) auto; padding: 0; border: 0; border-radius: 0; background: transparent; }
.kf-vertical-steps--quiet .kf-vertical-step { display: block; padding: clamp(30px, 5vw, 42px) clamp(18px, 5vw, 46px) clamp(36px, 6vw, 52px); border: 0; border-top: 1px dashed rgba(124, 119, 107, 0.26); border-radius: 0; background: transparent; text-align: center; }
.kf-vertical-steps--quiet .kf-vertical-step:last-child { border-bottom: 1px dashed rgba(124, 119, 107, 0.26); }
.kf-vertical-steps--quiet .kf-vertical-step:not(:last-child)::after { bottom: -11px; left: 50%; width: 0; height: 0; border-top: 11px solid rgba(141, 138, 130, 0.24); border-right: 12px solid transparent; border-left: 12px solid transparent; background: transparent; transform: translateX(-50%); }
.kf-vertical-steps--quiet .kf-vertical-step__marker { display: flex; justify-content: center; align-items: center; width: max-content; height: auto; margin: 0 auto 18px; border-radius: 0; background: transparent; font-family: var(--font); font-size: var(--fs-28); font-weight: 400; line-height: 1; letter-spacing: 0.12em; color: var(--bronze); }
.kf-vertical-steps--quiet .kf-vertical-step__marker small { display: inline; font: inherit; letter-spacing: inherit; }
.kf-vertical-steps--quiet .kf-vertical-step__copy { width: min(100%, 620px); margin: 0 auto; }
.kf-vertical-steps--quiet .kf-vertical-step__title { margin: 0 0 15px; font-size: var(--fs-19); font-weight: 600; line-height: 1.75; letter-spacing: 0.035em; }
.kf-vertical-steps--quiet .kf-vertical-step__body, .kf-vertical-steps--quiet .kf-vertical-step__body p { font-size: var(--fs-16); line-height: 2; text-align: center; }
.kf-vertical-steps--quiet .kf-vertical-step__body p + p { margin-top: 1.45em; }

/* 8-5 一覧の共通の帯（高さ 420px、左に文・右に写真。種類ごとに色と形が違う） */
.kf-kichijoji-archive-hero { width: 100%; height: 420px; min-height: 420px; grid-template-rows: minmax(0, 1fr); overflow: hidden; }
.kf-kichijoji-archive-hero > figure { position: relative; min-width: 0; min-height: 0; align-self: stretch; overflow: hidden; }
.kf-kichijoji-archive-hero > figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* 8-6 吉祥寺カンフーライフの一覧（/strolling/）------------------- */
.life-masthead { position: relative; height: 390px; overflow: hidden; background: #f3eee3; }
.life-masthead__copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; width: min(1100px, 100% - 48px); height: 100%; margin: 0 auto; padding: 64px 48px; color: var(--white); text-shadow: 0 1px 9px rgba(23, 25, 19, 0.42); }
.life-masthead__copy > p:first-child { margin: 0 0 12px; font-size: var(--fs-12); letter-spacing: 0.19em; color: #ead8b5; }
.life-masthead h1 { max-width: 520px; font-size: var(--fs-36); font-weight: 500; line-height: 1.45; letter-spacing: 0.065em; }
.life-masthead__copy > p:last-child { max-width: 29em; margin: 23px 0 0; font-size: var(--fs-16); letter-spacing: 0.04em; color: rgba(255, 255, 255, 0.82); }
.life-masthead__pictures { position: absolute; z-index: 0; inset: 0; overflow: hidden; }
.life-masthead__pictures::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(27, 27, 21, 0.68) 0%, rgba(30, 31, 24, 0.46) 40%, rgba(30, 31, 24, 0.12) 73%, rgba(30, 31, 24, 0.08) 100%); }
.life-masthead__pictures figure { width: 100%; height: 100%; overflow: hidden; }
.life-masthead__pictures img { width: 100%; height: 100%; object-fit: cover; object-position: center 56%; filter: saturate(0.78) contrast(0.96); }
.life-shell { width: min(1100px, 100% - 48px); margin: 0 auto; }
.life-introduction { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 44px; min-height: 171px; margin: 0 0 78px; padding: 64px 42px 0; }
.life-introduction__eyebrow { margin: 8px 0 0; font-size: var(--fs-12); letter-spacing: 0.14em; color: var(--bronze); }
.life-introduction__body { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 48px; }
.life-introduction h2 { font-size: var(--fs-28); font-weight: 500; line-height: 1.8; letter-spacing: 0.055em; }
.life-introduction__body > p { margin: 3px 0 0; line-height: 2.1; color: var(--ink-soft); }
.life-pickups-section { margin-bottom: 82px; }
.life-pickups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.life-pickup { --accent: #8d7950; position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid rgba(181, 158, 111, 0.42); border-top: 3px solid var(--accent); background: rgba(255, 254, 250, 0.96); }
.life-pickup--practice { --accent: #827f65; }
.life-pickup--park { --accent: #687966; }
.life-pickup--food { --accent: #98785e; }
.life-pickup__gateway { color: inherit; }
.life-pickup__gateway::after { content: ""; position: absolute; z-index: 2; inset: 0; }
.life-pickup > header { min-height: 128px; padding: 25px 29px 23px; background: linear-gradient(135deg, rgba(247, 244, 235, 0.96), rgba(255, 254, 250, 0.96)); }
.life-pickup > header p { margin: 0 0 8px; font-size: var(--fs-12); letter-spacing: 0.15em; color: var(--accent); }
.life-pickup > header h3 { font-size: var(--fs-19); font-weight: 500; line-height: 1.55; letter-spacing: 0.045em; }
.life-pickup > header span { display: block; margin-top: 7px; font-size: var(--fs-12); color: var(--ink-soft); }
.life-pickup__image { aspect-ratio: 16 / 8.7; overflow: hidden; background: #e9e5db; }
.life-pickup__image img, .life-pickup__image .life-image-placeholder { width: 100%; height: 100%; object-fit: cover; transition: transform 0.45s, filter 0.45s; }
.life-pickup:hover .life-pickup__image img { filter: brightness(1.04); transform: scale(1.018); }
.life-pickup__copy { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 158px; padding: 25px 29px 24px; }
.life-pickup__copy > p { margin: 0 0 18px; font-size: var(--fs-14); line-height: 1.9; color: #625d54; }
.life-pickup__read { display: flex; justify-content: space-between; margin-top: auto; font-size: var(--fs-12); color: var(--bronze); }
.life-pickup:hover .life-pickup__read { color: var(--ink); }
.life-section + .life-section { margin-top: 78px; }
.life-section__header { display: flex; align-items: end; justify-content: space-between; margin-bottom: 27px; border-bottom: 1px solid var(--line); }
.life-section__header p { margin: 0 0 6px; font-size: var(--fs-12); letter-spacing: 0.15em; color: var(--bronze); }
.life-section__header h2 { padding-bottom: 12px; border-bottom: 3px solid var(--bronze-bright); font-size: var(--fs-23); font-weight: 500; line-height: 1.55; letter-spacing: 0.055em; }
.life-list { border-top: 1px solid var(--line); }
.life-list a { display: grid; grid-template-columns: 100px 145px 1fr auto; gap: 20px; align-items: center; padding: 20px 7px; border-bottom: 1px solid var(--line); color: inherit; }
.life-list a:hover { background: rgba(255, 254, 250, 0.72); }
.life-list time { font-size: var(--fs-12); color: var(--bronze); }
.life-list span { font-size: var(--fs-12); color: var(--ink-soft); }
.life-list strong { font-size: var(--fs-16); font-weight: 500; }
.life-list i { font-style: normal; color: var(--bronze); }
.life-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 50px; }
.life-pagination > * { display: grid; place-items: center; min-width: 39px; height: 39px; border: 1px solid var(--line); font-size: var(--fs-14); color: var(--ink-soft); }
.life-pagination span { border-color: var(--bronze-bright); background: var(--bronze-bright); color: var(--white); }
.life-pagination a:last-child { padding-inline: 15px; }

/* 8-7 吉祥寺リューダの一覧（/strolling/side-trip/）--------------- */
.kf-food-walk-archive p { margin: 1em 0; } /* この一覧の文の上下はブラウザの既定のまま（前と同じ） */
.kf-food-walk-archive__hero { display: grid; grid-template-columns: 42% 58%; border-block: 1px solid var(--line); background: var(--surface); }
.kf-food-walk-archive__hero-copy { padding: 42px 60px 42px max(60px, 50vw - 490px); }
.kf-food-walk-archive__hero-copy > p:first-child, .kf-food-walk-archive__kicker { font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.2em; color: var(--bronze); }
.kf-food-walk-archive__hero h1 { margin: 18px 0; font-size: var(--fs-36); font-weight: 500; line-height: 1.28; letter-spacing: 0.08em; }
.kf-food-walk-archive__hero-copy > i { display: block; width: 74px; margin: 18px 0; border-top: 1px solid #806843; }
.kf-food-walk-archive__hero-copy > p:last-child { font-size: var(--fs-16); line-height: 1.8; color: var(--ink-soft); }
.kf-food-walk-archive__shell { width: min(940px, 100% - 50px); margin: 0 auto; padding: 0 0 100px; }
.kf-food-walk-archive__guide { display: flex; gap: 28px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--line); }
.kf-food-walk-archive__guide span { margin-right: auto; font-size: var(--fs-12); color: var(--ink-soft); }
.kf-food-walk-archive__guide a { font-size: var(--fs-14); color: inherit; }
.kf-food-walk-archive__intro { max-width: 720px; margin: 64px auto 72px; text-align: center; }
.kf-food-walk-archive__intro h2 { margin: 13px 0 20px; font-size: var(--fs-28); font-weight: 500; }
.kf-food-walk-archive__intro > p:last-child { font-size: var(--fs-16); line-height: 2; color: var(--ink-soft); }
.kf-food-walk-archive__section-heading { display: flex; gap: 26px; align-items: baseline; margin-bottom: 24px; }
.kf-food-walk-archive__section-heading h2 { font-size: var(--fs-28); font-weight: 500; }
.kf-food-walk-archive__new { padding: 0 0 72px; border-bottom: 1px solid var(--line); }
.kf-food-walk-archive__new a { display: block; color: inherit; }
.kf-food-walk-archive__new figure { position: relative; overflow: hidden; }
.kf-food-walk-archive__new figure img, .kf-food-walk-archive__image-placeholder { width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s; }
.kf-food-walk-archive__new a:hover img { transform: scale(1.02); }
.kf-food-walk-archive__new-story { border: 1px solid var(--line); background: var(--surface); }
.kf-food-walk-archive__new-story > a { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr); }
.kf-food-walk-archive__new-story figure { height: 100%; min-height: 330px; }
.kf-food-walk-archive__new-story > a > div { padding: 24px 27px 28px; }
.kf-food-walk-archive__new-story > a > div > p:first-child { display: flex; gap: 15px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.08em; color: var(--bronze); }
.kf-food-walk-archive__new-story h3 { margin: 10px 0; font-size: var(--fs-23); font-weight: 500; line-height: 1.55; }
.kf-food-walk-archive__new-story > a > div > p:nth-of-type(2) { line-height: 1.8; color: var(--ink-soft); }
.kf-food-walk-archive__new i { font-size: var(--fs-12); font-style: normal; line-height: 1.5; letter-spacing: 0.08em; color: var(--bronze); }
.kf-food-walk-archive__themes { padding: 68px 0; border-bottom: 1px solid var(--line); }
.kf-food-walk-archive__themes nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); background: var(--surface); }
.kf-food-walk-archive__themes a { display: grid; grid-template-columns: 1fr 20px; gap: 14px; padding: 27px 24px; color: inherit; transition: background-color 0.18s; }
.kf-food-walk-archive__themes a:hover, .kf-food-walk-archive__themes a:focus-visible, .kf-food-walk-archive__themes a[aria-current="page"] { background: #f4f0e9; }
.kf-food-walk-archive__themes a + a { border-left: 1px solid var(--line); }
.kf-food-walk-archive__themes small { display: block; font-size: var(--fs-12); letter-spacing: 0.18em; color: var(--bronze); }
.kf-food-walk-archive__themes b { display: block; margin: 9px 0 10px; font-size: var(--fs-19); font-weight: 500; }
.kf-food-walk-archive__themes p { margin: 0; font-size: var(--fs-12); line-height: 1.7; color: var(--ink-soft); }
.kf-food-walk-archive__themes i { align-self: center; font-style: normal; color: var(--bronze); }
.kf-food-walk-archive__year { padding: 62px 0 68px; border-bottom: 1px solid var(--line); scroll-margin-top: calc(var(--header-h) + 24px); }
.kf-food-walk-archive__year > header { display: flex; gap: 26px; align-items: baseline; margin-bottom: 24px; }
.kf-food-walk-archive__year > header h2 { font-size: var(--fs-36); font-weight: 400; color: var(--bronze); }
.kf-food-walk-archive__year > header p { color: var(--ink-soft); }
.kf-food-walk-archive__list { border-top: 1px solid var(--line); }
.kf-food-walk-archive__list article { border-bottom: 1px solid var(--line); }
.kf-food-walk-archive__list article > a { display: grid; grid-template-columns: 100px 210px minmax(0, 1fr); gap: 28px; align-items: center; padding: 24px 0; color: inherit; }
.kf-food-walk-archive__list time { align-self: start; padding-top: 7px; }
.kf-food-walk-archive__list time b { display: block; font-size: var(--fs-19); font-weight: 400; color: var(--bronze); }
.kf-food-walk-archive__list time span { display: block; margin-top: 9px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-food-walk-archive__list figure { height: 132px; overflow: hidden; }
.kf-food-walk-archive__list figure img, .kf-food-walk-archive__list .kf-food-walk-archive__image-placeholder { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.25s; }
.kf-food-walk-archive__list a:hover img { opacity: 0.85; }
.kf-food-walk-archive__list h3 { margin: 0 0 9px; font-size: var(--fs-19); font-weight: 500; line-height: 1.55; }
.kf-food-walk-archive__list div > p { margin: 0 0 7px; line-height: 1.8; color: var(--ink-soft); }
.kf-food-walk-archive__list i { font-size: var(--fs-12); font-style: normal; letter-spacing: 0.1em; color: var(--bronze); }
.kf-food-walk-archive__past { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: 58px; padding: 70px 0 10px; }
.kf-food-walk-archive__past h2 { margin: 12px 0 18px; font-size: var(--fs-28); font-weight: 500; }
.kf-food-walk-archive__past > div > p:last-child { line-height: 1.9; color: var(--ink-soft); }
.kf-food-walk-archive__past nav { border-top: 1px solid var(--line); }
.kf-food-walk-archive__past nav a { display: flex; align-items: center; justify-content: space-between; padding: 18px 4px; border-bottom: 1px solid var(--line); color: inherit; }
.kf-food-walk-archive__past nav b { font-size: var(--fs-19); font-weight: 400; }
.kf-food-walk-archive__past nav span { font-size: var(--fs-12); color: var(--ink-soft); }

/* 8-8 井の頭公園だよりの一覧（/strolling/inokashira-park/）---------- */
.park-archive { --park-line: #d8c9ad; }
.park-hero { display: grid; grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr); background: #edf0e8; }
.park-hero__copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 56px 48px 56px max(48px, 50vw - 502px); }
.park-hero__copy > p:first-child { margin: 0 0 11px; font-size: var(--fs-12); letter-spacing: 0.18em; color: var(--bronze); }
.park-hero h1 { font-size: var(--fs-36); font-weight: 500; line-height: 1.45; letter-spacing: 0.07em; word-break: keep-all; }
.park-hero h1 span { display: block; white-space: nowrap; }
.park-hero__copy > p:last-child { max-width: 27em; margin: 22px 0 0; line-height: 1.9; color: var(--ink-soft); }
.park-hero img { filter: saturate(0.78) contrast(0.96); }
.park-shell { width: min(1100px, 100% - 48px); margin: 0 auto; }
.park-year { overflow: hidden; border-radius: 12px; background: rgba(255, 254, 250, 0.98); }
.park-year__header { display: flex; align-items: end; justify-content: space-between; padding: 47px 54px 30px; }
.park-year__header p { margin: 0 0 5px; font-size: var(--fs-12); letter-spacing: 0.15em; color: var(--bronze); }
.park-year__header h2 { font-size: var(--fs-28); font-weight: 500; letter-spacing: 0.06em; }
.park-year__header nav { display: flex; gap: 3px; }
.park-year__header nav a { padding: 6px 11px; font-size: var(--fs-12); color: var(--ink-soft); }
.park-year__header nav a.is-current { background: var(--bronze-bright); color: var(--white); }
.season-index { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 54px; border-top: 1px solid var(--park-line); border-bottom: 1px solid var(--park-line); }
.season-index a { padding: 16px 8px; font-size: var(--fs-16); text-align: center; color: var(--ink); }
.season-index a:hover { color: var(--ink-soft); }
.season-index a + a { border-left: 1px solid #e8dfcf; }
.season-index small { display: block; margin-top: 3px; font-size: var(--fs-12); letter-spacing: 0.14em; color: var(--ink-soft); }
.season-ledger { padding: 0 54px 55px; }
.season { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr); padding: 66px 0 72px; }
.season + .season { border-top: 1px solid var(--park-line); }
.season__name { padding-top: 2px; border-right: 1px solid var(--park-line); }
.season__name p { margin: 0 0 19px; font-size: var(--fs-12); letter-spacing: 0.23em; writing-mode: vertical-rl; color: var(--bronze); }
.season__name h3 { font-size: var(--fs-36); font-weight: 400; line-height: 1; }
.season__name span { display: block; margin-top: 15px; font-size: var(--fs-12); letter-spacing: 0.2em; color: var(--ink-soft); }
.season a { color: inherit; }
.season a:hover { color: var(--ink-soft); }
.season figure { overflow: hidden; }
.season img { width: 100%; height: 100%; object-fit: cover; transition: filter 0.2s; }
.season a:hover img { filter: saturate(0.82) brightness(0.96); }
.season h4 { font-size: var(--fs-19); font-weight: 500; line-height: 1.65; }
.season i { display: block; font-size: var(--fs-12); font-style: normal; color: var(--bronze); }
.month { display: flex; align-items: center; gap: 12px; color: var(--bronze); }
.month b { font-size: var(--fs-36); font-weight: 400; line-height: 1; }
.month span { font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.12em; }
.season-feature, .summer-records, .autumn-records, .winter-record { padding-left: 50px; }
.season-feature > a { display: grid; grid-template-columns: 1.25fr 0.75fr; min-height: 335px; }
.season-feature figure { order: 2; }
.season-feature__copy { display: flex; flex-direction: column; justify-content: center; padding: 34px 42px; background: #f5f0e3; }
.season-feature__copy h4 { margin: 22px 0 12px; font-size: var(--fs-23); }
.season-feature time { font-size: var(--fs-12); color: var(--ink-soft); }
.season-feature i { margin-top: 23px; }
.season-note { margin: 0 0 20px; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.early-months { grid-column: 2; width: calc(100% - 50px); margin: 20px 0 0 50px; padding: 13px 18px; border-bottom: 1px solid var(--park-line); font-size: var(--fs-12); color: var(--ink-soft); }
.early-months summary { list-style: none; cursor: pointer; }
.early-months[open] summary b { transform: rotate(45deg); }
.early-months span { margin-right: 18px; letter-spacing: 0.12em; color: var(--bronze); }
.early-months b { float: right; font-weight: 400; transition: transform 0.2s; }
.early-months__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 20px; }
.early-months__grid article { background: #faf7ee; }
.early-months__grid a { display: grid; grid-template-columns: 120px 1fr; align-items: center; }
.early-months__grid img { height: 105px; }
.early-months__grid div { padding: 15px; }
.early-months__grid p { font-size: var(--fs-12); color: var(--bronze); }
.early-months__grid p b { float: none; font-size: var(--fs-19); }
.early-months__grid h4 { margin: 8px 0 0; font-size: var(--fs-14); }
.summer-records { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 20px; }
.summer-pair { display: grid; gap: 20px; }
.summer-lead > a { display: flex; flex-direction: column; height: 100%; background: #eef1e9; }
.summer-lead img { height: 290px; }
.summer-lead div { padding: 28px 31px 31px; }
.summer-lead h4 { margin: 17px 0 8px; }
.summer-lead div > p:last-of-type { margin: 0 0 21px; font-size: var(--fs-14); color: var(--ink-soft); }
.summer-pair article { background: #faf7ee; }
.summer-pair a { display: grid; grid-template-columns: 44% 56%; height: 100%; }
.summer-pair img { min-height: 180px; }
.summer-pair div { display: flex; flex-direction: column; justify-content: center; padding: 21px; }
.summer-pair p { margin: 0; font-size: var(--fs-12); letter-spacing: 0.08em; color: var(--bronze); }
.summer-pair p b { margin-right: 6px; font-size: var(--fs-19); font-weight: 400; }
.summer-pair h4 { margin: 12px 0 0; font-size: 16px; }
.autumn-records { grid-column: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 20px; }
.autumn-records article { min-width: 0; }
.autumn-records a { display: grid; grid-template-rows: auto 190px auto; height: 100%; }
.autumn-records img { margin-top: 15px; }
.autumn-records h4 { margin: 13px 0 0; font-size: var(--fs-14); }
.autumn-month { display: flex; align-items: center; gap: 10px; padding: 0 0 12px; border-bottom: 1px solid var(--park-line); color: var(--bronze); }
.autumn-month b { font-size: var(--fs-28); font-weight: 400; }
.autumn-month span { font-size: var(--fs-12); line-height: 1.55; letter-spacing: 0.09em; }
.winter-record > a { display: grid; grid-template-columns: 1.35fr 0.65fr; background: #edeee9; }
.winter-record figure { height: 330px; }
.winter-record > a > div { display: flex; flex-direction: column; justify-content: center; padding: 38px; }
.winter-record h4 { margin: 22px 0 11px; font-size: var(--fs-23); }
.winter-record div > p:last-of-type { margin: 0 0 18px; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.winter-record time { font-size: var(--fs-12); color: var(--ink-soft); }
.winter-record i { margin-top: 22px; }

/* 8-9 おすすめ練習スポットの一覧（/strolling/training-spot/）------- */
.places-archive { --pp-line: #d5c7aa; --pp-dark: #4f5a50; }
.places-cover { display: flex; align-items: center; min-height: clamp(230px, 25vw, 315px); background: linear-gradient(90deg, rgba(38, 46, 39, 0.68) 0%, rgba(38, 46, 39, 0.34) 58%, rgba(38, 46, 39, 0.16) 100%), url("../images/official-nogawa-park-practice.jpg") center 52% / cover no-repeat; }
.places-cover__inner { width: min(1120px, 100% - 48px); margin: 0 auto; color: var(--white); }
.places-cover__inner p { margin: 0 0 13px; font-size: var(--fs-12); letter-spacing: 0.2em; }
.places-cover__inner h1 { font-size: var(--fs-36); font-weight: 500; line-height: 1.35; letter-spacing: 0.06em; text-shadow: 0 1px 8px rgba(20, 25, 20, 0.2); }
.places-map-hero { display: grid; grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr); gap: 58px; width: min(1120px, 100% - 48px); margin: 42px auto 0; padding: 54px 56px; background: rgba(255, 254, 251, 0.97); }
.places-map-hero__copy { align-self: center; }
@media (min-width: 1001px) and (max-width: 1209px) {
	.places-map-hero { grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.28fr); gap: 36px; padding: 44px 40px; } /* PC の窓を少し狭くした時は、地図の箱の間を詰める */
}
.places-map-hero h2 { font-size: var(--fs-28); font-weight: 500; line-height: 1.55; letter-spacing: 0.04em; }
.places-map-hero__copy > p:last-child { margin: 24px 0 0; font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.places-kicker { margin: 0 0 15px; font-size: var(--fs-12); letter-spacing: 0.16em; color: var(--bronze); }
.places-guide-map figcaption { margin: 0 0 7px; font-size: var(--fs-12); letter-spacing: 0.14em; text-align: right; color: var(--bronze); }
.places-guide-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.places-guide-map > p { margin: 6px 0 0; font-size: var(--fs-12); text-align: right; color: var(--ink-soft); }
.map-land { fill: #e8eee7; stroke: #c9bea7; stroke-width: 1.4; }
.map-boundary { fill: none; stroke: #d7cebb; stroke-width: 1; }
.map-rail { fill: none; stroke: #a17e3c; stroke-width: 2.2; }
.map-place circle { fill: #6d776d; }
.map-place text { fill: #3f463f; font-size: var(--fs-12); text-anchor: middle; }
.map-origin circle:first-child { fill: #4f5a50; }
.map-origin__ring { fill: none; stroke: #92743b; stroke-width: 1.2; }
.map-origin text { fill: var(--white); font-size: var(--fs-12); letter-spacing: 0.08em; text-anchor: middle; }
.map-origin text + text { letter-spacing: 0.04em; }
.map-origin:hover .map-origin__ring, .map-origin:focus .map-origin__ring { stroke-width: 2.4; }
.map-hit rect { fill: transparent; stroke: transparent; }
.map-hit:hover rect, .map-hit:focus rect { fill: rgba(255, 254, 251, 0.45); stroke: #92743b; stroke-width: 1.2; }
.places-journal { width: min(1060px, 100% - 48px); margin: 68px auto 0; }
.spot-regions { display: grid; gap: 76px; }
.spot-region { scroll-margin-top: 110px; }
.spot-region__heading { display: grid; grid-template-columns: 330px 1fr 112px; gap: 24px; align-items: start; margin-bottom: 24px; padding: 0 0 21px; border-bottom: 1px solid var(--pp-line); }
.spot-region__heading > p { grid-column: 3; margin: -2px 0 0; font-size: var(--fs-23); font-weight: 500; line-height: 1.25; letter-spacing: 0.08em; text-align: right; color: var(--ink-soft); }
.spot-region__heading > p::before { content: "AREA"; display: block; margin: 0 0 7px; font-size: var(--fs-12); font-weight: 500; line-height: 1; letter-spacing: 0.2em; color: var(--bronze); }
.spot-region:first-child .spot-region__heading > p::before { content: "ORIGIN"; }
.spot-region__heading h3 { grid-area: 1 / 1; font-size: var(--fs-23); font-weight: 500; line-height: 1.55; white-space: nowrap; }
.spot-region__heading div { grid-area: 1 / 2; }
.spot-region__heading div p { font-size: var(--fs-12); line-height: 1.8; color: var(--ink-soft); }
.spot-list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 22px; }
.spot-card { position: relative; grid-column: span 3; overflow: hidden; background: rgba(255, 254, 251, 0.96); color: inherit; }
.spot-card img, .spot-card .life-image-placeholder { width: 100%; aspect-ratio: 1.9 / 1; object-fit: cover; filter: saturate(0.8) contrast(0.97); transition: filter 0.25s; }
.spot-card > div { padding: 17px 18px 19px; }
.spot-card > div > p { margin: 0; }
.spot-card small { font-size: var(--fs-12); letter-spacing: 0.06em; color: var(--bronze); }
.spot-card h4 { min-height: 2.9em; margin: 6px 0 11px; font-size: var(--fs-16); font-weight: 500; line-height: 1.45; }
.spot-card h4 a { color: inherit; }
.spot-card h4 a::after { content: ""; position: absolute; inset: 0; }
.spot-card time { font-size: var(--fs-12); color: var(--ink-soft); }
.spot-card:hover img { filter: saturate(1) contrast(1); }
.spot-card:hover h4 { color: var(--bronze); }
/* 地域の最初の一枚は大きく（写真が左、文が右） */
.spot-card:first-child { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(250px, 0.55fr); grid-column: 1 / -1; min-height: 330px; border-top: 4px solid var(--pp-dark); }
.spot-card:first-child img { height: 100%; aspect-ratio: auto; }
.spot-card:first-child > div { display: flex; flex-direction: column; justify-content: center; padding: 36px 34px; }
.spot-card:first-child h4 { min-height: 0; margin: 10px 0 18px; font-size: var(--fs-23); line-height: 1.65; }
.spot-card:first-child h4::after { content: "この場所を見る →"; display: block; margin-top: 22px; font-size: var(--fs-12); font-weight: 400; letter-spacing: 0.03em; color: var(--bronze); }
/* 二枚だけの地域は、最初の一枚も普通の大きさで横に並べる */
.spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child { display: block; grid-column: span 3; min-height: 0; border-top: 0; }
.spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child img { height: auto; aspect-ratio: 1.9 / 1; }
.spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child > div { display: block; padding: 17px 18px 19px; }
.spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child h4 { min-height: 2.9em; margin: 6px 0 11px; font-size: var(--fs-16); line-height: 1.45; }
.spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child h4::after { display: none; }
.places-note { width: min(760px, 100% - 48px); margin: 74px auto 0; padding: 38px 46px; border-left: 4px solid var(--pp-dark); background: #e8eee7; }
.places-note > p:first-child { margin: 0 0 9px; font-size: var(--fs-12); letter-spacing: 0.18em; color: var(--bronze); }
.places-note h2 { margin: 0 0 14px; font-size: var(--fs-23); font-weight: 500; }
.places-note > p:not(:first-child) { line-height: 1.9; color: var(--ink-soft); }

/* 8-10 カンフーライフ実践記の一覧（/note/）------------------------- */
.kf-practice-notes-archive { --notes-line: #d8c9ad; }
.kf-practice-notes-archive__masthead { display: grid; grid-template-columns: minmax(390px, 0.88fr) minmax(540px, 1.12fr); background: #3f463d; color: var(--white); }
.kf-practice-notes-archive__masthead-copy { display: flex; flex-direction: column; justify-content: center; padding: 52px 56px 52px max(56px, 50vw - 560px); }
.kf-practice-notes-archive__kicker { margin: 0 0 16px; font-size: var(--fs-12); letter-spacing: 0.18em; color: #dccca9; }
.kf-practice-notes-archive__masthead h1 { font-size: var(--fs-28); font-weight: 500; line-height: 1.4; letter-spacing: 0.04em; white-space: nowrap; }
.kf-practice-notes-archive__masthead-copy > p:not(:first-child) { margin: 1em 0; font-size: var(--fs-16); line-height: 1.8; }
.kf-practice-notes-archive__masthead-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(63, 70, 61, 0.22), transparent 28%); pointer-events: none; }
.kf-practice-notes-archive__masthead-image figcaption { position: absolute; right: 26px; bottom: 24px; z-index: 1; padding: 8px 12px; background: rgba(255, 253, 247, 0.88); font-size: var(--fs-12); color: var(--ink-soft); }
.kf-practice-notes-archive__shell { width: min(1040px, 100% - 48px); margin: 66px auto 0; }
.kf-practice-notes-archive__introduction { display: grid; grid-template-columns: 165px minmax(0, 1fr); gap: 48px; margin-bottom: 78px; padding: 0 52px; }
.kf-practice-notes-archive__introduction > p { margin: 9px 0 0; font-size: var(--fs-12); letter-spacing: 0.16em; color: var(--bronze); }
.kf-practice-notes-archive__introduction > div { display: grid; grid-template-columns: 320px minmax(320px, 1fr); gap: 48px; align-items: start; }
.kf-practice-notes-archive__introduction h2 { font-size: var(--fs-28); font-weight: 500; line-height: 1.75; letter-spacing: 0.06em; }
.kf-practice-notes-archive__introduction > div > p { margin: 2px 0 0; line-height: 2.15; color: var(--ink-soft); }
.kf-practice-notes-archive__section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 28px; border-bottom: 1px solid var(--notes-line); }
.kf-practice-notes-archive__section-heading p { margin: 0 0 6px; font-size: var(--fs-12); letter-spacing: 0.16em; color: var(--bronze); }
.kf-practice-notes-archive__section-heading h2 { padding: 0 0 13px; border-bottom: 2px solid var(--bronze-bright); font-size: var(--fs-23); font-weight: 500; letter-spacing: 0.05em; }
.kf-practice-notes-archive__feature { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(340px, 0.82fr); background: var(--paper-white); }
.kf-practice-notes-archive__feature-image { min-height: 390px; overflow: hidden; }
.kf-practice-notes-archive__feature-image img, .kf-practice-notes-archive__feature-image .kf-practice-notes-archive__image-placeholder { width: 100%; height: 100%; object-fit: cover; }
.kf-practice-notes-archive__feature-copy { align-self: center; padding: 46px 48px; }
.kf-practice-notes-archive__feature-label { margin: 0 0 11px; font-size: var(--fs-12); letter-spacing: 0.1em; color: var(--bronze); }
.kf-practice-notes-archive__feature h3 { margin: 0 0 20px; font-size: var(--fs-28); font-weight: 500; line-height: 1.65; letter-spacing: 0.045em; }
.kf-practice-notes-archive__feature h3 a, .kf-practice-notes-archive__entry h3 a { color: inherit; }
.kf-practice-notes-archive__feature-copy > p:not(.kf-practice-notes-archive__feature-label) { margin: 0 0 25px; line-height: 2; color: var(--ink-soft); }
.kf-practice-notes-archive__read { display: inline-flex; gap: 18px; padding-bottom: 4px; font-size: var(--fs-14); color: var(--bronze); }
.kf-practice-notes-archive__all { margin-top: 82px; }
.kf-practice-notes-archive__index { border-top: 1px solid var(--notes-line); }
.kf-practice-notes-archive__entry { display: grid; grid-template-columns: 74px 292px minmax(0, 1fr); gap: 30px; align-items: center; padding: 30px 10px; border-bottom: 1px solid var(--notes-line); }
.kf-practice-notes-archive__entry time { align-self: start; padding-top: 6px; font-style: normal; color: var(--bronze); }
.kf-practice-notes-archive__entry time b { display: block; font-size: var(--fs-12); font-weight: 400; letter-spacing: 0.08em; }
.kf-practice-notes-archive__entry time span { display: block; margin-top: 3px; font-size: var(--fs-16); }
.kf-practice-notes-archive__entry-image { display: block; overflow: hidden; border-radius: 10px; }
.kf-practice-notes-archive__entry-image img, .kf-practice-notes-archive__entry-image .kf-practice-notes-archive__image-placeholder { width: 100%; aspect-ratio: 16 / 8.3; border-radius: 10px; object-fit: cover; transition: transform 0.35s; }
.kf-practice-notes-archive__entry:hover .kf-practice-notes-archive__entry-image img { transform: scale(1.025); }
.kf-practice-notes-archive__entry-copy > p:first-child { margin: 0 0 6px; font-size: var(--fs-12); letter-spacing: 0.1em; color: var(--bronze); }
.kf-practice-notes-archive__entry h3 { margin: 0 0 10px; font-size: var(--fs-19); font-weight: 500; line-height: 1.6; letter-spacing: 0.035em; }
.kf-practice-notes-archive__entry-copy > p:not(:first-child) { font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-practice-notes-archive__back { margin-top: 34px; text-align: right; }
.kf-practice-notes-archive__back a { font-size: var(--fs-12); color: var(--bronze); }

/* 8-11 吉祥寺リューダの記事（店の情報の表と、近くの記録の箱）------- */
.kf-food-walk-section-heading { margin-bottom: 24px; }
body.kf-food-walk-single .entry-content > .kf-editorial-section-heading:first-child { margin-top: 0; }
.kf-information-list { overflow: hidden; margin: 0; border: 1px solid rgba(205, 189, 158, 0.82); border-radius: 10px; background: #fffefa; box-shadow: 0 9px 22px rgba(72, 62, 44, 0.06); }
.kf-information-list__item { display: grid; align-items: start; margin: 0; }
.kf-information-list__item dt { margin: 2px 0 0; font-weight: 500; letter-spacing: 0.08em; color: var(--bronze); }
.kf-information-list__item dd { min-width: 0; margin: 0; line-height: 1.8; color: var(--ink-soft); }
.kf-information-list__item dd > :where(.kf-inline) > strong { display: block; font-weight: 500; color: var(--ink); }
.kf-information-list__item dd > :where(.kf-inline) > small { display: block; margin-top: 6px; font-size: 1em; line-height: 1.7; color: var(--ink-soft); }
.kf-food-walk-shop-info { margin-top: 58px; }
.kf-food-walk-shop-info .kf-food-walk-section-heading { margin-top: 0; }
.kf-food-walk-shop-info__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kf-food-walk-shop-info__item { grid-template-columns: 74px minmax(0, 1fr); gap: 16px; padding: 22px; }
.kf-food-walk-shop-info__item:nth-child(2) { border-left: 1px solid var(--line); }
.kf-food-walk-shop-info__item--wide { grid-column: 1 / -1; border-top: 1px solid var(--line); }
.kf-food-walk-shop-info__links { display: flex; flex-wrap: wrap; gap: 10px; }
.kf-food-walk-shop-info__links a { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 7px 13px; border: 1px solid rgba(98, 92, 83, 0.44); border-radius: var(--pill); background: rgba(245, 241, 233, 0.82); font-size: var(--fs-12); color: var(--ink-soft); transition: background-color 0.18s, border-color 0.18s, color 0.18s; }
.kf-food-walk-shop-info__links a:hover, .kf-food-walk-shop-info__links a:focus-visible { border-color: var(--ink-soft); background: var(--ink-soft); color: var(--white); outline: 0; }
.kf-single-article .wp-block-post-content .kf-food-walk-shop-info + p { margin: 18px 0 1em; font-size: var(--fs-16); line-height: 2; text-align: right; color: var(--ink-soft); }
/* 近くの記録（写真が上の箱、二列） */
.kf-food-walk-nearby { margin-top: 64px; }
.kf-food-walk-nearby__heading { margin-top: 0; margin-bottom: 24px; }
.kf-food-walk-nearby__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.kf-food-walk-nearby__card { min-width: 0; margin: 0; }
.kf-food-walk-nearby__card > :where(.kf-inline) > a { display: block; height: 100%; overflow: hidden; border: 1px solid rgba(205, 189, 158, 0.78); border-radius: 10px; background: #fffefa; box-shadow: 0 9px 22px rgba(72, 62, 44, 0.07); color: var(--ink); transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s; }
.kf-food-walk-nearby__card img, .kf-food-walk-nearby__card .life-image-placeholder { width: 100%; aspect-ratio: 1.9 / 1; object-fit: cover; filter: saturate(0.82) contrast(0.97); transition: filter 0.18s; }
.kf-food-walk-nearby__copy { display: grid; align-content: start; min-height: 132px; padding: 18px 20px 20px; }
.kf-food-walk-nearby__copy small { font-size: var(--fs-12); letter-spacing: 0.08em; color: var(--bronze); }
.kf-food-walk-nearby__copy strong { margin-top: 7px; font-size: var(--fs-16); font-weight: 500; line-height: 1.55; }
.kf-food-walk-nearby__action { align-self: end; margin-top: 18px; font-size: var(--fs-12); letter-spacing: 0.04em; color: var(--ink-soft); }
.kf-food-walk-nearby__action i { margin-left: 5px; font-style: normal; }
.kf-food-walk-nearby__card > :where(.kf-inline) > a:hover, .kf-food-walk-nearby__card > :where(.kf-inline) > a:focus-visible { border-color: var(--line-strong); box-shadow: 0 13px 28px rgba(72, 62, 44, 0.11); transform: translateY(-2px); outline: 0; }
.kf-food-walk-nearby:not(.kf-practice-nearby) .kf-food-walk-nearby__card > :where(.kf-inline) > a:is(:hover, :focus-visible) img { filter: saturate(1) contrast(1); }
/* 練習スポットの記事では一列の細い箱（写真が左、小さな札が枠の上） */
.kf-practice-nearby .kf-food-walk-nearby__grid { grid-template-columns: 1fr; width: 94%; gap: 18px; margin-inline: auto; }
.kf-practice-nearby .kf-food-walk-nearby__card { position: relative; }
.kf-practice-nearby .kf-food-walk-nearby__card > :where(.kf-inline) > a { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; min-height: 126px; padding: 20px 20px 18px; overflow: visible; border: 1px solid #d9cfbd; border-radius: 4px; background: #fffefa; box-shadow: none; }
.kf-practice-nearby .kf-food-walk-nearby__card img, .kf-practice-nearby .kf-food-walk-nearby__card .life-image-placeholder { height: 88px; aspect-ratio: auto; border-radius: 2px; filter: saturate(0.9) contrast(0.98); }
.kf-practice-nearby .kf-food-walk-nearby__copy { min-height: 0; padding: 0 0 0 20px; }
.kf-practice-nearby .kf-food-walk-nearby__copy small { position: absolute; top: -9px; left: 18px; display: inline-block; padding: 0 8px; background: #fffefa; line-height: 1.5; }
.kf-practice-nearby .kf-food-walk-nearby__copy strong { margin-top: 0; line-height: 1.65; }
.kf-practice-nearby .kf-food-walk-nearby__copy strong::after { content: "→"; margin-left: 7px; font-size: var(--fs-12); font-weight: 400; color: var(--bronze); }
.kf-practice-nearby .kf-food-walk-nearby__action { display: none; }
.kf-practice-nearby .kf-food-walk-nearby__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin-top: 7px; font-size: var(--fs-12); line-height: 1.75; color: var(--ink-soft); }
.kf-practice-nearby .kf-food-walk-nearby__card > :where(.kf-inline) > a:hover, .kf-practice-nearby .kf-food-walk-nearby__card > :where(.kf-inline) > a:focus-visible { border-color: #b9a680; background: #fffdf7; box-shadow: 0 5px 14px rgba(72, 62, 44, 0.05); transform: none; }

/* 8-12 井の頭公園だよりの記事（左に月と題、右に写真）------------- */
.letter-post { --letter-gold: #9b7939; --letter-line: #d9cdb7; color: var(--ink); }
.letter-content h2.kf-editorial-section-heading, .kf-park-letter-editorial .letter-content > :is(h2, h3) { word-break: keep-all; overflow-wrap: anywhere; } /* 便りの見出しだけ前から単語で折り返す */
.letter-hero { position: relative; display: grid; grid-template-columns: minmax(340px, 0.72fr) minmax(0, 1.48fr); width: min(var(--page), 100% - 50px); margin: 0 auto; background: #edf1eb; }
.letter-hero figure { min-height: 510px; }
.letter-hero figure img { width: 100%; height: 100%; object-fit: cover; }
.letter-hero__copy { display: flex; flex-direction: column; justify-content: center; padding: 58px 54px; color: #2f332e; }
.letter-month { display: flex; align-items: center; gap: 13px; margin-bottom: 34px; color: var(--letter-gold); }
.letter-month b { font-size: 4.6rem; font-weight: 400; line-height: 0.8; }
.letter-month span { padding-left: 13px; border-left: 1px solid rgba(155, 121, 57, 0.45); font-size: 0.62rem; line-height: 1.7; letter-spacing: 0.13em; }
.letter-hero__label { margin: 0 0 12px; font-size: 0.65rem; letter-spacing: 0.18em; color: var(--letter-gold); }
.letter-hero h1 { font-size: clamp(2.35rem, 4vw, 3.2rem); font-weight: 500; line-height: 1.35; letter-spacing: 0.08em; }
.letter-hero h1 + p { margin: 20px 0 0; font-size: 0.88rem; line-height: 1.9; }
.letter-hero__meta { display: flex; gap: 16px; margin-top: 28px; padding-top: 17px; border-top: 1px solid rgba(155, 121, 57, 0.32); font-size: 0.7rem; color: #696a64; }
.letter-article { min-width: 0; padding: 68px 54px; border-radius: 12px; background: rgba(255, 255, 253, 0.99); }
.letter-content { font-size: var(--fs-16); line-height: 1.9; }
.letter-content > :first-child { margin-top: 0; }
.letter-content p { margin: 1em 0; line-height: 1.9; }
.letter-content p + p { margin-top: 19px; }
.letter-content h2, .letter-content h3 { position: relative; margin: 66px 0 28px; padding-bottom: 17px; border-bottom: 1px solid var(--letter-line); font-weight: 600; letter-spacing: 0.06em; }
.letter-content h2 { font-size: var(--fs-23); }
.letter-content h2::after, .letter-content h3::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 38%; height: 1px; background: var(--letter-gold); }
.letter-content figure { margin: 58px 0 0; }
.letter-content img { border-radius: 7px; }
.letter-content figcaption { margin-top: 11px; font-size: var(--fs-12); line-height: 1.65; color: var(--ink-soft); }
.letter-content > .kf-columns--swell figure.wp-block-image { margin-top: 0; }

/* 8-13 おすすめ練習スポットの記事 ---------------------------------- */
.practice-post { --place-gold: #9b7939; --place-line: #d9cdb7; color: var(--ink); }
.practice-hero { position: relative; display: flex; align-items: center; min-height: clamp(330px, 34vw, 475px); padding: 72px max(24px, 50% - 600px) 68px; overflow: hidden; background: linear-gradient(90deg, rgba(28, 37, 30, 0.77) 0%, rgba(28, 37, 30, 0.42) 48%, rgba(28, 37, 30, 0.12) 100%), var(--practice-hero-image, linear-gradient(#526156, #526156)) center / cover no-repeat; color: var(--white); }
.practice-hero__inner { position: relative; z-index: 2; width: 100%; max-width: 760px; color: rgba(255, 255, 255, 0.82); }
.practice-hero__eyebrow { font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); line-height: 1.6; letter-spacing: 0.16em; text-transform: uppercase; }
.practice-hero__area { margin: 0 0 8px; font-size: var(--fs-12); letter-spacing: 0.08em; }
.practice-hero h1 { max-width: 17em; margin: 8px 0 10px; font-size: var(--fs-36); font-weight: 500; line-height: 1.5; letter-spacing: 0.08em; color: var(--white); text-shadow: 0 2px 18px rgba(0, 0, 0, 0.32); }
.practice-hero__summary { max-width: 48em; margin: 17px 0 0; font-size: var(--fs-16); letter-spacing: 0.04em; }
.practice-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 17px; margin-top: 25px; font-size: var(--fs-12); }
.practice-hero__meta a { color: inherit; text-underline-offset: 0.3em; }
.practice-layout { margin-top: 42px; }
.practice-article { min-width: 0; padding: 54px 58px; border-radius: 12px; background: rgba(255, 255, 253, 0.99); }
.practice-content { font-size: var(--fs-16); line-height: 1.9; }
.practice-content > :first-child { margin-top: 0; }
.practice-content p { line-height: 1.9; }
.practice-content p + p { margin-top: 20px; }
.practice-content h2, .practice-content h3 { position: relative; margin: 58px 0 26px; padding-bottom: 16px; border-bottom: 1px solid var(--place-line); font-weight: 600; letter-spacing: 0.05em; }
.practice-content h2 { font-size: var(--fs-23); }
.practice-content h2::after, .practice-content h3::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 36%; height: 1px; background: var(--place-gold); }
.practice-content figure { margin: 58px 0 0; }
.practice-content img { border-radius: 8px; }
.practice-content figcaption { margin-top: 10px; font-size: var(--fs-12); color: var(--ink-soft); }
.practice-content h2.kf-practice-editorial-heading { border-bottom-color: var(--place-line); text-wrap: wrap; } /* 練習スポットの見出しは線が少し薄く、折り返しはふつう（前と同じ） */
.practice-content > h2.kf-practice-editorial-heading + .wp-block-gallery { margin-top: 0; }
/* 写真を三列に。WordPress 本体が id 並みの強さで幅と余白を書くので、その二つだけ !important */
.practice-content > .wp-block-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.practice-content > .wp-block-gallery > .wp-block-image { width: auto !important; margin: 0 !important; }
.practice-content > .wp-block-gallery > .wp-block-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
/* こんな人に（行の表） */
.kf-practice-suitability__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.kf-practice-suitability__list li { position: relative; isolation: isolate; min-width: 0; min-height: 128px; padding: 23px 26px 22px 64px; overflow: hidden; border-radius: 20px 20px 20px 7px; background: linear-gradient(135deg, #fbfff8 0%, #eef8e9 100%); box-shadow: 0 9px 22px rgba(74, 92, 61, 0.1); }
.kf-practice-suitability__list li:nth-child(2n) { border-radius: 20px 20px 7px; background: linear-gradient(135deg, #faffff 0%, #eaf7f6 100%); }
.kf-practice-suitability__list li:last-child:nth-child(2n+1) { grid-column: 1 / -1; }
.kf-practice-suitability__list li::before { content: "✓"; position: absolute; top: 29px; left: 28px; font-size: var(--fs-16); line-height: 1; color: #5f9660; }
.kf-practice-suitability__list li:nth-child(2n)::before { color: #438c8b; }
.kf-practice-suitability__list strong, .kf-practice-suitability__list span { position: relative; z-index: 1; display: block; font-size: var(--fs-16); line-height: 1.75; }
.kf-practice-suitability__list strong { font-weight: 500; line-height: 1.55; color: var(--ink); }
.kf-practice-suitability__list strong::before { content: attr(data-kf-en); display: block; margin-bottom: 5px; font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); font-weight: 400; line-height: 1.3; letter-spacing: 0.18em; color: var(--ink-soft); }
.kf-practice-suitability__list li:nth-child(2n) strong::before { color: #5b9290; }
.kf-practice-suitability__list span { margin-top: 8px; color: var(--ink-soft); }
.kf-practice-suitability--compact-list .kf-practice-suitability__list { display: block; }
.kf-practice-suitability--compact-list .kf-practice-suitability__list li { display: grid; grid-template-columns: minmax(150px, 0.55fr) minmax(0, 1fr); grid-column: auto; align-items: center; min-height: 0; padding: 17px 4px; overflow: visible; border-bottom: 1px solid var(--place-line); border-radius: 0; background: transparent; box-shadow: none; }
.kf-practice-suitability--compact-list .kf-practice-suitability__list li::before { content: none; }
.kf-practice-suitability--compact-list .kf-practice-suitability__list strong { grid-area: 1 / 1; }
.kf-practice-suitability--compact-list .kf-practice-suitability__list span { grid-area: 1 / 2; margin: 0; }
/* 場所の性格（五段階の目盛り） */
.kf-practice-profile__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.kf-practice-profile__list li { --profile-accent: #6d9b83; min-width: 0; padding: 18px 20px 16px; border: 1px solid #d8e5dc; border-radius: 12px 12px 12px 4px; background: linear-gradient(145deg, #fdfffc 0%, #f2f8f3 100%); }
.kf-practice-profile__list li:nth-child(2) { --profile-accent: #b87f88; border-color: #ead9dc; background: linear-gradient(145deg, #fffdfd 0%, #fbf2f4 100%); }
.kf-practice-profile__list li:nth-child(3) { --profile-accent: #b58a43; --profile-text: var(--bronze); border-color: #eadfc9; background: linear-gradient(145deg, #fffefa 0%, #faf5e9 100%); }
.kf-practice-profile__list li:nth-child(4) { --profile-accent: #5c8e9b; border-color: #d4e4e7; background: linear-gradient(145deg, #fcffff 0%, #edf6f7 100%); }
.kf-practice-profile__name { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.kf-practice-profile__name strong { font-size: var(--fs-16); font-weight: 500; }
.kf-practice-profile__name small { font-size: var(--fs-12); letter-spacing: 0.04em; color: var(--profile-text, var(--profile-accent)); }
.kf-practice-profile__axis { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; margin: 17px 3px 8px; }
.kf-practice-profile__axis::before { content: ""; position: absolute; right: 4px; left: 4px; height: 1px; background: color-mix(in srgb, var(--profile-accent) 32%, #d9d7cf); }
.kf-practice-profile__axis i { z-index: 1; width: 8px; height: 8px; justify-self: center; border-radius: 50%; background: #d8d8d1; }
.kf-practice-profile__axis i.is-active { width: 14px; height: 14px; background: var(--profile-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--profile-accent) 17%, transparent); }
.kf-practice-profile__range { display: flex; justify-content: space-between; font-size: var(--fs-12); line-height: 1.5; color: var(--ink-soft); }
/* 練習の条件（緑の見出し、設備、ルールーの一言、季節の注意） */
.kf-practice-conditions--with-lulu > h2.kf-practice-editorial-heading { margin: 54px 0 0; padding: 17px 24px; border: 1px solid #7fa06e; border-radius: 13px 13px 0 0; background: linear-gradient(105deg, #78a268 0%, #9abb72 55%, #b3c783 100%); font-size: var(--fs-19); font-weight: 600; letter-spacing: 0.08em; text-align: center; text-shadow: 0 1px 2px rgba(59, 85, 49, 0.2); color: var(--white); box-shadow: 0 7px 18px rgba(83, 112, 66, 0.14), inset 0 1px rgba(255, 255, 255, 0.28); }
.kf-practice-conditions--with-lulu > h2.kf-practice-editorial-heading::before, .kf-practice-conditions--with-lulu > h2.kf-practice-editorial-heading::after { content: "✦"; display: inline-block; font-size: var(--fs-12); line-height: 1; color: #fff0ad; }
.kf-practice-conditions--with-lulu > h2.kf-practice-editorial-heading::before { margin-right: 12px; }
.kf-practice-conditions--with-lulu > h2.kf-practice-editorial-heading::after { position: static; width: auto; height: auto; margin-left: 12px; background: transparent; }
.kf-practice-conditions__panel { overflow: hidden; border: 1px solid #d9cfbc; border-top: 0; border-radius: 0 0 10px 10px; background: #fffdfa; box-shadow: 0 9px 22px rgba(72, 62, 44, 0.07); }
.kf-practice-conditions__main { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; align-items: stretch; min-height: 262px; padding: 28px 28px 18px; }
.kf-practice-facilities { padding-top: 4px; }
.kf-practice-conditions__label { margin: 0 0 14px; font-size: var(--fs-16); font-weight: 500; letter-spacing: 0.12em; color: var(--bronze); }
.kf-practice-conditions--caution-led .kf-practice-conditions__label { display: flex; gap: 12px; align-items: baseline; }
.kf-practice-conditions--caution-led .kf-practice-conditions__label::after { content: ""; flex: 1 1 0; height: 1px; background: #dfd2bb; }
.kf-practice-facilities li { position: relative; padding: 12px 0 12px 32px; border-bottom: 1px solid #ddd4c2; font-size: var(--fs-16); line-height: 1.65; }
.kf-practice-facilities li::before { content: "✓"; position: absolute; top: 13px; left: 3px; font-size: var(--fs-16); font-weight: 600; line-height: 1; color: #7eaa70; }
.kf-practice-conditions--caution-led .kf-practice-facilities li { padding-left: 22px; }
.kf-practice-conditions--caution-led .kf-practice-facilities li::before { content: ""; top: 23px; left: 5px; width: 4px; height: 4px; border-radius: 50%; background: #a78a58; }
.kf-practice-lulu-guide { position: relative; min-height: 270px; }
.kf-practice-lulu-balloon { position: relative; z-index: 2; width: 210px; margin: 0 auto; padding: 14px 16px; border: 1px solid #b4a993; border-radius: 11px; background: var(--white); font-size: var(--fs-16); line-height: 1.65; text-align: center; color: var(--ink); }
.kf-practice-lulu-balloon::before, .kf-practice-lulu-balloon::after { content: ""; position: absolute; left: 62px; width: 0; height: 0; border-right: 12px solid transparent; border-left: 12px solid transparent; transform: translateX(-50%); }
.kf-practice-lulu-balloon::before { bottom: -14px; border-top: 14px solid #b4a993; }
.kf-practice-lulu-balloon::after { bottom: -12px; border-right-width: 11px; border-left-width: 11px; border-top: 13px solid var(--white); }
.practice-content .kf-practice-lulu-guide__image { position: absolute; z-index: 1; right: 23px; bottom: -5px; width: 170px; max-width: none; border-radius: 0; filter: drop-shadow(0 7px 6px rgba(73, 61, 38, 0.15)); }
.kf-practice-cautions-label { display: flex; gap: 12px; align-items: baseline; margin: 2px 22px 14px; font-size: var(--fs-16); font-weight: 500; letter-spacing: 0.1em; color: #9a575a; }
.kf-practice-cautions-label::after { content: ""; flex: 1 1 0; height: 1px; background: #ead4d4; }
.kf-practice-season-notes { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; padding: 0 22px 22px; }
.kf-practice-season-notes:has(li:nth-child(4)):not(:has(li:nth-child(5))) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kf-practice-season-notes li { position: relative; isolation: isolate; min-width: 0; min-height: 178px; padding: 20px 18px 18px; overflow: hidden; border-radius: 17px 17px 17px 6px; background: linear-gradient(145deg, #f8ffff 0%, #e8f8f6 100%); font-size: var(--fs-16); line-height: 1.75; box-shadow: 0 8px 20px rgba(65, 105, 99, 0.1); }
.kf-practice-season-notes li.is-blossom { border-radius: 17px 17px 6px; background: linear-gradient(145deg, #fffafb 0%, #ffecef 100%); box-shadow: 0 8px 20px rgba(153, 91, 104, 0.09); }
.kf-practice-season-notes li.is-summer { background: linear-gradient(145deg, #fffdf6 0%, #fff3cf 100%); box-shadow: 0 8px 20px rgba(159, 119, 49, 0.1); }
.kf-practice-season-notes li.is-facilities { background: linear-gradient(145deg, #fffdf9 0%, #fff1e6 100%); box-shadow: 0 8px 20px rgba(177, 103, 55, 0.09); }
.kf-practice-season-notes li::before { content: ""; position: absolute; z-index: -1; top: -35px; right: -34px; width: 132px; height: 132px; border-radius: 50%; background: rgba(84, 186, 178, 0.12); }
.kf-practice-season-notes li.is-blossom::before { background: rgba(235, 137, 157, 0.12); }
.kf-practice-season-notes li.is-summer::before { background: rgba(236, 185, 74, 0.13); }
.kf-practice-season-notes li.is-facilities::before { background: rgba(232, 145, 85, 0.11); }
.kf-practice-season-notes strong, .kf-practice-season-notes span { display: block; }
.kf-practice-season-notes strong { position: relative; min-height: 60px; margin-bottom: 8px; padding: 22px 68px 0 0; font-size: var(--fs-19); font-weight: 500; line-height: 1.4; letter-spacing: 0.12em; color: #317a76; }
.kf-practice-season-notes strong::before { content: ""; position: absolute; z-index: 1; top: -5px; right: 0; width: 62px; height: 62px; background: url("../images/practice-icon-sunrise.png") center / contain no-repeat; }
.kf-practice-season-notes strong::after { content: attr(data-kf-en); position: absolute; top: 0; left: 0; font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); font-weight: 400; line-height: 1; letter-spacing: 0.2em; color: #4e9993; }
.kf-practice-season-notes .is-blossom strong { color: #a45f6d; }
.kf-practice-season-notes .is-blossom strong::before { background-image: url("../images/practice-icon-sakura.png"); }
.kf-practice-season-notes .is-blossom strong::after { color: #c17d88; }
.kf-practice-season-notes .is-summer strong, .kf-practice-season-notes .is-summer strong::after, .kf-practice-season-notes .is-facilities strong, .kf-practice-season-notes .is-facilities strong::after { color: var(--bronze); }
.kf-practice-season-notes .is-summer strong::before { background-image: url("../images/practice-icon-morning-glory.png"); }
.kf-practice-season-notes .is-facilities strong::before { background-image: url("../images/practice-icon-facilities.png"); }
.kf-practice-season-notes span { line-height: 1.75; color: var(--ink); }
/* 施設情報の表と、近くの記録 */
.kf-practice-information .kf-information-list__item { grid-template-columns: 128px minmax(0, 1fr); gap: 22px; padding: 18px 20px; }
.kf-practice-information .kf-information-list__item + .kf-information-list__item { border-top: 1px solid rgba(217, 205, 183, 0.7); }
.kf-practice-information__links { display: grid; gap: 9px; }
.kf-practice-information__links a { overflow-wrap: anywhere; color: var(--bronze); text-underline-offset: 0.28em; }
.kf-practice-nearby { margin-top: 64px; }
.kf-practice-nearby .kf-practice-editorial-heading { margin-top: 0; }

/* 8-14 カンフーライフ実践記の記事（写真の下に白い紙の題）------------ */
.kf-journal-hero { display: flex; flex-direction: column; width: min(var(--page), 100% - 50px); margin: 0 auto; color: var(--ink); }
.kf-journal-hero__photo { overflow: hidden; }
.kf-journal-hero__photo, .kf-journal-hero__featured, .kf-journal-hero__featured a { height: 410px; }
.kf-journal-hero__featured img { width: 100%; height: 100%; object-fit: cover; }
.kf-journal-hero__copy { position: relative; z-index: 2; width: min(900px, 100% - 72px); margin: -64px auto 0; padding: 34px 50px 35px; background: rgba(255, 254, 251, 0.9); }
.kf-journal-kicker, .kf-journal-chapter { font-size: var(--fs-12); line-height: 1.6; letter-spacing: 0.17em; color: var(--bronze); }
.kf-journal-hero__category { margin: 12px 0 8px; font-size: var(--fs-12); letter-spacing: 0.08em; color: #424a40; }
.kf-journal-hero__title { font-size: clamp(2.05rem, 3vw, 2.85rem); font-weight: 500; line-height: 1.65; letter-spacing: 0.06em; white-space: nowrap; }
.kf-journal-hero .kf-journal-hero__copy .kf-journal-hero__rule { width: 72px; margin: 22px 0 17px; border: 0; border-top: 1px solid var(--bronze-bright); opacity: 1; } /* WordPress 本体の区切り線の幅 100px を上書きするため、三つ重ねて強くする */
.kf-journal-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; font-size: var(--fs-12); color: #686258; }
.kf-journal-hero__author .wp-block-post-author__name { margin: 0; }
.kf-journal-layout { margin-top: 52px; }
.kf-journal-article { padding-top: 58px; }
.kf-journal-article .wp-block-post-content :where(p, li) { line-height: 2.12; }
.kf-journal-back { order: 4; margin: 25px 0 1em; text-align: right; }
.kf-journal-back a { font-size: var(--fs-12); color: var(--bronze); }
.kf-journal-back a:hover { color: var(--ink-soft); }
/* 実践記の本文：字をやや広く、見出しは章の見出し、関連の案内は左に線のある箱 */
body.kf-practice-note-single .kf-single-article .wp-block-post-content > :empty { display: none; }
body.kf-practice-note-single .kf-single-article .wp-block-post-content > p { margin: 0 0 22px; font-size: var(--fs-16); line-height: 2.08; letter-spacing: 0.025em; }
body.kf-practice-note-single .kf-single-article .wp-block-post-content a { background-image: linear-gradient(transparent 82%, rgba(190, 157, 91, 0.2) 0); color: var(--bronze); }
body.kf-practice-note-single .kf-single-article .wp-block-post-content a:hover, body.kf-practice-note-single .kf-single-article .wp-block-post-content a:focus-visible { background-color: #f6f3eb; color: var(--bronze); }
body.kf-practice-note-single h2.kf-practice-note-heading, body.kf-practice-note-single .entry-content > :is(h2, h3) { margin: 66px 0 25px; letter-spacing: 0.1em; }
body.kf-practice-note-single .kf-single-article .wp-block-post-content > p.is-style-big_icon_memo { position: relative; width: min(100%, 660px); margin: 46px auto; padding: 27px 32px 29px; border-left: 3px solid #978661; border-radius: 0 10px 10px 0; background: linear-gradient(135deg, #f8f6f0, rgba(255, 254, 250, 0.94)); box-shadow: 0 12px 28px rgba(77, 67, 48, 0.07); line-height: 1.95; }
body.kf-practice-note-single .kf-single-article .wp-block-post-content > p.is-style-big_icon_memo::before { content: "RELATED GUIDE"; display: block; margin: 0 0 9px; font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.18em; color: var(--bronze); }

/* 8-15 画面幅 1000px まで（右の目次は本文の下へ二列、一覧の帯は一列に） */
@media (max-width: 1000px) {
	:is(.kf-single-layout, .practice-layout, .letter-layout) { grid-template-columns: minmax(0, 840px); justify-content: center; } /* 一列の時の本文は 840px まで（前と同じ） */
	.kf-single-hero { --title-h: 250px; }
	.life-masthead { height: 350px; }
	.life-masthead__copy { padding: 48px 36px; }
	.life-introduction { grid-template-columns: 140px minmax(0, 1fr); gap: 32px; padding-inline: 24px; }
	.life-introduction__body { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
	.life-pickup > header, .life-pickup__copy { padding-inline: 24px; }
	.park-hero { grid-template-columns: 1fr; height: auto; min-height: 0; }
	.park-hero__copy { padding: 45px 36px; text-align: center; }
	.park-hero > figure { height: 280px; }
	.park-hero > figure img { position: static; }
	.park-year__header { padding: 40px 36px 26px; }
	.season-index { margin: 0 36px; }
	.season-ledger { padding: 0 36px 45px; }
	.season { grid-template-columns: 80px minmax(0, 1fr); }
	.season-feature, .summer-records, .autumn-records, .winter-record { padding-left: 32px; }
	.season-feature > a, .winter-record > a { grid-template-columns: 1fr; }
	.season-feature figure { order: 0; height: 300px; }
	.season-feature__copy { padding: 28px 32px; }
	.early-months { width: calc(100% - 32px); margin-left: 32px; }
	.summer-records { grid-template-columns: 1fr; }
	.summer-pair { grid-template-columns: repeat(2, 1fr); }
	.summer-lead img { height: 300px; }
	.summer-pair a { grid-template-columns: 1fr; grid-template-rows: 150px auto; }
	.summer-pair img { min-height: 0; }
	.autumn-records { grid-template-columns: 1fr; }
	.autumn-records a { grid-template-columns: 120px 180px minmax(0, 1fr); grid-template-rows: 150px; align-items: center; }
	.autumn-records img { height: 130px; margin: 0; }
	.autumn-records h4 { margin: 0; padding-left: 25px; }
	.autumn-month { border: 0; }
	.places-map-hero { grid-template-columns: 1fr; gap: 35px; padding: 44px; }
	.places-map-hero__copy { text-align: center; }
	.places-map-hero__copy > p:last-child { max-width: 560px; margin-inline: auto; }
	.places-guide-map { max-width: 680px; margin: 0 auto; }
	.spot-region__heading { grid-template-columns: 330px 1fr 96px; }
	.spot-card:first-child { grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr); }
	.kf-practice-notes-archive__masthead { grid-template-columns: 1fr; height: auto; min-height: 0; }
	.kf-practice-notes-archive__masthead-copy { padding: 54px 36px; text-align: center; }
	.kf-practice-notes-archive__masthead-image { height: 330px; }
	.kf-practice-notes-archive__masthead-image img { position: static; }
	.kf-practice-notes-archive__introduction { grid-template-columns: 1fr; gap: 18px; padding: 0 20px; }
	.kf-practice-notes-archive__introduction > div { gap: 32px; }
	.kf-practice-notes-archive__feature { grid-template-columns: 1fr; }
	.kf-practice-notes-archive__feature-image { min-height: 0; aspect-ratio: 16 / 8.4; }
	.kf-practice-notes-archive__entry { grid-template-columns: 66px 235px minmax(0, 1fr); gap: 22px; }
	.letter-hero { grid-template-columns: 0.75fr 1.25fr; }
	.letter-hero figure { min-height: 430px; }
	.letter-hero__copy { padding: 42px 32px; }
	.letter-month b { font-size: 3.7rem; }
	.kf-journal-hero__copy { width: calc(100% - 56px); padding-inline: 40px; }
	.kf-journal-hero__title { white-space: normal; }
}

/* 8-16 スマホ（782px まで） */
@media (max-width: 782px) {
	/* 記事の共通の形 */
	.kf-single-hero { --title-h: 210px; padding-block: 8px; background-image: var(--kf-title-mobile-image, var(--kf-title-image)); }
	.kf-single-hero .wp-block-cover__inner-container { width: calc(100% - 44px); }
	.kf-single-hero__title { font-size: 1.85rem; }
	:is(.kf-single-layout, .practice-layout, .letter-layout) { margin-top: 38px; }
	.kf-single-article { padding: 34px 24px 40px; }
	.kf-single-article .wp-block-post-content h2 { font-size: var(--fs-19); }
	:is(h2.kf-editorial-section-heading, h2.kf-practice-editorial-heading, .kf-editorial-headings .entry-content > h2), :is(.kf-park-letter-editorial .letter-content, .kf-food-walk-single .entry-content, .kf-practice-note-single .entry-content) > :is(h2, h3) { margin-top: 52px; padding-bottom: 13px; font-size: var(--fs-23); }
	.kf-post-footer-story-navigation { grid-template-columns: 1fr; gap: 18px; }
	.kf-post-footer-author-card { grid-template-columns: 1fr; }
	.kf-post-footer-author-card__identity { padding: 0 0 20px; border-right: 0; border-bottom: 1px solid var(--line); }
	.kf-hub-mobile-nav { display: grid; }
	.kf-gallery-lightbox { width: calc(100vw - 20px); max-height: calc(100vh - 20px); }
	.kf-gallery-lightbox__stage { grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 4px; min-height: calc(100vh - 20px); }
	.kf-gallery-lightbox__image { max-height: calc(100vh - 145px); }
	.kf-gallery-lightbox__button { width: 40px; height: 40px; }
	.kf-gallery-lightbox__caption { font-size: var(--fs-12); }
	.kf-vertical-steps { gap: 12px; padding: 14px; }
	.kf-vertical-step { grid-template-columns: 46px minmax(0, 1fr); gap: 14px; padding: 18px 16px; }
	.kf-vertical-step:not(:last-child)::after { bottom: -13px; left: 36px; height: 12px; }
	.kf-vertical-step__marker { width: 42px; height: 42px; }
	.kf-vertical-steps--quiet { margin: 30px auto 40px; padding: 0; }
	.kf-vertical-steps--quiet .kf-vertical-step { padding: 27px 10px 36px; }
	.kf-vertical-steps--quiet .kf-vertical-step__marker { margin-bottom: 15px; font-size: var(--fs-23); }
	.kf-vertical-steps--quiet .kf-vertical-step__title { font-size: var(--fs-16); }
	.kf-vertical-steps--quiet .kf-vertical-step__body, .kf-vertical-steps--quiet .kf-vertical-step__body p { font-size: var(--fs-14); line-height: 1.95; }

	/* 一覧の共通の帯：高さは中身に任せ、写真は決まった高さ */
	.kf-kichijoji-archive-hero { height: auto; min-height: 0; }
	.kf-kichijoji-archive-hero > figure img { position: static; }

	/* 吉祥寺カンフーライフ */
	.life-masthead { height: 300px; }
	.life-masthead__copy { width: calc(100% - 28px); padding: 36px 20px; }
	.life-masthead h1 { font-size: var(--fs-28); }
	.life-masthead__copy > p:last-child { font-size: var(--fs-14); }
	.life-shell { width: calc(100% - 28px); }
	.life-introduction { grid-template-columns: 1fr; gap: 18px; min-height: 0; margin-bottom: 56px; padding: 44px 8px 0; }
	.life-introduction__body { grid-template-columns: 1fr; gap: 16px; }
	.life-introduction h2 br { display: none; }
	.life-pickups-section { margin-bottom: 58px; }
	.life-pickups { grid-template-columns: 1fr; gap: 18px; }
	.life-pickup > header { min-height: 0; padding: 22px 23px 20px; }
	.life-pickup__copy { min-height: 0; padding: 23px; }
	.life-section + .life-section { margin-top: 58px; }
	.life-section__header { display: block; }
	.life-list a { grid-template-columns: 1fr auto; gap: 8px 14px; padding: 17px 5px; }
	.life-list time, .life-list span { grid-row: 1; }
	.life-list span { text-align: right; }
	.life-list strong { grid-column: 1 / -1; font-size: var(--fs-14); }
	.life-list i { display: none; }

	/* 吉祥寺リューダ */
	.kf-food-walk-archive__hero { grid-template-columns: 1fr; }
	.kf-food-walk-archive__hero-copy { padding: 42px 25px 32px; }
	.kf-food-walk-archive__hero h1 { margin: 22px 0; font-size: var(--fs-28); line-height: 1.38; }
	.kf-food-walk-archive__hero-copy > i { margin: 26px 0; }
	.kf-food-walk-archive__hero-copy > p:last-child { line-height: 2; }
	.kf-food-walk-archive__hero > figure { height: 240px; }
	.kf-food-walk-archive__shell { width: calc(100% - 36px); }
	.kf-food-walk-archive__guide { overflow-x: auto; }
	.kf-food-walk-archive__guide span { display: none; }
	.kf-food-walk-archive__guide a { white-space: nowrap; }
	.kf-food-walk-archive__intro { text-align: left; }
	.kf-food-walk-archive__themes nav, .kf-food-walk-archive__past, .kf-food-walk-archive__new-story > a { grid-template-columns: 1fr; }
	.kf-food-walk-archive__new-story figure { height: 210px; min-height: 0; }
	.kf-food-walk-archive__themes a + a { border-top: 1px solid var(--line); border-left: 0; }
	.kf-food-walk-archive__themes b { font-size: 17px; }
	.kf-food-walk-archive__list article > a { grid-template-columns: 62px minmax(0, 1fr); gap: 14px; }
	.kf-food-walk-archive__list time { grid-row: 1 / 3; }
	.kf-food-walk-archive__list time b { font-size: 17px; }
	.kf-food-walk-archive__year > header h2 { font-size: var(--fs-28); }
	.kf-food-walk-archive__list figure { grid-column: 2; height: 150px; }
	.kf-food-walk-archive__list article div { grid-column: 2; }
	.kf-food-walk-archive__list h3 { font-size: var(--fs-16); }
	.kf-food-walk-archive__list div > p { display: none; }
	.kf-food-walk-archive__past { gap: 28px; }

	/* 井の頭公園だより */
	.park-hero__copy { padding: 34px 20px; }
	.park-hero h1 { font-size: var(--fs-28); }
	.month b { font-size: var(--fs-28); }
	.early-months__grid p b { font-size: 17px; }
	.park-hero__copy > p:last-child { font-size: var(--fs-14); }
	.park-hero > figure { height: 220px; }
	.park-shell { width: calc(100% - 28px); }
	.park-year__header { display: block; padding: 30px 20px 22px; }
	.park-year__header h2 { font-size: var(--fs-23); }
	.park-year__header nav { margin-top: 17px; }
	.season-index { margin: 0 20px; }
	.season-index a { font-size: var(--fs-14); }
	.season-ledger { padding: 0 20px 35px; }
	.season { display: block; padding: 46px 0 52px; }
	.season__name { display: flex; align-items: baseline; gap: 12px; margin-bottom: 25px; padding: 0 0 13px; border-right: 0; border-bottom: 1px solid var(--park-line); }
	.season__name p { margin: 0; writing-mode: horizontal-tb; }
	.season__name h3 { font-size: var(--fs-28); }
	.season__name span { margin: 0; }
	.season-feature, .summer-records, .autumn-records, .winter-record { padding-left: 0; }
	.season-feature figure, .summer-lead img { height: 220px; }
	.season-feature__copy { padding: 25px; }
	.early-months { width: 100%; margin-left: 0; }
	.early-months__grid { grid-template-columns: 1fr; }
	.summer-pair { grid-template-columns: 1fr; }
	.summer-lead div { padding: 24px; }
	.summer-pair a { grid-template-columns: 42% 58%; grid-template-rows: 150px; }
	.summer-pair img { height: 150px; }
	.summer-pair h4 { font-size: var(--fs-14); }
	.autumn-records a { grid-template-columns: 77px 112px minmax(0, 1fr); grid-template-rows: 110px; }
	.autumn-records img { height: 96px; }
	.autumn-records h4 { padding-left: 15px; }
	.autumn-month b { font-size: var(--fs-23); }
	.autumn-month span { display: none; }
	.winter-record figure { height: 220px; }
	.winter-record > a > div { padding: 26px; }

	/* おすすめ練習スポット */
	.places-cover { min-height: 190px; background-position: center; }
	.places-cover__inner { width: calc(100% - 40px); }
	.places-cover__inner p { margin-bottom: 9px; }
	.places-cover__inner h1 { font-size: var(--fs-28); }
	.places-map-hero { width: calc(100% - 28px); margin-top: 20px; padding: 31px 20px 25px; }
	.places-map-hero__copy > p:last-child { font-size: var(--fs-12); }
	.places-guide-map figcaption { margin-bottom: 0; text-align: left; }
	.places-guide-map svg { margin-top: -4px; }
	.map-place text, .map-origin text + text { font-size: var(--fs-19); }
	.map-origin text { font-size: var(--fs-14); }
	.places-journal { width: calc(100% - 28px); margin-top: 46px; }
	.spot-regions { gap: 55px; }
	.spot-region__heading { grid-template-columns: 1fr 72px; gap: 8px 10px; }
	.spot-region__heading h3 { font-size: var(--fs-16); white-space: normal; }
	.spot-region__heading > p { grid-area: 1 / 2; font-size: var(--fs-16); }
	.spot-region__heading div { grid-area: 2 / 1 / auto / -1; margin-top: 6px; }
	.spot-list { grid-template-columns: 1fr; gap: 16px; }
	.spot-card, .spot-card:first-child, .spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child { display: grid; grid-template-columns: 42% 1fr; grid-column: 1; min-height: 0; border-top: 0; }
	.spot-card img, .spot-card:first-child img, .spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child img { height: 100%; aspect-ratio: auto; }
	.spot-card > div, .spot-card:first-child > div, .spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child > div { display: block; padding: 15px; }
	.spot-card h4, .spot-card:first-child h4, .spot-list:has(> .spot-card:nth-child(2):last-child) .spot-card:first-child h4 { min-height: 0; margin: 6px 0 9px; font-size: var(--fs-14); line-height: 1.45; }
	.spot-card:first-child h4::after { display: none; }
	.places-note { width: calc(100% - 28px); margin-top: 48px; padding: 28px 25px; }

	/* カンフーライフ実践記の一覧 */
	.kf-practice-notes-archive__masthead-copy { padding: 38px 22px 40px; }
	.kf-practice-notes-archive__masthead h1 { white-space: normal; }
	.kf-practice-notes-archive__masthead-image { height: 230px; }
	.kf-practice-notes-archive__masthead-image figcaption { right: 12px; bottom: 12px; }
	.kf-practice-notes-archive__shell { width: calc(100% - 28px); margin-top: 42px; }
	.kf-practice-notes-archive__introduction { margin-bottom: 55px; padding: 0 8px; }
	.kf-practice-notes-archive__introduction > div { grid-template-columns: 1fr; gap: 16px; }
	.kf-practice-notes-archive__introduction h2 { font-size: var(--fs-23); }
	.kf-practice-notes-archive__introduction h2 br { display: none; }
	.kf-practice-notes-archive__feature-copy { padding: 28px 24px 32px; }
	.kf-practice-notes-archive__feature h3 { font-size: var(--fs-23); }
	.kf-practice-notes-archive__all { margin-top: 60px; }
	.kf-practice-notes-archive__entry { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; align-items: start; padding: 24px 4px 27px; }
	.kf-practice-notes-archive__entry time { grid-row: 1 / span 2; }
	.kf-practice-notes-archive__entry-image, .kf-practice-notes-archive__entry-copy { grid-column: 2; }
	.kf-practice-notes-archive__entry-image img, .kf-practice-notes-archive__entry-image .kf-practice-notes-archive__image-placeholder { aspect-ratio: 16 / 8.8; }
	.kf-practice-notes-archive__entry h3 { font-size: var(--fs-16); }
	.kf-practice-notes-archive__entry-copy > p:not(:first-child) { font-size: var(--fs-12); }
	.kf-practice-notes-archive__back { margin-top: 28px; }

	/* リューダの記事 */
	.kf-food-walk-shop-info { margin-top: 50px; }
	.kf-food-walk-shop-info__list { grid-template-columns: 1fr; }
	.kf-food-walk-shop-info__item, .kf-food-walk-shop-info__item--wide, .kf-food-walk-shop-info__item:nth-child(2) { grid-column: 1; grid-template-columns: 1fr; gap: 7px; padding: 17px 18px; border-left: 0; }
	.kf-food-walk-shop-info__item + .kf-food-walk-shop-info__item { border-top: 1px solid var(--line); }
	.kf-food-walk-shop-info__links { display: grid; justify-items: start; }
	.kf-food-walk-nearby:not(.kf-practice-nearby) { margin-top: 50px; }
	.kf-food-walk-nearby__grid { grid-template-columns: 1fr; gap: 16px; }
	.kf-food-walk-nearby__card > :where(.kf-inline) > a { display: grid; grid-template-columns: 42% minmax(0, 1fr); }
	.kf-food-walk-nearby__card img, .kf-food-walk-nearby__card .life-image-placeholder { height: 100%; min-height: 148px; aspect-ratio: auto; }
	.kf-food-walk-nearby__copy { min-height: 148px; padding: 15px; }
	.kf-food-walk-nearby__copy strong { font-size: var(--fs-14); }
	.kf-food-walk-nearby__action { margin-top: 12px; }
	.kf-practice-nearby .kf-food-walk-nearby__grid { width: 100%; gap: 16px; }
	.kf-practice-nearby .kf-food-walk-nearby__card > :where(.kf-inline) > a { grid-template-columns: 104px minmax(0, 1fr); min-height: 114px; padding: 18px 13px 15px; }
	.kf-practice-nearby .kf-food-walk-nearby__card img, .kf-practice-nearby .kf-food-walk-nearby__card .life-image-placeholder { height: 78px; min-height: 0; }
	.kf-practice-nearby .kf-food-walk-nearby__copy { min-height: 0; padding: 0 0 0 14px; }
	.kf-practice-nearby .kf-food-walk-nearby__copy small { left: 12px; }
	.kf-practice-nearby .kf-food-walk-nearby__copy strong::after { content: none; }
	.kf-practice-nearby .kf-food-walk-nearby__excerpt { margin-top: 5px; line-height: 1.65; }

	/* 公園だよりの記事 */
	.letter-hero { grid-template-columns: 1fr; width: 100%; }
	.letter-hero figure { min-height: 320px; }
	.letter-hero__copy { padding: 34px 26px 39px; }
	.letter-hero h1 { font-size: 2.25rem; }
	.letter-month { margin-bottom: 23px; }
	.letter-month b { font-size: 3.25rem; }
	.letter-layout { width: calc(100% - 28px); margin-top: 20px; }
	.letter-article { padding: 38px 23px; }
	.letter-content h2.kf-editorial-section-heading, .kf-park-letter-editorial .letter-content > :is(h2, h3) { padding-bottom: 16px; font-size: var(--fs-19); letter-spacing: 0.02em; }

	/* 練習スポットの記事 */
	.practice-hero { min-height: 407px; padding: 52px 20px 45px; background-position: 58% center; }
	.practice-hero h1 { font-size: var(--fs-28); }
	.practice-hero__summary { font-size: var(--fs-12); }
	.practice-layout { width: calc(100% - 28px); margin-top: 20px; }
	.practice-article { padding: 34px 22px; }
	.practice-content h2, .practice-content h3 { margin-top: 48px; }
	.practice-content h2.kf-practice-editorial-heading { margin-top: 50px; padding-bottom: 16px; }
	.practice-content .kf-practice-conditions--with-lulu > h2.kf-practice-editorial-heading { margin-top: 54px; padding-bottom: 17px; font-size: 17px; }
	.practice-content > .wp-block-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kf-practice-suitability__list, .kf-practice-profile__list { grid-template-columns: 1fr; }
	.kf-practice-suitability__list li { min-height: 153px; }
	.kf-practice-suitability--compact-list .kf-practice-suitability__list li { grid-template-columns: 1fr; gap: 3px 0; padding: 15px 2px; }
	.kf-practice-suitability--compact-list .kf-practice-suitability__list span { grid-area: 2 / 1; }
	.kf-practice-conditions__main { grid-template-columns: minmax(0, 1fr) 200px; gap: 18px; padding: 24px 22px 18px; }
	.kf-practice-lulu-balloon { width: 190px; min-height: 0; }
	.practice-content .kf-practice-lulu-guide__image { right: 10px; width: 150px; }
	.kf-practice-season-notes, .kf-practice-season-notes:has(li:nth-child(4)):not(:has(li:nth-child(5))) { grid-template-columns: 1fr; gap: 8px; padding: 0 18px 20px; }
	.kf-practice-season-notes strong { font-size: 17px; }
	.kf-practice-information .kf-information-list__item { grid-template-columns: 1fr; gap: 7px; padding: 17px 18px; }

	/* 実践記の記事 */
	.kf-journal-hero { width: 100%; }
	.kf-journal-hero__photo, .kf-journal-hero__featured, .kf-journal-hero__featured a { height: 255px; }
	.kf-journal-hero__copy { width: calc(100% - 28px); margin-top: -36px; padding: 28px 24px 30px; }
	.kf-journal-hero__title { font-size: 2.05rem; }
	.kf-journal-layout { margin-top: 38px; }
	.kf-journal-article { padding-top: 40px; }
	.kf-journal-back { text-align: left; }
	body.kf-practice-note-single .kf-single-article .wp-block-post-content > p { margin-bottom: 19px; font-size: var(--fs-14); line-height: 2; }
	body.kf-practice-note-single .kf-single-article .wp-block-post-content > p:first-child { font-size: var(--fs-16); }
	body.kf-practice-note-single h2.kf-practice-note-heading, body.kf-practice-note-single .entry-content > :is(h2, h3) { margin-top: 52px; padding-bottom: 13px; letter-spacing: 0.07em; }
	body.kf-practice-note-single .kf-single-article .wp-block-post-content > p.is-style-big_icon_memo { margin-block: 36px; padding: 23px 22px 25px; }
}


/*SEC9*/
/* 9. お知らせ・よくある質問・お問い合わせ ---------------------------
   よくある質問（/faq/）、お問い合わせ（/contact/）と送信完了、プライバシーポリシー、利用規約、サイトマップ、検索、見つからないページ、
   最新ニュース（/info/）と活動の記録（/activity/）の一覧と記事。体験受講（/trial/）はそのページだけの trial-basic.css。
   並び：9-1 題の帯 → 9-2 規約の本文 → 9-3 お問い合わせ → 9-4 よくある質問 → 9-5 サイトマップ → 9-6 送信完了 → 9-7 見つからないページ → 9-8 検索
   　　　→ 9-9 最新ニュースの一覧 → 9-10 活動の記録の一覧 → 9-11 お知らせの記事 → 画面幅
   ----------------------------------------------------------- */

/* 9-1 題の帯と紙の幅。白い紙そのものは 5 の「白い紙のページ」 */
:is(.kf-faq-page, .kf-contact-page, .kf-legal-page) .kf-page-article > .entry-content { max-width: 720px; }
.kf-faq-page .kf-page-article > .entry-content { max-width: 880px; }

/* よくある質問・お問い合わせ：明るい絵の帯。膜をかけず（5 の題の帯で消している）、題は墨の色。
   体験受講について（trial-basic.css の帯）と三つで一組なので、字は真ん中、英字と題の値も同じ */
:is(.kf-faq-page, .kf-contact-page) .kf-page-title-scene { background-color: #f5eedf; }
:is(.kf-faq-page, .kf-contact-page) .kf-page-title-scene .wp-block-cover__inner-container { grid-template-columns: minmax(0, 650px); justify-content: center; text-align: center; }
:is(.kf-faq-page, .kf-contact-page) .kf-page-title-scene__eyebrow { margin: 0 0 13px; font-family: inherit; font-weight: 600; line-height: 1.5; letter-spacing: 0.2em; color: var(--bronze); text-align: center; }
:is(.kf-faq-page, .kf-contact-page) .kf-page-title-scene__title { margin: 0; font-weight: 400; line-height: 1.45; letter-spacing: 0.11em; color: var(--ink); text-align: center; text-shadow: none; }
.kf-faq-page .kf-page-title-scene { background-image: url("../images/faq-header-modern-wuguan-v10.jpg"); background-position: center 78%; }
.kf-contact-page .kf-page-title-scene { background-image: url("../images/contact-header-message-v1.webp"); }
/* 規約の二ページ：左から右へ薄くなる緑灰の膜 */
.kf-legal-page .kf-page-title-scene { --title-veil: linear-gradient(90deg, rgba(48, 55, 47, 0.46) 0%, rgba(57, 63, 53, 0.34) 34%, rgba(73, 76, 61, 0.13) 64%, rgba(255, 255, 255, 0.02) 100%); --title-veil-opacity: 0.5; }
.kf-legal-page--privacy .kf-page-title-scene { background-image: url("../images/privacy-secured-chinese-cabinet-v1-1800x360.png"); }
.kf-legal-page--disclaimer .kf-page-title-scene { background-image: url("../images/disclaimer-open-rules-desk-v1-1800x360.png"); }

/* 9-2 規約とお知らせの本文（プライバシーポリシー・利用規約・お知らせの記事） */
.swell-block-button { margin-block: 24px; text-align: center; } /* ボタンの置き場 */
.swell-block-button > :where(.kf-inline) > .kf-sample-text-link { display: inline-flex; }
.kf-blueprint-content .kf-sample-text-link:not(.kf-sample-text-link--inline) { line-height: 1.9; } /* 本文の行間に合わせる（前と同じ） */
.kf-blueprint-content { min-width: 0; line-height: 1.9; overflow-wrap: anywhere; }
.kf-blueprint-content > * { margin-block: 0 24px; }
.kf-blueprint-content > :last-child { margin-bottom: 0; }
.kf-blueprint-content :is(ul, ol) { padding-inline-start: 1.4em; list-style: revert; }
.kf-blueprint-content li + li { margin-top: 8px; }
/* 左に太い線、下に細い線の見出し */
.kf-sample-heading-a2 { margin: 64px 0 24px; padding: 0 0 14px 18px; border-bottom: 1px solid var(--line-strong); border-left: 4px solid var(--bronze); font-size: var(--fs-28); font-weight: 500; line-height: 1.5; letter-spacing: 0.05em; }
.kf-sample-heading-a2:first-child { margin-top: 0; }
/* 薄い地の小見出し */
.kf-sample-heading-a3 { margin: 2.35em 0 18px; padding: 12px 16px; border-left: 3px solid var(--line-strong); background: #f6f3eb; font-size: var(--fs-23); font-weight: 500; }
/* 文の中のリンク（下線つき） */
.kf-sample-text-link--inline { display: inline; padding: 0; font-size: inherit; line-height: inherit; text-decoration: underline 1px rgba(121, 100, 53, 0.46); text-underline-offset: 0.28em; }
.kf-sample-text-link--inline:hover { text-decoration-color: var(--sage); }

/* 9-3 お問い合わせ */
.kf-contact-page .entry-content > h2.kf-editorial-section-heading:first-child { margin-top: 64px; } /* 前から紙の上に 64px 空いている */
.kf-contact-trial-guide { margin: 0 0 42px; padding: 20px 24px; border: 1px solid rgba(205, 189, 158, 0.82); border-radius: 10px; background: #f8f5ee; text-align: center; }
.kf-contact-trial-guide > p { margin: 0; }

/* 入力欄（Contact Form 7）。項目の名前の横に「必須」「任意」の丸い印 */
.cf7 { font-size: var(--fs-16); }
.cf7__list { margin: 1em 0; }
.cf7__list dt { font-weight: 400; }
.cf7__list dt > p { display: flex; align-items: center; gap: 10px; }
.cf7__list dd { margin-left: 40px; }
:is(.cf7__required, .cf7__optional) { display: inline-flex; align-items: center; justify-content: center; min-width: 3.5em; min-height: 24px; padding: 2px 9px; border: 1px solid; border-radius: var(--pill); font-size: var(--fs-12); font-weight: 600; line-height: 1.35; letter-spacing: 0.08em; white-space: nowrap; }
.cf7__required { border-color: #d8a39d; background: #f7e4e1; color: #8a3d38; }
.cf7__optional { border-color: #b9c9b6; background: #e8efe7; color: var(--ink-soft); }
.cf7 :is(.wpcf7-list-item-label, small) { font-size: var(--fs-16); line-height: 1.8; }
.cf7 small { display: inline; }
.cf7 a:hover { color: var(--ink-soft); }
.wpcf7-form-control-wrap { display: block; max-width: 100%; }
.wpcf7 :is(input[type="text"], input[type="email"], select) { display: block; width: 50%; max-width: 100%; margin: 0 auto 0 0; font-size: var(--fs-16); line-height: 1.6; }
.wpcf7 textarea { width: 100%; max-width: 100%; font-size: var(--fs-16); line-height: 1.7; }
.cf7 select { height: 2rem; padding: 1px 34px 1px 6px; appearance: none; background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23403c35' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center / 10px 6px; }
/* 送るボタン：上に緑のボタン、下にルールーの吹き出しと絵 */
.cf7__button { display: grid; grid-template-columns: minmax(0, 280px) 123px; gap: 8px 6px; align-items: center; justify-content: center; width: min(100%, 409px); margin: 34px auto 0; text-align: center; }
.cf7__button > p { grid-column: 1 / -1; grid-row: 1; margin: 0; }
.cf7__button::before { content: "わからないことや迷っていることがあったら、相談してね！"; grid-column: 1; grid-row: 2; min-height: 76px; padding: 12px 29px 12px 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 76' preserveAspectRatio='none'%3E%3Cpath d='M16 1H248C257 1 264 8 264 17V27L279 38L264 49V59C264 68 257 75 248 75H16C8 75 1 68 1 59V17C1 8 8 1 16 1Z' fill='%23eef7f8' stroke='%236d9eaf' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; filter: drop-shadow(0 4px 9px rgba(41, 99, 116, 0.12)); font-weight: 500; line-height: 1.7; letter-spacing: 0.01em; text-align: left; }
.cf7__button::after { content: ""; grid-column: 2; grid-row: 2; width: 123px; aspect-ratio: 1148 / 1370; background: url("../images/lulu-contact-submit-letter-v3.webp") center bottom / contain no-repeat; pointer-events: none; }
.cf7__button .wpcf7-submit { width: 100%; min-height: 52px; padding: 12px 38px; border: 1px solid var(--cta); border-radius: var(--pill); background: var(--cta) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M9 4l4 4-4 4' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E") calc(50% + 49px) 50% / 16px 16px no-repeat; font-family: inherit; font-size: var(--fs-16); font-weight: 500; line-height: 1.6; letter-spacing: 0.05em; color: var(--white); cursor: pointer; transition: background-color 0.16s, border-color 0.16s; }
.cf7__button .wpcf7-submit:is(:hover, :focus-visible):not(:disabled) { border-color: var(--cta-hover); background-color: var(--cta-hover); }
.cf7__button .wpcf7-submit:disabled { opacity: 0.6; cursor: not-allowed; } /* 「確認事項」に印を付けるまで押せない */

/* 9-4 よくある質問 */

/* 入口の箱：左に文、右にルールー、下に五つの行き先 */
.kf-faq-guide { position: relative; isolation: isolate; display: grid; grid-template-areas: "copy lulu" "categories categories"; grid-template-columns: minmax(0, 1fr) 300px; margin: 0 0 72px; overflow: hidden; border: 1px solid #c3cfbc; border-radius: 22px; background: linear-gradient(102deg, #fffdf9 0%, #f4f7ef 43%, #dbe8d7 100%); box-shadow: 0 18px 46px rgba(72, 82, 65, 0.08); }
.kf-faq-guide::before, .kf-faq-guide::after { content: ""; position: absolute; z-index: -1; border: 1px solid rgba(89, 116, 83, 0.18); border-radius: 50%; } /* 飾りの輪 */
.kf-faq-guide::before { top: -126px; right: -78px; width: 300px; height: 300px; }
.kf-faq-guide::after { top: 118px; right: 168px; width: 128px; height: 128px; }
.kf-faq-guide__copy { position: relative; z-index: 1; grid-area: copy; align-self: center; padding: 48px 24px 40px 46px; }
.kf-faq-page :is(.kf-faq-guide__eyebrow, .kf-faq-contact__eyebrow) { margin: 0 0 8px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.18em; color: var(--bronze); }
.kf-faq-guide__copy h2 { max-width: 520px; margin: 0 0 16px; font-size: var(--fs-36); font-weight: 400; line-height: 1.55; letter-spacing: 0.06em; }
.kf-faq-page .kf-faq-guide__lead { max-width: 35em; margin: 0 0 22px; font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.kf-faq-page .kf-faq-guide__hint { display: inline-flex; align-items: center; gap: 9px; margin: 0; font-size: var(--fs-12); letter-spacing: 0.035em; color: var(--ink-soft); }
.kf-faq-guide__hint span { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #9fb29d; border-radius: 50%; background: rgba(255, 255, 255, 0.58); font-size: var(--fs-14); line-height: 1; }
.kf-faq-guide__lulu { position: relative; z-index: 1; grid-area: lulu; display: grid; row-gap: 10px; align-content: end; justify-items: center; padding: 26px 30px 18px 0; }
.kf-faq-guide__lulu-visual { width: min(100%, 190px); }
.kf-faq-guide__lulu-visual img { width: 100%; filter: drop-shadow(0 14px 16px rgba(56, 72, 51, 0.13)); }
.kf-faq-guide__lulu figcaption { font-size: var(--fs-12); line-height: 1.7; letter-spacing: 0.06em; text-align: center; color: var(--ink-soft); }
.kf-faq-guide__lulu figcaption span { display: block; letter-spacing: 0.2em; }
.kf-faq-guide__categories { position: relative; z-index: 1; grid-area: categories; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; padding: 14px; border-top: 1px solid rgba(127, 145, 119, 0.24); background: rgba(255, 253, 248, 0.72); }
.kf-faq-guide__categories a { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 6px; align-items: center; min-height: 68px; padding: 10px 12px; border: 1px solid rgba(181, 193, 173, 0.74); border-radius: 12px; background: rgba(255, 255, 255, 0.56); font-size: var(--fs-14); line-height: 1.55; white-space: nowrap; color: var(--ink-soft); transition: border-color 0.16s, background-color 0.16s, transform 0.16s; }
.kf-faq-guide__categories a:is(:hover, :focus-visible) { border-color: #9fb09a; background: #f4f8f0; transform: translateY(-2px); }
.kf-faq-guide__categories img { width: 30px; height: 30px; object-fit: contain; opacity: 0.92; }
.kf-faq-guide__arrow { font-size: var(--fs-14); color: var(--bronze); }
:is(.kf-faq-guide__categories a, .kf-faq-item > summary, .kf-faq-contact__button):focus-visible { outline: 2px solid var(--bronze); outline-offset: -3px; }

/* 分類の見出し：上に英字、左に絵 */
.kf-faq-category-title { display: grid; grid-template-areas: "eyebrow eyebrow" "icon title"; grid-template-columns: clamp(38px, 4vw, 46px) minmax(0, 1fr); column-gap: 14px; align-items: center; margin: 70px 0 18px; padding: 0 0 16px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.65; letter-spacing: 0.055em; }
.kf-faq-category-title:first-of-type { margin-top: 0; }
.kf-faq-category-title::before { content: attr(data-kf-faq-label); grid-area: eyebrow; margin-bottom: 2px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.18em; color: var(--bronze); }
.kf-faq-category-title__icon { grid-area: icon; width: clamp(38px, 4vw, 46px); height: clamp(38px, 4vw, 46px); object-fit: contain; }
.kf-faq-category-title > span { grid-area: title; }

/* 質問と答え（押すと開く）。Q と A の丸、右に開閉の印 */
.kf-faq-list { display: grid; gap: 10px; }
.kf-faq-item { overflow: clip; border: 1px solid #cdbf9f; border-radius: 10px; background: #fffdf8; }
.kf-faq-item > summary { display: grid; grid-template-columns: 32px minmax(0, 1fr) 28px; gap: 13px; align-items: center; min-height: 68px; padding: 18px; font-size: var(--fs-16); font-weight: 500; line-height: 1.75; letter-spacing: 0.02em; list-style: none; cursor: pointer; transition: background-color 0.16s; }
.kf-faq-item > summary::-webkit-details-marker { display: none; }
.kf-faq-item > summary::marker { content: ""; }
.kf-faq-item > summary:hover { background: rgba(245, 241, 233, 0.48); }
.kf-faq-item > summary::before, .kf-faq-item__answer::before { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; font-size: var(--fs-12); line-height: 1; }
.kf-faq-item > summary::before { content: "Q"; border: 1px solid #c99591; background: #fbefed; color: #a45f5a; }
.kf-faq-item__answer::before { content: "A"; border: 1px solid #91a78f; background: #dfe9dc; }
.kf-faq-item > summary::after { content: ""; width: 28px; height: 28px; border: 1px solid #9f875b; border-radius: 50%; background: linear-gradient(#725626, #725626) center / 10px 1px no-repeat, linear-gradient(#725626, #725626) center / 1px 10px no-repeat; }
.kf-faq-item[open] > summary::after { background: linear-gradient(#725626, #725626) center / 10px 1px no-repeat; }
.kf-faq-item__answer { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 13px; padding: 20px 30px 24px 18px; border-top: 1px solid #d5c9ae; }
.kf-faq-item__body { min-width: 0; color: var(--ink-soft); }
.kf-faq-item__body mark { background: transparent; font-weight: 600; color: #b64f49; } /* 「※」の印。前は黄色の地に黒（飾りの色が外れたまま）だった。記事の「※」と同じ赤茶に */
.kf-faq-item__body > :first-child { margin-top: 0; }
.kf-faq-item__body > :last-child { margin-bottom: 0; }

/* 答えの中の手順（番号の丸と縦の線） */
.swell-block-step { margin-block: clamp(28px, 5vw, 48px); }
.kf-faq-item__body .swell-block-step { margin-top: 28px; margin-bottom: 8px; }
.swell-block-step__item { position: relative; padding: 0 0 28px 48px; }
.swell-block-step__item::before { content: ""; position: absolute; top: 34px; bottom: 0; left: 15px; width: 1px; background: #d9c8aa; }
.swell-block-step__item:last-child::before { display: none; }
.swell-block-step__number { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #a98754; border-radius: 50%; background: #fffdf8; font-size: var(--fs-12); letter-spacing: 0.08em; color: var(--bronze); }
.swell-block-step__number .__label { letter-spacing: 0; white-space: nowrap; } /* 前は丸の中で「STE／P」と二行に割れていた。一行に収める */
.swell-block-step__title { margin-bottom: 8px; font-size: var(--fs-19); color: var(--ink); }
.kf-faq-item__body .swell-block-step__body p { text-align: left; }

/* 終わりの緑の箱（お問い合わせへ） */
.kf-faq-contact { position: relative; isolation: isolate; display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 28px; align-items: center; margin: 76px 0 18px; padding: 28px 38px 30px 24px; overflow: hidden; border: 1px solid #6f846f; border-radius: 18px; background: linear-gradient(125deg, #405b47 0%, #526b55 64%, #779078 100%); box-shadow: 0 18px 48px rgba(42, 58, 44, 0.18); color: var(--white); }
.kf-faq-contact::before, .kf-faq-contact::after { content: ""; position: absolute; z-index: -1; border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 50%; }
.kf-faq-contact::before { top: -150px; left: -105px; width: 330px; height: 330px; }
.kf-faq-contact::after { right: -115px; bottom: -190px; width: 360px; height: 360px; }
.kf-faq-contact__lulu { position: relative; z-index: 1; align-self: end; width: 100%; filter: drop-shadow(0 13px 14px rgba(26, 39, 28, 0.18)); }
.kf-faq-contact__copy { position: relative; z-index: 1; }
.kf-faq-page .kf-faq-contact__eyebrow { color: #e1cf9d; }
.kf-faq-contact__copy h2 { margin: 0 0 10px; font-size: var(--fs-28); font-weight: 400; line-height: 1.7; letter-spacing: 0.045em; color: var(--white); }
.kf-faq-contact__copy > p:not(.kf-faq-contact__eyebrow) { margin: 0 0 20px; font-size: var(--fs-14); color: rgba(255, 255, 255, 0.82); }
/* 白いボタン（濃い地に置く申し込みのボタン） */
.kf-contact-button--inverse { border-color: var(--white); background: var(--white); color: #405c46; }
.kf-contact-button--inverse:is(:hover, :focus-visible) { border-color: #f5f1e8; background: #f5f1e8; color: #405c46; }
.kf-faq-page .kf-faq-updated { margin: 0; font-size: var(--fs-12); text-align: right; color: var(--ink-soft); }


/* 9-5 サイトマップ：上に絵と題、下に三列の一覧 */
.kf-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; width: min(var(--band), 100% - 50px); margin: 24px auto 18px; font-size: var(--fs-12); color: var(--ink-soft); }
.kf-breadcrumb a { color: inherit; }
.kf-breadcrumb a::after { content: "/"; margin-left: 12px; color: var(--line-strong); }
.kf-sitemap-page > .kf-breadcrumb { margin-top: 0; padding-top: 24px; }
.kf-sitemap-scene { position: relative; height: clamp(248px, 22vw, 318px); overflow: hidden; background: #efeee9; }
.kf-sitemap-scene > :where(.kf-inline) > img { width: 100%; height: 100%; object-fit: cover; object-position: center 57%; }
.kf-sitemap-scene__title { position: absolute; top: 50%; left: 50%; width: min(600px, 54vw); text-align: center; transform: translate(-50%, -50%); }
.kf-sitemap-scene__title > p { font-size: var(--fs-12); letter-spacing: 0.2em; color: var(--bronze); }
.kf-sitemap-scene__title h1 { margin: 8px 0 15px; font-size: var(--fs-36); font-weight: 500; letter-spacing: 0.14em; }
.kf-sitemap-intro { width: min(var(--band), 100% - 50px); margin: 0 auto; padding-top: 8px; text-align: center; }
.kf-sitemap-intro p { font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.kf-sitemap-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; width: min(var(--band), 100% - 50px); margin: 40px auto 0; padding: 56px 56px 0; border: 1px solid var(--line); background: var(--paper-white); }
.kf-sitemap-groups::after { content: ""; grid-column: 1 / -1; } /* 下の余白の代わり（空の一行） */
.kf-sitemap-groups section { position: relative; padding-top: 22px; border-top: 1px solid var(--line-strong); }
.kf-sitemap-groups section::before { content: ""; position: absolute; top: -1px; left: 0; width: 64px; height: 2px; background: var(--bronze-bright); }
.kf-sitemap-groups header { padding-bottom: 12px; }
.kf-sitemap-groups h2 { font-size: var(--fs-19); font-weight: 500; letter-spacing: 0.06em; }
.kf-sitemap-groups h2 a { color: inherit; }
.kf-sitemap-description { margin-top: 10px; font-size: var(--fs-14); line-height: 1.75; color: var(--ink-soft); }
.kf-sitemap-groups li a { display: block; padding: 7px 0 7px 16px; border-left: 1px solid var(--line); font-size: var(--fs-14); color: var(--ink); }
.kf-sitemap-groups li a:hover { color: var(--ink-soft); }
.kf-sitemap-groups li span { display: none; }
.kf-sitemap-groups li.kf-sitemap-sub a { padding-left: 32px; font-size: var(--fs-12); color: var(--ink-soft); }


/* 9-6 お問い合わせの送信完了 */
.kf-contact-complete { --complete-line: #d9cdb6; --complete-gold: #8d713c; }
.kf-contact-complete__panel { width: min(1030px, 100% - 50px); margin: auto; padding: 54px 40px 50px; background: var(--paper-white); text-align: center; }
.kf-contact-complete__mark { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 18px; border: 1px solid rgba(79, 94, 78, 0.55); border-radius: 50%; }
.kf-contact-complete__mark span { width: 19px; height: 10px; border-bottom: 2px solid #4f5e4e; border-left: 2px solid #4f5e4e; transform: translateY(-2px) rotate(-45deg); } /* 済みの印 */
.kf-contact-complete__panel > p:first-of-type, .kf-contact-complete__note > div > p { font-size: var(--fs-12); letter-spacing: 0.2em; color: var(--bronze); }
.kf-contact-complete__panel h1 { margin: 10px 0 17px; font-size: var(--fs-36); font-weight: 500; line-height: 1.55; letter-spacing: 0.08em; }
.kf-contact-complete__panel h1::after { content: ""; display: block; width: 72px; height: 1px; margin: 22px auto 0; background: var(--complete-gold); }
.kf-contact-complete__panel > p:last-of-type { font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.kf-contact-complete__home { display: inline-flex; align-items: center; gap: 20px; margin-top: 27px; padding: 10px 6px; border-bottom: 1px solid var(--complete-gold); font-size: var(--fs-14); color: var(--ink-soft); }
.kf-contact-complete__home span, .kf-contact-complete__note a span { color: var(--bronze); }
.kf-contact-complete__note { display: grid; grid-template-columns: 1.05fr 1.45fr auto; gap: 30px; align-items: center; width: min(1030px, 100% - 50px); margin: 28px auto; padding: 24px 28px; border: 1px solid var(--complete-line); border-radius: 12px; background: rgba(229, 232, 223, 0.45); }
.kf-contact-complete__note h2 { margin-top: 5px; font-size: var(--fs-16); font-weight: 500; }
.kf-contact-complete__note > p { font-size: var(--fs-14); line-height: 1.8; color: var(--ink-soft); }
.kf-contact-complete__note a { display: flex; align-items: center; gap: 15px; font-size: var(--fs-12); white-space: nowrap; color: var(--ink-soft); }
/* 下の二つの行き先（見つからないページの三つの行き先も同じ形） */
:is(.kf-contact-complete__guides, .kf-404-guides) { display: grid; grid-template-columns: repeat(2, 1fr); width: min(1030px, 100% - 50px); margin: 0 auto; border-block: 1px solid var(--complete-line); background: rgba(255, 254, 251, 0.56); }
:is(.kf-contact-complete__guides, .kf-404-guides) a { position: relative; display: grid; gap: 6px; padding: 20px 50px 20px 24px; border-left: 1px solid var(--complete-line); color: inherit; }
:is(.kf-contact-complete__guides, .kf-404-guides) a:first-child { border-left: 0; }
:is(.kf-contact-complete__guides, .kf-404-guides) span { font-size: var(--fs-12); letter-spacing: 0.16em; color: var(--bronze); }
:is(.kf-contact-complete__guides, .kf-404-guides) strong { font-size: var(--fs-14); font-weight: 400; }
:is(.kf-contact-complete__guides, .kf-404-guides) i { position: absolute; top: 50%; right: 24px; font-style: normal; color: var(--bronze); transform: translateY(-50%); }


/* 9-7 見つからないページ（404） */
.kf-404-panel { position: relative; display: grid; place-items: center; width: min(var(--band), 100% - 50px); min-height: 430px; margin: 0 auto; overflow: hidden; background: var(--paper-white); }
.kf-404-panel__number { position: absolute; right: 50px; bottom: -48px; font-size: var(--fs-36); font-weight: 500; line-height: 1; color: var(--ink-soft); }
.kf-404-panel__copy { position: relative; z-index: 1; width: min(580px, 100% - 80px); text-align: center; }
.kf-404-panel__eyebrow { margin-bottom: 16px; font-size: var(--fs-12); letter-spacing: 0.22em; color: var(--bronze); }
.kf-404-panel h1 { font-size: var(--fs-36); font-weight: 500; line-height: 1.55; letter-spacing: 0.08em; }
.kf-404-panel h1::after { content: ""; display: block; width: 70px; height: 1px; margin: 24px auto; background: var(--bronze); }
.kf-404-panel__description { font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.kf-404-search { display: grid; grid-template-columns: 1fr auto; width: min(470px, 100%); margin: 28px auto 0; }
.kf-404-search input { min-width: 0; padding: 13px 16px; border: 1px solid var(--line-strong); border-right: 0; border-radius: 6px 0 0 6px; background: var(--white); font: inherit; }
.kf-404-search button { padding: 0 24px; border: 1px solid var(--sage); border-radius: 0 6px 6px 0; background: var(--sage); color: var(--white); cursor: pointer; }
.kf-404-guides { --complete-line: var(--line-strong); grid-template-columns: repeat(3, 1fr); width: min(var(--band), 100% - 50px); margin-top: 30px; background: rgba(255, 254, 251, 0.58); }
.kf-404-guides a { gap: 7px; padding-block: 22px; }
.kf-404-guides i { right: 22px; }


/* 9-8 検索の結果 */
.kf-search-results { --search-line: #d9cfbb; --search-green: #3f5745; --search-green-line: #c4d0c0; --search-green-pale: #f1f5ef; display: flow-root; }
.kf-search-results__hero, .kf-search-results__body { width: min(1080px, 100% - 48px); margin-inline: auto; border: 1px solid rgba(201, 184, 151, 0.78); border-radius: 18px; box-shadow: 0 18px 48px rgba(70, 59, 41, 0.07); }
/* 上の箱：題と検索の窓、右にルールー */
.kf-search-results__hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 24px; align-items: end; margin-top: 48px; padding: 52px 56px 0 62px; overflow: hidden; background: linear-gradient(102deg, #fffdf9 0%, #f4f7ef 43%, #dbe8d7 100%); }
.kf-search-results__hero::before { content: ""; position: absolute; top: -54px; right: -54px; width: 160px; height: 160px; border: 1px solid rgba(102, 131, 105, 0.22); border-radius: 50%; }
.kf-search-results__hero-copy { padding-bottom: 52px; }
.kf-search-results__eyebrow { margin-bottom: 12px; font-size: var(--fs-12); font-weight: 600; line-height: 1.5; letter-spacing: 0.2em; color: var(--bronze); }
.kf-search-results__hero h1 { margin-bottom: 14px; font-size: var(--fs-36); font-weight: 400; line-height: 1.5; letter-spacing: 0.06em; }
.kf-search-results__hero-description { margin-bottom: 28px; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-search-results__hero form { display: flex; max-width: 600px; overflow: hidden; border: 1px solid var(--search-line); border-radius: var(--pill); background: var(--white); }
.kf-search-results__hero form:focus-within { border-color: var(--search-green); }
.kf-search-results__hero input { flex: 1; min-width: 0; padding: 14px 22px; border: 0; background: transparent; font: inherit; font-size: var(--fs-16); color: var(--ink); }
.kf-search-results__hero input:focus { outline: 0; }
.kf-search-results__hero button { min-width: 120px; border: 0; background: var(--search-green); font-size: var(--fs-14); letter-spacing: 0.08em; color: var(--white); }
.kf-search-results__guide { line-height: 0; }
.kf-search-results__guide img { width: 100%; }
/* 下の箱：件数、絞り込み、結果の一覧 */
.kf-search-results__body { margin-top: 34px; padding: 56px 62px 60px; background: #fffdf8; }
.kf-search-results__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 26px; }
.kf-search-results__heading h2 { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: center; font-size: var(--fs-28); font-weight: 400; line-height: 1.6; letter-spacing: 0.05em; }
.kf-search-results__heading h2::before { content: ""; width: 44px; height: 44px; background: url("../images/heading-icon-candidates/new/C18-access-signpost.png") center / contain no-repeat; }
.kf-search-results__summary { margin-top: 10px; font-size: var(--fs-12); line-height: 1.7; color: var(--ink-soft); }
.kf-search-results__count { display: flex; flex: 0 0 auto; align-items: baseline; font-size: var(--fs-14); color: var(--ink-soft); }
.kf-search-results__count strong { margin-right: 5px; font-size: var(--fs-28); font-weight: 400; }
.kf-search-results__count span { margin-left: 12px; font-size: var(--fs-12); white-space: nowrap; }
.kf-search-results__filter, .kf-search-results__empty-links { display: flex; flex-wrap: wrap; gap: 8px; }
.kf-search-results__filter { margin-bottom: 12px; }
:is(.kf-search-results__filter, .kf-search-results__empty-links) a { padding: 6px 14px; border: 1px solid var(--search-green-line); border-radius: var(--pill); background: var(--search-green-pale); font-size: var(--fs-12); letter-spacing: 0.05em; color: var(--ink-soft); }
.kf-search-results__filter a span { margin-left: 4px; color: var(--bronze); }
.kf-search-results__filter .is-current { border-color: var(--search-green); background: var(--search-green); color: var(--white); }
.kf-search-results__filter .is-current span { color: #f0dfb8; }
.kf-search-results__list article { position: relative; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 26px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--search-line); }
.kf-search-results__list :is(img, .kf-search-results__image-placeholder) { grid-area: 1 / 1; width: 100%; height: 120px; border-radius: 10px; object-fit: cover; }
.kf-search-results__list article div { grid-area: 1 / 2; }
.kf-search-results__meta { display: flex; align-items: center; gap: 10px; font-size: var(--fs-12); letter-spacing: 0.1em; color: var(--bronze); }
.kf-search-results__source { margin-right: auto; }
.kf-search-results__match { padding: 2px 9px; border: 1px solid var(--search-green-line); border-radius: var(--pill); background: var(--search-green-pale); letter-spacing: 0.04em; white-space: nowrap; color: var(--ink-soft); }
.kf-search-results__meta time { letter-spacing: 0.05em; white-space: nowrap; color: var(--ink-soft); }
.kf-search-results__list h3 { margin: 10px 0 8px; font-size: var(--fs-19); font-weight: 500; line-height: 1.6; }
.kf-search-results__stretched { color: inherit; }
.kf-search-results__stretched::after { content: ""; position: absolute; inset: 0; } /* 一件まるごと押せる */
.kf-search-results__list article:hover h3 { color: var(--search-green); }
.kf-search-results__list h3 + p { font-size: var(--fs-14); line-height: 1.8; color: var(--ink-soft); }
.kf-search-results__list mark { padding: 0 0.12em; background: linear-gradient(transparent 58%, #eee0b8 58%); color: inherit; } /* 探した言葉に黄色の線 */
.kf-search-results__pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 40px; }
.kf-search-results__pagination :is(a, span) { min-width: 38px; padding: 9px 12px; border: 1px solid var(--search-line); border-radius: var(--pill); font-size: var(--fs-12); line-height: 1.25; text-align: center; white-space: nowrap; color: var(--ink-soft); }
.kf-search-results__pagination span[aria-current="page"] { border-color: var(--search-green); background: var(--search-green); color: var(--white); }
.kf-search-results__pagination .is-ellipsis { min-width: 24px; padding-inline: 2px; border-color: transparent; }
.kf-search-results__pagination .is-direction { padding-inline: 16px; }
.kf-search-results__empty { padding-top: 26px; border-top: 1px solid var(--search-line); }
.kf-search-results__empty h3 { margin-bottom: 10px; font-size: var(--fs-19); font-weight: 500; }
.kf-search-results__empty p { font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-search-results__empty-links { margin-top: 22px; }

/* 9-9 最新ニュースの一覧（/info/）：題の帯、年の行、最新の一件、年ごとの三列 */
.news-archive { --news-line: #d8c9ad; line-height: 1.9; }
.news-masthead { min-height: 258px; padding: 42px 24px 46px; border-block: 1px solid rgba(141, 113, 57, 0.2); background: linear-gradient(90deg, rgba(247, 243, 234, 0.94), rgba(247, 243, 234, 0.78)), url("../images/background-ink-garden-title-v1-web.webp") center / cover no-repeat, #f4f0e6; text-align: center; }
.news-masthead__mark { display: flex; align-items: center; justify-content: center; gap: 22px; margin-bottom: 9px; }
.news-masthead__mark span { width: 64px; height: 1px; background: var(--news-line); }
.news-masthead__mark img { width: 56px; height: 44px; object-fit: contain; }
.news-masthead > p:first-of-type { margin-bottom: 8px; font-size: var(--fs-12); letter-spacing: 0.19em; color: var(--bronze); }
.news-masthead h1 { font-size: var(--fs-36); font-weight: 500; line-height: 1.9; letter-spacing: 0.09em; }
.news-masthead__lead { margin-top: 18px; font-size: var(--fs-16); letter-spacing: 0.035em; color: var(--ink-soft); }
.news-shell { width: min(var(--band), 100% - 48px); margin: 48px auto 0; padding: 48px 50px 58px; border-radius: 12px; background: rgba(255, 253, 248, 0.94); }
/* 年の行 */
.news-years { display: flex; align-items: center; margin-bottom: 44px; border-block: 1px solid var(--news-line); }
.news-years > * { padding: 13px 24px; }
.news-years span { padding-left: 0; font-size: var(--fs-12); letter-spacing: 0.09em; color: var(--ink-soft); }
.news-years a { color: var(--ink-soft); }
.news-years a + a { border-left: 1px solid #e2d8c6; }
.news-years a:is([aria-current="true"], :hover) { font-weight: 600; color: var(--bronze); }
/* 見出し（下の線の上に太い線を重ねる） */
.news-latest-section { margin-bottom: 68px; }
.news-section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 27px; border-bottom: 1px solid var(--news-line); }
.news-section-heading p { margin-bottom: 6px; font-size: var(--fs-12); letter-spacing: 0.16em; color: var(--bronze); }
.news-section-heading h2 { padding-bottom: 13px; border-bottom: 2px solid var(--bronze-bright); font-size: var(--fs-23); font-weight: 500; line-height: 1.65; letter-spacing: 0.05em; }
.news-year + .news-year { margin-top: 68px; }
.news-year__header { display: flex; align-items: baseline; gap: 22px; margin-bottom: 25px; border-bottom: 1px solid var(--news-line); }
.news-year__header h2 { padding-bottom: 9px; border-bottom: 3px solid var(--bronze-bright); font-size: var(--fs-28); font-weight: 500; line-height: 1.9; letter-spacing: 0.08em; }
.news-year__header p { font-size: var(--fs-14); color: var(--ink-soft); }
/* 最新の一件：左に写真、右に文 */
.news-latest { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr); min-height: 350px; background: #f5f0e5; }
.news-latest__image { min-height: 350px; overflow: hidden; }
:is(.news-latest__image, .news-card__image) :is(img, .news-image-placeholder) { width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s, filter 0.35s; }
.news-latest__image :is(img, .news-image-placeholder) { transition: transform 0.35s; }
.news-latest__image:hover img { transform: scale(1.015); }
.news-latest__copy { align-self: center; padding: 32px 36px; }
.news-latest h3 { margin-bottom: 20px; font-size: var(--fs-28); font-weight: 500; line-height: 1.55; letter-spacing: 0; }
:is(.news-latest, .news-card) h3 a { color: inherit; }
.news-latest__copy > p:not(.news-date) { margin-bottom: 24px; line-height: 2; color: var(--ink-soft); }
.news-date { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; font-size: var(--fs-12); letter-spacing: 0.1em; color: var(--bronze); }
.news-date span { padding-left: 14px; border-left: 1px solid var(--news-line); }
.news-read { display: inline-flex; align-items: center; gap: 15px; padding-bottom: 4px; font-size: var(--fs-14); color: var(--bronze); }
.news-read:hover { color: var(--ink-soft); }
/* 年ごとの三列 */
.news-grid { display: grid; gap: 25px; }
.news-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.news-card { display: flex; flex-direction: column; min-width: 0; background: #fffefa; }
.news-card__image { display: block; aspect-ratio: 1.9 / 1; overflow: hidden; }
.news-card__image:hover img { transform: scale(1.02); filter: saturate(0.92); }
.news-card__body { display: flex; flex: 1; flex-direction: column; padding: 22px 24px 24px; border: solid var(--news-line); border-width: 0 1px 1px; }
.news-card h3 { margin-bottom: 13px; font-size: var(--fs-16); font-weight: 600; line-height: 1.75; letter-spacing: 0; }
.news-card__body > p:not(.news-date) { margin-bottom: 19px; font-size: var(--fs-14); line-height: 1.85; color: var(--ink-soft); }
.news-card .news-read { align-self: flex-start; margin-top: auto; }
/* 写真のないお知らせ（一行、上に線） */
.news-year > p { margin: 1em 0; }
.news-text-row { display: grid; grid-template-columns: 110px 1fr auto; gap: 20px; align-items: center; margin-top: 20px; padding: 19px 22px; border-top: 1px solid var(--news-line); }
.news-text-row:hover { background: #f7f3ea; }
.news-text-row time { font-size: var(--fs-12); letter-spacing: 0.05em; color: var(--bronze); }
.news-text-row strong { font-size: var(--fs-16); font-weight: 500; }
.news-text-row > span { color: var(--bronze); }
/* ページ送り */
.news-pagination { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 62px; }
.news-pagination :is(a, span) { display: grid; place-items: center; min-width: 39px; height: 39px; border: 1px solid var(--news-line); font-size: var(--fs-14); color: var(--ink-soft); }
.news-pagination span[aria-current="page"] { border-color: var(--bronze-bright); background: var(--bronze-bright); color: var(--white); }
.news-pagination__next { padding-inline: 16px; }
.news-pagination a:hover { border-color: var(--bronze-bright); color: var(--bronze); }


/* 9-10 活動の記録の一覧（/activity/）：写真の帯、説明、絞り込み、新しい一件、三列 */
.kf-activity-archive { --activity-line: #d9cdb6; --activity-green: #4f5e4e; }
.kf-activity-archive__hero { position: relative; display: flex; align-items: center; min-height: 470px; padding: 56px max(24px, 50% - 600px); overflow: hidden; background: var(--night); color: var(--white); }
.kf-activity-archive__hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(53, 49, 43, 0.5); }
.kf-activity-archive__hero-photos { position: absolute; inset: 0; }
.kf-activity-archive__hero-photos img { width: 100%; height: 100%; object-fit: cover; }
.kf-activity-archive__hero-photos > :not(:first-child) { display: none; }
.kf-activity-archive__hero-copy { position: relative; z-index: 2; width: 100%; max-width: 760px; color: rgba(255, 255, 255, 0.82); }
.kf-activity-archive__hero-copy > p:first-child { font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); line-height: 1.6; letter-spacing: 0.16em; text-transform: uppercase; }
.kf-activity-archive__hero h1 { max-width: 17em; margin: 8px 0 10px; font-size: var(--fs-36); font-weight: 500; line-height: 1.5; letter-spacing: 0.08em; color: var(--white); text-shadow: 0 2px 18px rgba(0, 0, 0, 0.32); }
.kf-activity-archive__hero-copy > p:last-child { font-size: var(--fs-16); line-height: 2; }
.kf-activity-archive__hero-copy > p:has(> i) { display: none; }
.kf-activity-archive__intro > p:first-child, .kf-activity-archive__latest > header p, .kf-activity-archive__records > header p { font-size: var(--fs-12); letter-spacing: 0.18em; color: var(--bronze); }
.kf-activity-archive__intro { display: grid; grid-template-columns: 220px 1fr 1fr; gap: 42px; width: min(1030px, 100% - 48px); margin: 72px auto; }
.kf-activity-archive__intro h2 { font-size: var(--fs-28); font-weight: 500; line-height: 1.75; letter-spacing: 0.08em; }
.kf-activity-archive__intro > p:last-child { font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.kf-activity-archive__filter { display: flex; justify-content: center; width: min(1030px, 100% - 48px); margin: 0 auto 78px; border-block: 1px solid var(--activity-line); }
.kf-activity-archive__filter a { min-width: 110px; padding: 15px 22px; font-size: var(--fs-14); text-align: center; color: var(--ink-soft); }
.kf-activity-archive__filter .is-current { background: var(--activity-green); color: var(--white); }
:is(.kf-activity-archive__latest, .kf-activity-archive__records) { width: min(1030px, 100% - 48px); margin: 0 auto 95px; }
.kf-activity-archive__records { margin-bottom: 0; }
:is(.kf-activity-archive__latest, .kf-activity-archive__records) > header { display: flex; align-items: end; justify-content: space-between; margin-bottom: 27px; padding-bottom: 18px; border-bottom: 1px solid var(--activity-line); }
:is(.kf-activity-archive__latest, .kf-activity-archive__records) > header h2 { margin-top: 8px; font-size: var(--fs-28); font-weight: 500; }
.kf-activity-archive__latest > header > span, .kf-activity-archive__records > header > p { font-size: var(--fs-12); color: var(--ink-soft); } /* 件数。上の英字の決まりより後に書いて色を替える */
.kf-activity-archive__feature { display: grid; grid-template-columns: 58% 42%; overflow: hidden; border-radius: 12px; background: var(--paper-white); }
.kf-activity-archive__feature figure { height: 390px; overflow: hidden; }
.kf-activity-archive__feature figure :is(img, .kf-activity-archive__image-placeholder) { width: 100%; height: 100%; object-fit: cover; }
.kf-activity-archive__feature > div { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 42px; }
.kf-activity-archive__feature > div > p:first-child { display: flex; justify-content: space-between; width: 100%; font-size: var(--fs-12); letter-spacing: 0.12em; color: var(--bronze); }
.kf-activity-archive__feature h3 { margin: 18px 0; font-size: var(--fs-28); font-weight: 500; line-height: 1.65; }
.kf-activity-archive__feature h3 a { color: inherit; }
.kf-activity-archive__feature h3 + p { font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-activity-archive__feature p > a:hover { color: var(--ink-soft); }
.kf-activity-archive__feature h3 + p + p { margin: 1em 0; } /* 「記録を読む」の行。ブラウザの既定と同じ（前と同じ） */
.kf-activity-archive__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 22px; }
.kf-activity-archive__grid article { border-bottom: 1px solid var(--activity-line); }
.kf-activity-archive__grid a { display: block; color: inherit; }
.kf-activity-archive__grid :is(img, .kf-activity-archive__image-placeholder) { width: 100%; height: 180px; border-radius: 10px; object-fit: cover; }
.kf-activity-archive__grid span { display: block; padding: 18px 4px 20px; }
.kf-activity-archive__grid small { display: block; margin-bottom: 8px; font-size: var(--fs-12); letter-spacing: 0.1em; color: var(--bronze); }
.kf-activity-archive__grid strong { font-size: var(--fs-16); font-weight: 500; line-height: 1.8; }
.kf-activity-archive__pagination { display: flex; justify-content: center; gap: 8px; margin-top: 50px; }
.kf-activity-archive__pagination :is(a, span) { min-width: 38px; padding: 9px 12px; border: 1px solid var(--activity-line); font-size: var(--fs-12); text-align: center; color: var(--ink-soft); }
.kf-activity-archive__pagination span { border-color: var(--activity-green); background: var(--activity-green); color: var(--white); }


/* 9-11 お知らせの記事（/info/ の下）。写真の帯は左が濃い膜。紙と右の目次は 8-1 と同じ並び。活動の記録の記事は 8-1 の形をそのまま使う */
.news-post-hero { position: relative; display: flex; align-items: center; min-height: 340px; padding: 76px max(24px, 50% - 600px) 64px; overflow: hidden; background: linear-gradient(90deg, rgba(33, 31, 27, 0.82) 0%, rgba(40, 38, 32, 0.58) 47%, rgba(40, 38, 32, 0.12) 100%), var(--news-post-hero-image, linear-gradient(135deg, #565c53, #8d826c)) center 54% / cover no-repeat; color: var(--white); }
.news-post-hero__inner { position: relative; z-index: 2; width: 100%; max-width: 760px; color: rgba(255, 255, 255, 0.82); }
.news-post-hero__eyebrow { font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); line-height: 1.6; letter-spacing: 0.16em; text-transform: uppercase; }
.news-post-hero h1 { max-width: 17em; margin: 8px 0 10px; font-size: var(--fs-36); font-weight: 500; line-height: 1.5; letter-spacing: 0.08em; color: var(--white); text-shadow: 0 2px 18px rgba(0, 0, 0, 0.32); }
.news-post-hero__meta { display: flex; gap: 18px; margin-top: 25px; font-size: var(--fs-12); }
.news-post-hero__meta span { padding-left: 18px; border-left: 1px solid rgba(255, 255, 255, 0.45); }
.news-post-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; width: min(var(--page), 100% - 50px); margin: 48px auto 0; }
.news-post-article { min-width: 0; padding: 54px 66px 62px; border-radius: 12px; background: var(--paper-white); }
.kf-blueprint-content > .kf-legacy-post-link { margin: 34px auto 38px; } /* 規約の本文の「下に 24px」より、つなぐ箱の間を優先 */

/* 記事の中の部品（昔の記事に残っているもの） */
/* 緑の題のついた箱（右に顔写真と一言） */
.pb-iconbox { max-width: 600px; margin: 2rem auto; }
.pb-iconbox__inner { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--paper-white); box-shadow: 0 5px 18px rgba(72, 62, 44, 0.07); }
.pb-iconbox__head { padding: 1rem 2rem; background: #91c13e; font-weight: 700; line-height: 1.5; letter-spacing: 0.05em; text-align: center; color: var(--white); }
.pb-iconbox__body { display: flex; align-items: center; gap: 24px; padding: 2rem; background: #f2f8e8; }
.pb-iconbox__content { flex: 1 1 auto; min-width: 0; }
.pb-iconbox .pb-iconbox__content > :first-child { margin-top: 0; }
.pb-iconbox .pb-iconbox__content > :last-child { margin-bottom: 0; }
.pb-iconbox__innerIcon { display: flex; flex: 0 0 112px; flex-direction: column; align-items: center; gap: 14px; min-width: 0; }
.pb-iconbox__comment { position: relative; max-width: 100%; padding: 9px 11px; border: 1px solid #a8bf83; border-radius: 8px; background: var(--white); font-size: var(--fs-12); line-height: 1.6; text-align: center; color: var(--ink); }
.pb-iconbox__comment::after { content: ""; position: absolute; bottom: -5px; left: calc(50% - 4px); width: 8px; height: 8px; border-right: 1px solid #a8bf83; border-bottom: 1px solid #a8bf83; background: var(--white); transform: rotate(45deg); }
.pb-iconbox__figure { width: 100%; }
.pb-iconbox__icon { width: 100%; aspect-ratio: 1; border-radius: 50%; object-fit: cover; }
/* 丸い点の箇条書き */
ul.pb-list { margin: 0; padding: 0; list-style: none; }
ul.pb-list li { position: relative; margin: 0.7em 0; padding: 0 0 0 1.4em; line-height: 1.5; }
ul.pb-list li::before { content: ""; position: absolute; top: 0.55em; left: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--bronze); }
/* 吹き出しの箱 */
.kf-legacy-speech-balloon { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; margin-block: 24px; padding: 16px 18px; border: 1px solid #d9c8aa; border-radius: 12px; background: rgba(255, 253, 248, 0.82); }
.wp-block-post-content .kf-legacy-speech-balloon p:last-child { margin-bottom: 0; }
/* 押すと開く箱 */
.swell-block-accordion { margin-block: 30px; }
.swell-block-accordion__item { border-bottom: 1px solid #d9c8aa; }
.swell-block-accordion__title { padding: 16px 2px; color: var(--ink); cursor: pointer; }
.swell-block-accordion__body { padding: 0 2px 20px; }
.swell-block-accordion__icon { display: none; }
.kf-sample-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px; }

/* 9-12 画面幅 1000px まで */
@media (max-width: 1000px) {
	.kf-legal-page .kf-page-title-scene { background-position: 32% center; }
	.kf-faq-guide__categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.kf-sitemap-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	/* 最新ニュースの一覧 */
	.news-shell { padding-inline: 36px; }
	.news-latest { grid-template-columns: 1fr; }
	.news-latest__image { min-height: 0; aspect-ratio: 1.9 / 1; }
	.news-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	/* 活動の記録の一覧 */
	.kf-activity-archive__intro { grid-template-columns: 160px 1fr; }
	.kf-activity-archive__intro > p:last-child { grid-column: 2; }
	.kf-activity-archive__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	/* お知らせの記事：右の目次は本文の下へ（5 の決まり） */
	.news-post-layout { grid-template-columns: minmax(0, 1fr); width: min(840px, 100% - 50px); }
}

/* 9-13 スマホ（782px まで） */
@media (max-width: 782px) {
	/* 規約 */
	.kf-sample-heading-a2 { margin-top: 40px; font-size: var(--fs-23); }

	/* お問い合わせ */
	.kf-contact-page .entry-content > h2.kf-editorial-section-heading:first-child { margin-top: 0; font-size: var(--fs-19); }
	.wpcf7 :is(input[type="text"], input[type="email"], select) { width: 100%; }
	.cf7 :is(input[type="text"], input[type="email"], select, textarea) { padding: 10px 12px; border: 1px solid #817a6c; border-radius: 6px; background-color: var(--white); color: var(--ink); appearance: none; }
	.cf7 :is(input[type="text"], input[type="email"], select, textarea):focus { border-color: #416f80; outline: 2px solid #416f80; outline-offset: 2px; }
	.cf7 select { height: auto; min-height: 44px; padding-right: 34px; }
	.cf7__button { position: relative; grid-template-columns: minmax(0, 1fr) 100px; grid-template-rows: 52px auto; row-gap: 16px; }
	.cf7__button::before { padding: 12px; border: 1px solid #6d9eaf; border-radius: 12px; background: #eef7f8; font-size: var(--fs-14); }
	.cf7__button::after { width: 100px; }
	.cf7__button > p::after { content: ""; position: absolute; z-index: 1; top: calc(50% + 31px); right: 100px; width: 12px; height: 12px; border-top: 1px solid #6d9eaf; border-right: 1px solid #6d9eaf; background: #eef7f8; transform: translateY(-50%) rotate(45deg); pointer-events: none; } /* 吹き出しのしっぽ */

	/* よくある質問 */
	.kf-faq-page .kf-page-title-scene { background-position: 52% 76%; }
	:is(.kf-faq-page, .kf-contact-page) .kf-page-title-scene__title { letter-spacing: 0.08em; }
	.kf-faq-guide { grid-template-areas: "copy" "lulu" "categories"; grid-template-columns: minmax(0, 1fr); margin-bottom: 52px; border-radius: 18px; }
	.kf-faq-guide::before { top: -64px; right: -72px; width: 190px; height: 190px; }
	.kf-faq-guide::after { display: none; }
	.kf-faq-guide__copy { padding: 28px 20px 12px; }
	.kf-faq-guide__copy h2 { margin-bottom: 12px; font-size: var(--fs-19); line-height: 1.58; }
	.kf-faq-guide__copy h2 span { display: block; }
	.kf-faq-page .kf-faq-guide__lead { margin-bottom: 0; font-size: var(--fs-12); line-height: 1.85; }
	.kf-faq-page .kf-faq-guide__hint { display: none; }
	.kf-faq-guide__lulu { grid-template-columns: 82px minmax(0, 1fr); gap: 12px; place-items: center start; padding: 0 22px 20px; }
	.kf-faq-guide__lulu-visual { width: 100%; }
	.kf-faq-guide__lulu figcaption { text-align: left; }
	.kf-faq-guide__lulu figcaption span { margin-bottom: 2px; }
	.kf-faq-guide__categories { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 10px; }
	.kf-faq-guide__categories a { gap: 7px; min-height: 58px; padding: 8px 9px; }
	.kf-faq-category-title { margin-top: 54px; font-size: var(--fs-19); }
	.kf-faq-item > summary { grid-template-columns: 28px minmax(0, 1fr) 26px; gap: 10px; min-height: 66px; padding: 14px 12px; font-size: var(--fs-14); line-height: 1.7; }
	.kf-faq-item > summary::before, .kf-faq-item__answer::before { width: 28px; height: 28px; }
	.kf-faq-item > summary::after { width: 24px; height: 24px; }
	.kf-faq-item__answer { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 18px 18px 21px 12px; }
	.kf-faq-item__body :where(p, li) { font-size: var(--fs-12); line-height: 1.9; }
	.swell-block-step__item { padding-left: 42px; }
	.kf-faq-contact { grid-template-columns: 1fr; gap: 10px; margin-top: 58px; padding: 34px 24px 0; }
	.kf-faq-contact__copy { grid-row: 1; min-width: 0; }
	.kf-faq-contact__button { margin-inline: auto; } /* スマホはお問い合わせのボタンを真ん中に（下のルールーと同じ線） */
	.kf-faq-contact__lulu { grid-row: 2; width: 120px; margin: 18px auto -5px; }
	.kf-faq-contact__copy h2 { font-size: var(--fs-16); }
	.kf-faq-contact__copy > p:not(.kf-faq-contact__eyebrow) { font-size: var(--fs-12); line-height: 1.75; }

	/* サイトマップ：題を上、絵を下に */
	.kf-sitemap-scene { display: flex; flex-direction: column-reverse; height: auto; background: var(--paper-white); }
	.kf-sitemap-scene > :where(.kf-inline) > img { height: 170px; }
	.kf-sitemap-scene__title { position: static; width: 100%; padding: 30px 20px 25px; transform: none; }
	.kf-sitemap-scene__title h1 { font-size: var(--fs-28); }
	.kf-sitemap-intro { padding-top: 2px; }
	.kf-sitemap-intro p br { display: none; }
	.kf-sitemap-groups { grid-template-columns: 1fr; gap: 40px; padding: 32px 24px 0; }

	/* 送信完了 */
	.kf-contact-complete__panel { padding: 44px 24px; }
	.kf-contact-complete__panel h1 { font-size: var(--fs-28); }
	.kf-contact-complete__note { grid-template-columns: 1fr; gap: 15px; }
	.kf-contact-complete__note a { white-space: normal; }
	:is(.kf-contact-complete__guides, .kf-404-guides) { grid-template-columns: 1fr; }
	:is(.kf-contact-complete__guides, .kf-404-guides) a { border-top: 1px solid var(--complete-line); border-left: 0; }
	:is(.kf-contact-complete__guides, .kf-404-guides) a:first-child { border-top: 0; }

	/* 見つからないページ */
	.kf-404-panel { min-height: 400px; }
	.kf-404-panel__number { right: -5px; bottom: -16px; font-size: var(--fs-28); }
	.kf-404-panel__copy { width: calc(100% - 40px); }
	.kf-404-panel h1 { font-size: var(--fs-28); }
	.kf-404-panel__description br { display: none; }

	/* 検索の結果 */
	.kf-search-results__hero, .kf-search-results__body { width: calc(100% - 28px); }
	.kf-search-results__hero { grid-template-columns: minmax(0, 1fr) 96px; gap: 8px; margin-top: 28px; padding: 36px 20px 0 24px; }
	.kf-search-results__hero-copy { grid-area: 1 / 1 / auto / -1; padding-bottom: 32px; }
	.kf-search-results__hero h1 { padding-right: 96px; font-size: var(--fs-28); }
	.kf-search-results__guide { position: absolute; top: 22px; right: 14px; width: 92px; }
	.kf-search-results__hero button { min-width: 76px; }
	.kf-search-results__body { margin-top: 22px; padding: 36px 22px 40px; }
	.kf-search-results__heading { flex-direction: column; align-items: flex-start; gap: 12px; }
	.kf-search-results__heading h2 { grid-template-columns: 36px minmax(0, 1fr); gap: 10px; font-size: var(--fs-23); }
	.kf-search-results__heading h2::before { width: 36px; height: 36px; }
	.kf-search-results__filter { flex-wrap: nowrap; overflow-x: auto; }
	.kf-search-results__filter a { min-width: max-content; }
	.kf-search-results__list article { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; align-items: start; padding: 18px 0; }
	.kf-search-results__list :is(img, .kf-search-results__image-placeholder) { height: 72px; border-radius: 8px; }
	.kf-search-results__meta { flex-wrap: wrap; gap: 6px 10px; }
	.kf-search-results__list h3 { margin-top: 6px; font-size: var(--fs-16); }
	.kf-search-results__list h3 + p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }

	/* 最新ニュースの一覧 */
	.news-masthead { min-height: 220px; padding: 32px 20px 35px; background-size: auto, cover, auto; }
	.news-masthead__mark span { width: 38px; }
	.news-masthead h1 { font-size: var(--fs-28); }
	.news-masthead__lead { font-size: var(--fs-14); line-height: 1.8; }
	.news-shell { width: calc(100% - 28px); margin-top: 38px; padding: 28px 20px 40px; }
	.news-years { display: grid; grid-template-columns: repeat(auto-fit, minmax(54px, 1fr)); margin-bottom: 30px; }
	.news-years > * { padding: 11px 4px; text-align: center; }
	.news-years a { font-size: var(--fs-14); white-space: nowrap; }
	.news-years span { display: none; }
	.news-latest-section { margin-bottom: 50px; }
	.news-section-heading { gap: 15px; margin-bottom: 22px; }
	.news-section-heading h2 { font-size: var(--fs-19); }
	.news-latest h3 { font-size: var(--fs-23); }
	.news-latest__copy { padding: 26px 22px 29px; }
	.news-year + .news-year { margin-top: 52px; }
	.news-year__header { gap: 14px; }
	.news-grid--three { grid-template-columns: 1fr; }
	.news-text-row { grid-template-columns: 1fr auto; gap: 8px 14px; padding: 16px 8px; }
	.news-text-row time { grid-column: 1 / -1; }
	.news-text-row strong { font-size: var(--fs-14); }
	.news-pagination { margin-top: 46px; }

	/* 活動の記録の一覧 */
	.kf-activity-archive__hero { min-height: 645px; padding: 40px 20px; }
	.kf-activity-archive__hero h1 { font-size: var(--fs-28); }
	.kf-activity-archive__intro { grid-template-columns: 1fr; gap: 18px; width: calc(100% - 28px); margin-block: 54px; }
	.kf-activity-archive__intro > p:last-child { grid-column: auto; }
	.kf-activity-archive__filter { justify-content: flex-start; width: calc(100% - 28px); overflow-x: auto; }
	.kf-activity-archive__filter a { min-width: max-content; }
	:is(.kf-activity-archive__latest, .kf-activity-archive__records) { width: calc(100% - 28px); }
	.kf-activity-archive__feature { grid-template-columns: 1fr; }
	.kf-activity-archive__feature figure { height: 260px; }
	.kf-activity-archive__feature > div { padding: 30px 25px; }
	.kf-activity-archive__grid { grid-template-columns: 1fr; }
	.kf-activity-archive__grid :is(img, .kf-activity-archive__image-placeholder) { height: 220px; }
	.kf-activity-archive__grid strong { font-size: var(--fs-14); }

	/* お知らせの記事 */
	.news-post-hero { min-height: 310px; padding: 58px 20px 48px; background-position: 57% center; }
	.news-post-hero h1 { font-size: var(--fs-28); }
	.news-post-hero__meta { flex-wrap: wrap; }
	.news-post-layout { width: calc(100% - 28px); margin-top: 38px; }
	.news-post-article { padding: 34px 23px 42px; }
	.kf-blueprint-content > .kf-legacy-post-link { margin: 28px auto 32px; }
	.pb-iconbox__body { flex-direction: column; align-items: stretch; padding: 1.25rem; }
	.pb-iconbox__innerIcon { flex-basis: auto; align-self: center; width: 112px; }
	.kf-sample-actions { flex-direction: column; align-items: stretch; }
}

/*SEC9END*/


@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, ::before, ::after { transition: none !important; }
}

/* スマホの縦（430px まで）: 横に並べると窮屈になる所だけ、縦に積む */
@media (max-width: 430px) {
	.practice-content .kf-practice-conditions--with-lulu > h2.kf-practice-editorial-heading { padding: 13px 15px; }
	.kf-practice-conditions__main { grid-template-columns: 1fr; gap: 8px; padding: 22px 20px 10px; }
	.kf-practice-lulu-guide { min-height: 274px; }
	.kf-practice-lulu-balloon { width: 210px; }
	.practice-content .kf-practice-lulu-guide__image { right: 50%; width: 158px; transform: translateX(50%); }
	.kf-journal-hero__photo, .kf-journal-hero__featured, .kf-journal-hero__featured a { height: 225px; }
	.kf-journal-hero__title { font-size: 1.78rem; }
	.kf-journal-hero__meta { display: grid; gap: 4px; }
	.kf-404-search { grid-template-columns: 1fr; }
	.kf-404-search input { border-right: 1px solid var(--line-strong); border-radius: 6px 6px 0 0; }
	.kf-404-search button { min-height: 44px; border-radius: 0 0 6px 6px; }
	.kf-activity-archive__feature > div > p:first-child { flex-direction: column; align-items: flex-start; gap: 5px; }
	.kf-activity-archive__pagination { flex-wrap: wrap; }
}

/* とても小さなスマホ（360px まで）: よくある質問の案内役は絵だけにする */
@media (max-width: 360px) {
	.kf-faq-guide__lulu { grid-template-columns: 82px; justify-content: center; justify-items: center; padding-inline: 16px; }
	.kf-faq-guide__lulu figcaption { display: none; }
}


/* 10. 老師の教え（一覧と記事） ------------------------------------
   一覧は「体験を読む」形（kf-experience-*：紙色の帯・見出し）に、教えの箱を並べる。
   記事は 8 の記事の形に、紙の色・見出しの間・幅いっぱいの帯だけ替える。 */

/* 一覧の頭の帯：紙色の地に薄い絵、真ん中に題、左に二字の印、右に一言 */
.kf-experience-hero { position: relative; display: grid; place-items: center; height: 350px; padding: 32px 24px; overflow: hidden; background: rgba(255, 254, 250, 0.96); }
.kf-maxim-archive .kf-experience-hero::before { content: ""; position: absolute; inset: 0; background: url("../images/official-masters-words-hero-background.png") center 34% / cover no-repeat; opacity: 0.26; pointer-events: none; }
.kf-experience-hero__copy { z-index: 1; width: min(820px, 100% - 48px); text-align: center; }
.kf-experience-hero__eyebrow { margin: 0 0 12px; font-size: var(--fs-12); letter-spacing: 0.19em; color: var(--bronze); }
.kf-experience-hero__copy h1 { font-size: var(--fs-36); font-weight: 500; line-height: 1.5; letter-spacing: 0.1em; }
.kf-experience-hero__divider { display: block; width: 70px; margin: 20px auto 18px; border-top: 1px solid #8d7139; }
.kf-experience-hero__lead { line-height: 2; color: var(--ink-soft); }
:is(.kf-experience-hero__mark, .kf-experience-hero__note) { position: absolute; z-index: 1; top: 50%; transform: translateY(-50%); color: var(--ink-soft); }
.kf-experience-hero__mark { left: max(30px, 50vw - 560px); display: flex; flex-direction: column; align-items: center; width: 210px; }
.kf-experience-hero__mark-characters { display: grid; grid-template-columns: auto 42px auto; align-items: center; }
.kf-experience-hero__mark-characters span { font-size: var(--fs-36); line-height: 1; }
.kf-experience-hero__mark p { margin: 1em 0; } /* 二字の下の小さな英字の行。上下の間はブラウザの既定のまま（前と同じ） */
.kf-experience-hero__mark-characters i { width: 24px; margin: 0 auto; border-top: 1px solid rgba(141, 113, 57, 0.38); }
.kf-experience-hero__mark small { display: block; margin-top: 13px; font-size: var(--fs-12); line-height: 1.7; letter-spacing: 0.18em; text-align: center; color: var(--bronze); }
.kf-experience-hero__note { right: max(30px, 50vw - 560px); width: 270px; font-size: var(--fs-12); line-height: 2; }

/* 一覧の中身 */
.kf-maxim-archive__shell { width: min(1040px, 100% - 48px); margin: 68px auto 0; }

/* はじめの一言：左に小さな英字、右に大きな題と文の二列 */
.kf-experience-introduction { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 44px; min-height: 171px; margin-bottom: 78px; padding: 0 42px; }
.kf-experience-introduction__eyebrow { margin: 8px 0 0; font-size: var(--fs-12); letter-spacing: 0.14em; color: var(--bronze); }
.kf-experience-introduction__body { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 48px; }
.kf-experience-introduction h2 { font-size: var(--fs-28); font-weight: 500; line-height: 1.8; letter-spacing: 0.055em; }
.kf-experience-introduction__body > p { margin: 3px 0 0; line-height: 2.1; color: var(--ink-soft); }
.kf-maxim-archive__library { margin-top: 86px; }

/* 見出し：左に小さな英字と題（題の下だけ濃い線）、右に日付や一言 */
:is(.kf-experience-section-heading, :is(.kf-maxim-archive__section-heading, .kf-healthcare-archive__section-heading, .kf-language-archive__section-heading)) { display: flex; align-items: end; justify-content: space-between; margin-bottom: 27px; border-bottom: 1px solid #d9ccb5; }
:is(.kf-experience-section-heading > div > p, :is(.kf-maxim-archive__section-heading, .kf-healthcare-archive__section-heading, .kf-language-archive__section-heading) p) { margin: 0 0 5px; font-size: var(--fs-12); letter-spacing: 0.15em; color: var(--bronze); }
:is(.kf-experience-section-heading, :is(.kf-maxim-archive__section-heading, .kf-healthcare-archive__section-heading, .kf-language-archive__section-heading)) h2 { padding-bottom: 12px; border-bottom: 2px solid #8d7139; font-size: var(--fs-23); font-weight: 500; }
:is(.kf-maxim-archive__section-heading, .kf-healthcare-archive__section-heading, .kf-language-archive__section-heading) h2 { border-bottom-color: var(--bronze-bright); }
.kf-experience-section-heading > :is(time, span, p) { max-width: 34em; margin: 0 0 12px; font-size: var(--fs-12); line-height: 1.9; color: var(--ink-soft); }
:is(.kf-maxim-archive__section-heading, .kf-healthcare-archive__section-heading, .kf-language-archive__section-heading) > :is(time, span) { margin-bottom: 12px; font-size: var(--fs-12); color: var(--ink-soft); }

/* 新しい教え：大きな写真に、右下から紙が重なる */
.kf-maxim-archive__feature { position: relative; padding-bottom: 76px; }
.kf-maxim-archive__feature figure { height: 430px; overflow: hidden; }
.kf-maxim-archive__feature figure :is(img, .kf-maxim-archive__image-placeholder) { display: block; width: 100%; height: 100%; object-fit: cover; }
.kf-maxim-archive__feature-paper { position: absolute; right: 42px; bottom: 0; width: min(540px, 100% - 84px); padding: 31px 38px 32px; background: rgba(255, 254, 251, 0.92); }
.kf-maxim-archive__feature-paper > p:first-child { margin: 0 0 8px; font-size: var(--fs-12); letter-spacing: 0.08em; color: var(--bronze); }
.kf-maxim-archive__feature-paper h3 { margin: 0 0 14px; font-size: var(--fs-28); font-weight: 500; line-height: 1.7; letter-spacing: 0.045em; }
:is(.kf-maxim-archive__feature-paper, .kf-maxim-archive__entry) h3 a { color: inherit; }
.kf-maxim-archive__feature-paper > p:not(:first-child) { margin: 0 0 18px; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-maxim-archive__feature-paper > a { display: inline-flex; gap: 16px; padding-bottom: 3px; border-bottom: 1px solid #b7a275; font-size: var(--fs-12); color: var(--bronze); }

/* 教えの書架：日付・文・写真の三列の行 */
.kf-maxim-archive__list { border-top: 1px solid #d9ccb5; }
.kf-maxim-archive__entry { display: grid; grid-template-columns: 74px minmax(0, 1fr) 270px; gap: 30px; align-items: center; padding: 30px 8px; border-bottom: 1px solid #d9ccb5; }
.kf-maxim-archive__entry-date { align-self: start; padding-top: 5px; color: var(--bronze); }
.kf-maxim-archive__entry time :is(b, span) { display: block; }
.kf-maxim-archive__entry time b { font-size: var(--fs-12); font-weight: 400; letter-spacing: 0.08em; }
.kf-maxim-archive__entry time span { margin-top: 3px; font-size: 16px; }
.kf-maxim-archive__entry-copy > p:first-child { margin: 0 0 7px; font-size: var(--fs-12); letter-spacing: 0.07em; color: var(--bronze); }
.kf-maxim-archive__entry h3 { margin: 0 0 9px; font-size: var(--fs-19); font-weight: 500; line-height: 1.65; }
.kf-maxim-archive__entry-copy > p:not(:first-child) { font-size: var(--fs-12); line-height: 1.85; color: var(--ink-soft); }
.kf-maxim-archive__entry-more { margin-top: 12px; }
.kf-maxim-archive__entry-more a { display: inline-block; font-size: var(--fs-12); color: var(--bronze); }
.kf-maxim-archive__entry-visual { min-width: 0; }
.kf-maxim-archive__entry-image { display: block; overflow: hidden; border-radius: 10px; }
.kf-maxim-archive__entry-image :is(img, .kf-maxim-archive__image-placeholder) { display: block; width: 100%; aspect-ratio: 16 / 8.4; border-radius: 10px; object-fit: cover; transition: transform 0.35s ease; }
.kf-maxim-archive__entry:hover .kf-maxim-archive__entry-image img { transform: scale(1.025); }
.kf-maxim-archive__image-placeholder { background: var(--paper) var(--wallpaper) center / 260px auto; }
.kf-maxim-archive__empty { display: grid; place-items: center; min-height: 260px; border: 1px solid #d9ccb5; background: var(--paper-white); color: var(--ink-soft); }

/* 記事：帯は窓の幅いっぱい、紙は少し明るい色、見出しの上下の間 */
body.kf-reportage-post--maxim .kf-single-hero { --title-h: clamp(300px, 26vw, 380px); width: 100%; }
body.kf-reportage-post .kf-single-article { background: var(--paper-white); }
body.kf-reportage-post .kf-single-article .wp-block-post-content > .kf-site-heading-b { margin: 64px 0 26px; }
body.kf-reportage-post .kf-single-article .wp-block-post-content > .kf-site-heading-b:first-child { margin-top: 0; }

@media (max-width: 1000px) {
	.kf-maxim-archive__entry { grid-template-columns: 66px minmax(0, 1fr) 225px; gap: 22px; }
	body.kf-reportage-post .kf-single-layout { grid-template-columns: minmax(0, 1fr); width: min(840px, 100% - 50px); }
}
@media (max-width: 782px) {
	.kf-experience-hero { height: auto; padding: 48px 20px 46px; }
	.kf-maxim-archive .kf-experience-hero::before { background-position: right 50%; }
	.kf-experience-hero__copy { width: 100%; }
	.kf-experience-hero__copy h1 { font-size: var(--fs-28); }
	.kf-experience-hero__mark { left: -24px; opacity: 0.55; }
	.kf-experience-hero__mark-characters span { font-size: var(--fs-28); }
	.kf-experience-hero__note { display: none; }
	.kf-experience-introduction { grid-template-columns: 1fr; gap: 18px; min-height: 0; margin-bottom: 56px; padding: 0 8px; }
	.kf-experience-introduction__body { grid-template-columns: 1fr; gap: 16px; }
	.kf-experience-introduction h2 br { display: none; }
	.kf-experience-section-heading { align-items: start; }
	.kf-experience-section-heading > :is(time, span, p) { max-width: 120px; text-align: right; }
	.kf-maxim-archive__shell { width: calc(100% - 28px); margin-top: 48px; }
	.kf-maxim-archive__library { margin-top: 64px; }
	.kf-maxim-archive__feature { padding-bottom: 0; }
	.kf-maxim-archive__feature figure { height: auto; aspect-ratio: 16 / 9; }
	.kf-maxim-archive__feature-paper { position: relative; right: auto; width: calc(100% - 28px); margin: -28px auto 0; padding: 25px 24px 27px; }
	.kf-maxim-archive__feature-paper h3 { font-size: var(--fs-23); }
	.kf-maxim-archive__entry { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; align-items: start; padding: 25px 4px 28px; }
	.kf-maxim-archive__entry-date { grid-row: 1 / span 2; }
	.kf-maxim-archive__entry-copy { grid-column: 2; }
	.kf-maxim-archive__entry-visual { grid-column: 2; grid-row: 1; margin-bottom: 12px; }
	.kf-maxim-archive__entry h3 { font-size: var(--fs-16); }
	.kf-maxim-archive__entry time span { font-size: 14px; }
	body.kf-reportage-post--maxim .kf-single-hero { --title-h: 260px; }
	body.kf-reportage-post .kf-single-article .wp-block-post-content > .kf-site-heading-b { margin-top: 50px; }
	body.kf-reportage-post .kf-single-article .wp-block-post-content > .kf-site-heading-b:first-child { margin-top: 0; }
}


/* 11. 功夫コミック（/kungfu-comic/） -----------------------------------
   上から：絵の帯、話（?episode= で替わる）、エピソード一覧、このコミックについて、登場動物紹介。
   箱はどれも幅 1040px。話の箱は本文と同じ紙、ほかの三つは一段落とした紙に白いカードを置く。
   日本語の文は 16px、英字の小さな飾りだけ 12px。 */

/* ページの地は置かない。箱のあいだと左右には、サイトの壁紙（.site-main）がそのまま見える */
.kf-comic-page :where(h1, h2, h3, p, figure, ul, dl, dd) { margin: 0; }
.kf-comic-page :where(ul) { padding: 0; list-style: none; }
.kf-comic-page :where(img) { display: block; width: 100%; height: auto; }

/* 絵の帯：絵の上に、英字と題を真ん中に重ねる */
.kf-comic-page__scene { position: relative; overflow: hidden; }
.kf-comic-page__scene-title { position: absolute; top: 4%; left: 50%; width: min(900px, 100% - 48px); text-align: center; transform: translateX(-50%); }
.kf-comic-page__scene-title p { margin-bottom: 13px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.24em; color: var(--bronze); }
.kf-comic-page__scene-title h1 { font-size: var(--fs-36); font-weight: 500; line-height: 1.5; letter-spacing: 0.07em; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.72); }

/* 四つの箱 */
:is(.kf-comic-episode, .kf-comic-list, .kf-comic-about, .kf-comic-cast) { width: min(var(--band), 100% - 50px); margin: 58px auto 0; border: 1px solid var(--line); border-radius: 12px; } /* 外側の箱だけ角を丸く（サイトの記事の箱と同じ 12px）。中のカードは四角のまま */
:is(.kf-comic-list, .kf-comic-about, .kf-comic-cast) { padding: 64px 72px; background: var(--paper-news); }
.kf-comic-page__eyebrow { margin-bottom: 16px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.22em; color: var(--bronze); }
:is(.kf-comic-list, .kf-comic-cast) h2 { font-size: var(--fs-28); font-weight: 500; line-height: 1.5; letter-spacing: 0.045em; }

/* 話：真ん中に 900px までの絵。下に台詞、前後の話 */
.kf-comic-page__episodes { scroll-margin-top: calc(var(--header-h) + 24px); }
.kf-comic-episode { padding: 72px; background: var(--paper-white); }
.kf-comic-episode > * { width: min(900px, 100%); margin-inline: auto; }
.kf-comic-episode__header { margin-bottom: 44px; text-align: center; }
.kf-comic-episode__header p { font-size: var(--fs-28); line-height: 1.5; letter-spacing: 0.2em; } /* ほかの箱の見出しと同じ大きさ */
.kf-comic-episode__art a { display: block; border: 1px solid var(--line); box-shadow: 0 14px 34px rgba(68, 56, 36, 0.08); }
.kf-comic-episode__art figcaption { margin-top: 12px; text-align: center; color: var(--ink-soft); }
.kf-comic-transcript { margin-top: 52px; border-block: 1px solid var(--line); }
.kf-comic-transcript summary { padding: 18px 4px; cursor: pointer; }
.kf-comic-transcript__body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 34px; padding: 6px 4px 28px; }
.kf-comic-transcript__body h3 { margin-bottom: 8px; font-size: var(--fs-16); font-weight: 500; letter-spacing: 0.05em; color: var(--ink-soft); }
.kf-comic-transcript__body p { margin-bottom: 7px; }
.kf-comic-transcript__body strong { font-weight: 600; }
.kf-comic-episode__pager { display: flex; justify-content: space-between; gap: 16px; margin-top: 40px; }
.kf-comic-episode__pager:empty { display: none; }
.kf-comic-episode__pager a { display: flex; flex-direction: column; gap: 4px; max-width: 48%; line-height: 1.6; color: var(--ink); }
.kf-comic-episode__pager a span { color: var(--ink-soft); }
.kf-comic-episode__pager-prev span::before { content: "← "; }
.kf-comic-episode__pager-next { margin-left: auto; text-align: right; }
.kf-comic-episode__pager-next span::after { content: " →"; }

/* エピソード一覧：見出しの右に「第一話から読む」、下に話のカード */
.kf-comic-list__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 36px; }
.kf-comic-page .kf-comic-list__start { flex: none; padding: 10px 22px; border: 1px solid var(--bronze-soft); letter-spacing: 0.06em; color: var(--ink); transition: background-color 0.2s, color 0.2s; }
.kf-comic-list__start::after { content: " →"; }
.kf-comic-page .kf-comic-list__start:is(:hover, :focus-visible) { background: var(--bronze); color: var(--white); }
.kf-comic-list__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }

/* 白いカード（話のカードと登場動物のカード）。マウスを乗せると少し浮く */
:is(.kf-comic-list__items li, .kf-comic-cast__card) { border: 1px solid var(--line); background: var(--paper-white); transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; }
.kf-comic-list__items li { border-color: var(--line-strong); } /* 話のカードは枠を濃く。登場動物のカードは薄い線のまま */
:is(.kf-comic-list__items li:has(a:is(:hover, :focus-visible)), .kf-comic-cast__card:is(:hover, :focus-visible)) { border-color: var(--line-strong); box-shadow: 0 10px 24px rgba(68, 56, 36, 0.1); transform: translateY(-2px); }
:is(.kf-comic-list__items li:has([aria-current], a:is(:hover, :focus-visible)), .kf-comic-cast__card[aria-expanded="true"]) { border-color: var(--bronze); }
.kf-comic-page .kf-comic-card { display: block; height: 100%; color: var(--ink); }
.kf-comic-card img { aspect-ratio: 12 / 5; object-fit: cover; }
.kf-comic-card__meta { display: block; position: relative; padding: 14px 16px 16px; }
.kf-comic-card__number { display: block; line-height: 1.6; letter-spacing: 0.08em; color: var(--ink-soft); }
/* 開いている話の「表示中」は、房の付いた中国のしおり（縦書き）。絵の下の端から下がり、結び目と房が付く。色と形はここだけの値（うさぎ 2026-11-10「しおりみたいな」「中国っぽい感じに」「ここだけ特別に」） */
.kf-comic-card__number em { display: none; position: absolute; top: -10px; right: 12px; padding: 9px 6px 8px; border-radius: 2px; background: #a8322b; outline: 1px solid #d9b96a; outline-offset: -4px; font-size: var(--fs-14); font-style: normal; line-height: 1.3; letter-spacing: 0.12em; color: var(--paper-white); writing-mode: vertical-rl; }
.kf-comic-card__number em::before { content: ""; position: absolute; top: calc(100% + 3px); left: 50%; width: 9px; height: 9px; margin-left: -4.5px; border: 1px solid #d9b96a; background: #a8322b; transform: rotate(45deg); }
.kf-comic-card__number em::after { content: ""; position: absolute; top: calc(100% + 15px); left: 50%; width: 9px; height: 20px; margin-left: -4.5px; background: repeating-linear-gradient(90deg, #a8322b 0 1.5px, #c5544a 1.5px 3px); clip-path: polygon(22% 0, 78% 0, 100% 100%, 0 100%); }
.kf-comic-card[aria-current] em { display: block; }
.kf-comic-card[aria-current] .kf-comic-card__meta { padding-right: 44px; } /* 長い題がしおりの下に入らないように */
.kf-comic-card__title { display: block; margin-top: 4px; line-height: 1.6; color: var(--bronze); } /* 題はリンクの色 */

/* このコミックについて：左に文、右に三人の絵 */
.kf-comic-about { display: grid; grid-template-columns: minmax(0, 1fr) 260px; align-items: center; gap: 86px; padding-block: 78px; }
.kf-comic-about__copy { max-width: 620px; }
.kf-comic-about h2 { font-size: var(--fs-36); font-weight: 500; line-height: 1.5; letter-spacing: 0.045em; }
.kf-comic-about__lead { margin-top: 24px; line-height: 1.9; }
.kf-comic-about__credit { margin-top: 16px; color: var(--ink-soft); }
.kf-comic-about__cover img { aspect-ratio: 1; object-fit: cover; }

/* 登場動物紹介：一人一枚のカード。押すと下にくわしい紹介の箱が開く */
.kf-comic-cast__header { margin-bottom: 36px; }
.kf-comic-cast__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.kf-comic-cast__card { display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; border-radius: 0; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.kf-comic-cast__card img { aspect-ratio: 3 / 4; object-fit: cover; }
.kf-comic-cast__card-body { display: block; padding: 14px 16px 16px; font-size: var(--fs-14); } /* カードの中の説明はメニューと同じ 14px。名前だけ大きい */
:is(.kf-comic-cast__name, .kf-comic-cast__detail h3) { display: flex; align-items: baseline; gap: 10px; font-size: var(--fs-23); font-weight: 400; line-height: 1.5; letter-spacing: 0.04em; }
:is(.kf-comic-cast__name, .kf-comic-cast__detail h3) small { font-size: var(--fs-16); letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-comic-cast__kind { display: block; margin-top: 6px; }
.kf-comic-cast__kind span { display: block; }
.kf-comic-cast__quote { display: block; margin-top: 10px; }
.kf-comic-cast__more { display: inline-block; margin-top: 12px; padding-bottom: 2px; border-bottom: 1px solid var(--bronze-soft); letter-spacing: 0.06em; }
.kf-comic-cast__more::after { content: " ＋"; }
.kf-comic-cast__card[aria-expanded="true"] .kf-comic-cast__more::after { content: " −"; }
.kf-comic-cast__panels { margin-top: 24px; }
.kf-comic-cast__panel { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); align-items: start; gap: 48px; padding: 40px; border: 1px solid var(--line-strong); background: var(--paper-white); scroll-margin-top: calc(var(--header-h) + 14px); }
.kf-comic-cast__panel + .kf-comic-cast__panel { margin-top: 24px; }
.kf-comic-cast__panel[hidden] { display: none; }
.kf-comic-cast__portrait img { aspect-ratio: 3 / 4; object-fit: cover; }
.kf-comic-cast__detail h3 { margin: 6px 0 18px; font-size: var(--fs-28); }
.kf-comic-cast__facts { display: grid; gap: 10px; }
.kf-comic-cast__facts dt { color: var(--ink-soft); }
.kf-comic-cast__intro { margin-top: 20px; line-height: 1.95; }
.kf-comic-cast__intro + .kf-comic-cast__facts { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.kf-comic-cast__close { display: none; margin-top: 26px; padding: 9px 22px; border: 1px solid var(--bronze-soft); border-radius: 0; background: none; font: inherit; letter-spacing: 0.06em; color: inherit; cursor: pointer; }
.kf-comic-cast.is-ready .kf-comic-cast__close { display: inline-block; } /* 開け閉めの JS が動いた時だけ出す */
.kf-comic-cast__close:is(:hover, :focus-visible) { background: var(--bronze); color: var(--white); }

/* スマホ（782px まで）：題は絵の上に出し、箱の中は一列。登場動物のカードは横に送る */
@media (max-width: 782px) {
	.kf-comic-page__scene { display: flex; flex-direction: column; }
	.kf-comic-page__scene > :where(.kf-inline) > img { height: 222px; object-fit: cover; }
	.kf-comic-page__scene-title { position: static; order: -1; width: calc(100% - 36px); margin-inline: auto; padding-block: 18px 22px; transform: none; }
	.kf-comic-page__scene-title p { margin-bottom: 8px; }
	.kf-comic-page__scene-title h1 { font-size: var(--fs-23); letter-spacing: 0.035em; }
	.kf-comic-page__scene-title h1 span { display: block; }
	:is(.kf-comic-episode, .kf-comic-list, .kf-comic-about, .kf-comic-cast) { margin-top: 34px; }
	:is(.kf-comic-list, .kf-comic-cast) { padding: 34px 20px 28px; }
	:is(.kf-comic-list, .kf-comic-cast) h2 { font-size: var(--fs-23); }
	.kf-comic-episode { padding: 34px 0 38px; }
	.kf-comic-episode__header { margin-bottom: 25px; }
	.kf-comic-episode__header p { font-size: var(--fs-23); }
	.kf-comic-episode > :is(.kf-comic-transcript, .kf-comic-episode__pager) { width: calc(100% - 32px); }
	.kf-comic-episode__art figcaption { padding-inline: 16px; }
	.kf-comic-transcript__body { grid-template-columns: 1fr; }
	.kf-comic-episode__pager { flex-direction: column; gap: 18px; }
	.kf-comic-episode__pager a { max-width: 100%; }
	.kf-comic-list__header { flex-direction: column; align-items: flex-start; gap: 16px; }
	.kf-comic-list__items { grid-template-columns: 1fr; gap: 18px; }
	.kf-comic-about { grid-template-columns: 1fr; gap: 30px; padding: 38px 24px 28px; }
	.kf-comic-about h2 { font-size: var(--fs-19); letter-spacing: 0.025em; }
	.kf-comic-about__lead { margin-top: 18px; }
	.kf-comic-about__cover { width: min(230px, 76%); margin-inline: auto; }
	.kf-comic-cast__cards { display: flex; gap: 14px; margin-inline: -20px; padding: 2px 20px 10px; overflow-x: auto; scroll-snap-type: x mandatory; }
	.kf-comic-cast__cards li { flex: 0 0 78%; scroll-snap-align: start; }
	:is(.kf-comic-list__items li:has(a:is(:hover, :focus-visible)), .kf-comic-cast__card:is(:hover, :focus-visible)) { transform: none; }
	.kf-comic-cast__panel { grid-template-columns: 1fr; padding: 22px 18px 26px; }
	.kf-comic-cast__portrait { width: min(260px, 78%); margin-inline: auto; }
}


/* 12. 留学記（/stay-china/ の入口と全話目次、話、後日談、読み解き、索引） ------------------
   255 ページ：話 100、索引 143（入口 1・人物 43・場所 29・言葉 70）、入口と部 10、後日談と読み解き 2。
   字の大きさは rem で書く（留学記はスマホでも字の大きさを変えない。本文の段落だけスマホで 17px）。
   題の帯の写真と膜は、ページが style で渡す値（--study-hero-image・--study-hero-position・--study-hero-overlay など）を使う。
   並び：12-1 値と土台 → 12-2 題の帯 → 12-3 紙と右の目次 → 12-4 本文 → 12-5 話の下 → 12-6 読み解き
   　　　→ 12-7 入口と全話目次 → 12-8 索引 → 12-9 画面幅 1000px まで → 12-10 スマホ
   ----------------------------------------------------------- */

/* 12-1 値と土台（索引の小窓は指で押した時だけ body の直下に出るので、値を同じ所で渡す） */
.study-post, .study-index, .study-index-pop {
	--study-hero-overlay: linear-gradient(90deg, rgba(25, 29, 26, 0.76) 0%, rgba(35, 39, 35, 0.56) 40%, rgba(35, 39, 35, 0.36) 65%, rgba(35, 39, 35, 0.1) 100%); /* 題の帯の膜（左が濃い） */
	--study-gold: #967536;
	--study-line: #d5c7aa;
	--study-blue: #1769aa;   /* 話や索引へ行くリンクの青 */
	--study-dim: #8a7a5a;    /* 索引の小さな見出しと数 */
	--study-dot: #d9cdb6;    /* 索引の点線 */
}
.study-post, .study-index { font-size: 1rem; }
:where(.study-post, .study-index) a:hover { color: var(--sage); }

/* 12-2 題の帯（話・後日談・読み解き・索引） */
.study-post-hero { display: flex; align-items: center; min-height: clamp(300px, 26vw, 380px); background: var(--study-hero-overlay), var(--study-hero-image, url("../images/study-abroad-hero-fallback.jpg")) center / cover no-repeat; color: var(--white); }
/* 話と読み解きは、写真（::before）と膜（::after）を別々に重ねる。写真の位置と色の調子はページごと */
.study-post--responsive .study-post-hero { position: relative; isolation: isolate; overflow: hidden; background: none; }
.study-post--responsive .study-post-hero::before { content: ""; position: absolute; inset: -1px; z-index: -2; background: var(--study-hero-image) var(--study-hero-position, center 62%) / cover no-repeat; filter: var(--study-hero-filter, none); }
.study-post--responsive .study-post-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--study-hero-overlay); }
body.kf-study-hero--light .study-post-hero { --study-hero-overlay: linear-gradient(90deg, rgba(25, 29, 26, 0.24) 0%, rgba(35, 39, 35, 0.12) 40%, rgba(35, 39, 35, 0.02) 65%, rgba(35, 39, 35, 0) 100%); }
body.kf-study-hero--strong-narrow .study-post-hero { --study-hero-overlay: linear-gradient(90deg, rgba(25, 29, 26, 0.52) 0%, rgba(35, 39, 35, 0.34) 40%, rgba(35, 39, 35, 0.1) 65%, rgba(35, 39, 35, 0) 100%); }
body.kf-study-hero--soft .study-post--responsive .study-post-hero { --study-hero-overlay: linear-gradient(90deg, rgba(25, 29, 26, 0.28) 0%, rgba(35, 39, 35, 0.18) 40%, rgba(35, 39, 35, 0.08) 100%); }
body.kf-study-hero--soft .study-post-hero__inner { text-shadow: 0 2px 5px rgba(0, 0, 0, 0.85); }
.study-post-hero__inner { width: min(var(--page), 100% - 50px); margin: 0 auto; padding: 56px 62px; }
.study-post-hero__eyebrow { margin: 0 0 13px; font-size: 0.67rem; letter-spacing: 0.18em; color: #f2ddaa; }
.study-post-hero__series { margin: 0 0 10px; font-size: 1.02rem; letter-spacing: 0.09em; color: rgba(255, 253, 247, 0.9); }
.study-post-hero h1 { font-size: var(--study-hero-title-size, clamp(2.15rem, 3.7vw, 3.2rem)); font-weight: 500; line-height: 1.42; letter-spacing: 0.055em; }
.study-post-hero h1[data-title-fit] { white-space: nowrap; } /* 題は一行に収める（字の大きさはページが渡す） */
.study-post-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 24px; font-size: 0.7rem; color: rgba(255, 255, 255, 0.84); }
.study-post-hero__meta a { color: inherit; text-underline-offset: 0.3em; }

/* 12-3 紙と右の目次（本文 840px ＋ 目次 320px、間 40px） */
.study-post-layout { display: grid; grid-template-columns: minmax(0, 840px) minmax(280px, 320px); gap: 40px; align-items: start; width: min(var(--page), 100% - 50px); margin: 48px auto 0; }
.study-post-article { min-width: 0; padding: 50px 58px 54px; border-radius: 12px; background: var(--paper-white); }

.study-sidebar { align-self: start; }
.study-sidebar__panel { padding: 26px 22px 18px; border: 1px solid rgba(221, 213, 199, 0.72); border-radius: 12px; background: rgba(255, 254, 251, 0.97); }
.study-sidebar__panel + .study-sidebar__panel { margin-top: 24px; }
.study-sidebar__panel > header > p { margin: 0 0 4px; font-size: 0.62rem; line-height: 1.5; letter-spacing: 0.14em; color: var(--bronze); }
.study-sidebar__panel > header h2 { position: relative; margin: 0 0 4px; padding: 0 0 13px; border-bottom: 1px solid var(--line); font-size: 1rem; font-weight: 500; line-height: 1.6; letter-spacing: 0.04em; }
.study-sidebar__panel > header h2::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 96px; height: 1px; background: var(--bronze); }
.study-sidebar li { border-bottom: 1px solid rgba(205, 189, 158, 0.55); }
.study-sidebar li:last-child { border-bottom: 0; }
.study-sidebar nav li > a { display: block; padding: 12px 10px; font-size: 0.85rem; line-height: 1.65; color: var(--ink-soft); transition: color 0.16s, background-color 0.16s; }
.study-sidebar nav li > a:is(:hover, :focus-visible) { color: var(--bronze); }
.study-sidebar nav li > a:focus-visible { box-shadow: none; }
.study-sidebar nav li > a:is(.is-current, [aria-current="page"]) { background: color-mix(in srgb, var(--bronze) 6%, var(--paper-white)); color: var(--ink); }
/* 全話目次：部ごとに開く箱。中の話は青、今の話は紅 */
.study-sidebar__chapter { margin-top: 8px; }
.study-sidebar__chapter summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 14px; background: #f4f4f2; font-size: 0.88rem; font-weight: 600; line-height: 1.65; list-style: none; cursor: pointer; }
.study-sidebar__chapter summary::after { content: ""; width: 0; height: 0; border-top: 5px solid #343330; border-right: 4px solid transparent; border-left: 4px solid transparent; font-size: 0.95rem; font-weight: 400; color: transparent; } /* 下向きの三角 */
.study-sidebar__chapter[open] summary::after { border-width: 0 4px 5px; border-style: none solid solid; border-color: currentcolor transparent #343330; } /* 開いたら上向き */
.study-sidebar__chapter nav { padding: 9px 8px 12px 14px; background: var(--paper-white); }
.study-sidebar__chapter nav li { position: relative; border: 0; }
.study-sidebar__chapter nav li::before { content: ""; position: absolute; top: 0.82em; left: -3px; width: 4px; height: 4px; border-radius: 50%; background: #8e887d; }
.study-sidebar__chapter nav li > a { padding: 3px 3px 3px 11px; line-height: 1.55; color: var(--study-blue); }
.study-sidebar__chapter nav li > a.is-current { background: transparent; font-weight: 600; color: #c45a65; }
.study-sidebar__planned { display: block; padding: 3px 3px 3px 11px; font-size: 0.85rem; line-height: 1.55; color: rgba(98, 92, 83, 0.72); } /* まだ公開していない話 */

/* 12-4 本文 */
.study-post-content { min-width: 0; font-size: 1rem; line-height: 2.05; }
.study-post-content p { margin: 1em 0; line-height: 2.05; color: color-mix(in srgb, var(--ink) 90%, var(--ink-soft)); }
.study-post-content p + p { margin-top: 20px; }
.study-post-content > :first-child { margin-top: 0; }
.study-post-content > p:first-child { margin: 0 0 44px; font-size: 1.05rem; } /* 書き出しの一段落 */
.study-post-content :is(h2, h3) { position: relative; margin: 62px 0 27px; padding-bottom: 16px; border-bottom: 1px solid var(--study-line); font-weight: 600; letter-spacing: 0.055em; }
.study-post-content h2 { font-size: 1.45rem; }
.study-post-content :is(h2, h3)::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 36%; height: 1px; background: var(--study-gold); }
.study-post-content ul { margin: 1em 0; list-style: disc; }
.study-post-content :is(ul, ol) { padding-left: 1.45em; }
.study-post-content figure { margin: 54px 0 0; }
.study-post-content img { border-radius: 8px; }
.study-post:not(.study-post--reading) .study-post-content figure.wp-block-image { float: none; width: 100% !important; max-width: 100%; margin-inline: auto; text-align: center; } /* 記事に書かれた幅より、紙の幅を優先する */
.study-post:not(.study-post--reading) .study-post-content figure.wp-block-image img { width: 100% !important; height: auto !important; margin-inline: auto; }
.study-post:not(.study-post--reading) .study-post-content > p + figure.wp-block-image { margin-top: 28px; }
body.single-post .study-post-content .wp-block-image img { border-radius: 0; }
.study-post-content figcaption { margin-top: 10px; font-size: 0.72rem; text-align: center; color: #77736b; }
.study-post-content .wp-block-image.photo-calm img { filter: saturate(0.78); } /* 古い写真は色を少し落とす */
.study-post-cover { margin: 0 0 44px; }
.study-post-cover img { width: 100%; aspect-ratio: 1200 / 630; border-radius: 0; object-fit: cover; }
/* 後日談：羽根ペンの印の付いた、開く箱 */
.study-post-content .kf-story-afterword { margin: 28px 0 0; }
.study-post-content .kf-story-afterword > summary { display: flex; align-items: center; justify-content: flex-start; gap: 5px; width: 100%; min-height: 44px; padding: 14px 4px; border-top: 1px solid #dedad1; font-size: inherit; line-height: 1.6; letter-spacing: 0.08em; list-style: none; color: #777167; cursor: pointer; }
.study-post-content .kf-story-afterword > summary::marker { content: ""; }
.study-post-content .kf-story-afterword > summary::before { content: ""; flex: 0 0 22px; align-self: center; width: 22px; height: 22px; background: currentcolor; mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2026%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M22%201.5C15%203%209.5%206%207%2010l-.2%203-1.4-1.7C4.2%2014%204.5%2016.5%204.8%2019c3.5-1.1%206.6-2.7%209.4-5l-2.7-.8%204.5-1.3C18.5%208.6%2020.2%205%2022%201.5ZM5.6%2018.4C8.7%2013.2%2013.3%208.5%2018%206.4c-4.5%203.2-8.3%207.4-12.4%2012Z%22%2F%3E%3Cpath%20d%3D%22M5.3%2019.4C3.6%2021%202.8%2023.1%202.5%2025c1.4-1.5%202.1-3.6%202.8-5.6Z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; transform: translateY(1px); }
.study-post-content .kf-story-afterword > summary::after { content: ""; flex: 0 0 7px; width: 7px; height: 7px; margin-left: auto; margin-right: 3px; border-right: 1px solid; border-bottom: 1px solid; transform: translateY(-2px) rotate(45deg); }
.study-post-content .kf-story-afterword[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.study-post-content .kf-story-afterword > summary:hover { color: #67542e; }
.study-post-content .kf-story-afterword > summary:focus-visible { outline: 2px solid #8c7648; outline-offset: 4px; }
.study-post-content .kf-story-afterword > p { margin: 20px 0; }
.study-post-content .kf-story-afterword > p:last-child { margin-bottom: 0; }

/* 話の中の「関連記事」の箱（馮志強老師の話に一つ）。箱の形は 6-3 と同じ部品で、古い書き方のまま残っている中身（p の中の種類・題・「記事を読む」）と字の大きさだけここで合わせる */
.study-post-content .kf-related-page { width: 100%; }
.study-post-content .kf-related-page__body figure { margin: 0; }
.study-post-content .kf-related-page__copy p { max-width: 46em; margin: 4px 0 0; font-size: 0.75rem; color: #5d5850; }
.study-post-content .kf-related-page__heading span { font-size: 0.57rem; color: #76664d; }
.study-post-content .kf-related-page__heading h5 { margin: 0; font-size: 0.79rem; color: #37332d; }
.study-post-content .kf-related-page__kind { display: inline-flex; font-size: 0.68rem; line-height: inherit; color: #6c6357; }
.study-post-content .kf-related-page__copy strong { display: block; max-width: 35em; font-size: 1.01rem; font-weight: 500; line-height: 1.55; letter-spacing: 0.025em; }
.study-post-content .kf-related-page__stretched:is(:hover, :focus-visible) { color: #655739; }
.study-post-content .kf-related-page__action { font-size: 0.69rem; color: #76664d; }
.study-post-content .kf-related-page__action i { font-size: 0.7rem; color: #6c6357; }
.study-post-content .kf-related-page:is(:hover, :has(.kf-related-page__stretched:focus-visible)) .kf-related-page__action i { border-color: #76664d; background: transparent; color: #514b42; }

/* 12-5 話の下：前の話・全話目次・次の話、読み解きへの箱、この話の索引 */
.study-post-navigation { margin-top: 40px; }
.study-story-pagination { display: flex; align-items: center; justify-content: center; gap: var(--study-pagination-gap, 10px); font-size: 0.85rem; line-height: 1.65; }
.study-story-pagination a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 3px; white-space: nowrap; color: var(--study-blue); }
.study-story-pagination a:is(:hover, :focus-visible) { color: var(--bronze); }
.study-story-pagination a:focus-visible { outline: 2px solid var(--study-gold); outline-offset: 3px; }
.study-story-pagination > span { font-size: 0.75rem; color: #b7a789; }
.study-post-companions { display: grid; grid-template-columns: minmax(0, 356px); justify-content: center; margin-top: 24px; }
.study-post-companions br { display: none; }
.study-post-companions a { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 58px; padding: 14px 18px; border: 1px solid var(--study-line); border-radius: 8px; background: var(--paper-white); font-size: 0.82rem; line-height: 1.65; color: #67542e; }
.study-post-companions a:not([aria-disabled="true"]):is(:hover, :focus-visible) { border-color: var(--study-gold); background: #fffdf8; }
.study-post-companions a.study-post-companions__illustrated { justify-content: center; gap: 12px; border-color: #c7b58e; background: #f8f5ed; }
.study-post-companions a.study-post-companions__illustrated:not([aria-disabled="true"]):is(:hover, :focus-visible) { border-color: var(--study-gold); background: #f1ebde; }
.study-post-companions a .study-post-companions__portrait { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 0; object-fit: contain; }
.study-post-companions__text { display: flex; flex: 0 1 auto; flex-direction: column; gap: 3px; min-width: 0; }
.study-post-companions__byline { font-size: 0.68rem; line-height: 1.5; color: #786b55; }
.study-post-companions__title { font-size: 0.82rem; line-height: 1.65; }
.study-post-companions__action { display: inline-block; white-space: nowrap; }
/* この話の索引（人物・場所・言葉） */
.study-index-box { position: relative; margin-top: 44px; padding: 22px 26px 20px; border-radius: 12px; background: color-mix(in srgb, var(--bronze) 6%, var(--paper-white)); white-space: normal; }
.study-index-box__header { margin: 0 0 14px; }
.study-index-box__eyebrow { margin: 0 0 4px; font-size: 0.62rem; line-height: 1.5; letter-spacing: 0.14em; color: var(--bronze); }
.study-index-box__title { position: relative; margin: 0; padding: 0 0 8px; border-bottom: 1px solid var(--study-line); font-size: 0.85rem; font-weight: 500; line-height: 1.6; letter-spacing: 0.04em; color: var(--bronze); }
.study-index-box__title::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 96px; height: 1px; background: var(--bronze); }
.study-index-box__rows { margin: 0; }
.study-index-box__row { display: grid; grid-template-columns: 4.5em minmax(0, 1fr); gap: 0 10px; align-items: baseline; padding: 7px 0; }
.study-index-box__row + .study-index-box__row { border-top: 1px dotted var(--study-dot); }
.study-index-box__row dt { margin: 0; font-size: 0.72rem; letter-spacing: 0.08em; color: var(--study-dim); }
.study-index-box__row dd { margin: 0; font-size: 0.92rem; line-height: 2; }
.study-index-box__row a { margin-right: 1.1em; white-space: nowrap; color: var(--study-blue); }
.study-index-box__row a:is(:hover, :focus-visible, [aria-expanded="true"]) { color: var(--bronze); }
.study-index-pop { position: absolute; z-index: 40; width: min(320px, 100%); padding: 16px 36px 14px 18px; font-size: 1rem; border: 1px solid var(--study-dot); border-radius: 10px; background: var(--paper-white); box-shadow: 0 10px 28px rgba(60, 48, 30, 0.14); text-align: left; white-space: normal; color: var(--ink); }
.study-index-pop[hidden], .study-index-shade[hidden], .study-index-pop__desc[hidden] { display: none; }
.study-index-pop--anchored::after { content: ""; position: absolute; bottom: -7px; left: var(--arrow-x, 28px); width: 12px; height: 12px; border-right: 1px solid var(--study-dot); border-bottom: 1px solid var(--study-dot); background: var(--paper-white); transform: rotate(45deg); }
.study-index-pop--anchored.study-index-pop--below::after { top: -7px; bottom: auto; border: 0; border-top: 1px solid var(--study-dot); border-left: 1px solid var(--study-dot); }
.study-index-pop--modal { position: fixed; z-index: 95; top: 42%; left: 50%; width: min(340px, 100% - 36px); transform: translate(-50%, -50%); }
.study-index-shade { position: fixed; inset: 0; z-index: 90; background: rgba(40, 40, 40, 0.35); }
.study-index-pop__kind { margin: 0 0 2px; font-size: 0.68rem; letter-spacing: 0.1em; color: var(--study-dim); }
.study-index-pop__name { margin: 0 0 8px; font-size: 1.05rem; font-weight: 600; line-height: 1.5; }
.study-index-pop__desc { margin: 0 0 10px; font-size: 0.88rem; line-height: 1.75; }
.study-index-pop__more { display: inline-block; font-size: 0.88rem; color: var(--study-blue); }
.study-index-pop__more:is(:hover, :focus-visible) { color: var(--bronze); }
.study-index-pop__close { position: absolute; top: 6px; right: 6px; padding: 6px 8px; border: 0; background: none; font-family: revert; font-size: 1.15rem; line-height: 1; color: var(--study-dim); cursor: pointer; } /* × は機械の字のまま */
/* 著者の箱は 8-1 と同じ形。留学記は字が少し小さい */
.study-post-article .kf-post-footer-author-section > h2 { font-size: 1.35rem; }
.study-post-article .kf-post-footer-author-card__identity strong { font-size: 1rem; }
.study-post-article .kf-post-footer-author-card__details p { font-size: 0.82rem; }
.kf-post-footer-standard .study-post-article .kf-post-footer-author-card__details a { font-size: 0.76rem; }

/* 12-6 読み解き（代表が書く、罫のある紙のページ） */
.study-post--reading { --kf-body-h3-size: 1.42rem; --kf-body-h3-line-height: 1.4; }
.study-post--reading .study-post-content > h2 { position: relative; margin: 64px 0 36px; padding: 0 0 26px; border: 0; background: none; font-size: 1.9rem; font-weight: 500; line-height: 1.65; letter-spacing: 0.035em; text-align: left; color: #30352f; }
.study-post--reading .study-post-content > h2:first-child { margin-top: 0; }
.study-post--reading .study-post-content > h2::before { content: ""; display: block; position: static; width: 18px; height: 33px; margin: 0 0 12px; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2044%22%3E%3Cdefs%3E%3Cmask%20id%3D%22cut%22%3E%3Crect%20width%3D%2224%22%20height%3D%2244%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M12%200v22%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2223%22%20r%3D%222.4%22%2F%3E%3C%2Fmask%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%23a58b56%22%20mask%3D%22url%28%23cut%29%22%20d%3D%22M10%201h4c0%2010%204%2018%209%2022-5%207-7%2014-7%2020H8c0-6-2-13-7-20C6%2019%2010%2011%2010%201Z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; }
.study-post--reading .study-post-content > h2::after { content: ""; display: block; position: absolute; bottom: 0; left: 0; width: 130px; height: 3px; border: 0; background: linear-gradient(#a58b56, #a58b56) left center / 56px 3px no-repeat, linear-gradient(#6e726e, #6e726e) left center / 130px 1px no-repeat; }
.study-post--paper .study-post-article { position: relative; border: 1px solid #d9d4c7; border-radius: 0; background-color: #fffefa; background-image: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url("../images/reading-paper-v1.webp"); background-size: auto, 512px 512px; box-shadow: 0 2px 3px rgba(81, 72, 57, 0.07), 2px 4px 0 -1px #f8f6ef, 2px 4px 0 0 #ded9ce, 0 10px 24px rgba(81, 72, 57, 0.05); }
.study-post--paper .study-post-article::before { content: ""; position: absolute; top: 30px; bottom: 30px; left: 27px; width: 1px; background: rgba(173, 156, 120, 0.17); pointer-events: none; } /* 紙の左の細い縦線 */
.study-post--paper .study-post-content { --paper-row: 2.5rem; } /* 罫の一行の高さ */
.study-post--paper .study-paper-body { display: flow-root; padding-block: var(--paper-row); background-image: linear-gradient(transparent calc(100% - 1px), rgba(140, 139, 127, 0.14) 1px); background-size: 100% var(--paper-row); background-repeat: repeat-y; }
.study-post--paper .study-post-content .study-paper-body > p { margin: 0; padding: 0 0.5em; background: none; font-size: 1rem; line-height: var(--paper-row); color: #29313a; }
.study-post--paper .study-post-content .study-paper-body > p + p { margin-top: 0; padding-top: var(--paper-row); }
/* 罫線の紙の中の小見出し（「出発」「北京空港」の読み解き）：罫線の一行ぶんの高さで、線や飾りは付けない */
.study-post--paper .study-post-content .study-paper-body > h3 { max-width: 100%; margin: 0; padding: var(--paper-row) 0.375em 0; border: 0; font-size: 1.375rem; font-weight: 600; line-height: var(--paper-row); letter-spacing: 0.04em; color: #30352f; }
.study-post--paper .study-post-content .study-paper-body > h3:first-child { padding-top: 0; }
.study-post--paper .study-post-content .study-paper-body > h3::after { content: none; }
@media (max-width: 782px) {
	.study-post--paper .study-post-content .study-paper-body > h3 { font-size: 1.25rem; }
}
.study-post--paper .study-post-content > h2 { min-height: 56px; margin: 0; padding: 0 0 24px 58px; line-height: 1.65; }
.study-post--paper .study-post-content > h2::before { position: absolute; top: 0; bottom: auto; left: 0; width: 56px; height: 56px; margin: 0; background-image: url("../images/ryogetsu-pen-portrait-v1.webp"); }
.study-post--paper .study-post-content > h2::after { width: 100%; height: 3px; border-bottom: 3px double rgba(166, 158, 137, 0.5); background: none; }
.study-reading-footer { --reading-return-display: block; --reading-return-align: center; --reading-return-margin: 16px; --reading-return-padding: 0; --reading-return-border: 0; padding-top: 24px; border-top: 1px solid var(--study-line); }
.study-reading-footer--button { --study-pagination-gap: 5px; --reading-link-padding: 12px 24px; --reading-link-border: 1px solid var(--study-line); --reading-link-radius: 4px; --reading-link-background: #f8f5ed; --reading-return-margin: 24px; }
.study-reading-return { display: var(--reading-return-display, flex); flex-wrap: wrap; gap: 14px 28px; margin-top: var(--reading-return-margin, 40px); padding-top: var(--reading-return-padding, 24px); border-top: var(--reading-return-border, 1px solid var(--study-line)); font-size: 0.85rem; text-align: var(--reading-return-align, start); }
.study-post--reading .study-reading-return a { display: inline-block; align-self: flex-start; max-width: 100%; min-height: 44px; padding: var(--reading-link-padding, 10px 4px); border: var(--reading-link-border, 0); border-radius: var(--reading-link-radius, 0); background: var(--reading-link-background, transparent); line-height: 1.8; color: #67542e; transition: color 0.15s; }
.study-post--reading .study-reading-return a:hover { color: #8a6d3b; }
.study-post--reading .study-reading-return a:focus-visible { outline: 2px solid #806735; outline-offset: 4px; }
.study-reading-return__source, .study-reading-return__title { display: block; }
.study-reading-return__source { margin-bottom: 4px; font-size: 0.7rem; }

/* 12-7 入口と全話目次（/stay-china/ と部のページ） */
.study-index-hero { display: flex; align-items: center; min-height: 280px; background: var(--study-hero-overlay), var(--study-index-image, url("../images/study-abroad-hero-fallback.jpg")) center / cover no-repeat; color: var(--white); }
.study-index--overview .study-index-hero { min-height: 390px; }
.study-index-hero__inner { width: min(var(--band), 100% - 50px); margin: 0 auto; padding: 48px 62px; }
.study-index-hero__inner > p:first-child { margin: 0 0 9px; font-size: 0.67rem; letter-spacing: 0.18em; color: #f2ddaa; }
.study-index-hero__inner > p:nth-child(2) { margin: 0 0 8px; font-size: 1.02rem; letter-spacing: 0.08em; color: rgba(255, 253, 247, 0.9); }
.study-index-hero h1 { font-size: clamp(2.1rem, 3.7vw, 3.2rem); font-weight: 500; letter-spacing: 0.055em; }
.study-index-hero__inner > p:last-child { margin: 16px 0 0; font-size: 0.9rem; color: rgba(255, 255, 255, 0.86); }
/* 紹介の段 */
.study-overview-shell { width: min(1100px, 100% - 50px); margin: 0 auto; }
.study-overview-introduction { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 44px; padding: 64px 42px 76px; }
.study-overview-introduction > p { margin: 8px 0 0; font-size: 0.62rem; letter-spacing: 0.15em; color: var(--study-gold); }
.study-overview-introduction > div { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 48px; }
.study-overview-introduction h2 { font-size: 1.8rem; font-weight: 500; line-height: 1.8; letter-spacing: 0.055em; }
.study-overview-introduction > div > p { margin: 3px 0 0; line-height: 2.1; color: #5f5a51; }
/* 三つの入口の箱（この記録について・プロローグ・全話目次） */
.study-overview-doors { margin-bottom: 76px; }
.study-overview-doors > header { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 27px; padding-bottom: 20px; border-bottom: 1px solid var(--study-line); }
.study-overview-doors > header h2 { font-size: 1.55rem; font-weight: 500; letter-spacing: 0.055em; }
.study-overview-doors > header > p { font-size: 0.875rem; line-height: 1.8; color: #6d675d; }
.study-overview-doors > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.study-overview-doors article { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid rgba(181, 158, 111, 0.45); border-top: 3px solid #8c7648; background: rgba(255, 254, 251, 0.98); }
.study-overview-doors article > header { min-height: 0; padding: 24px 25px 22px; background: linear-gradient(135deg, rgba(247, 244, 235, 0.97), rgba(255, 254, 251, 0.97)); }
.study-overview-doors article > header p { margin: 0 0 8px; font-size: 0.58rem; letter-spacing: 0.13em; color: var(--study-gold); }
.study-overview-doors article > header h3 { font-size: 1.25rem; font-weight: 500; line-height: 1.6; }
.study-overview-doors article > header h3 a { color: inherit; }
.study-overview-doors article > header h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; } /* 箱のどこを押しても行ける */
.study-overview-doors article > header .study-overview-doors__lead { margin: 7px 0 0; font-size: 0.8125rem; line-height: 1.8; letter-spacing: normal; color: #777066; }
.study-overview-doors figure { aspect-ratio: 16 / 9; overflow: hidden; background: #e8e4d9; }
.study-overview-doors figure img { width: 100%; height: 100%; object-fit: cover; transition: filter 0.45s, transform 0.45s; }
.study-overview-doors article:hover figure img { filter: brightness(1.04); transform: scale(1.018); }
.study-overview-doors article > div { display: flex; flex: 1; flex-direction: column; min-height: 172px; padding: 23px 25px; }
.study-overview-doors article > div > p { font-size: 0.875rem; line-height: 1.9; color: #625d54; }
.study-overview-doors article > div > .study-overview-doors__action { display: flex; justify-content: flex-end; gap: 12px; margin-top: auto; padding-top: 20px; font-size: 1rem; line-height: 1.8; text-align: right; color: #725f38; }
/* 全話目次の紙 */
.study-index-layout { width: min(var(--band), 100% - 50px); margin: 48px auto 0; }
.study-index--overview .study-index-layout { margin-top: 0; }
.study-index-article { overflow: hidden; border-radius: 12px; background: rgba(255, 255, 253, 0.99); }
.study-index-all-head { padding: 54px 56px 30px; scroll-margin-top: calc(var(--header-h) + 22px); }
.study-index-all-head h2 { font-size: 1.65rem; font-weight: 500; letter-spacing: 0.055em; }
.study-index-all-head > p:last-child { margin: 12px 0 0; font-size: 0.84rem; line-height: 1.9; color: var(--ink-soft); }
/* 部の入口（三列の升目） */
.study-index-chapters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0 56px; background: var(--paper-white); }
.study-index-chapters > * { display: flex; flex-direction: column; justify-content: center; min-height: 102px; padding: 0 25px; border-right: 1px solid var(--study-line); color: var(--ink); }
.study-index-chapters > :nth-child(3n+1) { border-left: 1px solid var(--study-line); }
.study-index-chapters span { font-size: 0.75rem; letter-spacing: 0.12em; color: var(--study-gold); }
.study-index-chapters small { margin-top: 3px; font-size: 0.68rem; color: var(--ink-soft); }
/* 部ごとの話の一覧。「第○話」は数え上げて出す */
.study-index-section { padding: 68px 56px 0; scroll-margin-top: calc(var(--header-h) + 22px); }
.study-index-section:last-child { padding-bottom: 56px; }
.study-index-section > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding-bottom: 22px; border-bottom: 1px solid var(--study-line); }
.study-index-section > header p { margin: 0 0 5px; font-size: 0.75rem; letter-spacing: 0.16em; color: var(--study-gold); }
.study-index-section > header h2 { font-size: 1.55rem; font-weight: 600; }
.study-index-section > header strong { font-size: 1.9rem; font-weight: 400; letter-spacing: 0.08em; color: rgba(116, 91, 39, 0.46); }
.study-index-section--forthcoming > header strong { font-size: 0.72rem; letter-spacing: 0.12em; color: var(--ink-soft); }
.study-index-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; margin: 0; padding: 0; list-style: none; counter-reset: story 0; }
.study-index-list li { position: relative; padding-left: 4.5rem; border-bottom: 1px solid rgba(205, 189, 158, 0.55); counter-increment: story 1; }
.study-index-list li::before { content: "第" counter(story) "話"; position: absolute; top: 18px; left: 0; font-size: 0.875rem; line-height: 1.8; white-space: nowrap; color: var(--ink); }
.study-index-list a, .study-index-list__planned { display: block; padding: 16px 0; font-size: 1rem; line-height: 1.8; color: var(--study-blue); }
.study-index-list a:is(:hover, :focus-visible) { color: #876a2d; }
.study-index-list .study-index-list__planned { color: var(--ink-soft); }
.study-index-list--supplement li { padding-left: 0; }
.study-index-list--supplement li::before { content: none; }
/* 留学記の索引への入口 */
.study-index-lookup__lead { margin: 22px 0 14px; font-size: 0.92rem; line-height: 1.8; color: var(--ink-soft); }
.study-index-lookup__list { display: flex; flex-wrap: wrap; gap: 8px 30px; }
.study-index-lookup__list a { font-size: 1.02rem; color: var(--study-blue); }
.study-index-lookup__list a:is(:hover, :focus-visible) { color: var(--bronze); }
.study-index-lookup__list a span { margin-left: 0.4em; font-size: 0.78rem; color: var(--study-dim); }

/* 12-8 索引（入口、人物・場所・言葉の項目のページ） */
.kf-study-index-article { font-size: 1rem; white-space: normal; }
.kf-study-index-tabs { display: flex; gap: 4px; margin: 0 0 22px; border-bottom: 1px solid var(--study-line); }
.kf-study-index-tabs a { position: relative; padding: 8px 14px 10px; font-size: 0.95rem; color: #6d675d; }
.kf-study-index-tabs a[aria-current] { font-weight: 600; color: var(--ink); }
.kf-study-index-tabs a[aria-current]::after { content: ""; position: absolute; right: 14px; bottom: -1px; left: 14px; height: 2px; background: var(--study-gold); }
.kf-study-index-tabs a:hover { color: var(--bronze); }
.kf-study-index-section h2, .kf-study-index-group h2 { margin: 0 0 6px; font-size: 0.78rem; font-weight: 500; letter-spacing: 0.06em; color: var(--study-dim); }
.kf-study-index-group h2 { margin: 26px 0 4px; }
.kf-study-index-section + .kf-study-index-section { margin-top: 34px; }
.kf-study-index-tabs-on .kf-study-index-section + .kf-study-index-section { margin-top: 0; }
.kf-study-index-section[hidden] { display: none; }
.kf-study-index-group ol { margin: 0; padding: 0; list-style: none; }
.kf-study-index-list li, .kf-study-index-group li { padding: 10px 0; border-bottom: 1px dotted var(--study-dot); line-height: 1.6; }
:is(.kf-study-index-list, .kf-study-index-group, .kf-study-index-footer-nav, .kf-study-index-reference) a { color: var(--study-blue); }
:is(.kf-study-index-list, .kf-study-index-group) a:is(:hover, :focus-visible), .kf-study-index-reference a:hover { color: var(--bronze); }
.kf-study-index-list span { display: block; margin-top: 2px; font-size: 0.85rem; line-height: 1.7; color: #6d675d; }
.kf-study-index-group__number { margin-right: 0.7em; font-size: 0.8rem; color: var(--study-dim); }
.kf-study-index-description { margin: 0 0 14px; line-height: 1.9; }
.kf-study-index-reference { margin: 0 0 14px; font-size: 0.9rem; }
.kf-study-index-total { margin: 0 0 6px; padding-bottom: 12px; border-bottom: 1px solid var(--study-line); font-size: 0.8rem; color: var(--study-dim); }
.kf-study-index-total strong { margin-left: 0.6em; font-size: 1rem; font-weight: 600; color: var(--ink); }
.kf-study-index-footer-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--study-line); font-size: 0.85rem; }
.kf-study-index-footer-nav > span:first-child { margin-right: 6px; font-size: 0.75rem; letter-spacing: 0.06em; color: var(--study-dim); }
.kf-study-index-footer-nav > span[aria-hidden] { font-size: 0.75rem; color: #b7a789; }
.kf-study-index-footer-nav a[aria-current] { font-weight: 700; color: var(--ink); }
.kf-study-index-footer-nav a:hover { color: var(--bronze); }

/* 12-9 画面幅 1000px まで：右の目次は本文の下へ二列 */
@media (max-width: 1000px) {
	.study-post-layout { grid-template-columns: minmax(0, 840px); justify-content: center; }
	.study-sidebar { gap: 22px; }
	.study-sidebar__panel + .study-sidebar__panel { margin-top: 0; }
	.study-overview-doors > div { grid-template-columns: 1fr; }
	.study-overview-doors article { display: grid; grid-template-columns: 180px minmax(220px, 0.9fr) minmax(0, 1.1fr); } /* 箱は横長に：写真・題・説明 */
	.study-overview-doors figure { height: 100%; aspect-ratio: auto; }
	.study-overview-doors article > div { min-height: 0; }
	.study-overview-introduction { grid-template-columns: 140px minmax(0, 1fr); gap: 32px; padding-inline: 24px; }
	.study-overview-introduction > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
}

/* 12-10 スマホ（782px まで）：一列。右の目次は出さない（下の帯のメニューから全話目次へ行ける） */
@media (max-width: 782px) {
	.study-post-hero { min-height: 300px; background-position: 55% center; }
	.study-post--responsive .study-post-hero { min-height: 260px; }
	.study-post--responsive .study-post-hero::before { --study-hero-blur: var(--study-hero-mobile-blur, 0px); background-image: var(--study-hero-mobile-image, var(--study-hero-image)); background-position: var(--study-hero-mobile-position, var(--study-hero-position, center 55%)); }
	.study-post-hero__inner { padding: 40px 28px; }
	.study-post--responsive .study-post-hero__inner { padding: 32px 18px; }
	.study-post-hero h1 { max-width: 17em; font-size: 2rem; }
	.study-post-hero h1[data-title-fit] { white-space: normal; }
	.study-post--reading .study-post-hero h1 { font-size: 1.8rem; line-height: 1.5; }
	body.kf-study-hero--strong-narrow .study-post-hero h1 { max-width: 60%; font-size: 1.5rem; line-height: 1.5; letter-spacing: 0.03em; }
	.study-post-layout { width: calc(100% - 28px); margin-top: 20px; }
	.study-post-article { padding: 34px 22px; }
	.study-sidebar { display: none; }
	.study-post-content p { font-size: 17px; color: #1f1d1a; }
	.study-post-content > p:first-child { margin-bottom: 34px; font-size: 17px; }
	.study-post-content :is(h2, h3) { margin-top: 48px; }
	.study-post-content figcaption { font-size: 13px; color: #57534b; }
	.study-post-content .kf-related-page__body figure { height: 100%; min-height: 104px; }
	.study-post-content .kf-related-page__copy p { font-size: 17px; } /* 行の高さは本文の段落と同じ（中の字はそれぞれの大きさ） */
	.study-post-content .kf-related-page__heading h5 { font-size: 0.7rem; }
	.study-post-content .kf-related-page__kind { font-size: 0.62rem; }
	.study-post-content .kf-related-page__copy strong { font-size: 0.87rem; line-height: 1.5; }
	.study-post-cover { margin-bottom: 32px; }
	.study-story-pagination a { font-size: 15px; }
	.study-post-companions__byline { font-size: 12px; color: #5f5443; }
	.study-post-companions__text, .study-post-companions__title, .study-post-companions__action { font-size: 14.5px; color: #4e3f22; }
	.study-index-box { padding: 18px 18px 14px; }
	.study-index-box__row { grid-template-columns: 1fr; gap: 0; }
	.study-index-box__row dt { margin-bottom: 2px; }
	.study-post--reading .study-post-content > h2 { margin-bottom: 30px; font-size: 1.55rem; line-height: 1.7; }
	.study-post--reading .study-post-content > h2::before { width: 16px; height: 29px; }
	.study-post--paper .study-post-article { padding: 28px 22px 34px; }
	.study-post--paper .study-post-article::before { top: 20px; bottom: 20px; left: 10px; }
	.study-post--paper .study-post-content > h2 { min-height: 48px; margin-bottom: 0; padding-bottom: 20px; padding-left: 50px; line-height: 1.7; }
	.study-post--paper .study-post-content > h2::before { width: 48px; height: 48px; }
	.study-reading-return { flex-direction: column; }
	.study-index-hero, .study-index--overview .study-index-hero { min-height: 300px; }
	.study-index-hero { background-image: var(--study-hero-overlay), var(--study-index-mobile-image, var(--study-index-image, url("../images/study-abroad-hero-fallback.jpg"))); }
	.study-index-hero__inner { padding: 42px 28px; }
	.study-overview-shell { width: calc(100% - 28px); }
	.study-overview-introduction { grid-template-columns: 1fr; gap: 18px; padding: 44px 8px 56px; }
	.study-overview-introduction > div { grid-template-columns: 1fr; gap: 16px; }
	.study-overview-introduction h2 br { display: none; }
	.study-overview-doors { margin-bottom: 54px; }
	.study-overview-doors > header { display: block; }
	.study-overview-doors > header > p { margin: 12px 0 0; }
	.study-overview-doors article { display: flex; }
	.study-overview-doors article > header { padding: 22px 23px 20px; }
	.study-overview-doors figure { height: auto; aspect-ratio: 16 / 9; }
	.study-overview-doors article > div { padding: 23px; }
	.study-index-layout { width: calc(100% - 28px); margin-top: 24px; }
	.study-index-all-head { padding: 40px 24px 20px; }
	.study-index-chapters { grid-template-columns: 1fr; padding: 0 24px; }
	.study-index-chapters > * { min-height: 82px; border-right: 0; border-bottom: 1px solid var(--study-line); }
	.study-index-chapters > :nth-child(3n+1) { border-left: 0; }
	.study-index-section { padding: 52px 24px 0; }
	.study-index-section > header { align-items: flex-start; }
	.study-index-section > header h2 { font-size: 1.35rem; }
	.study-index-section > header strong { font-size: 1.2rem; }
	.study-index-list { grid-template-columns: 1fr; }
}
/* 索引の一覧：768px から、名前と説明を横に並べる */
@media (min-width: 783px) {
	.kf-study-index-list li { display: grid; grid-template-columns: minmax(10em, 13em) minmax(0, 1fr); gap: 0 16px; align-items: baseline; }
	.kf-study-index-list span { margin-top: 0; }
}

/* 13. 参考資料の入口（/material/） --------------------------------
   頭の帯とはじめの一言は 10 の「体験を読む」形（kf-experience-*）を使い、
   その下に、流派の四つの箱・人物の四つの箱・年表への箱・下の二つのリンクを並べる。
   参考資料の中のページ（套路・人物・流派の入口）は reference.css。
   線・緑・帯の地の色は、このページが前から持っている色のまま。 */
.kf-reference { --ref-line: #d7cab1; --ref-green: #536650; }
.kf-reference .kf-experience-hero::before { content: ""; position: absolute; inset: 0; background: url("../images/official-reference-materials-hero-background.png") center / cover no-repeat; opacity: 0.28; pointer-events: none; }

/* はじめの一言：ここだけ一列（小さな英字、題、文の順） */
.kf-reference__introduction { grid-template-columns: minmax(0, 1fr); gap: 22px; width: min(1040px, 100% - 48px); margin: 68px auto 78px; scroll-margin-top: 110px; }
.kf-reference__introduction .kf-experience-introduction__body { display: block; max-width: 800px; }
.kf-reference__introduction h2 { line-height: 1.85; }
.kf-reference__introduction-copy { max-width: 780px; margin-top: 26px; line-height: 2.15; color: var(--ink-soft); }
.kf-reference__introduction-copy p { margin: 0 0 18px; }
.kf-reference__introduction-copy p:last-child { margin-bottom: 0; }

/* 段の幅と、段の頭（左に小さな英字と題、右に一言、下に線） */
.kf-reference__section { width: min(1030px, 100% - 48px); margin: 0 auto 100px; }
.kf-reference__section-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; margin-bottom: 32px; padding-bottom: 19px; border-bottom: 1px solid var(--ref-line); }
:is(.kf-reference__section-heading > div, .kf-reference__person-grid section, .kf-reference__chronology > div) > p:first-child { font-size: var(--fs-12); letter-spacing: 0.18em; color: var(--bronze); }
.kf-reference__section-heading h2 { margin: 8px 0 0; font-size: var(--fs-28); font-weight: 500; letter-spacing: 0.08em; }
.kf-reference__section-heading > p { max-width: 34em; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }

/* 流派の四つの箱：上に写真、下に名前（ふりがなと英字）・一言・「資料を読む」 */
.kf-reference__school-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.kf-reference__school-grid article { overflow: hidden; border-radius: 12px; background: rgba(255, 254, 251, 0.9); }
.kf-reference__school-image-link { display: block; overflow: hidden; }
.kf-reference__school-grid img { display: block; width: 100%; height: 230px; object-fit: cover; transition: transform 0.24s; }
.kf-reference__school-image-link:hover img { transform: scale(1.015); }
.kf-reference__school-image-link:focus-visible { outline: 2px solid #8c713d; outline-offset: -4px; }
.kf-reference__school-grid article > div { padding: 27px 30px 30px; }
.kf-reference__school-grid h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 15px; margin: 2px 0 15px; font-size: var(--fs-23); font-weight: 500; }
.kf-reference__school-grid h3 > span { font-size: var(--fs-12); font-weight: 400; line-height: 1.4; letter-spacing: 0.12em; color: var(--bronze); }
.kf-reference__school-grid h3 rt { font-size: var(--fs-12); font-weight: 400; letter-spacing: 0.08em; color: var(--ink-soft); }
.kf-reference__school-grid h3 + p { min-height: 4.2em; font-size: var(--fs-14); line-height: 1.85; color: var(--ink-soft); }
.kf-reference__school-grid h3 + p + p { margin: 1em 0; } /* 「資料を読む」の行。上下の間はブラウザの既定のまま（前と同じ） */
.kf-reference__school-grid article > div a { display: inline-block; margin-top: 18px; font-size: var(--fs-14); text-underline-offset: 0.3em; }

/* 人物の四つの箱：上に緑の線、名前の一覧（右に小さな矢印） */
.kf-reference__person-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; }
.kf-reference__person-grid section { padding: 29px 28px; border-top: 2px solid var(--ref-green); border-radius: 0 0 12px 12px; background: rgba(255, 254, 251, 0.9); }
.kf-reference__person-grid h3 { margin: 9px 0 17px; font-size: var(--fs-16); font-weight: 500; }
.kf-reference__person-grid ul { margin: 0; padding: 0; list-style: none; }
.kf-reference__person-grid li { border-top: 1px solid var(--ref-line); }
.kf-reference__person-grid a { display: block; padding: 13px 4px; font-size: var(--fs-14); text-decoration: none; }
.kf-reference__person-grid a::after { content: "›"; float: right; color: var(--bronze); }

/* 年表への箱 */
.kf-reference__chronology { display: flex; align-items: center; justify-content: space-between; width: min(1030px, 100% - 48px); margin: 0 auto; padding: 42px 46px; border: 1px solid var(--ref-line); border-radius: 12px; background: color-mix(in srgb, #e3e6dc 62%, var(--paper-white)); }
.kf-reference__chronology h2 { margin: 9px 0 8px; font-size: var(--fs-28); font-weight: 500; }
.kf-reference__chronology > div > p:last-child { font-size: var(--fs-14); color: var(--ink-soft); }
.kf-reference__chronology > p { margin: 1em 0; }

/* 下の二つのリンク */
.kf-reference__reading-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 48px; width: min(1030px, 100% - 48px); margin: 38px auto 0; padding: 24px 0; border-top: 1px solid var(--ref-line); }
.kf-reference__reading-links a { padding: 10px 0; font-size: var(--fs-14); text-decoration: none; text-underline-offset: 0.3em; color: var(--bronze); }
.kf-reference__reading-links a:focus-visible { outline: 2px solid #8c713d; outline-offset: 5px; }

@media (max-width: 1000px) {
	.kf-reference__school-grid img { height: 200px; }
}
@media (max-width: 782px) {
	.kf-reference__introduction { gap: 16px; width: calc(100% - 28px); margin: 40px auto 52px; }
	.kf-reference__introduction h2 { font-size: var(--fs-23); }
	.kf-reference__introduction h2 br { display: initial; }
	.kf-reference__introduction-copy { margin-top: 22px; font-size: var(--fs-14); line-height: 2.1; }
	:is(.kf-reference__section, .kf-reference__chronology, .kf-reference__reading-links) { width: calc(100% - 28px); }
	.kf-reference__section-heading { grid-template-columns: 1fr; gap: 17px; }
	:is(.kf-reference__school-grid, .kf-reference__person-grid) { grid-template-columns: 1fr; }
	.kf-reference__school-grid h3 + p { min-height: 0; }
	.kf-reference__chronology { flex-direction: column; align-items: flex-start; gap: 25px; padding: 32px 26px; }
	.kf-reference__reading-links { gap: 8px 24px; }
}

/* 14. 中国武術の歴史（/history-all/） ------------------------------
   会のあゆみ（kfh-*）の年表の形を使う。違う所だけここに書く：
   頭の帯の写真、時代の頭の右の絵の幅、左の「世界史」が年と一行の出来事の並び、
   右の「武術史」の箱の見出しと文、いちばん下の一行と「戻る」のボタン。 */
.kfha-masthead { background: linear-gradient(135deg, rgba(48, 47, 39, 0.86), rgba(82, 70, 49, 0.66)), url("../images/official-gugong.jpg") center 48% / cover; }
.kfha-masthead .kfh-masthead__mark { width: 78px; }
.kfha-intro { position: relative; overflow: hidden; }
.kfha-era .kfh-era__head { grid-template-columns: 120px minmax(0, 1fr) 168px; }
.kfha-era__motif--map { width: 82px; max-height: 82px; }

/* 年表：線は箱の後ろ。左右とも、同じ年の出来事を縦に並べる */
.kf-history-all__timeline::before { z-index: 0; }
:is(.kf-history-all__labels, .kf-history-all__row) { position: relative; z-index: 1; }
.kf-history-all__labels { align-items: center; }
.kf-history-all__events { display: grid; align-content: start; gap: 12px; min-width: 0; }
.kf-history-all__item { min-width: 0; }
.kf-history-all__item h4 { margin: 0 0 8px; font-weight: 500; line-height: 1.65; letter-spacing: 0.035em; }
.kf-history-all__item p { margin: 0; line-height: 1.75; color: var(--ink-soft); }
.kf-history-all__item p:empty { display: none; }
.kf-history-all__item:not(.kf-history-all__item--martial) a:is(:hover, :focus-visible) { color: #9e5b4b; } /* 右の列（武術）のリンクは色を変えない（前と同じ） */

/* 左：大きな年と、小さな字の出来事 */
.kfh-event__society .kf-history-all__world-date { margin-bottom: 7px; line-height: 1.15; }
.kf-history-all__item--world h4 { font-size: var(--fs-12); font-weight: 400; color: var(--ink-soft); }
.kf-history-all__item--world p { font-size: var(--fs-12); }

/* 右：白い箱 */
.kf-history-all__item--martial .kfh-event__body { padding: 23px 28px 24px; }
.kf-history-all__item--martial h4 { font-size: var(--fs-23); color: var(--ink); }
.kf-history-all__item--martial p { font-size: var(--fs-14); }

/* いちばん下：細い線、小さな一行、「戻る」の丸いボタン */
.kfh-closing__line { width: min(520px, 78vw); height: 1px; margin: 30px auto 0; background: linear-gradient(90deg, transparent, var(--kfh-gold-light), transparent); }
.kfh-closing .kfha-closing__credit { margin-top: 18px; font-size: var(--fs-12); letter-spacing: 0.12em; }
.kfha-closing__back { display: inline-flex; align-items: center; gap: 18px; margin-top: 28px; padding: 12px 22px; border: 1px solid var(--kfh-gold-light); border-radius: var(--pill); background: #e4d4b5; font-size: var(--fs-12); letter-spacing: 0.08em; text-decoration: none; transition: border-color 0.2s, background-color 0.2s; }
.kfh-page .kfha-closing__back { color: var(--ink); }
.kfha-closing__back::after { content: "→"; color: var(--bronze); }
.kfha-closing__back:is(:hover, :focus-visible) { border-color: var(--kfh-paper-warm); background: var(--kfh-paper-warm); }

@media (max-width: 1000px) {
	/* 一列：左に線と丸、右に「世界史」の一行、その下に「武術史」の箱 */
	.kfha-era .kfh-era__head { grid-template-columns: 74px 1fr; }
	.kf-history-all__row { margin-bottom: 24px; }
	.kf-history-all__axis { margin-top: 14px; }
	.kf-history-all__events--martial { grid-area: 2 / 2; }
	.kf-history-all__events:empty { display: none; }
	.kf-history-all__row:not(:has(.kf-history-all__item--world)) .kf-history-all__events--martial { grid-row: 1; }
	.kfh-event__society .kf-history-all__world-date { display: inline; margin: 0 8px 0 0; }
	.kf-history-all__item--world h4 { display: inline; }
	.kf-history-all__item--martial .kfh-event__body { padding: 21px 20px 22px; }
}
@media (max-width: 782px) {
	.kf-history-all__events--martial { margin-top: 10px; }
	.kf-history-all__item--martial h4 { font-size: var(--fs-16); }
}

/* 15. 練習内容（/taichi-class-content/・/baguazhang-class-content/） ----
   白い紙の中に、はじめの写真と文、印つきの見出しの段、番号つきの手順の箱、
   教室の二つの箱、最後の案内を縦に並べる。 */
body.kf-class-practice-page .kf-page-layout--wide { width: min(1120px, 100% - 50px); }
body.kf-class-practice-page .kf-page-article { padding: 58px 62px 66px; border: 1px solid rgba(221, 213, 199, 0.72); border-radius: 12px; background: var(--paper-white); }
body.kf-class-practice-page .kf-page-article > .entry-content { width: 100%; max-width: 920px; margin-inline: auto; }
.kf-class-practice { max-width: none; }
.kf-class-practice p { line-height: 1.95; }

/* 小さな英字（三か所で同じ形） */
:is(.kf-class-practice__eyebrow, .kf-class-practice__section-head > p, .kf-class-practice__trial > div > :where(.kf-inline) > span) { font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); font-weight: 400; line-height: 1.6; letter-spacing: 0.18em; color: var(--bronze); }
.kf-class-practice .kf-class-practice__eyebrow { line-height: 1.95; } /* 段落の行間のまま（前と同じ） */

/* はじめ：左に縦長の写真、右に題と文 */
.kf-class-practice__intro { display: grid; grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.28fr); align-items: start; gap: 48px; }
.kf-class-practice__intro-image img { display: block; width: 100%; aspect-ratio: 2 / 3; border: 1px solid color-mix(in srgb, var(--line-strong) 72%, transparent); object-fit: cover; }
.kf-class-practice__intro-copy { padding-top: 12px; }
.kf-class-practice__intro-copy > .kf-class-practice__eyebrow { margin-bottom: 9px; }
.kf-class-practice__intro h2 { margin: 0 0 24px; padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.65; letter-spacing: 0.08em; }
.kf-class-practice__intro-copy > p:not(.kf-class-practice__eyebrow) + p { margin-top: 15px; }
.kf-class-practice__secondary { margin-top: 24px; }
.kf-class-practice__secondary h3 { margin: 0 0 10px; font-size: var(--fs-16); font-weight: 500; line-height: 1.7; letter-spacing: 0.06em; }

/* 段の頭：左に印、小さな英字と題、下に線 */
.kf-class-practice__section { margin-top: 80px; }
.kf-class-practice__section-head { position: relative; min-height: 58px; margin-bottom: 30px; padding: 0 0 16px 72px; border-bottom: 1px solid var(--line-strong); }
.kf-class-practice__section-head::before { content: ""; position: absolute; top: 18px; left: 0; width: 50px; height: 50px; background: center / contain no-repeat; }
.kf-class-practice-page--taichi .kf-class-practice__section-head--foundation::before { background-image: url("../images/heading-icons/heading-taijitu-v3.png"); }
.kf-class-practice-page--bagua .kf-class-practice__section-head--foundation::before { background-image: url("../images/heading-icons/heading-bagua-v1.png"); }
.kf-class-practice__section-head--practice::before { background-image: url("../images/heading-icon-candidates/new/C13-practice-notebook.png"); }
.kf-class-practice__section-head--classes::before { background-image: url("../images/heading-icon-candidates/new/C18-access-signpost.png"); }
.kf-class-practice__section-head > p { margin-bottom: 6px; }
.kf-class-practice__section-head h2 { font-size: var(--fs-28); font-weight: 400; line-height: 1.6; letter-spacing: 0.1em; }

/* 土台の段：左に文、右に写真（写真が無い時は文だけ） */
.kf-class-practice__foundation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr); align-items: center; gap: 42px; }
.kf-class-practice__foundation.is-text-only { display: block; }
.kf-class-practice__foundation.is-text-only .kf-class-practice__prose { width: min(100%, 760px); }
.kf-class-practice__prose p + p { margin-top: 18px; }
.kf-class-practice__foundation img { display: block; width: 100%; height: auto; }
:is(.kf-class-practice__foundation, .kf-class-practice__gallery) figcaption { margin-top: 8px; font-size: var(--fs-12); line-height: 1.6; text-align: center; color: var(--ink-soft); }

/* 体験受講への帯：左に一言、右にボタン */
.kf-class-practice__trial { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 64px; padding: 25px 28px; border: 1px solid var(--line); border-radius: 9px; background: color-mix(in srgb, var(--paper) 72%, var(--paper-white)); }
.kf-class-practice__trial > div > :where(.kf-inline) > span { display: block; margin-bottom: 5px; }
.kf-class-practice__trial > .kf-trial-actions { flex: none; width: auto; }
.kf-class-practice__trial .kf-contact-button { width: auto; } /* ここのボタンは字の幅（前と同じ） */
.kf-class-practice__trial p { font-size: var(--fs-14); color: var(--ink-soft); }

/* 手順：白い箱を縦に並べ、箱の間に小さな三角。左に STEP と番号 */
.kf-class-practice__steps { display: grid; gap: 42px; }
.kf-class-practice__steps > li { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 22px; padding: 34px 38px 38px; border: 1px solid color-mix(in srgb, var(--line) 70%, #fff); background: var(--white); box-shadow: 0 8px 22px rgba(63, 55, 42, 0.07); }
.kf-class-practice__steps > li:not(:last-child)::after { content: ""; position: absolute; bottom: -29px; left: 50%; border-top: 10px solid #dededb; border-inline: 9px solid transparent; transform: translateX(-50%); }
.kf-class-practice__number { display: block; width: 42px; font-family: Georgia, "Times New Roman", serif; font-size: var(--fs-12); line-height: 1; text-align: center; }
.kf-class-practice__number::before { content: "STEP"; display: block; margin-bottom: 3px; letter-spacing: 0.05em; }
.kf-class-practice__number::after { content: attr(data-step); display: block; font-size: var(--fs-23); }
.kf-class-practice .kf-class-practice__step-label { margin-bottom: 14px; font-size: var(--fs-14); font-weight: 600; line-height: 1.6; letter-spacing: 0.04em; }
.kf-class-practice__step-label::before { content: "【"; }
.kf-class-practice__step-label::after { content: "】"; }
.kf-class-practice__step-body h3 { margin: 0 0 13px; font-size: var(--fs-19); font-weight: 500; line-height: 1.65; letter-spacing: 0.06em; }
.kf-class-practice__step-copy > p + p { margin-top: 13px; }
.kf-class-practice__gallery { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 24px; }
.kf-class-practice__gallery figure { flex: 1 1 180px; max-width: 238px; }
.kf-class-practice__gallery img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
/* 八卦掌：写真が一枚の手順は、文の右に写真 */
.kf-class-practice-page--bagua .kf-class-practice__steps > li.has-media:has(.kf-class-practice__gallery figure:only-child) .kf-class-practice__step-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, 0.68fr); align-items: start; gap: 34px; }
.kf-class-practice-page--bagua .kf-class-practice__gallery:has(figure:only-child) { grid-area: 1 / 2; justify-content: stretch; margin-top: 0; }
.kf-class-practice-page--bagua .kf-class-practice__gallery figure:only-child { flex: none; width: min(100%, 250px); max-width: none; margin-inline: auto; }

/* 教室紹介：横長の写真と、二つの箱 */
.kf-class-practice__studio { margin-bottom: 24px; overflow: hidden; border-radius: 4px; }
.kf-class-practice__studio img { display: block; width: 100%; aspect-ratio: 16 / 6; object-fit: cover; }
.kf-class-practice__classes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.kf-class-practice__classes article { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 27px 26px 25px; border: 1px solid var(--line); border-top: 3px solid color-mix(in srgb, var(--bronze) 68%, transparent); border-radius: 7px; background: color-mix(in srgb, var(--paper-white) 94%, var(--paper)); }
.kf-class-practice__status { margin-bottom: 12px; padding: 4px 9px; border-radius: var(--pill); background: #efede8; font-size: var(--fs-12); line-height: 1.45; color: var(--ink-soft); }
.kf-class-practice__status.is-open { background: #edf3e9; }
.kf-class-practice__classes h3 { margin: 0 0 5px; font-size: var(--fs-19); font-weight: 500; line-height: 1.55; letter-spacing: 0.06em; }
.kf-class-practice__schedule { font-weight: 500; letter-spacing: 0.04em; color: var(--bronze); }
.kf-class-practice__classes article > p:not(.kf-class-practice__schedule, .kf-class-practice__schedule-note) { margin-top: 17px; font-size: var(--fs-14); color: var(--ink-soft); }
.kf-class-practice__classes article > :where(.kf-inline) > a { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 22px; font-size: var(--fs-14); font-weight: 500; text-decoration: none; color: var(--bronze); }
.kf-class-practice__classes article > :where(.kf-inline) > a:is(:hover, :focus-visible) { color: var(--ink); }

/* 最後の案内 */
.kf-class-practice__final { margin-top: 78px; padding: 42px 36px 40px; border: 1px solid color-mix(in srgb, var(--line-strong) 78%, transparent); border-radius: 10px; background: linear-gradient(145deg, #f8f4eb, #eef2ea); text-align: center; }
.kf-class-practice__final > .kf-class-practice__eyebrow { margin-bottom: 7px; }
.kf-class-practice__final h2 { margin: 0 0 13px; padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); font-size: var(--fs-28); font-weight: 400; line-height: 1.65; letter-spacing: 0.09em; }
.kf-class-practice__final > p:not(.kf-class-practice__eyebrow) { width: min(100%, 650px); margin-inline: auto; font-size: var(--fs-14); color: var(--ink-soft); }
.kf-class-practice__actions { display: flex; justify-content: center; gap: 12px; margin-top: 24px; }
.kf-class-practice__actions a { white-space: nowrap; }
.kf-class-practice__actions .kf-sample-text-link { justify-content: center; gap: 14px; min-width: 210px; line-height: 1.5; }
:where(.kf-class-practice__actions) .kf-sample-text-link { color: var(--ink-soft); } /* マウスを乗せた時は共通の色（--ink）。:where は、その決まりに勝たないため */

@media (max-width: 782px) {
	body.kf-class-practice-page .kf-page-layout--wide { width: calc(100% - 28px); }
	body.kf-class-practice-page .kf-page-article { padding: 34px 22px 40px; }
	.kf-class-practice__intro { grid-template-columns: 1fr; gap: 30px; }
	.kf-class-practice__intro-image { width: min(260px, 82%); margin-inline: auto; }
	.kf-class-practice__intro-copy { padding-top: 0; }
	:is(.kf-class-practice__intro, .kf-class-practice__section-head, .kf-class-practice__final) h2 { font-size: var(--fs-23); }
	.kf-class-practice__section { margin-top: 62px; }
	.kf-class-practice__section-head { min-height: 46px; margin-bottom: 24px; padding: 0 0 13px 56px; }
	.kf-class-practice__section-head::before { top: 15px; width: 42px; height: 42px; }
	.kf-class-practice__foundation { grid-template-columns: 1fr; gap: 25px; }
	.kf-class-practice__trial { display: grid; gap: 18px; margin-top: 48px; padding: 22px 20px; }
	.kf-class-practice__trial > .kf-trial-actions { width: 100%; }
	.kf-class-practice__trial .kf-contact-button { width: 240px; }
	.kf-class-practice__steps { gap: 34px; }
	.kf-class-practice__steps > li { grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 25px 18px 28px; }
	.kf-class-practice__steps > li:not(:last-child)::after { bottom: -23px; }
	.kf-class-practice__number { width: 36px; }
	.kf-class-practice__step-body h3 { font-size: var(--fs-16); }
	/* 写真は番号の列の下まで広げる */
	.kf-class-practice__gallery { gap: 10px; width: calc(100% + 48px); margin-left: -48px; }
	.kf-class-practice__gallery figure { flex-basis: calc(50% - 5px); max-width: none; }
	.kf-class-practice__gallery figure:only-child { max-width: 72%; }
	.kf-class-practice-page--bagua .kf-class-practice__steps > li.has-media:has(.kf-class-practice__gallery figure:only-child) .kf-class-practice__step-body { display: block; }
	.kf-class-practice-page--bagua .kf-class-practice__gallery:has(figure:only-child) { margin-top: 24px; }
	.kf-class-practice-page--bagua .kf-class-practice__gallery figure:only-child { width: auto; max-width: 72%; }
	.kf-class-practice__studio img { aspect-ratio: 4 / 3; }
	.kf-class-practice__classes { grid-template-columns: 1fr; }
	.kf-class-practice__classes article { padding: 24px 22px; }
	.kf-class-practice__final { margin-top: 62px; padding: 32px 20px; }
	.kf-class-practice__actions { display: grid; }
	.kf-class-practice__actions .kf-contact-button { width: 100%; }
	.kf-class-practice__actions .kf-sample-text-link { min-width: 0; }
}

/* 16. 会長のプロフィール（/shunko-profile/） -----------------------
   白い紙と右の目次は 5 の形。本文は kf-blueprint-content の部品：
   年表（左に線と丸）、写真の格子、青い字のリンク。 */
.kf-page-context--profile .kf-page-title-scene__title { word-break: keep-all; overflow-wrap: normal; }
.kf-page-context--profile .kf-page-context-sidebar__panel + .kf-page-context-sidebar__panel { margin-top: 24px; }
.kf-profile-blueprint > .kf-site-heading-b { margin: 66px 0 25px; }
.kf-profile-blueprint .kf-columns figure.wp-block-image { margin-bottom: 1em; text-align: center; }
.kf-profile-blueprint .kf-columns figure.wp-block-image img { margin-inline: auto; }
.kf-profile-blueprint .kf-columns figcaption { margin-top: 8px; }
.kf-profile-blueprint .kf-columns p:not(.is-style-big_kakko_box) { margin-block: 1em; } /* 段落の上下の間はブラウザの既定のまま（前と同じ） */
.kf-profile-blueprint .kf-columns p:not(.is-style-big_kakko_box) > strong { font-weight: 700; }

/* 年表：左に細い線、出来事ごとに金茶の丸 */
.kf-blueprint-content .kf-chronology { margin: 0 0 32px; padding: 0 0 0 12px; list-style: none; }
.kf-blueprint-content .kf-chronology > li { position: relative; margin: 0; padding: 0 0 32px 28px; border-left: 1px solid var(--line-strong); }
.kf-blueprint-content .kf-chronology > li:last-child { padding-bottom: 0; border-color: transparent; }
.kf-chronology > li::before { content: ""; position: absolute; top: 0.55em; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--bronze); }
.kf-chronology .kf-chronology__date { margin: 0 0 6px; font-size: var(--fs-14); font-variant-numeric: tabular-nums; line-height: 1.6; color: var(--bronze); }
.kf-chronology > li > h3 { margin: 0 0 10px; font-size: var(--fs-19); font-weight: 500; line-height: 1.6; letter-spacing: 0.04em; }
.kf-chronology .kf-chronology__description { margin: 0; line-height: 1.9; }

/* 写真の格子：同じ高さの薄い金色の枠の中に、写真を切らずに収める */
.kf-blueprint-content .kf-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
.kf-blueprint-content .kf-photo-grid > figure { width: 100%; min-width: 0; margin-block: 0; text-align: center; }
.kf-photo-grid__frame { display: flex; align-items: center; justify-content: center; width: 100%; height: 260px; background: color-mix(in srgb, var(--bronze-bright) 8%, var(--paper-white)); }
.kf-photo-grid__frame > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.kf-blueprint-content .kf-photo-grid figcaption { margin: 10px 0 0; font-size: var(--fs-12); line-height: 1.7; color: var(--ink-soft); }
.kf-photo-grid.kf-gallery-lightbox-ready > figure { cursor: zoom-in; }
.kf-photo-grid > figure:focus-visible { outline: 2px solid var(--bronze); outline-offset: 4px; }

/* 参考資料へのリンク：青い字 */
.kf-blueprint-content a.kf-reference-text-link { font-weight: 600; text-decoration-color: currentcolor; text-underline-offset: 0.2em; color: #1769aa; }
.kf-blueprint-content a.kf-reference-text-link:is(:hover, :focus-visible) { color: #0f4f86; }

@media (max-width: 1000px) {
	.kf-page-context--profile .kf-page-context-sidebar__panel + .kf-page-context-sidebar__panel { margin-top: 0; }
}
@media (max-width: 782px) {
	.kf-profile-blueprint > .kf-site-heading-b { margin-top: 40px; }
	.kf-profile-blueprint > .kf-columns:first-child .is-style-grid { grid-template-columns: 1fr; } /* はじめの写真と略歴は縦に */
	.kf-profile-blueprint > .kf-columns:first-child figure img { width: min(100%, 420px) !important; height: auto !important; /* 記事の中で絵の幅が決めてあるため */ }
	.kf-blueprint-content .kf-photo-grid { grid-template-columns: minmax(0, 1fr); }
	.kf-blueprint-content .kf-chronology > li { padding: 0 0 28px 22px; }
}

/* 17. 「もっと深く知る」の入口（/reportage/） -----------------------
   頭の帯（写真の上に白い字）、はじめの一言、四つの読み物の箱、参考資料への帯。
   スマホだけ、帯の下に読み物への近道が並ぶ。 */
.kf-reportage-hub__hero { display: flex; align-items: center; height: 390px; background: linear-gradient(90deg, rgba(31, 37, 34, 0.76), rgba(43, 47, 43, 0.36)), var(--reportage-hero-image) center 42% / cover no-repeat; color: var(--white); }
.kf-reportage-hub__hero > div { display: flex; flex-direction: column; justify-content: center; width: min(1100px, 100% - 48px); height: 100%; margin: 0 auto; padding: 64px 48px; }
.kf-reportage-hub__hero p:first-child { margin: 0 0 12px; font-size: var(--fs-12); letter-spacing: 0.19em; color: #efdcae; }
.kf-reportage-hub__hero h1 { max-width: 520px; font-size: var(--fs-36); font-weight: 500; line-height: 1.45; letter-spacing: 0.065em; }
.kf-reportage-hub__hero p:last-child { max-width: 29em; margin: 23px 0 0; letter-spacing: 0.04em; color: rgba(255, 255, 255, 0.82); }

.kf-hub-mobile-nav { display: none; }
.kf-reportage-hub__shell { width: min(1100px, 100% - 48px); margin: 0 auto; }

/* はじめの一言：左に小さな英字、右に題と文 */
.kf-reportage-hub__introduction { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 44px; min-height: 171px; margin-bottom: 78px; padding: 64px 42px 0; }
.kf-reportage-hub__introduction > p { margin: 8px 0 0; font-size: var(--fs-12); letter-spacing: 0.15em; color: var(--bronze); }
.kf-reportage-hub__introduction > div { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 48px; }
.kf-reportage-hub__introduction h2 { font-size: var(--fs-28); font-weight: 500; line-height: 1.8; letter-spacing: 0.055em; }
.kf-reportage-hub__introduction > div > p { margin: 3px 0 0; font-size: var(--fs-14); line-height: 2.1; color: var(--ink-soft); }

/* 読み物の箱：上に写真、下に題と一言。箱のどこを押しても開く */
.kf-reportage-hub__collections > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; }
.kf-reportage-hub__collections article { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid color-mix(in srgb, var(--line) 84%, transparent); border-top: 3px solid #978661; background: rgba(255, 254, 251, 0.98); }
.kf-reportage-hub__collections article:hover { border-top-color: #6f7d69; }
.kf-reportage-hub__collections figure { flex: none; aspect-ratio: 3 / 2; overflow: hidden; background: #e6e4dd; }
.kf-reportage-hub__collections img { display: block; width: 100%; height: 100%; object-fit: cover; transition: filter 0.45s; }
.kf-reportage-hub__collections article:hover img { filter: brightness(1.04); }
.kf-reportage-hub__collections article > div { display: flex; flex: 1; flex-direction: column; min-width: 0; min-height: 218px; padding: 28px 27px 25px; }
.kf-reportage-hub__collections h3 { font-size: var(--fs-23); font-weight: 500; line-height: 1.65; }
.kf-reportage-hub__collections h3 a { text-decoration: none; color: inherit; }
.kf-reportage-hub__collections h3 a::after { content: ""; position: absolute; z-index: 2; inset: 0; }
.kf-reportage-hub__collections article > div > p { margin: 16px 0 0; font-size: var(--fs-12); line-height: 1.9; color: var(--ink-soft); }

/* 参考資料への帯 */
.kf-reportage-hub__reference { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; align-items: center; gap: 36px; margin-top: 38px; padding: 29px 34px; border: 1px solid color-mix(in srgb, var(--line) 82%, transparent); background: #f5f4ee; }
.kf-reportage-hub__reference > div > p { margin: 0 0 5px; font-size: var(--fs-12); letter-spacing: 0.14em; color: var(--bronze); }
.kf-reportage-hub__reference h2 { font-size: var(--fs-19); font-weight: 500; }
.kf-reportage-hub__reference > p { font-size: var(--fs-12); line-height: 1.85; color: var(--ink-soft); }

@media (max-width: 1000px) {
	.kf-reportage-hub__hero { height: 350px; }
	.kf-reportage-hub__hero > div { padding: 48px 36px; }
	.kf-reportage-hub__introduction { grid-template-columns: 140px minmax(0, 1fr); gap: 32px; padding-inline: 24px; }
	.kf-reportage-hub__introduction > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
	.kf-reportage-hub__reference { grid-template-columns: 1fr auto; }
	.kf-reportage-hub__reference > div { grid-column: 1 / -1; }
}
@media (max-width: 782px) {
	.kf-reportage-hub__hero { height: 300px; background-position: 56% center; }
	.kf-reportage-hub__hero > div { width: calc(100% - 28px); padding: 36px 20px; }
	.kf-reportage-hub__hero h1 { font-size: var(--fs-28); }
	.kf-reportage-hub__hero p:last-child { font-size: var(--fs-14); }
	/* 読み物への近道（スマホだけ） */
	.kf-hub-mobile-nav { display: grid; width: calc(100% - 28px); margin: 0 auto; border: 1px solid var(--line); background: rgba(255, 254, 250, 0.96); }
	.kf-hub-mobile-nav a { display: flex; flex-direction: column; justify-content: center; min-height: 76px; padding: 15px 20px; font-size: var(--fs-14); text-align: center; color: var(--ink-soft); }
	.kf-hub-mobile-nav a + a { border-top: 1px solid var(--line); }
	.kf-hub-mobile-nav .kf-hero-fact__main { font-size: var(--fs-14); font-weight: 600; line-height: 1.55; letter-spacing: 0.06em; color: var(--ink); }
	.kf-hub-mobile-nav .kf-hero-fact__sub { margin-top: 6px; font-size: var(--fs-12); line-height: 1.5; letter-spacing: 0.04em; color: var(--ink-soft); }
	.kf-reportage-hub__shell { width: calc(100% - 28px); }
	.kf-reportage-hub__introduction { grid-template-columns: 1fr; gap: 18px; min-height: 0; margin-bottom: 56px; padding: 44px 8px 0; }
	.kf-reportage-hub__introduction > div { grid-template-columns: 1fr; gap: 16px; }
	.kf-reportage-hub__introduction h2 br { display: none; }
	.kf-reportage-hub__collections > div { grid-template-columns: 1fr; gap: 18px; }
	.kf-reportage-hub__collections article > div { padding: 24px; }
	.kf-reportage-hub__collections h3 { font-size: var(--fs-19); }
	.kf-reportage-hub__reference { grid-template-columns: 1fr; gap: 18px; padding: 26px 23px; }
	.kf-reportage-hub__reference > div { grid-column: auto; }
	.kf-reportage-hub__reference h2 { font-size: 17px; }
}

/* 18. 中国の民間養生の一覧（/chinese-healthcare/） ------------------
   頭の帯・はじめの一言・段の頭は 10 の「体験を読む」形。
   その下に、今の季節の大きな箱、四つの季節の箱、暮らしの養生の一覧。 */
.kf-healthcare-archive { --hc-line: #d9ccb5; }
.kf-healthcare-archive .kf-experience-hero::before { content: ""; position: absolute; inset: 0; background: url("../images/official-chinese-yangsheng-hero-background.png") center 62% / cover no-repeat; opacity: 0.3; pointer-events: none; }
.kf-healthcare-archive__shell { width: min(1040px, 100% - 48px); margin: 68px auto 0; }

/* 今の季節：左に大きな写真、右に題と一言 */
.kf-healthcare-archive__current { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.75fr); min-height: 405px; background: rgba(255, 254, 251, 0.92); }
.kf-healthcare-archive__current-image { min-width: 0; overflow: hidden; }
.kf-healthcare-archive__current-image a { display: block; height: 100%; }
.kf-healthcare-archive__current-image :is(img, .kf-healthcare-archive__image-placeholder) { display: block; width: 100%; height: 100%; object-fit: cover; }
.kf-healthcare-archive__current-copy { align-self: center; padding: 42px 40px; }
.kf-healthcare-archive__current-copy > p:first-child { display: flex; justify-content: space-between; margin: 0 0 13px; font-size: var(--fs-12); letter-spacing: 0.08em; color: var(--bronze); }
.kf-healthcare-archive__current h3 { margin: 0 0 18px; font-size: var(--fs-28); font-weight: 500; line-height: 1.7; letter-spacing: 0.04em; }
.kf-healthcare-archive :is(h3, figure) a { text-decoration: none; color: inherit; }
.kf-healthcare-archive__current-copy > p:not(:first-child) { margin: 0 0 21px; font-size: var(--fs-14); line-height: 2; color: var(--ink-soft); }
.kf-healthcare-archive__more > a { display: inline-block; padding-bottom: 4px; font-size: var(--fs-12); text-decoration: none; color: var(--bronze); }

/* 四つの季節：横に四つ、間に細い線 */
.kf-healthcare-archive__seasons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--hc-line); border-top: 0; background: rgba(255, 254, 251, 0.72); }
.kf-healthcare-archive__seasons article { border-left: 1px solid var(--hc-line); }
.kf-healthcare-archive__seasons article:first-child { border-left: 0; }
.kf-healthcare-archive__season-image { padding: 18px 18px 0; }
.kf-healthcare-archive__season-image a { display: block; }
.kf-healthcare-archive__season-copy { padding: 0 18px 13px; }
.kf-healthcare-archive__seasons :is(img, .kf-healthcare-archive__image-placeholder) { display: block; width: 100%; aspect-ratio: 4 / 3; margin-bottom: 16px; border-radius: 10px; object-fit: cover; }
.kf-healthcare-archive__season-label { display: block; margin-bottom: 7px; font-size: var(--fs-12); letter-spacing: 0.14em; color: var(--bronze); }
.kf-healthcare-archive__seasons h3 { margin: 0 0 12px; font-size: var(--fs-16); font-weight: 500; line-height: 1.75; }
.kf-healthcare-archive__season-date { font-size: var(--fs-12); line-height: 1; color: var(--ink-soft); }

/* 暮らしの養生：左に写真、右に題と一言の行 */
.kf-healthcare-archive__daily { margin-top: 88px; }
.kf-healthcare-archive__daily-list { border-top: 1px solid var(--hc-line); }
.kf-healthcare-archive__daily-list article { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: center; gap: 38px; padding: 30px 8px; border-bottom: 1px solid var(--hc-line); }
.kf-healthcare-archive__daily-image { display: block; overflow: hidden; border-radius: 10px; }
.kf-healthcare-archive__daily-image a { display: block; }
.kf-healthcare-archive__daily-image :is(img, .kf-healthcare-archive__image-placeholder) { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 10px; object-fit: cover; transition: transform 0.35s; }
.kf-healthcare-archive__image-placeholder { background: var(--paper) url("../images/official-wallpaper-wp.jpg") center / 260px auto; }
.kf-healthcare-archive__daily-list article:hover img { transform: scale(1.025); }
.kf-healthcare-archive__daily-list div > p:first-child { margin: 0 0 8px; font-size: var(--fs-12); letter-spacing: 0.07em; color: var(--bronze); }
.kf-healthcare-archive__daily h3 { margin: 0 0 9px; font-size: var(--fs-19); font-weight: 500; line-height: 1.65; }
.kf-healthcare-archive__daily-list div > p:not(:first-child) { font-size: var(--fs-12); line-height: 1.9; color: var(--ink-soft); }
.kf-healthcare-archive__daily-list .kf-healthcare-archive__more > a { margin-top: 12px; }

@media (max-width: 1000px) {
	.kf-healthcare-archive__current { grid-template-columns: minmax(0, 1.2fr) minmax(290px, 0.8fr); }
	.kf-healthcare-archive__seasons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kf-healthcare-archive__seasons article:nth-child(2n+1) { border-left: 0; }
	.kf-healthcare-archive__seasons article:nth-child(n+3) { border-top: 1px solid var(--hc-line); }
}
@media (max-width: 782px) {
	.kf-healthcare-archive__shell { width: calc(100% - 28px); margin-top: 48px; }
	.kf-healthcare-archive__current { display: block; min-height: 0; }
	.kf-healthcare-archive__current-image { display: block; aspect-ratio: 16 / 10; }
	.kf-healthcare-archive__current-copy { padding: 27px 24px 29px; }
	.kf-healthcare-archive__current h3 { font-size: var(--fs-23); }
	.kf-healthcare-archive__seasons h3 { font-size: var(--fs-14); }
	.kf-healthcare-archive__daily { margin-top: 64px; }
	.kf-healthcare-archive__daily-list article { grid-template-columns: 128px minmax(0, 1fr); gap: 18px; padding: 24px 4px; }
	.kf-healthcare-archive__daily-list div > p:not(:first-child) { display: none; }
}
@media (max-width: 430px) {
	:is(.kf-healthcare-archive__section-heading, .kf-language-archive__section-heading) { align-items: start; }
	:is(.kf-healthcare-archive__section-heading, .kf-language-archive__section-heading) > span { max-width: 120px; text-align: right; }
	/* 季節の箱は、左に小さな写真・右に字の行に */
	.kf-healthcare-archive__seasons { grid-template-columns: 1fr; }
	.kf-healthcare-archive__seasons article:nth-child(n) { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: start; column-gap: 17px; padding: 18px; border-top: 1px solid var(--hc-line); border-left: 0; }
	.kf-healthcare-archive__seasons article:first-child { border-top: 0; }
	:is(.kf-healthcare-archive__season-image, .kf-healthcare-archive__season-copy) { padding: 0; }
	.kf-healthcare-archive__seasons :is(img, .kf-healthcare-archive__image-placeholder) { margin: 0; }
	.kf-healthcare-archive__seasons :is(.kf-healthcare-archive__season-label, h3, .kf-healthcare-archive__season-date) { display: block; }
	.kf-healthcare-archive__seasons h3 { margin-bottom: 8px; }
	.kf-healthcare-archive__daily-list article { grid-template-columns: 1fr; gap: 15px; }
	.kf-healthcare-archive__daily-image :is(img, .kf-healthcare-archive__image-placeholder) { aspect-ratio: 16 / 8.5; }
}

/* 19. 現地で学んだ中国語の一覧（/chinese-in-china/） ----------------
   頭の帯・はじめの一言・段の頭は 10 の「体験を読む」形。
   「現地で使う」は大きな箱と小さな箱、「学び方」は写真つきの箱を二列に並べる。 */
.kf-language-archive .kf-experience-hero::before { content: ""; position: absolute; inset: 0; background: url("../images/official-chinese-language-in-china-hero-background.png") center 54% / cover no-repeat; opacity: 0.32; pointer-events: none; }
.kf-language-archive__shell { width: min(1040px, 100% - 48px); margin: 68px auto 0; }

/* 三つの箱に共通：小さな英字と日付の行、題、一言、「読む」 */
.kf-language-archive article div > p:first-child { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 12px; font-size: var(--fs-12); letter-spacing: 0.08em; color: var(--bronze); }
.kf-language-archive article h3 { font-weight: 500; line-height: 1.65; }
.kf-language-archive article h3 a { text-decoration: none; color: inherit; }
.kf-language-archive article div > p:not(:first-child) { margin: 16px 0 18px; font-size: var(--fs-12); line-height: 1.9; color: var(--ink-soft); }
.kf-language-archive__more > a { font-size: var(--fs-12); text-decoration: none; color: var(--bronze); }
.kf-language-archive figure { min-width: 0; overflow: hidden; }
.kf-language-archive figure a { display: block; height: 100%; }
.kf-language-archive__image-placeholder { background: linear-gradient(rgba(255, 254, 251, 0.55), rgba(255, 254, 251, 0.55)), url("../images/official-wallpaper-wp.jpg"); }

/* 現地で使う：左に大きな箱、右に小さな箱 */
.kf-language-archive__field-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.65fr); gap: 24px; }
:is(.kf-language-archive__feature, .kf-language-archive__field-secondary article) { overflow: hidden; border-radius: 12px; background: rgba(255, 254, 251, 0.94); }
.kf-language-archive__feature { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(270px, 0.85fr); min-height: 405px; }
.kf-language-archive__feature-image :is(img, .kf-language-archive__image-placeholder) { display: block; width: 100%; height: 100%; object-fit: cover; }
.kf-language-archive__feature > div { align-self: center; padding: 36px 34px; }
.kf-language-archive__feature h3 { font-size: var(--fs-23); }
.kf-language-archive__field-secondary { display: grid; gap: 24px; }
.kf-language-archive__field-secondary article > .kf-language-archive__field-image { display: block; padding: 16px 16px 0; }
.kf-language-archive__field-secondary :is(img, .kf-language-archive__image-placeholder) { display: block; width: 100%; aspect-ratio: 16 / 10; border-radius: 10px; object-fit: cover; }
.kf-language-archive__field-secondary article > div { padding: 22px 24px 27px; }
.kf-language-archive__field-secondary h3 { font-size: var(--fs-19); }

/* 学び方：左に写真、右に字の箱を二列 */
.kf-language-archive__learning { margin-top: 88px; }
.kf-language-archive__learning-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.kf-language-archive__learning-grid article { display: grid; grid-template-columns: 190px minmax(0, 1fr); min-height: 262px; padding: 16px; border-radius: 12px; background: rgba(255, 254, 251, 0.88); }
.kf-language-archive__learning-image { border-radius: 10px; }
.kf-language-archive__learning-image :is(img, .kf-language-archive__image-placeholder) { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s; }
.kf-language-archive__learning-grid article:hover img { transform: scale(1.025); }
.kf-language-archive__learning-grid article > div { align-self: center; padding: 20px 18px 20px 25px; }
.kf-language-archive__learning-grid h3 { font-size: var(--fs-16); }
.kf-language-archive__learning-grid article div > p:not(:first-child) { margin-block: 11px 14px; }

@media (max-width: 1000px) {
	.kf-language-archive__field-grid { grid-template-columns: 1fr; }
	.kf-language-archive__field-secondary article { display: grid; grid-template-columns: 270px minmax(0, 1fr); }
	.kf-language-archive__field-secondary article > .kf-language-archive__field-image { padding: 16px 0 16px 16px; }
	.kf-language-archive__field-secondary :is(img, .kf-language-archive__image-placeholder) { height: 100%; aspect-ratio: auto; }
	.kf-language-archive__learning-grid article { grid-template-columns: 150px minmax(0, 1fr); }
}
@media (max-width: 782px) {
	.kf-language-archive__shell { width: calc(100% - 28px); margin-top: 48px; }
	.kf-language-archive__feature { display: block; min-height: 0; }
	.kf-language-archive__feature-image { display: block; aspect-ratio: 16 / 10; }
	.kf-language-archive__feature > div { padding: 27px 24px 29px; }
	.kf-language-archive__field-secondary article { display: block; }
	.kf-language-archive__field-secondary article > .kf-language-archive__field-image { padding: 14px 14px 0; }
	.kf-language-archive__field-secondary :is(img, .kf-language-archive__image-placeholder) { height: auto; aspect-ratio: 16 / 10; }
	.kf-language-archive__field-secondary h3 { font-size: 17px; }
	.kf-language-archive__learning { margin-top: 64px; }
	.kf-language-archive__learning-grid { grid-template-columns: 1fr; }
	.kf-language-archive__learning-grid article { grid-template-columns: 132px minmax(0, 1fr); min-height: 170px; }
	.kf-language-archive__learning-grid article > div { padding: 14px 10px 14px 20px; }
	.kf-language-archive__learning-grid article div > p:not(:first-child) { display: none; }
}
@media (max-width: 430px) {
	.kf-language-archive__learning-grid article { grid-template-columns: 112px minmax(0, 1fr); padding: 12px; }
	.kf-language-archive__learning-grid article > div { padding-left: 15px; }
}

/* 20. 記事の中の部品の残り ------------------------------------------
   代表のページには無く、一つ一つの記事にだけ出てくる部品。
   練習スポットの条件の札の色違い、お知らせの注意の箱、ノートと便りの記事の見出しと写真、
   表・動画・古い記事の箱。値は前のまま。 */

/* 20-1 練習スポット：条件の札の色違い（行き方・地面・環境・広さ・安全）。形は 6 の札と同じ */
.kf-practice-season-notes li.is-access { background: linear-gradient(145deg, #f8feff 0%, #e7f8fa 100%); box-shadow: 0 8px 20px rgba(39, 139, 151, 0.09); }
.kf-practice-season-notes li.is-ground { background: linear-gradient(145deg, #fbfdfb 0%, #edf5eb 100%); box-shadow: 0 8px 20px rgba(77, 116, 84, 0.09); }
.kf-practice-season-notes li.is-environment { background: linear-gradient(145deg, #f9feff 0%, #edf7f8 100%); box-shadow: 0 8px 20px rgba(62, 128, 139, 0.09); }
.kf-practice-season-notes li.is-space { background: linear-gradient(145deg, #fbfdf9 0%, #eef6e9 100%); box-shadow: 0 8px 20px rgba(86, 124, 76, 0.09); }
.kf-practice-season-notes li.is-safety { background: linear-gradient(145deg, #fffafa 0%, #fff0ed 100%); box-shadow: 0 8px 20px rgba(160, 72, 62, 0.09); }
.kf-practice-season-notes li.is-access::before { background: rgba(46, 174, 185, 0.11); }
.kf-practice-season-notes li.is-ground::before { background: rgba(105, 152, 105, 0.1); }
.kf-practice-season-notes li.is-environment::before { background: rgba(62, 157, 169, 0.1); }
.kf-practice-season-notes li.is-space::before { background: rgba(108, 151, 91, 0.1); }
.kf-practice-season-notes li.is-safety::before { background: rgba(213, 91, 77, 0.1); }
.kf-practice-season-notes :is(.is-access, .is-environment) strong::before { background-image: url("../images/practice-icon-access.png"); }
.kf-practice-season-notes :is(.is-ground, .is-space) strong::before { background-image: url("../images/practice-icon-ground.png"); }
.kf-practice-season-notes .is-safety strong::before { background-image: url("../images/practice-icon-safety.png"); }
.kf-practice-season-notes .is-access strong { color: #247b84; }
.kf-practice-season-notes .is-access strong::after { color: #4597a0; }
.kf-practice-season-notes .is-environment strong { color: #347983; }
.kf-practice-season-notes .is-environment strong::after { color: #5797a0; }
.kf-practice-season-notes .is-space strong { color: #5b7a50; }
.kf-practice-season-notes .is-safety strong { color: #9d4f46; }
.kf-practice-season-notes .is-safety strong::after { color: #bd7167; }
.kf-practice-season-notes .is-ground strong, .kf-practice-season-notes :is(.is-ground, .is-space) strong::after { color: var(--ink-soft); }

/* 20-2 お知らせ：注意の箱。記事の頭の箱は、小さな丸い札・文・リンク。本文の中の箱では、文や箇条書きの中の太字はふつうの太字のまま */
.kf-sample-notice { padding: 22px 24px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 253, 248, 0.94); }
.kf-sample-notice--important { background: #fcfaf4; }
.kf-sample-notice--note { background: #f8faf7; }
.kf-news-archive-notice { margin-bottom: 1.6em; }
.kf-sample-notice p { margin: 0; line-height: 1.8; }
.kf-sample-notice strong:not(.kf-blueprint-content :is(p:where(:not(.kf-inline)), li) strong) { display: inline-block; margin-bottom: 12px; padding: 4px 11px; border-radius: 999px; font-size: var(--fs-12); letter-spacing: 0.12em; }
.kf-sample-notice--important strong:not(.kf-blueprint-content :is(p, li) strong) { background: #eee4c8; color: var(--bronze); }
.kf-sample-notice--note strong:not(.kf-blueprint-content :is(p:where(:not(.kf-inline)), li) strong) { background: #e4ebe1; color: var(--ink-soft); }
.kf-sample-notice .kf-sample-notice__link { display: inline-block; margin-top: 6px; font-weight: 500; text-decoration: underline 1px rgba(121, 100, 53, 0.46); text-underline-offset: 0.2em; }
.kf-sample-notice .kf-sample-notice__link:is(:hover, :focus-visible) { text-decoration-color: var(--sage); }
.kf-blueprint-content .kf-sample-notice > :is(ul, ol) { margin-block: 1em; }
.kf-blueprint-content .kf-sample-notice > :is(p:where(:not(.kf-inline)), ul, ol) + :is(p, ul, ol) { margin-top: 16px; }

/* 20-3 記事の本文：写真は真ん中、印を付けた字は薄い金茶の地 */
.kf-blueprint-content > .wp-block-image { margin-inline: auto; text-align: center; }
:where(.kf-blueprint-content) .wp-block-image img { display: block; margin-inline: auto; } /* :where は、写真の並び（16 章）の決まりに勝たないため */
.kf-blueprint-content figcaption { margin-top: 8px; }
.kf-blueprint-content :is(mark, .swl-marker) { background: #ece7dc; color: inherit; }
.kf-blueprint-content :where(iframe, video) { max-width: 100%; }
.practice-content > figure.wp-block-image { text-align: center; }
.practice-content > figure.wp-block-image img { display: block; margin-inline: auto; }
.kf-practice-nearby--standalone { margin-top: 0; } /* 一つだけ置いた「近くの練習スポット」の箱は上を空けない */
.kf-practice-nearby--standalone + .kf-practice-nearby--standalone { margin-top: 18px; }
.practice-content > .wp-block-gallery.has-nested-images > figure.wp-block-image { display: block; } /* WordPress 本体は flex。前と同じ block に */

/* 20-4 記事の中の表：上に見出しが並ぶ表 */
.kf-sample-table-wrap.is-style-kf-editorial table { min-width: var(--kf-table-min-width, 0); } /* 幅の下限は記事の中で決めてある */
.kf-sample-table-wrap.is-style-kf-editorial thead th { width: auto; min-width: 0; border-right: 0; text-align: left; } /* 上に並ぶ見出しは、左寄せで右の線なし。左の列の見出し（tbody th）は 6 章の形のまま */
.kf-sample-table-wrap:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; } /* 横に送れる表をキーボードで選んだ時の枠 */

@media (max-width: 782px) {
	.kf-sample-table-wrap.is-style-kf-editorial:not(.kf-sample-table-wrap--stack) :is(th, td) { padding: 13px 14px; }
	.kf-sample-table-wrap.is-style-kf-editorial:not(.kf-sample-table-wrap--stack) tbody th { width: 7rem; min-width: 7rem; }
	.kf-sample-table-wrap--stack.is-style-kf-editorial table { min-width: 0; } /* 積み重ねる表は幅の下限を外す */
}

/* 20-5 昔のブロックの形を保つ：動画の枠（16:9）、チェックの箇条書き、写真の白い枠 */
.wp-block-embed { overflow-wrap: break-word; }
.wp-block-embed__wrapper { position: relative; }
.wp-block-embed iframe { max-width: 100%; }
.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper::before { content: ""; display: block; padding-top: 50%; }
.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { padding-top: 56.25%; }
.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before { padding-top: 75%; }
.wp-embed-responsive .wp-has-aspect-ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
ul.is-style-ark-list-icon--check { padding-left: 0; }
/* :where は、教室のご案内の三枚の札（同じ箇条書きを札にしている）の決まりに勝たないため */
:where(.is-style-ark-list-icon--check) > li { position: relative; padding-left: 1.75em; list-style: none; }
:where(.is-style-ark-list-icon--check) > li::before { content: "\00a0"; position: absolute; top: 0; left: 0.25em; width: 1em; background: #52cb4c; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M11.2 20.56l-5.92-5.92c-0.16-0.16-0.4-0.16-0.56 0l-2.8 2.8c-0.16 0.16-0.16 0.4 0 0.56l9.040 9.040c0.16 0.16 0.4 0.16 0.56 0l18.64-18.64c0.16-0.16 0.16-0.4 0-0.56l-2.8-2.8c-0.16-0.16-0.4-0.16-0.56 0l-15.6 15.52z"></path></svg>') no-repeat center / contain; }
.is-style-ark-media-frame { width: fit-content; margin-inline: auto; padding: 12px; background: #fff; box-shadow: 0 0 4px 1px #0000000d, 0 1px 24px -8px #00000026; }
.is-style-ark-media-frame figcaption { margin: 8px 0 -4px; }

/* 20-6 ノートの記事：本文の写真・動画・ギャラリー（幅は 720px まで、上下を広めに空ける） */
.kf-practice-note-single .wp-block-post-content > :is(figure.wp-block-image, figure.wp-block-video) { width: min(100%, 720px); margin-block: 40px 44px; text-align: center; }
.kf-practice-note-single .wp-block-post-content > figure.wp-block-image img, .kf-practice-note-single .wp-block-post-content > figure.wp-block-video video { display: block; width: 100%; height: auto; margin-inline: auto; border-radius: 8px; }
.kf-practice-note-single .wp-block-post-content > figure.wp-block-image img { box-shadow: 0 12px 30px rgba(77, 67, 48, 0.09); }
.kf-practice-note-single .wp-block-post-content figcaption { margin-top: 10px; line-height: 1.75; letter-spacing: 0.04em; }
.kf-journal-article .wp-block-post-content :where(video, iframe) { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 10px; background: #20231f; object-fit: cover; }
/* ギャラリー：WordPress 本体は説明を写真の上に白い字で重ねる。ここでは写真の下にふつうの字で置く */
.kf-practice-note-single .wp-block-post-content > figure.wp-block-gallery { gap: 12px; margin-block: 40px 44px; }
.kf-practice-note-single .wp-block-post-content > figure.wp-block-gallery figure.wp-block-image:not(#individual-image) img { flex: 0 0 auto; height: auto; border-radius: 7px; }
.kf-practice-note-single .wp-block-post-content > figure.wp-block-gallery figure.wp-block-image figcaption { position: static; margin-top: 8px; padding: 0; background: none; color: var(--ink-soft); }
.kf-practice-note-single .wp-block-post-content > figure.wp-block-gallery figure.wp-block-image:has(figcaption)::before { content: none; }
/* 「小金井公園の梅」の記事だけ：写真を 3:2 にそろえる（記事の中で写真の幅が決めてあるので !important） */
.kf-practice-note-koganei-plum .wp-block-post-content > figure.wp-block-image { width: min(100%, 680px) !important; }
.kf-practice-note-koganei-plum .wp-block-post-content > figure.wp-block-image img { width: 100% !important; max-width: none !important; height: auto !important; aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 782px) {
	.kf-practice-note-single .wp-block-post-content > :is(figure.wp-block-image, figure.wp-block-video, figure.wp-block-gallery) { margin-block: 32px 36px; }
}

/* 20-7 新しい形で書いた便り（body.kf-park-letter-editorial）：見出しのすぐ下のギャラリー、幅を決めた写真、列の中の写真 */
.kf-park-letter-editorial .letter-content > :is(h2.kf-editorial-section-heading, :is(h2, h3).wp-block-heading) + .wp-block-gallery { margin-block: 40px 26px; }
.kf-park-letter-editorial .letter-content > figure.wp-block-image.is-resized { width: fit-content; max-width: 100%; margin-inline: auto; }
.kf-park-letter-editorial .letter-content > .kf-columns--swell figure.wp-block-image { margin-top: 0; }

/* 20-8 記事の本文の、飾りの無い箇条書き：ブラウザの既定の形（黒丸・左 40px・上下 1em）。:where は部品の決まりに勝たないため */
:where(.letter-content, .kf-single-article .entry-content) > ul:not([class*="kf-"]) { margin: 1em 0; padding-left: 40px; list-style: disc; }

/* 20-9 昔の列のブロック（ark-keep-mt）：中の物の間は上にだけ空ける（はじめの物は 0、--s は 1rem） */
[class*="ark-keep-mt"] > * { margin-top: var(--ark-mt--inner, 2rem); margin-bottom: 0; }
[class*="ark-keep-mt"] > :first-child { margin-top: 0; }
.ark-keep-mt--s > :not(:first-child) { --ark-mt--inner: 1rem; }
.kf-single-article .wp-block-post-content [class*="ark-keep-mt"] > :is(.wp-block-image, .wp-block-gallery) { margin-bottom: 0; } /* 列の中の写真は下も空けない */

/* 20-10 「もっと深く知る」の記事（養生など）：見出しに短い線を付けない、小見出し、写真は真ん中、昔の吹き出しの名残の一文 */
.kf-single-article .wp-block-post-content > .kf-site-heading-b::after { display: none; }
.kf-reportage-post .kf-single-article .wp-block-post-content > .kf-site-heading-b3 { position: relative; margin: 46px 0 20px; padding: 0 0 11px; border-bottom: 1px solid rgba(205, 189, 158, 0.72); font-size: var(--fs-23); font-weight: 400; line-height: 1.8; letter-spacing: 0.08em; color: var(--ink); }
.kf-reportage-post .kf-single-article .wp-block-post-content > .wp-block-image { text-align: center; }
.kf-single-article .wp-block-post-content > .kf-legacy-speech-label { margin-block: 24px; padding: 12px 16px; border-left: 2px solid #a98754; background: rgba(244, 239, 229, 0.72); color: var(--ink); }
.kf-legacy-post-link:not(:has(.kf-legacy-post-link__thumb)) > :where(.kf-inline) > a { grid-template-columns: minmax(0, 1fr); } /* 写真の無い「別の記事へ」の箱は一列 */
@media (max-width: 782px) {
	.kf-reportage-post .kf-single-article .wp-block-post-content > .kf-site-heading-b3 { margin-top: 38px; }
}

/* 20-11 活動の記事に残る昔の箱：題の付いた箱と、顔写真の付いた一言。教室のご案内の三枚の札（6 章）とは別の形 */
.swell-block-capbox:not(.kf-class-detail-page *) { margin-block: 28px; padding: clamp(18px, 3vw, 28px); border: 1px solid #d9c8aa; border-radius: 10px; background: rgba(255, 253, 248, 0.82); }
.cap_box_ttl { margin: -0.2em 0 12px; font-size: var(--fs-16); color: var(--ink); }
.cap_box_content > :first-child { margin-top: 0; }
.cap_box_content > :last-child { margin-bottom: 0; }
:where(.cap_box_content:not(.kf-class-detail-page *)) > ul { margin: 1em 0; padding-left: 40px; list-style: disc; }
.kf-legacy-speech-balloon > :where(.kf-inline) > img { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; }
.kf-single-article .wp-block-post-content .kf-legacy-speech-balloon__name { margin: 0 0 4px; color: var(--bronze); } /* 箱の形は 9 章。名前の字の大きさは本文と同じ（前のまま） */
.kf-legacy-speech-balloon :last-child, .kf-legacy-blog-part :last-child { margin-bottom: 0; }

/* 20-12 決まった形の無い一覧（「未分類」など）：上下の余白と題の下の間 */
.standard-page { padding-top: clamp(48px, 7vw, 72px); } /* 下は、ページの最後の箱なので空けない（前と同じ） */
.standard-page__title { margin: 0.67em 0 38px; }
@media (max-width: 782px) {
	.standard-page { padding-top: 48px; }
}

/* 21. 著者のページ（/author/…/） ----------------------------------
   上から、顔写真と紹介の箱、書いている分野の四つの入口、記事の一覧（三列のカード）、ページ送り。
   線と緑は、このページが前から持っている色のまま。 */
.kf-author-archive { --author-line: #d9cdb6; --author-green: #4f5e4e; }

/* 顔写真と紹介 */
.kf-author-archive__hero { display: grid; grid-template-columns: 260px minmax(0, 1fr); align-items: center; width: min(1030px, 100% - 48px); margin: auto; padding: 48px 55px; background: var(--paper-white); }
.kf-author-archive__portrait img { display: block; width: 180px; height: 180px; border-radius: 50%; object-fit: cover; }
.kf-author-archive__hero-copy { max-width: 650px; }
:is(.kf-author-archive__hero-copy > p:first-child, .kf-author-archive__fields > p, .kf-author-archive__posts > header > div > p) { margin: 0; font-size: var(--fs-12); letter-spacing: 0.18em; color: var(--bronze); } /* 小さな英字（三か所） */
.kf-author-archive__hero-copy > p:nth-child(2) { margin: 12px 0 4px; font-size: var(--fs-12); color: var(--ink-soft); }
.kf-author-archive__hero h1 { margin: 0 0 13px; font-size: var(--fs-36); font-weight: 500; letter-spacing: 0.12em; }
.kf-author-archive__hero-copy > :is(p:nth-of-type(3), h1 + p) { max-width: 36em; margin: 0; font-size: var(--fs-14); line-height: 1.9; color: var(--ink-soft); }
.kf-author-archive__hero-copy > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.kf-author-archive__hero-copy > div span { padding: 6px 10px; border: 1px solid var(--author-line); border-radius: 999px; font-size: var(--fs-12); color: var(--ink-soft); }

/* 分野の四つの入口 */
.kf-author-archive__fields { width: min(1030px, 100% - 48px); margin: 35px auto 78px; }
.kf-author-archive__fields > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 13px; border-block: 1px solid var(--author-line); background: rgba(255, 254, 251, 0.58); }
.kf-author-archive__fields a { display: grid; gap: 6px; padding: 20px 22px; border-left: 1px solid var(--author-line); font-size: var(--fs-14); color: inherit; text-decoration: none; }
.kf-author-archive__fields a:first-child { border-left: 0; }
.kf-author-archive__fields span { font-size: var(--fs-12); letter-spacing: 0.12em; color: var(--bronze); }

/* 記事の一覧：段の頭、絞り込み、カード */
.kf-author-archive__posts { width: min(1030px, 100% - 48px); margin: auto; }
.kf-author-archive__hero + .kf-author-archive__posts { margin-top: 78px; }
.kf-author-archive__posts > header { display: flex; align-items: end; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--author-line); }
.kf-author-archive__posts h2 { margin: 8px 0 0; font-size: var(--fs-28); font-weight: 500; }
.kf-author-archive__posts > header > p { margin: 0; font-size: var(--fs-12); color: var(--ink-soft); }
.kf-author-archive__posts > header strong { margin-right: 4px; font-size: var(--fs-23); font-weight: 500; color: var(--ink-soft); }
.kf-author-archive__filter { display: flex; margin: 24px 0 32px; border-bottom: 1px solid var(--author-line); }
.kf-author-archive__filter a { padding: 11px 18px; font-size: var(--fs-12); color: var(--ink-soft); text-decoration: none; }
.kf-author-archive__filter .is-current { border-bottom: 2px solid var(--bronze); color: var(--bronze); }
.kf-author-archive__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; }
.kf-author-archive__grid article { overflow: hidden; border-radius: 12px; background: var(--paper-white); }
.kf-author-archive__grid a { display: block; color: inherit; text-decoration: none; }
.kf-author-archive__grid :is(img, .kf-search-results__image-placeholder) { display: block; width: 100%; height: 185px; object-fit: cover; }
.kf-author-archive__grid > article > a > span { display: block; padding: 20px 22px 23px; }
.kf-author-archive__grid small { display: block; margin-bottom: 8px; font-size: var(--fs-12); color: var(--bronze); }
.kf-author-archive__grid strong { font-size: var(--fs-16); font-weight: 500; line-height: 1.7; }
.kf-author-archive__grid p { margin: 10px 0 0; font-size: var(--fs-12); line-height: 1.8; color: var(--ink-soft); }

/* ページ送り */
.kf-author-archive__pagination { display: flex; justify-content: center; gap: 8px; margin-top: 45px; }
.kf-author-archive__pagination :is(a, span) { min-width: 38px; padding: 9px 12px; border: 1px solid var(--author-line); font-size: var(--fs-12); text-align: center; color: var(--ink-soft); text-decoration: none; }
.kf-author-archive__pagination span[aria-current="page"] { border-color: var(--author-green); background: var(--author-green); color: var(--white); }
.kf-author-archive__pagination .is-ellipsis { min-width: 0; border-color: transparent; background: transparent; }

@media (max-width: 782px) {
	.kf-author-archive__hero { grid-template-columns: 1fr; width: 100%; padding: 38px 24px; text-align: center; }
	.kf-author-archive__portrait img { width: 130px; height: 130px; margin: 0 auto 22px; }
	.kf-author-archive__hero h1 { font-size: var(--fs-28); }
	.kf-author-archive__hero-copy > div { justify-content: center; }
	:is(.kf-author-archive__fields, .kf-author-archive__posts) { width: calc(100% - 28px); }
	:is(.kf-author-archive__fields > div, .kf-author-archive__grid) { grid-template-columns: 1fr; }
	.kf-author-archive__fields a { border-top: 1px solid var(--author-line); border-left: 0; }
	.kf-author-archive__fields a:first-child { border-top: 0; }
	.kf-author-archive__filter { overflow-x: auto; }
	.kf-author-archive__filter a { min-width: max-content; }
	.kf-author-archive__grid :is(img, .kf-search-results__image-placeholder) { height: 220px; }
	.kf-author-archive__pagination { flex-wrap: wrap; }
}
