/* ==========================================================================
   KPT journey polish — HDB Upgrade inputs → Your Position → What this budget buys.
   Scoped to body.kpj so no other page changes. Restyle only: markup and logic are unchanged.
   Direction: restrained, premium, whitespace, serif for headlines and numbers, sans for controls,
   soft depth on the results hero only, one gold label per screen, navy for action, green for WhatsApp.
   ========================================================================== */
.kpj{
  --card:#FFFFFF; --track:#EFEDE6; --soft:#B7BAC2; --r-card:16px; --r-ctl:12px;
  --shadow:0 1px 2px rgba(22,33,62,.04),0 10px 30px rgba(22,33,62,.07);
}
.kpj main{ padding-bottom:8px; }

/* ---- header: one small wordmark; Ken's portrait only on the first screen ---- */
.kpj .kpt-header.kpt-shell{ padding:22px 24px 0; flex-wrap:nowrap; min-height:58px; }
.kpj .kpt-header .brand{ font-size:11px; letter-spacing:.16em; }
.kpj .kpt-byline{ width:auto; }
.kpj .kpt-byline img{ width:30px; height:30px; }
.kpj[data-view="result"] .kpt-byline{ display:none; }
@media (max-width:640px){ .kpj .kpt-header.kpt-shell{ padding:22px 20px 0; } }

/* ---- type ---- */
.kpj .kpt-h2{ font-size:31px; line-height:1.15; letter-spacing:-.01em; }
.kpj .kpt-eyebrow{ margin-bottom:12px; }
.kpj .kpt-figure{ font-size:64px; letter-spacing:-.02em; }
@media (max-width:640px){ .kpj .kpt-figure{ font-size:56px; } .kpj .kpt-h2{ font-size:29px; } }

/* ---- inputs: 16px+ (no iOS zoom), quiet ledger lines ---- */
.kpj .kpt-field input{ font-size:24px; padding:6px 0 10px; }
.kpj .kpt-field input::placeholder{ color:var(--soft); opacity:1; }
.kpj .kpt-field label{ font-size:13px; }
.kpj .kpt-qlabel{ font-size:13px; margin:26px 0 8px; }

/* ---- segmented controls: "Who's buying?" is primary; Timing and Residency are secondary ---- */
.kpj .kpt-choices{ display:flex; gap:0; flex-wrap:nowrap; background:var(--track); border-radius:var(--r-ctl); padding:3px; margin:0; }
.kpj .kpt-choice{ flex:1; text-align:center; border:none; border-radius:10px; padding:11px 8px; font-size:15px; color:var(--muted); line-height:1.25; }
.kpj .kpt-choice[aria-pressed="true"]{ background:var(--card); color:var(--ink); font-weight:600; box-shadow:0 1px 3px rgba(22,33,62,.12); border:none; }
.kpj .kpj-sub{ font-size:12px; margin:18px 0 6px; }
.kpj .kpj-small{ background:transparent; box-shadow:inset 0 0 0 1px var(--line); }
.kpj .kpj-small .kpt-choice{ font-size:13px; padding:9px 8px; }
.kpj .kpj-small .kpt-choice[aria-pressed="true"]{ font-weight:600; box-shadow:0 1px 3px rgba(22,33,62,.1), 0 0 0 1px var(--line); }
.kpj .kpt-twocol{ gap:20px; }
.kpj .kpt-quickread{ font-size:15px; }

/* ---- disclosure rows: label left, + right ---- */
.kpj .kpt-disclosure{ border-top:1px solid var(--line); padding:16px 0; margin-top:6px; }
.kpj .kpt-disclosure summary{ display:flex; justify-content:space-between; align-items:center; font-size:15px; font-weight:600; color:var(--navy-soft); }
.kpj .kpt-disclosure summary::before{ content:none; }
.kpj .kpt-disclosure summary::after{ content:"+"; font-size:18px; font-weight:400; color:var(--muted); line-height:1; }
.kpj .kpt-disclosure[open] summary::after{ content:"–"; }

