/* 福島建設業許可サポートプロ.com 新デザイン（kensetsu-fukushima Issue #4・#10）
   深い森の緑（ロゴの #006829 を深めた色）× 真鍮色。見出しは Zen Kaku Gothic New、数字は Outfit
   背景の等高線は、吾妻・安達太良の山並みをイメージしたもの（contour.svg） */
:root {
	--f: #0f3a28;
	--f2: #154a33;
	--f3: #1e5e42;
	--brand: #006829;
	--brass: #b8945a;
	--brass-l: #e2cfa4;
	--brass-d: #8a6a36;
	--paper: #f7f5ef;
	--paper2: #efebe1;
	--ink: #17211c;
	--sub: #5a645d;
	--line: #e2ddd1;
	--rust: #a9472f;
	--ff-h: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Sans", sans-serif;
	--ff-b: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--ff-n: "Outfit", "Noto Sans JP", sans-serif;
	--w: 1200px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 140px; }
body.kf {
	margin: 0;
	background: #fff;
	color: var(--ink);
	font-family: var(--ff-b);
	font-size: 16px;
	line-height: 1.9;
	letter-spacing: .03em;
	font-feature-settings: "palt" 0;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: anywhere;
	line-break: strict;
}
body.kf img { max-width: 100%; height: auto; vertical-align: middle; }
body.kf a { color: var(--brand); text-underline-offset: 3px; }
body.kf a:hover { color: var(--f); }
body.kf :focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; }
.kf-nb { display: inline; }
.kf-content p, .kf-content li { text-align: justify; text-justify: inter-character; }
/* 記事の中で中央そろえを指定した囲み（お問い合わせの案内など）は中央そろえのまま */
body.kf .kf-content [style*="text-align:center"] p, body.kf .kf-content [style*="text-align: center"] p, body.kf .kf-content p[style*="text-align:center"], body.kf .kf-content p[style*="text-align: center"] { text-align: center !important; }
/* 最後の行が1〜2文字だけにならないよう、ブラウザに改行位置を整えさせる（対応ブラウザのみ） */
.kf-skip { position: absolute; left: -9999px; top: 0; }
.kf-skip:focus { left: 8px; top: 8px; z-index: 1000; background: #fff; padding: 8px 12px; }
.kf-in { width: 100%; max-width: var(--w); margin: 0 auto; padding: 0 24px; }
.kf-in--narrow { max-width: 920px; }
.kf-en { margin: 0 0 10px; font-family: var(--ff-n); font-size: 12px; font-weight: 500; letter-spacing: .26em; color: var(--brass-d); display: flex; align-items: center; gap: 12px; }
.kf-en::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.kf-arrow { width: 18px; height: 18px; flex: 0 0 auto; transition: transform .25s var(--ease); }
a:hover > .kf-arrow { transform: translateX(4px); }

/* ---------- 上部の帯・ヘッダー ---------- */
.kf-util { background: var(--f); color: rgba(255,255,255,.78); font-size: 12px; line-height: 1.6; }
.kf-util__in { max-width: var(--w); margin: 0 auto; padding: 7px 24px; display: flex; justify-content: space-between; gap: 16px; }
.kf-util p { margin: 0; }
.kf-util strong { color: var(--brass-l); font-weight: 500; margin-left: .6em; }
.kf-util__r { color: rgba(255,255,255,.62); }

.kf-header { position: sticky; top: 0; z-index: 60; background: rgba(255,255,255,.96); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); }
.kf-header__in { max-width: var(--w); margin: 0 auto; padding: 10px 24px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0 28px; }
.kf-logo { margin: 0 0 10px; flex: 0 0 auto; line-height: 0; }
.kf-logo img { width: 210px; }
.kf-gnav { order: 3; flex: 1 1 100%; border-top: 1px solid var(--line); }
.kf-header__catch { margin: 0 0 10px auto; display: flex; align-items: center; gap: 12px; padding-right: 24px; border-right: 1px solid var(--line); line-height: 1.3; }
.kf-header__badge { padding: 4px 11px; background: var(--brass); color: var(--f); font-size: 13px; font-weight: 700; letter-spacing: .06em; border-radius: 2px; white-space: nowrap; }
.kf-header__catch strong { font-family: var(--ff-h); font-size: 17px; font-weight: 700; color: var(--f); letter-spacing: .06em; white-space: nowrap; }
.kf-hero__catch { display: none; }
.kf-gnav ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: space-between; }
.kf-gnav a { position: relative; display: block; padding: 12px 10px; color: var(--ink) !important; text-decoration: none; font-size: 13.5px; font-weight: 500; letter-spacing: .04em; white-space: nowrap; }
.kf-gnav a::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 6px; height: 1px; background: var(--brass); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.kf-gnav a:hover::after { transform: scaleX(1); }
.kf-header__act { display: flex; align-items: center; gap: 20px; flex: 0 0 auto; margin-bottom: 10px; }
.kf-header__tel { text-decoration: none; color: var(--f) !important; font-family: var(--ff-n); font-weight: 500; font-size: 23px; line-height: 1.1; letter-spacing: .04em; }
.kf-header__tel small { display: block; font-family: var(--ff-b); font-size: 10.5px; color: var(--sub); letter-spacing: .06em; font-weight: 400; }
.kf-header__mail { display: inline-flex; align-items: center; height: 46px; padding: 0 18px; background: var(--f); color: #fff !important; text-decoration: none; font-size: 13px; font-weight: 700; letter-spacing: .06em; border-radius: 3px; transition: background .2s; }
.kf-header__mail:hover { background: var(--brand); }

/* スマホ・タブレットのメニュー */
.kf-menu { display: none; }
.kf-menu summary { list-style: none; cursor: pointer; }
.kf-menu summary::-webkit-details-marker { display: none; }

/* ---------- ヒーロー ---------- */
.kf-hero { position: relative; overflow: hidden; color: #fff; background: radial-gradient(120% 90% at 85% 10%, #1d5a40 0%, rgba(29,90,64,0) 60%), linear-gradient(160deg, #123f2c 0%, #0c3122 70%, #0a2a1d 100%); }
.kf-hero::before { content: ""; position: absolute; inset: 0; background: url("contour.svg") center / cover no-repeat; opacity: .55; pointer-events: none; }
.kf-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(226,207,164,.5), transparent); }
.kf-hero__in { position: relative; max-width: var(--w); margin: 0 auto; padding: 72px 24px 88px; display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 56px; align-items: center; }
.kf-hero__en { margin: 0 0 22px; display: flex; align-items: center; gap: 14px; font-size: 13px; letter-spacing: .12em; color: rgba(255,255,255,.75); }
.kf-hero__en span { font-family: var(--ff-n); font-weight: 500; letter-spacing: .32em; color: var(--brass-l); padding-right: 14px; border-right: 1px solid rgba(255,255,255,.3); }
.kf-hero__title { margin: 0; font-family: var(--ff-h); font-weight: 700; font-size: clamp(30px, 3.1vw, 42px); line-height: 1.45; letter-spacing: .03em; }
.kf-hero__title em { font-style: normal; color: var(--brass-l); }
.kf-hero__lead { margin: 22px 0 0; padding-left: 14px; border-left: 2px solid var(--brass); font-size: 14px; line-height: 1.8; color: rgba(255,255,255,.82); }
.kf-hero__facts { margin: 34px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.kf-hero__facts > div { padding: 18px 16px 16px; }
.kf-hero__facts > div + div { border-left: 1px solid rgba(255,255,255,.18); }
.kf-hero__facts dt { font-size: 12px; color: rgba(255,255,255,.7); letter-spacing: .08em; }
.kf-hero__facts dd { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.25; }
.kf-hero__facts b { font-family: var(--ff-n); font-weight: 500; font-size: 50px; line-height: 1.05; color: var(--brass-l); margin: 0 4px 0 2px; letter-spacing: -.01em; }
.kf-hero__facts dd.kf-hero__sm { margin-top: 4px; font-size: 12px; font-weight: 400; color: rgba(255,255,255,.7); }
.kf-hero__free { margin: 24px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; font-size: 13.5px; color: rgba(255,255,255,.85); }
.kf-hero__free strong { background: var(--brass); color: var(--f); padding: 4px 12px; font-weight: 700; letter-spacing: .08em; border-radius: 2px; }
.kf-hero__free span + span::before { content: "／"; margin-right: 18px; color: rgba(255,255,255,.35); }
.kf-hero__who { margin-top: 30px; display: flex; align-items: center; gap: 14px; }
.kf-hero__who img { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--brass-l); object-fit: cover; }
.kf-hero__who p { margin: 0; font-size: 15px; font-weight: 500; line-height: 1.5; }
.kf-hero__who small { display: block; font-size: 11.5px; color: rgba(255,255,255,.65); font-weight: 400; }
.kf-hero__who span { margin-left: 10px; font-size: 11px; color: var(--brass-l); border: 1px solid rgba(226,207,164,.5); padding: 1px 8px; border-radius: 2px; vertical-align: 2px; }

