/* Reference pages: /pricing, /faq, /privacy, /404 (front matter css: ["pages/reference"]).
   Tokens only (spec 4.1). Body copy 17px or more; tables, labels and link notes in Archivo at 15 to
   16px in --ink-2 or --ink-3; 14px only for uppercase labels at weight 700. --tan is for rules,
   marks and ticks, never text. No motion of its own beyond main.css hover states. */

/* ---------- Shared ---------- */
.rf-label { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 14px; font: 700 14px/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--link); }
.rf-label svg { flex: none; }
.rf-label > span:not(.rf-label__meta) { flex: 1 1 14em; min-width: 0; }
.rf-label--bar { gap: 10px 14px; margin-bottom: 20px; padding: 12px 16px; border: 1px solid var(--line-2); border-left: 3px solid var(--walnut); border-radius: var(--r-btn); background: var(--surface); }
.rf-label__meta { margin-left: auto; font: 600 15px/1.3 var(--font-ui); letter-spacing: 0; text-transform: none; color: var(--ink-2); }
.rf-src { font: 400 15px/1.45 var(--font-ui); color: var(--ink-3); white-space: nowrap; }
.rf-src a { color: var(--link); }
.rf-h2 { margin-bottom: clamp(22px, 3vw, 32px); font-size: clamp(1.7rem, 2.8vw, 2.4rem); }
.rf-fine { max-width: 62em; margin-top: 2px; font: 400 15px/1.55 var(--font-ui); color: var(--ink-3); }

/* In-page jump links under the header buttons */
.rf-jump { display: flex; flex-wrap: wrap; gap: 2px 26px; margin: 26px 0 0; padding: 14px 0 0; list-style: none; border-top: 1px solid var(--line); }
.rf-jump a { display: inline-flex; align-items: center; min-height: 40px; font: 600 16px/1.3 var(--font-ui); color: var(--link); }

/* Sticky side table of contents (FAQ, privacy) */
.rf-toc__k { margin-bottom: 10px; font: 700 14px/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.rf-toc__list { margin: 0 0 24px; padding: 0; list-style: none; border-top: 1px solid var(--line-2); }
.rf-toc__list a { display: flex; align-items: baseline; gap: 12px; min-height: 44px; padding: 10px 0; border-bottom: 1px solid var(--line); font: 600 17px/1.3 var(--font-ui); color: var(--ink); text-decoration: none; }
.rf-toc__list a:hover { color: var(--link); }
.rf-toc__list a:hover span:nth-child(2) { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: .18em; }
.rf-toc__n { flex: none; min-width: 1.6em; font: 790 15px/1.3 var(--font-display); font-stretch: 110%; font-variant-numeric: tabular-nums; color: var(--link); }
.rf-toc__c { margin-left: auto; font: 600 15px/1.3 var(--font-ui); font-variant-numeric: tabular-nums; color: var(--ink-3); }

/* ---------- Pricing: header with the national snapshot ---------- */
.rf-head__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: start; }
.rf-head .phead__copy { padding-top: 4px; }
.rf-snap { padding: clamp(20px, 2.6vw, 30px); border: 1px solid var(--line-2); border-radius: var(--r-card); background: var(--surface); box-shadow: var(--shadow); }
.rf-snap__list { margin: 0; padding: 0; list-style: none; }
.rf-snap__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 18px; align-items: baseline; padding: 16px 0; border-top: 1px solid var(--line); }
.rf-snap__scope { grid-column: 1 / -1; font: 600 16px/1.35 var(--font-ui); color: var(--ink-2); }
.rf-snap__v { font: 790 clamp(1.7rem, 2.6vw, 2.3rem)/1.05 var(--font-display); font-stretch: 112%; letter-spacing: -.015em; color: var(--ink); }
.rf-snap__item .rf-src { justify-self: end; }
.rf-snap__note { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--line); font: 400 15px/1.5 var(--font-ui); color: var(--ink-3); }
@media (max-width: 959.98px) { .rf-head__grid { grid-template-columns: minmax(0, 1fr); } .rf-snap { max-width: 640px; } }
@media (max-width: 419.98px) { .rf-snap__item { grid-template-columns: minmax(0, 1fr); } .rf-snap__item .rf-src { justify-self: start; } }

