/* Address District, Westport Edition (06880)
   Roboto for everything, Bodoni Moda for the wordmark only.
   Fonts are self-hosted under the SIL Open Font License. */

@font-face { font-family: "Roboto"; font-style: normal; font-weight: 100 900; font-stretch: 75% 100%; font-display: swap;
  src: url("../fonts/roboto-latin-standard-normal.woff2") format("woff2-variations"); }
@font-face { font-family: "Roboto"; font-style: italic; font-weight: 100 900; font-stretch: 75% 100%; font-display: swap;
  src: url("../fonts/roboto-latin-standard-italic.woff2") format("woff2-variations"); }
@font-face { font-family: "Bodoni Moda"; font-style: normal; font-weight: 400 900; font-display: swap;
  src: url("../fonts/bodoni-moda-latin-standard-normal.woff2") format("woff2-variations"); }

:root {
  --ink: #000;
  --text: #1d1d1d;
  --muted: #62666b;
  --rule: #dddfe2;
  --fog: #f2f3f4;
  --paper: #fff;
  --night: #161616;
  --night-2: #222;
  --red: #c8102e;
  --red-tint: #fbe8eb;
  --accent: #1b3d6e;
  --accent-tint: #e7edf6;
  --label: #5c6672;
  --blue: #1b3d6e;
  --blue-deep: #12294b;
  --blue-bright: #2b62c4;
  --sans: "Roboto", "Helvetica Neue", Arial, sans-serif;
  --display: "Bodoni Moda", "Didot", Georgia, serif;
  --wrap: 1280px;
  --gutter: 24px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--text); font-family: var(--sans); font-size: 16px; line-height: 1.45;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .16em; }