/* ---------- かんたん診断 ---------- */
.kf-diag { color: var(--ink); background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 30px 60px -20px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08); }
.kf-diag__head { padding: 22px 26px 18px; background: var(--paper); border-bottom: 1px solid var(--line); }
.kf-diag__en { margin: 0; font-family: var(--ff-n); font-size: 11px; font-weight: 500; letter-spacing: .3em; color: var(--brass-d); }
.kf-diag__title { margin: 2px 0 8px; font-family: var(--ff-h); font-size: 22px; font-weight: 700; line-height: 1.4; color: var(--f); }
.kf-diag__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.kf-diag__meta span { font-size: 11.5px; padding: 1px 9px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--sub); }
.kf-diag__body { position: relative; padding: 22px 26px 24px; min-height: 330px; }
.kf-diag__progress { height: 3px; background: var(--paper2); border-radius: 3px; overflow: hidden; }
.kf-diag__progress i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--brass), var(--brass-d)); transition: width .45s var(--ease); }
.kf-diag__count { margin: 6px 0 12px; text-align: right; font-family: var(--ff-n); font-size: 12px; color: var(--sub); letter-spacing: .12em; }
.kf-diag__now { font-size: 18px; font-weight: 600; color: var(--f); }
.kf-diag.is-done .kf-diag__count { visibility: hidden; }
.kf-diag__step { animation: kf-in .4s var(--ease); }
@keyframes kf-in { from { transform: translateY(6px); } to { transform: none; } }
.kf-diag__tag { display: inline-block; margin: 0 0 8px; padding: 0 10px; font-size: 11.5px; font-weight: 700; color: var(--f); background: #e6efe9; border-radius: 2px; letter-spacing: .06em; }
.kf-diag__q { margin: 0 0 8px; font-family: var(--ff-h); font-size: 18px; font-weight: 700; line-height: 1.6; }
.kf-diag__hint { margin: 0 0 18px; font-size: 12.5px; line-height: 1.75; color: var(--sub); }
.kf-diag__opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.kf-diag__opts button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 6px 10px; border: 1px solid var(--line); border-radius: 4px; background: #fff; font: inherit; font-size: 14px; font-weight: 700; color: var(--ink); cursor: pointer; transition: border-color .2s, background .2s, transform .2s; }
.kf-diag__opts button i { font-style: normal; font-family: var(--ff-n); font-size: 22px; font-weight: 300; line-height: 1.1; color: var(--brass-d); }
.kf-diag__opts button:hover { border-color: var(--f); background: var(--paper); transform: translateY(-1px); }
.kf-diag__opts button[data-v="y"]:hover i { color: var(--brand); }
.kf-diag__opts button[data-v="n"]:hover i { color: var(--rust); }
.kf-diag__back { margin-top: 14px; padding: 4px 0; border: 0; background: none; font: inherit; font-size: 12.5px; color: var(--sub); cursor: pointer; }
.kf-diag__back:hover { color: var(--f); text-decoration: underline; }
.kf-diag__result { animation: kf-in .45s var(--ease); }
.kf-diag__verdict { margin: 0 0 6px; display: flex; align-items: center; gap: 10px; font-family: var(--ff-h); font-size: 19px; font-weight: 700; line-height: 1.45; color: var(--f); }
.kf-diag__verdict::before { content: "○"; flex: 0 0 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #e6efe9; color: var(--brand); font-family: var(--ff-n); font-size: 18px; }
.kf-diag[data-result="u"] .kf-diag__verdict::before { content: "？"; background: #f5ecda; color: var(--brass-d); }
.kf-diag[data-result="n"] .kf-diag__verdict::before { content: "!"; background: #f6e3dd; color: var(--rust); }
body.kf .kf-diag__verdict:focus, body.kf .kf-diag__verdict:focus-visible { outline: none; }
.kf-diag__msg { margin: 0 0 14px; font-size: 13px; line-height: 1.75; color: var(--sub); }
.kf-diag__reqs { list-style: none; margin: 0 0 16px; padding: 0; border-top: 1px solid var(--line); }
.kf-diag__reqs li { padding: 9px 0; border-bottom: 1px solid var(--line); }
.kf-diag__req { margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 500; }
.kf-diag__req b { flex: 0 0 auto; font-size: 11.5px; padding: 0 9px; border-radius: 2px; line-height: 1.9; }
.kf-diag__reqs .is-y b { background: #e6efe9; color: var(--brand); }
.kf-diag__reqs .is-u b { background: #f5ecda; color: var(--brass-d); }
.kf-diag__reqs .is-n b { background: #f6e3dd; color: var(--rust); }
.kf-diag__note { margin: 4px 0 0; font-size: 12px; line-height: 1.7; color: var(--sub); }
.kf-diag__cta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kf-diag__cta a { display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 56px; padding: 6px; border-radius: 4px; text-decoration: none; text-align: center; line-height: 1.3; font-weight: 700; }
.kf-diag__cta small { font-size: 10.5px; font-weight: 400; opacity: .8; }
.kf-diag__tel { background: var(--f); color: #fff !important; font-family: var(--ff-n); font-size: 19px; letter-spacing: .03em; }
.kf-diag__tel small { font-family: var(--ff-b); }
.kf-diag__mail { background: var(--brass); color: var(--f) !important; font-size: 14.5px; }
.kf-diag__tel:hover { background: var(--brand); }
.kf-diag__mail:hover { background: var(--brass-l); }
.kf-diag__retry { margin-top: 10px; padding: 4px 0; border: 0; background: none; font: inherit; font-size: 12.5px; color: var(--sub); text-decoration: underline; cursor: pointer; }
.kf-diag__foot { display: flex; gap: 12px; align-items: flex-start; padding: 14px 26px 16px; background: var(--paper); border-top: 1px solid var(--line); }
.kf-diag__foot img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.kf-diag__foot p { margin: 0; font-size: 11px; line-height: 1.65; color: var(--sub); }
.kf-diag__foot b { display: block; font-size: 12px; color: var(--ink); }

/* ---------- セクション共通 ---------- */
.kf-sec { padding: 112px 0; }
.kf-head { margin-bottom: 52px; }
.kf-head--split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 64px; align-items: end; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.kf-contents .kf-head--split { grid-template-columns: 1fr; } /* 右の説明文がない欄は1列に（見出しを1行で。2026-10-20 オーナー） */
.kf-head--center { text-align: center; }
.kf-head--center .kf-en { justify-content: center; }
.kf-head--center .kf-en::after { content: ""; width: 28px; height: 1px; background: currentColor; }
.kf-head__title { margin: 0; font-family: var(--ff-h); font-size: clamp(25px, 2.6vw, 34px); font-weight: 700; line-height: 1.5; letter-spacing: .04em; color: var(--ink); }
.kf-head__sub { margin: 6px 0 0; font-size: 14px; color: var(--sub); }
.kf-head__lead { margin: 0; font-size: 14.5px; line-height: 1.95; color: var(--sub); }
.kf-more { margin: 40px 0 0; text-align: right; }
.kf-link { display: inline-flex; align-items: center; gap: 8px; color: var(--f) !important; font-weight: 700; font-size: 14px; text-decoration: none; letter-spacing: .04em; border-bottom: 1px solid var(--brass); padding-bottom: 2px; }
.kf-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 0 28px; background: var(--f); color: #fff !important; border-radius: 3px; text-decoration: none; font-weight: 700; letter-spacing: .08em; transition: background .2s; }
.kf-btn:hover { background: var(--brand); }

/* 対応業務 */
.kf-svc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.kf-svc li { position: relative; padding: 30px 32px 34px 0; border-bottom: 1px solid var(--line); }
.kf-svc li:nth-child(3n+2), .kf-svc li:nth-child(3n) { padding-left: 32px; border-left: 1px solid var(--line); }
.kf-svc__no { font-family: var(--ff-n); font-size: 13px; font-weight: 500; color: var(--brass); letter-spacing: .1em; }
.kf-svc h3 { margin: 6px 0 8px; font-family: var(--ff-h); font-size: 19px; font-weight: 700; line-height: 1.5; color: var(--f); }
.kf-svc p { margin: 0; font-size: 14px; line-height: 1.85; color: var(--sub); }

/* 選ばれる理由 */
.kf-why { background: var(--paper); }
.kf-why__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 80px; align-items: start; }
.kf-why__photo { position: sticky; top: 160px; margin: 0; }
.kf-why__photo::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 1px solid var(--brass); z-index: 0; }
.kf-why__photo img { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 480 / 462; object-fit: cover; filter: saturate(.95); }
.kf-why__photo figcaption { position: absolute; z-index: 2; left: -1px; bottom: -28px; background: var(--f); color: #fff; padding: 12px 20px 12px 18px; font-size: 14px; line-height: 1.5; }
.kf-why__photo figcaption small { display: block; font-size: 11px; color: var(--brass-l); }
.kf-why__photo figcaption b { font-family: var(--ff-h); font-size: 18px; margin-left: 4px; }
.kf-why__photo figcaption span { display: block; font-size: 11px; color: rgba(255,255,255,.7); }
.kf-why__strong { margin: 22px 0 12px; font-weight: 700; color: var(--f); font-size: 15px; }
.kf-why__text { margin: 0 0 36px; font-size: 15px; line-height: 2; text-align: justify; }
.kf-reasons { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.kf-reasons li { display: grid; grid-template-columns: 72px 1fr; gap: 8px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.kf-reasons__no { font-family: var(--ff-n); font-weight: 300; font-size: 42px; line-height: 1; color: var(--brass); }
.kf-reasons h3 { margin: 0 0 6px; font-family: var(--ff-h); font-size: 19px; font-weight: 700; line-height: 1.5; color: var(--f); }
.kf-reasons p { margin: 0; font-size: 14.5px; line-height: 1.9; color: var(--sub); text-align: justify; }
.kf-why__more { margin: 36px 0 0; display: flex; flex-wrap: wrap; gap: 18px 32px; align-items: center; }

/* 動画 */
.kf-movie { position: relative; background: var(--f); color: #fff; overflow: hidden; }
.kf-movie::before { content: ""; position: absolute; inset: 0; background: url("contour.svg") center / cover no-repeat; opacity: .35; transform: scaleX(-1); }
.kf-movie__grid { position: relative; display: grid; grid-template-columns: 4fr 8fr; gap: 64px; align-items: center; }
.kf-movie .kf-en { color: var(--brass-l); }
.kf-movie .kf-head__title { color: #fff; }
.kf-movie__text p:last-child { margin: 20px 0 0; font-size: 14.5px; color: rgba(255,255,255,.78); }
.kf-movie__frame { margin: 0; }
.kf-movie__frame p { margin: 0; }
.kf-movie__frame iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; box-shadow: 0 24px 48px -16px rgba(0,0,0,.5); }

/* 流れ */
.kf-flow { background: linear-gradient(180deg, #fff 0%, var(--paper) 100%); }
.kf-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; position: relative; }
.kf-steps::before { content: ""; position: absolute; left: 10%; right: 10%; top: 38px; height: 2px; background: repeating-linear-gradient(90deg, var(--brass) 0 8px, transparent 8px 14px); opacity: .6; }
.kf-step { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 0 26px; }
/* 5枚のカードの行（アイコン・番号・見出し・説明）の高さを共通にして、上端と下端をそろえる */
@supports (grid-template-rows: subgrid) {
	.kf-steps { grid-template-rows: repeat(4, auto); }
	.kf-step { display: grid; grid-row: span 4; grid-template-rows: subgrid; justify-items: center; row-gap: 0; }
	.kf-step h3 { align-self: center; }
	.kf-step p { height: 100%; }
}
.kf-step__icon { position: relative; z-index: 1; display: grid; place-items: center; width: 78px; height: 78px; border-radius: 50%; background: var(--f); color: var(--brass-l); box-shadow: 0 0 0 8px #fff, 0 10px 24px -10px rgba(15,58,40,.6); transition: transform .3s var(--ease); }
.kf-step__icon svg { width: 34px; height: 34px; }
.kf-step:hover .kf-step__icon { transform: translateY(-3px); }
.kf-step:not(:last-child)::after { content: ""; position: absolute; z-index: 1; top: 33px; right: -14px; width: 10px; height: 10px; border-top: 2px solid var(--brass); border-right: 2px solid var(--brass); transform: rotate(45deg); }
.kf-step__no { margin-top: 18px; font-family: var(--ff-n); font-size: 11.5px; font-weight: 500; letter-spacing: .22em; color: var(--brass-d); }
.kf-step__no b { font-size: 15px; font-weight: 600; letter-spacing: .06em; }
.kf-step h3 { margin: 4px 0 10px; font-family: var(--ff-h); font-size: 18px; font-weight: 700; color: var(--f); line-height: 1.5; }
.kf-step p { margin: 0; padding: 16px 16px 18px; flex: 1; width: 100%; background: #fff; border: 1px solid var(--line); border-radius: 6px; font-size: 13.5px; line-height: 1.85; color: var(--sub); }
.kf-step--goal .kf-step__icon { background: var(--brass); color: var(--f); box-shadow: 0 0 0 8px #fff, 0 0 0 9px var(--brass-l), 0 12px 28px -10px rgba(138,106,54,.7); }
.kf-step--goal h3 { color: var(--brass-d); }
.kf-step--goal p { border-color: var(--brass-l); background: #fffdf8; }
.kf-flow__cta { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 28px; text-align: center; }
.kf-flow__cta p { flex-basis: 100%; margin: 0; font-size: 15px; color: var(--ink); font-weight: 500; }

/* お役立ちコンテンツ */
.kf-contents { background: var(--paper); }
.kf-flow + .kf-contents { padding-top: 0; } /* 流れの欄（下端が同じ色のグラデーション）と色の境目がなく、上下の余白がつながって間延びしていた（2026-10-20 オーナー） */
.kf-cats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.kf-cat { display: grid; grid-template-columns: 42% 1fr; background: #fff; border: 1px solid var(--line); border-radius: 4px; overflow: hidden; transition: box-shadow .3s var(--ease), transform .3s var(--ease); }
.kf-cat:hover { box-shadow: 0 18px 40px -20px rgba(15,58,40,.35); transform: translateY(-2px); }
.kf-cat__img { display: block; overflow: hidden; }
.kf-cat__img img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .6s var(--ease); }
.kf-cat:hover .kf-cat__img img { transform: scale(1.04); }
.kf-cat__body { padding: 22px 24px 22px; display: flex; flex-direction: column; }
.kf-cat__count { margin: 0; font-family: var(--ff-n); font-size: 13px; font-weight: 500; color: var(--brass); letter-spacing: .1em; }
.kf-cat__count span { margin-left: 8px; color: var(--sub); font-weight: 400; font-size: 11.5px; letter-spacing: .08em; }
.kf-cat h3 { margin: 2px 0 6px; font-family: var(--ff-h); font-size: 19px; font-weight: 700; line-height: 1.5; }
.kf-cat h3 a { color: var(--f) !important; text-decoration: none; }
.kf-cat__desc { margin: 0 0 10px; font-size: 13px; line-height: 1.8; color: var(--sub); }
.kf-cat .kf-list { margin-bottom: 14px; }
.kf-cat .kf-list a { padding: 8px 0; font-size: 13px; }
.kf-cat .kf-link { margin-top: auto; align-self: flex-start; font-size: 13px; }
/* パソコン：写真（元が 220×140 と小さい）をカードの高さに引き伸ばすとぼやけるので、元の横長のまま左上に置く（2026-10-20 オーナー） */
@media (min-width: 1025px) {
	.kf-cat { grid-template-columns: 220px 1fr; }
	.kf-cat__img { align-self: start; margin: 22px 0 0 22px; aspect-ratio: 220 / 140; border-radius: 3px; }
}

/* お知らせ */
.kf-news__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.kf-news__head { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 14px; border-bottom: 2px solid var(--f); }
.kf-news__head h2 { margin: 0; font-family: var(--ff-h); font-size: 22px; font-weight: 700; line-height: 1.3; }
.kf-news__head h2 .kf-en { margin-bottom: 4px; }
.kf-list { list-style: none; margin: 0; padding: 0; }
.kf-list li { border-bottom: 1px solid var(--line); }
.kf-list a { display: grid; grid-template-columns: 88px 1fr; gap: 12px; padding: 15px 0; color: var(--ink) !important; text-decoration: none; line-height: 1.65; font-size: 14.5px; transition: color .2s; }
.kf-list a:hover { color: var(--brand) !important; }
.kf-list a:hover span { text-decoration: underline; text-decoration-color: var(--brass); }
.kf-list time { font-family: var(--ff-n); font-size: 13px; color: var(--sub); letter-spacing: .06em; padding-top: 1px; }
.kf-snsbox { margin-top: 28px; padding: 18px 20px; display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--paper); border-left: 3px solid var(--brass); }
.kf-snsbox p { margin: 0; font-size: 13px; line-height: 1.7; }
.kf-snsbox__links { flex: 0 0 auto; }
.kf-sns__x, .kf-sns__fb { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; color: #fff !important; text-decoration: none; transition: transform .2s; }
.kf-sns__x:hover, .kf-sns__fb:hover { transform: translateY(-2px); }
.kf-sns__x { background: #000; }
.kf-sns__fb { background: #1877f2; }
.kf-sns__x svg, .kf-sns__fb svg { width: 18px; height: 18px; }
.kf-sns__x + .kf-sns__fb { margin-left: 8px; }

/* お問い合わせの案内（LINE・チャットワークもここにまとめる） */
.kf-cta { position: relative; background: var(--f); color: #fff; overflow: hidden; }
.kf-cta::before { content: ""; position: absolute; inset: 0; background: url("contour.svg") center / cover no-repeat; opacity: .4; }
.kf-cta__in { position: relative; max-width: var(--w); margin: 0 auto; padding: 104px 24px; display: grid; grid-template-columns: minmax(0, 1fr) 600px; gap: 64px; align-items: center; }
.kf-cta .kf-en { color: var(--brass-l); }
.kf-cta__title { margin: 0; font-family: var(--ff-h); font-size: clamp(25px, 2.6vw, 34px); font-weight: 700; line-height: 1.5; }
.kf-cta__lead { margin: 14px 0 10px; font-weight: 700; color: var(--brass-l); }
.kf-cta__body { margin: 0 0 22px; font-size: 14.5px; line-height: 2; color: rgba(255,255,255,.8); text-align: justify; }
.kf-cta__facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 13px; color: rgba(255,255,255,.75); }
.kf-cta__facts li { padding-left: 16px; position: relative; }
.kf-cta__facts li::before { content: ""; position: absolute; left: 0; top: .8em; width: 7px; height: 7px; background: var(--brass); transform: rotate(45deg); }
.kf-cta__facts b { color: #fff; margin-right: 8px; font-weight: 700; }
.kf-ch { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.kf-ch__h { grid-column: 1 / -1; margin: 0 0 2px; font-size: 13px; color: rgba(255,255,255,.7); letter-spacing: .1em; display: flex; align-items: center; gap: 12px; }
.kf-ch__h::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,.18); }
.kf-ch__card { position: relative; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04); border-radius: 6px; color: #fff !important; text-decoration: none; transition: background .25s, border-color .25s, transform .25s var(--ease); }
a.kf-ch__card:hover { background: rgba(255,255,255,.1); border-color: rgba(226,207,164,.6); transform: translateY(-2px); }
.kf-ch__tel, .kf-ch__mail { grid-column: span 3; padding: 20px 22px; min-height: 128px; justify-content: center; }
.kf-ch__tag { font-family: var(--ff-n); font-size: 11px; font-weight: 500; letter-spacing: .28em; color: var(--brass-l); }
.kf-ch__num { white-space: nowrap; font-family: var(--ff-n); font-size: clamp(24px, 2.4vw, 31px); font-weight: 300; letter-spacing: .03em; line-height: 1.3; }
.kf-ch__card small { font-size: 11.5px; color: rgba(255,255,255,.65); line-height: 1.6; }
.kf-ch__mail { background: var(--brass); border-color: var(--brass); color: var(--f) !important; }
a.kf-ch__mail:hover { background: var(--brass-l); border-color: var(--brass-l); }
.kf-ch__mail .kf-ch__tag { color: var(--f); opacity: .7; }
.kf-ch__mail .kf-ch__t { font-family: var(--ff-h); font-size: 20px; font-weight: 700; line-height: 1.5; }
.kf-ch__mail small { color: rgba(15,58,40,.75); }
.kf-ch__mail .kf-arrow { position: absolute; right: 20px; top: 50%; margin-top: -12px; width: 24px; height: 24px; }
.kf-ch__mini { grid-column: span 2; align-items: center; text-align: center; gap: 8px; padding: 18px 12px 16px; }
.kf-ch__qr, .kf-ch__logo { display: grid; place-items: center; width: 92px; height: 92px; padding: 6px; background: #fff; border-radius: 6px; }
.kf-ch__qr img { width: 80px; height: 80px; }
.kf-ch__logo { width: 100%; max-width: 150px; }
.kf-ch__logo img { width: 116px; }
.kf-ch__mini .kf-ch__t { font-size: 13.5px; font-weight: 700; line-height: 1.4; }
.kf-ch__mini small { font-size: 10.5px; }
.kf-ch__btn { white-space: nowrap; display: inline-block; padding: 4px 14px; border: 1px solid rgba(226,207,164,.7); border-radius: 999px; color: var(--brass-l) !important; font-size: 12px; font-weight: 700; text-decoration: none; transition: background .2s, color .2s; }
.kf-ch__btn:hover { background: var(--brass-l); color: var(--f) !important; }
.kf-ch__line .kf-ch__btn { border-color: #06c755; color: #fff !important; background: #06c755; }
.kf-ch__line .kf-ch__btn:hover { background: #05a647; }
.kf-ch__fax { grid-column: 1 / -1; margin: 2px 0 0; text-align: right; font-family: var(--ff-n); font-size: 12px; color: rgba(255,255,255,.55); letter-spacing: .04em; }
.kf-ch__fax span { margin-left: 16px; }

/* 認定・認証 */
.kf-certs { background: var(--paper); border-top: 1px solid var(--line); }
.kf-certs__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 48px; align-items: center; padding-top: 56px; padding-bottom: 56px; }
.kf-certs__title { margin: 0; font-family: var(--ff-h); font-size: 19px; font-weight: 700; line-height: 1.6; color: var(--f); }
.kf-certs__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.kf-certs__list li { display: flex; align-items: center; gap: 14px; padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.kf-certs__img { flex: 0 0 76px; height: 76px; display: grid; place-items: center; }
.kf-certs__img img { max-width: 76px; max-height: 76px; width: auto; height: auto; }
.kf-certs__list p { margin: 0; font-size: 13.5px; font-weight: 700; line-height: 1.5; color: var(--ink); }
.kf-certs__list small { display: block; font-size: 11px; font-weight: 400; color: var(--sub); }

/* ---------- 下層ページ ---------- */
.kf-phead { position: relative; background: var(--f); color: #fff; overflow: hidden; }
.kf-phead::before { content: ""; position: absolute; inset: 0; background: url("contour.svg") 70% 40% / cover no-repeat; opacity: .45; }
.kf-phead__in { position: relative; max-width: var(--w); margin: 0 auto; padding: 22px 24px 52px; }
.kf-phead .kf-en { margin-top: 36px; color: var(--brass-l); }
.kf-phead__title { margin: 0; font-family: var(--ff-h); font-size: clamp(24px, 2.6vw, 34px); font-weight: 700; line-height: 1.5; letter-spacing: .04em; max-width: 900px; }
.kf-crumbs { font-size: 12px; color: rgba(255,255,255,.65); }
.kf-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.kf-crumbs li { max-width: 100%; }
.kf-crumbs li + li::before { content: "/"; margin: 0 .7em; opacity: .5; }
.kf-crumbs a { color: rgba(255,255,255,.8) !important; text-decoration: none; }
.kf-crumbs a:hover { color: #fff !important; text-decoration: underline; }
.kf-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 64px; padding-top: 56px; padding-bottom: 96px; align-items: start; }
.kf-page { min-width: 0; }
.kf-in--narrow.kf-page { padding-top: 48px; padding-bottom: 80px; }
.kf-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin: 0 0 24px; font-family: var(--ff-n); font-size: 13px; color: var(--sub); letter-spacing: .04em; }
.kf-meta a { font-family: var(--ff-b); padding: 1px 12px; background: var(--f); color: #fff !important; border-radius: 2px; font-size: 12px; text-decoration: none; }
.kf-page__thumb { margin: 0 0 32px; }
.kf-page__thumb { text-align: center; }
.kf-page__thumb img { width: auto; max-width: 100%; border-radius: 4px; } /* 元の画像より大きく引き伸ばさない（小さいアイキャッチがぼやけていた 2026-10-20） */
.kf-author { display: grid; grid-template-columns: 64px 1fr; gap: 18px; margin-top: 56px; padding: 24px; background: var(--paper); border-top: 2px solid var(--f); }
.kf-author img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.kf-author p { margin: 0; font-size: 13.5px; line-height: 1.85; color: var(--sub); }
.kf-author small { display: block; font-family: var(--ff-n); font-size: 11px; letter-spacing: .14em; color: var(--brass-d); }
.kf-author b { display: block; color: var(--ink); font-size: 15px; margin-bottom: 2px; }
.kf-related { margin-top: 48px; }
.kf-related h2 { margin: 0 0 4px; padding-bottom: 10px; border-bottom: 2px solid var(--f); font-family: var(--ff-h); font-size: 18px; }

/* サイドバー */
.kf-side { position: sticky; top: 148px; display: grid; gap: 20px; }
.kf-side__diag { position: relative; display: grid; gap: 6px; padding: 26px 24px 22px; background: var(--f); color: #fff !important; text-decoration: none; border-radius: 4px; overflow: hidden; }
.kf-side__diag::before { content: ""; position: absolute; inset: 0; background: url("contour.svg") 80% 30% / 900px auto no-repeat; opacity: .5; }
.kf-side__diag > * { position: relative; }
.kf-side__diag .kf-en { margin: 0; color: var(--brass-l); }
.kf-side__diag b { font-family: var(--ff-h); font-size: 21px; line-height: 1.45; }
.kf-side__diag span { font-size: 12.5px; line-height: 1.7; color: rgba(255,255,255,.78); }
.kf-side__diag .kf-side__go { margin-top: 8px; display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding: 6px 14px; background: var(--brass); color: var(--f); font-weight: 700; font-size: 13px; border-radius: 2px; }
.kf-side__box { padding: 20px 22px; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.kf-side__h { margin: 0 0 8px; font-family: var(--ff-h); font-size: 15px; font-weight: 700; color: var(--f); }
.kf-side__tel > a:first-of-type { display: block; font-family: var(--ff-n); font-size: 27px; font-weight: 500; color: var(--f) !important; text-decoration: none; letter-spacing: .03em; line-height: 1.3; }
.kf-side__tel p:not(.kf-side__h) { margin: 4px 0 12px; font-size: 12px; line-height: 1.7; color: var(--sub); }
.kf-side__mail { display: block; text-align: center; padding: 10px; background: var(--f); color: #fff !important; text-decoration: none; font-weight: 700; font-size: 14px; border-radius: 3px; }
.kf-side__mail:hover { background: var(--brand); }
.kf-side__cats { list-style: none; margin: 0; padding: 0; }
.kf-side__cats a { display: flex; justify-content: space-between; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--ink) !important; text-decoration: none; font-size: 14px; }
.kf-side__cats a:hover { color: var(--brand) !important; }
.kf-side__cats span { font-family: var(--ff-n); font-size: 12px; color: var(--sub); }

/* 本文（お客様が書いた内容） */
.kf-content { font-size: 16px; line-height: 2; }
.kf-content > :first-child { margin-top: 0; }
.kf-content p { margin: 0 0 1.4em; }
.kf-content h2 { margin: 2.6em 0 1em; padding: 0 0 12px 18px; border-left: 3px solid var(--f); border-bottom: 1px solid var(--line); font-family: var(--ff-h); font-size: 24px; line-height: 1.5; color: var(--ink); }
.kf-content h3 { margin: 2.2em 0 .9em; padding-left: 14px; position: relative; font-family: var(--ff-h); font-size: 19.5px; line-height: 1.55; color: var(--f); }
.kf-content h3::before { content: ""; position: absolute; left: 0; top: .5em; width: 6px; height: 6px; background: var(--brass); transform: rotate(45deg); }
.kf-content h4 { margin: 1.8em 0 .6em; font-size: 17px; }
/* 先生が本文で見出しに付けた旧デザイン用の装飾（緑の下線・緑の背景）は、新デザインの見出しにそろえる（Issue #12）。本文は書き換えない */
.kf-content h2[style*="border-bottom"], .kf-content h2[style*="background"] { margin: 2.6em 0 1em !important; padding: 0 0 12px 18px !important; background: none !important; color: var(--ink) !important; border: 0 !important; border-left: 3px solid var(--f) !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; font-size: 24px !important; }
.kf-content h3[style*="border-bottom"], .kf-content h3[style*="color"] { margin: 2.2em 0 .9em !important; padding: 0 0 0 14px !important; border: 0 !important; color: var(--f) !important; font-size: 19.5px !important; }
@media (max-width: 760px) {
	.kf-content h2[style*="border-bottom"], .kf-content h2[style*="background"] { font-size: 20px !important; padding-left: 14px !important; }
	.kf-content h3[style*="border-bottom"], .kf-content h3[style*="color"] { font-size: 17.5px !important; }
}
.kf-content ul, .kf-content ol { margin: 0 0 1.4em; padding-left: 1.5em; }
.kf-content li { margin: .35em 0; }
.kf-content li::marker { color: var(--brass-d); }
.kf-content table { border-collapse: collapse; margin: 1.2em 0 1.8em; max-width: 100%; font-size: 15px; line-height: 1.75; }
.kf-content th, .kf-content td { border: 1px solid var(--line); padding: 11px 14px; vertical-align: top; }
.kf-content th { background: var(--paper); font-weight: 700; color: var(--f); }
.kf-content table.basic-table th { font-weight: 500; }
.kf-content table.kf-price { width: 100% !important; border: 0; border-top: 2px solid var(--f); }
.kf-content .kf-price th, .kf-content .kf-price td { border: 0; border-bottom: 1px solid var(--line); padding: 15px 18px; vertical-align: middle; height: auto !important; }
.kf-content .kf-price tr.kf-stack__head > * { padding: 9px 18px; font-size: 12.5px; font-weight: 700; color: var(--sub); letter-spacing: .04em; }
.kf-content .kf-price tr > :first-child { text-align: left; }
.kf-content .kf-price tr > :last-child { text-align: right; }
.kf-content .kf-price tr:not(.kf-stack__head):hover > * { background: color-mix(in srgb, var(--paper) 55%, transparent); }
/* 手順（〇〇の流れ） */
.kf-content ol.kf-flowlist { list-style: none; counter-reset: kfs; margin: 1.2em 0 2.2em; padding: 14px 28px 14px 24px; background: var(--paper); border-radius: 6px; }
.kf-content .kf-flowlist > li { counter-increment: kfs; position: relative; margin: 0; padding: 13px 0 13px 60px; line-height: 1.8; }
.kf-content .kf-flowlist > li + li { border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent); }
.kf-content .kf-flowlist > li::before { content: counter(kfs, decimal-leading-zero); position: absolute; left: 0; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 40px; height: 40px; border: 1.5px solid var(--f); border-radius: 50%; background: #fff; color: var(--f); font-family: var(--ff-n); font-size: 14.5px; font-weight: 600; letter-spacing: .02em; z-index: 1; }
.kf-content .kf-flowlist > li:not(:last-child)::after { content: ""; position: absolute; left: 20px; top: calc(50% + 20px); height: calc(100% - 40px + 1px); border-left: 1.5px dashed color-mix(in srgb, var(--f) 35%, transparent); }
.kf-content .kf-flowlist > li:last-child::before { background: var(--brass); border-color: var(--brass); color: #fff; }
/* 注意事項の番号リスト */
.kf-content ol.kf-terms, .kf-content ul.kf-terms { list-style: none; counter-reset: kft; margin: 1em 0 2em; padding: 0; border-top: 1px solid var(--line); }
.kf-content .kf-terms > li { counter-increment: kft; position: relative; margin: 0; padding: 13px 4px 13px 42px; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.8; }
.kf-content ol.kf-terms > li::before { content: counter(kft); position: absolute; left: 6px; top: 16px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--f); color: #fff; font-family: var(--ff-n); font-size: 12.5px; font-weight: 600; }
.kf-content ul.kf-terms > li::before { content: ""; position: absolute; left: 14px; top: 1.45em; width: 6px; height: 6px; border-radius: 50%; background: var(--brass); }
.kf-content .kf-terms__sub { margin: .35em 0 0 !important; font-size: 14px; line-height: 1.8; color: var(--sub); }
/* ※の注記 */
.kf-content .kf-notes { margin: 1.4em 0 2em; padding: 16px 24px 12px; background: var(--paper); border-left: 3px solid var(--brass); border-radius: 0 6px 6px 0; }
.kf-content .kf-notes__t { margin: 0 0 4px !important; font-family: var(--ff-h); font-size: 15px; font-weight: 700; color: var(--f); text-align: left !important; letter-spacing: .04em; }
.kf-note { display: grid; grid-template-columns: 2.4em minmax(0, 1fr); gap: 0 8px; padding: 9px 0; font-size: 14px; line-height: 1.85; color: var(--ink); }
.kf-note + .kf-note { border-top: 1px dotted color-mix(in srgb, var(--brass) 40%, var(--line)); }
.kf-note--plain { grid-template-columns: minmax(0, 1fr); }
.kf-note__m { font-family: var(--ff-n), var(--ff-b); font-size: 13px; font-weight: 600; color: var(--brass-d); white-space: nowrap; }
.kf-note__b { }
/* 付記（制定日など） */
body.kf .kf-content p.kf-dated { margin-top: -.6em; text-align: right !important; font-size: 13px; color: var(--sub); }
/* 小見出し＋表のまとまり */
.kf-content .kf-plan { margin: 1.4em 0 2.2em; padding: 20px 26px 4px; border: 1px solid var(--line); border-top: 3px solid var(--f); border-radius: 4px; background: #fff; box-shadow: 0 6px 18px -14px rgba(15, 58, 40, .35); }
.kf-content .kf-plan > h4:first-child { margin-top: 0; }
.kf-content .kf-plan > table { margin-bottom: 1.2em; }
/* 選ばれる理由 */
.kf-content .kf-rsn { display: grid; gap: 18px; margin: 1.4em 0 2.6em; counter-reset: none; }
.kf-content .kf-rsn__item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 0 26px; padding: 26px 28px 24px 22px; border: 1px solid var(--line); border-radius: 6px; background: #fff; box-shadow: 0 10px 26px -22px rgba(15, 58, 40, .5); position: relative; overflow: hidden; }
.kf-content .kf-rsn__item::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(var(--f), var(--f3)); }
.kf-rsn__no { text-align: center; padding-top: 2px; border-right: 1px solid var(--line); }
.kf-rsn__no .kf-en { display: block; font-size: 10.5px; letter-spacing: .22em; color: var(--brass-d); }
.kf-rsn__no b { display: block; font-family: var(--ff-n); font-size: 46px; font-weight: 500; line-height: 1.05; color: var(--f); letter-spacing: .02em; }
.kf-content .kf-rsn__body h3 { margin: 0 0 12px !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 19px; line-height: 1.55; color: var(--f); }
.kf-content .kf-rsn__body h3::before, .kf-content .kf-rsn__body h3::after { display: none !important; }
.kf-content .kf-rsn__body p { margin: 0 0 .8em; font-size: 15px; line-height: 1.95; }
.kf-content .kf-rsn__body p:last-child { margin-bottom: 0; }
/* こんなお客様から */
.kf-content ul.kf-checks { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 1em 0 2.2em; padding: 0; }
.kf-content .kf-checks > li { position: relative; margin: 0; padding: 14px 16px 14px 46px; border-radius: 6px; background: var(--paper); font-size: 15px; line-height: 1.75; }
.kf-content .kf-checks > li::before { content: ""; position: absolute; left: 15px; top: 15px; width: 20px; height: 20px; border-radius: 50%; background: var(--f); }
.kf-content .kf-checks > li::after { content: ""; position: absolute; left: 21px; top: 21px; width: 8px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
/* よくあるご質問 */
.kf-content .kf-faq { display: grid; gap: 12px; margin: 1.2em 0 2.4em; }
.kf-content .kf-faq__item { border: 1px solid var(--line); border-radius: 6px; background: #fff; overflow: hidden; }
.kf-faq__q, .kf-faq__a { position: relative; padding: 15px 20px 15px 58px; line-height: 1.85; }
.kf-faq__q { background: var(--paper); font-family: var(--ff-h); font-size: 16px; font-weight: 700; color: var(--f); }
.kf-faq__a { font-size: 15px; color: var(--ink); }
.kf-faq__m { position: absolute; left: 18px; top: 15px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--f); color: #fff; font-family: var(--ff-n); font-size: 14px; font-weight: 600; }
.kf-faq__a .kf-faq__m { background: var(--brass); }
/* 業務実績 */
.kf-content .kf-work { margin: 1.4em 0 1.8em; border: 1px solid var(--line); border-radius: 6px; background: #fff; overflow: hidden; }
.kf-content .kf-work__head { display: flex; align-items: center; gap: 16px; padding: 16px 24px; background: var(--f); color: #fff; }
.kf-work__no { flex: none; font-family: var(--ff-n); font-size: 30px; font-weight: 500; line-height: 1; color: var(--brass-l); letter-spacing: .02em; padding-right: 16px; border-right: 1px solid rgba(255, 255, 255, .25); }
.kf-content .kf-work__head h3 { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 18px; line-height: 1.55; color: #fff !important; }
.kf-content .kf-work__head h3::before, .kf-content .kf-work__head h3::after { display: none !important; }
.kf-content .kf-work--plain .kf-work__head { background: var(--paper); color: var(--f); }
.kf-content .kf-work--plain .kf-work__head h3 { color: var(--f) !important; }
.kf-content .kf-work__body { padding: 22px 26px 20px; }
.kf-content .kf-work__body > :last-child { margin-bottom: 0; }
.kf-content .kf-work__body > p { font-size: 15px; line-height: 1.95; }
.kf-content ul.kf-wl { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 1em 0 1.3em; padding: 0; }
.kf-content ul.kf-wl--one { grid-template-columns: 1fr; }
.kf-content .kf-wl > li { position: relative; margin: 0; padding: 10px 14px 10px 32px; border-radius: 4px; background: var(--paper); font-size: 14.5px; line-height: 1.7; }
.kf-content .kf-wl > li::before { content: ""; position: absolute; left: 13px; top: 1.15em; width: 8px; height: 8px; border-radius: 2px; background: var(--f3); transform: rotate(45deg); }
.kf-wl__num { color: var(--f); font-weight: 700; }
.kf-wl__sub { display: block; margin-top: 3px; font-size: 13px; color: var(--sub); }
.kf-content p.kf-work__hl { display: inline-block; margin: .2em 0 1em; padding: 6px 14px 6px 12px; border-left: 3px solid var(--brass); background: color-mix(in srgb, var(--brass) 12%, #fff); color: var(--brass-d); font-size: 15px; }
.kf-content p.kf-more__p { margin: 0 0 1.2em; text-align: left !important; }
.kf-content a.kf-more { display: inline-block; padding: 9px 16px 9px 18px; border: 1px solid var(--f); border-radius: 40px; color: var(--f); font-size: 14px; font-weight: 700; text-decoration: none; line-height: 1.5; transition: background .2s, color .2s; }
.kf-content a.kf-more:hover { background: var(--f); color: #fff; }
.kf-content a.kf-more .kf-arrow { width: 16px; height: 16px; margin-left: 8px; vertical-align: -3px; }
.kf-content a.kf-more--inline { margin-top: 10px; }
.kf-content .kf-callout { margin: 1.2em 0 1.4em; padding: 20px 22px; border: 1px solid color-mix(in srgb, var(--brass) 45%, var(--line)); border-radius: 6px; background: linear-gradient(180deg, color-mix(in srgb, var(--brass) 9%, #fff), #fff 70%); }
.kf-content .kf-callout p { margin: 0 0 .8em; font-size: 14.5px; line-height: 1.85; }
.kf-content .kf-callout .kf-callout__t { font-family: var(--ff-h); font-size: 17px; font-weight: 700; color: var(--f); }
.kf-content ul.kf-callout__list { list-style: none; margin: 0 0 1em; padding: 0; display: grid; gap: 6px; }
.kf-content .kf-callout__list li { position: relative; margin: 0; padding: 10px 14px 10px 44px; border-radius: 4px; background: #fff; border: 1px solid var(--line); font-size: 14.5px; line-height: 1.75; }
.kf-content .kf-callout__list b { color: var(--f); font-family: var(--ff-n), var(--ff-b); font-size: 15.5px; }
.kf-callout__m { position: absolute; left: 12px; top: 10px; color: var(--brass-d); font-size: 18px; line-height: 1.4; }
.kf-content .kf-callout .kf-callout__note { font-size: 12.5px; color: var(--sub); }
.kf-content .kf-stages { display: grid; gap: 12px; margin: 1.2em 0 1.4em; }
.kf-content .kf-stage { position: relative; padding: 18px 22px 16px 104px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); }
.kf-stage__no { position: absolute; left: 18px; top: 18px; display: flex; align-items: baseline; justify-content: center; width: 68px; padding: 6px 0; border-radius: 4px; background: var(--f); color: #fff; font-family: var(--ff-n); font-size: 22px; font-weight: 600; line-height: 1.1; }
.kf-stage__no small { font-family: var(--ff-b); font-size: 11px; font-weight: 700; }
.kf-content .kf-stage p { margin: 0; font-size: 14.5px; line-height: 1.9; }
.kf-content .kf-stage .kf-stage__t { margin-bottom: 6px; font-family: var(--ff-h); font-size: 16.5px; font-weight: 700; color: var(--f); }
.kf-content .kf-stage a { color: var(--f); font-weight: 700; }
.kf-content .kf-photos { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; align-items: start; margin: 1.6em 0 2em; }
.kf-content .kf-photos figure { margin: 0; }
.kf-content .kf-photos img { display: block; width: 100%; height: auto; margin: 0; border-radius: 6px; float: none; border: 1px solid var(--line); }
.kf-content .kf-photos figcaption { margin-top: 6px; font-size: 13px; color: var(--sub); text-align: center; }
/* 写真が5枚以上（/office の事務所の写真7枚など）：縦横の比率をそろえて PC 4列、最後の行は中央（2026-10-13 Issue #14） */
.kf-content .kf-photos--many { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.kf-content .kf-photos--many figure { flex: 0 0 calc((100% - 42px) / 4); }
.kf-content .kf-photos--many img { aspect-ratio: 3 / 4; object-fit: cover; }
/* プロフィール（事務所紹介） */
.kf-content .kf-prof { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 34px; align-items: start; margin: 1.4em 0 1.4em; padding: 30px; background: var(--paper); border-radius: 8px; }
.kf-content .kf-prof__photo img { display: block; float: none; width: 100%; max-width: 190px; height: auto; aspect-ratio: 1; object-fit: cover; margin: 0; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 0 0 1px var(--brass-l), 0 12px 26px -16px rgba(15, 58, 40, .6); }
.kf-content .kf-prof__name { margin: 0 0 10px !important; font-family: var(--ff-h); font-size: 19px; font-weight: 700; color: var(--f); text-align: left !important; }
.kf-content ul.kf-prof__quals { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; padding: 0; }
.kf-content .kf-prof__quals li { margin: 0; padding: 3px 11px; border: 1px solid var(--line); border-radius: 30px; background: #fff; font-size: 13px; line-height: 1.6; color: var(--ink); }
.kf-content ol.kf-prof__hist { list-style: none; margin: 0 0 16px; padding: 0; border-top: 1px solid var(--line); }
.kf-content .kf-prof__hist li { display: flex; align-items: baseline; gap: 14px; margin: 0; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; line-height: 1.7; }
.kf-prof__hy { flex: none; width: 52px; padding: 1px 0; border-radius: 3px; background: var(--f); color: #fff; font-family: var(--ff-n); font-size: 12.5px; font-weight: 600; text-align: center; }
.kf-content .kf-prof--mini .kf-more__p { margin: 0; }
.kf-content ol.kf-prof__story { list-style: none; margin: 0; padding: 0; }
.kf-content .kf-prof__story > li { position: relative; margin: 0; padding: 0 0 18px 82px; }
.kf-content .kf-prof__story > li:last-child { padding-bottom: 0; }
.kf-content .kf-prof__story > li:not(:last-child)::before { content: ""; position: absolute; left: 29px; top: 30px; bottom: 4px; border-left: 1.5px dashed color-mix(in srgb, var(--f) 30%, transparent); }
.kf-prof__y { position: absolute; left: 0; top: 2px; width: 60px; padding: 2px 0; border: 1.5px solid var(--f); border-radius: 20px; background: #fff; color: var(--f); font-family: var(--ff-n); font-size: 13.5px; font-weight: 600; text-align: center; letter-spacing: .04em; }
.kf-content .kf-prof__story p { margin: 0; font-size: 15px; line-height: 1.9; }
.kf-content .kf-prof__feats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 2.4em; }
.kf-content .kf-prof__feat { padding: 20px 22px; border: 1px solid var(--line); border-top: 3px solid var(--brass); border-radius: 4px; background: #fff; }
.kf-content .kf-prof__lab { margin: 0 0 8px !important; font-family: var(--ff-h); font-size: 15.5px; font-weight: 700; color: var(--f); text-align: left !important; }
.kf-content .kf-prof__feat p:not(.kf-prof__lab) { margin: 0; font-size: 14.5px; line-height: 1.9; }
.kf-content .kf-career { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 30px; margin: .8em 0 2em; }
.kf-content .kf-career__sec:first-child { grid-column: 1 / -1; }
.kf-content .kf-career__h { margin: 0 0 6px !important; padding-bottom: 7px; border-bottom: 2px solid var(--f); font-family: var(--ff-h); font-size: 15px; font-weight: 700; color: var(--f); letter-spacing: .06em; text-align: left !important; }
.kf-content .kf-career ul { list-style: none; margin: 0; padding: 0; }
.kf-content .kf-career li { position: relative; margin: 0; font-size: 14.5px; line-height: 1.8; }
.kf-content .kf-career__hist li { padding: 11px 0 11px 76px; border-bottom: 1px solid var(--line); }
.kf-career__y { position: absolute; left: 0; top: 12px; width: 56px; padding: 1px 0; border-radius: 3px; background: var(--f); color: #fff; font-family: var(--ff-n); font-size: 13px; font-weight: 600; text-align: center; letter-spacing: .04em; }
.kf-content .kf-career__hist li.kf-career__noy::before { content: ""; position: absolute; left: 25px; top: 1.3em; width: 6px; height: 6px; border-radius: 50%; background: var(--f); }
.kf-content .kf-career__role li { padding: 9px 0 9px 18px; border-bottom: 1px dotted var(--line); }
.kf-content .kf-career__role li::before { content: ""; position: absolute; left: 3px; top: 1.15em; width: 6px; height: 6px; border-radius: 50%; background: var(--brass); }
.kf-content .kf-career__qual { display: grid; gap: 7px; padding-top: 6px !important; }
.kf-content .kf-career__qual li { padding: 8px 12px 8px 34px; border: 1px solid var(--line); border-radius: 4px; background: #fff; font-size: 14px; }
.kf-content .kf-career__qual li::before { content: ""; position: absolute; left: 13px; top: 1.05em; width: 9px; height: 5px; border-left: 2px solid var(--f3); border-bottom: 2px solid var(--f3); transform: rotate(-45deg); }
.kf-content table.kf-dl { width: 100% !important; max-width: 100% !important; border: 0 !important; border-top: 2px solid var(--f) !important; }
.kf-content .kf-dl th, .kf-content .kf-dl td { border: 0 !important; border-bottom: 1px solid var(--line) !important; padding: 18px 20px !important; vertical-align: top; background: none; height: auto !important; }
.kf-content .kf-dl th { position: relative; width: 9.5em !important; padding-left: 26px !important; font-size: 14px; font-weight: 700 !important; line-height: 28px; color: var(--f); letter-spacing: .06em; text-align: left !important; white-space: nowrap; background: color-mix(in srgb, var(--paper) 70%, transparent) !important; }
.kf-content .kf-dl th::before { content: ""; position: absolute; left: 12px; top: 31px; width: 7px; height: 2px; background: var(--brass); }
.kf-content .kf-dl td { font-size: 15.5px; line-height: 1.85; color: var(--ink); }
.kf-dl__line { display: block; }
.kf-dl__list .kf-dl__line:not(.kf-dl__note) { position: relative; padding-left: 1em; }
.kf-dl__list .kf-dl__line:not(.kf-dl__note)::before { content: ""; position: absolute; left: .15em; top: .82em; width: 5px; height: 5px; border-radius: 50%; background: var(--brass); }
.kf-dl__note { display: inline-block; margin-top: 8px; padding: 3px 12px; border-radius: 3px; background: color-mix(in srgb, var(--brass) 12%, #fff); color: var(--brass-d); font-size: 13.5px; font-weight: 700; font-style: normal; letter-spacing: .02em; }
.kf-dl__zip { margin-right: .7em; font-family: var(--ff-n), var(--ff-b); font-size: 13.5px; color: var(--sub); }
.kf-dl__kv { display: grid; grid-template-columns: max-content 1fr; gap: 4px 18px; align-items: baseline; }
.kf-dl__k { font-size: 13px; font-weight: 500; color: var(--sub); }
.kf-dl__k--en { min-width: 3.4em; font-family: var(--ff-n); font-size: 12px; font-weight: 600; letter-spacing: .12em; color: var(--brass-d); }
.kf-dl__kv a { font-family: var(--ff-n), var(--ff-b); font-size: 16.5px; font-weight: 500; color: var(--f); text-decoration: none; letter-spacing: .02em; word-break: break-all; }
.kf-dl__kv a:hover { text-decoration: underline; }
.kf-dl__counts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.kf-dl__cnt { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 5px 0; border-bottom: 1px dotted var(--line); }
.kf-dl__cnt b { font-family: var(--ff-n), var(--ff-b); font-weight: 600; color: var(--f); white-space: nowrap; }
.kf-price__name { display: block; font-size: 15.5px; font-weight: 700; color: var(--ink); line-height: 1.55; }
.kf-price__sub { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.kf-price__tag { display: inline-block; padding: 1px 8px; border: 1px solid var(--line); border-radius: 3px; background: #fff; font-size: 12px; font-weight: 500; line-height: 1.6; color: var(--sub); }
.kf-price__tag.is-new { border-color: color-mix(in srgb, var(--f) 35%, transparent); color: var(--f); background: color-mix(in srgb, var(--f) 6%, #fff); }
.kf-price__tag.is-renew { border-color: color-mix(in srgb, var(--brass-d) 45%, transparent); color: var(--brass-d); background: color-mix(in srgb, var(--brass-d) 7%, #fff); }
.kf-price__desc { display: block; font-size: 12.5px; line-height: 1.65; color: var(--sub); }
.kf-price__ref { margin-left: .35em; font-size: 11.5px; font-weight: 500; color: var(--brass-d); vertical-align: .35em; white-space: nowrap; }
.kf-price__pre { margin-right: .3em; font-size: 13px; color: var(--sub); }
.kf-price__num { font-family: var(--ff-n), var(--ff-b); font-size: 21px; font-weight: 600; color: var(--f); letter-spacing: .01em; white-space: nowrap; line-height: 1.3; }
.kf-price__num small { margin-left: 1px; font-family: var(--ff-b); font-size: 13px; font-weight: 700; }
.kf-price__note { display: block; margin-top: 2px; font-family: var(--ff-b); font-size: 12.5px; font-weight: 500; line-height: 1.6; color: var(--sub); white-space: nowrap; }
.kf-price__note--sub { margin-top: 0; font-size: 12px; }
.kf-content .scroll { overflow-x: auto; }
.kf-content .aligncenter { display: block; margin: 1.2em auto; }
.kf-content .alignleft { float: left; margin: .3em 1.6em 1em 0; }
.kf-content .alignright { float: right; margin: .3em 0 1em 1.6em; }
.kf-content::after { content: ""; display: block; clear: both; }
.kf-content iframe { max-width: 100%; }
.kf-content iframe[src*="youtube"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.kf-content blockquote { margin: 1.6em 0; padding: 16px 22px; border-left: 3px solid var(--brass); background: var(--paper); }
.kf-content strong { background: linear-gradient(transparent 62%, rgba(226,207,164,.55) 62%); }
.kf-content .bt-link { display: block; max-width: 420px; margin: 1.8em auto; padding: 0; background: var(--f); border-radius: 3px; text-align: center; font-weight: 700; }
.kf-content .bt-link a { display: block; padding: 14px 16px; color: #fff !important; text-decoration: none; }
.kf-content .bt-link a:hover { background: var(--brand); border-radius: 3px; }

/* リンク集 */
.kf-links { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 28px; }
.kf-links li { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.6; color: var(--sub); }
.kf-links a { font-size: 14.5px; font-weight: 700; color: var(--f) !important; text-decoration: none; }
.kf-links a:hover { text-decoration: underline; text-decoration-color: var(--brass); }
.kf-links__note { margin-top: 48px; padding: 24px 26px; background: var(--paper); border-left: 3px solid var(--brass); font-size: 14px; }
.kf-links__note h2 { margin: 0 0 10px; font-family: var(--ff-h); font-size: 18px; color: var(--f); }
.kf-links__note p, .kf-links__note ul { margin: 0 0 10px; }
@media (max-width: 760px) { .kf-links { grid-template-columns: 1fr; } }

/* 一覧 */
.kf-archive__desc { margin: 0 0 32px; color: var(--sub); font-size: 14.5px; }
.kf-posts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 28px; }
.kf-posts a { display: flex; flex-direction: column; height: 100%; color: var(--ink) !important; text-decoration: none; }
.kf-posts__img { display: block; aspect-ratio: 16 / 9; background: var(--paper); overflow: hidden; border-radius: 4px; }
.kf-posts__img img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .6s var(--ease); }
.kf-posts a:hover .kf-posts__img img { transform: scale(1.04); }
.kf-posts__body { display: block; padding: 14px 2px 0; }
.kf-posts__body time { display: block; font-family: var(--ff-n); font-size: 12.5px; color: var(--sub); letter-spacing: .06em; }
.kf-posts__body b { display: block; margin-top: 2px; font-family: var(--ff-h); font-size: 17px; line-height: 1.6; }
.kf-posts a:hover b { color: var(--brand); }
.kf-pager { margin: 48px 0 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; }
.kf-pager .page-numbers { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 10px; border: 1px solid var(--line); border-radius: 3px; text-decoration: none; font-family: var(--ff-n); color: var(--ink); }
.kf-pager .current { background: var(--f); border-color: var(--f); color: #fff; }

/* お問い合わせフォーム（テーマの送信の仕組みはそのまま） */
.kf-contact .contact-mes p { margin: 0 0 1em !important; }
.kf-contact .form-table { width: 100%; border-collapse: collapse; display: table; }
.kf-contact .form-table th, .kf-contact .form-table td { border: 0; border-bottom: 1px solid var(--line); padding: 18px 16px; text-align: left; vertical-align: middle; }
.kf-contact .form-table th { width: 32%; background: none; color: var(--ink); font-size: 15px; }
.kf-contact .required { display: inline-block; margin-left: 8px; padding: 0 8px; border-radius: 2px; background: var(--rust); color: #fff; font-size: 11px; font-weight: 700; line-height: 1.9; vertical-align: 1px; }
.kf-contact input[type="text"], .kf-contact input[type="email"], .kf-contact input[type="tel"], .kf-contact select, .kf-contact textarea { width: 100%; max-width: 100%; padding: 12px 14px; border: 1px solid #cfd5cf; border-radius: 3px; font: inherit; font-size: 16px; background: #fbfbf9; transition: border-color .2s, background .2s; }
.kf-contact input[id^="tel_"] { display: inline-block; width: 5.6em; max-width: 28%; text-align: center; letter-spacing: .05em; vertical-align: middle; } /* TEL は3つの欄を横一列に（2026-10-20 オーナー指摘：縦に3段並んでいた） */
.kf-contact input:focus, .kf-contact select:focus, .kf-contact textarea:focus { outline: none; border-color: var(--f); background: #fff; box-shadow: 0 0 0 3px rgba(184,148,90,.25); }
.kf-contact textarea { min-height: 220px; }
.kf-contact ul.two_column { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 24px; }
.kf-contact .button { margin: 36px 0; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.kf-contact .bt-submit, .kf-contact .bt-back { min-width: 240px; min-height: 58px; border: 0; border-radius: 3px; font: inherit; font-size: 16px; font-weight: 700; letter-spacing: .1em; cursor: pointer; }
.kf-contact .bt-submit { background: var(--f); color: #fff; }
.kf-contact .bt-submit:hover { background: var(--brand); }
.kf-contact .bt-back { background: var(--paper2); color: var(--ink); }
.kf-contact .error-mes, .kf-contact .error { color: var(--rust); }
.kf-contact .error-mes { padding: 14px 18px; border: 1px solid #e6c2b8; background: #fbf1ee; border-radius: 4px; margin-bottom: 20px; }

/* ---------- フッター ---------- */
.kf-footer { background: #0b2a1d; color: rgba(255,255,255,.72); font-size: 13.5px; line-height: 1.85; }
.kf-footer a { color: #fff; }
.kf-footer__top { display: grid; grid-template-columns: 1.25fr 1.15fr 1fr 1fr; gap: 48px; padding-top: 80px; padding-bottom: 60px; }
.kf-footer h2 { margin: 0 0 18px; font-family: var(--ff-h); font-size: 15px; font-weight: 700; color: #fff; letter-spacing: .08em; }
.kf-footer h2 .kf-en { margin: 0 0 4px; font-size: 10.5px; color: var(--brass-l); }
.kf-footer p { margin: 0 0 14px; }
.kf-footer__logo { line-height: 0; }
.kf-footer__logo img { width: 200px; background: #fff; padding: 10px 14px; border-radius: 4px; }
.kf-footer__svc { font-size: 12.5px; line-height: 1.9; color: rgba(255,255,255,.62); text-align: justify; }
.kf-footer__tel { display: inline-block; margin: 4px 0 14px; color: #fff !important; text-decoration: none; font-family: var(--ff-n); font-size: 28px; font-weight: 300; letter-spacing: .04em; line-height: 1.2; }
.kf-footer__tel small { display: block; font-family: var(--ff-b); font-size: 11px; color: var(--brass-l); letter-spacing: .1em; }
.kf-footer__sns { margin: 0 !important; }
.kf-footer__info dl { margin: 0; }
.kf-footer__info dl > div { display: grid; grid-template-columns: 64px 1fr; gap: 8px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.kf-footer__info dl > div:first-child { border-top: 1px solid rgba(255,255,255,.08); }
.kf-footer__info dt { font-size: 11.5px; color: var(--brass-l); letter-spacing: .06em; padding-top: 1px; }
.kf-footer__info dd { margin: 0; font-size: 13px; color: rgba(255,255,255,.82); }
.kf-footer__info dd a { color: #fff !important; text-decoration: none; font-family: var(--ff-n); letter-spacing: .04em; }
.kf-footer__who { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.kf-footer__who img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 1px solid var(--brass); }
.kf-footer__who p { margin: 0; font-family: var(--ff-h); font-size: 18px; color: #fff; line-height: 1.4; }
.kf-footer__who small { display: block; font-family: var(--ff-b); font-size: 11px; color: rgba(255,255,255,.6); }
.kf-footer__prof > p { font-size: 13px; text-align: justify; }
.kf-link--light { color: var(--brass-l) !important; border-bottom-color: rgba(226,207,164,.5); font-size: 13px; }
.kf-map { position: relative; aspect-ratio: 4 / 3; margin-bottom: 12px; border-radius: 4px; overflow: hidden; filter: grayscale(.35) contrast(.95); border: 1px solid rgba(255,255,255,.1); }
.kf-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.kf-footer__access p { font-size: 12.5px; }
.kf-footer__nav { border-top: 1px solid rgba(255,255,255,.1); }
.kf-footer__nav-in { padding-top: 24px; padding-bottom: 24px; display: grid; gap: 10px; }
.kf-footer__nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 28px; }
.kf-footer__nav a { color: rgba(255,255,255,.88) !important; text-decoration: none; font-size: 13px; }
.kf-footer__nav a:hover { color: var(--brass-l) !important; }
.kf-footer__nav .kf-footer__sub { gap: 4px 0; }
.kf-footer__sub li + li::before { content: "|"; margin: 0 12px; color: rgba(255,255,255,.2); }
.kf-footer__sub a { font-size: 12px; color: rgba(255,255,255,.6) !important; }
.kf-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); background: #082216; }
.kf-footer__bottom-in { display: flex; align-items: center; justify-content: space-between; gap: 8px 20px; padding-top: 18px; padding-bottom: 20px; flex-wrap: wrap; }
.kf-footer__copy, .kf-footer__pp { margin: 0 !important; font-size: 11.5px; color: rgba(255,255,255,.45); font-family: var(--ff-n); letter-spacing: .04em; }
.kf-footer__pp a { font-family: var(--ff-b); color: rgba(255,255,255,.65) !important; text-decoration: none; }
.kf-footer__pp a:hover { color: #fff !important; }

.kf-dock { display: none; }

/* ---------- 1180px 以下：ナビをメニューへ ---------- */
@media (max-width: 1180px) {
	.kf-gnav { display: none; }
	.kf-header__catch { display: none; }
	.kf-header__act { margin-left: auto; }
	.kf-hero__catch { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 18px; font-family: var(--ff-h); font-size: 17px; font-weight: 700; letter-spacing: .06em; color: #fff; }
	.kf-hero__catch span { padding: 3px 11px; background: var(--brass); color: var(--f); font-family: var(--ff-b); font-size: 13px; letter-spacing: .06em; border-radius: 2px; }
	.kf-header__in { height: 72px; padding-top: 0; flex-wrap: nowrap; gap: 20px; }
	.kf-logo, .kf-header__act { margin-bottom: 0; }
	html { scroll-padding-top: 90px; }
	.kf-side { top: 96px; }
	.kf-menu { display: block; }
	.kf-menu summary { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 3px; background: var(--f); color: #fff; }
	.kf-menu__bars, .kf-menu__bars::before, .kf-menu__bars::after { display: block; width: 20px; height: 1.5px; background: #fff; position: relative; transition: transform .25s var(--ease), background .2s; }
	.kf-menu__bars::before, .kf-menu__bars::after { content: ""; position: absolute; left: 0; }
	.kf-menu__bars::before { top: -6px; }
	.kf-menu__bars::after { top: 6px; }
	.kf-menu[open] .kf-menu__bars { background: transparent; }
	.kf-menu[open] .kf-menu__bars::before { transform: translateY(6px) rotate(45deg); }
	.kf-menu[open] .kf-menu__bars::after { transform: translateY(-6px) rotate(-45deg); }
	.kf-menu__t { font-family: var(--ff-n); font-size: 9px; letter-spacing: .14em; line-height: 1; margin-top: 9px; }
	.kf-menu__panel { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 24px 40px -10px rgba(0,0,0,.25); padding: 16px 24px 28px; max-height: calc(100vh - 110px); overflow-y: auto; }
	.kf-menu__panel ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
	.kf-menu__panel li a { display: block; padding: 14px 2px; border-bottom: 1px solid var(--line); color: var(--ink) !important; text-decoration: none; font-weight: 500; font-size: 15px; }
	.kf-menu__diag { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; padding: 14px 18px; background: var(--f); color: #fff !important; text-decoration: none; font-weight: 700; border-radius: 3px; }
	.kf-menu__diag .kf-en { margin: 0; color: var(--brass-l); white-space: nowrap; flex: none; }
	.kf-menu__diag b { font-weight: 700; line-height: 1.5; }
	.kf-menu__diag .kf-en::before { display: none; }
	.kf-menu__diag .kf-arrow { margin-left: auto; }
	.kf-menu__tel { display: block; margin-top: 18px; text-align: center; padding: 12px; border: 1px solid var(--f); border-radius: 3px; color: var(--f) !important; text-decoration: none; font-family: var(--ff-n); font-size: 26px; font-weight: 500; line-height: 1.3; }
	.kf-menu__tel small { display: block; font-family: var(--ff-b); font-size: 11px; color: var(--sub); }
	.kf-menu__sns { margin: 16px 0 0; text-align: center; }
	.kf-steps { gap: 12px; }
	.kf-step p { font-size: 13px; padding: 14px 12px 16px; }
	.kf-step h3 { font-size: 16.5px; }
	.kf-hero__in { grid-template-columns: minmax(0, 1fr) 400px; gap: 36px; padding-top: 56px; padding-bottom: 64px; }
	.kf-hero__title { font-size: clamp(26px, 3vw, 34px); }
	.kf-hero__facts b { font-size: 38px; }
	.kf-hero__facts > div { padding: 14px 10px 12px; }
	.kf-hero__facts dt { font-size: 11px; letter-spacing: 0; }
	.kf-diag__head { padding: 18px 22px 14px; }
	.kf-diag__body { padding: 18px 22px 20px; }
	.kf-diag__q { font-size: 16.5px; }
	.kf-diag__foot { padding: 12px 22px 14px; }
}

/* ---------- 860px 以下：ヒーローを1列に ---------- */
@media (max-width: 860px) {
	.kf-hero__in { grid-template-columns: 1fr; gap: 36px; }
	.kf-diag { max-width: 620px; width: 100%; justify-self: center; }
	.kf-hero__facts b { font-size: 44px; }
}

/* ---------- 1024px 以下 ---------- */
@media (max-width: 1024px) {
	.kf-cta__in { grid-template-columns: minmax(0, 1fr) 500px; gap: 40px; }
	.kf-ch__mini .kf-ch__t { font-size: 12.5px; }
	.kf-footer__top { grid-template-columns: 1fr 1fr; gap: 44px 40px; }
	.kf-certs__list li { flex-direction: column; text-align: center; }
	.kf-sec { padding: 88px 0; }
	.kf-svc { grid-template-columns: repeat(2, 1fr); }
	.kf-svc li, .kf-svc li:nth-child(3n+2), .kf-svc li:nth-child(3n) { padding: 26px 26px 30px 0; border-left: 0; }
	.kf-svc li:nth-child(2n) { padding-left: 26px; border-left: 1px solid var(--line); }
	.kf-why__grid { gap: 48px; }
	.kf-cat { grid-template-columns: 1fr; }
	.kf-cat__img { aspect-ratio: 16 / 7; }
	.kf-news__grid { gap: 40px; }
	.kf-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; }
}

/* ---------- 860px 以下 ---------- */
@media (max-width: 860px) {
	.kf-cta__in { grid-template-columns: 1fr; gap: 44px; padding: 80px 24px; }
	.kf-certs__in { grid-template-columns: 1fr; gap: 20px; }
	.kf-why__grid { grid-template-columns: 1fr; gap: 56px; }
	.kf-why__photo { position: relative; top: 0; max-width: 420px; }
	.kf-movie__grid { grid-template-columns: 1fr; gap: 32px; }
	.kf-steps { grid-template-columns: 1fr; gap: 0; }
	.kf-steps::before { display: none; }
	.kf-step:not(:last-child)::before { content: ""; position: absolute; left: 31px; top: 70px; bottom: 0; width: 2px; background: repeating-linear-gradient(180deg, var(--brass) 0 8px, transparent 8px 14px); opacity: .6; }
	.kf-step { display: grid; grid-template-columns: 64px 1fr; column-gap: 16px; align-items: start; padding: 0 0 22px; }
	.kf-steps { grid-template-rows: none; }
	.kf-step { grid-row: auto; grid-template-rows: auto; justify-items: stretch; }
	.kf-step p { height: auto; }
	.kf-step h3 { align-self: start; }
	.kf-step__icon { grid-row: 1 / span 3; width: 64px; height: 64px; box-shadow: 0 0 0 6px var(--paper), 0 8px 18px -8px rgba(15,58,40,.6); }
	.kf-step__icon svg { width: 28px; height: 28px; }
	.kf-step:not(:last-child)::after { display: none; }
	.kf-step__no { margin-top: 4px; }
	.kf-step h3 { margin: 0 0 8px; }
	.kf-step--goal .kf-step__icon { box-shadow: 0 0 0 6px var(--paper), 0 0 0 7px var(--brass-l); }
	.kf-news__grid { grid-template-columns: 1fr; gap: 56px; }
	.kf-layout { grid-template-columns: 1fr; gap: 56px; }
	.kf-side { position: static; grid-template-columns: repeat(2, 1fr); }
	.kf-side__box:last-child { grid-column: 1 / -1; }
}

/* ---------- スマホ ---------- */
@media (max-width: 760px) {
	.kf-cta__in { padding: 64px 16px; }
	.kf-ch { gap: 10px; }
	.kf-ch__tel, .kf-ch__mail { grid-column: 1 / -1; min-height: 0; padding: 16px 18px; }
	.kf-ch__num { font-size: 28px; }
	.kf-ch__mini { padding: 14px 6px 12px; }
	.kf-ch__qr { width: 72px; height: 72px; }
	.kf-ch__qr img { width: 60px; height: 60px; }
	.kf-ch__logo { height: 72px; }
	.kf-ch__logo img { width: 84px; }
	.kf-ch__mini .kf-ch__t { font-size: 12px; }
	.kf-ch__btn { padding: 3px 10px; font-size: 11px; }
	.kf-ch__sp small { display: none; }
	.kf-ch__fax { text-align: left; }
	.kf-ch__fax span { display: block; margin: 0; }
	.kf-certs__in { padding-top: 40px; padding-bottom: 40px; }
	.kf-certs__list { grid-template-columns: 1fr; gap: 8px; }
	.kf-certs__list li { flex-direction: row; text-align: left; padding: 10px 16px; gap: 16px; }
	.kf-certs__img { flex: 0 0 56px; height: 56px; }
	.kf-certs__img img { max-width: 56px; max-height: 56px; }
	.kf-certs__list p { font-size: 14px; }
	.kf-certs__img img { max-width: 64px; max-height: 64px; }
	.kf-certs__list p { font-size: 11.5px; }
	.kf-certs__list small { font-size: 10px; }
	.kf-footer__top { grid-template-columns: 1fr; gap: 40px; padding-top: 56px; padding-bottom: 44px; }
	.kf-footer__nav ul, .kf-footer__nav .kf-footer__sub { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
	.kf-footer__sub li + li::before { display: none; }
	.kf-footer__nav a { display: block; line-height: 1.6; }
	.kf-footer__nav-in { gap: 16px; }
	.kf-footer__bottom-in { flex-direction: column-reverse; align-items: flex-start; }
	body.kf { font-size: 15.5px; padding-bottom: 62px; }
	.kf-in, .kf-util__in, .kf-header__in, .kf-hero__in, .kf-phead__in, .kf-cta__in { padding-left: 16px; padding-right: 16px; }
	.kf-util { display: none; }
	.kf-header__in { height: 64px; gap: 12px; }
	.kf-logo img { width: 168px; }
	.kf-header__act { display: none; }
	.kf-menu { margin-left: auto; }
	.kf-menu summary { width: 46px; height: 46px; }
	.kf-menu__panel { padding: 12px 16px 24px; }
	.kf-menu__panel ul { grid-template-columns: 1fr; }

	.kf-hero__in { padding-top: 36px; padding-bottom: 40px; gap: 32px; }
	.kf-hero__en { font-size: 11.5px; margin-bottom: 16px; }
	.kf-hero__catch { font-size: 14px; gap: 6px 8px; letter-spacing: .02em; margin-bottom: 14px; }
	.kf-hero__catch span { font-size: 11.5px; padding: 3px 8px; letter-spacing: .02em; }
	.kf-hero__title { font-size: min(25px, calc((100vw - 34px) / 14.4)); line-height: 1.6; letter-spacing: .02em; }
	.kf-content .kf-photos { grid-template-columns: 1fr; gap: 16px; }
	.kf-content .kf-photos--many { gap: 12px; }
	/* 3列以上の料金表などは、1行ずつの札に（列の見出しを添える）。先生の原稿の表の指定（幅・余白・横スクロール）より優先する（2026-10-13 #14） */
	.kf-content .kf-cards-wrap { overflow: visible !important; }
	.kf-content table.kf-cards { min-width: 0 !important; width: 100% !important; border: 0 !important; border-top: 2px solid var(--f) !important; }
	.kf-content table.kf-cards, .kf-content table.kf-cards > tbody, .kf-content table.kf-cards > thead, .kf-content table.kf-cards tr, .kf-content table.kf-cards td { display: block !important; }
	.kf-content table.kf-cards .kf-cards__head { display: none !important; }
	.kf-content table.kf-cards tr { padding: 12px 2px !important; border-bottom: 1px solid var(--line) !important; background: none !important; }
	.kf-content table.kf-cards td { border: 0 !important; padding: 1px 0 !important; text-align: left !important; background: none !important; width: auto !important; }
	.kf-content table.kf-cards td:first-child { font-weight: 700; margin-bottom: 4px; }
	.kf-content table.kf-cards td[data-label]:not([data-label=""])::before { content: attr(data-label); display: block; font-size: 11.5px; font-weight: 400; color: var(--sub); margin-top: 4px; }
	.kf-content .kf-photos--many figure { flex-basis: calc((100% - 12px) / 2); }
	.kf-dl__zip { display: block; margin: 0 0 2px; }
	.kf-content table.kf-price td, .kf-content .kf-dl__kv, .kf-content p.kf-dated, .kf-content p.kf-more__p, .kf-content .kf-prof__lab, .kf-content .kf-notes__t, .kf-content .kf-callout__t, .kf-content p.kf-stage__t { text-align: left !important; }
	.kf-hero__lead { font-size: 12.5px; margin-top: 16px; }
	.kf-hero__facts { margin-top: 24px; }
	.kf-hero__facts > div { padding: 14px 6px 12px 10px; }
	.kf-hero__facts dt { font-size: 10.5px; letter-spacing: 0; line-height: 1.5; }
	.kf-hero__facts dd { font-size: 12px; }
	.kf-hero__facts b { font-size: 34px; }
	.kf-hero__facts { grid-template-columns: 1fr 1.25fr 1fr; }
	.kf-hero__facts dd.kf-nowrap { white-space: nowrap; }
	.kf-hero__facts dd.kf-hero__sm { font-size: 10.5px; }
	.kf-hero__free { font-size: 12.5px; gap: 6px 10px; }
	.kf-hero__free span + span::before { margin-right: 10px; }
	.kf-hero__who { display: none; }
	.kf-hero__free span:last-child { flex-basis: 100%; }
	.kf-hero__free span:last-child::before { display: none; }
	.kf-diag__head { padding: 18px 18px 14px; }
	.kf-diag__title { font-size: 20px; }
	.kf-diag__body { padding: 18px 18px 20px; min-height: 0; }
	.kf-diag__q { font-size: 16.5px; }
	.kf-diag__opts button { padding: 12px 4px 10px; font-size: 13.5px; }
	.kf-diag__cta { grid-template-columns: 1fr; }
	.kf-diag__foot { padding: 12px 18px 14px; }

	.kf-sec { padding: 64px 0; }
	.kf-head { margin-bottom: 32px; }
	.kf-head--split { grid-template-columns: 1fr; gap: 14px; padding-bottom: 20px; }
	.kf-head__lead br { display: none; }
	.kf-head__title { font-size: 23px; }
	.kf-svc { grid-template-columns: 1fr; }
	.kf-svc li, .kf-svc li:nth-child(2n) { padding: 20px 0 22px; border-left: 0; display: grid; grid-template-columns: 36px 1fr; column-gap: 8px; }
	.kf-svc__no { grid-row: 1 / span 2; padding-top: 4px; }
	.kf-svc h3 { margin: 0 0 4px; font-size: 17px; }
	.kf-svc p { font-size: 13.5px; }
	.kf-more { text-align: left; margin-top: 28px; }
	.kf-why__photo { max-width: none; margin-right: 18px; }
	.kf-why__photo::before { inset: 14px -14px -14px 14px; }
	.kf-why__text { font-size: 14.5px; }
	.kf-reasons li { grid-template-columns: 52px 1fr; padding: 22px 0; }
	.kf-reasons__no { font-size: 32px; }
	.kf-reasons h3 { font-size: 17px; }
	.kf-reasons p { font-size: 14px; }
	.kf-step h3 { font-size: 17px; }
	.kf-flow__cta { margin-top: 24px; }
	.kf-flow__cta .kf-btn { flex: 1 1 100%; }
	.kf-cats { grid-template-columns: 1fr; }
	.kf-cat__body { padding: 18px 18px 20px; }
	.kf-list a { grid-template-columns: 1fr; gap: 0; padding: 13px 0; font-size: 14px; }
	.kf-snsbox { flex-direction: column; align-items: flex-start; }

	.kf-phead__in { padding-top: 16px; padding-bottom: 36px; }
	.kf-phead .kf-en { margin-top: 24px; }
	.kf-phead__title { font-size: 22px; }
	.kf-layout { padding-top: 36px; padding-bottom: 64px; gap: 48px; }
	.kf-side { grid-template-columns: 1fr; }
	.kf-content { font-size: 15.5px; line-height: 1.95; }
	.kf-content h2 { font-size: 20px; padding-left: 14px; }
	.kf-content h3 { font-size: 17.5px; }
	.kf-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	/* 2列の表は縦並びに（料金表・事務所概要など） */
	.kf-content table.kf-stack { display: block; width: 100% !important; min-width: 0 !important; border: 0; border-top: 2px solid var(--f); overflow: visible; font-size: 15px; }
	.kf-content .kf-stack tbody, .kf-content .kf-stack tr { display: block; width: 100%; }
	.kf-content .kf-stack tr { padding: 13px 2px 14px; border-bottom: 1px solid var(--line); }
	.kf-content .kf-stack td, .kf-content .kf-stack th { display: block; width: auto !important; height: auto !important; padding: 0 !important; border: 0 !important; background: none !important; text-align: justify !important; line-height: 1.7; }
	.kf-content .kf-stack tr > :first-child { font-size: 13.5px; font-weight: 700; color: var(--sub); }
	.kf-content .kf-stack tr > :first-child + * { margin-top: 3px; font-size: 15.5px; color: var(--ink); }
	.kf-content .kf-stack--price tr > :first-child { font-size: 14.5px; color: var(--ink); }
	.kf-content .kf-stack--price tr > :first-child + * { font-family: var(--ff-n), var(--ff-b); font-weight: 600; color: var(--f); letter-spacing: .02em; }
	.kf-content .kf-stack tr.kf-stack__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; padding: 7px 10px; background: var(--paper) !important; border-bottom: 1px solid var(--line); }
	.kf-content .kf-stack tr.kf-stack__head > * { font-size: 11.5px !important; font-weight: 700; color: var(--sub) !important; margin: 0 !important; font-family: var(--ff-b) !important; letter-spacing: 0; }
	.kf-content .kf-price tr > :first-child + * { margin-top: 8px; }
	.kf-content .kf-price--compact tr:not(.kf-stack__head) { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 4px; }
	.kf-content .kf-price--compact tr:not(.kf-stack__head) > :first-child + * { margin-top: 0; text-align: right !important; }
	.kf-content .kf-price--compact .kf-price__name { font-size: 14.5px; }
	.kf-content .kf-price--compact .kf-price__num { font-size: 18px; }
	.kf-content .kf-prof { grid-template-columns: 1fr; gap: 22px; padding: 20px 16px; }
	.kf-content .kf-prof__photo { max-width: 160px; margin: 0 auto; }
	.kf-content .kf-prof__quals li { border-radius: 8px; }
	.kf-content .kf-prof__story > li { padding-left: 72px; }
	.kf-content .kf-prof__story > li:not(:last-child)::before { left: 26px; }
	.kf-prof__y { width: 54px; font-size: 12.5px; }
	.kf-content .kf-prof__feats, .kf-content .kf-career { grid-template-columns: 1fr; }
	.kf-content .kf-career__hist li { padding-left: 68px; }
	.kf-content .kf-rsn__item { grid-template-columns: 1fr; padding: 20px 18px 20px 20px; }
	.kf-rsn__no { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; padding: 0; border: 0; text-align: left; }
	.kf-rsn__no b { font-size: 34px; }
	.kf-content .kf-rsn__body h3 { font-size: 17px; }
	.kf-content ul.kf-checks { grid-template-columns: 1fr; }
	.kf-faq__q, .kf-faq__a { padding: 13px 14px 13px 50px; }
	.kf-faq__m { left: 13px; top: 14px; }
	.kf-faq__q { font-size: 15.5px; }
	.kf-content .kf-work__head { padding: 14px 16px; gap: 12px; }
	.kf-work__no { font-size: 24px; padding-right: 12px; }
	.kf-content .kf-work__head h3 { font-size: 16px; }
	.kf-content .kf-work__body { padding: 16px 14px 14px; }
	.kf-content ul.kf-wl { grid-template-columns: 1fr; }
	.kf-content .kf-callout { padding: 16px 12px; }
	.kf-content .kf-callout__list li { padding: 10px 12px 10px 36px; }
	.kf-callout__m { left: 10px; }
	.kf-content .kf-stage { padding: 16px 14px 14px; }
	.kf-stage__no { position: static; display: inline-flex; width: auto; padding: 4px 10px; margin-bottom: 8px; font-size: 18px; }
	.kf-content ol.kf-flowlist { padding: 8px 14px 8px 12px; }
	.kf-content .kf-flowlist > li { padding: 12px 0 12px 50px; font-size: 15px; }
	.kf-content .kf-flowlist > li::before { width: 34px; height: 34px; font-size: 13px; }
	.kf-content .kf-flowlist > li:not(:last-child)::after { left: 17px; top: calc(50% + 17px); height: calc(100% - 34px + 1px); }
	.kf-content .kf-notes { padding: 12px 16px 8px; }
	.kf-content .kf-plan { padding: 16px 16px 2px; }
	.kf-content .kf-dl th { width: auto !important; white-space: normal; line-height: 1.7; }
	.kf-content .kf-dl th::before { display: none; }
	.kf-content .kf-dl tr > :first-child + * { margin-top: 6px; }
	.kf-dl__counts { grid-template-columns: 1fr; }
	.kf-dl__kv { gap: 2px 14px; }
	.kf-content .kf-price td { vertical-align: top; }
	.kf-price__num { font-size: 20px; }
	.kf-price__note { display: inline-block; margin: 0 0 0 .6em; white-space: normal; }
	.kf-price__note--sub { display: block; margin: 0; }
	.kf-content .alignleft, .kf-content .alignright { float: none; display: block; margin: 1em auto; }
	.kf-posts { grid-template-columns: 1fr; gap: 28px; }
	.kf-author { grid-template-columns: 48px 1fr; padding: 18px; }
	.kf-author img { width: 48px; height: 48px; }
	.kf-contact .form-table, .kf-contact .form-table tbody, .kf-contact .form-table tr, .kf-contact .form-table th, .kf-contact .form-table td { display: block; width: 100%; }
	.kf-contact .form-table th { padding: 16px 0 6px; border-bottom: 0; }
	.kf-contact .form-table td { padding: 0 0 16px; }
	.kf-contact .bt-submit, .kf-contact .bt-back { flex: 1 1 100%; }

	.kf-dock { display: grid; grid-template-columns: 1.15fr 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: #fff; box-shadow: 0 -4px 16px rgba(0,0,0,.12); padding-bottom: env(safe-area-inset-bottom); }
	.kf-dock a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 58px; text-decoration: none; font-weight: 700; font-size: 12px; letter-spacing: .04em; }
	.kf-dock svg { width: 20px; height: 20px; }
	.kf-dock__diag { background: var(--brass); color: var(--f) !important; }
	.kf-dock__tel { background: var(--f); color: #fff !important; }
	.kf-dock__mail { background: #fff; color: var(--f) !important; }
}

/* 印刷（ご要望③-5：メイン画像の部分が空白にならないよう、文字で出す） */
@media print {
	.kf-util, .kf-gnav, .kf-menu, .kf-dock, .kf-header__act, .kf-skip, .kf-map, .kf-snsbox, .kf-diag, .kf-side { display: none !important; }
	body.kf { font-size: 10.5pt; padding: 0; }
	.kf-header { position: static; }
	.kf-hero, .kf-movie, .kf-cta, .kf-phead { background: #fff !important; color: var(--ink) !important; }
	.kf-hero::before, .kf-movie::before, .kf-cta::before, .kf-phead::before { display: none; }
	.kf-hero__in, .kf-layout { grid-template-columns: 1fr; }
	.kf-hero__title em, .kf-hero__facts b { color: var(--f); }
	.kf-hero__facts > div, .kf-hero__facts { border-color: var(--line); }
	.kf-hero__lead, .kf-hero__facts dt, .kf-hero__facts dd, .kf-hero__free, .kf-hero__free span, .kf-hero__who, .kf-hero__who small, .kf-hero__catch, .kf-hero__en, .kf-cta__body, .kf-cta__facts, .kf-cta__facts b, .kf-cta__title, .kf-phead__title, .kf-crumbs, .kf-crumbs a, .kf-movie__text p { color: var(--ink) !important; }
	.kf-hero__catch { display: none !important; }
	.kf-header__catch { display: flex !important; }
	.kf-sec { padding: 24px 0; }
	a { text-decoration: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* 幅の狭いスマホ（360px以下）：ヒーロー上部の英字ラベルを1行に */
@media (max-width: 360px) {
	.kf-hero__en { gap: 10px; font-size: 10.5px; letter-spacing: .06em; white-space: nowrap; }
	.kf-hero__en span { letter-spacing: .2em; padding-right: 10px; }
}

/* 見出しは共通の textfill.css で左寄せ＋行の長さをそろえる。外側の枠で中央にしている見出しは、ここで中央を明示（server-admin #8、2026-10-09） */
.kf-head--center .kf-head__title, .kf-step h3 { text-align: center; }
@media (max-width: 760px) { .kf-step h3 { text-align: left; } }
