/* Text pages (about, FAQ, terms, privacy, disclaimers), building pages and the buildings directory.
   Colors, fonts and the masthead come from bureau.css. */
*{box-sizing:border-box}
[hidden]{display:none !important}
html{color-scheme:light}
body{margin:0;background:var(--ground);color:var(--ink);font:16px/1.6 var(--sans);padding:0}
a{color:var(--accent);text-underline-offset:2px}
a:hover{color:var(--accent-hover)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

main{max-width:1180px;margin:0 auto;padding:clamp(24px,4vw,44px) 16px 0}
main > *{max-width:880px}
h1{font:700 clamp(34px,5.4vw,54px)/1.04 var(--display);letter-spacing:-.012em;margin:0 0 10px;text-wrap:balance}
.lede{color:var(--muted);font-size:17.5px;margin:0 0 28px;max-width:60ch}
.meta{font:500 12px var(--mono);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 26px}
h2{font:700 24px/1.2 var(--display);margin:40px 0 10px;padding-top:14px;border-top:1px solid var(--rule-strong);scroll-margin-top:16px}
main.legal h2{border-top:0;padding-top:0}
main.legal > section > h2{font-size:clamp(30px,4vw,40px);margin:72px 0 6px}
main.legal > section h3{font:700 21px/1.25 var(--display);margin:34px 0 8px}
main.legal > section h4{font:600 16px/1.35 var(--sans);margin:22px 0 6px}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px 22px;margin:18px 0 0;font:500 13px var(--mono);letter-spacing:.06em;text-transform:uppercase}
h3{font:600 16px/1.35 var(--sans);margin:24px 0 6px;scroll-margin-top:16px}
ul,ol{padding-left:22px}
li{margin:4px 0}
strong{font-weight:600}
.note{background:var(--warn-bg);color:var(--warn);border-left:3px solid var(--warn);padding:12px 16px;font-size:15px;margin:20px 0}
.toc{position:sticky;top:var(--head-h,77px);z-index:20;background:var(--ground);border-top:3px double var(--rule-strong);border-bottom:1px solid var(--rule-strong);padding:9px 0;font:600 13px var(--sans);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px}
.toc a{color:var(--ink);text-decoration:none;margin:0 4px}
.bfind{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 18px;font-size:14px;color:var(--muted)}
.bfind input{flex:1 1 240px;max-width:420px;font:15px var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--rule-strong);border-radius:999px;padding:8px 14px}
#bfind-note{margin:14px 0 0}
.toc a:hover{color:var(--accent);text-decoration:underline}
/* Buildings ledger: filter chips, A–Z bar, sortable table */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.chip{font:500 13.5px var(--sans);color:var(--ink);background:transparent;border:1px solid var(--rule);border-radius:999px;padding:5px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.chip.on .count{color:inherit;opacity:.75}
.sdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.chip.on .sdot{background:var(--ground)}
.az{display:flex;flex-wrap:wrap;gap:2px 0;letter-spacing:0}
.az a,.az span{min-width:2em;text-align:center;margin:0;padding:2px 0}
.az span{color:var(--rule)}
.az.off{opacity:.35;pointer-events:none}
main > .ledger,main > .chips,main > .az{max-width:1100px}
.ledger{width:100%;border-collapse:collapse;margin:6px 0 0;table-layout:fixed}
.ledger th,.ledger td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--rule);vertical-align:baseline;white-space:normal;overflow-wrap:anywhere}
.ledger thead .nm{width:42%}.ledger thead .ad{width:33%}.ledger thead .bo{width:14%}.ledger thead .un{width:72px}.ledger thead .sr{width:24px}
.ledger.oneboro thead .ad{width:47%}
.ledger thead th{font:600 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule-strong);padding-top:4px}
.ledger thead button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.ledger thead button:hover,.ledger thead button[aria-sort]{color:var(--ink)}
.ledger tr.lt th{font:700 22px/1 var(--display);color:var(--ink);padding:22px 8px 6px;border-bottom:1px solid var(--rule-strong)}
.ledger tr.lt{scroll-margin-top:var(--az-bottom,130px)}
.ledger .nm{padding-left:0}
.ledger .nm a{font:700 16px/1.35 var(--display);color:var(--ink);text-decoration:none}
.ledger .nm a:hover{color:var(--accent);text-decoration:underline}
.ledger .ad,.ledger .bo{font-size:14px;color:var(--muted)}
.ledger .un{text-align:right;font:14px var(--mono);color:var(--ink);white-space:nowrap}
.ledger thead .un{text-align:right}
.ledger .sr{width:20px;padding-right:0;text-align:center}
.ledger tbody tr:not(.lt):hover td{background:var(--panel)}
.ledger.oneboro .bo{display:none}
.ledger.bysize tr.lt{display:none}
.ledger-key{margin:12px 0 0;display:flex;align-items:center;gap:8px;font-size:13px}
@media (max-width:640px){
  .chips{flex-wrap:nowrap;overflow-x:auto;margin-right:-16px;padding-right:16px;scrollbar-width:none}
  .chip{white-space:nowrap}
  .az a,.az span{min-width:1.75em}
  .ledger,.ledger thead,.ledger tbody{display:block}
  .ledger tr{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:baseline;border-bottom:1px solid var(--rule)}
  .ledger tr.lt{display:block;border:0}
  .ledger th,.ledger td{border:0;width:auto!important}
  .ledger thead tr{border-bottom:1px solid var(--rule-strong)}
  .ledger .bo,.ledger thead .ad{display:none}
  .ledger .nm{grid-column:1;grid-row:1;padding:9px 0 2px}
  .ledger .un{grid-column:2;grid-row:1}
  .ledger .sr{grid-column:3;grid-row:1}
  .ledger tbody .ad{grid-column:1/-1;grid-row:2;padding:0 0 9px;font-size:13px}
}
details{border-top:1px solid var(--rule);padding:12px 0}
details:last-of-type{border-bottom:1px solid var(--rule)}
summary{cursor:pointer;font:700 17px/1.4 var(--display);list-style-position:outside}
summary:hover{color:var(--accent)}
details p{margin:8px 0 0}
h2 + details{border-top:0}