/* ---------- Pricing: range cards ---------- */
/* Two flowing columns (01, 02 left; 03, 04 right) so the four cards balance. */
.rf-ranges { columns: 2; column-gap: clamp(16px, 2.2vw, 26px); }
.rf-ranges > .rf-card { break-inside: avoid; margin-bottom: clamp(16px, 2.2vw, 26px); }
.rf-card { display: block; padding: clamp(18px, 2.4vw, 28px); border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.rf-card__head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 8px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.rf-card__n { font: 790 22px/1 var(--font-display); font-stretch: 112%; font-variant-numeric: tabular-nums; color: var(--link); }
.rf-card__t { font: 700 clamp(1.25rem, 1.1rem + .4vw, 1.45rem)/1.2 var(--font-ui); }
/* Rows stack like the header snapshot: scope on top, the figure and its source on one line. */
.rf-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.rf-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 4px 16px; padding: 14px 0; border-top: 1px solid var(--line); }
.rf-table tbody tr:first-child { border-top: 0; }
.rf-table th, .rf-table td { display: block; padding: 0; border: 0; }
.rf-table tbody th { grid-column: 1 / -1; font: 600 16px/1.4 var(--font-ui); color: var(--ink-2); }
.rf-table .cost__range { font-size: 20px; white-space: normal; }
.rf-table .cost__src { justify-self: end; text-align: right; white-space: nowrap; }
.rf-card__links { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--line); font: 600 16px/1.35 var(--font-ui); }
.rf-card__k { font: 700 14px/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
@media (max-width: 1099.98px) { .rf-ranges { columns: 1; } }
@media (max-width: 639.98px) { .rf-label__meta { margin-left: 0; flex-basis: 100%; } }
@media (max-width: 419.98px) { .rf-table tr { grid-template-columns: minmax(0, 1fr); } .rf-table .cost__src { justify-self: start; text-align: left; } }

/* ---------- Pricing: price drivers ---------- */
.rf-factors { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(16px, 2.2vw, 26px); margin: 0; padding: 0; list-style: none; }
.rf-factor { grid-column: span 2; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.rf-factor:nth-child(4), .rf-factor:nth-child(5) { grid-column: span 3; }
.rf-factor__body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 20px 22px 22px; }
.rf-factor__body > p { font-size: 17px; line-height: 1.55; }
.rf-factor__t { display: flex; align-items: baseline; gap: 12px; font: 700 20px/1.25 var(--font-ui); }
.rf-factor__n { font: 790 20px/1 var(--font-display); font-stretch: 112%; font-variant-numeric: tabular-nums; color: var(--link); }
.rf-factor__body > .rf-factor__fig { margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--line-2); font: 400 17px/1.5 var(--font-ui); color: var(--ink-2); }
.rf-factor__k { display: block; margin-bottom: 4px; font: 700 14px/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--link); }
@media (min-width: 1100px) {
  .rf-factor:nth-child(4), .rf-factor:nth-child(5) { flex-direction: row; }
  .rf-factor:nth-child(4) .rf-factor__media, .rf-factor:nth-child(5) .rf-factor__media { flex: 0 0 44%; }
  .rf-factor:nth-child(4) .rf-factor__media img, .rf-factor:nth-child(5) .rf-factor__media img { height: 100%; aspect-ratio: auto; }
  .rf-factor:nth-child(4) .rf-factor__media picture, .rf-factor:nth-child(5) .rf-factor__media picture { height: 100%; }
}
@media (max-width: 1099.98px) {
  .rf-factors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rf-factor, .rf-factor:nth-child(4), .rf-factor:nth-child(5) { grid-column: span 1; }
  .rf-factor:nth-child(5) { grid-column: 1 / -1; }
}
@media (min-width: 640px) and (max-width: 1099.98px) {
  .rf-factor:nth-child(5) { flex-direction: row; }
  .rf-factor:nth-child(5) .rf-factor__media { flex: 0 0 44%; }
  .rf-factor:nth-child(5) .rf-factor__media picture, .rf-factor:nth-child(5) .rf-factor__media img { height: 100%; aspect-ratio: auto; }
}
@media (max-width: 639.98px) {
  .rf-factors { grid-template-columns: minmax(0, 1fr); }
  .rf-factor:nth-child(5) { grid-column: auto; }
}

