:root {
    --income-ink: #071417;
    --income-paper: #f5f4ee;
    --income-line: rgba(7, 20, 23, .13);
    --income-mint: #0f8a55;
    --income-rust: #a94a3c;
}

.rp-home-income { position: relative; isolation: isolate; overflow: hidden; padding: 5.5rem 1rem 6rem; background: #071417; color: #fff; }
.rp-home-income::before { position: absolute; z-index: -2; inset: 0; content: ""; background: radial-gradient(circle at 12% 8%, rgba(15,138,85,.3), transparent 28rem), radial-gradient(circle at 91% 19%, rgba(71,142,183,.22), transparent 30rem), radial-gradient(circle at 70% 100%, rgba(169,74,60,.14), transparent 34rem); }
.rp-home-income::after { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.13) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(to bottom, #000, transparent 46rem); pointer-events: none; }
.rp-home-income__inner { width: min(84rem, 100%); margin: 0 auto; }
.rp-home-income__intro { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(20rem, .65fr); align-items: end; gap: clamp(3rem, 8vw, 8rem); }
.rp-home-income__copy { max-width: 51rem; }
.rp-home-income__kicker { display: flex; align-items: center; gap: .65rem; margin: 0; color: #9be1bd; font: 650 .7rem/1.4 var(--font-mono, monospace); letter-spacing: .1em; text-transform: uppercase; }
.rp-home-income__kicker span { width: .5rem; height: .5rem; border-radius: 50%; background: #62d798; box-shadow: 0 0 0 .35rem rgba(98,215,152,.12); }
.rp-home-income__copy h2 { max-width: 49rem; margin: 1.25rem 0 1rem; color: #fff; font: 760 clamp(3rem, 6.6vw, 6rem)/.93 var(--font-heading, sans-serif); letter-spacing: -.07em; }
.rp-home-income__copy h2 em { color: #91d8b1; font-style: normal; }
.rp-home-income__copy > p:not(.rp-home-income__kicker) { max-width: 43rem; margin: 0; color: rgba(255,255,255,.67); font-size: clamp(1rem, 1.7vw, 1.2rem); line-height: 1.65; }
.rp-home-income__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-top: 1.8rem; }
.rp-home-income__primary, .rp-home-income__secondary { display: inline-flex; min-height: 3.15rem; align-items: center; justify-content: center; border-radius: .8rem; padding: .85rem 1.2rem; font-size: .82rem; font-weight: 740; text-decoration: none; transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease; }
.rp-home-income__primary { gap: .65rem; background: #83d3a6; color: #071417; }
.rp-home-income__primary svg { width: 1.1rem; height: 1.1rem; transition: transform .18s ease; }
.rp-home-income__primary:hover { background: #a0e2bc; transform: translateY(-2px); }
.rp-home-income__primary:hover svg { transform: translateX(3px); }
.rp-home-income__secondary { border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.06); color: rgba(255,255,255,.86); backdrop-filter: blur(8px); }
.rp-home-income__secondary:hover { border-color: rgba(155,225,189,.5); background: rgba(155,225,189,.1); color: #fff; transform: translateY(-2px); }
.rp-home-income__scale { display: grid; grid-template-columns: auto minmax(7rem, 13rem) auto; align-items: center; gap: .65rem; width: fit-content; margin-top: 1.5rem; color: rgba(255,255,255,.48); font: 600 .62rem/1 var(--font-mono, monospace); }
.rp-home-income__scale i { height: .45rem; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: linear-gradient(90deg, #a94a3c, #d8a96f 38%, #8cc7a3 66%, #1d6549); box-shadow: 0 0 1.2rem rgba(131,211,166,.12); }
.rp-home-income__stats { display: grid; gap: 1px; overflow: hidden; margin: 0; border: 1px solid rgba(255,255,255,.14); border-radius: 1.2rem; background: rgba(255,255,255,.14); box-shadow: 0 1.5rem 4rem rgba(0,0,0,.16); }
.rp-home-income__stats div { padding: 1.05rem 1.15rem 1.1rem; background: rgba(7,20,23,.72); backdrop-filter: blur(12px); }
.rp-home-income__stats dt { color: rgba(255,255,255,.43); font-size: .65rem; font-weight: 720; letter-spacing: .08em; text-transform: uppercase; }
.rp-home-income__stats dd { margin: .35rem 0 0; color: #fff; font: 730 clamp(1.55rem, 3vw, 2.15rem)/1 var(--font-heading, sans-serif); letter-spacing: -.035em; }
.rp-home-income__stats span { display: block; margin-top: .3rem; color: rgba(255,255,255,.46); font-size: .68rem; }
.rp-home-income__map-frame { position: relative; margin-top: 3.5rem; }
.rp-home-income__map-frame::before { position: absolute; inset: -.65rem; z-index: -1; content: ""; border: 1px solid rgba(155,225,189,.18); border-radius: 2rem; background: rgba(255,255,255,.045); box-shadow: 0 2.5rem 7rem rgba(0,0,0,.3); }
.rp-home-income .income-atlas--home { border-color: rgba(255,255,255,.2); box-shadow: 0 1.5rem 5rem rgba(0,0,0,.28); }
.rp-home-income .income-atlas--home .income-atlas__topline { background: #fff; }
.rp-home-income__browse { margin-top: 2rem; border-top: 1px solid rgba(255,255,255,.12); padding-top: 1.6rem; }
.rp-home-income__browse-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.rp-home-income__browse-head p { margin: 0 0 .32rem; color: #91d8b1; font: 650 .66rem/1.2 var(--font-mono, monospace); letter-spacing: .08em; text-transform: uppercase; }
.rp-home-income__browse-head h3 { margin: 0; color: #fff; font: 710 clamp(1.2rem, 2vw, 1.65rem)/1.1 var(--font-heading, sans-serif); letter-spacing: -.03em; }
.rp-home-income__browse-head nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.rp-home-income__browse-head nav a { border: 1px solid rgba(255,255,255,.16); border-radius: 999px; padding: .52rem .72rem; color: rgba(255,255,255,.68); font-size: .7rem; font-weight: 680; text-decoration: none; transition: border-color .18s ease, color .18s ease, background .18s ease; }
.rp-home-income__browse-head nav a:hover { border-color: rgba(145,216,177,.5); background: rgba(145,216,177,.08); color: #fff; }
.rp-home-income__cities { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; margin-top: 1.2rem; }
.rp-home-income__cities > a { min-width: 0; border: 1px solid rgba(255,255,255,.12); border-radius: 1rem; background: rgba(255,255,255,.055); padding: 1rem; color: #fff; text-decoration: none; backdrop-filter: blur(8px); transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.rp-home-income__cities > a:hover { border-color: rgba(145,216,177,.46); background: rgba(145,216,177,.1); transform: translateY(-3px); }
.rp-home-income__cities small { display: block; color: rgba(255,255,255,.42); font: 600 .6rem/1.2 var(--font-mono, monospace); text-transform: uppercase; }
.rp-home-income__cities strong { display: block; overflow: hidden; margin-top: .45rem; color: #fff; font: 700 1rem/1.2 var(--font-heading, sans-serif); text-overflow: ellipsis; white-space: nowrap; }
.rp-home-income__cities span { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .85rem; color: #9be1bd; font: 650 .72rem/1.2 var(--font-mono, monospace); }
.rp-home-income__cities b { font-size: .9rem; font-weight: 500; }

.income-page { background: #f7f8fb; color: var(--income-ink); }
.income-page__hero { position: relative; overflow: hidden; padding: 9.2rem 1rem 4.8rem; background: #071417; color: #fff; }
.income-page__hero::before { content: ""; position: absolute; inset: 0; opacity: .45; background: radial-gradient(circle at 78% 22%, rgba(82,183,136,.24), transparent 29rem), radial-gradient(circle at 14% 120%, rgba(185,122,20,.18), transparent 36rem); }
.income-page__hero::after { content: ""; position: absolute; inset: 0; opacity: .1; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom, #000, transparent); }
.income-page__hero-inner { position: relative; z-index: 1; width: min(76rem, 100%); margin: 0 auto; }
.income-page__crumb { display: inline-flex; align-items: center; gap: .5rem; color: rgba(255,255,255,.62); font-size: .78rem; font-weight: 680; letter-spacing: .03em; text-decoration: none; }
.income-page__crumb:hover { color: #9be1bd; }
.income-page__tag { display: inline-flex; align-items: center; gap: .55rem; margin-top: 2.6rem; padding: .46rem .76rem; border: 1px solid rgba(155,225,189,.24); border-radius: 999px; background: rgba(15,138,85,.14); color: #a9e8c5; font: 650 .73rem/1.2 var(--font-mono, monospace); letter-spacing: .07em; text-transform: uppercase; }
.income-page__tag::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: #62d798; box-shadow: 0 0 0 .28rem rgba(98,215,152,.12); }
.income-page__hero h1 { max-width: 58rem; margin: 1.2rem 0 1rem; font: 760 clamp(2.85rem, 7vw, 6.6rem)/.94 var(--font-heading, sans-serif); letter-spacing: -.065em; }
.income-page__hero h1 em { color: #91d8b1; font-style: normal; }
.income-page__lede { max-width: 46rem; color: rgba(255,255,255,.68); font-size: clamp(1rem, 2vw, 1.28rem); line-height: 1.65; }
.income-page__hero-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; max-width: 49rem; margin-top: 2.4rem; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 1rem; background: rgba(255,255,255,.12); }
.income-page__hero-stat { background: rgba(7,20,23,.76); padding: 1.05rem 1.15rem; backdrop-filter: blur(8px); }
.income-page__hero-stat span { display: block; color: rgba(255,255,255,.48); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.income-page__hero-stat strong { display: block; margin-top: .3rem; color: #fff; font: 700 clamp(1.15rem, 3vw, 1.6rem)/1.1 var(--font-heading, sans-serif); }
.income-page__body { width: min(84rem, 100%); margin: 0 auto; padding: 2.2rem 1rem 5rem; }

.income-atlas { overflow: hidden; border: 1px solid var(--income-line); border-radius: 1.55rem; background: #fff; color: var(--income-ink); box-shadow: 0 1.4rem 4rem rgba(7,20,23,.09); }
.income-atlas__topline { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; padding: 1.3rem 1.4rem; border-bottom: 1px solid var(--income-line); }
.income-atlas__eyebrow { margin: 0 0 .25rem; color: var(--income-mint); font: 700 .68rem/1.2 var(--font-mono, monospace); letter-spacing: .09em; text-transform: uppercase; }
.income-atlas__topline h2 { margin: 0; font: 720 clamp(1.35rem, 2.8vw, 2rem)/1.08 var(--font-heading, sans-serif); letter-spacing: -.035em; }
.income-atlas__share { display: inline-flex; align-items: center; gap: .5rem; flex: 0 0 auto; border: 1px solid var(--income-line); border-radius: 999px; background: #fff; padding: .66rem .9rem; color: #35464b; font-size: .75rem; font-weight: 700; cursor: pointer; transition: background .18s, transform .18s; }
.income-atlas__share:hover { background: #f2f8f4; transform: translateY(-1px); }
.income-atlas button:focus-visible, .income-atlas input:focus-visible, .income-city-card:focus-visible { outline: 3px solid rgba(15,138,85,.35); outline-offset: 2px; }
.income-atlas__share svg { width: 1rem; height: 1rem; }
.income-atlas__layout { display: grid; grid-template-columns: minmax(13rem, 16.5rem) minmax(22rem, 1fr) minmax(13rem, 17rem); min-height: 39rem; }
.income-atlas__controls, .income-atlas__detail { position: relative; z-index: 2; padding: 1.15rem; background: #fbfcfa; }
.income-atlas__controls { overflow-y: auto; }
.income-atlas__controls { border-right: 1px solid var(--income-line); }
.income-atlas__detail { border-left: 1px solid var(--income-line); }
.income-atlas__search-wrap { position: relative; }
.income-atlas__search-wrap label, .income-atlas__metric-switcher legend { display: block; margin-bottom: .55rem; color: #5c696d; font-size: .68rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; }
.income-atlas__search-field { position: relative; }
.income-atlas__search-field svg { position: absolute; top: 50%; left: .8rem; width: 1rem; height: 1rem; transform: translateY(-50%); color: #718086; pointer-events: none; }
.income-atlas__search-field input { width: 100%; height: 2.8rem; border: 1px solid #d7ddda; border-radius: .78rem; background: #fff; padding: 0 .75rem 0 2.25rem; color: var(--income-ink); font-size: .84rem; outline: none; }
.income-atlas__search-field input:focus { border-color: #58a982; box-shadow: 0 0 0 4px rgba(15,138,85,.1); }
.income-atlas__suggestions { position: absolute; z-index: 8; top: calc(100% + .4rem); right: 0; left: 0; max-height: 18rem; overflow: auto; border: 1px solid #d7ddda; border-radius: .85rem; background: #fff; box-shadow: 0 1rem 2.5rem rgba(7,20,23,.14); }
.income-atlas__suggestion { display: block; width: 100%; border: 0; border-bottom: 1px solid #edf0ed; background: #fff; padding: .72rem .8rem; text-align: left; cursor: pointer; }
.income-atlas__suggestion:last-child { border-bottom: 0; }
.income-atlas__suggestion:hover, .income-atlas__suggestion:focus { background: #f0f8f3; outline: none; }
.income-atlas__suggestion strong { display: block; color: var(--income-ink); font-size: .8rem; }
.income-atlas__suggestion span { display: block; margin-top: .16rem; color: #748085; font: 600 .66rem/1.3 var(--font-mono, monospace); }
.income-atlas__address-search { position: relative; margin-top: .95rem; padding-top: .9rem; border-top: 1px solid var(--income-line); }
.income-atlas__address-search > label { display: block; margin-bottom: .55rem; color: #5c696d; font-size: .68rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; }
.income-atlas__address-field { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.income-atlas__address-field svg { position: absolute; z-index: 1; top: 50%; left: .72rem; width: 1rem; height: 1rem; transform: translateY(-50%); color: #718086; pointer-events: none; }
.income-atlas__address-field input { min-width: 0; height: 2.8rem; border: 1px solid #d7ddda; border-right: 0; border-radius: .78rem 0 0 .78rem; background: #fff; padding: 0 .55rem 0 2.1rem; color: var(--income-ink); font-size: .76rem; outline: none; }
.income-atlas__address-field input:focus { position: relative; z-index: 1; border-color: #58a982; box-shadow: 0 0 0 4px rgba(15,138,85,.1); }
.income-atlas__address-field button { min-width: 2.65rem; border: 1px solid #173f32; border-radius: 0 .78rem .78rem 0; background: #173f32; padding: 0 .65rem; color: #fff; font-size: .72rem; font-weight: 760; cursor: pointer; transition: background .18s ease, border-color .18s ease; }
.income-atlas__address-field button:hover { border-color: var(--income-mint); background: var(--income-mint); }
.income-atlas__address-field button:disabled { cursor: wait; opacity: .58; }
.income-atlas__address-results { position: absolute; z-index: 9; top: 4.55rem; right: 0; left: 0; max-height: 16rem; overflow: auto; border: 1px solid #d7ddda; border-radius: .85rem; background: #fff; box-shadow: 0 1rem 2.5rem rgba(7,20,23,.16); }
.income-atlas__address-result { display: block; width: 100%; border: 0; border-bottom: 1px solid #edf0ed; background: #fff; padding: .7rem .78rem; text-align: left; cursor: pointer; }
.income-atlas__address-result:last-child { border-bottom: 0; }
.income-atlas__address-result:hover, .income-atlas__address-result:focus { background: #f0f8f3; outline: none; }
.income-atlas__address-result strong { display: block; color: var(--income-ink); font-size: .76rem; line-height: 1.3; }
.income-atlas__address-result span { display: block; margin-top: .18rem; color: #748085; font: 600 .62rem/1.35 var(--font-mono, monospace); }
.income-atlas__address-status { min-height: 2.2em; margin: .45rem 0 0; color: #6b777b; font-size: .61rem; line-height: 1.45; }
.income-atlas__address-status.is-error { color: #963e35; }
.income-atlas__address-meta { margin: .2rem 0 0; color: #889296; font-size: .56rem; line-height: 1.35; }
.income-atlas__address-meta a { color: #46745f; text-decoration: underline; text-underline-offset: 2px; }
.income-atlas__metric-switcher { display: grid; gap: .42rem; margin: 1.25rem 0 0; padding: 0; border: 0; }
.income-atlas__metric-switcher button { width: 100%; border: 1px solid transparent; border-radius: .78rem; background: transparent; padding: .66rem .72rem; text-align: left; cursor: pointer; transition: background .16s, border-color .16s; }
.income-atlas__metric-switcher button:hover { background: #f1f5f2; }
.income-atlas__metric-switcher button.is-active { border-color: #b9dbc8; background: #eaf7ef; box-shadow: inset 3px 0 0 var(--income-mint); }
.income-atlas__metric-switcher span { display: block; color: #193035; font-size: .78rem; font-weight: 760; }
.income-atlas__metric-switcher small { display: block; margin-top: .16rem; color: #748085; font-size: .65rem; line-height: 1.35; }
.income-atlas__legend { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--income-line); }
.income-atlas__legend-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; color: #566469; font-size: .66rem; }
.income-atlas__legend-head strong { color: #263b40; font-size: .69rem; }
.income-atlas__legend-scale { display: grid; grid-template-columns: repeat(6, 1fr); height: .62rem; margin-top: .55rem; overflow: hidden; border-radius: 999px; }
.income-atlas__legend-labels { display: flex; justify-content: space-between; margin-top: .4rem; color: #5e6b70; font: 650 .64rem/1 var(--font-mono, monospace); }
.income-atlas__legend-missing { display: flex; align-items: center; gap: .35rem; margin-top: .55rem; color: #657278; font: 600 .61rem/1 var(--font-mono, monospace); }
.income-atlas__legend-missing span { width: .75rem; height: .55rem; border: 1px solid #cbd2cf; border-radius: .16rem; background: #d9dedb; }
.income-atlas__clarification { margin: 1rem 0 0; color: #6b777b; font-size: .68rem; line-height: 1.55; }
.income-atlas__clarification strong { color: #304449; }
.income-atlas__canvas-wrap { position: relative; min-width: 0; background: #e9ece8; }
.income-atlas__map { position: absolute; inset: 0; }
.income-atlas__loading { position: absolute; z-index: 3; inset: 0; display: grid; place-content: center; justify-items: center; gap: .8rem; background: #e9ece8; color: #526268; text-align: center; transition: opacity .35s; }
.income-atlas__loading span { width: 2rem; height: 2rem; border: 2px solid rgba(15,138,85,.18); border-top-color: var(--income-mint); border-radius: 50%; animation: income-spin .8s linear infinite; }
.income-atlas__loading p { margin: 0; font-size: .75rem; }
.income-atlas.is-ready .income-atlas__loading { opacity: 0; pointer-events: none; }
.income-atlas__nojs { margin: 1rem; border-radius: .8rem; background: #fff; padding: 1rem; color: #5f6d71; font-size: .8rem; }
.income-atlas__map-note { position: absolute; z-index: 2; right: .65rem; bottom: .45rem; display: inline-flex; align-items: center; gap: .4rem; border: 1px solid rgba(7,20,23,.1); border-radius: 999px; background: rgba(255,255,255,.88); padding: .36rem .56rem; color: #536267; font-size: .57rem; font-weight: 650; backdrop-filter: blur(8px); pointer-events: none; }
.income-atlas__map-note span { width: .38rem; height: .38rem; border-radius: 50%; background: var(--income-mint); }
.income-atlas__detail-empty { display: grid; min-height: 100%; align-content: center; }
.income-atlas__detail-mark { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border: 1px solid #bfd9ca; border-radius: .75rem; background: #ebf7ef; color: var(--income-mint); font-size: 1.2rem; }
.income-atlas__detail h3 { margin: .9rem 0 .4rem; font: 720 1.35rem/1.1 var(--font-heading, sans-serif); letter-spacing: -.035em; }
.income-atlas__detail p { color: #6d797d; font-size: .75rem; line-height: 1.55; }
.income-atlas__detail-kicker { margin: .1rem 0 0 !important; color: var(--income-mint) !important; font: 680 .66rem/1.35 var(--font-mono, monospace); letter-spacing: .03em; }
.income-atlas__detail [data-detail-value] { margin-top: 1.2rem; font-size: 2.35rem; }
.income-atlas__detail-label { margin: -.16rem 0 1rem !important; }
.income-atlas__detail-area { margin: -.35rem 0 1rem !important; border: 1px solid #c8ded1; border-radius: .65rem; background: #eef8f2; padding: .55rem .65rem; color: #315e4a !important; font-size: .68rem !important; font-weight: 680; }
.income-atlas__detail-grid { display: grid; grid-template-columns: 1fr; gap: .48rem; }
.income-atlas__detail-grid div { border: 1px solid var(--income-line); border-radius: .72rem; background: #fff; padding: .68rem .72rem; }
.income-atlas__detail-grid span { display: block; color: #859095; font-size: .61rem; font-weight: 680; }
.income-atlas__detail-grid strong { display: block; margin-top: .16rem; color: #1d3439; font: 720 .86rem/1.2 var(--font-mono, monospace); }
.income-atlas__detail-code { margin: .85rem 0 0 !important; color: #929b9e !important; font: 550 .59rem/1.45 var(--font-mono, monospace); }
.income-atlas .maplibregl-ctrl-group { overflow: hidden; border: 1px solid rgba(7,20,23,.13); border-radius: .75rem; box-shadow: 0 .4rem 1.2rem rgba(7,20,23,.08); }
.income-atlas .maplibregl-ctrl-attrib { border-radius: .4rem 0 0 0; background: rgba(255,255,255,.86); color: #58666b; font-size: 9px; }
.income-atlas .maplibregl-ctrl-attrib a { color: #315e4a; }
.income-atlas .maplibregl-popup-content { border: 1px solid rgba(7,20,23,.1); border-radius: .7rem; padding: .55rem .7rem; color: #1f373c; font: 680 .7rem/1.35 var(--font-body, sans-serif); box-shadow: 0 .8rem 2rem rgba(7,20,23,.14); }

.income-editorial { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(16rem, .8fr); gap: 3rem; width: min(72rem, 100%); margin: 4.5rem auto 0; }
.income-editorial__copy h2 { margin: 0 0 1rem; font: 740 clamp(2rem, 4vw, 3.4rem)/1 var(--font-heading, sans-serif); letter-spacing: -.055em; }
.income-editorial__copy h3 { margin: 2.3rem 0 .7rem; font: 720 1.35rem/1.15 var(--font-heading, sans-serif); }
.income-editorial__copy p, .income-editorial__copy li { color: #4f6066; font-size: .98rem; line-height: 1.8; }
.income-editorial__copy a { color: #087347; font-weight: 680; text-decoration: underline; text-underline-offset: 3px; }
.income-editorial__aside { align-self: start; position: sticky; top: 7rem; border: 1px solid var(--income-line); border-radius: 1.2rem; background: #fff; padding: 1.2rem; }
.income-editorial__aside h3 { margin: 0 0 .8rem; font: 720 1rem/1.2 var(--font-heading, sans-serif); }
.income-editorial__aside dl { margin: 0; }
.income-editorial__aside div { display: flex; justify-content: space-between; gap: 1rem; padding: .72rem 0; border-top: 1px solid #e8ece9; }
.income-editorial__aside dt { color: #788489; font-size: .7rem; }
.income-editorial__aside dd { margin: 0; color: #263b40; font: 700 .72rem/1.35 var(--font-mono, monospace); text-align: right; }
.income-city-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-top: 1.3rem; }
.income-city-card { display: block; border: 1px solid var(--income-line); border-radius: 1rem; background: #fff; padding: 1rem; color: inherit; text-decoration: none; transition: transform .18s, border-color .18s, box-shadow .18s; }
.income-city-card:hover { transform: translateY(-2px); border-color: #a8cfb8; box-shadow: 0 .8rem 2rem rgba(7,20,23,.07); }
.income-city-card small { color: #748186; font: 600 .63rem/1 var(--font-mono, monospace); }
.income-city-card strong { display: block; margin-top: .45rem; font: 720 1.05rem/1.15 var(--font-heading, sans-serif); }
.income-city-card span { display: block; margin-top: .7rem; color: var(--income-mint); font-size: .7rem; font-weight: 700; }
.income-directory-intro { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(15rem, .7fr); gap: 2rem; width: min(72rem, 100%); margin: 0 auto 2rem; }
.income-directory-intro h2 { margin: 0 0 .7rem; font: 740 clamp(1.7rem, 3vw, 2.6rem)/1.05 var(--font-heading, sans-serif); letter-spacing: -.045em; }
.income-directory-intro p { color: #4f6066; line-height: 1.75; }
.income-directory-meta { border: 1px solid var(--income-line); border-radius: 1rem; background: #fff; padding: 1rem; }
.income-directory-meta strong { display: block; font: 730 1.55rem/1 var(--font-heading, sans-serif); }
.income-directory-meta span { display: block; margin-top: .45rem; color: #657278; font-size: .72rem; line-height: 1.45; }
.income-data-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1.4rem 0 2rem; }
.income-data-card { border: 1px solid var(--income-line); border-radius: 1rem; background: #fff; padding: 1rem; }
.income-data-card span { display: block; min-height: 2.4em; color: #758186; font-size: .68rem; line-height: 1.3; }
.income-data-card strong { display: block; margin-top: .45rem; font: 730 1.25rem/1 var(--font-heading, sans-serif); }
.income-rank-table { width: 100%; border-collapse: collapse; margin-top: 1.1rem; font-size: .8rem; }
.income-rank-table th { border-bottom: 1px solid #ccd5d0; padding: .68rem .55rem; color: #68757a; font-size: .63rem; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.income-rank-table td { border-bottom: 1px solid #e5eae7; padding: .75rem .55rem; color: #34494e; }
.income-rank-table a { color: #087347; font-weight: 720; text-decoration: none; }
.income-rank-table a:hover { text-decoration: underline; text-underline-offset: 3px; }
.income-rank-table td:last-child { font-family: var(--font-mono, monospace); font-weight: 700; text-align: right; }
.income-editorial__copy .prose-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--income-line); border-radius: 1rem; background: #fff; }
.income-editorial__copy .prose-table-scroll .income-rank-table { min-width: 38rem; margin-top: 0; }
.income-faq { width: min(72rem, 100%); margin: 4.5rem auto 0; }
.income-faq h2 { margin: 0 0 .45rem; font: 740 clamp(1.8rem, 4vw, 3rem)/1 var(--font-heading, sans-serif); letter-spacing: -.05em; }
.income-faq details { border-top: 1px solid var(--income-line); padding: 0; transition: background .18s ease; }
.income-faq details:last-child { border-bottom: 1px solid var(--income-line); }
.income-faq summary { display: flex; min-height: 5rem; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1.15rem .15rem; color: #233b40; font: 730 clamp(1.05rem, 2vw, 1.28rem)/1.35 var(--font-heading, sans-serif); letter-spacing: -.025em; cursor: pointer; list-style: none; }
.income-faq summary::-webkit-details-marker { display: none; }
.income-faq summary::after { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; place-items: center; content: "+"; border: 1px solid #bdd4c6; border-radius: .7rem; background: #edf7f1; color: var(--income-mint); font: 500 1.45rem/1 var(--font-heading, sans-serif); transition: color .18s ease, background .18s ease, border-color .18s ease, transform .22s ease; }
.income-faq summary:hover::after { border-color: var(--income-mint); background: #e3f3e9; }
.income-faq summary:focus-visible { outline: none; }
.income-faq summary:focus-visible::after { box-shadow: 0 0 0 4px rgba(15,138,85,.2); }
.income-faq details[open] { background: rgba(255,255,255,.5); }
.income-faq details[open] summary::after { border-color: var(--income-mint); background: var(--income-mint); color: #fff; transform: rotate(45deg); }
.income-faq p { max-width: 55rem; margin: 0; padding: .15rem 4.75rem 1.45rem .15rem; color: #5a696e; line-height: 1.7; }
@keyframes income-spin { to { transform: rotate(360deg); } }

.income-embed { min-width: 20rem; margin: 0; background: #eef1ee; color: var(--income-ink); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.income-embed__mast { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; border-bottom: 1px solid var(--income-line); background: #071417; padding: .65rem 1rem; color: #fff; }
.income-embed__brand { font-size: .77rem; font-weight: 780; letter-spacing: -.01em; }
.income-embed__brand span { color: #91d8b1; }
.income-embed__open { color: rgba(255,255,255,.74); font-size: .7rem; font-weight: 700; text-decoration: none; }
.income-embed__open:hover { color: #fff; }
.income-embed__main { box-sizing: border-box; height: calc(100vh - 3.5rem); padding: .65rem; }
.income-embed .income-atlas { border-radius: 1rem; box-shadow: 0 .8rem 2.2rem rgba(7,20,23,.1); }
.income-embed .income-atlas__topline, .income-embed .income-atlas__detail { display: none; }
.income-embed .income-atlas { height: 100%; }
.income-embed .income-atlas__layout { grid-template-columns: 13rem minmax(0, 1fr); height: 100%; min-height: 0; }
.income-embed .income-atlas__address-meta { display: none; }

@media (max-width: 1080px) {
    .rp-home-income__intro { grid-template-columns: 1fr; gap: 2.4rem; }
    .rp-home-income__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .rp-home-income__cities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .income-atlas__layout { grid-template-columns: 15rem minmax(0, 1fr); grid-template-rows: 36rem auto; }
    .income-atlas__detail { grid-column: 1 / -1; border-top: 1px solid var(--income-line); border-left: 0; }
    .income-atlas__detail-empty { min-height: auto; }
    .income-atlas__detail-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .income-embed .income-atlas__layout { grid-template-columns: 13rem minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); height: 100%; }
}

@media (max-width: 760px) {
    .rp-home-income { padding: 4rem .65rem 4.5rem; }
    .rp-home-income__intro { gap: 2rem; padding: 0 .35rem; }
    .rp-home-income__copy h2 { font-size: clamp(2.65rem, 14vw, 4.25rem); }
    .rp-home-income__actions { align-items: stretch; flex-direction: column; }
    .rp-home-income__primary, .rp-home-income__secondary { width: 100%; }
    .rp-home-income__scale { grid-template-columns: auto minmax(4rem, 1fr) auto; width: 100%; }
    .rp-home-income__stats { grid-template-columns: 1fr; }
    .rp-home-income__map-frame { margin-top: 2.7rem; }
    .rp-home-income__map-frame::before { inset: -.35rem; border-radius: 1.4rem; }
    .rp-home-income__browse { margin: 1.7rem .35rem 0; }
    .rp-home-income__browse-head { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .rp-home-income__browse-head nav { justify-content: flex-start; }
    .rp-home-income__cities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .income-page__hero { padding-top: 7.5rem; padding-bottom: 3.5rem; }
    .income-page__hero-stats { grid-template-columns: 1fr; }
    .income-page__body { padding: 1rem .65rem 4rem; }
    .income-atlas { border-radius: 1.1rem; }
    .income-atlas__topline { align-items: flex-start; }
    .income-atlas__share span { display: none; }
    .income-atlas__layout { display: flex; min-height: 0; flex-direction: column; }
    .income-atlas__controls { border-right: 0; border-bottom: 1px solid var(--income-line); }
    .income-atlas__metric-switcher { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .income-atlas__metric-switcher legend { grid-column: 1 / -1; }
    .income-atlas__canvas-wrap { height: 31rem; }
    .income-atlas__map { position: absolute; }
    .income-atlas__detail { border-top: 1px solid var(--income-line); }
    .income-atlas__detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .income-editorial { grid-template-columns: 1fr; gap: 1.5rem; margin-top: 3.3rem; }
    .income-editorial__aside { position: static; }
    .income-directory-intro { grid-template-columns: 1fr; gap: 1rem; }
    .income-city-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .income-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .income-embed .income-atlas__layout { display: grid; grid-template-columns: 1fr; grid-template-rows: auto minmax(18rem, 1fr); height: 100%; min-height: 0; }
    .income-embed .income-atlas__controls { padding: .7rem; }
    .income-embed .income-atlas__metric-switcher { display: flex; gap: .3rem; margin-top: .65rem; overflow-x: auto; }
    .income-embed .income-atlas__metric-switcher legend { display: none; }
    .income-embed .income-atlas__metric-switcher button { flex: 0 0 auto; width: auto; padding: .45rem .58rem; }
    .income-embed .income-atlas__metric-switcher small, .income-embed .income-atlas__clarification, .income-embed .income-atlas__legend-missing { display: none; }
    .income-embed .income-atlas__legend { margin-top: .55rem; padding-top: .55rem; }
    .income-embed .income-atlas__canvas-wrap { height: auto; min-height: 18rem; }
}

@media (max-width: 430px) {
    .rp-home-income__cities { grid-template-columns: 1fr; }
    .income-atlas__metric-switcher { grid-template-columns: 1fr; }
    .income-atlas__canvas-wrap { height: 27rem; }
    .income-city-grid { grid-template-columns: 1fr; }
    .income-embed .income-atlas__metric-switcher { grid-template-columns: none; }
}

@media (prefers-reduced-motion: reduce) {
    .income-page *, .income-page *::before, .income-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