/* FAQ: quiet question list, +/– markers, section names as small labels */
.faq h2{font:500 12px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border-top:0;padding-top:0;margin:36px 0 6px}
.faq details{padding:0}
.faq summary{list-style:none;display:flex;gap:12px;font:500 16px/1.45 var(--sans);padding:11px 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";flex:none;width:14px;font:400 18px/1.25 var(--sans);color:var(--muted)}
.faq details[open] summary::before{content:"–"}
.faq details > :not(summary){margin:0 0 14px 26px;max-width:68ch}
.faq #covstats{margin:0 0 8px}

/* About: facts list in the left column */
.about .about-facts{margin:22px 0 0;font-size:14px;line-height:1.5}
.about .about-facts div{padding:9px 0}
.about .about-facts dt{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.about .about-facts dd{margin:2px 0 0}
.about .amain p{max-width:720px;margin:0 0 18px}
@media (max-width:999px){
  main.about{display:flex;flex-direction:column}
  .about > .aside{display:contents}
  .about > .amain{order:1}
  .about .about-facts{order:2;margin-top:28px}
}
/* ---------- profile pages: the firm and its map side by side, then its buildings and similar firms ---------- */
main.post.profile{max-width:1320px;padding-left:clamp(16px,3vw,40px);padding-right:clamp(16px,3vw,40px)}
main.post.profile > *,.profile .ptop > *,.profile .pbottom > *{max-width:none;min-width:0}
.profile .ptop{display:grid;gap:8px clamp(32px,5vw,80px);align-items:center}
.profile .pbottom{display:grid;gap:28px clamp(32px,4vw,64px);align-items:start;margin-top:28px}
@media (min-width:1000px){
  .profile .ptop{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
  .profile .pbottom{grid-template-columns:minmax(0,1fr) minmax(260px,330px);margin-top:36px}
}
/* Pro analysis (analysisBlock in build-pages.mjs): Recent Growth and Strongest Relationships, gated. */
.profile .panalysis{margin-top:32px;border-top:3px solid var(--accent);padding-top:12px}
.profile .pa-k{margin:0 0 10px;font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.profile .panalysis .gate.inline{--gate-h:150px;margin:0}
/* Locked: only the headings and the first name or two show through, fading out fast. */
.profile .panalysis .gate.inline.locked::after{background:linear-gradient(to bottom,transparent 5%,var(--ground) 92%)}
/* Recent Growth gives nothing away while locked: its heading and a teaser line only. */
.profile .gate:not(.locked) .pa-tease,.profile .gate.locked .pa-growth > :not(h3):not(.pa-tease){display:none}
@media (max-width:999px){ .profile .panalysis .gate.inline{--gate-h:230px} }
.profile .pa-grid{display:grid;gap:24px clamp(32px,4vw,64px);align-items:start}
@media (min-width:1000px){ .profile .pa-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
.profile .pa-sec h3{margin:0 0 6px;font:400 22px/1.2 var(--display);color:var(--ink)}
.profile .pa-lead{margin:0 0 12px;font-size:14px;line-height:1.55;color:var(--muted)}
.profile .pa-rel{display:grid;gap:4px 28px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.profile .pa-rel h4{margin:10px 0 2px;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.profile .pa-rel .dir{margin:0}
.profile .pa-rel .dir li{padding:6px 0}
.profile .pa-rel .dir a{font-size:14px}
.profile .pa-rel .dir span{font-size:12px}
.profile h1{font-size:clamp(32px,4vw,48px)}
.profile .anote{font-size:14px;line-height:1.55;color:var(--muted);margin:14px 0 0;max-width:52ch}
.profile .glance{grid-template-columns:1fr 1fr;max-width:460px;margin-top:22px}
/* The firm's website: a small link beside its name. */
.profile .fsite{font-size:.45em;vertical-align:.35em;margin-left:.15em;line-height:1;text-decoration:none;padding:4px;border-radius:4px;opacity:.75;transition:opacity .15s}
.profile .fsite:hover,.profile .fsite:focus-visible{opacity:1;background:var(--chip)}
/* A firm's logo, on the background it was made for in either theme, about half as wide as the name under it. */
.profile .pname{display:inline-grid;justify-items:start;max-width:100%;margin-top:14px}
/* The wrapper is half the name's width and adds nothing to it (contain), so the name alone sets the size. */
.profile .flogo-w{width:50%;contain:inline-size;margin:0 0 10px}
.profile .flogo{display:inline-block;box-sizing:border-box;max-width:100%;padding:8px 10px;background:#FFFFFF;border:1px solid var(--rule)}
.profile .flogo.dark{background:#1E1E20;border-color:#1E1E20}
.profile .flogo img{display:block;width:auto;height:auto;max-width:100%;max-height:52px}
.profile .pname h1{margin-top:0}
.profile .fmap{width:100%;max-width:440px;margin:0;justify-self:center}
.profile .tscroll{max-width:none}
/* Similar firms: a tinted box with an accent rule, set smaller than the page. */
.profile .sims{background:var(--chip);border-top:3px solid var(--accent);padding:14px 16px 6px}
.profile .sims h2{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 4px;border:0;padding:0}
.profile .sims .anote{font-size:12.5px;line-height:1.45;margin:0 0 6px}
.profile .sims .dir{margin:0}
.profile .sims .dir li{padding:7px 0;border-bottom-color:var(--rule)}
.profile .sims .dir li:last-child{border-bottom:0}
.profile .sims .dir a{font-size:14px}
.profile .sims .dir span{font-size:12px}
code{font:14px var(--mono);background:var(--chip);border:1px solid var(--rule);padding:0 5px}
/* The site footer (styles in menu.css): inside the page margins; on wide screens it runs to the same side margins as the header. */
body > .sitefoot{margin:40px 16px 16px}
@media (min-width:821px){ body > .sitefoot{margin-inline:var(--mast-side)} }

/* building pages + directory */
main.bldg{max-width:none;padding-inline:var(--mast-side)}
main.bldg > *{max-width:none}
.crumbs{font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--accent);text-decoration:underline}
.addr{margin:0;font-size:17px}
.bldg .meta{margin:8px 0 20px}
.tabs{position:sticky;top:0;z-index:5;display:flex;gap:0;overflow-x:auto;background:var(--ground);border-top:3px double var(--rule-strong);border-bottom:1px solid var(--rule-strong);margin:0 0 8px;overflow-y:hidden;scrollbar-width:thin}
.tabs a{flex:none;padding:10px 14px;border-bottom:3px solid transparent;margin-bottom:-1px;text-decoration:none;color:var(--muted);font:600 13px var(--sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.js-tabs section.tab h2{display:none}
.tab > h2:first-child{margin-top:20px}
.glance{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px 18px;margin:18px 0}
.glance div{border-top:1px solid var(--rule-strong);padding-top:6px;min-width:0}
.glance dt{font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.glance dd{margin:0;font:600 17px/1.35 var(--sans);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.acts{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.btn{display:inline-flex;align-items:center;font:500 14px var(--sans);text-decoration:none;padding:8px 13px;border:1px solid var(--rule-strong);background:var(--panel);color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.primary:hover{background:var(--accent-hover);color:var(--accent-ink)}
.cov,.src{font-size:14px;color:var(--muted)}
.pending{background:var(--chip);border-left:3px solid var(--rule-strong);padding:10px 14px;font-size:14.5px}
.where{border:1px solid var(--rule);background:var(--panel);padding:10px 14px;margin:12px 0;font-size:14.5px}
.where-h{font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.where ul{margin:6px 0 0;padding-left:18px}
.faint{color:var(--muted)}
.massing{margin:20px 0}
.massing img{width:100%;height:auto;display:block;background:var(--chip);border:1px solid var(--rule)}
.massing figcaption{font-size:12.5px;color:var(--muted);margin-top:6px}
.near,.dir{list-style:none;padding:0;margin:8px 0}
.near li,.dir li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;padding:8px 0;border-bottom:1px solid var(--rule);max-width:none}
.near a,.dir a{font:700 15.5px/1.35 var(--display);color:var(--ink);text-decoration:none}
.near a:hover,.dir a:hover{color:var(--accent);text-decoration:underline}
.near span,.dir span{font-size:13.5px;color:var(--muted)}
.count{font:500 13px var(--mono);color:var(--muted)}
.psearch{border:1px solid var(--rule-strong);background:var(--panel);padding:14px;margin:18px 0;display:grid;gap:10px}
.psearch label{font:700 17px var(--display)}
.prow{display:flex;gap:0;border:2px solid var(--ink);background:var(--panel)}
.prow input{flex:1;min-width:0;font:16px var(--sans);padding:10px 12px;border:0;background:transparent;color:var(--ink)}
.prow input:focus{outline:none}
.prow:focus-within{outline:3px solid var(--mast)}
.prow button{font:600 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:0 18px;cursor:pointer;border:0;border-left:2px solid var(--ink);background:var(--accent);color:var(--accent-ink)}
.prow button:hover{background:var(--accent-hover)}
.psearch .chips{display:flex;gap:6px;flex-wrap:wrap}
.psearch .chips button{background:var(--ground);border:1px solid var(--rule-strong);color:var(--ink);padding:2px 9px;font:12.5px var(--mono);cursor:pointer}
.psearch .chips button:hover{border-color:var(--accent);color:var(--accent)}
.psearch .pnote{margin:0;font-size:13px}
#presults{display:grid;gap:22px}
.pask{display:grid;gap:8px}
.pask + .pask{border-top:1px solid var(--rule);padding-top:22px}
.pask-q{margin:0;font:700 21px/1.25 var(--display)}
.pans{display:grid;gap:8px}
.pans-text{margin:0;font-size:15.5px;max-width:none}
.pans blockquote{margin:0;padding:6px 0 6px 12px;border-left:3px solid var(--accent);font-size:14.5px;overflow-wrap:anywhere}
.pans blockquote .cite{display:block;margin-top:4px;font:12px var(--mono);color:var(--muted)}
.pans .vnote{margin:0;font-size:13px;color:var(--muted)}
.pans-sub{margin:4px 0 0;font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pans-warn{margin:0;padding:6px 10px;border:1px solid var(--rule-strong);background:var(--ground);font-size:13.5px}
.pans-cover summary{cursor:pointer;font:500 12.5px var(--mono);color:var(--muted)}
.pans-cover[open] summary{margin-bottom:6px}
.pans-cover .vnote{margin:0 0 4px}
.pask-ctx{margin:0;font:12px var(--mono);color:var(--muted)}
.phits summary{cursor:pointer;font:500 13px var(--mono);color:var(--muted)}
.phits[open] summary{margin-bottom:8px}
.hits{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.hits li{max-width:none;border-top:1px solid var(--rule);padding-top:8px}
.hits .cite{font:12px var(--mono);color:var(--muted)}
.hits p{margin:2px 0 0;font-size:14.5px;overflow-wrap:anywhere}
mark{background:var(--mark);color:var(--mark-ink);padding:0 2px}
.doclist{list-style:none;padding:0;margin:8px 0}
.doclist li{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--rule);max-width:none}
.doclist .m{font:12.5px var(--mono);color:var(--muted)}
.tscroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14.5px}
th,td{text-align:left;padding:7px 10px 7px 0;border-bottom:1px solid var(--rule);white-space:nowrap}
th{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--rule-strong)}
td:first-child{font:13.5px var(--mono)}
.record{margin-top:40px;font-size:14px;color:var(--muted)}
.record h2{font-size:20px;color:var(--ink)}
@media (max-width:560px){ .prow{flex-direction:column;border:0;background:none;gap:8px} .prow input{border:2px solid var(--ink);background:var(--panel)} .prow button{border:2px solid var(--ink);padding:11px} .prow:focus-within{outline:0} }

/* blog posts, guides index and the new-filings page */
main.post > *{max-width:880px}
main.post article > *{max-width:880px}
main.post article > .tscroll,main.post article > ul,main.post article > ol{max-width:880px}
.post .meta{margin:0 0 14px}
.post article h3{font:700 17px/1.35 var(--display);margin:22px 0 6px}
.filing{border-top:1px solid var(--rule);padding:6px 0 4px}
.filing h3{font:700 19px/1.3 var(--display);margin:14px 0 2px}
.filing .cd{display:inline-block;font:500 13px var(--mono);letter-spacing:.04em;background:var(--chip);border:1px solid var(--rule-strong);padding:1px 7px;margin-right:6px;vertical-align:2px}
.filing .acts{margin:8px 0 10px}
table.bars td.bar{width:55%;min-width:90px}
table.bars td.bar span{display:block;height:10px;background:var(--accent);opacity:.75}
table.bars td:nth-child(2){font-variant-numeric:tabular-nums;text-align:right;padding-right:14px}

/* Time to approval: hero figure, month/day table cells, charts in plain HTML so they follow the theme tokens */
.hero-stat{border-top:3px double var(--rule-strong);padding:14px 0 6px;margin:6px 0 4px}
.hs-k{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0}
.hs-v{font:700 64px/1.05 var(--display);color:var(--ink);margin:6px 0 4px;font-variant-numeric:tabular-nums}
.hs-v span{font-size:28px;font-weight:400;margin-left:4px}
.hs-s{color:var(--muted);font-size:15px;margin:0}
table.dm td{vertical-align:top;font-variant-numeric:tabular-nums}
table.dm .sub{display:block;font-size:12.5px;color:var(--muted)}
.approval .ic{vertical-align:-2px;margin-right:3px;color:var(--accent)}
@media (max-width:520px){.hs-v{font-size:48px}.hs-v span{font-size:22px}}
.chart{margin:14px 0 18px;padding:0}
.chart figcaption{font:600 14px var(--sans);margin:0 0 12px;display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline}
.chart .key{font:400 12.5px var(--sans);color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.chart .key i{display:inline-block;vertical-align:middle}
.chart .k-mid{width:2px;height:14px;background:var(--ink)}
.chart .k-range{width:18px;height:10px;background:var(--accent);opacity:.35;border-radius:2px;margin-left:8px}
.cols{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;height:220px;border-bottom:1px solid var(--rule-strong);padding-bottom:0}
.col{display:flex;flex-direction:column;justify-content:flex-end;position:relative;min-width:0;padding-top:20px;box-sizing:border-box}
.col .v{font:500 12px var(--mono);color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;margin-bottom:3px}
.col .b{display:block;background:var(--accent);opacity:.8;border-radius:4px 4px 0 0;margin:0 12%;flex:none}
.col:hover .b{opacity:1}
.col .l{position:absolute;top:100%;left:0;right:0;margin-top:6px;font:12px/1.25 var(--sans);color:var(--muted);text-align:center}
.cols + .src,.chart .cols{margin-bottom:46px}
.ranges{display:grid;gap:10px}
.rrow{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center}
.rl{font:500 13px var(--mono);font-variant-numeric:tabular-nums}
.rl small{display:block;font:400 11.5px var(--sans);color:var(--muted)}
.rt{position:relative;height:22px;background:linear-gradient(var(--rule),var(--rule)) 0 50%/100% 1px no-repeat}
.rr{position:absolute;top:5px;height:12px;background:var(--accent);opacity:.35;border-radius:2px}
.rrow:hover .rr{opacity:.55}
.rm{position:absolute;top:1px;width:2px;height:20px;margin-left:-1px;background:var(--ink)}
.rv{position:absolute;top:-15px;transform:translateX(-50%);font:500 11.5px var(--mono);color:var(--ink)}
.rrow.axis .rt{background:none;border-top:1px solid var(--rule-strong);height:18px}
.rrow.axis .rt span{position:absolute;top:3px;transform:translateX(-50%);font:11px var(--mono);color:var(--muted)}
.ranges .rrow:first-child{margin-top:14px}
@media (max-width:520px){.col .l{font-size:10.5px}.rrow{grid-template-columns:72px 1fr}.cols{height:180px}}

/* Budget & charges (Schedule B), rendered by building.js */
.bperiod{font-size:15px;margin:0 0 4px}
.bcaution{background:var(--warn-bg);color:var(--warn);border-left:3px solid var(--warn);padding:8px 12px;font-size:14px;margin:12px 0}
.budget td{white-space:normal;border-bottom:0}
.budget td:first-child{font:inherit}
.budget td.amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-right:0}
.budget th.amt{text-align:right;padding-right:0}
.budget tr.sec th{padding-top:16px;color:var(--ink)}
.budget tr.total td{font-weight:700;border-bottom-color:var(--rule-strong)}
.budget td.bnotes-cell{font-size:13.5px;line-height:1.45;color:var(--muted);padding-left:18px;min-width:220px}
.budget tr.total td.bnotes-cell{font-weight:400}
.budget .bnote{display:block}
.budget .bnote + .bnote{margin-top:4px}
.budget .bnote b{font-weight:600;color:var(--ink)}
.bnotes{padding-left:0;list-style:none;font-size:14.5px}
.bnotes li{border-top:1px solid var(--rule);padding:8px 0;max-width:none;scroll-margin-top:60px}
.bnotes .n{font:12px var(--mono);color:var(--accent);margin-right:6px}

/* Facts extracted from the offering plan, added by building.js */
.facts{border:1px solid var(--rule);background:var(--panel);padding:10px 14px 4px;margin:16px 0}
.facts-h{font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.facts .glance{margin:0}
.facts dd + dd{margin-top:6px}
.facts dd{font-size:15.5px}
.fcite{font:12px var(--mono);font-weight:400;color:var(--muted);white-space:nowrap}
.fq,.fq:last-of-type{border:0;padding:0;font:400 13.5px/1.45 var(--sans);color:var(--muted)}
.fq summary{font:12px var(--mono);color:var(--accent);list-style:none;display:inline}
.fq summary::-webkit-details-marker{display:none}
.fq q{display:block;margin:4px 0 2px}
.glance .sub{display:block;font:400 14px/1.4 var(--sans);color:var(--muted)}

/* ---------- building page: fact sheet ---------- */
.sheet-page h1{font-size:clamp(26px,3.6vw,38px);line-height:1.12;margin:0}
.sheet-page .addr{margin:6px 0 0;color:var(--muted);font-size:16px}
/* Building page: title and plan buttons, then a left menu that shows one section card at a time. */
.bhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap}
.bhead .acts{margin:0}
.bbody{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start;margin-top:24px}
.secnav{position:sticky;top:calc(var(--head-h,77px) + 16px);display:grid;gap:2px}
.secnav a{font:500 15px var(--sans);color:var(--ink);text-decoration:none;padding:10px 14px;border-radius:8px;border-left:3px solid transparent}
.secnav a:hover{background:var(--panel);color:var(--accent)}
.secnav a[aria-current]{background:var(--panel);color:var(--accent);border-left-color:var(--accent);border-radius:0 8px 8px 0}
.secnav a[hidden]{display:none}
.bldg .bpanels > *{background:var(--panel);border:1px solid var(--rule);border-radius:10px;padding:24px clamp(18px,2.5vw,32px);margin:0 0 20px}
.bpanels > [hidden],.tabbed .bpanels > .off{display:none}
.bpanels > .sheet-sec > h2{margin:0 0 14px;padding:0;border-top:0}
.bldg .team-box{padding-bottom:12px}
.bldg #overview{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:28px}
.bldg #overview.noimg{grid-template-columns:minmax(0,1fr)}
@media (max-width:1100px){ .bldg #overview{grid-template-columns:minmax(0,220px) minmax(0,1fr)} }
@media (max-width:720px){
  .bbody{grid-template-columns:minmax(0,1fr);gap:12px}
  .secnav{top:var(--head-h,77px);z-index:5;display:flex;overflow-x:auto;scrollbar-width:none;background:var(--ground);padding:8px 0}
  .secnav a{flex:none;border-left:0;border-bottom:3px solid transparent;border-radius:0;padding:8px 12px}
  .secnav a[aria-current]{border-bottom-color:var(--accent);border-radius:0}
  /* On a phone the page is one long scroll: no section menu, and every two-column row stacks, label over value. */
  .bldg .secnav{display:none}
  .bldg .bhead{flex-direction:column;align-items:flex-start}
  .bldg #overview{grid-template-columns:minmax(0,1fr)} .bldg #overview .massing{max-width:260px}
  .bldg .bpanels > *{padding:20px 16px;border-radius:8px;margin-bottom:14px}
  .bldg .sheet{grid-template-columns:minmax(0,1fr)}
  .bldg .sheet dt{padding:12px 0 2px;font-size:13px;padding-right:0}
  .bldg .sheet dd{padding:0 0 12px;border-top:0}
  .bldg .sheet > div:first-child > dt{padding-top:0}
}
/* Slim tables: a name with a small line under it on the left, the figure on the right. */
table.slim{width:100%}
table.slim th,table.slim td{padding:11px 0;border-bottom:1px solid var(--rule);vertical-align:top}
table.slim th[scope=row],table.slim td:first-child{font-weight:500;text-align:left}
table.slim .n,table.slim .amt{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:16px}
table.slim .sub{display:block;font-weight:400;font-size:13px;color:var(--muted)}
table.slim tr.sec th{padding-top:18px;font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left}
table.slim tr.total td{font-weight:700}
.bref{font-size:11px;vertical-align:super;margin-left:3px;text-decoration:none}
.sheet-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:32px;align-items:start;margin:24px 0 8px}
.sheet-grid.noimg{grid-template-columns:minmax(0,1fr)}
@media (max-width:720px){ .sheet-grid{grid-template-columns:minmax(0,1fr)} }
.sheet-side{display:grid;gap:12px}
.sheet-side .massing,.sheet-grid > .massing{margin:0}
.sheet-side .massing img,.sheet-grid > .massing img{border-radius:10px}
.sheet-side .acts,.sheet-grid .acts{margin:0}
.sheet-grid.noimg .acts{margin-top:16px}
.bldg .bsum{margin:16px 0 0;color:var(--muted);font-size:15px;line-height:1.55;max-width:62ch}
.bldg .bguide{display:flex;flex-direction:column;gap:2px;margin:16px 0 0;padding:12px 16px;border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:8px;background:var(--panel);color:var(--ink);text-decoration:none;max-width:62ch}
.bldg .bguide:hover{border-color:var(--accent)}
.bldg .bguide-k{font-weight:600;color:var(--accent)}
.bldg .bguide-k::after{content:" \2192"}
.bldg .bguide-t{font-size:14px;color:var(--muted)}
.sheet-page .btn{border-radius:999px;padding:9px 16px}
.sheet{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr)}
.sheet > div{display:contents}
.sheet dt,.sheet dd{margin:0;padding:10px 0;border-top:1px solid var(--rule)}
.sheet > div:first-child > *{border-top:0}
.sheet dt{color:var(--muted);font-size:14px;padding-right:20px}
.sheet dd{font-weight:500;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.sheet .sub{display:block;font-weight:400;font-size:13.5px;color:var(--muted)}
.sheet .lines{font-weight:600;letter-spacing:.04em;white-space:nowrap}
.sheet .fv{display:block}
.sheet .sub.pg{display:inline;font-size:12.5px;margin-left:2px;white-space:nowrap}
.sheet-sec{margin-top:36px}
.sheet-sec h2{font:700 21px/1.2 var(--display);margin:0 0 12px}
.pics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:560px){.pics{grid-template-columns:repeat(2,1fr)}}
.pic{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:120px;padding:16px 10px;border:1px solid var(--rule);border-radius:10px;background:var(--panel);color:var(--ink);text-align:center;text-decoration:none;font:500 14px/1.3 var(--sans)}
.pic svg{width:36px;height:36px;fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
a.pic:hover{border-color:var(--accent);color:var(--accent)}
/* A section with no PDF to open: greyed out, so it doesn't read as a button. */
div.pic{color:var(--faint);background:var(--ground);border-style:dashed;cursor:default}
div.pic svg{stroke:var(--faint);opacity:.7}
.pics-note{margin:12px 0 0;font-size:13.5px}

/* ---------- managing agents directory ---------- */
.agents .afind{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:18px 0 6px;font-size:14px;color:var(--muted)}
.agents .afind input{flex:1 1 240px;max-width:360px;font:15px var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--rule-strong);border-radius:999px;padding:8px 14px}
.agents-list{display:grid;gap:0;border-bottom:1px solid var(--rule)}
details.agent{border-top:1px solid var(--rule);padding:0}
.split .anote{font-size:14px;line-height:1.55;color:var(--muted);margin:14px 0 0}
.agents .amore{margin:16px 0 0}
.agents .amore .btn{cursor:pointer;border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:3px}
.agents .amore .btn:hover{color:var(--accent)}
details.agent summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0}
details.agent summary::-webkit-details-marker{display:none}
details.agent summary::before{content:"+";font:400 18px/1 var(--sans);color:var(--muted);width:14px;flex:none}
details.agent[open] summary::before{content:"–"}
details.agent .an{flex:1;font:600 15.5px var(--sans)}
details.agent .an a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:3px}
details.agent .an a:hover{color:var(--accent);text-decoration-color:currentColor}
details.agent .ac{font:12.5px var(--mono);color:var(--muted);white-space:nowrap}
details.agent .dir{margin:0 0 6px 26px}
/* The buildings inside an open card sit a step below the firm names. */
details.agent .dir li{padding:6px 0}
details.agent .dir a{font-size:14px}
details.agent .dir span{font-size:12.5px}
details.agent > p.faint{font-size:13px;margin:2px 0 4px 26px}
details.agent .acts{margin:4px 0 14px 26px}
details.agent .rank{flex:none;width:22px;margin-right:-4px;font:500 12.5px var(--mono);color:var(--muted);text-align:center;align-self:center;line-height:0}
details.agent .rank svg{vertical-align:middle}
details.agent .rank.r1{color:#C9A227}
details.agent .rank.r2{color:#9AA3AD}
details.agent .rank.r3{color:#B87333}
/* A recommended manager: a row after rank 3 with a gold star in the rank slot, the name highlighted, a gray label beside it. */
details.agent.rec .rank.star{color:#C9A227;font:500 14px var(--sans)}
details.agent.rec .nm{background:#F3D98B;color:#242828;padding:0 4px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
details.agent.rec .lab{margin-left:10px;font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.rec-in{display:grid;gap:18px;max-width:680px;margin:0 0 22px 26px;padding-top:6px}
.rec-in p{margin:0;font-size:14.5px;line-height:1.75}
.rec-k{margin-bottom:-10px;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
details.agent .rec-in .dir{margin:0}
details.agent .rec-in .dir li{padding:9px 0}
.rec-in .dir b{font:700 14px/1.35 var(--display)}
.rec-in .btn{justify-self:start;cursor:pointer}
.rec-form{display:grid;gap:10px}
.rec-form p{font-size:14px}
.rec-form input,.rec-form textarea{display:block;width:100%;margin:0;font:15px var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--rule-strong);border-radius:999px;padding:8px 14px}
.rec-form textarea{border-radius:18px;min-height:76px;resize:vertical}
.rec-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (max-width:640px){ .rec-row3{grid-template-columns:1fr} }
.rec-acts{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rec-acts .btn:disabled{opacity:.6;cursor:progress}
.rec-disc{font-size:12px;color:var(--faint)}
.rec-err{color:var(--warn)}
.rec-hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}
details.agent .fee,details.agent .yrs{display:inline-block;margin-left:clamp(20px,4vw,48px);text-align:right;color:var(--ink)}
details.agent .fee{min-width:14ch}
details.agent .yrs{min-width:9ch}
/* Phones: count, extra column (fee, check) and years stack at the right, so a row never runs past the screen. */
@media (max-width:640px){details.agent .ac{display:flex;flex-direction:column;align-items:flex-end;gap:2px}details.agent .fee,details.agent .yrs{margin-left:0;min-width:0}details.agent .fee:empty{display:none}}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Find the team for a project, below the rankings (build-pages.mjs teamFinder). Open to everyone: without Pro (.locked)
   the list stops at the top match and a row to subscribe (.tf-up), so nothing here is faded or covered. */
.tfind{margin:40px 0 0;border-top:3px solid var(--accent);padding-top:12px}
.split > .amain > .tfind h2,.tfind h2{margin:0 0 6px;padding:0;border:0;font:400 24px/1.2 var(--display);color:var(--ink)}
.tfind .tf-lead{margin:0 0 14px;font-size:14px;line-height:1.55;color:var(--muted)}
.tfind .gate.inline{margin:0}
.tfind .gate.locked .gate-body{max-height:none;overflow:visible;user-select:auto}
.tfind .gate.locked::after{display:none}
.tf-list li.tf-up{align-items:center;margin:0 -10px;padding:11px 10px;border-radius:6px;background:var(--accent-soft)}
.tf-list li.tf-up + li,.tf-list li + li.tf-up{border-top-color:transparent}
.tf-up .tf-r{color:var(--accent);font-weight:600}
.tf-up .tf-n > a{color:var(--accent);text-decoration-color:currentColor}
.tf-up .tf-n > a::after{content:" →"}
.tf-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 12px;margin:0 0 12px}
.tf-f{display:flex;flex-direction:column;gap:4px;min-width:0;font:600 13px var(--sans);color:var(--ink)}
.tf-f select{font:400 15px/1.2 var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--rule-strong);border-radius:4px;padding:8px 9px;width:100%;box-sizing:border-box;min-height:40px}
.tf-f select:focus{outline:2px solid var(--accent);outline-offset:1px}
.tf-f select:disabled{color:var(--faint)}
.tf-sum{margin:0 0 6px;font-size:13.5px;color:var(--muted)}
.tf-list{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--rule)}
.tf-list li{display:flex;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--rule)}
.tf-r{flex:none;width:22px;font:500 12.5px var(--mono);color:var(--muted);text-align:center}
.tf-n{flex:1;min-width:0}
.tf-n > a{font:600 15px var(--sans);color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:3px}
.tf-n > a:hover{color:var(--accent);text-decoration-color:currentColor}
.tf-n small{display:block;margin-top:2px;font-size:12.5px;color:var(--muted)}
.tf-n small a{color:inherit}
.tf-c{flex:none;font:12.5px var(--mono);color:var(--ink);white-space:nowrap}
.tf-more{margin:12px 0 0}
.tf-more .btn{cursor:pointer;border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:3px}
@media (max-width:999px){ .tf-form{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:560px){ .tf-form{grid-template-columns:1fr 1fr} }

/* ---------- directory pages: intro and search in a sticky left column, list on the right ---------- */
main.post.split{max-width:1320px;padding-left:clamp(16px,3vw,40px);padding-right:clamp(16px,3vw,40px)}
main.post.split > *{max-width:none}
@media (min-width:1000px){
  main.post.split{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:0 clamp(32px,4vw,64px);align-items:start}
  .split > .aside{position:sticky;top:100px;padding-bottom:24px}
  .split > .aside h1{font-size:clamp(32px,3vw,42px)}
  .split > .aside .lede{font-size:16px;margin-bottom:0}
  .split > .aside .afind{flex-direction:column;align-items:stretch;margin-top:22px}
  .split > .aside .afind input{max-width:none;flex:none}
  .split > .amain{padding-top:8px}
  .split > .amain > h2:first-child{margin-top:0;border-top:0;padding-top:0}
  .split > .aside .glance{grid-template-columns:1fr 1fr;margin-top:22px}
  .approval.split > .aside{position:static}
  .split > .amain > article > p:first-child{margin-top:0}
}
.split > .amain > .tscroll{max-width:none}

/* ---------- new filings map ---------- */
.fmap{margin:22px 0 0;max-width:420px}
.fmap svg{display:block;width:100%;height:auto}
.fmap .boro{fill:var(--land);stroke:var(--land-edge);stroke-width:1;vector-effect:non-scaling-stroke}
.fmap .boro-label{font:italic 400 40px var(--display);fill:var(--faint);pointer-events:none}
.fmap .dot{fill:var(--accent);stroke:var(--panel);stroke-width:1.5;vector-effect:non-scaling-stroke;cursor:pointer}
.fmap a.on .dot,.fmap a:hover .dot,.fmap a:focus .dot{fill:var(--hit)}
.ftable tbody tr.on,.ftable tbody tr:target{background:var(--accent-soft)}

/* ---------- new filings table ---------- */
main.post.filings > .tscroll{max-width:1180px}
.ftable{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}
.ftable thead th{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);vertical-align:bottom}
.ftable td{vertical-align:top;white-space:normal;min-width:90px}
.ftable td:nth-child(1){min-width:220px}
.ftable td.nowrap,.ftable .num{white-space:nowrap;min-width:0}
.ftable .num{text-align:right;padding-right:16px}
.ftable .sub{display:block;font-size:13px;color:var(--muted)}

/* ---------- units & prices (Schedule A) ---------- */
.sa-sum,.sa-units{border-collapse:collapse;width:100%;font-size:15px;font-variant-numeric:tabular-nums}
/* One rule under every row, the same across the label column and the numbers (the page-wide th/td rules differ). */
.sa-sum th,.sa-sum td,.sa-units th,.sa-units td{padding:10px 16px 10px 0;border:0;border-bottom:1px solid var(--rule);text-align:left;white-space:nowrap;vertical-align:baseline}
.sa-sum thead th,.sa-units thead th{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule-strong);padding-top:0}
.sa-sum tbody th,.sa-units tbody th{font:600 15px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink)}
.sa-sum tbody tr:hover,.sa-units tbody tr:hover{background:var(--panel)}
.sa-sum .n,.sa-units .n{text-align:right}
.sa-sum tr > :last-child,.sa-units tr > :last-child{padding-right:0}
.sa-sum .sub{font-weight:400;color:var(--muted)}
details.sa-all{margin-top:22px;border:0;padding:0}
details.sa-all summary{cursor:pointer;font:600 14px var(--sans);color:var(--accent);padding:6px 0 10px}

/* ---------- sales progress (Schedule A vs. ACRIS) ---------- */
.sp-tools{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:end;margin:22px 0 6px}
.sp-tools .bfind{flex:1 1 280px}
.sp-sum{border-collapse:collapse;width:100%;font-size:14.5px;font-variant-numeric:tabular-nums}
.sp-sum th,.sp-sum td{padding:9px 14px 9px 0;border:0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:baseline}
.sp-sum thead th{border-bottom:1px solid var(--rule-strong);padding-top:0;white-space:nowrap}
.sp-sum thead button{all:unset;cursor:pointer;font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sp-sum thead button:hover,.sp-sum thead button:focus-visible{color:var(--accent);outline:none;text-decoration:underline}
.sp-sum th[aria-sort] button{color:var(--ink)}
.sp-sum th[aria-sort=ascending] button::after{content:" ↑"}
.sp-sum th[aria-sort=descending] button::after{content:" ↓"}
.sp-sum .n{text-align:right;white-space:nowrap}
.sp-sum tr > :last-child{padding-right:0}
.sp-sum tbody tr:hover{background:var(--panel)}
.sp-sum .sub{display:block;font-size:12.5px;color:var(--muted)}
.sp-sum td:first-child{white-space:normal;min-width:170px}
.sp-cell{display:inline-flex;gap:8px;align-items:center}
.sp-mini{display:inline-block;width:64px;height:8px;background:var(--panel);border:1px solid var(--rule)}
.sp-mini span{display:block;height:100%;background:var(--accent)}

/* ---------- building page: team box and the full-width plan search ---------- */
.team-box{border:1px solid var(--rule-strong);background:var(--panel);padding:18px 20px 8px}
.team-box h2{margin-bottom:6px}
.team-box .sheet > div:first-child > *{border-top:0}
/* Nearby plans: the tinted, accent-ruled box of the profile pages' similar firms. */
.near-box{background:var(--chip);border:0;border-top:3px solid var(--accent);padding:16px 20px 6px}
.near-box h2{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 4px;border:0;padding:0}
.near-box .near{margin:0}
.near-box .near li{padding:9px 0}
.near-box .near li:last-child{border-bottom:0}
.psearch-strip{margin-top:40px}
/* The band and its top and bottom rules run to the window edges; both paint outside the box, so nothing scrolls sideways. */
.psearch-strip .psearch{margin:0;padding:28px 0 26px;border:0;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);
  box-shadow:0 0 0 100vmax var(--panel);clip-path:inset(0 -100vmax);border-image:linear-gradient(var(--rule-strong) 0 0) 1 / 1px 0 / 0 100vmax}
.psearch-strip .psearch label{font-size:21px}
.psearch-strip .prow input{font-size:17px;padding:13px 14px}
.psearch-strip #presults:empty{display:none}

/* Data pages (.datapage): each section on a card, the plan list collapsed, a "Data quality" note under the intro,
   and a full-width search band above the footer. */
.datapage .amain .blk{background:var(--panel);border:1px solid var(--rule);border-radius:6px;padding:22px 24px 20px;margin:0 0 20px}
.datapage .amain .blk h2{margin:0 0 14px;padding:0;border-top:0}
.datapage .amain .blk .chart{margin-bottom:4px}
.datapage .amain .blk .tscroll{margin-bottom:0}
.datapage details.plist{padding:14px 24px}
.datapage details.plist summary{list-style:none;display:flex;gap:12px;align-items:baseline}
.datapage details.plist summary::-webkit-details-marker{display:none}
.datapage details.plist summary::before{content:"+";width:14px;flex:none;font:400 20px/1 var(--sans);color:var(--muted)}
.datapage details.plist[open] summary::before{content:"–"}
.datapage details.plist summary h2{margin:0;font-size:19px}
.datapage details.plist summary:hover h2{color:var(--accent)}
.datapage details.plist[open] .tscroll{margin-top:14px}
.datapage .amain > .src{margin-top:4px}
.datapage tfoot th,.datapage tfoot td{border-top:2px solid var(--rule-strong);border-bottom:0;font:600 15px/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);text-align:left;vertical-align:top;font-variant-numeric:tabular-nums}
.datapage tfoot td.n{text-align:right}
.datapage tfoot .sub{display:block;font-weight:400;font-size:12.5px;color:var(--muted)}
.datapage tr.grp th{padding-top:18px;border-bottom:1px solid var(--rule-strong);font:600 15px/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);text-align:left}
.dq{margin-top:22px;background:var(--accent-soft);border-radius:6px;padding:14px 16px}
.dq h2{font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border-top:0;margin:0 0 6px;padding:0}
.dq p{font-size:13px;line-height:1.55;color:var(--muted);margin:0}
.datapage .aside .dq + .pmap,.datapage .aside .dq + *{margin-top:22px}

.sband{--band:#65153B;--band-ink:#FAF8F2;background:var(--band);color:var(--band-ink);margin:56px 0 0;padding:44px 16px 48px}
.sband-in{max-width:760px;margin:0 auto;display:grid;gap:14px;text-align:center}
.sband label{font:700 clamp(22px,3vw,30px)/1.2 var(--display)}
.sb-row{display:flex;background:#FFFFFF;border-radius:2px;overflow:hidden}
.sb-row input{flex:1;min-width:0;font:17px var(--sans);padding:14px 16px;border:0;background:transparent;color:#242828}
.sb-row input::placeholder{color:#6E716C}
.sb-row input:focus{outline:none}
.sb-row:focus-within{outline:3px solid #F3D98B;outline-offset:2px}
.sb-row button{font:600 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:0 24px;border:0;background:#242828;color:#FAF8F2;cursor:pointer}
.sb-row button:hover{background:#000}
@media (max-width:560px){ .sb-row{flex-direction:column;background:none;gap:8px;overflow:visible} .sb-row input{background:#FFFFFF;border-radius:2px} .sb-row button{padding:13px;border-radius:2px} }
/* Same footer as the home page: a rule, then the line, 16px off the bottom. */
.sband ~ .sitefoot{margin-top:0}

/* About, FAQ and short pages: the footer sits at the bottom of the window, under the full-width search band. */
body:has(> main.faq), body:has(> main.about), body:has(> main + .sitefoot){min-height:100vh;display:flex;flex-direction:column}
body > main.faq, body > main.about, body > main:has(+ .sitefoot){flex:1 0 auto;width:100%}
body > main.faq ~ .sband, body > main.about ~ .sband{margin-top:56px}
/* FAQ: one card per section, two columns. */
main.faq{max-width:1180px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
main.faq > :not(.faq-col){grid-column:1/-1}
/* Two independent stacks, so a tall card never leaves a gap beside it. */
.faq-col{display:flex;flex-direction:column;gap:20px;min-width:0}
.faq-card{background:var(--panel);border-radius:12px;padding:22px 26px 14px;box-shadow:var(--shadow)}
.faq .faq-card h2{margin:0 0 6px}
.faq .faq-card details{border:0}
.faq .faq-card summary{padding:7px 0}
/* One column: drop the stacks and restore reading order. */
@media (max-width:820px){main.faq{grid-template-columns:1fr}.faq-col{display:contents}.faq-card{order:var(--o)}}

/* Research and guide posts: headings without rules, and a sidebar of related articles that stays in view (build-pages.mjs). */
main.post.blogpost{max-width:1280px;display:grid;grid-template-columns:minmax(0,880px) minmax(240px,320px);gap:0 clamp(32px,4vw,64px);align-items:start}
main.post.blogpost > *{max-width:none;min-width:0}
main.post.blogpost > .crumbs{grid-column:1/-1}
main.post.blogpost article h2{border-top:0;padding-top:0;margin-top:36px}
/* A note under a table cell's figure or heading ("102 buildings"), on its own line. */
.blogpost table .sub{display:block;font-weight:400;font-size:12.5px;color:var(--muted)}
/* Offering plan quotes in a post: the words, then the building, plan ID and page. */
.blogpost blockquote{margin:16px 0;padding:6px 0 6px 14px;border-left:3px solid var(--accent);overflow-wrap:anywhere}
.blogpost blockquote p{margin:0}
.blogpost blockquote cite{display:block;margin-top:6px;font:12px/1.4 var(--mono);color:var(--muted);font-style:normal}
/* An example building in a post: massing drawing, the plan's words, the caption. */
.blogpost figure.ex{margin:24px 0}
.blogpost figure.ex img{max-width:100%;height:auto;display:block;background:var(--chip);border:1px solid var(--rule)}
.blogpost figure.ex figcaption{font-size:12.5px;color:var(--muted);margin-top:6px}
/* Ranked building list in a post: name, address, massing drawing, one line of figures. */
.lux-list{list-style:none;counter-reset:lux;margin:20px 0;padding:0}
.lux-list > li{counter-increment:lux;border-top:1px solid var(--rule);padding:24px 0 8px}
.lux-list h3{margin:0}
ol.lux-list h3::before{content:counter(lux) ". ";color:var(--accent)}
.lux-list .sub{margin:4px 0 0;font-size:13.5px;color:var(--muted)}
.lux-list .massing{max-width:560px;margin:14px 0}
.bp-more{position:sticky;top:calc(var(--head-h,77px) + 24px);margin-top:8px}
.bp-more h2{font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border-top:0;padding:0 0 10px;margin:0;border-bottom:1px solid var(--rule-strong)}
.bp-more ul{list-style:none;margin:0;padding:0}
.bp-more li{border-bottom:1px solid var(--rule)}
.bp-more li a{display:block;padding:12px 0;font:600 15px/1.35 var(--serif);color:var(--ink);text-decoration:none}
.bp-more li a:hover{color:var(--accent);text-decoration:underline}
.bp-more .bp-all{display:inline-block;margin-top:12px;font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.bp-more .bp-all + h2{margin-top:32px}
@media (min-width:1001px){ .bp-more{max-height:calc(100vh - var(--head-h,77px) - 48px);overflow-y:auto} }
@media (max-width:1000px){
  main.post.blogpost{display:block}
  .bp-more{position:static;margin-top:44px}
}
/* Research posts end with a citation. */
.cite{margin-top:44px;padding:18px 22px;border:1px solid var(--rule-strong);background:var(--panel)}
main.post.blogpost article .cite h2{margin:0 0 8px;font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.cite p{margin:0 0 8px;overflow-wrap:anywhere}
.cite p:last-child{margin:0}

/* Research cards (research/index.html, guides/index.html): the headline's link covers the card. */
main.rindex{max-width:none;padding-left:clamp(16px,3vw,40px);padding-right:clamp(16px,3vw,40px)}
main.rindex > *{max-width:none}
main.rindex > .lede{max-width:62ch}
.rcards{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:20px}
.rcard{position:relative;margin:0;padding:20px 22px 22px;border:1px solid var(--rule-strong);background:var(--panel);display:flex;flex-direction:column;gap:10px}
.rcard:hover{border-color:var(--accent)}
.rcard:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.rcard p{margin:0}
.rc-date{font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rcard .rc-t{font:700 20px/1.25 var(--display);margin:0;padding:0;border:0}
.rc-t a{color:var(--ink);text-decoration:none}
.rc-t a::after{content:"";position:absolute;inset:0}
.rc-t a:focus-visible{outline:0}
.rcard:hover .rc-t a{color:var(--accent);text-decoration:underline}
.rc-n{font-size:14px;line-height:1.45;color:var(--muted);border-top:1px solid var(--rule);padding-top:12px}
.rc-n b{display:block;font:700 34px/1.1 var(--display);color:var(--accent);margin-bottom:4px}
.rc-s{font-size:14px;color:var(--muted)}
/* A card found by its text: the passage that matched (RESEARCH_FILTER). */
.rc-hit{font-size:13.5px;line-height:1.5;color:var(--ink);border-left:2px solid var(--accent);padding-left:10px}
.rc-hit[hidden]{display:none}
/* Research index: search, topic chips and the count (build-pages.mjs RESEARCH_FILTER). */
.rfind{display:flex;border:2px solid var(--ink);background:var(--panel);margin:20px 0 14px;max-width:720px}
.rfind input{flex:1;min-width:0;font:16px var(--sans);padding:11px 14px;border:0;background:transparent;color:var(--ink)}
.rfind input:focus{outline:none}
.rfind:focus-within{outline:3px solid var(--mast)}
.rcats{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.rcats[hidden]{display:none}
.rcats button{font:500 13px var(--sans);padding:7px 14px;border:1px solid var(--rule-strong);border-radius:999px;background:var(--panel);color:var(--ink);cursor:pointer}
.rcats button:hover{border-color:var(--accent)}
.rcats button span{color:var(--muted);margin-left:2px}
.rcats button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.rcats button[aria-pressed="true"] span{color:inherit;opacity:.7}
.rcount{font:500 12px var(--mono);color:var(--muted);margin:0 0 10px}
.rcount:empty{display:none}
.rcard[hidden]{display:none}
.rc-cat{font:500 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.rempty{color:var(--muted);padding:12px 0}
.rempty button{font:inherit;color:var(--accent);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.rbox-all{font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}

/* "Research on This" on the data pages, and the research line under a building page's sections. */
.rbox{margin:40px 0 0;padding:4px 0 0;border-top:3px double var(--rule-strong)}
.rbox h2{font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:0;padding:0;margin:14px 0 4px}
.rbox .dir{margin:0 0 10px}
.rbox .dir li{flex-direction:column;align-items:flex-start}
.rline{margin:12px 0 0}

/* Fee calculator (content/guides/how-much-does-it-cost-to-file-a-condo-offering-plan.html). */
.feecalc{border:1px solid var(--rule-strong);background:var(--panel);padding:20px 22px;margin:18px 0 8px}
.feecalc .fc-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
.feecalc label{display:flex;flex-direction:column;gap:4px;font:600 14px/1.3 var(--sans);color:var(--ink)}
.feecalc label span{font:400 12.5px/1.35 var(--sans);color:var(--muted)}
.feecalc input,.feecalc select{font:500 16px/1.2 var(--mono);color:var(--ink);background:var(--ground);border:1px solid var(--rule);border-radius:0;padding:9px 10px;width:100%;box-sizing:border-box}
.feecalc input:focus,.feecalc select:focus{outline:2px solid var(--accent);outline-offset:1px}
.feecalc .fc-out{width:100%;margin:18px 0 0;border-collapse:collapse}
.feecalc .fc-out th{text-align:left;font:500 15px/1.35 var(--sans);text-transform:none;letter-spacing:0;color:var(--ink);background:none}
.feecalc .fc-out td{text-align:right;font-family:var(--mono);white-space:nowrap}
.feecalc .fc-out th,.feecalc .fc-out td{padding:7px 0;border-bottom:1px solid var(--rule)}
.feecalc .fc-out .fc-sub th{padding-left:16px;color:var(--muted);font-size:14px}
.feecalc .fc-sub td{color:var(--muted);font-size:14px}
.feecalc .fc-out tfoot th,.feecalc .fc-out tfoot td{font-family:var(--sans);border-top:1px solid var(--rule-strong);border-bottom:0;font-weight:700;font-size:17px;padding-top:10px}
.feecalc .src{margin:10px 0 0}
@media (max-width:600px){.feecalc{padding:16px}.feecalc .fc-fields{grid-template-columns:1fr}}

/* Common charges (common-charges.html, build-pages.mjs): one column, one measure at a time. <main data-metric="sf|unit">
   shows the [data-m] blocks for that measure and <main data-tab> the benchmark panel; results come from
   scripts/common-charges-compare.mjs, the same markup for the public example and Pro. */
main.post.ccpage{max-width:960px}
main.post.ccpage > *{max-width:none}
.ccpage[data-metric="sf"] [data-m="unit"],.ccpage[data-metric="unit"] [data-m="sf"]{display:none}
.ccpage:not([data-tab="boro"]) [data-tabpanel="boro"],.ccpage:not([data-tab="size"]) [data-tabpanel="size"],.ccpage:not([data-tab="year"]) [data-tabpanel="year"]{display:none}
.ccpage .nowrap{white-space:nowrap}
/* pages.css rules every <details> for the FAQ list (a rule above, padding); this page's disclosures set their own. */
.ccpage details{border:0;padding:0}
.ccpage .sub{display:block;font-size:13px;line-height:1.45;color:var(--muted)}
.ccpage .num{text-align:right;padding-right:14px;font-variant-numeric:tabular-nums}
.ccpage .tscroll[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ccqual{font-size:14px;line-height:1.5;color:var(--muted);margin:10px 0 0}
.ccsec{margin:0;padding:40px 0 0}
.ccsec + .ccsec{border-top:1px solid var(--rule);margin-top:40px}
.ccsec h2{margin:0 0 6px;padding:0;border:0}

.cchead h1{margin:0 0 8px}
.cclede{font:400 19px/1.5 var(--sans);color:var(--ink);margin:0;max-width:62ch}
.ccx-glabel .ccx-ex-k{margin:0 4px 0 0;vertical-align:1px}
.cctop{padding-top:28px}
.ccmode{display:inline-flex;border:1px solid var(--rule-strong);border-radius:999px;padding:3px;gap:2px;margin:0 0 18px}
.ccmode button{font:600 14px var(--sans);color:var(--ink);background:none;border:0;border-radius:999px;padding:8px 18px;cursor:pointer;min-height:38px}
.ccmode button[aria-pressed="true"]{background:var(--ink);color:var(--ground)}
.ccmode button:focus-visible,.cctabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ccbig{font:700 clamp(46px,7vw,64px)/1.05 var(--display);color:var(--ink);margin:0;font-variant-numeric:tabular-nums}
.ccbig span{font:400 18px var(--sans);color:var(--muted);margin-left:4px}
.ccsub{font-size:16px;line-height:1.6;color:var(--ink);margin:8px 0 0}
.ccdot{color:var(--muted);margin:0 4px}
.ccsummary .ccqual{margin-top:4px}

/* Info controls: a small "i" disclosure with its note just below. */
.ccinfo{display:inline-block;position:relative;vertical-align:baseline}
.ccinfo summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--muted);border-radius:50%;font:italic 600 12px/1 var(--display);color:var(--muted);cursor:pointer;vertical-align:1px}
.ccinfo summary::-webkit-details-marker{display:none}
.ccinfo summary:hover,.ccinfo[open] summary{color:var(--accent);border-color:var(--accent)}
.ccinfo summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ccinfo-tip{position:absolute;z-index:30;left:-10px;top:calc(100% + 8px);width:min(300px,80vw);background:var(--panel);border:1px solid var(--rule-strong);box-shadow:0 8px 24px rgba(0,0,0,.14);padding:10px 12px;font:400 14px/1.5 var(--sans);color:var(--ink)}

/* The distribution under the headline figure: compact. */
.ccdist{margin:22px 0 0}
.ccdist figcaption{font:600 14px var(--sans);margin:0 0 8px}
.ccdist .cols{height:120px;margin-bottom:44px}
.ccdist .col .b{margin:0 16%}

/* Compare */
.ccx h2{display:flex;align-items:center;gap:10px}
.ccx-pro{font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:2px 8px}
.ccx-intro{margin:0 0 18px;font-size:17px;color:var(--muted)}
.ccx-form{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;gap:12px 14px;align-items:end}
.ccx-f{display:flex;flex-direction:column;gap:5px;min-width:0;position:relative}
.ccx-f > span,.ccx-f > label{font:600 14px/1.3 var(--sans);color:var(--ink)}
.ccx-f em{font-style:normal;font-weight:400;color:var(--muted)}
.ccx-form select,.ccx-form input[type=search]{font:400 16px/1.2 var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--rule-strong);border-radius:4px;padding:10px 11px;width:100%;box-sizing:border-box;min-height:46px}
.ccx-form select:focus,.ccx-form input:focus{outline:2px solid var(--accent);outline-offset:1px}
.ccx-go{font:600 15px var(--sans);color:var(--accent-ink);background:var(--accent);border:0;border-radius:999px;padding:12px 28px;cursor:pointer;min-height:46px}
.ccx-go:hover{background:var(--accent-hover)}
.ccx-filters{grid-column:1/-1}
.ccx-filters summary{display:inline-block;cursor:pointer;font:600 14px var(--sans);color:var(--accent);padding:2px 0}
.ccx-filters-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px;margin-top:10px}
.ccx-sug{position:absolute;z-index:20;top:100%;left:0;right:0;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--panel);border:1px solid var(--rule-strong);box-shadow:0 8px 24px rgba(0,0,0,.14);max-height:320px;overflow:auto}
.ccx-sug li{padding:9px 12px;cursor:pointer;font-size:15px;line-height:1.35}
.ccx-sug li span{display:block;font-size:13px;color:var(--muted)}
.ccx-sug li[aria-selected=true],.ccx-sug li[data-i]:hover{background:var(--accent-soft)}
.ccx-sug li.none{cursor:default;color:var(--muted)}
/* Location picker (scripts/loc-picker.mjs): a select-like button over a list of checkboxes */
.lp-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:46px;box-sizing:border-box;padding:10px 36px 10px 11px;font:400 16px/1.2 var(--sans);color:var(--ink);text-align:left;background:var(--panel);border:1px solid var(--rule-strong);border-radius:4px;cursor:pointer;position:relative}
.lp-btn::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;margin-top:-6px;border:solid var(--ink);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);transition:transform .15s}
.lp-open .lp-btn::after{transform:rotate(-135deg);margin-top:-2px}
.lp-btn:disabled{opacity:.5;cursor:default}
.lp-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.lp-open .lp-btn{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.lp-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lp-some .lp-v{color:var(--accent);font-weight:600}
.lp-pop{position:absolute;z-index:30;top:100%;left:0;width:max(100%,320px);max-width:calc(100vw - 32px);margin-top:6px;background:var(--panel);border:1px solid var(--rule-strong);border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.16);display:flex;flex-direction:column;max-height:min(440px,70vh)}
.lp-pop[hidden]{display:none}
.lp-top{padding:10px 10px 8px;border-bottom:1px solid var(--rule)}
.ccx-form .lp-q{min-height:40px;padding:8px 10px;font-size:15px;border-color:var(--rule)}
.lp-list{overflow:auto;padding:4px 0 8px;overscroll-behavior:contain}
.lp-g{border:0;margin:0;padding:0}
.lp-g[hidden],.lp-o[hidden]{display:none}
.lp-g legend{display:block;width:100%;box-sizing:border-box;padding:12px 14px 4px;font:600 11px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lp-o{display:flex;align-items:center;gap:10px;padding:7px 14px;font:400 15px/1.3 var(--sans);color:var(--ink);cursor:pointer}
.lp-o:hover{background:var(--accent-soft)}
.lp-o input{flex:none;width:17px;height:17px;margin:0;accent-color:var(--accent);cursor:pointer}
.lp-o:has(input:checked){font-weight:600}
.lp-o input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lp-none{margin:0;padding:12px 14px;color:var(--muted);font-size:15px}
.lp-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-top:1px solid var(--rule)}
.lp-clear{font:600 14px var(--sans);color:var(--accent);background:none;border:0;padding:6px 4px;cursor:pointer}
.lp-clear:hover{text-decoration:underline;text-underline-offset:2px}
.lp-done{font:600 14px var(--sans);color:var(--accent-ink);background:var(--accent);border:0;border-radius:999px;padding:8px 20px;cursor:pointer}
.lp-done:hover{background:var(--accent-hover)}
.lp-clear:focus-visible,.lp-done:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:520px){.lp-pop{width:100%;max-width:none}}
.ccx-group{margin:16px 0 0;font-size:15px;color:var(--ink)}
.ccx-group em{font-style:normal;color:var(--accent)}
.ccx-link{text-align:left;font:400 inherit;font-size:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.ccx-out{margin-top:24px}
.ccx-wait,.ccx-empty{color:var(--muted);font-size:16px}

/* Free: the compact example, then one prompt. */
.ccx-free{margin-top:26px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px 32px;align-items:start}
.ccx-ex-k{display:inline-block;margin:0 0 6px;font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--warn);background:var(--warn-bg);border-radius:3px;padding:3px 7px}
.ccx-ex-name{margin:0;font:400 24px/1.25 var(--display)}
.ccx-ex-v{margin:6px 0 0;font-size:17px}
.ccx-ex-n{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--muted)}
.ccx-ex-more{grid-column:1/-1;margin:0}
.ccx-ex-more > summary{display:inline-block;cursor:pointer;font:600 14px var(--sans);color:var(--accent);margin-top:2px}
.ccx-ex-more[open] > summary{margin-bottom:16px}
.ccx-ex-k{justify-self:start}
.ccx-pay{border-left:3px solid var(--accent);padding:4px 0 4px 18px}
.ccx-pay-h{margin:0;font:400 21px/1.25 var(--display);color:var(--ink)}
.ccx-pay-t,.ccx-signed{margin:6px 0 0;font-size:15px;line-height:1.5;color:var(--muted)}
.ccx-pay-acts{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:14px 0 0}
.ccx-unlock{color:var(--accent-ink);background:var(--accent);border-radius:999px;padding:10px 22px;font:600 15px var(--sans);text-decoration:none}
.ccx-unlock:hover{background:var(--accent-hover)}
.ccx-in{font:400 15px var(--sans);color:var(--accent)}
.ccx-pay.nudge{animation:ccx-nudge .9s ease-out}
@keyframes ccx-nudge{0%{box-shadow:0 0 0 0 var(--accent)}100%{box-shadow:0 0 0 12px transparent}}
@media (prefers-reduced-motion:reduce){.ccx-pay.nudge{animation:none;outline:2px solid var(--accent)}}

/* Results (Pro, and the full example) */
.ccx-glabel{margin:0 0 2px;font-size:15px;line-height:1.5}
.ccx-counts{margin:0 0 16px;font-size:15px;color:var(--muted)}
.ccx-counts span[data-m]{display:inline}
.ccpage[data-metric="unit"] .ccx-counts span[data-m="sf"]{display:none}
.ccx-small{display:inline-block;font:600 11px/1.6 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--warn);background:var(--warn-bg);border-radius:3px;padding:0 6px;margin-left:4px;vertical-align:1px}
.ccx-subject{background:var(--accent-soft);border-radius:6px;padding:16px 18px;margin:0 0 18px}
.ccx-subject h3{margin:2px 0 4px;font:400 22px/1.25 var(--display)}
.ccx-k{margin:0;font:500 12px/1.35 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.ccx-vs{margin:14px 0 0}
.ccx-vs dt{font:600 14px var(--sans)}
.ccx-vs dt .sub{display:inline;font-weight:400}
.ccx-vs dd{margin:0}
.ccx-v{font:700 32px/1.15 var(--display);font-variant-numeric:tabular-nums;margin:2px 0}
.ccx-v span{font:400 15px var(--sans);color:var(--muted);margin-left:3px}
.ccx-v.na{color:var(--muted)}
.ccx-d{font:600 16px/1.45 var(--sans)}
.ccx-hint{margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}
.ccx-tiles{margin:0 0 16px}
.ccx-tile p{margin:0}
.ccx-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 8px;font-size:14px;color:var(--muted)}
.ccx-sel{flex:1 1 220px}
.ccx-side,.ccx-csv{font:600 14px var(--sans);border:1px solid var(--accent);color:var(--accent);background:none;border-radius:999px;padding:8px 16px;cursor:pointer;text-decoration:none}
.ccx-side:disabled{opacity:.45;cursor:default}
.ccx-table td{white-space:normal;vertical-align:top}
.ccx-table td:first-child,.ccx-table td.ccx-pick + td{font:inherit;min-width:180px}
.ccx-table thead th{white-space:normal;vertical-align:bottom}
.ccx-table td.ccx-pick,.ccx-table th.ccx-pick{width:28px;min-width:0;padding-right:6px}
.ccx-table input[type=checkbox]{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}
.ccx-table .nowrap{white-space:nowrap}
.ccx-table tr.is-subj td{background:var(--accent-soft)}
.ccpage[data-metric="sf"] td.c-sf,.ccpage[data-metric="unit"] td.c-unit,.ccx-table td.c-only{font-weight:600}
.ccpage[data-metric="sf"] td.c-unit,.ccpage[data-metric="unit"] td.c-sf{color:var(--muted)}
.ccx-tag{font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.ccx-tag.ccx-out{color:var(--warn);background:var(--warn-bg);border-radius:3px;padding:1px 5px;white-space:nowrap}
.ccx-why{color:var(--warn)}
.ccx-sort{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:inherit}
.ccx-sort:hover,[aria-sort] .ccx-sort{color:var(--ink)}
.ccx-more,.ccx-src{font-size:14px;line-height:1.5;color:var(--muted);margin:10px 0 0}
.ccx-sidebox{margin:20px 0 0;border-top:1px solid var(--rule-strong);padding-top:14px}
.ccx-sidehead{display:flex;justify-content:space-between;align-items:baseline}
.ccx-sidehead h3{margin:0 0 8px;font:400 20px var(--display)}
.ccx-sidetable th[scope=row]{font:600 14px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);border-bottom-color:var(--rule);white-space:normal;min-width:120px}
.ccx-sidetable td{white-space:normal;min-width:130px;vertical-align:top;font:15px var(--sans)}
.ccx-sidetable thead th{font:600 14px/1.3 var(--sans);letter-spacing:0;text-transform:none;white-space:normal}
.ccflag{color:var(--warn);font-size:14px;cursor:help}
.ccrev{color:var(--accent);font-size:13px;cursor:help}

/* Explore benchmarks */
.cctabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin:14px 0 18px}
.cctabs button{font:600 15px var(--sans);color:var(--muted);background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;margin-bottom:-1px;cursor:pointer}
.cctabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.ccpanel .chart{margin:0}
.ccview{margin-top:14px}
.ccview > summary{display:inline-block;cursor:pointer;font:600 14px var(--sans);color:var(--accent)}
.ccview[open] > summary{margin-bottom:10px}
table.ccb th[scope=row]{font:500 15px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);border-bottom-color:var(--rule)}
table.ccb td:first-child{font:inherit}

/* Benchmarks: the middle 50% labelled on hover, the borough-by-size table */
.ccbhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px}
.ccbhead .ccmode{margin:0}
.rlo,.rhi{position:absolute;top:3px;font:500 11.5px/16px var(--mono);color:var(--muted);white-space:nowrap;opacity:0;transition:opacity .12s;pointer-events:none}
.rlo{transform:translateX(calc(-100% - 6px))}
.rhi{margin-left:6px}
.rrow:hover .rlo,.rrow:hover .rhi{opacity:1}
.rrow:hover .rr{opacity:.6}
.ccgrid{margin-top:4px}
.ccgrid caption{caption-side:top;text-align:left;font:600 15px var(--sans);color:var(--ink);padding:0 0 8px}
.ccgrid td{vertical-align:top}
.ccgrid td .sub{font-size:12.5px}
/* Collapsed reference sections */
.ccfolds{padding-top:24px}
.ccfold{border-bottom:1px solid var(--rule)}
.ccfold > summary{list-style:none;display:flex;gap:12px;align-items:baseline;cursor:pointer;padding:16px 0}
.ccfold > summary::-webkit-details-marker{display:none}
.ccfold > summary::before{content:"+";width:14px;flex:none;font:400 20px/1 var(--sans);color:var(--muted)}
.ccfold[open] > summary::before{content:"–"}
.ccfold > summary h2{margin:0;font-size:20px}
.ccfold > summary:hover h2{color:var(--accent)}
.ccfold[open]{padding-bottom:20px}
.ccfold p{max-width:76ch;font-size:16px;line-height:1.6;margin:0 0 12px}
.ccfold .ccqual{margin:0 0 10px}
table.cclist td:first-child{font:inherit}
.ccflags{margin-top:8px}
.ccflags summary{cursor:pointer;font-weight:600;color:var(--accent)}
.ccflags li{margin:6px 0;line-height:1.5}

@media (max-width:760px){
  .ccx-form{grid-template-columns:1fr 1fr}
  .ccx-find,.ccx-acts{grid-column:1/-1}
  .ccx-go{width:100%}
  .ccx-free{grid-template-columns:1fr}
  .ccx-filters-in{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .ccx-form,.ccx-filters-in{grid-template-columns:1fr}
  .ccmode{display:flex}
  .ccmode button{flex:1}
  .ccbig span{display:block;margin:4px 0 0}
}

/* Ask the Plan, nothing found: a small drawing and one line, centered. */
.pempty{text-align:center;padding:8px 0 4px;display:grid;justify-items:center;gap:4px}
.pempty svg{width:84px;height:84px;margin-bottom:8px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pempty svg .soft{stroke:var(--rule)}
.pempty svg .dot{fill:var(--accent);stroke:none}
.pempty-lead{margin:0;font:600 16px var(--sans)}
.pempty-sub{margin:0;color:var(--muted);font-size:14.5px}
.pempty .chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:10px}
.pempty .chips button{border:1px solid var(--rule-strong);background:var(--ground);color:var(--ink);border-radius:999px;padding:6px 14px;font:500 14px var(--sans);cursor:pointer}
.pempty .chips button:hover{border-color:var(--accent);color:var(--accent)}

/* Building page: filing details under the summary, and the Pro mark on Ask the Plan. */
.bldg .bfiling{margin:12px 0 0;font:400 13px/1.5 var(--sans);color:var(--faint)}
.bldg .bfiling a{color:var(--muted)}
.pro-tag{display:inline-block;margin-left:6px;font:600 10px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;border-radius:999px;padding:3px 7px;vertical-align:4px}
/* Building page Closings (build-buildings.mjs): the summary figures, wrapping like the budget table; the gate over it. */
.bldg #closings .gate.inline{--gate-h:230px;overflow-x:clip}
.cl-sum td{white-space:normal}
.cl-sum td:first-child{font:inherit;font-weight:500}
/* Header actions: one primary button (Download PDF), then Save and Compare as quiet icon-and-text actions. */
.bhead .acts{display:flex;flex-wrap:wrap;gap:6px 40px;align-items:center}
.bhead .act{display:inline-flex;align-items:center;gap:6px;padding:6px 2px;border:0;background:none;font:500 14px var(--sans);color:var(--ink);text-decoration:none;cursor:pointer}
.bhead .act svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bhead .act:hover{color:var(--accent)}
.bhead .act:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.bhead .act.save-bldg[aria-pressed="true"]{color:var(--accent)}
.bhead .act.save-bldg[aria-pressed="true"] svg{fill:currentColor}
.bhead .act.save-bldg:disabled{opacity:.7;cursor:default}
@media print{ .bhead .act{display:none} }

/* ---------- Compare Buildings (compare.html, compare.js) ---------- */
.cmp{max-width:none;margin:0 auto;padding:28px var(--mast-side,16px) 0}
.cmp h1{margin:0}
.cmp-dek{margin:8px 0 22px;color:var(--muted);max-width:62ch}
.cmp .gate.inline{--gate-h:320px;overflow-x:clip}
.cmp-table{max-width:100%}
.cmp-pick label{display:block;font:500 14px var(--sans);margin-bottom:6px}
.cmp-find{position:relative;max-width:520px}
.cmp-find input{width:100%;box-sizing:border-box;font:16px var(--sans);padding:11px 14px;border:1px solid var(--rule-strong);border-radius:10px;background:var(--panel);color:var(--ink)}
.cmp-find input:disabled{opacity:.6}
.cmp-find ul{position:absolute;z-index:9;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:var(--panel);border:1px solid var(--rule);border-radius:10px;box-shadow:0 8px 24px rgba(19,32,27,.12);max-height:340px;overflow:auto}
.cmp-find li{padding:8px 10px;border-radius:8px;cursor:pointer;display:grid;gap:2px}
.cmp-find li span{font-size:13px;color:var(--muted)}
.cmp-find li:hover,.cmp-find li.on{background:var(--chip)}
.cmp-find li.none{cursor:default;color:var(--muted)}
.cmp-comps{margin:22px 0 8px}
.cmp-comps h2{font-size:19px;margin:0;padding:0;border:0}
.cmp-comps p{margin:4px 0 10px}
.cmp-comps ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.cmp-comps button{width:100%;text-align:left;display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 12px;border:1px solid var(--rule);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}
.cmp-comps button:hover{border-color:var(--accent)}
.cmp-comps .cmp-cn{font-weight:500}
.cmp-comps .sub{grid-column:1;font-size:13px;color:var(--muted)}
.cmp-comps .cmp-add{grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--accent);font-size:13px;font-weight:600}
.cmp-table{margin-top:22px}
.cmp-empty{padding:28px;border:1px dashed var(--rule);border-radius:10px;color:var(--muted);text-align:center}
/* Many columns: the box scrolls both ways, building names stay on top and field names stay on the left. */
.cmp-scroll{overflow:auto;max-height:78vh;border:1px solid var(--rule);border-radius:10px;background:var(--panel)}
.cmp-grid{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.cmp-grid th,.cmp-grid td{padding:9px 14px;border:0;text-align:left;vertical-align:top;font-size:13.5px;line-height:1.4;white-space:normal;width:160px;max-width:160px;overflow-wrap:anywhere}
.cmp-grid tbody tr:nth-child(even)>*{background:var(--ground)}
.cmp-grid tbody th{font:500 11px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);width:130px;max-width:130px;padding-top:11px}
.cmp-grid thead th{position:sticky;top:0;z-index:2;background:var(--panel);font:600 14px/1.3 var(--sans);text-transform:none;letter-spacing:0;color:var(--ink);border-bottom:1px solid var(--rule);padding-top:12px;padding-bottom:10px}
.cmp-grid thead th:first-child{left:0;z-index:3}
.cmp-grid thead a{color:var(--ink)}
.cmp-grid .cmp-x{display:block;margin-top:2px;padding:0;border:0;background:none;color:var(--muted);font:12px var(--sans);text-decoration:underline;cursor:pointer}
.cmp-grid .cmp-x:hover{color:var(--accent)}
.cmp-grid .sub{display:block;font-size:12px;color:var(--muted)}
.cmp-src{margin-top:10px;font-size:13px}
/* A building guide's StreetEasy link (build-pages.mjs postPage). */
.blogpost .se-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;margin:32px 0;padding:16px 20px;border:2px dashed var(--accent);border-radius:10px;background:var(--panel)}
.blogpost .se-box p{margin:0;flex:1 1 320px;font-size:15px;line-height:1.5}
.blogpost .se-box b{font:700 17px var(--display)}
.blogpost .se-go{flex:none;font:600 13px var(--sans);letter-spacing:.04em;padding:10px 16px;border-radius:6px;background:var(--accent);color:var(--accent-ink);text-decoration:none}
.blogpost .se-go:hover{background:var(--accent-hover)}
.blogpost .lede-sum{background:var(--panel);border-left:3px solid var(--accent);border-radius:8px;padding:14px 18px;line-height:1.6}
/* compare.html: the free peer summary above the gate, the peer set line, wide grids, cited figures, the gate's sign-up */
.cmp-free{margin:0 0 24px;padding:18px 20px;border:1px solid var(--rule);border-radius:10px;background:var(--panel)}
.cmp-free h2{font:700 20px/1.25 var(--display);margin:0 0 8px;padding:0;border:0}
.cmp-free h2 .faint{font:400 14px var(--sans)}
.cmp-set{margin:0 0 10px;color:var(--muted)}
.cmp-grid tbody th{position:sticky;left:0;background:var(--panel);z-index:1}
.cmp-grid tbody tr:nth-child(even)>th{background:var(--ground)}
.cmp-cite{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}
.cmp-cite:hover{text-decoration-color:var(--accent)}
.cmp-grid .sub{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.cmp-lines summary{cursor:pointer}
.cmp-lines ul{margin:6px 0 0;padding-left:16px;font-size:13px}
.cmp-notify{margin-top:14px;text-align:left}
.cmp-notify label{display:block;font:500 14px var(--sans);margin-bottom:6px}
.cmp-notify-row{display:flex;gap:8px;flex-wrap:wrap}
.cmp-notify-row input{flex:1 1 200px;min-width:0;font:15px var(--sans);padding:10px 12px;border:1px solid var(--rule-strong);border-radius:8px;background:var(--panel);color:var(--ink)}
.cmp-notify-row button{font:600 14px var(--sans);padding:10px 16px;border:1px solid var(--ink);border-radius:8px;background:var(--panel);color:var(--ink);cursor:pointer;min-height:42px}
.cmp-notify-msg{min-height:1.2em;margin:6px 0 0;font-size:13px}

/* ---------- research posts: the Compare box mid-article, per-building links, the closing CTA (research-compare.mjs) ---------- */
.acmp{margin:36px 0;padding:20px;background:var(--panel);border:1px solid var(--rule);border-radius:14px}
main.post.blogpost .acmp h2{margin:0 0 6px;padding:0;border:0;font:700 22px/1.25 var(--serif);color:var(--ink)}
.acmp > p{margin:0 0 14px;color:var(--muted);font-size:16px}
.acmp-row{position:relative;display:flex;gap:8px}
.acmp-row input{flex:1;min-width:0;padding:10px 14px;font:16px var(--sans);color:var(--ink);background:var(--ground);border:1px solid var(--rule-strong);border-radius:999px;text-overflow:ellipsis}
.acmp-row input:focus-visible{outline:3px solid var(--mast);outline-offset:1px}
.acmp-row button{flex:none;padding:11px 20px;font:600 15px var(--sans);color:var(--accent-ink);background:var(--accent);border:0;border-radius:999px;cursor:pointer;text-decoration:none;white-space:nowrap}
.acmp-row button:hover{background:var(--accent-hover);color:var(--accent-ink)}
.acmp .cq-opts{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:var(--panel);border:1.5px solid var(--rule-strong);border-radius:12px;max-height:320px;overflow-y:auto}
.acmp .cq-opts li{padding:9px 10px;cursor:pointer;display:grid;gap:1px;border-radius:6px}
.acmp .cq-opts li b{font:500 15.5px var(--sans)}
.acmp .cq-opts li span,.acmp .cq-opts li em{font-size:13px;color:var(--muted)}
.acmp .cq-opts li:hover,.acmp .cq-opts li.on{background:var(--chip)}
.acmp .cq-opts li.off{opacity:.6}
.acmp-note{margin-top:8px;font-size:14.5px;color:var(--muted)}
.acmp-note:empty{display:none}
/* the email step, once a building is picked (compare-box.js) */
.acmp-for{margin:0 0 10px;font:15px/1.4 var(--sans);color:var(--ink)}
.acmp-for b{font-weight:600}
.acmp-change{margin-left:6px;padding:0;font:500 13.5px var(--sans);color:var(--accent);background:none;border:0;cursor:pointer;text-decoration:underline}
.acmp-e .acmp-note{color:var(--ink)}
.post .arel{margin:20px 0 0;font:15px/1.5 var(--sans);color:var(--muted)}
.arel a{color:var(--accent)}
/* the Compare box rides in the sidebar on wide screens; narrower, compare-box.js moves it into the article (.acmp-slot) */
.acmp-side{position:sticky;top:calc(var(--head-h,77px) + 24px);margin-top:8px;transition:opacity .2s,visibility .2s}
.acmp-side.is-off{opacity:0;visibility:hidden}
.acmp-side .acmp{margin:0}
@media (max-width:480px){ .acmp{padding:18px 16px} .acmp-row{flex-direction:column} .acmp-row button{width:100%} }
/* research posts: a smaller headline, so the summary box shows above the fold */
main.post.research h1{font-size:clamp(28px,3.4vw,40px);line-height:1.1}
/* same card as the sidebar Compare box: white, a thin rule, round corners */
main.post.research .lede-sum{margin:14px 0 24px;padding:18px 20px;background:var(--panel);border:1px solid var(--rule);border-radius:14px;color:var(--ink)}
main.post.research .lede-sum .rglance span{color:var(--ink)}
/* research posts: the five-at-a-glance list and the catch callouts */
.lede-sum > p{margin:0}
main.post .lede-sum ul.rglance{margin:10px 0 0;padding-left:20px;display:grid;grid-template-columns:1fr;gap:4px;columns:auto}
.rglance li{margin:0}
.rglance li::marker{color:var(--accent)}
.rglance a{color:var(--ink);text-decoration:none}
.rglance a:hover b{color:var(--accent);text-decoration:underline}
.rglance b{font-weight:600}
.rglance span{color:var(--muted)}
.rglance span::before{content:"— "}
.post p.rcatch{padding:12px 16px;background:var(--warn-bg);border-radius:10px}
.rcatch strong{color:var(--warn)}
main.post h2[id]{scroll-margin-top:calc(var(--head-h,77px) + 16px)}
/* research posts: Common Questions as one card, the questions split by rules */
.rfaq{margin-top:40px;padding:6px 22px;background:var(--panel);border:1px solid var(--rule);border-radius:14px}
main.post .rfaq h2{margin:16px 0 4px}
.rfaq-i{padding:16px 0;border-top:1px solid var(--rule)}
.rfaq h2 + .rfaq-i{border-top:0}
main.post .rfaq-i h3{margin:0 0 6px;font:600 17px/1.35 var(--sans);color:var(--ink)}
main.post .rfaq-i p{margin:0}
main.post .rfaq-i p + p{margin-top:12px}
@media (max-width:480px){ .rfaq{padding:4px 16px} }
.post .acmp-try{margin:14px 0 0;font:14px/1.6 var(--sans);color:var(--muted)}
.acmp-try a{color:var(--ink);font-weight:500}
.acmp-try a:hover{color:var(--accent)}
main.post article > .acmp{margin-top:32px}
/* the sidebar's search: one underlined line with the button as a text link, like the footer sign-up */
.acmp-side .acmp-row{flex-direction:row;align-items:center;gap:0;border-bottom:1px solid var(--rule-strong)}
.acmp-side .acmp-row input{padding:8px 0;font-size:15px;background:transparent;border:0;border-radius:0}
.acmp-side .acmp-row input:focus-visible{outline:none}
.acmp-side .acmp-row:focus-within{border-bottom-color:var(--accent)}
.acmp-side .acmp-row button{width:auto;padding:8px 0 8px 12px;color:var(--accent);background:none;font-size:14px}
.acmp-side .acmp-row button:hover{background:none;color:var(--accent-hover);text-decoration:underline}
.acmp-side .acmp .cq-opts{top:calc(100% + 4px)}
/* Research charts and maps (scripts/blog-data/_charts.mjs): plain HTML and SVG on the theme tokens */
.rchart,.rmap{margin:18px 0 22px;padding:16px 18px 12px;background:var(--panel);border:1px solid var(--rule);border-radius:14px}
.rchart figcaption,.rmap figcaption{font:600 15px/1.35 var(--sans);color:var(--ink);margin:0 0 12px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.rchart .src,.rmap .src{margin:10px 0 0;font:400 12.5px/1.45 var(--sans);color:var(--muted)}
table.rbar{width:100%;border-collapse:collapse;margin:0;font:400 14px var(--sans);border:0}
table.rbar th,table.rbar td{border:0;padding:4px 0;background:none;vertical-align:middle}
table.rbar th{font:400 14px/1.3 var(--sans);text-transform:none;letter-spacing:normal;color:var(--ink);text-align:left;padding-right:12px;width:38%;line-height:1.3}
table.rbar td{display:flex;align-items:center;gap:10px}
table.rbar .rb-t{position:relative;flex:1;height:12px;min-width:40px}
table.rbar .rb-t i{position:absolute;top:0;bottom:0;background:var(--accent);opacity:.55;border-radius:2px}
table.rbar .rb-t u{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--ink)}
table.rbar b{font-weight:600;font-variant-numeric:tabular-nums;min-width:4.5em;text-align:right;color:var(--ink)}
table.rbar tr.on th{font-weight:600}
table.rbar tr.on .rb-t i{opacity:1}
ol.rcol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:4px;height:190px;align-items:end}
ol.rcol li{margin:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
ol.rcol i{display:block;width:100%;max-width:44px;background:var(--accent);opacity:.55;border-radius:2px 2px 0 0}
ol.rcol li.on i{opacity:1}
ol.rcol b{font:600 11.5px var(--sans);font-variant-numeric:tabular-nums;color:var(--ink);margin-bottom:3px;white-space:nowrap}
ol.rcol span{font:400 11.5px var(--sans);color:var(--muted);margin-top:4px;white-space:nowrap;border-top:1px solid var(--rule);width:100%;text-align:center;padding-top:3px}
.rmap svg{display:block;width:100%;height:auto}
.rmap .m-around path{fill:var(--ground);stroke:var(--rule);stroke-width:1.2}
.rmap .m-focus path{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2.2}
.rmap text{font:400 14px var(--sans);fill:var(--muted);paint-order:stroke;stroke:var(--panel);stroke-width:3px}
.rmap .m-fl{font-weight:600;fill:var(--accent)}
.rmap .m-dot{fill:var(--accent);stroke:var(--panel);stroke-width:1.5}
.rmap .m-st rect{fill:var(--ink)}
.rmap .m-stl{font-size:12.5px;fill:var(--ink)}
.rmap .m-box rect{fill:none;stroke:var(--warn);stroke-width:2;stroke-dasharray:6 4}
.rmap .m-boxl{font-size:12.5px;fill:var(--warn)}
.rmap .key{font:400 12.5px var(--sans);color:var(--muted);display:inline-flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.rmap .key i{display:inline-block;vertical-align:middle;margin-right:4px}
.rmap .k-dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}
.rmap .k-st{width:9px;height:9px;border-radius:2px;background:var(--ink)}
.rmap .k-box{width:14px;height:9px;border:2px dashed var(--warn)}
@media (max-width:600px){
  .rchart,.rmap{padding:12px 12px 10px;margin-left:0;margin-right:0}
  table.rbar th{width:42%;font-size:13px}
  ol.rcol span.alt,ol.rcol:not(.dense) li:has(span.alt) b{visibility:hidden}
  ol.rcol b{font-size:10px}
}
/* Dense column charts: figures on end; hover or focus a column for the count behind it. */
ol.rcol.dense{height:220px}
ol.rcol.dense b{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;margin-bottom:4px;line-height:1}
ol.rcol li{position:relative}
ol.rcol li[data-tip]{cursor:default;outline:none}
ol.rcol li[data-tip]:hover i,ol.rcol li[data-tip]:focus-visible i{opacity:1}
ol.rcol li[data-tip]:hover::after,ol.rcol li[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);z-index:3;width:max-content;max-width:200px;white-space:normal;text-align:center;padding:6px 9px;border-radius:8px;background:var(--ink);color:var(--panel);font:500 12px/1.35 var(--sans);pointer-events:none}
ol.rcol li[data-tip]:first-child:hover::after,ol.rcol li[data-tip]:nth-child(2):hover::after{left:0;transform:none}
ol.rcol li[data-tip]:last-child:hover::after,ol.rcol li[data-tip]:nth-last-child(2):hover::after{left:auto;right:0;transform:none}
/* Map: the area findings laid over a corner of the map. */
.rmap .m-wrap{position:relative}
.rmap .m-tag{font-weight:700;fill:var(--warn)}
.rmap .m-ins{position:absolute;max-width:44%;padding:10px 12px;background:var(--panel);border:1px solid var(--rule);border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.08);font:400 13px/1.4 var(--sans);color:var(--ink)}
.rmap .m-ins p{margin:0 0 6px;font-weight:600;font-size:12.5px;color:var(--muted)}
.rmap .m-ins ul{margin:0;padding:0;list-style:none;display:grid;gap:3px}
.rmap .m-ins li{margin:0}
.rmap .m-ins b{display:inline-block;min-width:3.4em;font-variant-numeric:tabular-nums;color:var(--warn)}
.rmap .m-ins-tl{top:10px;left:10px}.rmap .m-ins-tr{top:10px;right:10px}.rmap .m-ins-bl{bottom:10px;left:10px}.rmap .m-ins-br{bottom:10px;right:10px}
/* Small fact cards (neighborhood posts' features). */
.rcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 18px;max-width:880px}
.rcards > div{padding:14px 16px;background:var(--panel);border:1px solid var(--rule);border-radius:12px}
.rcards h3{margin:0 0 4px;font:600 12px/1.3 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.rcards strong{display:block;font:600 28px/1.15 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink)}
.rcards p{margin:4px 0 0;font:400 14px/1.4 var(--sans);color:var(--muted)}
@media (max-width:700px){
  .rmap .m-ins{position:static;max-width:none;margin-top:10px;box-shadow:none}
  .rcards{grid-template-columns:1fr}
  /* Research tables wrap their headers and labels on phones instead of scrolling sideways. */
  main.post.research .tscroll th,main.post.research .tscroll td{white-space:normal;padding-right:8px}
  main.post.research .tscroll td a{overflow-wrap:anywhere}
}
.rmap .m-line line{stroke:var(--warn);stroke-width:2.5;stroke-dasharray:6 4}
table.rbar td,table.rbar b{font-family:var(--sans);font-size:14px;letter-spacing:normal}
.rmap svg:has(.m-dot.on) .m-dot:not(.on){fill:var(--muted);opacity:.6}
/* Merged building pages: the key facts strip, the buyer's guide panel (its sections as cards) and the compare box. */
.bldg .kstrip{display:flex;flex-wrap:wrap;gap:10px 28px;margin:18px 0 22px;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.bldg .kstrip dt{font:500 12px/1.3 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.bldg .kstrip dd{margin:2px 0 0;font:500 15px/1.4 var(--sans)}
.bldg .kstrip .lines{color:var(--muted);font-size:13px}
.bldg .bpanels > .stack{background:none;border:0;padding:0}
.bldg .stack > .sheet-sec{background:var(--panel);border:1px solid var(--rule);border-radius:10px;padding:24px clamp(18px,2.5vw,32px);margin:0 0 20px;scroll-margin-top:calc(var(--head-h,77px) + 16px)}
.bldg .stack > .sheet-sec > h2{margin:0 0 14px;padding:0;border-top:0}
.bldg .guide-sec{max-width:none;line-height:1.6}
.bldg .guide-sec h3{margin:20px 0 6px;font-size:17px}
.bldg .se-line{margin:16px 0 0;color:var(--muted);font-size:15px}
.bldg .docacts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin:0 0 16px}
@media (max-width:760px){
}
.bldg .blede{margin:0;font-size:17px;line-height:1.6;color:var(--ink)}
.bldg .longpage .bpanels > *,.bldg.longpage .bpanels > *{scroll-margin-top:calc(var(--head-h,77px) + 16px)}
.bldg #budget .guide-sec,.bldg #team .guide-sec{margin-top:24px;padding-top:18px;border-top:1px solid var(--rule)}
.bldg.longpage .bpanels p,.bldg.longpage .bpanels li{max-width:none}
.bldg .guide-sec .gpart + .gpart{margin-top:28px;padding-top:20px;border-top:1px solid var(--rule)}
.bldg .guide-sec h4{margin:16px 0 4px;font:600 15px/1.4 var(--sans)}
/* Building page comp card: the add-buildings link sits under the table; on a phone it replaces the table's last column. */
.bldg .pr-addlink{margin-top:8px}
@media (max-width:560px){ .bldg .pr-comps .pr-add{display:none} .bldg .pr-comps .pr-table th:first-child{width:34%} .bldg .pr-comps .pr-table tbody .pr-sub{display:none} }
.bldg .pr-how summary{font:500 13px var(--sans);border:0;padding:0}
@media (max-width:720px){ .bldg table.sa-sum tr{display:block;padding:10px 0;border-bottom:1px solid var(--rule)} .bldg table.sa-sum th,.bldg table.sa-sum td{display:block;padding:0;border:0;text-align:left;white-space:normal} .bldg table.sa-sum td.n{padding:4px 0 0} }
/* Building page comp card: the locked rows under the five figures and the free account sign-up over them (peers.js gateCard). */
.bldg .pr-gate{position:relative;z-index:2;align-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;padding:22px 16px;text-align:center}
.bldg .pr-gate-k{margin:0 0 4px;font:600 11.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.bldg .pr-gate .hl-head{margin:0 0 6px;font:700 19px/1.25 var(--display);color:var(--ink)}
.bldg .pr-gate .hl-sub{margin:0 auto 14px;max-width:440px;font-size:14px;line-height:1.45;color:var(--muted)}
.bldg .pr-gate .hl-full{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;border-radius:4px;background:var(--accent);color:var(--accent-ink);font:600 15px var(--sans);text-decoration:none}
.bldg .pr-gate .hl-full:hover{background:var(--accent-hover)}
@media (max-width:560px){ .bldg .pr-gate{padding:18px 4px;background:color-mix(in srgb,var(--panel) 86%,transparent)} }