:focus-visible { outline: 2px solid var(--blue-bright); outline-offset: 2px; }
button { font: inherit; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.skip { position: absolute; left: -9999px; top: 0; background: var(--ink); color: #fff; padding: 10px 14px; z-index: 99; }
.skip:focus { left: 8px; top: 8px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nw { white-space: nowrap; }

/* ---------- top bar and masthead ---------- */
.topbar { background: var(--night); color: #cfd2d6; font-size: 12px; letter-spacing: .02em; }
.topbar__row { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 32px; }
.topbar strong { color: #fff; font-weight: 600; }
.topbar nav { display: flex; gap: 18px; }
.topbar a:hover { color: #fff; }

.mast { border-bottom: 1px solid var(--rule); background: #fff; }
.mast__row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding-top: 16px; padding-bottom: 13px; }
.mast__left, .mast__right { display: flex; align-items: center; gap: 20px; }
.mast__search--m { display: none !important; }
.mast__right { justify-content: flex-end; }
.mast__brand { text-align: center; }
.wordmark { display: inline-block; font-family: var(--display); font-weight: 800; color: var(--ink); text-transform: uppercase; white-space: nowrap;
  font-size: clamp(30px, 3.3vw, 46px); line-height: .95; letter-spacing: .004em; font-variation-settings: "opsz" 11; font-kerning: normal; }
.wordmark:hover { text-decoration: none; }
.mast__sub { display: block; margin-top: 7px; font-size: 10px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--ink); }
.icon-btn { display: inline-flex; align-items: center; gap: 7px; background: none; border: 0; padding: 4px 0; cursor: pointer; color: var(--ink); font-size: 13px; font-weight: 500; }
.icon-btn svg { width: 20px; height: 20px; }
.btn { display: inline-flex; align-items: center; justify-content: center; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .02em;
  padding: 9px 16px; border: 1px solid var(--ink); background: #fff; color: var(--ink); cursor: pointer; border-radius: 2px; }
.btn:hover { text-decoration: none; background: var(--ink); color: #fff; }
.btn--red { background: var(--red); border-color: var(--red); color: #fff; }
.btn--red:hover { background: #a10d25; border-color: #a10d25; }
.btn--ink { background: var(--ink); color: #fff; }
.btn--ink:hover { background: var(--blue); border-color: var(--blue); }
.btn--blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.btn--blue:hover { background: var(--blue-deep); }
.text-link { font-size: 13px; font-weight: 500; color: var(--ink); }

.primary { border-top: 1px solid var(--rule); }
.primary ul { list-style: none; margin: 0 auto; padding: 0 var(--gutter); max-width: var(--wrap); display: flex; justify-content: space-between; gap: 20px; overflow-x: auto; scrollbar-width: none; }
.primary ul::-webkit-scrollbar { display: none; }
.primary a { display: block; padding: 12px 0 11px; white-space: nowrap; font-size: 13.5px; font-weight: 700; font-stretch: 90%; letter-spacing: .05em; text-transform: uppercase; color: var(--ink);
  border-bottom: 3px solid transparent; }
.primary a:hover { text-decoration: none; border-bottom-color: var(--rule); }
.primary a[aria-current="page"] { border-bottom-color: var(--red); }
.amp { font-family: var(--display); font-style: normal; font-weight: 600; text-transform: none; }

.featured { display: flex; align-items: center; gap: 0; margin-top: 12px; background: var(--fog); font-size: 13px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.featured::-webkit-scrollbar { display: none; }
.featured > * { padding: 9px 14px; border-right: 1px solid #d5d8db; }
.featured > *:last-child { border-right: 0; }
.featured__label { font-weight: 700; display: inline-flex; align-items: center; gap: 7px; color: var(--ink); }
.featured__label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }
.featured a { color: var(--text); font-weight: 500; }

/* menu */
.menu { position: fixed; inset: 0; background: #fff; z-index: 50; overflow-y: auto; display: none; }
.menu[data-open="true"] { display: block; }
.menu__head { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--rule); padding: 14px var(--gutter); }
.menu__head .wordmark { font-size: 26px; }
.menu__body { max-width: 1160px; margin: 0 auto; padding: 26px var(--gutter) 56px; display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 32px; }
.menu h3 { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); margin: 0 0 10px; }
.menu__sections a { display: block; font-size: 24px; font-weight: 700; color: var(--ink); padding: 7px 0; border-bottom: 1px solid var(--rule); }
.menu__list a { display: block; padding: 6px 0; font-size: 16px; }
.menu__search { display: flex; border: 1px solid var(--ink); margin-bottom: 22px; grid-column: 1 / -1; }
.menu__search input { flex: 1; border: 0; padding: 12px 14px; font: 17px var(--sans); min-width: 0; }
.menu__search button { border: 0; background: var(--ink); color: #fff; padding: 0 18px; font-weight: 700; cursor: pointer; }

/* ---------- shared editorial pieces ---------- */
.kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 6px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); line-height: 1.2; }
.tag { background: var(--accent-tint); color: var(--accent); padding: 3px 6px 2px; letter-spacing: .06em; font-weight: 600; }
.tag:hover { text-decoration: none; background: #d6e1f0; }
.hed { font-family: var(--sans); font-weight: 700; color: var(--ink); letter-spacing: -.01em; line-height: 1.2; margin: 0; text-wrap: balance; }
.dek { color: #474b50; margin: 6px 0 0; line-height: 1.45; font-size: 15px; }
.meta { font-size: 12px; color: var(--muted); letter-spacing: .01em; }
.when { font-size: 12px; color: var(--muted); margin-top: 6px; display: block; }

.media { position: relative; overflow: hidden; background-color: #e9ebed;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='160' viewBox='0 0 240 160'%3E%3Cg fill='none' stroke='%23c3cddc' stroke-width='1'%3E%3Cpath d='M14 120 L58 22 L171 34 L214 98 L132 142 Z'/%3E%3Cpath d='M58 22 L96 88 L132 142'/%3E%3Cpath d='M96 88 L214 98' stroke-dasharray='3 4'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 240px 160px; background-position: center; }
.media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
a:hover > .media img, .pcard:hover .media img, .lux:hover .media img { transform: scale(1.03); }
.media--contour { background-color: #eef1f5; background-size: cover; }
.r-16x9 { aspect-ratio: 16 / 9; } .r-3x2 { aspect-ratio: 3 / 2; } .r-4x3 { aspect-ratio: 4 / 3; }
.r-1x1 { aspect-ratio: 1 / 1; } .r-wide { aspect-ratio: 21 / 9; } .r-4x5 { aspect-ratio: 4 / 5; }

.sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; border-top: 2px solid var(--ink); padding-top: 9px; margin: 0 0 14px; }
.sec-head h2 { font-size: 22px; font-weight: 800; letter-spacing: -.01em; margin: 0; color: var(--ink); }
.sec-head h2 a:hover { text-decoration: none; color: var(--accent); }
.sec-head .more { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.sec-head .more::after { content: " \203A"; }
.block { margin: 30px 0; }

/* ---------- homepage: tabs and lead ---------- */
.tabs-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--rule); margin-top: 16px; }
.tabs { display: flex; gap: 0; flex-shrink: 0; }
.tabs a { white-space: nowrap; padding: 9px 16px; font-size: 14px; font-weight: 500; border: 1px solid transparent; border-bottom: 0; color: var(--muted); }
.tabs a.on { border-color: var(--rule); background: #fff; color: var(--ink); font-weight: 700; margin-bottom: -1px; }
.markets { display: flex; gap: 18px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.markets::-webkit-scrollbar { display: none; }
.markets a { font-size: 11.5px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--muted); padding: 10px 0; }
.markets a:hover { color: var(--ink); text-decoration: none; }

.lead-grid { display: grid; grid-template-columns: 240px minmax(0, 1fr) 300px; margin-top: 18px; }
.lead-grid > * { padding: 0 24px; }
.lead-grid > *:first-child { padding-left: 0; }
.lead-grid > *:last-child { padding-right: 0; border-left: 1px solid var(--rule); }
.lead-grid > .lead-main { border-left: 1px solid var(--rule); }
.ranked { list-style: none; margin: 0; padding: 0; counter-reset: rank; }
.ranked li { counter-increment: rank; display: grid; grid-template-columns: 34px 1fr; gap: 4px; padding: 10px 0; border-bottom: 1px solid var(--rule); }
.ranked li:first-child { padding-top: 0; }
.ranked li::before { content: counter(rank) "."; font-size: 22px; font-weight: 700; line-height: 1; color: var(--blue-bright); }
.ranked a { font-weight: 700; font-size: 15.5px; line-height: 1.28; color: var(--ink); }
.lead-story .media { margin-bottom: 14px; }
.lead-story .kicker { justify-content: center; }
.lead-story .hed { font-size: clamp(28px, 3vw, 40px); line-height: 1.1; text-align: center; letter-spacing: -.02em; }
.lead-story .dek { text-align: center; font-size: 17px; max-width: 40em; margin: 10px auto 0; }
.lead-story .meta { text-align: center; margin-top: 8px; }
.rows { margin-top: 20px; border-top: 1px solid var(--rule); }
.row-item { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--rule); align-items: start; }
.row-item .hed { font-size: 19px; }
.row-item .dek { font-size: 14.5px; }
.stack-item { padding: 0 0 13px; margin: 0 0 13px; border-bottom: 1px solid var(--rule); }
.stack-item .hed { font-size: 18.5px; line-height: 1.22; }
.stack-item .dek { font-size: 14px; }

.cta-box { background: var(--blue); color: #fff; padding: 18px 18px 20px; margin-top: 4px;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 22px 22px; }
.cta-box h3 { font-size: 20px; font-weight: 700; line-height: 1.2; margin: 0 0 8px; letter-spacing: -.01em; }
.cta-box p { font-size: 14px; line-height: 1.45; margin: 0 0 14px; color: #dfe6f1; }
.cta-box .btn { background: #fff; color: var(--blue); border-color: #fff; }
.cta-box .btn:hover { background: var(--blue-deep); color: #fff; }

/* ---------- 06880 index band ---------- */
.index-band { background: var(--blue); color: #fff; margin: 34px 0;
  background-image: linear-gradient(rgba(255,255,255,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.13) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px; background-position: -1px -1px; }
.index-band .wrap { padding-top: 26px; padding-bottom: 26px; }
.index-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 12px; }
.index-head h2 { font-size: 30px; font-weight: 300; letter-spacing: .06em; text-transform: uppercase; margin: 0; }
.index-head p { margin: 4px 0 0; font-size: 14px; color: #d7e0ee; }
.index-head a { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,.6); padding-bottom: 2px; white-space: nowrap; }
.index-head a:hover { text-decoration: none; border-color: #fff; }
.index-body { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: start; margin-top: 4px; }
.figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.figure { padding: 16px 16px 14px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.figure:nth-child(3n+2), .figure:nth-child(3n+3) { padding-left: 16px; border-left: 1px solid rgba(255,255,255,.2); }
.figure__value { font-size: clamp(26px, 2.7vw, 36px); font-weight: 300; line-height: 1; letter-spacing: -.01em; font-variant-numeric: lining-nums tabular-nums; }
.figure__label { font-size: 13px; margin-top: 6px; color: #fff; line-height: 1.35; }
.figure__note { font-size: 11px; margin-top: 4px; color: #b9c7db; line-height: 1.35; }
.index-chart { padding-top: 16px; }
.index-chart h3 { font-size: 15px; font-weight: 700; margin: 0 0 2px; }
.index-chart p { font-size: 13px; color: #d7e0ee; margin: 0 0 12px; }
.index-source { font-size: 11px; color: #b9c7db; margin-top: 14px; line-height: 1.5; }
.index-source a { text-decoration: underline; text-underline-offset: 2px; }

/* bar charts */
.hbars { display: grid; gap: 7px; font-variant-numeric: tabular-nums; }
.hbar { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; gap: 12px; font-size: 13px; line-height: 1.2; }
.hbar__label { text-align: right; color: var(--muted); }
.hbar__track { display: flex; align-items: center; gap: 8px; min-height: 18px; }
.hbar__fill { display: block; height: 18px; min-width: 2px; background: #a7adb4; border-radius: 0 3px 3px 0; }
.hbar__value { color: var(--muted); white-space: nowrap; }
.hbar.is-on .hbar__fill { background: var(--blue); }
.hbar.is-on .hbar__label, .hbar.is-on .hbar__value { color: var(--ink); }
.hbar.is-hi .hbar__label, .hbar.is-hi .hbar__value { font-weight: 700; }
.hbar:hover .hbar__fill, .hbar:focus .hbar__fill { opacity: .82; }
.hbars--dark .hbar__label, .hbars--dark .hbar__value { color: #c8d3e4; }
.hbars--dark .hbar__fill { background: rgba(255,255,255,.4); }
.hbars--dark .hbar.is-on .hbar__fill { background: #fff; }
.hbars--dark .hbar.is-on .hbar__label, .hbars--dark .hbar.is-on .hbar__value { color: #fff; }
.chart-wrap { position: relative; }
.chart-tip { position: absolute; pointer-events: none; background: #fff; color: var(--ink); font-size: 12.5px; padding: 8px 10px; border: 1px solid var(--ink); z-index: 5; display: none; line-height: 1.35; max-width: 220px; }

/* ---------- premium grid (dark band) ---------- */
.lux-band { background: var(--night); color: #fff; padding: 36px 0 40px; margin: 34px 0; }
.lux-band .sec-head { border-top-color: #fff; }
.lux-band .sec-head h2, .lux-band .sec-head .more { color: #fff; }
.lux-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 26px; }
.lux { display: block; }
.lux .media { margin-bottom: 14px; }
.eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; margin: 0 0 7px; color: inherit; opacity: .9; }
.lux__hed { font-size: 21px; font-weight: 400; text-transform: uppercase; letter-spacing: .01em; line-height: 1.22; margin: 0; }
.lux__dek { font-size: 14px; font-weight: 500; line-height: 1.5; margin: 9px 0 0; color: #d9d9d9; }
.lux__more { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 500; color: #fff; }
.lux:hover { text-decoration: none; }
.lux:hover .lux__hed { text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }
.lux-grid--feature { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.lux-grid--feature .lux:first-child .lux__hed { font-size: 30px; }
.lux-grid + .lux-grid { margin-top: 34px; padding-top: 30px; border-top: 1px solid #3a3a3a; }

/* premium cards on white */
.pgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.pgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pcard { display: block; }
.pcard .media { margin-bottom: 12px; }
.pcard .eyebrow { color: var(--label); opacity: 1; }
.pcard__hed { font-size: 19px; font-weight: 400; text-transform: uppercase; letter-spacing: .01em; line-height: 1.24; margin: 0; color: var(--ink); }
.pcard__dek { font-size: 14px; font-weight: 500; line-height: 1.5; margin: 8px 0 0; color: #3f4348; }
.pcard__more { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 500; color: var(--ink); }
.pcard:hover { text-decoration: none; }
.pcard:hover .pcard__hed { text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }

/* ---------- neighborhood market blocks ---------- */
.mkt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 36px; }
.mkt { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 18px; }
.mkt__lead .media { margin-bottom: 10px; }
.mkt__lead .hed { font-size: 20px; }
.mkt__lead .dek { font-size: 14px; }
.mini { list-style: none; margin: 0; padding: 0; }
.mini li { padding: 0 0 11px; margin: 0 0 11px; border-bottom: 1px solid var(--rule); }
.mini li:last-child { border-bottom: 0; margin-bottom: 0; }
.mini a { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 11px; align-items: start; }
.mini .hed { font-size: 14.5px; line-height: 1.28; }
.mini .media { aspect-ratio: 1 / 1; }

.link-list { list-style: none; margin: 0; padding: 0; }
.link-list li { padding: 10px 0; border-bottom: 1px solid var(--rule); }
.link-list li:first-child { padding-top: 0; }
.link-list .hed { font-size: 16.5px; line-height: 1.28; }
.link-list .kicker { margin-bottom: 4px; }
.link-list--after { margin-top: 22px; }
@media (min-width: 861px) { .link-list.cols-2 li:nth-child(2) { padding-top: 0; } }
.cols-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
.cols-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }

/* latest river */
.river { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 36px; }
.river-item { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--rule); align-items: start; }
.river-item time { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; color: var(--muted); padding-top: 3px; text-transform: uppercase; }
.river-item .hed { font-size: 16px; line-height: 1.28; }
.river-item .kicker { margin-bottom: 3px; }

/* pipeline and ledger */
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--rule); }
.timeline time { font-size: 12px; font-weight: 700; color: var(--blue); letter-spacing: .02em; padding-top: 2px; }
.timeline strong { display: block; font-weight: 700; font-size: 15.5px; line-height: 1.25; color: var(--ink); }
.timeline span { display: block; font-size: 14px; color: #4a4e53; margin-top: 3px; line-height: 1.4; }
.ledger { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.ledger caption { text-align: left; font-size: 12.5px; color: var(--muted); caption-side: bottom; padding-top: 8px; line-height: 1.4; }
.ledger th { text-align: left; font-weight: 700; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border-bottom: 2px solid var(--ink); padding: 0 10px 7px 0; }
.ledger td { border-bottom: 1px solid var(--rule); padding: 9px 10px 9px 0; vertical-align: top; }
.ledger td.num, .ledger th.num { text-align: right; }
.ledger th + th, .ledger td + td { padding-left: 16px; }
.ledger td:first-child { font-weight: 500; color: var(--ink); }

/* newsletter */
.newsletter { background: var(--fog); padding: 26px 0; margin: 34px 0 0; }
.newsletter__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: 36px; align-items: center; }
.newsletter h2 { font-size: 24px; font-weight: 700; margin: 0 0 6px; letter-spacing: -.01em; }
.newsletter p { margin: 0; font-size: 14.5px; color: #44484d; }
.lists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
.lists label { display: block; background: #fff; border: 1px solid var(--rule); padding: 10px 12px; cursor: pointer; font-size: 12px; line-height: 1.35; color: var(--muted); }
.lists label strong { display: block; font-size: 14.5px; font-weight: 700; color: var(--ink); margin: 3px 0 1px; }
.lists input { accent-color: var(--accent); }
.lists label:has(input:checked) { border-color: var(--ink); }
.inline-form { display: flex; }
.inline-form input[type=email] { flex: 1; min-width: 0; border: 1px solid var(--ink); border-right: 0; padding: 11px 14px; font: 15px var(--sans); }
.hp { display: none; }

/* footer */
.foot { background: var(--night); color: #bdbdbd; font-size: 13.5px; }
.foot .wrap { padding-top: 36px; padding-bottom: 26px; }
.foot__top { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); gap: 28px; border-bottom: 1px solid #333; padding-bottom: 28px; }
.foot .wordmark { color: #fff; font-size: 30px; white-space: normal; line-height: 1.05; }
.foot__mark { display: block; color: #fff; margin-bottom: 12px; }
.foot__mark svg { width: 32px; height: 32px; }
.foot__blurb { font-size: 13.5px; color: #a9a9a9; margin: 12px 0 0; max-width: 24em; line-height: 1.5; }
.foot h3 { color: #fff; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; margin: 4px 0 10px; font-weight: 700; }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot li { padding: 3px 0; }
.foot a:hover { color: #fff; }
.foot__base { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding-top: 16px; color: #8a8a8a; font-size: 12px; }

/* ---------- section and tag fronts ---------- */
.front-head { padding: 22px 0 16px; border-bottom: 2px solid var(--ink); margin-bottom: 20px; }
.front-head .eyebrow { color: var(--accent); margin-bottom: 4px; }
.front-head h1 { font-size: clamp(34px, 4.4vw, 54px); font-weight: 300; letter-spacing: .04em; text-transform: uppercase; line-height: 1.02; margin: 0; color: var(--ink); }
.front-head p { font-size: 16px; color: #44484d; max-width: 46em; margin: 8px 0 0; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.chip { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); background: #fff; border: 1px solid var(--rule); padding: 5px 9px; cursor: pointer; line-height: 1.2; }
.chip:hover { border-color: var(--ink); text-decoration: none; }
.chip.is-done { background: var(--blue); border-color: var(--blue); color: #fff; }
.front-lead { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 28px; margin-bottom: 8px; }
.front-lead .stack-item:last-child { border-bottom: 0; }
.front-lead__main { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.front-lead__main .hed { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.12; letter-spacing: -.015em; }
.front-lead__main .dek { font-size: 16px; }

/* ---------- article ---------- */
.article-head { max-width: 940px; padding: 22px 0 0; }
.article-head .hed { font-size: clamp(30px, 3.9vw, 48px); line-height: 1.08; letter-spacing: -.02em; }
.article-head .dek { font-size: clamp(17px, 1.6vw, 20px); margin-top: 12px; max-width: 44em; color: #3e4247; }
.byline { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--rule); font-size: 13px; color: var(--muted); }
.byline strong { color: var(--ink); font-weight: 700; }
.byline__share { display: inline-flex; gap: 6px; flex-wrap: wrap; margin-left: auto; }
.article--feature .article-head { text-align: center; margin: 0 auto; }
.article--feature .article-head .kicker, .article--feature .byline { justify-content: center; }
.article--feature .article-head .hed { font-weight: 300; text-transform: uppercase; letter-spacing: .02em; font-size: clamp(30px, 4.2vw, 52px); line-height: 1.08; }
.article--feature .article-head .dek { margin-left: auto; margin-right: auto; }
.article--feature .byline__share { margin-left: 0; }
.hero { margin: 20px 0 0; }
.hero--narrow { max-width: 900px; }
.article--feature .hero--narrow { margin-left: auto; margin-right: auto; }
.hero figcaption, figure.inline figcaption { font-size: 12px; color: var(--muted); margin-top: 7px; line-height: 1.45; }
.hero .credit, figure.inline .credit { color: #8a8d91; }
.hero .credit a, figure.inline .credit a { text-decoration: underline; text-underline-offset: 2px; }
.article-body { display: grid; grid-template-columns: minmax(0, 760px) 300px; justify-content: space-between; gap: 48px; margin-top: 26px; }
.article--feature .article-body { grid-template-columns: minmax(0, 760px) 300px; }
.prose { font-size: 18px; line-height: 1.68; color: var(--text); }
.prose p { margin: 0 0 1em; }
.prose h2 { font-size: 23px; font-weight: 700; line-height: 1.22; color: var(--ink); margin: 1.5em 0 .5em; letter-spacing: -.01em; }
.prose h3 { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--ink); margin: 1.5em 0 .5em; }
.prose a { color: var(--blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; text-decoration-color: rgba(27,61,110,.35); }
.prose a:hover { text-decoration-color: var(--blue); }
.prose ul, .prose ol { margin: 0 0 1.1em; padding-left: 1.2em; }
.prose li { margin: 0 0 .4em; }
.prose strong { font-weight: 700; color: var(--ink); }
.prose blockquote { margin: 1.4em 0; padding: 2px 0 2px 22px; border-left: 3px solid var(--accent); }
.prose blockquote p { font-size: 24px; font-weight: 300; line-height: 1.32; color: var(--ink); margin: 0 0 .35em; }
.prose blockquote cite { font-style: normal; font-size: 12.5px; color: var(--muted); }
.prose table { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 1.1em 0 1.4em; font-variant-numeric: tabular-nums; line-height: 1.4; }
.prose th { text-align: left; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--muted); border-bottom: 2px solid var(--ink); padding: 0 12px 7px 0; }
.prose td { border-bottom: 1px solid var(--rule); padding: 9px 12px 9px 0; vertical-align: top; }
.prose td:last-child, .prose th:last-child { padding-right: 0; }
.prose .num { text-align: right; }
.table-scroll { overflow-x: auto; }
figure.inline { margin: 1.5em 0; }
figure.inline.wide { margin-left: -40px; margin-right: -40px; }
.facts { background: var(--fog); border-top: 3px solid var(--ink); padding: 14px 18px 4px; margin: 1.5em 0; }
.facts h3 { margin: 0 0 8px !important; font-size: 11px !important; color: var(--ink); }
.facts dl { margin: 0; }
.facts div { display: grid; grid-template-columns: minmax(0, 1fr) fit-content(62%); gap: 16px; padding: 8px 0; border-top: 1px solid #dfe2e5; font-size: 14px; line-height: 1.35; }
.facts dt { color: #3d4146; }
.facts dd { margin: 0; font-weight: 700; color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; }
.note { font-size: 14px; line-height: 1.55; color: #3d4146; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 12px 0; margin: 1.5em 0; }
.inline-related { border-top: 2px solid var(--ink); border-bottom: 1px solid var(--rule); padding: 10px 0 4px; margin: 1.6em 0; }
.inline-related h3 { margin: 0 0 6px !important; font-size: 11px !important; color: var(--accent) !important; }
.inline-related ul { list-style: none; padding: 0; margin: 0; }
.inline-related li { padding: 7px 0; border-top: 1px solid var(--rule); font-size: 16px; line-height: 1.3; margin: 0; }
.inline-related li:first-child { border-top: 0; }
.inline-related a { color: var(--ink) !important; text-decoration: none !important; font-weight: 700; }
.inline-related a:hover { text-decoration: underline !important; }
.prose .chip, .prose .tag { color: var(--ink); text-decoration: none; }
.prose .tag { color: var(--accent); }
.article-main { min-width: 0; }
.article-main > .hero { margin: 0 0 22px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 1.8em 0 0; font-size: 12px; }
.tag-row span { font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-right: 4px; }

.rail__box { position: static; }
.rail__sticky { position: sticky; top: 16px; }
.rail .cta-box h3 { font-size: 20px; letter-spacing: -.01em; text-transform: none; border: 0; padding: 0; margin: 0 0 8px; color: #fff; }
.rail h3 { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--ink); margin: 0 0 4px; padding-bottom: 7px; border-bottom: 2px solid var(--ink); }
.rail ol { list-style: none; padding: 0; margin: 0 0 24px; }
.rail li { padding: 10px 0; border-bottom: 1px solid var(--rule); }
.rail li a { font-size: 15px; font-weight: 700; line-height: 1.28; color: var(--ink); }
.rail .kicker { margin-bottom: 3px; font-size: 10px; }
.rail .ranked li { padding: 10px 0; }
.rail .ranked li:first-child { padding-top: 10px; }
.rail .chips { margin: 8px 0 24px; }

.sources { margin-top: 2.2em; border-top: 2px solid var(--ink); padding-top: 10px; }
.sources h2 { font-size: 11px !important; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 8px !important; }
.sources ol { margin: 0; padding-left: 1.3em; font-size: 13.5px; line-height: 1.5; color: #3d4146; }
.sources li { margin-bottom: 5px; }
.sources a { color: var(--ink); text-decoration: underline; text-decoration-color: #b5b5b5; text-underline-offset: 2px; }
.sources .src-outlet { font-weight: 700; color: var(--ink); }

.chart-fig { margin: 1.6em 0; }
.chart-fig h4 { font-size: 17px; font-weight: 700; margin: 0 0 2px; color: var(--ink); }
.chart-fig .chart-sub { font-size: 12.5px; color: var(--muted); margin: 0 0 12px; }
.chart-fig details { font-size: 13px; margin-top: 8px; }
.chart-fig summary { cursor: pointer; color: var(--blue); font-weight: 700; }

/* share */
.share { margin: 2.2em 0 0; padding: 16px 0 0; border-top: 2px solid var(--ink); }
.share h2 { font-size: 20px !important; margin: 0 0 12px !important; }
.share h3 { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--ink); margin: 20px 0 8px !important; }
.share__row { display: flex; flex-wrap: wrap; gap: 6px; }
.share__btn { display: inline-flex; align-items: center; font-size: 13px; font-weight: 700; color: var(--ink) !important; text-decoration: none !important; background: #fff; border: 1px solid var(--ink); padding: 8px 13px; cursor: pointer; line-height: 1.2; }
.share__btn:hover { background: var(--ink); color: #fff !important; }
.share__btn--ink { background: var(--ink); color: #fff !important; }
.share__btn--ink:hover { background: var(--blue); border-color: var(--blue); }
.share__btn.is-done { background: var(--blue); border-color: var(--blue); color: #fff !important; }
.share__note { font-size: 13.5px; color: var(--muted); margin: 0 0 10px !important; line-height: 1.45; }
.share__caption { display: block; width: 100%; font: 14px/1.5 var(--sans); color: var(--text); border: 1px solid #b9bcc0; padding: 10px 12px; margin: 0 0 8px; resize: vertical; background: var(--fog); }
.card-tiles { display: grid; grid-template-columns: 1.9fr 1fr .76fr; gap: 10px; align-items: end; }
.card-tile { display: block; color: var(--ink); text-decoration: none !important; }
.card-tile__img { display: block; border: 1px solid var(--rule); overflow: hidden; }
.card-tile__img img { width: 100%; height: auto; display: block; }
.card-tile:hover .card-tile__img { border-color: var(--ink); }
.card-tile__meta { display: block; font-size: 11.5px; line-height: 1.4; color: var(--muted); margin-top: 6px; }
.card-tile__meta strong { color: var(--ink); }
.card-tile__meta::before { content: "\2193"; margin-right: 5px; color: var(--accent); font-weight: 700; }

.after-article { margin-top: 36px; }

/* forms and pages */
.form-page { max-width: 760px; margin: 0 auto; padding: 26px 0 0; }
.form-page h1 { font-size: clamp(32px, 4vw, 46px); font-weight: 300; letter-spacing: .03em; text-transform: uppercase; line-height: 1.05; margin: 0 0 10px; color: var(--ink); }
.form-page .intro { font-size: 17px; color: #3b3f44; margin: 0 0 22px; line-height: 1.55; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.form .full { grid-column: 1 / -1; }
.form label { display: block; font-size: 12.5px; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
.form input, .form select, .form textarea { width: 100%; border: 1px solid #9a9a9a; border-radius: 0; padding: 11px; font: 16px var(--sans); background: #fff; color: var(--ink); }
.form input:focus, .form textarea:focus { border-color: var(--blue); outline: 2px solid #e5ecf7; }
.form textarea { min-height: 130px; resize: vertical; }
.form .hint { font-size: 12px; color: var(--muted); margin-top: 5px; font-weight: 400; }
.form fieldset { border: 0; padding: 0; margin: 0; }
.form legend { font-size: 12.5px; font-weight: 700; color: var(--ink); margin-bottom: 7px; }
.choice { display: flex; flex-wrap: wrap; gap: 7px; }
.choice label { font-weight: 500; border: 1px solid var(--rule); padding: 8px 11px; margin: 0; cursor: pointer; font-size: 13.5px; }
.form .choice input { width: auto; display: inline-block; padding: 0; margin: 0 6px 0 0; vertical-align: -2px; accent-color: var(--accent); }
.choice label:has(input:checked) { border-color: var(--ink); background: var(--fog); }
.fineprint { font-size: 12px; color: var(--muted); line-height: 1.5; }
.page-prose { max-width: 720px; }
.search-box { display: flex; border: 1px solid var(--ink); margin: 0 0 22px; }
.search-box input { flex: 1; border: 0; padding: 13px 15px; font: 20px var(--sans); min-width: 0; }
.search-box button { border: 0; background: var(--ink); color: #fff; padding: 0 20px; font-weight: 700; font-size: 14px; cursor: pointer; }
.results .row-item { grid-template-columns: minmax(0, 1fr); }
.results mark { background: var(--accent-tint); color: inherit; padding: 0 2px; }

/* neighborhoods guide */
.hood { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 32px; padding: 26px 0; border-top: 1px solid var(--rule); scroll-margin-top: 16px; }
.hood h2 { font-size: 28px; font-weight: 300; text-transform: uppercase; letter-spacing: .04em; line-height: 1.1; margin: 0 0 10px; color: var(--ink); }
.hood .prose { font-size: 16.5px; }
.hood-toc { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; }
.hood__latest { margin-top: 20px; border-top: 2px solid var(--ink); padding-top: 10px; }
.hood__latest .eyebrow { color: var(--label); }
.hood__latest .link-list .hed { font-size: 15px; }
.hood__latest .text-link { display: inline-block; margin-top: 10px; font-weight: 700; }

/* social kit, sitemap */
.kit-item { display: grid; gap: 12px; padding: 22px 0 26px; border-top: 1px solid var(--rule); }
.kit-item__head .hed { font-size: 22px; }
.kit-secs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
.kit-sec h3 { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 8px; }
.sm-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 36px; }
.sm-group h2 { font-size: 20px; font-weight: 800; margin: 0 0 8px; padding-bottom: 7px; border-bottom: 2px solid var(--ink); }
.sm-group ul { list-style: none; margin: 0; padding: 0; }
.sm-group li { padding: 7px 0; border-bottom: 1px solid var(--rule); font-size: 15px; line-height: 1.3; }
.sm-group li .meta { display: block; margin-top: 2px; }


/* ---------- older home index ---------- */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-top: 18px; }
.crumbs a { color: var(--ink); }
.crumbs__sep { color: #a3a7ac; }
.zip-head { padding-top: 10px; }
.front-head + .zfig { border-top: 0; margin-top: -20px; }
.zfig { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 2px solid var(--ink); border-bottom: 1px solid var(--rule); margin: 0 0 8px; }
.zfig__cell { padding: 14px 16px 14px 0; }
.zfig__cell + .zfig__cell { padding-left: 16px; border-left: 1px solid var(--rule); }
.zfig__label { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--label); }
.zfig__value { font-size: clamp(24px, 2.4vw, 32px); font-weight: 300; line-height: 1.1; color: var(--ink); margin-top: 6px; font-variant-numeric: lining-nums tabular-nums; letter-spacing: -.01em; }
.zfig__note { font-size: 12px; color: var(--muted); margin-top: 5px; line-height: 1.35; }
.zfig__note a { color: var(--ink); text-decoration: underline; text-decoration-color: #b5b5b5; text-underline-offset: 2px; }
table.ztable { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; line-height: 1.35; margin: 0; }
.ztable th { text-align: left; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--muted); border-bottom: 2px solid var(--ink); padding: 0 12px 7px 0; white-space: nowrap; }
.ztable td { border-bottom: 1px solid var(--rule); padding: 8px 12px 8px 0; vertical-align: top; }
.ztable .num { text-align: right; }
.ztable th:last-child, .ztable td:last-child { padding-right: 0; }
.prose .ztable a, .ztable a { color: var(--ink); text-decoration: none; font-weight: 600; }
.ztable a:hover { text-decoration: underline; }
.ztable__name { display: block; }
.ztable__sub { display: block; font-size: 12px; color: var(--muted); font-weight: 400; }
.ztable th[data-sort] { cursor: pointer; user-select: none; }
.ztable th[data-sort]:hover { color: var(--ink); }
.ztable th[data-sort]::after { content: ""; display: inline-block; width: 0; height: 0; margin-left: 5px; vertical-align: 2px; border: 4px solid transparent; border-top-color: #b9bcc0; border-bottom: 0; }
.ztable th[aria-sort="ascending"]::after { border-top: 0; border-bottom: 4px solid var(--accent); }
.ztable th[aria-sort="descending"]::after { border-top-color: var(--accent); }
.ztable tbody tr:hover td { background: var(--fog); }
.zfigure { margin: 1.4em 0 1.6em; }
.zfigure figcaption { font-size: 12.5px; color: var(--muted); margin-top: 8px; line-height: 1.45; }
.prose .zfigure table { margin: 0; }
.controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; margin: 0 0 14px; padding: 14px 16px; background: var(--fog); border-top: 2px solid var(--ink); }
.controls label { display: flex; flex-direction: column; gap: 5px; font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.controls input, .controls select { font: 15px var(--sans); padding: 9px 10px; border: 1px solid #9a9a9a; background: #fff; color: var(--ink); min-width: 0; border-radius: 0; }
.controls__q { flex: 1 1 260px; }
.controls__q input { width: 100%; }
.controls__count { margin: 0 0 0 auto; font-size: 13px; color: var(--muted); align-self: center; }
.prose .controls label { margin: 0; }

.cols-map { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.tilewrap { margin-top: 4px; }
.tilemap { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(8, auto); gap: 3px; }
.tile { aspect-ratio: 1 / 1; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; font-variant-numeric: tabular-nums; text-decoration: none !important; border-radius: 2px; }
.tile b { font-size: clamp(9px, 1.05vw, 13px); font-weight: 700; letter-spacing: .02em; }
.tile span { font-size: clamp(8px, .85vw, 11px); font-weight: 500; margin-top: 2px; }
a.tile:hover, a.tile:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
.tile--none { background: var(--fog); color: #a3a7ac; }
.tile.b1 { background: #cde2fb; color: var(--ink); }
.tile.b2 { background: #86b6ef; color: var(--ink); }
.tile.b3 { background: #3987e5; color: #fff; }
.tile.b4 { background: #1c5cab; color: #fff; }
.tile.b5 { background: #0d366b; color: #fff; }
.legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 12px; font-size: 12px; color: var(--muted); }
.legend__title { font-weight: 700; color: var(--ink); letter-spacing: .02em; }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i.tile { width: 14px; height: 14px; aspect-ratio: auto; display: inline-block; }
.ranked--zips a { display: block; }
.ranked__meta { display: block; font-size: 12px; font-weight: 400; color: var(--muted); margin-top: 3px; line-height: 1.3; }
.ledger__sub { display: block; font-size: 12px; font-weight: 400; color: var(--muted); }
.ledger a { color: var(--ink); }
.inline-form__zip { width: 110px; flex: 0 0 auto; border: 1px solid var(--ink); border-right: 0; padding: 11px 12px; font: 15px var(--sans); }


/* ---------- off-market offer ---------- */
.offer-band { background: var(--blue); color: #fff; margin: 16px 0 6px;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 24px 24px; }
.offer-band__row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 40px; align-items: center; padding-top: 26px; padding-bottom: 26px; }
.offer-band .eyebrow { color: #c6d3e7; margin: 0 0 6px; }
.offer-band h1 { font-size: clamp(30px, 3.4vw, 44px); font-weight: 800; letter-spacing: -.02em; line-height: 1.05; margin: 0; }
.offer-band__copy p { font-size: 16.5px; line-height: 1.5; color: #dfe6f1; margin: 10px 0 0; max-width: 40em; }
.offer-band__form label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #c6d3e7; margin-bottom: 8px; }
.offer-band__fields { display: flex; }
.offer-band__fields input { flex: 1; min-width: 0; border: 0; padding: 14px 14px; font: 17px var(--sans); border-radius: 2px 0 0 2px; }
.offer-band__fields .btn { border-radius: 0 2px 2px 0; padding: 0 22px; font-size: 15px; }
.offer-band__contact { margin: 10px 0 0; font-size: 14px; color: #dfe6f1; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.offer-band__contact a { color: #fff; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.5); }
.offer-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-top: 16px; font-size: 14px; }
.offer-row .btn { padding: 12px 22px; font-size: 15px; }
.offer-row a:not(.btn) { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.zip-head h1 { font-size: clamp(30px, 3.6vw, 46px); }
.zip-head p { max-width: 44em; }
.benefits { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 20px 0 16px; margin: 4px 0 24px; }
.benefits h2 { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 0 0 14px; }
.benefits__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.benefit h3 { font-size: 17px; font-weight: 700; color: var(--ink); margin: 0 0 6px; letter-spacing: -.01em; }
.benefit p { font-size: 14.5px; line-height: 1.5; color: #3f4348; margin: 0; }
.benefits__note { font-size: 13px; color: var(--muted); margin: 16px 0 0; line-height: 1.5; }
.benefits__note strong { color: var(--ink); }
.benefits--compact { border-bottom: 0; padding-bottom: 0; }
.front-head + .benefits { border-top: 0; padding-top: 2px; }
.lead-rank .sec-head h2 { font-size: 19px; }
.benefits--compact .benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.article-main .zfig { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 6px 0 22px; }
.article-main .zfig__cell:nth-child(4) { padding-left: 0; border-left: 0; }
.article-main .zfig__cell:nth-child(n+4) { border-top: 1px solid var(--rule); }
.cta-box__contact { margin: 10px 0 0 !important; font-size: 13.5px; }
.cta-box__contact a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.foot__contact { margin: 12px 0 0; font-size: 14px; line-height: 1.7; }
.foot__contact a { color: #fff; }
.form-page__eyebrow { color: var(--accent); margin: 0 0 6px; }
.form-page__h2 { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 26px 0 12px; }
.form-page__contact, .form-page__note { font-size: 15px; color: #3b3f44; margin: 14px 0 0; }
.form-page__contact a, .form-page__note a { color: var(--ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.steps { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; }
.steps li { counter-increment: step; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 2px 10px; font-size: 14.5px; line-height: 1.45; color: #3f4348; }
.steps li::before { content: counter(step); grid-row: 1 / span 2; width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.steps strong { color: var(--ink); font-size: 15.5px; }
.faq h2 { font-size: 22px; font-weight: 800; margin: 0 0 10px; border-top: 2px solid var(--ink); padding-top: 10px; }
.faq details { border-bottom: 1px solid var(--rule); padding: 12px 0; }
.faq summary { cursor: pointer; font-weight: 700; font-size: 16.5px; color: var(--ink); list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; float: right; font-weight: 400; color: var(--muted); }
.faq details[open] summary::after { content: "\2212"; }
.faq details p { margin: 8px 0 0; font-size: 15.5px; line-height: 1.55; color: #3f4348; }
.contact-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; padding: 16px 18px; background: var(--fog); border-top: 3px solid var(--blue); margin: 0 0 18px; }
.contact-card span { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 3px; }
.contact-card a { font-size: 18px; font-weight: 700; color: var(--ink); }

/* ---------- tables of contents and seller questions ---------- */
html { scroll-behavior: smooth; }
.prose h2[id], .qa, #numbers, #asked { scroll-margin-top: 16px; }
.toc { border: 1px solid var(--rule); border-top: 3px solid var(--accent); background: #fafbfc; padding: 14px 20px 10px; margin: 22px 0 28px; }
.prose .toc__label, .toc__label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 0 0 6px; line-height: 1.4; }
.prose .toc ol { list-style: none; counter-reset: toc; margin: 0; padding: 0; }
.prose .toc li { counter-increment: toc; display: grid; grid-template-columns: 28px minmax(0, 1fr); padding: 7px 0; margin: 0; border-top: 1px solid var(--rule); font-size: 15.5px; line-height: 1.35; }
.prose .toc li:first-child { border-top: 0; }
.prose .toc li::before { content: counter(toc); color: var(--label); font-weight: 700; font-size: 13px; padding-top: 1px; font-variant-numeric: tabular-nums; }
.prose .toc a { color: var(--ink); font-weight: 600; text-decoration: none; }
.prose .toc a:hover { text-decoration: underline; text-decoration-color: var(--ink); }
.qa { border-top: 1px solid var(--rule); padding-top: 4px; margin-top: 30px; }
.qa:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.prose .qa h2 { font-size: 25px; margin-top: .7em; }
.prose .steps--inline { margin: 4px 0 1.2em; padding: 0; gap: 12px 22px; }
.prose .steps--inline li { margin: 0; font-size: 15.5px; grid-template-columns: 34px minmax(0, 1fr); }
.prose .steps--inline li::before { grid-row: 1; }
.asked--inline { border-left: 3px solid var(--accent-tint); padding: 2px 0 2px 16px; margin: 4px 0 1.2em; }
.prose .asked__label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--label); margin: 0 0 4px; line-height: 1.4; }
.prose .asked ul { list-style: none; margin: 0; padding: 0; }
.prose .asked li { margin: 0; padding: 5px 0; font-size: 15.5px; line-height: 1.4; }
.prose .asked a { color: var(--ink); text-decoration: none; font-style: italic; }
.prose .asked a:hover { text-decoration: underline; }
.asked__src { display: inline-block; margin-left: 8px; font-size: 12px; font-style: normal; color: var(--muted); letter-spacing: .01em; }
section.asked { border-top: 2px solid var(--ink); margin-top: 34px; }
section.asked h2 { margin-top: .6em; }
.prose .asked__note { font-size: 13.5px; line-height: 1.5; color: var(--muted); margin: 0 0 8px; }
section.asked li { border-top: 1px solid var(--rule); padding: 9px 0; }
section.asked li:first-child { border-top: 0; }
.asked--block { border-top: 2px solid var(--ink); border-bottom: 1px solid var(--rule); padding: 10px 0 8px; margin: 1.6em 0; }
.asked--block li { border-top: 1px solid var(--rule); }
.asked--block li:first-child { border-top: 0; }
.prose .asked__src a { color: var(--muted); text-decoration: underline; text-decoration-color: #c5c8cc; font-style: normal; }
.prose .asked--block .asked__note { margin: 6px 0 0; font-size: 12.5px; }
.inline-cta { display: flex; align-items: center; justify-content: space-between; gap: 14px 22px; flex-wrap: wrap; background: var(--accent-tint); border-top: 3px solid var(--blue); padding: 16px 20px; margin: 28px 0; }
.prose .inline-cta p { margin: 0; font-size: 16px; line-height: 1.45; flex: 1 1 280px; }
.prose .inline-cta .btn { color: #fff; text-decoration: none; flex: 0 0 auto; }

.qs-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: start; }
.qs-find { background: var(--accent-tint); border-top: 3px solid var(--blue); padding: 16px 18px 18px; }
.qs-find h3 { font-size: 20px; font-weight: 700; line-height: 1.2; margin: 0 0 8px; color: var(--ink); letter-spacing: -.01em; }
.qs-find p { font-size: 14px; line-height: 1.5; color: #3b3f44; margin: 0 0 12px; }
.qs-form { display: flex; gap: 0; }
.qs-form input { flex: 1 1 auto; min-width: 0; font: inherit; font-size: 15px; padding: 10px 12px; border: 1px solid var(--ink); border-right: 0; border-radius: 2px 0 0 2px; background: #fff; }
.qs-form .btn { border-radius: 0 2px 2px 0; padding: 0 18px; font-size: 14px; background: var(--blue); border-color: var(--blue); color: #fff; }
.qs-form .btn:hover { background: var(--blue-deep); border-color: var(--blue-deep); }
.qs-find .qs-try { font-size: 13px; margin: 10px 0 0; color: var(--muted); }
.qs-try a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.qs-solo .qs-find { max-width: 640px; }

/* ---------- responsive ---------- */
@media (max-width: 1140px) {
  .lead-grid { grid-template-columns: minmax(0, 1fr) 290px; }
  .lead-grid > .lead-rank { grid-column: 1 / -1; order: 3; padding: 22px 0 0; border: 0; }
  .lead-grid > .lead-main { border-left: 0; padding-left: 0; }
  .ranked { columns: 2; column-gap: 28px; }
  .ranked li { break-inside: avoid; }
  .ranked li:first-child { padding-top: 10px; }
  .article-body, .article--feature .article-body { grid-template-columns: minmax(0, 1fr); }
  .article-body > .article-main { max-width: 720px; }
  .rail__sticky { position: static; }
  .foot__top { grid-template-columns: 1fr 1fr 1fr; }
  figure.inline.wide { margin-left: 0; margin-right: 0; }
  .mkt { grid-template-columns: minmax(0, 1fr); }
  .pgrid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .index-body { grid-template-columns: minmax(0, 1fr); }
  .zfig { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .zfig__cell:nth-child(4) { padding-left: 0; border-left: 0; }
  .zfig__cell:nth-child(n+4) { border-top: 1px solid var(--rule); }
  .cols-map { grid-template-columns: minmax(0, 1fr); }
  .benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qs-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 860px) {
  :root { --gutter: 18px; }
  .topbar__date { display: none; }
  .mast__right .text-link { display: none; }
  .lead-grid { grid-template-columns: minmax(0, 1fr); }
  .lead-grid > * { padding: 0 !important; border: 0 !important; }
  .lead-grid > .lead-side { margin-top: 22px; padding-top: 16px !important; border-top: 2px solid var(--ink) !important; }
  .mkt-grid, .cols-2, .cols-3, .river, .newsletter__grid, .front-lead, .menu__body, .kit-secs, .sm-grid { grid-template-columns: minmax(0, 1fr); }
  .zfig, .article-main .zfig { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-band__row { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .zfig__cell:nth-child(n) { padding-left: 0; border-left: 0; padding-right: 12px; }
  .zfig__cell:nth-child(2n) { padding-left: 14px; border-left: 1px solid var(--rule); }
  .zfig__cell:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .controls__count { margin-left: 0; width: 100%; }
  .lux-grid, .pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lux-grid--feature { grid-template-columns: minmax(0, 1fr); }
  .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figure:nth-child(n) { padding: 14px 12px 12px 0; border-left: 0; }
  .figure:nth-child(2n) { padding-left: 12px; border-left: 1px solid rgba(255,255,255,.2); }
  .hood { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .tabs-row { flex-direction: column; align-items: stretch; gap: 0; }
  .tabs { overflow-x: auto; scrollbar-width: none; flex-shrink: 1; }
  .tabs::-webkit-scrollbar { display: none; }
}
@media (max-width: 600px) {
  :root { --gutter: 16px; }
  .topbar nav a:not(:last-child) { display: none; }
  .mast__row { padding-top: 11px; padding-bottom: 9px; }
  .wordmark { font-size: 25px; letter-spacing: 0; }
  .mast__sub { font-size: 7.5px; letter-spacing: .16em; margin-top: 5px; }
  .mast__left .label, .mast__right .btn, .mast__search--d { display: none !important; }
  .mast__search--m { display: inline-flex !important; }
  .mast__left, .mast__right { gap: 12px; }
  .ranked { columns: 1; }
  .tabs a { padding: 8px 11px; font-size: 13px; }
  .row-item { grid-template-columns: 104px minmax(0, 1fr); gap: 12px; }
  .row-item .hed { font-size: 16.5px; }
  .row-item .dek { display: none; }
  .lux-grid, .pgrid, .pgrid--4, .lists, .form, .front-lead__main { grid-template-columns: minmax(0, 1fr); }
  .lux__hed { font-size: 19px; }
  .pgrid { gap: 0; }
  .pgrid .pcard { display: grid; grid-template-columns: 112px minmax(0, 1fr); column-gap: 14px; align-items: start; align-content: start; padding: 14px 0; border-bottom: 1px solid var(--rule); }
  .pgrid .pcard .media { grid-row: 1 / span 4; margin: 0; aspect-ratio: 1 / 1; }
  .pgrid .pcard .eyebrow { margin-bottom: 4px; }
  .pgrid .pcard__hed { font-size: 16px; }
  .pgrid .pcard__dek { display: none; }
  .pgrid .pcard__more { margin-top: 4px; font-size: 12px; color: var(--muted); }
  .pgrid > .cta-box { margin: 0 0 6px; }
  .index-head { flex-direction: column; align-items: flex-start; gap: 10px; }
  .index-head h2 { font-size: 24px; }
  .figure__value { font-size: 23px; }
  .figure__label { font-size: 12.5px; }
  .hbar { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .hbar__label { text-align: left; }
  .prose { font-size: 17px; }
  .prose blockquote p { font-size: 20px; }
  .timeline li, .river-item { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .foot__top { grid-template-columns: 1fr 1fr; }
  .inline-form { flex-direction: column; gap: 8px; }
  .inline-form input[type=email] { border-right: 1px solid var(--ink); }
  .inline-form__zip { width: 100%; border-right: 1px solid var(--ink); }
  .benefits__grid, .benefits--compact .benefits__grid, .steps, .contact-card { grid-template-columns: minmax(0, 1fr); }
  .toc { padding: 12px 14px 8px; }
  .prose .qa h2 { font-size: 22px; }
  .asked__src { display: block; margin: 2px 0 0; }
  .offer-band { margin-top: 10px; }
  .tile span { display: none; }
  .ztable { font-size: 13px; }
  .ledger { font-size: 13px; }
  .ledger .hide-sm { display: none; }
  .card-tiles { grid-template-columns: 1fr 1fr; }
  .card-tile--wide { grid-column: 1 / -1; }
  .byline__share { margin-left: 0; }
  .menu__sections a { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
@media print { .topbar, .primary, .featured, .mast__left, .mast__right, .rail, .after-article, .newsletter, .foot, .menu, .share { display: none !important; } .article-body { display: block; } }
