/* ==========================================================
   KJRE PRODUCTION SYSTEM  |  Component layer: Intown Hub V1
   Extracted verbatim from intown-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.
   ========================================================== */
/* ---------- neighborhood pathway rows ---------- */
.hrows{display:flex;flex-direction:column}
.hrow{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,.92fr) auto;gap:clamp(14px,2.2vw,36px);align-items:start;padding-block:clamp(22px,2.8vw,38px);border-top:1px solid var(--rule)}
.hrow:last-child{border-bottom:1px solid var(--rule)}
.hrow__no{font-family:var(--kjre-display);font-size:.88rem;color:var(--brass);letter-spacing:.1em;padding-top:.5em}
.hrow__id .tag{margin-bottom:.85em}
.hrow h3{font-family:var(--kjre-display);font-size:clamp(1.15rem,1.8vw,1.48rem);line-height:1.16;margin:0;font-weight:400}
.hrow p{font-size:.9rem;font-weight:300;color:var(--ink-2);max-width:46ch}
.attrs{display:flex;flex-wrap:wrap;gap:7px;align-content:flex-start}
.attrs span{font-size:.6rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--rule-soft);padding:.48em .72em}
.attrs span.tbd{color:var(--brass);border-color:rgba(156,127,78,.4);border-style:dashed}
.hrow__go{display:flex;align-items:center;padding-top:.3em}

/* ---------- compare tool ---------- */
.cmp2{background:var(--paper);border:1px solid var(--rule);padding:clamp(18px,2.2vw,30px)}
.cmp2__pick{display:grid;grid-template-columns:1fr 1fr auto;gap:clamp(14px,2vw,24px);align-items:end;padding-bottom:clamp(16px,2vw,24px);margin-bottom:clamp(16px,2vw,24px);border-bottom:1px solid var(--rule-soft)}
.cmp2 .cmpwrap{border-color:var(--rule-soft)}

/* ---------- map placeholder ---------- */
.mapslot{position:relative;aspect-ratio:16/9;min-height:300px;border:1px dashed var(--rule);background:var(--paper-2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.1em;padding:clamp(20px,3vw,44px)}
.mapslot__k{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--canopy)}
.mapslot h3{font-family:var(--kjre-display);font-size:clamp(1.2rem,1.8vw,1.5rem);margin:0;font-weight:400}
.mapslot p{font-size:.86rem;font-weight:300;color:var(--ink-3);max-width:56ch}
.maplayers{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.maplayers span{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--rule);background:var(--paper);padding:.48em .78em}

/* ---------- market data fields ---------- */
.mkt{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft)}
.mkt div{background:var(--paper);padding:clamp(16px,2vw,26px);display:flex;flex-direction:column;gap:.6em}
.mkt .k{font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.mkt .val{font-family:var(--kjre-display);font-size:clamp(1.05rem,1.5vw,1.3rem);color:var(--brass);line-height:1.2}
.mkt .note{font-size:.74rem;font-weight:300;color:var(--ink-3);line-height:1.6}

@media (max-width:1080px){
  .hrow{grid-template-columns:auto minmax(0,1fr);gap:14px 24px}
  .hrow__attrs{grid-column:2/-1}
  .hrow__go{grid-column:2/-1;padding-top:0}
  .mkt{grid-template-columns:1fr 1fr}
  .cmp2__pick{grid-template-columns:1fr 1fr}
  .cmp2__pick .btn{grid-column:1/-1;justify-content:center}
}
@media (max-width:620px){
  .hrow{grid-template-columns:1fr;gap:10px}
  .hrow__no{padding-top:0}
  .hrow__attrs,.hrow__go{grid-column:1/-1}
  .mkt{grid-template-columns:1fr}
  .cmp2__pick{grid-template-columns:1fr}
  .mapslot{aspect-ratio:auto;min-height:0}
}
