/* Buyer-intent pages generated by research/gen_dpp_buyer_pages.py.
   Register tokens only (register.css :root); no new colour. */
.bp-shell { max-width: 1080px; margin: 0 auto; padding: 108px 24px 64px; color: var(--ink); font-family: Arial, Helvetica, sans-serif; line-height: 1.55; }
.bp-crumbs { margin: 0 0 18px; font-size: 13px; color: var(--muted); }
.bp-crumbs a { color: var(--muted); }
.bp-head { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.bp-kicker { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--body); }
.bp-head h1 { margin: 0 0 16px; font-size: clamp(34px, 5vw, 56px); line-height: 1.04; letter-spacing: -.04em; font-weight: 400; }
.bp-lede { max-width: 780px; margin: 0 0 12px; font-size: 18px; color: var(--body); }
.bp-lede a, .bp-method a, .bp-law a { color: var(--ink); text-decoration-color: var(--yellow); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.bp-toc { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 8px; }
.bp-toc a { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; color: var(--ink); text-decoration: none; }
.bp-toc a b { color: var(--muted); font-weight: 400; }
.bp-group { padding: 34px 0 10px; border-bottom: 1px solid var(--line); }
.bp-group h2 { margin: 0 0 12px; font-size: 26px; font-weight: 400; letter-spacing: -.02em; }
.bp-group h2 span, .bp-value h3 span { color: var(--muted); font-size: .7em; margin-left: 6px; }
.bp-group > p { max-width: 780px; color: var(--body); margin: 0 0 16px; }
.bp-list { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 40px; }
.bp-list li { break-inside: avoid; margin: 0 0 14px; }
.bp-list li > a { font-weight: 700; color: var(--ink); text-decoration: none; }
.bp-list li > a:hover { text-decoration: underline; }
.bp-meta { color: var(--muted); font-size: 14px; }
.bp-detail { color: var(--body); font-size: 14px; }
.bp-k { color: var(--muted); }
.bp-state { display: inline-block; padding: 0 6px; border-radius: 4px; font-style: normal; font-size: 12px; background: var(--panel); border: 1px solid var(--line); }
.bp-state.shown { background: #fff6b0; border-color: var(--yellow); }
.bp-src { font-size: 13px; color: var(--muted); }
.bp-value { padding: 12px 0; border-top: 1px solid var(--line); }
.bp-value h3 { margin: 0 0 6px; font-size: 17px; font-weight: 700; }
.bp-value p { margin: 0; font-size: 15px; color: var(--body); }
.bp-value p a { color: var(--ink); }
.bp-law { margin: 30px 0 4px; padding: 26px 28px; background: var(--panel); border: 1px solid var(--line); border-left: 4px solid var(--yellow); }
.bp-status { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.bp-law h2 { margin: 0 0 14px; font-size: 26px; font-weight: 400; }
.bp-law dl { display: grid; grid-template-columns: 140px 1fr; gap: 10px 18px; margin: 0; }
.bp-law dt { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding-top: 2px; }
.bp-law dd { margin: 0; color: var(--body); }
.bp-method { margin-top: 40px; padding: 24px 0; border-top: 2px solid var(--ink); }
.bp-method h2, .bp-related h2 { margin: 0 0 10px; font-size: 20px; font-weight: 700; }
.bp-method p { max-width: 820px; color: var(--body); font-size: 15px; }
.bp-related { margin-top: 24px; padding: 22px 26px; background: var(--panel); }
.bp-related ul { margin: 0; padding-left: 18px; }
.bp-related li { margin: 6px 0; }
.bp-related a { color: var(--ink); }
@media (max-width: 760px) {
  .bp-shell { padding-top: 92px; }
  .bp-list { columns: 1; }
  .bp-law dl { grid-template-columns: 1fr; gap: 2px; }
  .bp-law dd { margin-bottom: 10px; }
}

/* ---- Design pass 1 (ChatGPT review, 30 September 2026) ---- */

/* DATA template */
.bp-data-head { padding-bottom: 26px; }
.bp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 22px; border-top: 2px solid var(--ink); }
.bp-stats > div { padding: 14px 16px 4px 0; }
.bp-stats > div + div { padding-left: 16px; border-left: 1px solid var(--line); }
.bp-stats strong, .bp-stats a { display: block; font-size: 30px; font-weight: 400; letter-spacing: -.02em; color: var(--ink); line-height: 1.1; }
.bp-stats a { font-size: 16px; font-weight: 700; padding-top: 10px; text-decoration-color: var(--yellow); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.bp-stats span { display: block; margin-top: 4px; font-size: 13px; color: var(--muted); }

/* BUYER RESOURCE template */
.bp-resource-head { padding: 8px 0 26px; border-bottom: 0; }
.bp-resource-head .bp-kicker { display: inline-block; padding: 4px 9px; background: var(--ink); color: #fff; letter-spacing: .14em; }
.bp-sentence { max-width: 760px; margin: 0; font-size: 21px; line-height: 1.45; color: var(--ink); }
.bp-utility { display: grid; grid-template-columns: 1.1fr 1.3fr .7fr; margin: 26px 0 0; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); }
.bp-utility > div { padding: 14px 18px 16px 0; }
.bp-utility > div + div { padding-left: 18px; border-left: 1px solid var(--line); }
.bp-utility dt { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.bp-utility dd { margin: 6px 0 0; font-size: 14px; color: var(--body); line-height: 1.45; }
.bp-intro { max-width: 780px; padding: 26px 0 6px; }
.bp-intro p { margin: 0 0 14px; font-size: 17px; color: var(--body); }
.bp-intro a { color: var(--ink); text-decoration-color: var(--yellow); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* Buyer journey: orientation, not a funnel */
.bp-journey { margin: 40px 0 0; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bp-journey.is-compact { margin: 0 0 8px; }
.bp-journey-label { margin: 0 0 8px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.bp-journey ol { display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0; list-style: none; }
.bp-journey li { display: flex; align-items: center; }
.bp-journey li + li::before { content: "\2192"; margin: 0 12px; color: var(--muted); }
.bp-journey ol a { color: var(--ink); text-decoration: none; font-size: 15px; }
.bp-journey ol a span { margin-right: 6px; font-size: 12px; color: var(--muted); }
.bp-journey ol a:hover { text-decoration: underline; }
.bp-journey a.is-here { font-weight: 700; box-shadow: inset 0 -3px 0 var(--yellow); }
.bp-journey-data { margin: 12px 0 0; font-size: 14px; color: var(--muted); }
.bp-journey-data span { margin-right: 8px; color: var(--ink); font-weight: 700; }
.bp-journey-data a { margin-right: 14px; color: var(--body); }

/* Choosing: three decision stages, compact numbered rows */
.bp-stage { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 0 24px; padding: 34px 0 10px; border-top: 2px solid var(--ink); margin-top: 26px; }
.bp-stage-n { margin: 0; font-size: 44px; line-height: 1; letter-spacing: -.04em; color: var(--ink); }
.bp-stage h2 { margin: 0 0 6px; font-size: 28px; font-weight: 400; letter-spacing: -.02em; }
.bp-stage-why { margin: 0 0 14px; color: var(--body); max-width: 720px; }
.bp-qs { list-style: none; margin: 0; padding: 0; }
.bp-q { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 0 14px; padding: 16px 0; border-top: 1px solid var(--line); }
.bp-q-n { font-size: 13px; font-weight: 700; color: var(--muted); padding-top: 4px; }
.bp-q h3 { margin: 0 0 2px; font-size: 18px; font-weight: 700; }
.bp-q-code { margin-left: 8px; padding: 1px 6px; border: 1px solid var(--line); border-radius: 4px; font-size: 12px; font-weight: 400; color: var(--body); white-space: nowrap; }
.bp-q-status { margin: 0 0 8px; font-size: 13px; color: var(--muted); }
.bp-q p { max-width: 820px; }
.bp-q p b { display: inline-block; min-width: 0; margin-right: 6px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.bp-q > div > p { margin: 0 0 6px; font-size: 15px; color: var(--body); }

/* Evidence: law and buyer choice must be impossible to confuse */
.bp-part { margin: 0 0 6px; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.bp-law-table { margin-top: 30px; }
.bp-table-wrap { overflow-x: auto; }
.bp-law-table table { width: 100%; border-collapse: collapse; font-size: 15px; background: #fff; }
.bp-law-table th, .bp-law-table td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.bp-law-table thead th { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; border-bottom: 2px solid var(--ink); }
.bp-law-table tbody th { white-space: nowrap; font-weight: 700; }
.bp-law-note td { padding: 8px 12px 18px; font-size: 13px; color: var(--body); background: var(--panel); }
.bp-buyer { margin-top: 44px; padding: 28px 28px 10px; border: 1px dashed var(--muted); background: #fff; }
.bp-buyer h2 { margin: 0 0 8px; font-size: 26px; font-weight: 400; }
.bp-buyer-note { max-width: 780px; margin: 0 0 12px; color: var(--body); }
.bp-badge { display: inline-block; margin: 0 0 6px; padding: 2px 8px; border: 1px dashed var(--body); border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--body); }

/* Compare: one structured section per capability, providers as chips */
.bp-sticky { position: sticky; top: 64px; z-index: 5; padding: 10px 0; margin: 18px 0 0; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); }
.bp-value h3 { font-size: 19px; }
.bp-count { margin: 0 0 10px !important; font-size: 13px !important; color: var(--muted) !important; }
.bp-chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 14px; margin: 0; padding: 0; list-style: none; }
.bp-chips li { padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 14px; line-height: 1.3; }
.bp-chips a { color: var(--ink); text-decoration: none; }
.bp-chips a:hover { text-decoration: underline; }
.bp-more { margin-top: 8px; }
.bp-more summary { cursor: pointer; font-size: 14px; font-weight: 700; color: var(--ink); text-decoration: underline; text-decoration-color: var(--yellow); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.bp-more[open] summary { margin-bottom: 8px; }

@media (max-width: 760px) {
  .bp-stats { grid-template-columns: 1fr 1fr; }
  .bp-stats > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .bp-utility { grid-template-columns: 1fr; }
  .bp-utility > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .bp-sentence { font-size: 18px; }
  .bp-stage { grid-template-columns: 1fr; }
  .bp-stage-n { font-size: 32px; margin-bottom: 6px; }
  .bp-q { grid-template-columns: 28px minmax(0, 1fr); }
  .bp-journey ol { flex-direction: column; row-gap: 6px; }
  .bp-journey li + li::before { display: none; }
  .bp-chips { grid-template-columns: 1fr 1fr; }
  .bp-buyer { padding: 20px 16px 6px; }
  .bp-law-table table { font-size: 14px; }
  .bp-sticky { top: 56px; overflow-x: auto; flex-wrap: nowrap; white-space: nowrap; }
}

/* ---- Pre-publication checks (ChatGPT gate, 30 September 2026) ---- */
/* Chips read as evidence records, not tags: quiet rows, no boxes. */
.bp-chips { gap: 0 24px; }
.bp-chips li { padding: 7px 2px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; font-size: 14px; }
.bp-chips a { color: var(--ink); }
/* Anchored headings clear the site nav and the sticky capability nav. */
.bp-shell [id] { scroll-margin-top: 150px; }
/* Keyboard: a visible focus on the disclosure. */
.bp-more summary:focus-visible, .bp-toc a:focus-visible, .bp-journey a:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
@media (max-width: 760px) {
  .bp-chips { grid-template-columns: 1fr; }
  .bp-shell [id] { scroll-margin-top: 130px; }
  /* The law table stacks on phones: no horizontal scrolling. */
  .bp-law-table table, .bp-law-table tbody, .bp-law-table tr, .bp-law-table th, .bp-law-table td { display: block; width: 100%; }
  .bp-law-table thead { display: none; }
  .bp-law-table tbody tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
  .bp-law-table tbody th, .bp-law-table tbody td { padding: 2px 12px; border: 0; }
  .bp-law-table tbody td:nth-of-type(2)::before { content: "Source: "; color: var(--muted); }
  .bp-law-table tbody td:nth-of-type(3)::before { content: "Status: "; color: var(--muted); }
  .bp-law-note td::before { content: none !important; }
}