/* ---- actions ---- */
.kpj .kpj-btn{ display:flex; align-items:center; justify-content:center; width:100%; padding:17px 22px; font-size:16px; font-weight:600;
  border-radius:999px; background:var(--ink); color:#fff; border:1px solid var(--ink); text-align:center; cursor:pointer; }
.kpj .kpj-btn:hover{ background:var(--navy-soft); color:#fff; }
.kpj .kpj-btn--wa{ background:var(--wa); border-color:var(--wa); color:#fff; }
.kpj .kpj-btn--wa:hover{ background:#176634; }
.kpj .kpj-btn--ghost{ background:transparent; color:var(--ink); }
.kpj .kpj-btn--ghost:hover{ background:var(--ink); color:#fff; }
.kpj .kpj-link{ display:block; width:100%; text-align:center; background:none; border:none; padding:14px 0 0; font:600 15px var(--sans); color:var(--navy-soft); cursor:pointer; }
.kpj .kpj-link:hover{ color:var(--gold); }
.kpj .kpj-link--muted{ font-weight:500; font-size:14px; color:var(--muted); }

/* ---- Your Position ---- */
.kpj .kpt-hero-head{ font-family:var(--serif); font-weight:400; font-size:21px; line-height:1.3; margin:14px 0 6px; }
.kpj .kpt-hero-sub{ font-size:15px; line-height:1.5; margin:0; }
.kpj .kpt-callout{ border-left:none; background:var(--gold-wash); border-radius:14px; padding:14px 16px; margin:18px 0 0; }
.kpj .kpt-gauge{ padding-bottom:30px; }
.kpj .kpt-gauge .track{ height:3px; background:#E4E1D8; margin:30px 0 10px; }
.kpj .kpt-gauge .band{ top:0; height:3px; background:var(--ink); opacity:.9; border-radius:2px; }
.kpj .kpt-gauge .pin{ top:-7px; background:var(--card); border:2px solid var(--ink); box-shadow:0 2px 6px rgba(22,33,62,.2); }
.kpj .kpt-gauge .pin.gold{ background:var(--card); }
.kpj .kpt-gauge .pin-tag.gold, .kpj .kpt-gauge .pin-tag{ color:var(--ink); }
.kpj .kpj-stats{ display:flex; gap:28px; flex-wrap:wrap; margin-top:4px; padding:20px 0 14px; border-top:1px solid var(--line); }
.kpj .kpj-stats b{ display:block; font:400 24px var(--serif); }
.kpj .kpj-stats span{ font-size:12px; color:var(--muted); }
.kpj #result-root .kpt-section{ padding:22px 0; }
.kpj .kpt-take{ margin:0; }

/* ---- What this budget buys ---- */
.kpj .res-chip{ display:inline-flex; align-items:center; gap:8px; margin:18px 0 0; padding:9px 15px 9px 13px; border-radius:999px; background:var(--card);
  box-shadow:var(--shadow); font-size:14px; font-weight:600; color:var(--ink); }
.kpj .res-chip i{ font-style:normal; font-weight:400; color:var(--muted); }
.kpj a.res-chip:hover{ color:var(--gold); }
.kpj .res-h{ font-family:var(--serif); font-weight:400; font-size:30px; line-height:1.15; letter-spacing:-.01em; margin:22px 0 8px; }
.kpj .res-ctx{ font-size:13px; color:var(--muted); margin:0; }
.kpj .res-card{ margin-top:22px; background:var(--card); border-radius:var(--r-card); box-shadow:var(--shadow); padding:22px 20px 8px; }
.kpj .res-bar{ margin:0 0 20px; }
.kpj .res-bar .l{ display:flex; justify-content:space-between; align-items:baseline; font-size:14px; color:var(--muted); margin-bottom:9px; }
.kpj .res-bar .l .v{ font-family:var(--serif); font-size:25px; color:var(--ink); }
.kpj .res-bar .l .v small{ font:12px var(--sans); color:var(--muted); }
.kpj .res-bar .tag{ font:600 10px var(--sans); letter-spacing:.08em; text-transform:uppercase; color:var(--gold); margin-left:8px; }
.kpj .res-trk{ height:12px; border-radius:6px; background:#F1EEE6; overflow:hidden; }
.kpj .res-fill{ height:100%; border-radius:6px; background:var(--ink); transform-origin:left; animation:kpj-grow .6s cubic-bezier(.2,.7,.2,1) both; }
.kpj .res-bar.m1 .res-fill{ background:#5B6692; } .kpj .res-bar.m2 .res-fill{ background:#9CA4C4; }
@keyframes kpj-grow{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@media (prefers-reduced-motion:reduce){ .kpj .res-fill{ animation:none; } }
.kpj .res-cap{ font-size:12px; color:var(--muted); margin:-6px 0 14px; }
.kpj .res-trade{ border:none; padding:0; margin:24px 0 0; font-family:var(--serif); font-size:19px; line-height:1.4; }
.kpj .res-list{ margin-top:24px; background:var(--card); border-radius:16px; box-shadow:var(--shadow); }
.kpj .res-list > *+*{ border-top:1px solid var(--line); }
.kpj .res-also{ margin:0; padding:0; border:none; }
.kpj .res-also summary{ list-style:none; display:flex; justify-content:space-between; align-items:center; padding:16px 18px; font:500 15px var(--sans); letter-spacing:0; text-transform:none; color:var(--ink); }
.kpj .res-also summary::-webkit-details-marker{ display:none; }
.kpj .res-also summary::before{ content:none; }
.kpj .res-also summary::after{ content:"›"; font-size:20px; color:var(--muted); transform:rotate(0deg); transition:transform .2s; }
.kpj .res-also[open] summary::after{ content:"›"; transform:rotate(90deg); }
.kpj .res-also .res-f{ padding:0 18px; margin:0 0 16px; }
.kpj .res-ecrow{ padding:15px 18px; font-size:15px; }
.kpj .res-ecrow span{ display:block; color:var(--muted); font-size:13px; margin-top:2px; line-height:1.45; }
.kpj .res-f{ margin:14px 0 0; font-size:14px; line-height:1.5; }
.kpj .res-f b{ display:block; font:600 11px var(--sans); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:3px; }
.kpj .res-f span{ display:block; margin-bottom:4px; }
.kpj .res-ken{ margin:28px 0 0; padding:0; border:none; display:flex; gap:12px; align-items:flex-start; }
.kpj .res-ken img{ width:38px; height:38px; border-radius:50%; object-fit:cover; object-position:center 20%; flex:none; }
.kpj .res-ken h3{ font:600 11px var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin:2px 0 0; }
.kpj .res-ken h3 span{ font-weight:500; letter-spacing:.03em; text-transform:none; color:var(--muted); margin-left:6px; }
.kpj .res-ken p{ font-family:var(--serif); font-size:17px; line-height:1.45; margin:6px 0 0; }
.kpj .res-ken .by{ font:600 12px var(--sans); color:var(--muted); margin-top:8px; }
.kpj .res-cta{ margin:30px 0 0; }
.kpj .res-src{ margin:18px 0 0; font-size:11px; color:var(--muted); line-height:1.5; text-align:center; }
.kpj .res-bud-note{ font-size:13px; color:var(--muted); margin:10px 0 0; }

.kpj #result-root .kpt-section + .kpt-section{ padding-top:14px; }
.kpj #result-root .kpt-section:last-of-type{ padding-top:14px; }

.kpj .kpj-fig-range{ font-size:42px; }
@media (min-width:641px){ .kpj .kpj-fig-range{ font-size:56px; } }

/* ---- "no single trade-off stood out": the evidence is the hero ---- */
.kpj .res-sum{ padding:26px 22px 22px; }
.kpj .res-big{ font:400 56px/1 var(--serif); letter-spacing:-.02em; color:var(--ink); }
.kpj .res-big small{ font:400 16px var(--sans); color:var(--muted); letter-spacing:0; }
.kpj .res-rng{ position:relative; height:14px; background:#F1EEE6; border-radius:7px; }
.kpj .res-rng .band{ position:absolute; top:0; height:100%; background:var(--ink); border-radius:7px; opacity:.88; }
.kpj .res-rng .dot{ position:absolute; top:50%; width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:50%; background:#fff; border:2px solid var(--ink); box-shadow:0 2px 6px rgba(22,33,62,.2); }
.kpj .res-rtxt{ font-size:13px; color:var(--muted); margin:14px 0 0; }
.kpj .res-sumtxt{ font-family:var(--serif); font-size:18px; line-height:1.4; margin:24px 0 0; color:var(--ink); }

/* Buying before selling: four plain rows, no cards */
.kpj .kpj-rows{ padding:6px 0 10px; border-top:1px solid var(--line); }
.kpj .kpj-row{ padding:16px 0; border-bottom:1px solid var(--line); }
.kpj .kpj-row-h{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.kpj .kpj-row-h span{ font-size:14px; color:var(--muted); }
.kpj .kpj-row-h b{ font:400 20px var(--serif); text-align:right; }
.kpj .kpj-row p{ margin:6px 0 0; font-size:13px; line-height:1.5; color:var(--muted); }

/* ---- Buyer journey (/buy/): one-screen inputs, diagnosis result ---- */
.kpj .kpb-block{ margin-top:30px; }
.kpj .kpb-q{ font-size:13px; color:var(--muted); margin:0 0 8px; }
.kpj .kpb-quiet-head{ font:600 11px var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin:38px 0 0; padding-top:22px; border-top:1px solid var(--line); }
.kpj .kpb-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.kpj .kpb-chip{ border:none; background:var(--track); color:var(--muted); font:500 14px var(--sans); padding:10px 14px; border-radius:999px; cursor:pointer; line-height:1.2; }
.kpj .kpb-chip[aria-pressed="true"]{ background:var(--ink); color:#fff; }
.kpj .kpb-chip[aria-disabled="true"]{ opacity:.45; cursor:default; }
.kpj .kpb-hint{ font-size:12px; color:var(--muted); margin:8px 0 0; }
.kpj .kpb-text{ margin-top:12px; }
.kpj .kpb-text input{ font-size:17px; padding:8px 0 10px; }
.kpj .kpb-constraint{ font-size:17px; line-height:1.5; color:var(--ink); margin:0 0 10px; font-weight:600; }
.kpj .kpb-meaning{ font-size:15px; line-height:1.55; color:var(--muted); margin:0; max-width:56ch; }
.kpj .kpb-routes{ margin-top:6px; }
.kpj .kpb-route{ padding:16px 0; border-top:1px solid var(--line); }
.kpj .kpb-route:last-child{ border-bottom:1px solid var(--line); }
.kpj .kpb-route b{ display:block; font:400 19px var(--serif); }
.kpj .kpb-route p{ margin:5px 0 0; font-size:14px; line-height:1.5; color:var(--muted); }
.kpj .kpb-route p.give{ color:var(--navy-soft); }
.kpj .kpb-head{ margin:34px 0 8px; }

/* FIND V1 - Developments worth investigating */
.kpf{ margin:44px 0 8px; }
.kpf-h{ font:400 26px/1.2 var(--serif); margin:0 0 10px; color:var(--ink); }
.kpf-lede{ font-size:15px; line-height:1.55; color:var(--muted); margin:0 0 14px; max-width:60ch; }
.kpf-line{ font-size:14px; line-height:1.5; margin:8px 0; color:var(--ink); }
.kpf-btn{ font:600 14px var(--sans); padding:10px 16px; border-radius:var(--r-ctl); border:1px solid var(--ink); background:var(--ink); color:#fff; cursor:pointer; }
.kpf-link{ background:none; border:none; padding:0; font:600 14px var(--sans); color:var(--navy-soft); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.kpf-link:hover{ color:var(--gold); }
.kpf-box{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; background:var(--track); border-radius:var(--r-ctl); padding:14px; margin:8px 0 12px; }
.kpf-box[hidden]{ display:none; }
.kpf-box label{ display:flex; align-items:center; gap:8px; font-size:14px; }
.kpf-box input{ width:96px; font:400 16px var(--sans); padding:9px 10px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); }
.kpf-box .kpf-wide{ flex:1 1 100%; flex-wrap:wrap; }
.kpf-box .kpf-wide input{ width:100%; max-width:280px; }
.kpf-err{ flex:1 1 100%; margin:0; font-size:13px; color:#9B2C2C; }
.kpf-err:empty{ display:none; }
.kpf-chips{ flex:1 1 100%; display:flex; flex-wrap:wrap; gap:6px; }
.kpf-chip{ font:500 13px var(--sans); padding:7px 11px; border-radius:999px; border:1px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; }
.kpf-chip[aria-pressed="true"]{ background:var(--ink); color:#fff; border-color:var(--ink); }
.kpf-note{ flex:1 1 100%; margin:4px 0 0; font-size:12.5px; line-height:1.5; color:var(--muted); }
.kpf-sugg{ flex:1 1 100%; margin:0; font-size:13.5px; }
.kpf-tag{ display:inline-block; font-size:13px; padding:4px 10px; border-radius:999px; background:var(--track); color:var(--ink); }
.kpf-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-card); padding:20px; margin:14px 0; box-shadow:var(--shadow); }
.kpf-card h3{ font:400 21px/1.25 var(--serif); margin:0 0 4px; }
.kpf-card p{ font-size:14.5px; line-height:1.55; margin:8px 0 0; }
.kpf-sale{ font:600 11px var(--sans); letter-spacing:.04em; text-transform:uppercase; color:var(--navy-soft); border:1px solid var(--line); border-radius:999px; padding:2px 8px; vertical-align:middle; margin-left:6px; }
.kpf-card .kpf-meta{ color:var(--muted); font-size:13.5px; margin-top:0; }
.kpf-card .kpf-price{ font-weight:600; }
.kpf-card .kpf-quiet{ color:var(--muted); font-size:13.5px; }
.kpf-go{ display:inline-block; margin-top:14px; font:600 15px var(--sans); color:var(--navy-soft); text-decoration:none; }
.kpf-go:hover{ color:var(--gold); }
.kpf-gh{ font:600 16px/1.35 var(--sans); color:var(--ink); margin:26px 0 0; }
.kpf-un, .kpf-msg{ border-left:3px solid var(--gold); background:var(--track); border-radius:0 var(--r-ctl) var(--r-ctl) 0; padding:12px 16px; margin:14px 0; font-size:14px; line-height:1.55; }
.kpf-un p, .kpf-msg p{ margin:6px 0; }
.kpf-un ul, .kpf-chg{ margin:6px 0; padding-left:18px; }
.kpf-chg{ list-style:none; padding-left:0; }
.kpf-chg li{ margin:8px 0; }
.kpf-unh{ font-weight:600; }
.kpf-order{ font-size:12.5px; color:var(--muted); margin:10px 0; }
.kpf-meth{ margin:14px 0 0; font-size:14px; }
.kpf-meth summary{ cursor:pointer; font-weight:600; color:var(--navy-soft); }
.kpf-meth .inner p{ margin:8px 0; line-height:1.55; color:var(--muted); }
.kpf-loc{ border-left:3px solid var(--gold); background:var(--track); border-radius:0 var(--r-ctl) var(--r-ctl) 0; padding:14px 16px; margin:14px 0; font-size:14.5px; line-height:1.55; }
.kpf-loc p{ margin:7px 0; }
.kpf-loc .kpf-chips{ margin:10px 0 4px; }
.kpf-acts{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:10px 0; }
.kpf-skip{ margin-top:12px; }
.kpf-gnote{ margin:4px 0 0; font-size:13.5px; line-height:1.5; }

/* ---- V10: Huttons inventory block on New launch cards, tick boxes, bottom bar ---- */
.kpf-basis{ display:inline-block; font:600 11.5px var(--sans); color:var(--navy-soft); border:1px solid var(--line); border-radius:999px; padding:2px 9px; margin:8px 0 2px; }
.kpf-hut, .kpf-src{ margin:12px 0 0; padding-top:10px; border-top:1px solid var(--line); }
.kpf-hl{ display:block; font:600 12px var(--sans); letter-spacing:.02em; color:var(--muted); margin-bottom:2px; }
.kpf-card .kpf-hsize{ margin:4px 0 0; }
.kpf-card .kpf-from{ font:400 26px/1.2 var(--serif); color:var(--ink); margin:8px 0 2px; }
.kpf-card .kpf-hbud{ margin:2px 0 0; }
.kpf-card .kpf-hnote, .kpf-card .kpf-hq{ margin-top:4px; }
.kpf-card .kpf-hq{ color:var(--muted); font-size:13.5px; }
.kpf-src p{ margin:2px 0 0; }
.kpf-acts2{ display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin-top:14px; }
.kpf-acts2 .kpf-go{ margin-top:0; }
.kpf-tick{ display:flex; align-items:center; gap:10px; margin-top:12px; font:500 14px var(--sans); color:var(--ink); cursor:pointer; min-height:44px; }
.kpf-tick input{ width:22px; height:22px; accent-color:var(--ink); flex:0 0 auto; }
.kpf-tick.is-off{ color:var(--muted); cursor:default; }
.kpf-moreb{ margin:6px 0 0; }
.kpf-pick{ margin:6px 0 0; font-size:12.5px; }
.kpf-bar{ position:sticky; bottom:0; z-index:5; background:#fff; border-top:1px solid var(--line); padding:12px 0 14px; margin-top:16px; text-align:center; }
.kpf-wa{ display:flex; align-items:center; justify-content:center; width:100%; padding:15px 20px; font:600 16px var(--sans); border-radius:999px; background:var(--wa); color:#fff; text-decoration:none; }
.kpf-bar p{ margin:8px 0 0; font-size:12.5px; line-height:1.5; color:var(--muted); }

/* ---- V10.1 simplified result cards: price first, name second, then the one or two facts that decide. No photos, pills or boxes. ---- */
.kpf-lede2{ margin:-8px 0 14px; font-size:14px; }
.kpf-card .kpf-name{ font:400 20px/1.25 var(--serif); margin:0 0 3px; overflow-wrap:anywhere; }
.kpf-card .kpf-sz{ margin:18px 0 0; font-size:14px; color:var(--muted); }
.kpf-card .kpf-pr{ margin:2px 0 0; font:400 28px/1.15 var(--serif); color:var(--ink); }
.kpf-card .kpf-pr b{ font-weight:400; }
.kpf-card .kpf-pl{ font:400 15px var(--sans); color:var(--muted); }
.kpf-card .kpf-pn{ font:400 13px var(--sans); color:var(--muted); }
.kpf-card .kpf-bud{ margin:6px 0 0; font:600 14.5px var(--sans); }
.kpf-bud--ok{ color:#2F6B4F; }
.kpf-bud--over{ color:#8A5A12; }
.kpf-card .kpf-sales{ margin:16px 0 0; font-size:14px; color:var(--ink); }
.kpf-card .kpf-latest, .kpf-card .kpf-q{ margin:2px 0 0; font-size:13px; color:var(--muted); }
.kpf-card .kpf-q{ margin-top:8px; }
.kpf-cta{ display:flex; align-items:center; justify-content:center; width:100%; box-sizing:border-box; margin-top:18px; padding:14px 18px; font:600 15.5px var(--sans); border-radius:var(--r-ctl); background:var(--ink); color:#fff; text-decoration:none; }
.kpf-cta:hover{ background:var(--navy-soft); }
.kpf-gh{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; font:400 22px/1.2 var(--serif); margin:30px 0 0; }
.kpf-upd{ font:400 13px var(--sans); color:var(--muted); white-space:nowrap; }
.kpf-i{ background:none; border:0; padding:4px; font-size:14px; color:var(--muted); cursor:pointer; }
.kpf-infotxt{ margin:4px 0 0; font-size:13px; }
.kpf-meth summary{ list-style:none; }
.kpf-meth summary::before{ content:"▸ "; }
.kpf-meth[open] summary::before{ content:"▾ "; }
.kpf-bar{ text-align:left; box-shadow:0 -6px 18px rgba(0,0,0,.06); padding:12px 16px 14px; }
.kpf-sel{ list-style:none; margin:0 0 10px; padding:0; display:grid; gap:6px; }
.kpf-sel li{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:14px; }
.kpf-sel li span{ min-width:0; overflow-wrap:anywhere; }
.kpf-sel i{ display:block; font-style:normal; color:var(--muted); font-size:13px; margin-top:1px; }
.kpf-sel button{ flex:0 0 auto; width:32px; height:32px; border:0; background:none; font-size:15px; color:var(--muted); cursor:pointer; }
.kpf-bar .kpf-wa{ background:var(--ink); }
.kpf-bar p{ text-align:center; }
@media (min-width:600px){ .kpf-cta{ width:auto; display:inline-flex; padding:13px 30px; } }

/* ---- V10.1 search summary, Change search panel, quiet reveal, How this works ---- */
.kpf-h{ margin:0 0 14px; }
.kpf-sum{ margin:0 0 6px; }
.kpf-sum p{ margin:0; }
.kpf-s1{ font-size:15px; color:var(--ink); }
.kpf-s2{ margin-top:2px; font-size:14px; line-height:1.45; color:var(--muted); }
.kpf-chg-btn{ margin-top:8px; font:600 14.5px var(--sans); }
.kpf-panel{ background:var(--track); border-radius:var(--r-card); padding:16px; margin:12px 0 6px; display:grid; gap:14px; }
.kpf-fld{ display:grid; gap:6px; min-width:0; }
.kpf-fld > span{ font:600 13px var(--sans); color:var(--muted); }
.kpf-panel input[type=text]{ width:100%; box-sizing:border-box; font:400 16px var(--sans); padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); }
.kpf-pair{ display:flex; align-items:center; gap:8px; }
.kpf-pair input{ flex:1 1 0; min-width:0; }
.kpf-pair i{ font-style:normal; font-size:14px; color:var(--muted); }
.kpf-ck{ display:flex; align-items:center; gap:10px; font-size:14px; min-height:36px; }
.kpf-ck input{ width:20px; height:20px; accent-color:var(--ink); }
.kpf-update{ width:100%; padding:14px 18px; font-size:15.5px; border-radius:var(--r-ctl); }
.kpf-more{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; box-sizing:border-box; min-height:48px; margin:2px 0 0; padding:12px 16px; border:0; border-radius:var(--r-ctl); background:var(--track); color:var(--muted); font:600 14.5px var(--sans); cursor:pointer; }
.kpf-more:hover{ color:var(--ink); }
.kpf-moreb{ margin:12px 0 0; }
.kpf-meth summary span{ font-weight:400; color:var(--muted); }
.kpf-meth .inner ul{ margin:6px 0; padding-left:18px; color:var(--muted); line-height:1.55; font-size:14px; }
.kpf-meth .inner li{ margin:4px 0; }
.kpf-dd summary{ cursor:pointer; font:500 14px var(--sans); color:var(--navy-soft); padding:6px 0; }
.kpf-dd .kpf-chips{ margin-top:8px; }
#changeBudget[hidden]{ display:none !important; }

/* ---- V10.1 layered How this works and quieter no-results ---- */
.kpf-meth > .inner h4{ margin:16px 0 2px; font:600 14px var(--sans); color:var(--ink); }
.kpf-meth > .inner h4:first-child{ margin-top:10px; }
.kpf-meth > .inner > p{ margin:2px 0 0; }
.kpf-data{ margin-top:18px; border-top:1px solid var(--line); padding-top:4px; }
.kpf-meth .kpf-data summary{ font:500 14px var(--sans); color:var(--navy-soft); padding:10px 0; }
.kpf-meth .kpf-data summary::before{ content:none; }
.kpf-meth .kpf-data summary::after{ content:" ▸"; }
.kpf-meth .kpf-data[open] summary::after{ content:" ▾"; }
.kpf-data .inner p{ font-size:13.5px; }
.kpf-none{ padding:18px 16px; }
.kpf-none .kpf-nh{ font-size:17px; margin:0 0 4px; }
.kpf-chg--act li{ margin:10px 0 0; }
.kpf-chg--act .kpf-link{ font:600 15px var(--sans); }

/* ---- V10.2 Buy result as a bridge ---- */
.kpj .kpb-sec{ font:600 11px var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin:28px 0 8px; }
.kpj .kpb-trade{ font-family:var(--serif); font-size:20px; line-height:1.4; margin:0; }
.kpj .kpb-ways{ border-bottom:1px solid var(--line); }
.kpj .kpb-way{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:13px 0; border-top:1px solid var(--line); }
.kpj .kpb-way b{ font:400 18px var(--serif); }
.kpj .kpb-way span{ font-size:14px; line-height:1.4; color:var(--muted); text-align:right; }
.kpj .kpb-indic{ margin:8px 0 0; font-size:12.5px; color:var(--muted); }
.kpj .res-cta--bridge{ margin-top:26px; }
.kpj .res-cta--bridge + .kpj-link--muted{ display:block; margin:16px auto 6px; }

/* ---- V10.2 Beyond the numbers (results page only; text first, one small photo) ---- */
.kpj .kpb-beyond{ margin:34px 0 0; padding:26px 0 8px; border-top:1px solid var(--line); }
.kpj .kpb-beyond[hidden], .kpj #kenLegacy[hidden]{ display:none !important; }
.kpj .kpb-eye{ font:600 11.5px var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin:0; }
.kpj .kpb-hi{ font:400 26px/1.2 var(--serif); margin:6px 0 14px; }
.kpj .kpb-who{ display:flex; align-items:center; gap:12px; }
.kpj .kpb-who img{ width:48px; height:48px; border-radius:50%; object-fit:cover; object-position:center 20%; flex:none; }
.kpj .kpb-who p{ margin:0; font-size:16px; line-height:1.4; }
.kpj .kpb-txt{ margin:14px 0 0; font-size:15px; line-height:1.55; color:var(--ink); max-width:46ch; }
.kpj .kpb-tt{ display:inline-block; margin-top:14px; padding:6px 0 2px; font-weight:600; font-size:15.5px; color:var(--ink); border-bottom:1.5px solid var(--ink); text-decoration:none; }
.kpj .kpb-act{ margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.kpj .kpb-act p{ margin:0; font-size:14px; color:var(--muted); }
.kpj .kpb-wa{ display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:100%; margin-top:10px; padding:14px 18px; border:1.5px solid var(--ink); border-radius:var(--r-ctl); font:600 15.5px var(--sans); color:var(--ink); text-decoration:none; background:transparent; }
.kpj .kpb-wa:hover{ background:var(--ink); color:#fff; }
@media (min-width:600px){ .kpj .kpb-wa{ width:auto; display:inline-flex; padding:13px 30px; } }
.kpj #kpfH{ scroll-margin-top:24px; }

/* ---- V10.3 ---- */
/* header, content and footer share one column on journey pages (desktop), with a hairline above the footer */
/* widths, header and footer shell now live in kpt-shell.css (V10.4) */
.kpj .kpb-opt{ font:400 13px var(--sans); color:var(--muted); margin-left:6px; }
.kpj .kpb-help{ margin:10px 0 0; font-size:13px; line-height:1.5; color:var(--muted); }
.kpj .kpb-text .kpb-help{ margin-top:8px; }
.kpj .kpb-quiet{ opacity:.8; font-size:12.5px; }
.kpj .kpb-caption{ margin:12px 0 0; font-size:13px; line-height:1.5; color:var(--muted); text-align:center; }

/* ---- V10.3.1 what the priorities did, on the FIND list ---- */
.kpf-effect{ margin:6px 0 4px; }
.kpf-effect p{ margin:4px 0 0; font-size:13.5px; line-height:1.5; color:var(--muted); }
.kpj .kpb-chip[data-off="1"]{ opacity:.4; cursor:not-allowed; }

/* V10.3.6: confirmed-bedroom badge, the muted resale bedroom line, and one muted line under a group heading */
.kpf-card .kpf-badge{ display:inline-block; margin:0 0 10px; padding:3px 10px; border-radius:999px; background:#E6F1EB; color:#2F6B4F; font:600 12.5px var(--sans); }
.kpf-card .kpf-bn{ margin:4px 0 0; font-size:13.5px; color:var(--muted); }
.kpf-gsub{ margin:2px 0 0; font-size:13.5px; line-height:1.45; color:var(--muted); }
.kpf-hint{ margin:6px 0 0; font-size:13px; line-height:1.45; color:var(--muted); }
