/* AURA v3.3.6. Shared page components followed by the JamesEdition design system. */
/* Windows の游ゴシックは標準の太さが細く出る。本文＝Medium、太字＝Bold を名前で割り当てる（Mac にも游ゴシックはあるが、ヒラギノが先に当たる） */
@font-face { font-family: "Aura Yu Gothic"; src: local("Yu Gothic Medium"), local("YuGothic-Medium"); font-weight: 100 500; }
@font-face { font-family: "Aura Yu Gothic"; src: local("Yu Gothic Bold"), local("YuGothic-Bold"); font-weight: 600 900; }
:root {
  --ink: #1A1A1C;
  --text: #222224;
  --accent: #735836;          /* 白地 6.61:1 */
  --bronze: #9A7A52;
  --brass: #C9AD82;
  --panel: #F3F1EC;
  --kline: #DCD8D1;           /* 手本の #D8D8D8 を暖色に */
  --muted: #6B665E;           /* 白地 5.70:1 */
  /* 書体（2026-09-26 A＝端末の書体）：英数字 Helvetica Neue／Arial、和文 iPhone・Mac＝ヒラギノ角ゴ、Windows＝游ゴシック（中太と太字を下の @font-face で指名）、
     どちらも無い端末だけ BIZ UDPゴシック（Google Fonts）。見出しの約物詰め（palt）が効くのはヒラギノ・游ゴシック */
  --font: "Helvetica Neue", Helvetica, Arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Aura Yu Gothic", "BIZ UDPGothic", Meiryo, sans-serif;
  --ja: var(--font);
  --label: var(--font);
  --w: 1440px;
  --gut: clamp(20px, 4.45vw, 64px);   /* 1440 で 64px（手本の余白） */
  --hd: 104px;
  --r: 0px;
}
body.v3 { color: var(--text); font-family: var(--font); }
.v3 input, .v3 select, .v3 textarea, .v3 button { font-family: var(--font); }
html[lang="ja"] body.v3 { font-size: 15px; line-height: 1.85; }
.v3 h1, .v3 h2, .v3 h3 { font-feature-settings: "palt" 1; }
.v3 [data-wrap], .v3 p { text-wrap: pretty; }
/* 表のます目は語の途中で割らない（狭い列で「不動産取得｜税」になっていた）。幅の計算に語の長さを入れる */
html[lang="ja"] .v3 td[data-wrap], html[lang="ja"] .v3 th[data-wrap] { overflow-wrap: break-word; }
.k-wrap { max-width: var(--w); margin: 0 auto; padding-inline: var(--gut); }
.v3 .wrap { max-width: var(--w); padding-inline: var(--gut); }
.num, .k-price, .k-dprice { font-variant-numeric: tabular-nums lining-nums; }