/* ---------- Pricing: lumber tiers ---------- */
.rf-tiers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 22px); }
.rf-tier { padding: 20px 20px 16px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.rf-tier__head { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px 14px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.rf-tier__t { font: 790 22px/1.1 var(--font-display); font-stretch: 112%; }
.rf-marks { display: inline-flex; gap: 4px; justify-self: end; }
.rf-mark { width: 14px; height: 14px; border: 1.5px solid var(--walnut); }
.rf-mark.is-on { background: var(--walnut); }
.rf-tier__k { grid-column: 1 / -1; font: 600 15px/1.3 var(--font-ui); color: var(--ink-2); }
.rf-tier__list { display: grid; gap: 2px; margin: 10px 0 0; padding: 0; list-style: none; }
.rf-tier__list li { display: flex; align-items: center; gap: 14px; padding: 6px 0; font: 600 17px/1.3 var(--font-ui); color: var(--ink); }
.rf-tier__list picture { flex: none; width: 44px; }
.rf-tier__list img { width: 44px; height: 44px; object-fit: cover; border-radius: 2px; }
.rf-tiers__cap { max-width: 62em; margin-top: 18px; }
@media (max-width: 959.98px) { .rf-tiers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 519.98px) { .rf-tiers { grid-template-columns: minmax(0, 1fr); } .rf-tier__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; } .rf-tier__list li { gap: 10px; font-size: 16px; } }

/* ---------- Pricing: how we estimate ---------- */
.rf-est__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); margin: 0 0 clamp(28px, 4vw, 44px); padding: 0; list-style: none; }
.rf-est__step { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 16px; padding-top: 20px; border-top: 2px solid var(--ink); }
.rf-est__n { font: 790 clamp(2rem, 3vw, 2.5rem)/1 var(--font-display); font-stretch: 112%; font-variant-numeric: tabular-nums; color: var(--link); }
.rf-est__t { margin-bottom: 6px; font: 700 20px/1.25 var(--font-ui); }
.rf-est__step p { font-size: 17px; line-height: 1.55; }
.rf-budget { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(20px, 3vw, 36px); padding: clamp(20px, 2.6vw, 32px); border: 1px solid var(--line-2); border-radius: var(--r-card); background: var(--surface); }
.rf-budget__intro { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 24px; padding-bottom: 18px; border-bottom: 1px solid var(--line-2); }
.rf-budget__t { font: 700 21px/1.25 var(--font-ui); }
.rf-budget__lead { font-size: 17px; line-height: 1.55; }
.rf-budget__row { display: flex; flex-direction: column; gap: 10px; padding-top: 18px; }
.rf-budget__row .arrow-link { margin-top: auto; }
.rf-budget__k { font: 700 14px/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.rf-budget .chip--static { background: var(--band); border-color: transparent; }
.rf-budget .arrow-link { align-self: flex-start; min-height: 40px; }
.rf-budget__note { grid-column: 1 / -1; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line-2); font-size: 17px; line-height: 1.55; }
@media (max-width: 959.98px) {
  .rf-est__steps { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .rf-est__step { padding: 18px 0; border-top: 1px solid var(--line-2); }
  .rf-est__step:first-child { border-top-width: 2px; border-top-color: var(--ink); }
  .rf-budget { grid-template-columns: minmax(0, 1fr); }
  .rf-budget__row + .rf-budget__row { margin-top: 8px; border-top: 1px solid var(--line); }
}

/* ---------- FAQ ---------- */
.rf-groups { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.rf-groups__k { margin-bottom: 12px; font: 700 14px/1.3 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.rf-faq { display: grid; grid-template-columns: minmax(300px, 340px) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.rf-faq__side { display: grid; gap: 8px; }
@media (min-width: 960px) and (min-height: 880px) { .rf-faq__side { position: sticky; top: calc(var(--header-h) + 24px); } }
.rf-faq__main { display: grid; gap: clamp(44px, 6vw, 72px); max-width: 860px; }
.rf-group { scroll-margin-top: calc(var(--header-h) + 16px); }
.rf-group__head { margin-bottom: 18px; }
.rf-group__head .eyebrow { margin-bottom: 10px; }
.rf-group__t { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.rf-group__lead { margin-top: 8px; font-size: 18px; line-height: 1.55; }
.rf-group .faq__a { max-width: none; padding-right: 40px; }
.rf-group__links { display: flex; flex-wrap: wrap; align-items: center; gap: 0 22px; margin-top: 12px; }
.rf-group__k { font: 700 14px/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.rf-group__links .arrow-link { font-size: 16px; }
@media (max-width: 959.98px) {
  .rf-faq { grid-template-columns: minmax(0, 1fr); }
  .rf-faq__side { order: 2; }
  .rf-faq__side .rf-toc { display: none; }
}
@media (max-width: 639.98px) { .rf-group .faq__a { padding-right: 0; } }

/* ---------- Privacy ---------- */
.rf-meta { display: flex; flex-wrap: wrap; gap: 14px 40px; margin: 26px 0 0; padding-top: 18px; border-top: 1px solid var(--line); }
.rf-meta dt { margin-bottom: 4px; font: 700 14px/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.rf-meta dd { margin: 0; font: 600 17px/1.4 var(--font-ui); color: var(--ink); overflow-wrap: anywhere; }
.rf-facts .rf-label { margin-bottom: 4px; }
.rf-facts .rf-meta { display: grid; gap: 0; margin: 0; padding: 0; border: 0; }
.rf-facts .rf-meta > div { padding: 14px 0; border-top: 1px solid var(--line); }
.rf-facts .rf-meta > div:last-child { padding-bottom: 0; }
.rf-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 22px); margin: 0; padding: 0; list-style: none; }
.rf-sum__item { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px 14px; align-content: start; padding: 22px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.rf-sum__i { grid-row: span 2; margin-top: 2px; color: var(--link); }
.rf-sum__t { font: 700 19px/1.3 var(--font-ui); }
.rf-sum__item p { font-size: 17px; line-height: 1.55; }
@media (max-width: 959.98px) { .rf-sum { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .rf-sum { grid-template-columns: minmax(0, 1fr); } }
.rf-doc { display: grid; grid-template-columns: minmax(300px, 340px) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.rf-doc__side { display: grid; gap: 8px; }
@media (min-width: 960px) and (min-height: 880px) { .rf-doc__side { position: sticky; top: calc(var(--header-h) + 24px); } }
.rf-doc__main { max-width: 800px; }
.rf-sec { padding: 34px 0; border-top: 1px solid var(--line-2); scroll-margin-top: calc(var(--header-h) + 16px); }
.rf-sec:first-child { padding-top: 0; border-top: 0; }
.rf-sec:last-child { padding-bottom: 0; }
.rf-sec > * + * { margin-top: 16px; }
.rf-sec__t { display: flex; align-items: baseline; gap: 14px; font-size: clamp(1.45rem, 2.2vw, 1.9rem); }
.rf-sec__n { font: 790 clamp(1.2rem, 1.8vw, 1.55rem)/1 var(--font-display); font-stretch: 112%; font-variant-numeric: tabular-nums; color: var(--link); }
.rf-sec p, .rf-sec li { font-size: 18px; line-height: 1.65; }
.rf-steps { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; counter-reset: rfs; }
.rf-steps li { position: relative; min-width: 0; overflow-wrap: anywhere; padding: 16px 18px 16px 58px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); counter-increment: rfs; }
.rf-steps li::before { content: counter(rfs); position: absolute; left: 18px; top: 16px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--walnut); color: var(--on-dark); font: 700 15px/1 var(--font-ui); }
.rf-tablewrap { border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.rf-dtable { width: 100%; border-collapse: collapse; font: 400 16px/1.45 var(--font-ui); color: var(--ink-2); }
.rf-dtable th, .rf-dtable td { padding: 14px 16px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.rf-dtable thead th { border-top: 0; font: 700 14px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); background: var(--band); }
.rf-dtable thead th:first-child { border-top-left-radius: var(--r-card); }
.rf-dtable thead th:last-child { border-top-right-radius: var(--r-card); }
.rf-dtable tbody th { width: 44%; font-weight: 600; color: var(--ink); }
@media (max-width: 959.98px) {
  .rf-doc { grid-template-columns: minmax(0, 1fr); }
  .rf-doc__side .ccard { display: none; }
  .rf-doc__side .rf-toc__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; margin-bottom: 0; }
}
@media (max-width: 519.98px) { .rf-doc__side .rf-toc__list { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 639.98px) {
  .rf-sec p, .rf-sec li { font-size: 17px; line-height: 1.6; }
  .rf-dtable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .rf-dtable tr { display: grid; gap: 8px; padding: 16px; border-top: 1px solid var(--line); }
  .rf-dtable tbody tr:first-child { border-top: 0; }
  .rf-dtable th, .rf-dtable td { display: block; width: auto !important; padding: 0; border: 0; }
  .rf-dtable td::before { content: attr(data-label); display: block; margin-bottom: 2px; font: 700 14px/1.3 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
  .rf-steps li { padding-left: 52px; }
}

/* ---------- 404 ---------- */
.rf-nf { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 32px); }
.rf-nf__fam { padding-top: 16px; border-top: 2px solid var(--ink); }
.rf-nf__n { font: 790 20px/1 var(--font-display); font-stretch: 112%; font-variant-numeric: tabular-nums; color: var(--link); }
.rf-nf__t { margin: 8px 0 10px; font: 700 20px/1.25 var(--font-ui); }
.rf-nf__list { margin: 0; padding: 0; list-style: none; }
.rf-nf__list a { display: grid; gap: 3px; padding: 12px 0; border-top: 1px solid var(--line); text-decoration: none; }
.rf-nf__name { font: 700 17px/1.3 var(--font-ui); color: var(--ink); }
.rf-nf__list a:hover .rf-nf__name { color: var(--link); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: .18em; }
.rf-nf__short { font: 400 17px/1.45 var(--font-ui); color: var(--ink-2); }
@media (max-width: 1099.98px) { .rf-nf { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .rf-nf { grid-template-columns: minmax(0, 1fr); } }
.rf-nf2 { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 64px); align-items: start; }
.rf-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.rf-links a { display: grid; align-content: start; gap: 4px; height: 100%; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); text-decoration: none; transition: border-color .15s; }
.rf-links a:hover { border-color: var(--link); }
.rf-links__t { display: flex; align-items: center; justify-content: space-between; gap: 10px; font: 700 18px/1.3 var(--font-ui); color: var(--ink); }
.rf-links__t svg { flex: none; color: var(--link); }
.rf-links__n { font: 400 17px/1.45 var(--font-ui); color: var(--ink-2); }
.rf-plan { padding: clamp(24px, 3vw, 36px); border-radius: var(--r-card); }
.rf-plan__t { font-size: clamp(1.7rem, 2.8vw, 2.3rem); }
.rf-plan__p { margin-top: 12px; font-size: 18px; line-height: 1.6; }
.rf-plan .picker { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--c-rule); }
.rf-plan .btn-row { margin-top: 24px; }
@media (max-width: 959.98px) { .rf-nf2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 479.98px) { .rf-links { grid-template-columns: minmax(0, 1fr); } }
