/* ==========================================================
   KJRE PRODUCTION SYSTEM  |  Component layer: Edgewood V1.2
   Extracted verbatim from edgewood-parts.html (LOCKED). DO NOT EDIT BY HAND.
   01-tokens.css + 02-system.css concatenate byte-for-byte to
   the Homepage V2 style block. A build check asserts this.
   ========================================================== */
/* ---------- sourced data line, sits under any figure block ---------- */
.src{display:flex;flex-wrap:wrap;gap:.5em 1.4em;align-items:baseline;margin-top:clamp(14px,1.8vw,22px);padding-top:clamp(12px,1.6vw,18px);border-top:1px solid var(--rule-soft)}
.src span{font-size:.66rem;font-weight:300;letter-spacing:.04em;color:var(--ink-3)}
.src b{font-weight:500;color:var(--ink-2);letter-spacing:.14em;text-transform:uppercase;font-size:.58rem}
.sec--ink .src{border-color:rgba(244,241,232,.14)}
.sec--ink .src span{color:rgba(244,241,232,.62)}
.sec--ink .src b{color:rgba(244,241,232,.85)}

/* ---------- detached against attached ---------- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft)}
.two > div{background:var(--paper);padding:clamp(18px,2.3vw,30px);display:flex;flex-direction:column;gap:.85em}
.sec--panel .two > div{background:var(--paper)}
.two .k{font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--canopy)}
.two h3{font-family:var(--kjre-display);font-size:clamp(1.5rem,2.4vw,2rem);color:var(--ink);margin:0;font-weight:400;line-height:1.1}
.two .sub{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.two ul{list-style:none;margin:.4em 0 0;padding:0;display:flex;flex-direction:column;gap:.55em}
.two li{font-size:.82rem;font-weight:300;color:var(--ink-2);display:flex;justify-content:space-between;gap:1.5em;border-bottom:1px solid var(--rule-soft);padding-bottom:.55em}
.two li:last-child{border-bottom:0}
.two li b{font-weight:500;color:var(--ink);white-space:nowrap}

/* ---------- current market pathway ----------
   The neighborhood guide holds durable local expertise. Current
   statistics live in the market reporting system. This component
   is the join between them, and it deliberately carries no figures. */
.mkthub{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,2.4vw,34px);align-items:start;background:var(--paper-2);border:1px solid var(--rule);border-left:2px solid var(--brass);padding:clamp(20px,2.8vw,38px)}
.sec--panel .mkthub{background:var(--paper)}
.mkthub__k{font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);white-space:nowrap;padding-top:.35em}
.mkthub h3{font-family:var(--kjre-display);font-size:clamp(1.18rem,1.9vw,1.55rem);line-height:1.2;margin:0 0 .7em;font-weight:400;max-width:34ch}
.mkthub p{font-size:.88rem;font-weight:300;color:var(--ink-2);line-height:1.72;max-width:60ch}
.mkthub__cta{margin-top:1.5em}
.mkthub .ph{margin-top:1.5em}

/* ---------- age distribution ---------- */
.age{display:flex;flex-direction:column;gap:clamp(10px,1.4vw,16px)}
.age__row{display:grid;grid-template-columns:minmax(0,10em) minmax(0,1fr) auto;gap:clamp(12px,2vw,24px);align-items:center}
.age__lab{font-size:.78rem;font-weight:300;color:var(--ink-2)}
.age__bar{height:10px;background:var(--paper-3);position:relative;overflow:hidden}
.age__bar i{position:absolute;inset:0 auto 0 0;background:var(--canopy);display:block}
.age__bar i.alt{background:var(--brass)}
.age__n{font-size:.74rem;font-weight:400;color:var(--ink);white-space:nowrap;min-width:5.5em;text-align:right}

/* ---------- linked place list ---------- */
.spots{display:flex;flex-direction:column}
.spot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(10px,2vw,28px);align-items:baseline;padding-block:clamp(12px,1.5vw,18px);border-top:1px solid var(--rule-soft)}
.spot:last-child{border-bottom:1px solid var(--rule-soft)}
.spot p{font-size:.85rem;font-weight:300;color:var(--ink-2);line-height:1.66;margin:0}
.spot p b{font-weight:500;color:var(--ink)}
.spot .go{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}
.spot a.go:hover{color:var(--canopy)}

/* ---------- compare strip ---------- */
.vs{display:flex;flex-direction:column}
.vs__row{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr) auto;gap:clamp(12px,2.2vw,32px);align-items:start;padding-block:clamp(18px,2.4vw,30px);border-top:1px solid var(--rule)}
.vs__row:last-child{border-bottom:1px solid var(--rule)}
.vs h3{font-family:var(--kjre-display);font-size:clamp(1.08rem,1.6vw,1.34rem);margin:0 0 .4em;font-weight:400;line-height:1.16}
.vs .tagline{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.vs p{font-size:.86rem;font-weight:300;color:var(--ink-2);line-height:1.7;margin:0;max-width:52ch}
.vs__go{display:flex;align-items:center;padding-top:.15em}

@media (max-width:820px){
  .two{grid-template-columns:1fr}
  .age__row{grid-template-columns:minmax(0,8em) minmax(0,1fr) auto;gap:10px}
  .vs__row{grid-template-columns:1fr;gap:10px}
  .vs__go{padding-top:0}
  .spot{grid-template-columns:1fr;gap:5px}
}