/* ---------- ヘッダー（手本 header：左にロゴと一言、右上に小さな段、右下にメニュー） ---------- */
.kh { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--kline); }
.kh-in { max-width: var(--w); margin: 0 auto; padding-inline: var(--gut); height: var(--hd); display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; }
.kh-logo img { height: 60px; width: auto; display: block; }
.kh-tag { margin: 0 0 0 22px; padding-left: 20px; border-left: 1px solid var(--kline); font-size: 11.5px; line-height: 1.6; color: var(--muted); white-space: nowrap; }
.kh-right { justify-self: end; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.kh-util { display: flex; align-items: center; gap: 20px; font-size: 12.5px; color: var(--muted); }
.kh-stock b { color: var(--ink); font-weight: 600; }
.kh-lic { white-space: nowrap; }
/* 言語：文字だけの「JP ／ EN」（2026-09-26 本人「ENとJPでよい」「箱のスイッチの見せ方は違う」）。今の言語に下線 */
.kh-sw { display: inline-flex; align-items: center; }
.kh-sw a { display: inline-flex; align-items: center; height: 34px; padding: 0 7px; font-size: 13px; letter-spacing: .02em; color: var(--muted); text-decoration: none; transition: color .15s; }
.kh-sw a + a::before { content: ""; width: 1px; height: 12px; margin: 0 7px 0 -7px; background: var(--kline); }
.kh-sw a[aria-current] { color: var(--ink); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; }
.kh-sw a:not([aria-current]):hover { color: var(--ink); }
.kh-end { display: flex; align-items: center; gap: 10px; }
.kh-sw-sp { display: none; }
.kh-cta { display: inline-flex; align-items: center; height: 34px; box-sizing: border-box; background: var(--ink); color: #fff; text-decoration: none; padding: 0 16px; font-size: 13px; font-weight: 500; transition: background .2s; }
.kh-cta:hover { background: #000; }
.kh-nav { display: flex; gap: 32px; }
.kh-nav a { text-decoration: none; font-size: 15px; font-weight: 500; color: var(--text); padding: 2px 0; white-space: nowrap; transition: color .2s; }
.kh-nav a:hover { color: var(--accent); }
.kh-nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--ink); }
.kh-nav-cta { display: none; }
.v3 .empty[data-show="saved"] .v[data-v="saved"] { display: block; }
.kh-menu { display: none; height: 34px; box-sizing: border-box; border: 1px solid var(--ink); background: #fff; padding: 0 14px; font: 500 14px var(--font); cursor: pointer; color: var(--ink); }

/* ---------- 共通の部品 ---------- */
.k-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 30px; background: var(--ink); color: #fff; border: 1px solid var(--ink); font-size: 15px; font-weight: 600; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .12s; }
.k-btn:hover { background: #000; }
.k-btn:active { transform: translateY(1px); }
.k-btn-line { background: transparent; color: var(--ink); }
.k-btn-line:hover { background: var(--ink); color: #fff; }
.k-btn-light { background: #fff; color: var(--ink); border-color: #fff; }
.k-btn-light:hover { background: var(--panel); border-color: var(--panel); }
.k-btn-block { width: 100%; }
.k-title { position: relative; }
.k-title h2, .k-title h1 { margin: 0; font-size: clamp(28px, 2.9vw, 42px); line-height: 1.2; font-weight: 600; letter-spacing: -.015em; }
html[lang="ja"] .k-title h2, html[lang="ja"] .k-title h1 { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.45; letter-spacing: 0; }
.k-sec { padding-block: clamp(72px, 7.3vw, 105px); }
.k-sec-panel { background: var(--panel); }
.k-sec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 40px; margin-bottom: 40px; }
.k-sec-aside { margin: 0; max-width: 32em; color: var(--muted); font-size: 14.5px; }
.k-count { margin: 12px 0 0; font-size: 14px; color: var(--muted); }
.k-count b { color: var(--ink); font-size: 20px; font-weight: 600; margin-right: 2px; }
.k-more { font-family: var(--label); font-size: 15px; font-weight: 500; color: var(--ink); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid var(--ink); white-space: nowrap; }
.k-more:hover { color: var(--accent); border-color: var(--accent); }
.k-src { margin-top: 28px; font-size: 12.5px; color: var(--muted); }
.k-src .licenses { margin-top: 12px; }
.k-tag { display: inline-block; font-family: var(--label); font-size: 11.5px; font-weight: 500; line-height: 1; letter-spacing: .02em; padding: 5px 9px; background: var(--ink); color: #fff; }
.k-tag-b { background: var(--accent); }
.k-tag-o { background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.k-flag { display: inline-block; margin-left: 8px; padding: 1px 7px; font-size: 11.5px; line-height: 1.7; color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); vertical-align: 1px; }
.k-noimg { display: grid; place-items: center; width: 100%; height: 100%; background: var(--panel); color: var(--muted); font-size: 13px; text-align: center; }
.k-noimg b { display: block; margin-bottom: 4px; color: var(--ink); font-size: 15px; font-weight: 600; }
.k-noimg > span { padding: 0 24px; }

/* ---------- トップ：第一画面（手本 jumbotron：左に墨の板、右に写真、入口のタイル） ---------- */
.k-hero { position: relative; height: clamp(600px, 51vw, 736px); background: #fff; overflow: hidden; }
.k-hero-panel { position: absolute; left: 0; top: 56px; bottom: 0; width: 50%; background: var(--ink); z-index: 1; }
.k-hero-img { position: absolute; left: 30%; right: 0; top: 0; bottom: 0; margin: 0; z-index: 0; }
.k-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.k-hero-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(17,17,19,.55) 0%, rgba(17,17,19,.2) 35%, rgba(17,17,19,0) 60%), linear-gradient(0deg, rgba(17,17,19,.55) 0%, rgba(17,17,19,0) 28%); }
.k-hero-img figcaption { position: absolute; right: var(--gut); bottom: 18px; z-index: 2; margin: 0; font-size: 12.5px; color: rgba(255,255,255,.85); }
.k-hero-img figcaption a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.7); }
.k-hero-in { position: relative; z-index: 2; max-width: var(--w); margin: 0 auto; height: 100%; padding: 104px var(--gut) 52px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; }
.k-hero-kicker { margin: 0 0 16px; font-size: 14px; color: rgba(255,255,255,.78); }
.k-hero h1 { margin: 0; font-size: clamp(38px, 4.2vw, 60px); line-height: 1.2; font-weight: 600; letter-spacing: -.02em; max-width: min(12em, calc(min(100vw, 1440px) / 2 - var(--gut) - 40px)); }
html[lang="ja"] .k-hero h1 { font-size: clamp(34px, 3.8vw, 56px); line-height: 1.34; letter-spacing: .01em; }
.k-hero-sub { margin: 20px 0 0; max-width: min(30em, calc(min(100vw, 1440px) / 2 - var(--gut) - 40px)); font-size: 15.5px; line-height: 1.9; color: rgba(255,255,255,.86); }
.k-tiles { display: flex; gap: 12px; margin-top: 34px; width: calc(min(100vw, 1440px) / 2 - var(--gut) - 40px); }
.k-tile { position: relative; display: grid; align-content: start; gap: 2px; flex: 1 1 0; min-width: 0; min-height: 108px; padding: 16px 18px 16px; background: #fff; color: var(--ink); text-decoration: none; transition: background .2s, transform .2s; }
.k-tile:hover { background: var(--panel); }
.k-tile b { font-size: 18px; font-weight: 600; line-height: 1.4; }
.k-tile-d { font-size: 12px; color: var(--muted); line-height: 1.5; }
.k-tile-n { margin-top: 8px; font-size: 14px; font-weight: 600; color: var(--accent); line-height: 1.4; padding-right: 22px; }
.k-tile-zero .k-tile-n { color: var(--muted); font-weight: 500; font-size: 12.5px; }
.k-hero-stock { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 18px 0 0; max-width: calc(min(100vw, 1440px) / 2 - var(--gut) - 40px); font-size: 12.5px; color: rgba(255,255,255,.72); }
.k-hero-stock b { color: #fff; font-weight: 600; }
.k-hero-stock a { color: #fff; }
.k-tiles-h { margin: 32px 0 0; display: flex; align-items: baseline; gap: 12px; font-size: 12.5px; color: rgba(255,255,255,.72); }
.k-tiles-h b { font-size: 15px; font-weight: 600; color: #fff; }
.k-tiles-h + .k-tiles { margin-top: 12px; }

@keyframes k-in { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }
@keyframes k-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.k-hero-img img { animation: k-in 1.6s cubic-bezier(.2,.7,.2,1) both; }
.k-hero-in > * { animation: k-up .9s cubic-bezier(.2,.7,.2,1) both; }
.k-hero-in > :nth-child(2) { animation-delay: .08s; }
.k-hero-in > :nth-child(3) { animation-delay: .16s; }
.k-hero-in > :nth-child(4) { animation-delay: .24s; }
.k-hero-in > :nth-child(5) { animation-delay: .32s; }

/* ---------- 物件カード（手本 property-card：写真4:3・種別の札・価格・面積・名前・所在地・矢印） ---------- */
.k-cards { display: grid; gap: 36px 28px; }
.k-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.k-card { position: relative; display: flex; flex-direction: column; background: #fff; box-shadow: 0 2px 12px rgba(17,17,19,.1); transition: box-shadow .25s; }
.k-card:hover { box-shadow: 0 8px 28px rgba(17,17,19,.16); }
.k-card-img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--panel); text-decoration: none; }
.k-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.k-card:hover .k-card-img img { transform: scale(1.03); }
.k-tags { position: absolute; left: 8px; top: 8px; display: flex; gap: 4px; }
.k-card-body { position: relative; display: flex; flex-direction: column; flex: 1; padding: 20px 24px 24px; }
.k-price { margin: 0; font-size: 24px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--ink); }
.k-price .u { font-size: 14px; font-weight: 600; margin-left: 2px; letter-spacing: 0; }
.k-meta { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 10px 0 0; font-size: 14px; font-weight: 500; color: var(--text); }
.k-meta span + span::before { content: ""; display: inline-block; width: 1px; height: 12px; margin: 0 12px; background: var(--kline); vertical-align: -1px; }
.k-meta .u { font-size: 12px; margin-left: 1px; }
.k-card h3 { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--kline); font-size: 16px; line-height: 1.5; font-weight: 600; }
.k-card h3 a { text-decoration: none; }
.k-card h3 a::after { content: ""; position: absolute; inset: 0; }
.k-loc { margin: 4px 0 0; font-size: 13.5px; color: var(--muted); line-height: 1.6; }
.k-st { margin: 2px 0 0; padding-right: 28px; font-size: 13px; color: var(--muted); line-height: 1.6; }

.k-save { position: absolute; right: 8px; top: 8px; z-index: 3; font: 500 12px/1 var(--label); padding: 7px 10px; background: rgba(255,255,255,.94); color: var(--ink); border: 0; box-shadow: inset 0 0 0 1px var(--kline); cursor: pointer; transition: background .2s, color .2s; }
.k-save:hover { background: #fff; box-shadow: inset 0 0 0 1px var(--ink); }
.k-save .on { display: none; }
.k-save[aria-pressed="true"] { background: var(--ink); color: #fff; box-shadow: none; }
.k-save[aria-pressed="true"] .on { display: inline; }
.k-save[aria-pressed="true"] .off { display: none; }
.k-save-d { position: static; margin-left: 8px; }
.kh-saved { color: var(--muted); text-decoration: none; white-space: nowrap; }
.kh-saved b { display: inline-block; min-width: 18px; margin-left: 2px; padding: 1px 5px; font-weight: 600; text-align: center; color: var(--ink); box-shadow: inset 0 0 0 1px var(--kline); }
.kh-saved:hover { color: var(--ink); }
.kh-nav-saved { display: none; }

/* ---------- 種別から探す（手本 Buy のタイル：写真の上に白い札） ---------- */
.k-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.k-type { position: relative; display: block; text-decoration: none; color: var(--ink); overflow: hidden; }
.k-type img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.k-type:hover img { transform: scale(1.03); }
.k-type-cap { position: absolute; left: 0; bottom: 0; display: grid; gap: 2px; min-width: 64%; max-width: 88%; padding: 20px 24px 18px; background: #fff; }
.k-type-cap b { font-size: 22px; font-weight: 600; line-height: 1.35; }
.k-type-cap .num { font-size: 14px; font-weight: 600; color: var(--accent); }
.k-type-go { margin-top: 6px; font-family: var(--label); font-size: 14px; font-weight: 500; }
.k-type-note { position: absolute; right: 10px; top: 10px; padding: 3px 8px; font-size: 11px; color: #fff; background: rgba(17,17,19,.55); }

/* ---------- 海外からの購入を考える（墨の節。v2 の guide4 と費用の約束） ---------- */
.k-dark { background: var(--ink); color: #fff; }
.k-dark .k-sec-aside { color: rgba(255,255,255,.72); }
.k-dark .k-label { color: var(--brass); }
.k-sec-side { max-width: 34em; display: grid; gap: 14px; justify-items: start; }
.k-label { margin: 0 0 14px; font-size: 13px; font-weight: 600; color: var(--accent); }
.k-g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.2); }
.k-g4 a { display: flex; flex-direction: column; gap: 8px; padding: 28px 24px 30px 0; color: #fff; text-decoration: none; border-right: 1px solid rgba(255,255,255,.14); }
.k-g4 a + a { padding-left: 24px; }
.k-g4 a:last-child { border-right: 0; }
.k-g4 b { font-size: 19px; font-weight: 600; line-height: 1.45; }
.k-g4 span[data-wrap] { font-size: 14px; color: rgba(255,255,255,.72); }
.k-g4 .k-go-t { margin-top: auto; padding-top: 6px; font-family: var(--label); font-weight: 500; color: var(--brass); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.k-g4 a:hover b { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.k-promise { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px; border-top: 1px solid rgba(255,255,255,.2); }
.k-promise div { padding: 22px 24px 0 0; }
.k-promise div + div { padding-left: 24px; border-left: 1px solid rgba(255,255,255,.14); }
.k-promise b { display: block; font-size: 16px; margin-bottom: 6px; }
.k-promise p { margin: 0; font-size: 14px; color: rgba(255,255,255,.72); }

/* ---------- 選ばれる理由（手本 about-section：大きな番号・写真・数字の札） ---------- */
.k-about-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 64px; align-items: end; margin-bottom: 56px; }
.k-about-sub p { margin: 0 0 16px; color: var(--muted); font-size: 15px; }
.k-feats { display: grid; gap: 32px; }
.k-feat { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 0 48px; align-items: end; }
.k-feat-img { margin: 0; }
.k-feat-img img { width: 100%; aspect-ratio: 5 / 2; object-fit: cover; }
.k-feat-card { display: flex; flex-direction: column; padding: 0 0 4px; border-bottom: 1px solid var(--kline); }
.k-feat-lbl { order: -1; }
.k-feat-fig { margin: 0; font-size: 44px; line-height: 1.1; font-weight: 600; letter-spacing: -.01em; color: var(--ink); }
.k-feat-fig small { font-size: 16px; font-weight: 400; letter-spacing: 0; margin-left: 4px; color: var(--ink); }
.k-feat-lbl { margin: 0 0 6px; font-size: 13px; color: var(--muted); }
.k-feat-d { margin: 10px 0 0; max-width: 24em; font-size: 14.5px; line-height: 1.8; }

/* ---------- ガイドの入口（手本 Buy & Invest Guide） ---------- */
.k-guide { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.k-guide a { position: relative; display: block; overflow: hidden; color: #fff; text-decoration: none; min-height: 380px; background: var(--ink); }
.k-guide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.k-guide a:hover img { transform: scale(1.03); }
.k-guide-cap { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 6px; padding: 72px 28px 26px; background: linear-gradient(180deg, rgba(17,17,19,0) 0%, rgba(17,17,19,.84) 60%); }
.k-guide-cap b { font-size: 22px; font-weight: 600; line-height: 1.4; }
.k-guide-cap span { font-size: 14px; line-height: 1.75; color: rgba(255,255,255,.86); }
.k-guide-note { position: absolute; right: 10px; top: 10px; z-index: 1; padding: 3px 8px; font-size: 11px; color: #fff; background: rgba(17,17,19,.55); }
.k-guide-cap .k-go-t { margin-top: 6px; font-family: var(--label); font-weight: 500; color: #fff; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }

/* ---------- お知らせ（手本 news） ---------- */
.k-news .k-title { margin-bottom: 28px; }
.k-news-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.k-news-list li { display: grid; grid-template-columns: 120px 88px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--kline); }
.k-news-list time { font-size: 14px; color: var(--muted); font-variant-numeric: tabular-nums; }
.k-news-cat { justify-self: start; font-size: 12px; padding: 2px 10px; box-shadow: inset 0 0 0 1px var(--kline); color: var(--muted); }
.k-news-list a { font-size: 15.5px; text-decoration: none; }
.k-news-list a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- 相談の帯（手本 Need Help? Please contact us.） ---------- */
.k-help { position: relative; overflow: hidden; background: var(--ink); color: #fff; text-align: center; padding: clamp(72px, 7vw, 104px) var(--gut); }
.k-help-bg { position: absolute; inset: 0; }
.k-help-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .2; }
.k-help-in { position: relative; max-width: 760px; margin: 0 auto; }
.k-help h2 { margin: 0 0 14px; font-size: clamp(28px, 3vw, 44px); font-weight: 600; line-height: 1.3; letter-spacing: -.01em; }
.k-help p { margin: 0 auto 28px; max-width: 34em; font-size: 15.5px; line-height: 1.9; color: rgba(255,255,255,.84); }
.k-help .k-btn { min-width: 280px; }
.k-help-k { margin: 0 0 12px !important; font-size: 13px !important; color: var(--brass) !important; }
.k-help .k-help-note { margin: 16px 0 0; font-size: 13px; color: rgba(255,255,255,.7); }

/* ---------- 探すの一覧（手本 grandFooter のリンク集。件数つき） ---------- */
.k-dir { padding-block: 56px 48px; border-bottom: 1px solid var(--kline); }
.k-dir .k-wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.k-dir h2 { margin: 0 0 10px; font-size: 15px; font-weight: 600; }
.k-dir ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.k-dir li { border-bottom: 1px solid var(--kline); }
.k-dir li a, .k-dir li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.k-dir li a { flex: 1; padding: 9px 0; color: var(--accent); font-weight: 500; text-decoration: none; }
.k-dir li a:hover { text-decoration: underline; text-underline-offset: 4px; }
.k-dir li > span { padding: 9px 0; }
.k-dir li span:last-child { color: var(--muted); font-variant-numeric: tabular-nums; }
.k-dir-st { color: var(--text); }

/* ---------- フッター（白） ---------- */
.kf { padding-block: 48px 28px; font-size: 13.5px; color: var(--muted); }
.kf .k-wrap { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 32px 48px; }
.kf-brand img { height: 52px; width: auto; margin-bottom: 14px; }
.kf-brand p { margin: 0; line-height: 1.8; }
.kf-brand b { color: var(--ink); font-weight: 600; }
.kf-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.kf-nav h2 { margin: 0 0 10px; font-size: 13px; font-weight: 600; color: var(--ink); }
.kf-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.kf-nav a { color: var(--text); text-decoration: none; }
.kf-nav a:hover { color: var(--accent); }
.kf-base { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-top: 20px; border-top: 1px solid var(--kline); font-size: 12.5px; }

/* ---------- 一覧（手本 propertySearchV2 のリスト表示） ---------- */
.k-bar { position: sticky; top: var(--hd); z-index: 40; background: #fff; box-shadow: 0 4px 12px rgba(17,17,19,.08); }
.k-bar .k-wrap { display: flex; align-items: center; gap: 12px 28px; min-height: 74px; padding-block: 10px; }
.k-bar .grp { display: flex; align-items: center; gap: 10px; }
.k-bar .grp > span { font-size: 13px; font-weight: 600; color: var(--muted); }
.v3 .seg { border-radius: 0; border-color: rgba(26,26,28,.3); }
.v3 .seg span { padding: 10px 16px; font-size: 14px; font-weight: 500; }
.v3 .seg input:checked + span { background: var(--ink); }
.k-bar select { margin-left: auto; font: 500 14px var(--font); padding: 10px 34px 10px 14px; border: 1px solid rgba(26,26,28,.3); border-radius: 0; background: #fff; color: var(--text); }
.v3 .crumb { padding-top: 22px; }
.k-lhead { padding: 14px 0 32px; }
.k-lhead h1 { margin: 0; font-size: clamp(26px, 2.1vw, 30px); line-height: 1.3; font-weight: 600; }
.k-empty { grid-column: 1 / -1; }
.v3 .empty { max-width: none; border-top: 1px solid var(--ink); }
.v3 .empty .acts { display: flex; gap: 10px; flex-wrap: wrap; }
.k-ltail { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin: 64px 0 88px; padding-top: 28px; border-top: 1px solid var(--ink); }
.k-ltail h2 { margin: 0 0 4px; font-size: 20px; font-weight: 600; }
.k-ltail p { margin: 0; color: var(--muted); }

/* ---------- 物件詳細（手本 detail：左に写真の列、右に情報の列） ---------- */
.k-detail { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: 0 44px; align-items: start; padding-top: 16px; padding-bottom: 88px; }
.k-dleft { position: sticky; top: calc(var(--hd) + 16px); }
.k-gal-tools { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.k-chip { font-family: var(--label); font-size: 14px; font-weight: 500; padding: 7px 12px; box-shadow: inset 0 0 0 1px var(--kline); color: var(--text); }
.k-chip-off { color: var(--muted); }
.k-gal .gal { display: block; }
.k-gal .gal .main { border-radius: 0; background: var(--panel); }
.k-gal .gal .main img { aspect-ratio: 3 / 2; height: auto; }
.k-gal-sub { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.k-gal-sub img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.k-gal .th button { border-radius: 0; }
.k-gal .th img { width: 64px; }
.k-gal-note { margin: 10px 0 0; font-size: 12.5px; color: var(--muted); }
.k-noimg-lg { aspect-ratio: 3 / 2; height: auto; font-size: 15px; }
.k-dright { padding-top: 6px; }
.k-dtags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.k-dtag { font-size: 17px; font-weight: 600; padding-bottom: 2px; margin-right: 6px; box-shadow: inset 0 -2px 0 var(--ink); }
.k-did { margin-left: auto; font-size: 13px; color: var(--muted); }
.k-dright h1 { margin: 16px 0 6px; font-size: clamp(26px, 2.2vw, 32px); line-height: 1.35; font-weight: 600; letter-spacing: -.01em; }
.k-daddr { margin: 0; font-size: 15px; }
.k-dline { margin: 6px 0 0; font-size: 15px; color: var(--muted); }
.k-dlabel { margin: 16px 0 0; font-size: 12.5px; color: var(--muted); }
.k-dkind { margin-left: 12px; color: var(--muted); }
.k-dprice { margin: 2px 0 4px; font-size: clamp(32px, 2.6vw, 38px); line-height: 1.15; font-weight: 600; letter-spacing: -.02em; color: var(--ink); }
.k-dprice .u { font-size: 16px; letter-spacing: 0; margin-left: 2px; }
.k-dright > .cost { margin: 0; }
.k-ask { margin: 26px 0 36px; padding: 24px 28px 22px; box-shadow: inset 0 0 0 1px var(--kline); }
.k-ask-note { margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid var(--kline); font-size: 12.5px; color: var(--muted); }
.k-ask-h { margin: 0 0 4px; font-size: 20px; font-weight: 600; }
.k-ask-d { margin: 0 0 16px; font-size: 13.5px; color: var(--muted); }
.k-ask-d:last-child { margin: 16px 0 0; }
.k-ask-d b { color: var(--ink); }
.k-ask-d a { color: var(--accent); font-weight: 600; text-decoration: none; }
.k-dtabs { position: sticky; top: var(--hd); z-index: 20; display: flex; background: #fff; border-top: 1px solid var(--kline); border-bottom: 1px solid var(--kline); }
.k-dtabs a { flex: 1; text-align: center; padding: 15px 8px; font-size: 14.5px; font-weight: 500; text-decoration: none; color: var(--text); border-right: 1px solid var(--kline); white-space: nowrap; transition: background .2s; }
.k-dtabs a:last-child { border-right: 0; }
.k-dtabs a:hover { background: var(--panel); }
.k-dsec { padding: 44px 0 4px; scroll-margin-top: calc(var(--hd) + 64px); }
.k-dsec h2 { margin: 0 0 20px; font-size: 24px; line-height: 1.4; font-weight: 600; }
.k-dsec > p { margin: 0 0 14px; }
.k-lede { font-size: 17px; line-height: 1.9; }
.k-h3 { margin: 32px 0 12px; font-size: 17px; font-weight: 600; }
.k-dcards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.k-dcard { padding: 18px 0 20px; border-top: 2px solid var(--kline); }
.k-dcard h3 { margin: 0 0 6px; font-size: 13.5px; font-weight: 600; color: var(--muted); }
.k-dcard > div { font-size: 15.5px; line-height: 1.7; }
.k-dl { margin: 0; border-top: 2px solid var(--ink); }
.k-dl > div { display: grid; grid-template-columns: 10.5em minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--kline); font-size: 14.5px; }
html[lang="en"] .k-dl > div { grid-template-columns: 13em minmax(0, 1fr); }
.k-dl dt { color: var(--muted); }
.k-dl dd { margin: 0; }
.k-notes ul { margin: 0; padding-left: 1.15em; font-size: 13.5px; color: var(--muted); }
.k-notes li { margin: 5px 0; }
.k-similar { border-top: 1px solid var(--kline); }
.k-similar .k-title { margin-bottom: 36px; }

/* 相談の送信で失敗したとき */
.send-err { margin: 12px 0 0; color: #9B2C2C; font-size: 14px; }

/* ---------- v2 のページ（ガイド・REFORMA・会社・相談など）を v3 の見た目に ---------- */
.v3 .h-sec, .v3 .h-display { font-weight: 600; letter-spacing: -.01em; }
html[lang="ja"] .v3 .h-sec { letter-spacing: 0; }
.v3 .kicker { color: var(--accent); font-weight: 500; }
.v3 .kicker::before { content: none; display: none; }
.v3 .ink .kicker { color: var(--brass); }
.v3 .btn { border-radius: 0; }
.v3 .btn-primary { background: var(--ink); color: #fff; }
.v3 .btn-primary:hover { background: #000; }
.v3 .tl { color: var(--accent); }
.v3 .band-ivory { background: var(--panel); }
.v3 .panel, .v3 .done, .v3 .ctx, .v3 .story-end { border-radius: 0; }
.v3 .lead2 figure img, .v3 .story-card img, .v3 .life img, .v3 .gal .side img, .v3 .show .media .main { border-radius: 0; }
.v3 .gnav { order: 2; }
.v3 .glayout { grid-template-columns: minmax(0, 1fr) 260px; }
.v3 .ft-table, .v3 .costs { border-top-color: var(--ink); }

/* ---------- 狭い画面 ---------- */
@media (max-width: 1240px) {
  .kh-tag, .kh-lic { display: none; }
  .kh-nav { gap: 22px; }
}
@media (max-width: 1080px) {
  .kh-in { grid-template-columns: auto minmax(0, 1fr) auto; }
  .kh-right { gap: 0; }
  .kh-stock { display: none; }
  .kh-nav { display: none; }
  .kh-nav.open { display: grid; position: absolute; top: var(--hd); left: 0; right: 0; background: #fff; padding: 8px var(--gut) 20px; gap: 0; border-bottom: 1px solid var(--kline); box-shadow: 0 12px 24px rgba(17,17,19,.08); }
  .kh-nav.open a { padding: 14px 0; border-bottom: 1px solid var(--kline); }
  .kh-nav.open .kh-nav-cta { display: block; margin-top: 14px; padding: 14px; text-align: center; background: var(--ink); color: #fff; border-bottom: 0; }
  .kh-nav.open .kh-nav-saved { display: block; }
  .kh-saved { display: none; }
  .kh-menu { display: inline-block; margin-left: 16px; }
  .k-cards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-feat { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .k-dir .k-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-detail { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .k-dleft { position: static; }
  .k-bar .k-wrap { flex-wrap: wrap; }
  .k-bar select { margin-left: 0; }
}
@media (max-width: 900px) {
  .k-hero { height: auto; }
  .k-hero-panel { top: 0; width: 100%; background: rgba(17,17,19,.55); }
  .k-hero-img { left: 0; }
  .k-hero-in { height: auto; padding-top: 88px; padding-bottom: 36px; }
  .k-hero h1, .k-hero-sub, .k-hero-stock { max-width: none; }
  .k-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; width: auto; }
  .k-tile { width: auto; min-height: 0; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: baseline; padding: 14px 44px 14px 16px; }
  .k-tile .k-tile-d { grid-column: 2; }
  .k-tile .k-tile-n { grid-column: 1 / -1; margin-top: 2px; padding-right: 0; }
  .k-hero-img figcaption { position: static; padding: 0 var(--gut) 0; }
  .k-sec-head { flex-direction: column; align-items: flex-start; }
  .k-about-head { grid-template-columns: minmax(0, 1fr); }
  .k-types, .k-guide { grid-template-columns: minmax(0, 1fr); }
  .k-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-g4 a:nth-child(2) { border-right: 0; }
  .k-g4 a:nth-child(3) { padding-left: 0; }
  .k-g4 a:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.14); }
  .k-promise { grid-template-columns: minmax(0, 1fr); }
  .k-promise div + div { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.14); margin-top: 18px; }
  .k-guide a { min-height: 300px; }
  .k-news-list li { grid-template-columns: auto minmax(0, 1fr); }
  .k-news-list a { grid-column: 1 / -1; }
  .kf .k-wrap { grid-template-columns: minmax(0, 1fr); }
  .v3 .glayout { grid-template-columns: minmax(0, 1fr); }
  .v3 .gnav { order: 0; }
}
@media (max-width: 560px) {
  :root { --hd: 64px; }
  .kh-logo img { height: 42px; }
  .kh-util { display: none; }
  .kh-menu { margin-left: 0; }
  .kh-sw-sp { display: inline-flex; }
  .kh-sw-sp a { height: 40px; padding: 0 7px; font-size: 13.5px; }
  .kh-menu { height: 40px; }
  .k-cards-3 { grid-template-columns: minmax(0, 1fr); }
  .k-dir .k-wrap { grid-template-columns: minmax(0, 1fr); }
  .k-g4 { grid-template-columns: minmax(0, 1fr); }
  .k-g4 a { border-right: 0 !important; padding-left: 0 !important; border-top: 1px solid rgba(255,255,255,.14); }
  .k-dcards { grid-template-columns: minmax(0, 1fr); }
  .k-dl > div, html[lang="en"] .k-dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .k-dtabs a { font-size: 13px; padding: 13px 4px; }
  .k-did { margin-left: 0; width: 100%; }
  .k-bar .grp { width: 100%; }
  .k-bar .grp .seg { flex: 1; }
  .v3 .seg span { padding: 10px 6px; font-size: 13px; }
  .k-help .k-btn { min-width: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .k-card-img img, .k-type img, .k-guide img, .k-tile { transition: none !important; }
}

/* JamesEdition reference — approved 2026-09-27. Earlier hero alternatives are replaced here. */
:root { --ink:#191919; --text:#222; --accent:#8a692f; --bronze:#8a692f; --panel:#f3f2ed; --kline:#eaeaea; --muted:#606060; --w:1920px; --gut:5vw; --hd:112px; --hd-now:var(--hd); --font:"Inter","Hiragino Sans","Aura Yu Gothic","BIZ UDPGothic",Arial,sans-serif; --display:"Prata","Hiragino Mincho ProN","Yu Mincho",serif; }
body.v3 { background:#fff; font-weight:400; -webkit-font-smoothing:antialiased; }
.v3 h1,.v3 h2,.v3 h3 { font-feature-settings:normal; }
.v3 a,.v3 button { -webkit-tap-highlight-color:transparent; }
.v3 :focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.kh { position:fixed; inset:0 0 auto; z-index:60; background:#fff; border-bottom:1px solid var(--kline); transition:transform .25s,background-color .25s,color .25s; }
.kh ~ main { padding-top:var(--hd); }
.kh.kh-over ~ main { padding-top:0; }
.kh.is-hidden { transform:translateY(-100%); }
.kh.is-glass { background:#fff; }
.kh-in { height:66px; display:flex; gap:32px; }
.kh-logo { flex:none; }
.kh-logo img { width:140px; height:47px; }
.kh-logo .kh-logo-w { display:none; }
.kh-tag,.kh-lic,.kh-stock { display:none; }
.kh-right { flex:1; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:24px; }
.kh-nav { order:0; gap:22px; }
.kh-nav a { font-size:13px; font-weight:400; padding:6px 0; }
.kh-util { order:1; gap:16px; font-size:13px; }
.kh-saved b { min-width:0; padding:0 0 0 2px; box-shadow:none; }
.kh-cta { background:none; border:1px solid currentColor; color:var(--ink); border-radius:20px; height:36px; padding:0 16px; }
.kh-cta:hover { background:var(--panel); }
.kh-end { display:none; }
.kh-places { border-top:1px solid var(--kline); }
.kh-places .k-wrap { display:flex; align-items:center; gap:28px; min-height:45px; overflow-x:auto; scrollbar-width:none; }
.kh-places a { font-size:14px; white-space:nowrap; text-decoration:none; }
.kh-places a:hover { text-decoration:underline; text-underline-offset:5px; }
.kh.kh-over.is-top { background:transparent; border-bottom-color:rgba(255,255,255,.24); color:#fff; }
.kh.kh-over.is-top .kh-places { border-color:rgba(255,255,255,.24); }
.kh.kh-over.is-top .kh-logo-d { display:none; }
.kh.kh-over.is-top .kh-logo .kh-logo-w { display:block; }
.kh.kh-over.is-top .kh-nav a,.kh.kh-over.is-top .kh-saved,.kh.kh-over.is-top .kh-saved b,.kh.kh-over.is-top .kh-sw a,.kh.kh-over.is-top .kh-cta,.kh.kh-over.is-top .kh-menu { color:#fff; }
.kh.kh-over.is-top .kh-cta:hover { background:rgba(255,255,255,.15); }
.kh.kh-over.is-top .kh-sw a + a::before { background:rgba(255,255,255,.4); }
.kh-nav-saved,.kh-nav-cta { display:none; }
/* A fixed-height photographic opening leaves the next section in view. */
.k-hero { position:relative; height:600px; min-height:0; background:#333; color:#fff; border-radius:0 0 24px 24px; overflow:hidden; isolation:isolate; z-index:1; }
.k-hero-slides,.k-hero-slide { position:absolute; inset:0; margin:0; }
.k-hero-slide { opacity:0; transition:opacity .8s ease; pointer-events:none; }
.k-hero-slide.is-active { opacity:1; pointer-events:auto; }
.k-hero-slide img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.k-hero-slide::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.46),rgba(0,0,0,.22) 32%,rgba(0,0,0,.25) 65%,rgba(0,0,0,.48)); }
.k-hero-slide figcaption { position:absolute; z-index:2; bottom:24px; left:20px; right:20px; text-align:center; font:400 12px/20px var(--font); }
.k-hero-slide figcaption a { color:#fff; text-decoration:none; }
.k-hero-slide figcaption a:hover { text-decoration:underline; text-underline-offset:4px; }
.k-hero-in { position:relative; z-index:2; height:100%; max-width:none; margin:0; padding:202px 20px 100px; display:flex; flex-direction:column; justify-content:flex-start; align-items:center; text-align:center; pointer-events:none; }
.k-hero-in > * { animation:none; }
.k-hero h1,html[lang="ja"] .k-hero h1 { max-width:none; margin:0; padding:15px 0 20px; font:400 46px/60px var(--display); letter-spacing:0; color:#fff; text-shadow:0 1px 15px rgba(0,0,0,.15); }
html[lang="ja"] .k-hero h1 { font-size:38px; }
.k-hero-kicker { position:absolute; top:191px; margin:0; font-size:12px; font-weight:400; line-height:20px; letter-spacing:.05em; color:rgba(255,255,255,.9); }
.k-q { width:min(100%,884px); margin:3px 0 0; pointer-events:auto; }
.k-q-bar { display:grid; grid-template-columns:1.35fr 1.2fr 1fr 170px; min-height:48px; background:#fff; color:var(--ink); border-radius:24px; box-shadow:0 4px 24px #0001; }
.k-q-f { position:relative; display:flex; align-items:center; min-width:0; height:48px; padding:0 20px; }
.k-q-f + .k-q-f::before { content:""; position:absolute; left:0; top:12px; bottom:12px; width:1px; background:#eaeaea; }
.k-q-f select { appearance:none; width:100%; min-height:44px; margin:0; padding:0 20px 0 0; border:0; border-radius:0; font:400 14px/22px var(--font); color:#333; background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' stroke='%23606060' fill='none'/%3E%3C/svg%3E") no-repeat right center; cursor:pointer; text-overflow:ellipsis; }
.k-q-go { display:flex; align-items:center; justify-content:center; min-height:48px; margin:0; padding:0 16px; border-radius:0 24px 24px 0; background:var(--accent); color:#fff; font-size:16px; font-weight:500; text-decoration:none; transition:background-color 80ms; }
.k-q-go:hover,.k-q-go.is-zero:hover { background:#705326; }
.k-q-use { display:flex; justify-content:center; gap:26px; margin:16px 0 0; }
.k-q-use label { cursor:pointer; position:relative; }
.k-q-use input { position:absolute; opacity:0; width:1px; height:1px; }
.k-q-use span { display:block; padding:3px 0; border-bottom:1px solid transparent; font-size:13px; font-weight:400; color:rgba(255,255,255,.86); }
.k-q-use input:checked + span { color:#fff; border-color:#fff; }
.k-q-use input:focus-visible + span { outline:2px solid #fff; outline-offset:4px; }
.k-q-zero { margin:10px 0 0; font-size:13px; color:#fff; }
.k-q-zero[hidden] { display:none; }
.k-hero-controls { position:absolute; bottom:58px; z-index:4; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:2px; }
.k-hero-controls button { display:grid; place-content:center; width:30px; height:30px; padding:0; background:transparent; border:0; cursor:pointer; color:#fff; }
.k-hero-controls button[data-slide-to]::before { content:""; width:7px; height:7px; background:#ffffff75; border-radius:50%; }
.k-hero-controls button[aria-pressed="true"]::before { background:#fff; }
.k-hero-controls .k-hero-pause { font-size:13px; margin-left:4px; }
.k-hero-controls button:focus-visible { outline-color:#fff; }
.k-trust { position:relative; z-index:0; margin-top:-16px; padding-top:16px; background:var(--panel); border-radius:0 0 24px 24px; }
.k-trust .k-wrap { min-height:88px; display:flex; align-items:center; justify-content:center; gap:44px; }
.k-trust a { display:flex; gap:10px; align-items:baseline; color:#52524d; font-size:12px; text-decoration:none; }
.k-trust a:first-child { font-size:18px; letter-spacing:.035em; }
.k-trust a span,.k-trust small { font-size:11px; letter-spacing:0; }
.k-trust a:hover { text-decoration:underline; }
/* Quiet sections and consistent property cards. */
.k-sec { padding-block:50px 70px; }
.k-sec-head { margin-bottom:24px; align-items:flex-start; }
.k-title h2,.k-title h1,html[lang="ja"] .k-title h2,html[lang="ja"] .k-title h1 { font:400 20px/1.6 var(--font); letter-spacing:0; }
.k-count { margin-top:5px; font-size:12px; }
.k-count b { font-size:12px; font-weight:400; }
.k-sec-side { display:flex; align-items:flex-end; flex-direction:column; gap:10px; }
.k-sec-aside { font-size:13px; line-height:1.7; max-width:38em; }
.k-more { border:0; font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.k-cards { gap:36px 24px; }
.k-card,.k-card:hover { background:transparent; box-shadow:none; }
.k-card-img { border-radius:6px; }
.k-card-img img { transition:transform .35s ease; }
.k-card:hover .k-card-img img { transform:scale(1.025); }
.k-card-body { padding:16px 0 0; }
.k-cost-note { margin:4px 0 0; font-size:11px; color:var(--muted); }
.k-cost-note a { position:relative; z-index:2; text-decoration:underline; text-underline-offset:3px; }
.k-price { font-size:22px; line-height:28px; font-weight:500; }
.k-meta { margin-top:8px; font-size:12px; font-weight:400; color:var(--muted); }
.k-meta span + span::before { margin:0 9px; }
.k-card h3 { margin-top:8px; padding:0; border:0; font-size:14px; line-height:20px; font-weight:400; color:#333; }
.k-loc,.k-st { font-size:12px; }
.k-tags { top:12px; left:12px; max-width:calc(100% - 85px); flex-wrap:wrap; }
.k-tag,.k-tag-b,.k-tag-o { padding:5px 8px; font-size:10px; background:#ffffffeb; color:#333; box-shadow:none; border-radius:2px; }
.k-save { top:12px; right:12px; border-radius:18px; min-height:32px; padding:8px 11px; box-shadow:none; background:#fffffff0; }
.k-noimg { background:#efeeea; color:#777; }
.k-noimg b { color:#555; font-weight:400; }
.k-sec-panel { background:#fff; }
.k-types { gap:24px; }
.k-type { border-radius:6px; overflow:hidden; }
.k-type::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#0009,transparent 70%); pointer-events:none; }
.k-type-cap { z-index:1; inset:auto 0 22px; background:transparent; color:#fff; padding:20px 24px; }
.k-type-cap b { font:400 28px/1.4 var(--display); }
.k-type-cap .num,.k-type-go { color:#fff; font-weight:400; }
.k-type-note { z-index:1; font-size:10px; }
.k-dark { background:#f3f2ed; color:var(--ink); border-radius:24px; }
.k-dark .k-title h2,.k-dark .k-label,.k-dark .k-sec-aside { color:var(--ink); }
.k-g4 a { border-color:#d8d7d2; color:var(--ink); }
.k-g4 a b { font-size:18px; font-weight:400; }
.k-g4 a span,.k-promise p { color:var(--muted); }
.k-g4 a .k-go-t { color:var(--accent); }
.k-promise { border-color:#d8d7d2; }
.k-promise div + div { border-color:#d8d7d2; }
.k-promise b { font-size:14px; font-weight:500; }
.k-about-head { margin-bottom:30px; }
.k-feat-card { box-shadow:none; border:1px solid var(--kline); }
.k-feat-fig { font:400 44px/1.2 var(--display); }
.k-guide a { border-radius:6px; overflow:hidden; }
.k-guide-cap b { font-weight:400; }
.k-help h2 { font-family:var(--display); font-weight:400; font-size:36px; }
.k-btn { border-radius:24px; min-height:48px; font-size:14px; font-weight:500; }
.k-bar { top:var(--hd-now); transition:top .25s; border-top:0; }
.k-bar .k-wrap { min-height:72px; gap:18px; flex-wrap:wrap; padding-block:10px; }
.k-bar .seg span { padding:10px 12px; font-size:12px; }
.k-bar .grp { gap:10px; }
.k-bar .grp > span { font-size:12px; }
.k-bar select { margin-left:0; max-width:180px; border-radius:6px; font-size:12px; }
.k-bar-sum { display:none; }
.k-dtabs { top:var(--hd-now); transition:top .25s; }
.k-lhead h1 { font-family:var(--display); font-weight:400; font-size:36px; }
.v3 .phead h1,.v3 .page-head h1 { font-family:var(--display); font-weight:400; }
.k-dleft { top:calc(var(--hd-now) + 16px); }
@media (max-width:1200px) {
  .kh-in { gap:24px; }
  .kh-nav { gap:15px; }
  .kh-nav a { font-size:12px; }
  .kh-util { gap:10px; }
  .kh-saved { display:none; }
}
@media (max-width:1080px) {
  .kh-in { justify-content:space-between; }
  .kh-right { flex:0; }
  .kh-end { display:flex; gap:10px; }
  .kh-end .kh-sw { display:inline-flex; }
  .kh-util { display:none; }
  .kh-menu { display:block; margin:0; border:0; background:transparent; padding:0; font-size:13px; }
  .kh-nav { display:none; position:absolute; top:66px; left:0; right:0; padding:20px var(--gut); background:#fff; box-shadow:0 12px 20px #0001; }
  .kh-nav.open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .kh-nav a { display:block; font-size:16px; padding:12px 0; }
  .kh-nav-saved,.kh-nav-cta { display:block; }
  .kh-places .k-wrap { gap:24px; }
  .k-trust .k-wrap { gap:24px; }
  .k-trust a:first-child { display:block; }
  .k-trust small { display:block; }
}
@media (max-width:700px) {
  :root { --gut:20px; --hd:98px; }
  .kh-in { height:56px; }
  .kh-logo img { width:119px; height:40px; }
  .kh-nav { top:56px; }
  .kh-places .k-wrap { min-height:41px; }
  .kh-places a { font-size:12px; }
  .kh-sw a,.kh-sw-sp a { font-size:12px; }
  .k-hero { height:600px; border-radius:0 0 20px 20px; }
  .k-hero-in { padding:176px 20px 120px; }
  .k-hero-kicker { top:147px; max-width:90%; font-size:11px; }
  .k-hero h1,html[lang="ja"] .k-hero h1 { font-size:32px; line-height:44px; padding:0 0 25px; text-wrap:balance; }
  html[lang="ja"] .k-hero h1 { font-size:28px; max-width:12em; }
  .k-q { width:100%; margin:0; }
  .k-q-bar { grid-template-columns:1fr 1fr; border-radius:20px; padding:4px 8px 8px; }
  .k-q-location { grid-column:1/-1; border-bottom:1px solid var(--kline); }
  .k-q-f { padding:0 12px; }
  .k-q-f:nth-child(2)::before { display:none; }
  .k-q-f select { font-size:13px; }
  .k-q-go { grid-column:1/-1; border-radius:24px; margin-top:4px; font-size:14px; }
  .k-q-use { gap:22px; margin-top:14px; }
  .k-q-use span { font-size:12px; }
  .k-q-zero { font-size:11px; line-height:1.6; }
  .k-hero-slide figcaption { font-size:10px; bottom:22px; }
  .k-hero-controls { bottom:48px; }
  .k-trust .k-wrap { min-height:92px; display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; padding-block:20px; }
  .k-trust a { font-size:10px; line-height:1.6; display:block; }
  .k-trust a:first-child { grid-row:1/3; font-size:16px; }
  .k-trust a span { display:block; }
  .k-trust small { font-size:10px; }
  .k-sec { padding-block:40px; }
  .k-sec-head { gap:8px; margin-bottom:24px; }
  .k-title h2,.k-title h1,html[lang="ja"] .k-title h2,html[lang="ja"] .k-title h1 { font-size:22px; }
  .k-sec-side { align-items:flex-start; }
  .k-sec-aside { font-size:12px; }
  .k-cards-3 { grid-template-columns:1fr; }
  .k-cards { gap:32px; }
  .k-types { grid-template-columns:1fr; }
  .k-type { min-height:280px; }
  .k-bar-sum { display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; min-height:52px; padding:0 20px; background:#fff; border:0; font:400 12px var(--font); text-align:left; }
  .k-bar-sum [data-bar-sum] { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .k-bar-go { flex:none; text-decoration:underline; }
  .k-bar:not(.open) .k-wrap { display:none; }
  .k-bar select { width:100%; max-width:none; }
  .k-lhead h1 { font-size:28px; }
  .k-help h2 { font-size:28px; }
  .k-g4 a:nth-child(n) { border-color:#d8d7d2; }
}
@media (prefers-reduced-motion:reduce) {
  .k-hero-slide,.kh,.k-bar,.k-dtabs,.k-card-img img { transition:none!important; }
}
@media print { .kh,.k-bar,.k-dtabs,.sticky-ask,.proto,.k-help,.k-dir { display:none!important; } }

/* Standard document navigation. Native cross-document View Transitions were
   rejected by the preview browser (Page already revealed); no navigation is intercepted. */
.v3 main { animation:k-page-enter .18s ease-out; }
@keyframes k-page-enter { from { opacity:.6; } to { opacity:1; } }
@media (prefers-reduced-motion:reduce) { .v3 main { animation:none; } }

/* おすすめの札（2026-09-27）：管理画面で「おすすめとして先頭に出す」にした物件 */
.k-tag.k-tag-f { background: var(--ink); color: #fff; }

/* =====================================================================
   物件詳細 v2（2026-09-27）：写真を上に全幅。追従するのは右の小さな札（価格と相談）だけ
   本人「写真が上下に絶妙に動く・文字だけガーッと動く」→ 写真の列の追従をやめ、ヘッダーの出入りでも動かさない
   ===================================================================== */
.k-dtop { padding-top: 6px; padding-bottom: 22px; }
.k-dtop h1 { margin: 14px 0 6px; font-size: clamp(26px, 2.4vw, 36px); line-height: 1.3; font-weight: 600; letter-spacing: -.01em; }
.k-dgal { padding-bottom: 4px; }
.k-dgal .k-gal { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-areas: "tools tools" "main sub" "bar bar" "note note"; gap: 8px; }
.k-dgal .k-gal-tools { grid-area: tools; margin: 0 0 2px; }
.k-dgal .gal { grid-area: main; display: block; }
.k-dgal .gal .main { height: 100%; }
.k-dgal .gal .main img { height: 100%; aspect-ratio: 3 / 2; }
.k-dgal .k-gal-sub { grid-area: sub; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.k-dgal .k-gal-sub img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
.k-dgal .k-gal-sub img:only-child { grid-row: 1 / -1; }
.k-dgal .k-gal:has(.k-gal-sub:empty) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "tools" "main" "bar" "note"; }
.k-dgal .k-gal:has(.k-gal-sub:empty) .gal .main img { max-height: 72vh; }
.k-dgal .gal-bar { grid-area: bar; margin-top: 4px; }
.k-dgal .k-gal-note { grid-area: note; margin: 0; }
.k-dgal .k-gal-empty .k-noimg-lg { aspect-ratio: auto; height: clamp(200px, 24vw, 340px); }
.k-detail { grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); grid-template-areas: "main side"; gap: 0 56px; padding-top: 28px; }
.k-dmain { grid-area: main; min-width: 0; }
.k-dside { grid-area: side; position: sticky; top: calc(var(--hd) + 24px); align-self: start; }
.k-dside .k-dlabel { margin-top: 0; }
.k-dside > .cost { margin: 0; }
.k-dside .k-ask { margin: 20px 0 0; }
.k-dmain > .k-dtabs:first-child { margin-top: 0; }
@media (max-width: 900px) {
  .k-dgal { padding-inline: 0; }
  .k-dgal .k-gal, .k-dgal .k-gal:has(.k-gal-sub:empty) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main" "bar" "tools" "note"; }
  .k-dgal .k-gal-sub { display: none; }
  .k-dgal .gal-bar, .k-dgal .k-gal-tools, .k-dgal .k-gal-note { padding-inline: var(--gut); }
  .k-dgal .th { overflow-x: auto; max-width: 100%; }
  .k-dgal .k-gal-empty { padding-inline: var(--gut); }
  .k-detail { grid-template-columns: minmax(0, 1fr); grid-template-areas: "side" "main"; padding-top: 18px; }
  .k-dside { position: static; }
  .k-dside .k-ask { margin-bottom: 28px; }
}
/* 題名の行の右に価格（最初の画面で見える）。スマホは題名の下 */
.k-dtop { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-auto-flow: row dense; column-gap: 48px; }
.k-dtop .k-dtags { grid-column: 1 / -1; }
.k-dtop h1, .k-dtop .k-daddr, .k-dtop .k-dline { grid-column: 1; }
.k-dtop .k-dlabel, .k-dtop .k-dprice, .k-dtop .cost { grid-column: 2; text-align: right; }
.k-dtop .k-dlabel { align-self: end; margin: 0; }
.k-dtop .k-dprice { margin: 0; }
.k-dtop .cost { margin: 2px 0 0; font-size: 12.5px; }
@media (max-width: 900px) {
  .k-dtop { grid-template-columns: minmax(0, 1fr); }
  .k-dtop .k-dlabel, .k-dtop .k-dprice, .k-dtop .cost { grid-column: 1; text-align: left; }
  .k-dtop .k-dlabel { margin-top: 14px; }
}
.k-dgal .k-gal.k-gal-empty { display: block; }   /* 写真が無い物件：準備中の面を全幅に */

/* Refined ochre search controls; native select remains the no-script fallback. */
.k-hero { overflow:visible; }
.k-hero-slides { overflow:hidden; border-radius:inherit; }
.k-hero-in { z-index:5; }
.k-choice select[hidden],.k-choice-panel[hidden] { display:none; }
.k-choice-trigger { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:48px; padding:0; border:0; background:transparent; color:#333; font:400 14px/22px var(--font); text-align:left; cursor:pointer; }
.k-choice-trigger > span:first-child { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.k-choice-arrow { flex:none; width:7px; height:7px; margin-right:3px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .18s ease; }
.k-choice.is-open .k-choice-trigger { color:var(--accent); }
.k-choice.is-open .k-choice-arrow { transform:rotate(225deg) translate(-2px,-1px); }
.k-choice-panel { position:absolute; z-index:10; top:calc(100% + 12px); left:0; width:max(100%,280px); padding:20px 12px 12px; color:var(--ink); background:#fffefb; border:1px solid #e6dfd2; border-radius:12px; box-shadow:0 18px 44px rgba(32,25,15,.18); text-align:left; animation:choice-in .16s ease-out; }
.k-choice-title { margin:0 12px 12px; color:#877b68; font:500 11px/1.5 var(--font); letter-spacing:.08em; }
.k-choice-option { position:relative; display:flex; align-items:center; min-height:46px; padding:10px 40px 10px 12px; border-radius:6px; font:400 14px/22px var(--font); cursor:pointer; }
.k-choice-option + .k-choice-option { margin-top:3px; }
.k-choice-option:hover,.k-choice-option:focus-visible { background:#f4f0e8; outline:none; }
.k-choice-option[aria-selected="true"] { background:#f0e9dc; color:#705326; font-weight:500; }
.k-choice-option[aria-selected="true"]::after { content:""; position:absolute; right:17px; width:5px; height:10px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); }
.k-q-go { transition:background-color .18s ease; }
@keyframes choice-in { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:600px) {
 .k-q-bar { position:relative; }
 .k-choice { position:static; }
 .k-choice-trigger { font-size:13px; }
 .k-choice-panel { top:calc(100% + 10px); left:0; right:0; width:auto; max-height:38vh; overflow-y:auto; padding:16px 10px 10px; }
 .k-choice-option { min-height:44px; }
 .k-choice + .k-choice::before { display:none; }
}
@media(prefers-reduced-motion:reduce) { .k-choice-panel { animation:none; } .k-choice-arrow,.k-q-go { transition:none; } }

/* Japanese edition: user's GRACE HOME reference, approved 2026-09-27. */
html[lang="ja"] { --font:"Shippori Mincho B1","Shippori Mincho","Yu Mincho",serif; --display:var(--font); --label:var(--font); }

/* v3.5 — photographic opening and considered touch layouts. */
.k-hero { height:clamp(560px,calc(100svh - 112px),880px); }
.k-hero-in { justify-content:center; padding:160px 32px 112px; }
.k-hero-kicker { position:static; margin:0 0 12px; }
.k-hero h1,html[lang="ja"] .k-hero h1 { padding:0 0 32px; }
.k-choice-panel { margin:0; max-width:none; }
.k-choice-close { display:none; }
.k-choice-panel::backdrop { background:rgba(24,21,16,.42); }
@media(max-width:1080px) {
 .kh-nav.open { top:66px; max-height:calc(100svh - 66px); overflow-y:auto; overscroll-behavior:contain; padding:16px var(--gut) 24px; }
 .kh-nav.open a { min-height:52px; display:flex; align-items:center; }
 .kh.kh-over.is-top .kh-nav.open a { color:var(--ink); }
 .kh-nav.open .kh-nav-cta { display:block; color:#fff!important; background:var(--accent); border-radius:6px; }
 .kh-menu { min-width:56px; min-height:44px; }
 .kh-menu[aria-expanded="true"] { color:var(--accent)!important; }
 .kh:has(.kh-nav.open) { background:#fff!important; }
 .kh.kh-over.is-top:has(.kh-nav.open) .kh-logo-d { display:block; }
 .kh.kh-over.is-top:has(.kh-nav.open) .kh-logo-w { display:none; }
 .kh.kh-over.is-top:has(.kh-nav.open) .kh-sw a { color:var(--ink); }
 .k-menu-shade { position:fixed; inset:0; z-index:59; background:rgba(24,21,16,.42); border:0; padding:0; }
}
@media(min-width:1081px) { .k-menu-shade { display:none; } }
@media(max-width:700px) {
 :root { --hd:108px; }
 .kh-in { height:64px; gap:12px; }
 .kh-logo img { width:119px; height:40px; }
 .kh-end { gap:8px; }
 .kh-end .kh-sw a { min-width:28px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
 .kh-places .k-wrap { min-height:43px; gap:24px; scroll-padding-inline:20px; }
 .kh-places a { min-height:43px; display:flex; align-items:center; font-size:12px; }
 .kh-nav.open { top:64px; max-height:calc(100svh - 64px); padding-bottom:calc(24px + env(safe-area-inset-bottom)); }
 .k-hero { height:clamp(512px,calc(100svh - 144px),800px); border-radius:0 0 16px 16px; }
 .k-hero-in { padding:140px 20px 96px; }
 .k-hero-kicker { font-size:12px; line-height:20px; margin-bottom:16px; max-width:100%; }
 .k-hero h1,html[lang="ja"] .k-hero h1 { font-size:30px; line-height:1.45; padding:0 0 24px; max-width:12em; }
 html[lang="en"] .k-hero h1 { font-size:32px; }
 .k-q-bar { padding:4px 8px 8px; border-radius:16px; box-shadow:0 8px 32px #211a1214; }
 .k-choice-trigger { font-size:14px; min-height:48px; gap:8px; }
 .k-q-go { min-height:48px; font-size:16px; border-radius:8px; }
 .k-q-use { margin-top:8px; gap:24px; }
 .k-q-use span { min-width:44px; min-height:44px; display:grid; place-items:center; font-size:14px; }
 .k-q-use input:checked + span { border-bottom-color:transparent; position:relative; }
 .k-q-use input:checked + span::after { content:""; position:absolute; bottom:4px; left:8px; right:8px; height:1px; background:currentColor; }
 .k-q-zero { font-size:12px; }
 .k-hero-controls { bottom:42px; }
 .k-hero-controls button { width:44px; height:44px; }
 .k-hero-slide figcaption { font-size:12px; bottom:12px; }
 .k-hero-slide figcaption a { display:inline-flex; align-items:center; min-height:32px; }
 .k-choice-panel:modal { position:fixed; inset:auto 0 0; width:100%; max-width:none; max-height:calc(100svh - 24px); margin:0; overflow-y:auto; overscroll-behavior:contain; border:0; border-radius:20px 20px 0 0; padding:20px 16px calc(24px + env(safe-area-inset-bottom)); box-shadow:0 -8px 48px #211a121f; animation:choice-sheet-in .2s ease-out; }
 .k-choice-panel:modal .k-choice-title { min-height:44px; display:flex; align-items:center; margin:0 52px 12px 8px; font-size:18px; color:var(--ink); letter-spacing:0; }
 .k-choice-panel:modal .k-choice-close { display:grid; place-items:center; position:absolute; right:16px; top:20px; width:44px; height:44px; padding:0; border:1px solid #e6dfd2; border-radius:50%; background:transparent; color:var(--ink); font:400 24px/1 sans-serif; cursor:pointer; }
 .k-choice-panel:modal .k-choice-option { min-height:56px; padding:16px 44px 16px 16px; font-size:16px; border-radius:8px; }
 .k-trust .k-wrap { min-height:112px; padding-block:20px; gap:4px 16px; grid-template-columns:1fr 1.2fr; }
 .k-trust a { font-size:12px; min-height:32px; display:flex; align-items:center; }
 .k-trust a:first-child { font-size:18px; display:block; }
 .k-trust small { font-size:12px; }
 .k-sec { padding-block:48px; }
 .k-title h2,.k-title h1,html[lang="ja"] .k-title h2,html[lang="ja"] .k-title h1 { font-size:24px; line-height:1.5; }
 .k-cards { gap:40px; }
 .k-card-img { border-radius:8px; }
 .k-card h3 { font-size:16px; line-height:1.6; }
 .k-save { min-height:44px; padding:10px 14px; border-radius:24px; }
 .k-bar-sum { min-height:56px; font-size:14px; }
 .k-bar.open .k-wrap { max-height:calc(100svh - 180px); overflow-y:auto; overscroll-behavior:contain; padding-block:16px 24px; gap:16px; }
 .k-bar .grp { align-items:flex-start; flex-direction:column; }
 .k-bar .seg { display:flex; flex-wrap:wrap; gap:4px; }
 .k-bar .seg span { min-height:44px; display:flex; align-items:center; padding:10px 12px; font-size:14px; }
 .k-bar select { min-height:48px; font-size:16px; padding:12px; }
 .k-dtags { padding-right:84px; position:relative; min-height:48px; gap:6px 8px; }
 .k-dtags .k-did { width:100%; font-size:12px; }
 .k-dtags .k-save-d { position:absolute; right:0; top:0; margin:0; }
 .k-dtop h1 { font-size:24px; line-height:1.5; font-weight:500; margin-top:12px; }
 .k-dtop .k-daddr,.k-dtop .k-dline { font-size:14px; line-height:1.7; }
 .k-dtop .k-dlabel { margin-top:16px; font-size:12px; }
 .k-dprice { font-size:32px; line-height:1.4; }
 .k-dtop .cost { font-size:12px; line-height:1.8; }
 .k-dgal .th { padding-block:4px; scroll-snap-type:x proximity; }
 .k-dgal .th button { flex-shrink:0; scroll-snap-align:start; border-radius:4px; }
 .k-dgal .th img { width:72px; }
 .k-dgal .gal-bar { gap:8px; margin-top:8px; }
 .k-dgal .k-gal-tools a { min-height:44px; display:inline-flex; align-items:center; }
 .k-dtabs { overflow-x:auto; scrollbar-width:none; }
 .k-dtabs a { min-height:48px; padding:14px 12px; font-size:14px; }
 .k-ask { padding:24px 20px; }
 .k-sticky { position:fixed; bottom:0; left:0; right:0; z-index:45; background:#fffefb; color:var(--ink); border-top:1px solid #e6dfd2; padding:12px var(--gut) calc(12px + env(safe-area-inset-bottom)); box-shadow:0 -4px 24px #211a120a; }
 .k-sticky .price { font-size:24px; line-height:1.2; }
 .k-sticky .price .u { font-size:12px; }
 .k-sticky .k-btn { background:var(--accent); color:#fff; min-height:48px; padding:0 20px; border-radius:6px; font-size:14px; }
 body:has(.k-sticky) { padding-bottom:calc(80px + env(safe-area-inset-bottom)); }
 .clayout { gap:24px; padding-top:8px; }
 .cside .ctxbox,.cside .ctxcard { margin-bottom:16px; }
 .form .row2 { grid-template-columns:minmax(0,1fr); gap:0; }
 .field { margin-bottom:24px; }
 .field input,.field select,.field textarea { min-height:52px; padding:14px 16px; font-size:16px; border-color:#c9c2b6; border-radius:6px; }
 .form .btn,.review .btn { width:100%; min-height:52px; }
 .review dl div { grid-template-columns:minmax(0,1fr); gap:4px; }
}
@media(max-width:700px) and (max-height:700px) {
 .k-hero-in { padding:116px 16px 72px; }
 .k-hero-kicker { font-size:11px; line-height:18px; margin-bottom:12px; }
 .k-hero h1,html[lang="ja"] .k-hero h1,html[lang="en"] .k-hero h1 { font-size:24px; line-height:1.4; padding-bottom:16px; }
 .k-q-use { margin-top:4px; }
 .k-hero-controls { bottom:28px; }
 .k-hero-slide figcaption { bottom:4px; font-size:11px; }
}
@media(max-width:360px) {
 :root { --gut:16px; }
 .kh-end { gap:4px; }
 .kh-menu { min-width:48px; font-size:12px; }
 .kh-in { gap:8px; }
 .k-trust .k-wrap { gap:4px 12px; }
 .k-trust a { font-size:11px; }
 .k-sticky { gap:8px; }
 .k-sticky .price { font-size:20px; }
 .k-sticky .k-btn { padding-inline:14px; }
}
@keyframes choice-sheet-in { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .k-choice-panel:modal { animation:none; } }
@media(max-width:700px) {
 .v3 .crumb { padding-top:16px; }
 .crumb ol { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; white-space:nowrap; padding-bottom:4px; }
 .crumb li { flex-shrink:0; }
 .clayout .cside { display:contents; }
 .clayout .cside .next { order:3; }
 .clayout .cside dl { order:4; }
 .clayout > div:not(.cside) { order:2; }
 .clayout .cside .next h2 { margin-top:16px; }
 .k-hero:has(.k-q-zero:not([hidden])) { min-height:560px; }
}

/* v3.5.1（2026-09-27）会社の節・ガイド・相談の帯の組み直し。
   会社：写真3枚の縦積み＋右下の枠の箱 → 写真1枚を全幅＋数字3つを縦の罫で横一列（箱で囲わない）。
   見出しと右の説明は上端をそろえる（小見出しは1段目に通す）。
   ガイド：写真の上に字を載せず、写真の下に置く（見出しの高さを3枚でそろえ、「詳しく見る」は下端でそろえる）。
   相談の帯：小見出しと注記が左に寄っていたのを中央へ。 */
.k-about-head { display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:0 64px; align-items:start; margin-bottom:32px; }
.k-about-head .k-label { grid-column:1 / -1; margin:0 0 10px; }
.k-about-sub p { margin:0 0 12px; }
.k-about-img { margin:0; border-radius:6px; overflow:hidden; background:#efeeea; }
.k-about-img img { display:block; width:100%; aspect-ratio:3 / 1; object-fit:cover; }
.k-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:36px; }
.k-stat { padding:2px 32px 4px; border-left:1px solid var(--kline); }
.k-stat:first-child { padding-left:0; border-left:0; }
.k-stat:last-child { padding-right:0; }
@media (max-width:1080px) { .k-stat { padding-inline:20px; } .k-stat:first-child { padding-left:0; } .k-stat:last-child { padding-right:0; } }
.k-stat-lbl { margin:0 0 6px; font-size:13px; line-height:1.6; color:var(--muted); }
.k-stat-fig { margin:0; font:400 44px/1.2 var(--display); color:var(--ink); }
.k-stat-fig small { margin-left:4px; font-size:16px; font-family:var(--font); color:var(--ink); }
.k-stat-d { margin:10px 0 0; max-width:24em; font-size:14px; line-height:1.8; }
.k-about .k-src { margin-top:44px; }

.k-guide { align-items:stretch; }
.k-guide a { display:flex; flex-direction:column; min-height:0; background:transparent; color:var(--ink); border-radius:0; overflow:visible; }
.k-guide-img { position:relative; display:block; height:clamp(220px,21vw,320px); border-radius:6px; overflow:hidden; background:#efeeea; }
.k-guide img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.k-guide-note { top:10px; right:10px; border-radius:2px; }
.k-guide-cap { position:static; flex:1; display:flex; flex-direction:column; gap:8px; padding:18px 0 0; background:none; }
.k-guide-cap b { font-size:20px; font-weight:400; line-height:1.5; color:var(--ink); }
.k-guide-cap span { max-width:34em; font-size:13.5px; line-height:1.8; color:var(--muted); }
.k-guide-cap .k-go-t { margin-top:auto; padding-top:8px; font-size:13px; color:var(--accent); }
.k-guide a:hover .k-go-t { color:var(--ink); }

.k-help-k { margin:0 auto 12px !important; }
.k-help .k-help-note { margin:16px auto 0; }

@media (max-width:900px) {
  .k-about-head { grid-template-columns:minmax(0,1fr); gap:0; }
  .k-about-sub { margin-top:12px; }
}
@media (max-width:700px) {
  .k-about-head { margin-bottom:24px; }
  .k-about-img img { aspect-ratio:3 / 2; }
  .k-stats { grid-template-columns:minmax(0,1fr); margin-top:8px; }
  .k-stat, .k-stat:first-child { padding:18px 0; border-left:0; border-bottom:1px solid var(--kline); }
  .k-stat-fig { font-size:36px; }
  .k-about .k-src { margin-top:28px; }
  .k-guide { gap:36px; }
  .k-guide-img { height:auto; aspect-ratio:3 / 2; }
}

/* v3.5.1（2026-09-27）写真の下の帯と「買う前の疑問」の節。
   帯：12px・11pxの灰色の字が中央に浮いていた → 3つを同じ幅に分け、縦の罫で区切り、15pxに。
   疑問の節：説明文が白（暗い背景の頃の指定 .k-g4 span[data-wrap]）のまま生成りの上に残り、見えていなかった → 墨の薄い色に。
   4つの入口に手持ちの線画。小見出しは1段目、見出しと右の説明は上端をそろえる（会社の節と同じ組み）。 */
.k-trust .k-wrap { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; gap:0; }
.k-trust a { justify-content:center; align-items:baseline; gap:10px; padding:6px 24px; font-size:15px; line-height:1.6; color:#3f3f3b; }
.k-trust a + a { border-left:1px solid #d9d7cf; }
.k-trust a:first-child { font-size:21px; letter-spacing:.035em; }
.k-trust a span,.k-trust small { font-size:13px; letter-spacing:0; color:#52524d; }

.k-dark-head { display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:0 64px; align-items:start; margin-bottom:36px; }
.k-dark-head .k-label { grid-column:1 / -1; margin:0 0 10px; color:var(--accent); }
.k-dark .k-dark-head .k-sec-aside { margin:0; max-width:none; font-size:15px; line-height:1.8; color:var(--muted); }
.k-g4 { border-top:1px solid #d8d7d2; }
.k-g4 a { gap:10px; padding:30px 28px 30px 0; }
.k-g4 a + a { padding-left:28px; }
.k-g4-fig { display:block; height:110px; margin-bottom:14px; }
.k-g4-fig img { display:block; width:auto; height:100%; mix-blend-mode:multiply; }
.k-g4 a b { font-size:20px; line-height:1.5; }
.k-dark .k-g4 span[data-wrap] { font-size:15px; line-height:1.8; color:var(--muted); }
.k-g4 .k-go-t { padding-top:10px; font-size:14px; color:var(--accent); }
.k-promise { margin-top:40px; }
.k-promise b { font-size:16px; margin-bottom:8px; }
.k-dark .k-promise p { font-size:15px; line-height:1.8; color:var(--muted); }

@media (max-width:900px) {
  .k-dark-head { grid-template-columns:minmax(0,1fr); gap:0; }
  .k-dark .k-dark-head .k-sec-aside { margin-top:12px; }
  .k-g4 a:nth-child(3) { padding-left:0; }
}
@media (max-width:700px) {
  .k-trust .k-wrap { grid-template-columns:1fr 1.2fr; gap:6px 16px; padding-block:18px; }
  .k-trust a { display:block; justify-content:flex-start; padding:0; font-size:13px; }
  .k-trust a + a { border-left:0; }
  .k-trust a:first-child { grid-row:1 / 3; font-size:19px; }
  .k-trust a span,.k-trust small { display:block; font-size:12px; }
  .k-g4-fig { height:84px; margin-bottom:10px; }
  .k-g4 a { padding-right:0; }
}

/* v3.5.2（2026-09-27）提案 docs/improve-2026-09-27 の A・B・C（本人「全部進めて」）。
   動きは「押した・待つ・終わった・取り消せる」を返す所だけ。transform と opacity だけ。動きを減らす設定では止める。 */
:root { --ease-out: cubic-bezier(.23, 1, .32, 1); }
/* A 写真：届くまでは写真の平均色（--ph）の下地。まだ届いていない写真だけ、届いたら0.5秒で重ねる */
.k-card-img[style], .k-gal .gal .main[style] { background-color: var(--ph); }
img.ph-wait { opacity: 0; }
img.ph-wait.is-in { opacity: 1; transition: opacity .5s ease-out; }
/* A 小さい字は12px以上（札10px・注記11px・単位8〜9px だった） */
.u { font-size: max(12px, .58em); }
.k-tag, .k-tag-b, .k-tag-o { font-size: 12px; }
.k-cost-note, .k-type-note, .k-guide-note { font-size: 12px; }
.k-noimg { color: #5f5f5f; }
/* A 押す所：見た目の位置は変えず、当たりだけ上下に広げる（行の中のリンクは padding で広げても行の高さは変わらない） */
.crumb a, .k-cost-note a, .cost a, .src a, .k-src a { padding-block: 12px; }
.kf-nav a { padding-block: 6px; }
/* 探すの一覧は4列（エリア・都道府県・種別・目的）。狭い画面は元の決まり（2列・1列）のまま */
/* B 相談の札：確かな事実だけ（返信の目安・対応言語は決まってから） */
.k-ask-dl { margin: 16px 0 0; font-size: 13px; }
.k-ask-dl div { display: grid; grid-template-columns: 7em minmax(0, 1fr); gap: 10px; padding: 9px 0; border-top: 1px solid var(--kline); }
.k-ask-dl dt { color: var(--muted); }
.k-ask-dl dd { margin: 0; color: var(--ink); }
/* B Gハウスが建てた家の検査・第三者の評価 */
.k-qual-sub { margin: -4px 0 18px; font-size: 13px; color: var(--muted); }
.k-qgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--kline); }
.k-qgrid div { padding: 16px 20px 16px 0; border-bottom: 1px solid var(--kline); }
.k-qgrid div:nth-child(even) { padding-left: 20px; border-left: 1px solid var(--kline); }
.k-qgrid b { display: block; font-size: 16px; font-weight: 500; color: var(--ink); }
.k-qgrid p { margin: 4px 0 0; font-size: 14px; line-height: 1.8; color: var(--muted); }
.k-awards { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--panel); border-radius: 6px; }
.k-awards li { padding: 16px 18px; }
.k-awards li + li { border-left: 1px solid #dcdad3; }
.k-awards b { display: block; font-size: 14.5px; font-weight: 500; line-height: 1.6; color: var(--ink); }
.k-awards span { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.6; color: var(--muted); }
.k-about .k-awards { margin-top: 32px; }
.k-qual .src { margin-top: 14px; }
.k-tour { margin: 8px 0 0; }
.k-tour a { color: var(--accent); font-weight: 500; text-decoration: underline; text-underline-offset: 4px; padding-block: 12px; }
/* C 押したときに0.12秒で沈む */
.k-btn, .k-save { transition: transform .12s ease-out, background-color .2s, color .2s, box-shadow .2s; }
.k-btn:active, .k-save:active { transform: scale(.97); }
/* C 保存したら下から札（6秒・取り消せる。髪線が残り時間） */
.k-toast { position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 90; width: min(calc(100% - 32px), 460px); display: flex; align-items: center; gap: 6px 10px; padding: 10px 12px 12px 16px; font-size: 13px; line-height: 1.5; color: #fff; background: var(--ink); border-radius: 6px; box-shadow: 0 12px 28px rgba(17, 17, 19, .18); transform: translate(-50%, calc(100% + 32px)); opacity: 0; transition: transform .4s var(--ease-out), opacity .2s; overflow: hidden; }
.k-toast.on { transform: translate(-50%, 0); opacity: 1; }
.k-toast span { flex: 1; }
.k-toast a, .k-toast button { flex-shrink: 0; min-height: 40px; padding: 0 6px; display: inline-flex; align-items: center; font: inherit; font-weight: 500; color: #e3d3b3; background: none; border: 0; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.k-toast i { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: #c9ad82; transform-origin: left; }
/* C 件数：変わった数字だけ0.3秒で下から */
.k-odo-d { display: inline-block; }
/* C 詳細の写真：0.2秒で重ね替え */
.k-gal .gal .main img.k-next { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .2s ease-out; }
.k-gal .gal .main img.k-next.on { opacity: 1; }
/* C 送信：ボタンの中で環→✓、受付は12px浮かぶ */
.k-ring { width: 18px; height: 18px; margin-right: 8px; vertical-align: -4px; }
.k-ring circle { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 36 60; transform-origin: 50% 50%; animation: k-spin .7s linear infinite; }
.k-ring path { fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 20; stroke-dashoffset: 20; animation: k-draw .32s .12s var(--ease-out) forwards; }
@keyframes k-spin { to { transform: rotate(360deg); } }
@keyframes k-draw { to { stroke-dashoffset: 0; } }
.k-rise { animation: k-rise .4s var(--ease-out) both; }
@keyframes k-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
/* C スマホのメニュー：上から0.24秒の幕。閉じるのも同じ道 */
@media (max-width: 1080px) {
  .kh-nav.open { clip-path: inset(0 0 100% 0); transition: clip-path .24s var(--ease-out); }
  .kh-nav.open.is-in { clip-path: inset(0 0 -40px 0); }
  .kh-nav.open a { opacity: 0; transition: opacity .16s ease-out .06s; }
  .kh-nav.open.is-in a { opacity: 1; }
}
@media (max-width: 700px) {
  .k-qgrid { grid-template-columns: minmax(0, 1fr); }
  .k-qgrid div:nth-child(even) { padding-left: 0; border-left: 0; }
  .k-awards { grid-template-columns: minmax(0, 1fr); }
  .k-awards li + li { border-left: 0; border-top: 1px solid #dcdad3; }
  body:has(.k-sticky) .k-toast { bottom: calc(84px + env(safe-area-inset-bottom)); }
  .k-toast { flex-wrap: wrap; }
  .k-toast span { flex: 1 1 100%; }
  .k-toast a { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  img.ph-wait.is-in, .k-gal .gal .main img.k-next, .k-toast, .k-btn, .k-save, .kh-nav.open, .kh-nav.open a { transition: none !important; }
  .k-btn:active, .k-save:active { transform: none; }
  .k-rise, .k-ring circle { animation: none !important; }
  .k-ring path { animation: none !important; stroke-dashoffset: 0; }
}

/* v3.5.4（2026-09-27 夜）「買う前の疑問」のバランス（本人「なんかバランス悪い」）。
   下の4列と縦の線・字の始まりをそろえる：見出しは1〜2列目、右の説明は3列目の字の位置から。
   約束の3つも同じ4列に載せる（1つ目は2列ぶん）→ 縦の線が上の段と同じ位置に来る。線画は同じ箱（132×100）に入れて下でそろえる。 */
.k-dark-head { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.k-dark-head .k-title { grid-column: 1 / 3; padding-right: 28px; }
.k-dark .k-dark-head .k-sec-aside { grid-column: 3 / 5; padding-left: 28px; }
.k-promise { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.k-promise div { padding: 22px 28px 0 0; }
.k-promise div + div { padding-left: 28px; }
.k-promise div:first-child { grid-column: span 2; }
.k-g4-fig { width: 132px; height: 100px; }
.k-g4-fig img { width: 100%; height: 100%; object-fit: contain; object-position: left bottom; }
@media (max-width: 900px) {
  .k-dark-head .k-title, .k-dark .k-dark-head .k-sec-aside { grid-column: 1 / -1; padding-inline: 0; }
  .k-promise { grid-template-columns: minmax(0, 1fr); }
  .k-promise div:first-child { grid-column: auto; }
  .k-promise div + div { padding-left: 0; }
}
@media (max-width: 700px) {
  .k-g4-fig { width: 110px; height: 84px; }
}
/* 会社の節の見出しも、下の数字3列にそろえる（右の説明は3列目の字の位置から） */
.k-about-head { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.k-about-head .k-title { grid-column: 1 / 3; padding-right: 32px; }
.k-about-sub { grid-column: 3; padding-left: 32px; }
@media (max-width: 1080px) {
  .k-about-head .k-title { padding-right: 20px; }
  .k-about-sub { padding-left: 20px; }
}
@media (max-width: 900px) {
  .k-about-head, .k-dark-head { grid-template-columns: minmax(0, 1fr); }
  .k-about-head .k-title, .k-about-sub { grid-column: 1 / -1; padding-inline: 0; }
}
/* スマホ：線画を左に小さく、字を右に（線画が縦に大きく並んで間延びしていた） */
@media (max-width: 560px) {
  .k-g4 a { display: grid; grid-template-columns: 76px minmax(0, 1fr); column-gap: 18px; row-gap: 6px; align-items: start; padding: 22px 0; }
  .k-g4-fig { grid-row: 1 / span 3; width: 76px; height: 58px; margin: 3px 0 0; }
  .k-g4 a > :not(.k-g4-fig) { grid-column: 2; }
  .k-g4 a b { font-size: 18px; }
  .k-g4 .k-go-t { margin-top: 2px; padding-top: 0; }
}

/* 3.6.0 本番のプライバシーポリシー・法的表記（本文は旧サイトの株式会社Gハウスの文・renewal/content/） */
.v3 .k-legal { max-width: 46em; }
.v3 .k-nw { display: inline-block; }   /* 見出しを語の途中で折らない */
.v3 .k-legal [id] { scroll-margin-top: 96px; }
.v3 .k-legal-toc { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 0 8px; font-size: 14px; }
.v3 .k-legal-toc a { border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.v3 .k-legal h2 { font-size: 22px; margin: 56px 0 12px; padding-top: 24px; border-top: 1px solid var(--line); }
.v3 .k-legal h3 { font-size: 17px; margin: 36px 0 8px; font-weight: 600; }
.v3 .k-legal h4 { font-size: 15px; margin: 20px 0 6px; font-weight: 600; }
.v3 .k-legal p, .v3 .k-legal li { font-size: 15px; line-height: 1.9; }
.v3 .k-legal ol, .v3 .k-legal ul { padding-left: 1.4em; margin: 8px 0 14px; }
.v3 .k-legal li { margin: 3px 0; }
.v3 .k-legal table { border-collapse: collapse; width: 100%; margin: 12px 0 18px; font-size: 14.5px; }
.v3 .k-legal th, .v3 .k-legal td { border-bottom: 1px solid var(--line); padding: 10px 12px 10px 0; text-align: left; vertical-align: top; }
.v3 .k-legal tr:first-child th, .v3 .k-legal tr:first-child td { border-top: 1px solid var(--line); }
.v3 .k-legal th { white-space: nowrap; font-weight: 600; width: 10em; }
@media (max-width: 560px) {
  .v3 .k-legal th { white-space: normal; width: 7em; }
}

/* 3.6.1 会社の節（本人「文字がぐちゃっとしている」）：賞の行の文字の始まりと縦の罫を、数字の行にそろえる。灰の面をやめて罫だけ */
.k-about .k-awards { margin-top: 28px; background: none; border-radius: 0; border-top: 1px solid var(--kline); }
.k-about .k-awards li { padding: 16px 32px 4px; }
.k-about .k-awards li:first-child { padding-left: 0; }
.k-about .k-awards li:last-child { padding-right: 0; }
.k-about .k-awards li + li { border-left: 1px solid var(--kline); border-top: 0; }
.k-about .k-stat-d { white-space: nowrap; }
@media (max-width: 1080px) {
  .k-about .k-awards li { padding-inline: 20px; }
  .k-about .k-awards li:first-child { padding-left: 0; }
  .k-about .k-awards li:last-child { padding-right: 0; }
  .k-about .k-stat-d { white-space: normal; }
}
@media (max-width: 700px) {
  .k-about .k-awards { margin-top: 0; border-top: 0; }   /* 数字の最後の区切り線と二重にしない */
  .k-about .k-awards li, .k-about .k-awards li:first-child, .k-about .k-awards li:last-child { padding: 14px 0; }
  .k-about .k-awards li + li { border-left: 0; border-top: 1px solid var(--kline); }
}

/* 3.6.2 相談の機械よけ（人には見えない欄。読み上げにも出さない） */
.k-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* 3.7.0 物件詳細（手本＝東急リバブル・2026-09-28 本人「リバブルをリファレンスに」）
   写真の格子（大1＋右2）→ 要点の箱（名前・価格・所在地と地図・交通・概要・毎月の費用・見出しへの帯）→ 右に見学と問い合わせ → 表は1本（PC は2組ずつ） */
.k-lv { background: var(--panel); padding-bottom: 64px; }
.k-lv .crumb { padding-top: 18px; }
.k-lv-gal { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 8px; margin: 6px 0 24px; }
.k-lv-gal .gal { display: block; position: relative; }
.k-lv-gal .gal .main { height: 100%; aspect-ratio: 3 / 2; border-radius: 0; background: #e8e5de; }
.k-lv-gal .gal .main img { aspect-ratio: auto; height: 100%; }
.k-lv-count { position: absolute; left: 16px; bottom: 16px; padding: 7px 14px; background: rgba(255, 255, 255, .94); color: var(--ink); font-size: 13px; line-height: 1; letter-spacing: .02em; }
.k-lv-subs { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; min-height: 0; }
.k-lv-sub { display: block; padding: 0; border: 0; background: #e8e5de; overflow: hidden; cursor: pointer; min-height: 0; }
.k-lv-sub img { display: block; width: 100%; height: 100%; object-fit: cover; }
.k-lv-gal .gal-bar { grid-column: 1 / -1; margin-top: 4px; }
.k-lv-gal .th button { border-radius: 0; }
.k-lv-gal .th img { width: 64px; }
.k-lv-gal-1 { grid-template-columns: minmax(0, 1fr); }
.k-lv-gal-1 .gal .main { aspect-ratio: 16 / 7; }
.k-lv-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.k-lv-main { display: grid; gap: 16px; min-width: 0; }
.k-lv-card { background: #fff; padding: 32px 36px; }
.k-lv-card.k-dsec { margin: 0; border-top: 0; }
.k-lv-card h2 { margin: 0 0 16px; }
.k-lv-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; }
.k-lv-tags .k-tag { background: none; color: var(--ink); box-shadow: inset 0 0 0 1px var(--kline); padding: 6px 10px; font-size: 12px; }
.k-lv-tags .k-tag-b { color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.k-lv-tags .k-did { width: auto; margin-left: auto; font-size: 12.5px; }
.k-lv-tags .k-save-d { position: static; margin-left: 4px; }
.k-lv-head h1 { margin: 0; font-family: var(--display); font-weight: 400; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.4; }
.k-lv-line { margin: 8px 0 0; color: var(--muted); }
.k-lv-price { margin: 14px 0 0; font-family: var(--display); font-size: clamp(30px, 3vw, 40px); line-height: 1.2; color: var(--ink); }
.k-lv-price small { margin-left: 6px; font-family: var(--font); font-size: 14px; color: var(--muted); }
.k-lv-yen { margin: 6px 0 0; font-size: 13px; color: var(--muted); }
.k-lv-rows { margin: 22px 0 0; border-top: 1px solid var(--kline); }
.k-lv-rows > div { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--kline); }
.k-lv-rows dt { font-size: 13px; color: var(--muted); padding-top: 2px; }
.k-lv-rows dd { margin: 0; font-size: 15px; line-height: 1.8; }
.k-lv-map { margin-left: 10px; font-size: 13px; white-space: nowrap; }
.k-lv-facts { display: flex; flex-wrap: wrap; row-gap: 4px; }
.k-lv-facts > span { padding: 0 14px; border-left: 1px solid var(--kline); white-space: nowrap; }   /* 直下だけ（中の数字の span に線を引かない） */
.k-lv-facts > span:first-child { padding-left: 0; border-left: 0; }
.k-lv-facts em { margin-right: 6px; font-style: normal; font-size: 12.5px; color: var(--muted); }
.k-lv-ft { font-size: 12.5px; color: var(--muted); }
.k-lv-meta { margin: 14px 0 0; font-size: 13px; color: var(--muted); }
.k-lv-mute { font-size: 12.5px; color: var(--muted); }
.k-lv-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); margin: 24px -36px -32px; border-top: 1px solid var(--kline); }
.k-lv-tabs a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; font-size: 14px; color: var(--ink); text-decoration: none; }
.k-lv-tabs a + a { border-left: 1px solid var(--kline); }
.k-lv-tabs a span { color: var(--accent); }
.k-lv-tabs a:hover { background: var(--panel); }
.k-lv .k-dsec[id] { scroll-margin-top: calc(var(--hd) + 16px); }
.k-lv-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; margin: 0; border-top: 1px solid var(--kline); }
.k-lv-dl > div { display: grid; grid-template-columns: 8em minmax(0, 1fr); gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--kline); }
.k-lv-dl dt { font-size: 13px; color: var(--muted); }
.k-lv-dl dd { margin: 0; font-size: 14.5px; line-height: 1.8; overflow-wrap: anywhere; }
.k-lv-side { position: sticky; top: calc(var(--hd) + 16px); display: grid; gap: 16px; }
.k-lv-side .k-lv-card { padding: 26px 26px 24px; }
.k-lv-side h2 { font-size: 18px; margin: 0 0 14px; }
.k-lv-field { display: grid; gap: 6px; margin: 0 0 14px; }
.k-lv-field span { font-size: 12.5px; color: var(--muted); }
.k-lv-field input { height: 48px; padding: 0 12px; border: 1px solid var(--kline); border-radius: 0; font: inherit; background: #fff; color: var(--ink); }
.k-lv-check { display: flex; align-items: center; gap: 10px; min-height: 40px; font-size: 14px; cursor: pointer; }
.k-lv-check input { width: 18px; height: 18px; accent-color: var(--ink); flex: none; }
.k-lv-ask .k-btn { margin-top: 12px; }
.k-lv-side .k-ask-dl { margin-top: 16px; }
.k-lv-guide { margin: 0; padding: 0 4px; font-size: 13px; line-height: 1.8; color: var(--muted); }
.k-lv-sticky .k-btn { flex: 1 1 0; min-height: 48px; padding: 0 12px; }
@media (max-width: 1080px) {
  .k-lv-grid { grid-template-columns: minmax(0, 1fr) 300px; }
  .k-lv-dl { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .k-lv-grid { grid-template-columns: minmax(0, 1fr); }
  .k-lv-side { display: none; }   /* スマホは画面の下の「見学を相談｜問い合わせる」で相談ページへ */
  .k-lv-gal { grid-template-columns: minmax(0, 1fr); }
  .k-lv-subs { display: none; }
  .k-lv-card { padding: 24px 20px; }
  .k-lv-tabs { margin: 20px -20px -24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-lv-tabs a:nth-child(3) { border-left: 0; }
  .k-lv-tabs a:nth-child(n+3) { border-top: 1px solid var(--kline); }
  .k-lv-rows > div, .k-lv-dl > div { grid-template-columns: 6.5em minmax(0, 1fr); gap: 12px; }
  .k-lv-facts { display: grid; row-gap: 2px; }   /* スマホは要点を縦に（英語の「82.62 m² (889 sq ft)」が横にはみ出した） */
  .k-lv-facts > span { padding: 0; border-left: 0; white-space: normal; }
  .k-lv-sticky { gap: 8px; }
  .k-lv-sticky .k-btn { background: var(--ink); border-color: var(--ink); color: #fff; border-radius: 0; }   /* 主＝問い合わせる（墨の塗り） */
  .k-lv-sticky .k-btn-light { background: #fff; color: var(--ink); border: 1px solid var(--ink); }          /* 従＝見学を相談（線） */
  .k-lv-tags { position: relative; padding-right: 84px; min-height: 44px; }
  .k-lv-tags .k-did { width: auto; margin-left: 0; }
  .k-lv-tags .k-save-d { position: absolute; top: 0; right: 0; margin: 0; box-shadow: inset 0 0 0 1px var(--kline); }   /* 3.8.1 「＋ 保存」がタグの下に1つだけ落ちて浮いていた → タグの行の右上・枠つき */
}

/* 3.7.1 中ページ（本人「やっつけ感がある」・参考の板 docs/reference-guide-2026-09-27/）
   DESIGN.md「使わない型」（「01〜」の大きな番号・「→」）を中ページからも外す。リンクは下線 */
.v3 .btn::after, .v3 .tl::after { content: none; }
.v3 .tl { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.v3 .gnav a::before { content: none; }
.v3 .steps li { grid-template-columns: 28px minmax(0, 1fr); }
.v3 .steps li::before { content: counter(s); font-weight: 500; font-size: 14px; color: var(--muted); line-height: 1.9; }
.v3 .feat li { grid-template-columns: 28px minmax(0, 1fr); }
.v3 .feat li::before { content: counter(f); font-weight: 500; font-size: 14px; color: var(--muted); line-height: 1.9; }
/* 購入の大きな流れ（手持ちの線画4枚） */
.k-gflow { list-style: none; margin: 32px 0 40px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--kline); border-bottom: 1px solid var(--kline); }
.k-gflow li { display: grid; align-content: start; justify-items: start; gap: 4px; padding: 22px 20px 20px; border-left: 1px solid var(--kline); }
.k-gflow li:first-child { padding-left: 0; border-left: 0; }
.k-gflow img { width: auto; height: 96px; margin-bottom: 10px; object-fit: contain; }
.k-gflow b { font-size: 16px; font-weight: 600; }
.k-gflow span { font-size: 13.5px; line-height: 1.7; color: var(--muted); }
/* 払う時期で見る（契約のとき／残金決済・引き渡しのとき／購入したあと） */
.k-gcost { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 12px 0; border-top: 1px solid var(--kline); border-bottom: 1px solid var(--kline); }
.k-gcost > div { padding: 16px 20px 14px; border-left: 1px solid var(--kline); }
.k-gcost > div:first-child { padding-left: 0; border-left: 0; }
.k-gcost h4 { margin: 0 0 8px; font-size: 15px; font-weight: 600; }
.k-gcost ul { margin: 0; padding-left: 1.1em; font-size: 14px; line-height: 1.85; }
/* 海外からの購入：問いと、そのとき決めること */
.k-gqa { margin: 12px 0 16px; border-top: 1px solid var(--kline); }
.k-gqa > div { display: grid; grid-template-columns: 15em minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--kline); }
.k-gqa dt { font-size: 14.5px; font-weight: 600; }
.k-gqa dd { margin: 0; font-size: 14.5px; line-height: 1.85; }
/* 次に読む */
.k-gnext ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--kline); }
.k-gnext li { display: grid; grid-template-columns: 17em minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--kline); }
.k-gnext a { font-weight: 600; }
.k-gnext span { font-size: 14px; color: var(--muted); }
@media (max-width: 760px) {
  .k-gflow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-gflow li:nth-child(3) { padding-left: 0; border-left: 0; }
  .k-gflow li:nth-child(n+3) { border-top: 1px solid var(--kline); }
  .k-gflow img { height: 64px; }
  .k-gcost { grid-template-columns: minmax(0, 1fr); }
  .k-gcost > div { padding-left: 0; border-left: 0; }
  .k-gcost > div + div { border-top: 1px solid var(--kline); }
  .k-gqa > div, .k-gnext li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* 3.7.2 読み物（旧サイトの記事2本を v3 の組みで・左に目次の柱、右に本文） */
.k-art-shell { display: grid; grid-template-columns: 220px minmax(0, 720px); gap: 64px; justify-content: center; padding-top: 24px; padding-bottom: 88px; }
.k-art-toc { position: sticky; top: calc(var(--hd) + 24px); align-self: start; font-size: 13.5px; }
.k-art-toc p { margin: 0 0 10px; font-size: 12.5px; color: var(--muted); }
.k-art-toc ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--kline); }
.k-art-toc li { border-bottom: 1px solid var(--kline); }
.k-art-toc a { display: block; padding: 10px 0; line-height: 1.6; text-decoration: none; }
.k-art-toc a:hover { color: var(--accent); }
.k-art { min-width: 0; }
.k-art-cat { margin: 0 0 12px; font-size: 13px; color: var(--accent); }
.k-art h1 { margin: 0; font-family: var(--display); font-weight: 400; font-size: clamp(28px, 3vw, 40px); line-height: 1.4; }
.k-art-lede { margin: 18px 0 0; font-size: 17px; line-height: 1.9; }
.k-art-meta { margin: 14px 0 0; font-size: 13px; color: var(--muted); }
.k-art-hero { margin: 28px 0 0; }
.k-art-hero img, .k-art-fig img { display: block; width: 100%; height: auto; background: var(--panel); }
.k-art-answer { margin: 28px 0 8px; padding: 22px 24px; border-left: 2px solid var(--accent); background: var(--panel); }
.k-art-answer-t { margin: 0 0 6px; font-size: 12.5px; color: var(--accent); }
.k-art-answer p:last-child { margin: 0; font-size: 16px; line-height: 1.95; }
.k-art-sec, .k-art-faq, .k-art-close { scroll-margin-top: calc(var(--hd) + 20px); }
.k-art h2 { margin: 48px 0 14px; font-size: 22px; line-height: 1.5; }
.k-art p { font-size: 15.5px; line-height: 2; }
.k-art-key { margin: 18px 0; padding: 14px 18px; border-left: 2px solid var(--ink); background: #fff; box-shadow: inset 0 0 0 1px var(--kline); font-size: 15px; }
.k-art-tw { overflow-x: auto; margin: 16px 0; }
.k-art-tw table { border-collapse: collapse; width: 100%; min-width: 480px; font-size: 14px; }
.k-art-tw th, .k-art-tw td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--kline); text-align: left; vertical-align: top; }
.k-art-tw thead th { border-bottom-color: var(--ink); font-weight: 600; }
.k-art-fig { margin: 24px 0; }
.k-art-fig figcaption { margin-top: 8px; font-size: 13px; color: var(--muted); }
.k-art-faq dl { margin: 0; border-top: 1px solid var(--kline); }
.k-art-faq dl > div { padding: 16px 0; border-bottom: 1px solid var(--kline); }
.k-art-faq dt { font-weight: 600; font-size: 15.5px; }
.k-art-faq dd { margin: 6px 0 0; font-size: 15px; line-height: 1.9; }
.k-art-note { margin: 40px 0 0; padding-top: 16px; border-top: 1px solid var(--kline); font-size: 12.5px !important; line-height: 1.8 !important; color: var(--muted); }
@media (max-width: 900px) {
  .k-art-shell { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .k-art-toc { display: none; }
}

/* 3.7.3 英語の購入ガイド：現地で聞く日本語（用語の英日併記） */
.k-gterms dl { margin: 12px 0 0; border-top: 1px solid var(--kline); }
.k-gterms dl > div { display: grid; grid-template-columns: 18em minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--kline); }
.k-gterms dt { font-weight: 600; font-size: 15px; }
.k-gterms dt i { display: block; margin-top: 2px; font-style: normal; font-weight: 400; font-size: 13px; color: var(--muted); }
.k-gterms dd { margin: 0; font-size: 14.5px; line-height: 1.8; }
@media (max-width: 760px) { .k-gterms dl > div { grid-template-columns: minmax(0, 1fr); gap: 4px; } }

/* 3.7.3 物件：外貨で見る（参考）。選んだときだけ表示 */
.k-lv-fx { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 10px 0 0; font-size: 13px; color: var(--muted); }
.k-lv-fx label { display: inline-flex; align-items: center; gap: 8px; }
.k-lv-fx select { height: 32px; padding: 0 8px; border: 1px solid var(--kline); border-radius: 0; background: #fff; color: var(--ink); font: inherit; font-size: 13px; }
.k-lv-fx [data-fx-out] { color: var(--ink); font-size: 15px; }
.k-lv-fx small { font-size: 12px; color: var(--muted); }

/* ---------- 3.8.0 種別の行と種別のページ（2026-09-28 本人「途中のカテゴライズがわかりづらい。カテゴリーだけ、わかりやすく」） ---------- */
.k-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 32px; border: 1px solid var(--kline); }
.k-cats a { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; min-height: 64px; padding: 20px 22px; box-sizing: border-box; color: var(--ink); text-decoration: none; transition: background .15s; }
.k-cats a + a { border-left: 1px solid var(--kline); }
.k-cats b { font-size: 16px; font-weight: 500; }   /* 太字は数字・見出しだけ（配給制） */
.k-cats span { font-size: 14px; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (hover: hover) and (pointer: fine) { .k-cats a:hover { background: var(--panel); } }
.k-cats a[aria-current="page"] { background: var(--ink); color: #fff; }
.k-cats a[aria-current="page"] span { color: rgba(255,255,255,.72); }
.k-cats a[aria-current="page"] b { color: #fff; }
.k-cats a.is-zero:not([aria-current]) b { color: var(--muted); }
.k-cat-lede { margin: 14px 0 0; max-width: 46em; color: var(--muted); font-size: 15px; line-height: 1.8; }
.k-cat-empty { padding: 8px 0 24px; }
.k-cat-empty h2 { margin: 0 0 8px; font-size: 20px; font-weight: 600; }
.k-cat-empty p { margin: 0; color: var(--muted); }
.k-cat-empty .acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.k-cat-know { margin-top: 72px; padding-top: 28px; border-top: 1px solid var(--ink); }
.k-cat-know h2 { margin: 0 0 24px; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.4; font-weight: 600; }
.k-cat-know-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.k-cat-know-g div { padding-right: 24px; }
.k-cat-know-g div + div { padding-left: 24px; border-left: 1px solid var(--kline); }
.k-cat-know-g b { display: block; margin-bottom: 8px; font-size: 15.5px; font-weight: 600; line-height: 1.5; }
.k-cat-know-g p { margin: 0; font-size: 14px; color: var(--muted); line-height: 1.8; }
.k-cat-links { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 28px 0 0; font-size: 14.5px; }
@media (max-width: 900px) {
  .k-cat-know-g { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .k-cat-know-g div:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 700px) {
  .k-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 24px; }
  .k-cats a { min-height: 56px; padding: 15px 16px; }
  .k-cats a:nth-child(3) { border-left: 0; }
  .k-cats a:nth-child(n+3) { border-top: 1px solid var(--kline); }
  .k-cats b { font-size: 15px; }
  .k-cats span { font-size: 13px; }
}
@media (max-width: 560px) {
  .k-cat-know-g { grid-template-columns: 1fr; row-gap: 0; }
  .k-cat-know-g div, .k-cat-know-g div + div { padding: 0; border-left: 0; }
  .k-cat-know-g div + div { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--kline); }
}

/* 3.8.1 読み物が3本になった（住まいを知る「買う前に読む」） */
.pair-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1080px) { .pair-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .pair-3 { grid-template-columns: minmax(0, 1fr); } }
/* 3.8.1 記事の表：スマホは1行ずつの札に（4列の表が横に切れていた）。列の名前は td の data-label */
@media (max-width: 700px) {
  .k-art-tw { overflow: visible; }
  .k-art-tw table { min-width: 0; }
  .k-art-tw thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .k-art-tw tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--kline); }
  .k-art-tw td { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 10px; padding: 3px 0; border: 0; }
  .k-art-tw td::before { content: attr(data-label); color: var(--muted); font-size: 12.5px; }
  .k-art-tw td:first-child { font-weight: 500; }
  .k-art-tw td::before { font-weight: 400; }
}

