/* =====================================================================
   content-pages.css
   ---------------------------------------------------------------------
   Shared stylesheet for the four bq-pages content templates:
     /terms-of-use   /privacy-policy   /data-sources   /industry-classification

   Loaded AFTER homepage.css, exactly like pricing-page.css is, so it
   inherits every token, the header, the footer, the buttons and the
   tooltip engine and only adds what these four pages need on top.

   Nothing here restyles a homepage or pricing component. Every rule is
   scoped either under .bq-content-page (the body class these templates
   set) or under a class that exists on no other page.
   ===================================================================== */

/* =====================================================================
   PAGE HERO
   ---------------------------------------------------------------------
   #bq-main-header is position:fixed with a TRANSPARENT background, and
   homepage.js only adds .is-scrolled past 50px — so white nav links are
   legible at the top of a page only over something dark. The pricing page
   solves this differently (it sets $is_pricing_page, so header.php prints
   class="is-scrolled" immediately, and its <main class="bq-pricing-page">
   makes homepage.js skip attaching the scroll listener at all).

   These four pages instead open with a dark band, reusing .bq-hero's own
   -54px pull-up and its grid + radial treatment. That means the standard
   transparent -> solid scroll behaviour is correct here with NO changes to
   header.php and NO changes to homepage.js. Shorter than .bq-hero, because
   these pages are documents rather than a landing hero.
   ===================================================================== */
.bq-page-hero {
    background-color: var(--blue-darkest);
    margin-top: -54px;
    padding: 150px 0 64px;
    background-image:
        linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
        radial-gradient(circle at 50% 0%, rgba(0,82,155,.4) 0%, transparent 75%);
    background-size: 40px 40px, 40px 40px, 100% 100%;
    background-position: center top;
    background-repeat: repeat, repeat, no-repeat;
}
.bq-page-hero__inner { max-width: 860px; }
.bq-page-hero--wide .bq-page-hero__inner { max-width: 920px; }
.bq-page-hero__eyebrow {
    display: block;
    font-size: 11px; font-weight: 700; letter-spacing: 1.6px;
    text-transform: uppercase; color: #6bb3ea; margin-bottom: 14px;
}
.bq-page-hero h1 { margin: 0 0 18px; color: var(--white); line-height: 1.18; letter-spacing: -.4px; }
.bq-page-hero__sub { margin: 0; font-size: 18px; line-height: 1.65; color: var(--gray-300); max-width: 740px; }
.bq-page-hero__meta {
    margin: 26px 0 0; font-size: 13px; color: rgba(255,255,255,.55);
    display: flex; flex-wrap: wrap; gap: 8px 22px;
}
.bq-page-hero__meta strong { color: rgba(255,255,255,.8); font-weight: 700; }
.bq-page-hero__actions { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 12px; }
.bq-page-hero__actions .bq-button { border-radius: 0 !important; }
.bq-page-hero .bq-button--primary { background: var(--white); color: var(--blue-darkest); font-weight: 700; }
.bq-page-hero .bq-button--primary:hover { background: var(--gray-300); }
.bq-page-hero .bq-button--secondary { background: transparent; border-color: rgba(255,255,255,.32); color: var(--white); }
.bq-page-hero .bq-button--secondary:hover { background: rgba(255,255,255,.1); }

/* Fact strip — checkable facts only */
.bq-hero-facts {
    display: flex; flex-wrap: wrap; gap: 0;
    margin-top: 40px; padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,.12);
}
.bq-hero-fact { padding-right: 30px; margin-right: 30px; border-right: 1px solid rgba(255,255,255,.12); }
.bq-hero-fact:last-child { border-right: none; margin-right: 0; padding-right: 0; }
.bq-hero-fact__num {
    display: block; font-size: 22px; font-weight: 700; color: var(--white);
    line-height: 1.1; font-variant-numeric: tabular-nums;
}
.bq-hero-fact__label {
    display: block; margin-top: 5px; font-size: 10.5px; font-weight: 700;
    letter-spacing: .9px; text-transform: uppercase; color: rgba(255,255,255,.55);
}

/* =====================================================================
   LEGAL PAGES — /terms-of-use and /privacy-policy
   ---------------------------------------------------------------------
   One centred column, the way a legal page normally works. No banner, no
   sidebar, no two-column split, no sticky anything. A single measure of
   about 800px, Lato throughout, headings sitting directly above the text
   they introduce.

   The column width is set in one place — .bq-legal .bq-container — if it
   ever needs adjusting.
   ===================================================================== */

/* Nothing here restyles the header. header.php's own $is_pricing_page flag
   renders it solid, and .bq-pricing-page on <main> stops homepage.js from
   removing .is-scrolled at the top of the page. */
/* The header is fixed, so the document clears its 54px itself. */
.bq-legal-page .bq-main { padding-top: 54px; background: var(--white); }

.bq-legal {
    padding: 0 0 96px;
    font-family: var(--font-sans);
}
.bq-legal .bq-container { max-width: 800px; }

/* --- Title: part of the document, not a separate block --- */
.bq-legal__title {
    padding: 64px 0 24px;
    border-bottom: 1px solid var(--gray-300);
}
.bq-legal__title h1 {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 36px; font-weight: 700; line-height: 1.2;
    letter-spacing: -.8px; color: var(--gray-900);
}
.bq-legal__dates {
    margin: 16px 0 0; padding: 0; list-style: none;
    display: flex; flex-wrap: wrap; gap: 4px 24px;
    font-size: 13.5px; line-height: 1.6; color: var(--gray-500);
}
.bq-legal__dates li { display: flex; gap: 6px; }
.bq-legal__dates strong { font-weight: 400; }
.bq-legal__dates time { font-weight: 700; color: var(--gray-900); }

/* --- Sections --- */
.bq-legal__doc { counter-reset: bqsec; }
.bq-legal__doc > section {
    padding-top: 40px;
    scroll-margin-top: 70px;
}
.bq-legal__doc > section > h2 {
    counter-increment: bqsec;
    margin: 0 0 14px;
    font-family: var(--font-sans);
    font-size: 20px; font-weight: 700; line-height: 1.4;
    letter-spacing: -.2px; color: var(--gray-900);
}
/* Generated numbering, so inserting or removing a section can never leave a
   gap — and the trailing space is part of the content, which is what stops
   it reading as "1.Definitions". */
.bq-legal__doc > section > h2::before {
    content: counter(bqsec) ". ";
    color: var(--gray-500); font-weight: 400;
}

/* --- Body --- */
.bq-legal__text {
    font-size: 16px; line-height: 1.75; color: var(--gray-700);
}
.bq-legal__text p { margin: 0 0 16px; }
.bq-legal__text > :last-child { margin-bottom: 0; }
.bq-legal__text strong { color: var(--gray-900); font-weight: 700; }
.bq-legal__text a { color: var(--blue-primary); text-decoration: underline; text-underline-offset: 2px; }
.bq-legal__text a:hover { color: var(--blue-darkest); }
.bq-legal__text ul { margin: 0 0 16px; padding-left: 22px; }
.bq-legal__text ul li { margin-bottom: 8px; }
.bq-legal__text ul li:last-child { margin-bottom: 0; }
.bq-legal__text address { font-style: normal; }

/* =====================================================================
   PROSE BLOCK — used inside the bands on the Data Sources and
   classification pages (class="bq-doc").
   ===================================================================== */
.bq-doc { max-width: 760px; font-size: 15.5px; line-height: 1.75; color: var(--gray-700); }
.bq-doc h2 { font-size: 21px; color: var(--gray-900); margin: 0 0 16px; letter-spacing: -.2px; line-height: 1.3; }
.bq-doc h3 { font-size: 16px; color: var(--gray-900); margin: 28px 0 10px; }
.bq-doc p { margin: 0 0 16px; }
.bq-doc p:last-child { margin-bottom: 0; }
.bq-doc ul, .bq-doc ol { margin: 0 0 16px; padding-left: 22px; }
.bq-doc li { margin-bottom: 9px; }
.bq-doc li:last-child { margin-bottom: 0; }
.bq-doc strong { color: var(--gray-900); font-weight: 700; }
.bq-doc a { color: var(--blue-primary); text-decoration: none; border-bottom: 1px solid rgba(0,82,155,.28); }
.bq-doc a:hover { border-bottom-color: var(--blue-primary); }

/* =====================================================================
   CONTENT BANDS — Data Sources and the classification page
   ===================================================================== */
.bq-band { padding: 84px 0; }
.bq-band--tint { background: var(--gray-100); border-top: 1px solid var(--bq-line); border-bottom: 1px solid var(--bq-line); }
.bq-band--white { background: var(--white); }
.bq-band__inner { max-width: 1120px; margin: 0 auto; }
.bq-band__head { max-width: 760px; margin: 0 0 44px; }
.bq-band__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.bq-band__eyebrow {
    display: block; font-size: 11px; font-weight: 700; letter-spacing: 1.6px;
    text-transform: uppercase; color: var(--blue-primary); margin-bottom: 12px;
}
.bq-band__head h2 { margin: 0 0 14px; color: var(--gray-900); letter-spacing: -.3px; }
.bq-band__head p { margin: 0 0 12px; font-size: 17px; line-height: 1.7; color: var(--gray-700); }
.bq-band__head p:last-child { margin-bottom: 0; }
.bq-band__subhead {
    font-size: 17px; color: var(--gray-900); font-weight: 700;
    margin: 48px 0 8px; letter-spacing: -.1px;
}
.bq-band__note { font-size: 14.5px; line-height: 1.7; color: var(--gray-700); margin: 0 0 20px; max-width: 800px; }
.bq-band__fineprint { font-size: 12.5px; line-height: 1.6; color: var(--gray-500); margin: 16px 0 0; max-width: 900px; }

/* Card grid */
.bq-cardgrid { display: grid; gap: 20px; }
.bq-cardgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bq-cardgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bq-cardgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bq-cardgrid--narrow { max-width: 1000px; }
.bq-card {
    background: var(--white); border: 1px solid var(--gray-300);
    border-radius: var(--radius); padding: 26px 26px 28px;
    display: flex; flex-direction: column;
}
.bq-card__kicker {
    font-size: 10.5px; font-weight: 700; letter-spacing: 1.2px;
    text-transform: uppercase; color: var(--blue-primary); margin: 0 0 10px;
}
.bq-card h3 { font-size: 17px; margin: 0 0 10px; color: var(--gray-900); }
.bq-card p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.7; color: var(--gray-700); }
.bq-card p:last-child { margin-bottom: 0; }
.bq-card__list { list-style: none; margin: 0; padding: 0; }
.bq-card__list li {
    position: relative; padding-left: 16px; margin-bottom: 8px;
    font-size: 14px; line-height: 1.6; color: var(--gray-700);
}
.bq-card__list li::before {
    content: ""; position: absolute; left: 0; top: 9px;
    width: 5px; height: 5px; background: var(--blue-primary); border-radius: 50%;
}
.bq-card__list li:last-child { margin-bottom: 0; }
.bq-card__foot { margin-top: auto; padding-top: 16px; }
.bq-card__link {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 13.5px; font-weight: 700; color: var(--blue-primary); text-decoration: none;
}
.bq-card__link:hover { text-decoration: underline; }

/* Source blocks — Data Sources. Left column names the source, right column
   lists what is built from it, because provenance is the whole point. */
.bq-source { border-top: 1px solid var(--gray-300); padding: 34px 0; }
.bq-source:last-child { border-bottom: 1px solid var(--gray-300); }
.bq-source__grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 44px; }
.bq-source__label { font-size: 10.5px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--blue-primary); margin: 0 0 10px; }
.bq-source h3 { font-size: 20px; margin: 0 0 12px; color: var(--gray-900); letter-spacing: -.2px; }
.bq-source__note { font-size: 14px; line-height: 1.7; color: var(--gray-700); margin: 0; }
.bq-source__body p { margin: 0 0 14px; font-size: 15px; line-height: 1.75; color: var(--gray-700); }
.bq-source__body p:last-child { margin-bottom: 0; }
.bq-source__body a { color: var(--blue-primary); text-decoration: none; border-bottom: 1px solid rgba(0,82,155,.28); }
.bq-source__body a:hover { border-bottom-color: var(--blue-primary); }
.bq-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.bq-chips li {
    font-size: 12.5px; font-weight: 600; color: var(--gray-700);
    background: var(--gray-100); border: 1px solid var(--gray-300);
    padding: 5px 11px; border-radius: 2px;
}
.bq-band--tint .bq-chips li { background: var(--white); }

/* =====================================================================
   HIERARCHY — Sector > Industry Group > Industry
   The nesting IS the structure, so it is drawn rather than described.
   ===================================================================== */
.bq-tree { max-width: 780px; }
.bq-tree__level { padding: 18px 22px; border: 1px solid var(--gray-300); border-radius: var(--radius); background: var(--white); }
.bq-tree__level + .bq-tree__level { margin-top: 14px; }
.bq-tree__level--2 { margin-left: 34px; }
.bq-tree__level--3 { margin-left: 68px; border-color: var(--blue-primary); box-shadow: var(--shadow-sm); }
.bq-tree__tag {
    display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 1.1px;
    text-transform: uppercase; color: var(--gray-500); margin-bottom: 6px;
}
.bq-tree__level--3 .bq-tree__tag { color: var(--blue-primary); }
.bq-tree__name { font-size: 16px; font-weight: 700; color: var(--gray-900); }
.bq-tree__code {
    font-family: var(--bq-mono); font-size: 12.5px; font-weight: 700;
    color: var(--blue-primary); background: rgba(0,82,155,.07);
    padding: 2px 7px; border-radius: 2px; margin-left: 8px;
}
.bq-tree__desc { margin: 8px 0 0; font-size: 14px; line-height: 1.65; color: var(--gray-700); }
.bq-tree__desc code {
    font-family: var(--bq-mono); font-size: 12.5px; font-weight: 700;
    color: var(--gray-900); background: var(--gray-100); padding: 1px 5px; border-radius: 2px;
}

/* Sector definition list */
.bq-sectors { border-top: 1px solid var(--gray-300); }
.bq-sector-row {
    display: grid; grid-template-columns: 40px 220px minmax(0, 1fr);
    gap: 20px; align-items: start;
    padding: 18px 0; border-bottom: 1px solid var(--gray-300);
}
.bq-sector-row__code {
    width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
    background: var(--blue-darkest); color: var(--white);
    font-family: var(--bq-mono); font-weight: 700; font-size: 14px; border-radius: 2px;
}
.bq-sector-row__name { font-size: 15.5px; font-weight: 700; color: var(--gray-900); line-height: 1.4; padding-top: 4px; }
.bq-sector-row__desc { font-size: 14.5px; line-height: 1.7; color: var(--gray-700); padding-top: 3px; }

/* Numbered steps — a genuine sequence, so the numbers mean something */
.bq-steps { counter-reset: bqstep; max-width: 900px; }
.bq-step {
    counter-increment: bqstep;
    display: grid; grid-template-columns: 46px minmax(0, 1fr);
    gap: 22px; padding: 26px 0; border-bottom: 1px solid var(--gray-300);
}
.bq-step:first-child { border-top: 1px solid var(--gray-300); }
.bq-step::before {
    content: counter(bqstep, decimal-leading-zero);
    font-family: var(--bq-mono); font-size: 15px; font-weight: 700;
    color: var(--blue-primary); padding-top: 2px;
}
.bq-step h3 { font-size: 17px; margin: 0 0 8px; color: var(--gray-900); }
.bq-step p { margin: 0 0 10px; font-size: 15px; line-height: 1.75; color: var(--gray-700); }
.bq-step p:last-child { margin-bottom: 0; }

/* Simple data table (relevance tiers, sector prefixes) */
.bq-simple-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.bq-simple-table th {
    text-align: left; font-size: 10.5px; font-weight: 700; letter-spacing: 1.1px;
    text-transform: uppercase; color: var(--gray-500);
    padding: 0 16px 12px 0; border-bottom: 1px solid var(--gray-300);
}
.bq-simple-table td { padding: 13px 16px 13px 0; border-bottom: 1px solid var(--gray-300); color: var(--gray-700); line-height: 1.65; }
.bq-simple-table td:first-child { color: var(--gray-900); font-weight: 700; }

/* =====================================================================
   COMPARISON TABLE
   ===================================================================== */
.bq-compare__wrap { overflow-x: auto; border: 1px solid var(--gray-300); border-radius: var(--radius); background: var(--white); -webkit-overflow-scrolling: touch; }
.bq-compare { width: 100%; min-width: 780px; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.bq-compare th, .bq-compare td { padding: 14px 18px; vertical-align: top; line-height: 1.6; text-align: left; }
.bq-compare thead th { background: var(--white); border-bottom: 1px solid var(--gray-300); font-size: 14px; font-weight: 700; color: var(--gray-900); }
.bq-compare thead th.is-ours { background: #f8fbff; color: var(--blue-primary); }
.bq-compare tbody td { border-bottom: 1px solid #f1f4f7; color: var(--gray-700); }
.bq-compare tbody tr:last-child td { border-bottom: none; }
.bq-compare tbody td:first-child { font-weight: 700; color: var(--gray-900); width: 22%; }
.bq-compare tbody td.is-ours { background: #f8fbff; color: var(--gray-900); }
.bq-compare tbody tr:hover td { background: #f9fafb; }
.bq-compare tbody tr:hover td.is-ours { background: #f0f6ff; }
.bq-compare code { font-family: var(--bq-mono); font-size: 12.5px; }

/* =====================================================================
   LICENSING TIERS
   ===================================================================== */
.bq-tiers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 920px; }
.bq-tier {
    background: var(--white); border: 1px solid var(--gray-300);
    border-radius: var(--radius); padding: 32px; display: flex; flex-direction: column;
}
.bq-tier--featured { border: 2px solid var(--blue-primary); }
.bq-tier__name { font-size: 18px; font-weight: 700; color: var(--gray-900); margin: 0 0 6px; }
.bq-tier__for { font-size: 13.5px; color: var(--gray-500); margin: 0 0 22px; line-height: 1.5; }
.bq-tier__price { font-size: 34px; font-weight: 700; color: var(--gray-900); line-height: 1; letter-spacing: -1px; }
.bq-tier__period { font-size: 14px; font-weight: 400; color: var(--gray-500); }
.bq-tier__price-note { font-size: 12.5px; color: var(--gray-500); margin: 10px 0 24px; }
.bq-tier__list { list-style: none; margin: 0 0 28px; padding: 0; }
.bq-tier__list li { position: relative; padding-left: 22px; margin-bottom: 11px; font-size: 14px; line-height: 1.6; color: var(--gray-700); }
.bq-tier__list li::before {
    content: ""; position: absolute; left: 2px; top: 6px;
    width: 9px; height: 5px; border-left: 2px solid var(--blue-primary);
    border-bottom: 2px solid var(--blue-primary); transform: rotate(-45deg);
}
.bq-tier__cta { margin-top: auto; }
.bq-tier__cta .bq-button { display: block; width: 100%; box-sizing: border-box; border-radius: 0 !important; }
.bq-tier__cta .bq-button--primary { background: var(--blue-primary); color: var(--white); }
.bq-tier__cta .bq-button--primary:hover { background: #00417a; }
.bq-tier__cta .bq-button--secondary { background: var(--white); color: var(--gray-900); border-color: var(--gray-300); }
.bq-tier__cta .bq-button--secondary:hover { background: var(--gray-100); }

/* Download / documentation block */
.bq-download {
    display: flex; align-items: center; justify-content: space-between;
    gap: 28px; flex-wrap: wrap;
    border: 1px solid var(--gray-300); border-radius: var(--radius);
    background: var(--white); padding: 26px 30px; max-width: 920px;
}
.bq-download__text h3 { font-size: 17px; margin: 0 0 6px; color: var(--gray-900); }
.bq-download__text p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--gray-700); max-width: 540px; }
.bq-download__action .bq-button { border-radius: 0 !important; background: var(--blue-primary); color: var(--white); white-space: nowrap; }
.bq-download__action .bq-button:hover { background: #00417a; }

/* =====================================================================
   FAQ
   ===================================================================== */
.bq-faq { max-width: 880px; border-top: 1px solid var(--gray-300); }
.bq-faq__item { border-bottom: 1px solid var(--gray-300); }
.bq-faq__item summary {
    list-style: none; cursor: pointer; padding: 20px 40px 20px 0;
    position: relative; font-size: 16px; font-weight: 700; color: var(--gray-900); line-height: 1.5;
}
.bq-faq__item summary::-webkit-details-marker { display: none; }
.bq-faq__item summary::after {
    content: ""; position: absolute; right: 8px; top: 27px;
    width: 8px; height: 8px; border-right: 2px solid var(--gray-500);
    border-bottom: 2px solid var(--gray-500); transform: rotate(45deg);
    transition: transform .2s;
}
.bq-faq__item[open] summary::after { transform: rotate(-135deg); }
.bq-faq__item summary:hover { color: var(--blue-primary); }
.bq-faq__answer { padding: 0 40px 22px 0; font-size: 15px; line-height: 1.75; color: var(--gray-700); }
.bq-faq__answer p { margin: 0; }

/* =====================================================================
   CLOSING CTA
   ===================================================================== */
.bq-endcta { background: var(--blue-darkest); padding: 66px 0; }
.bq-endcta__inner {
    max-width: 1120px; margin: 0 auto; display: flex; align-items: center;
    justify-content: space-between; gap: 32px; flex-wrap: wrap;
}
.bq-endcta h2 { margin: 0 0 8px; color: var(--white); font-size: 24px; letter-spacing: -.2px; }
.bq-endcta p { margin: 0; color: var(--gray-300); font-size: 15px; line-height: 1.6; max-width: 580px; }
.bq-endcta__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.bq-endcta .bq-button { border-radius: 0 !important; }
.bq-endcta .bq-button--primary { background: var(--white); color: var(--blue-darkest); font-weight: 700; }
.bq-endcta .bq-button--primary:hover { background: var(--gray-300); }
.bq-endcta .bq-button--secondary { background: transparent; color: var(--white); border-color: rgba(255,255,255,.32); }
.bq-endcta .bq-button--secondary:hover { background: rgba(255,255,255,.1); }

/* =====================================================================
   ACCESSIBILITY FLOOR
   ===================================================================== */
.bq-content-page a:focus-visible,
.bq-content-page summary:focus-visible,
.bq-content-page .bq-button:focus-visible { outline: 2px solid var(--blue-primary); outline-offset: 2px; }
.bq-page-hero a:focus-visible { outline-color: var(--white); }

@media (prefers-reduced-motion: reduce) {
    .bq-content-page * { transition: none !important; animation: none !important; }
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1024px) {
    .bq-cardgrid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bq-source__grid { grid-template-columns: 250px minmax(0, 1fr); gap: 30px; }
    .bq-sector-row { grid-template-columns: 40px 190px minmax(0, 1fr); gap: 16px; }
}

@media (max-width: 767px) {
    .bq-page-hero { padding: 118px 0 46px; }
    .bq-page-hero h1 { font-size: 28px; }
    .bq-page-hero__sub { font-size: 16px; }
    .bq-page-hero__actions .bq-button { width: 100%; }
    .bq-hero-facts { gap: 22px 0; margin-top: 30px; padding-top: 22px; }
    .bq-hero-fact { flex: 1 1 45%; border-right: none; margin-right: 0; padding-right: 12px; }
    .bq-legal { padding-bottom: 60px; }
    .bq-legal__title { padding: 40px 0 20px; }
    .bq-legal__title h1 { font-size: 28px; letter-spacing: -.5px; }
    .bq-legal__dates { gap: 4px 18px; }
    .bq-legal__doc > section { padding-top: 32px; }
    .bq-legal__doc > section > h2 { font-size: 18px; }
    .bq-legal__text { font-size: 15.5px; }
    .bq-cardgrid--2, .bq-cardgrid--3, .bq-cardgrid--4 { grid-template-columns: 1fr; }
    .bq-deflist__row { grid-template-columns: 1fr; gap: 6px; }
    .bq-source__grid { grid-template-columns: 1fr; gap: 16px; }
    .bq-source { padding: 26px 0; }
    .bq-sector-row { grid-template-columns: 34px minmax(0, 1fr); gap: 14px; }
    .bq-sector-row__desc { grid-column: 1 / -1; }
    .bq-tree__level--2 { margin-left: 14px; }
    .bq-tree__level--3 { margin-left: 28px; }
    .bq-step { grid-template-columns: 32px minmax(0, 1fr); gap: 14px; padding: 22px 0; }
    .bq-tiers { grid-template-columns: 1fr; }
    .bq-tier { padding: 26px; }
    .bq-download { padding: 22px; }
    .bq-download__action, .bq-download__action .bq-button { width: 100%; box-sizing: border-box; }
    .bq-endcta { padding: 46px 0; }
    .bq-endcta__inner { flex-direction: column; align-items: flex-start; gap: 24px; }
    .bq-endcta__actions { width: 100%; flex-direction: column; }
    .bq-endcta__actions .bq-button { width: 100%; }
    .bq-faq__item summary { font-size: 15px; }
}

/* =====================================================================
   PLAIN PAGES — content pages that open on white rather than a dark band
   ---------------------------------------------------------------------
   APPENDED BLOCK. Nothing above this line is touched; the legal-page rules
   are exactly as accepted.

   ONE COLUMN WIDTH FOR THE WHOLE PAGE. .bq-container is 1600px site-wide
   and .bq-band__inner is a centred 1120px, which meant the intro sat hard
   against the container edge while every band below it was centred 240px
   further in. Narrowing the container itself to the band width fixes the
   step: every section now shares one left edge and one right edge, and
   nothing on these pages is 1600px wide.
   ===================================================================== */
.bq-plain-page .bq-main .bq-container { max-width: 1120px; }
.bq-plain-page .bq-band__inner { max-width: none; margin: 0; }

/* The header is fixed, so the page body clears its 54px itself. Nothing here
   restyles the header: templates set $is_pricing_page before including
   header.php, and put .bq-pricing-page on <main> so homepage.js leaves the
   .is-scrolled class alone. Both are the partials' own mechanisms. */
.bq-plain-page .bq-main { padding-top: 54px; background: var(--white); }

/* --- Intro --- */
.bq-page-intro { background: var(--gray-100); padding: 66px 0 54px; border-bottom: 1px solid var(--bq-line-strong); }
.bq-page-intro__inner { max-width: 880px; }
.bq-page-intro__eyebrow {
    display: block; margin-bottom: 14px;
    font-size: 11px; font-weight: 700; letter-spacing: 1.6px;
    text-transform: uppercase; color: var(--blue-primary);
}
.bq-page-intro h1 {
    margin: 0 0 20px; color: var(--gray-900);
    font-size: 40px; font-weight: 700; line-height: 1.15; letter-spacing: -1px;
}
.bq-page-intro h1 .bq-page-intro__abbr {
    display: block;
    font-size: 46px; letter-spacing: -1.4px;
}
.bq-page-intro h1 .bq-page-intro__expand {
    display: block; margin-top: 4px;
    font-size: 27px; font-weight: 700; letter-spacing: -.5px;
    color: var(--gray-700); line-height: 1.25;
}
.bq-page-intro__lede { margin: 0; font-size: 18px; line-height: 1.7; color: var(--gray-700); }

.bq-page-intro__facts {
    display: flex; flex-wrap: wrap; gap: 0;
    margin-top: 38px; padding-top: 26px;
    border-top: 1px solid var(--bq-line-strong);
}
/* The download chip sits on the tint here, so it needs a white ground. */
.bq-page-intro .bq-filelink { background: var(--white); }
.bq-page-fact { padding-right: 34px; margin-right: 34px; border-right: 1px solid var(--bq-line); }
.bq-page-fact:last-child { padding-right: 0; margin-right: 0; border-right: none; }
.bq-page-fact__num {
    display: block; font-size: 23px; font-weight: 700; line-height: 1.1;
    color: var(--gray-900); font-variant-numeric: tabular-nums;
}
.bq-page-fact__label {
    display: block; margin-top: 5px;
    font-size: 10.5px; font-weight: 700; letter-spacing: .9px;
    text-transform: uppercase; color: var(--gray-500);
}

/* Intro action row */
.bq-page-intro__actions { margin-top: 34px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.bq-page-intro__actions .bq-button { border-radius: 0 !important; }
.bq-page-intro__actions .bq-button--primary { background: var(--blue-primary); color: var(--white); }
.bq-page-intro__actions .bq-button--primary:hover { background: #00417a; }

/* Group / industry counts beside a sector name */
.bq-sector-row__count {
    margin-top: 3px; font-size: 12.5px; color: var(--gray-500);
    font-variant-numeric: tabular-nums;
}

/* --- Section rhythm ---
   Bands alternate white / tint so the page reads as distinct sections
   rather than one continuous sheet, and each carries a hairline so the
   boundary is visible even between two bands of the same colour. */
.bq-plain-page .bq-band { padding: 72px 0; border-top: 1px solid var(--bq-line-strong); }
.bq-plain-page .bq-band--tint { background: var(--gray-100); border-bottom: none; }
.bq-plain-page .bq-band__head { max-width: 880px; margin-bottom: 40px; }

/* --- Closing banner ---
   An inset card, not a full-bleed strip, in the same mint palette and pine
   ink as .bq-cta on the homepage. No blue: the banner has to separate
   itself from the navy header and the blue accents used for links. */
.bq-endnote { background: var(--white); padding: 56px 0 72px; }
.bq-endnote__panel {
    position: relative; overflow: hidden;
    border-radius: var(--radius);
    padding: 38px 36px;
    background: linear-gradient(120deg, #c9e9df 0%, #93cec0 100%);
    box-shadow: var(--shadow-sm);
}
.bq-endnote__panel::before {
    content: ""; position: absolute; inset: -15%;
    background: radial-gradient(46% 65% at 8% 6%, rgba(255,255,255,.5) 0%, transparent 65%);
    pointer-events: none;
}
.bq-endnote__inner {
    position: relative; z-index: 1;
    display: flex; align-items: center; justify-content: space-between;
    gap: 32px; flex-wrap: wrap;
}
.bq-endnote__text { max-width: 560px; }
.bq-endnote h2 { margin: 0 0 8px; font-size: 22px; color: #123a30; letter-spacing: -.2px; }
.bq-endnote p { margin: 0; font-size: 15px; line-height: 1.65; color: rgba(18,58,48,.78); }
.bq-endnote__actions { display: flex; gap: 12px; flex-wrap: wrap; flex-shrink: 0; }
.bq-endnote__actions .bq-button { border-radius: 0 !important; font-weight: 700; }
.bq-endnote__actions .bq-button--primary { background: #123a30; color: var(--white); border: 1px solid #123a30; }
.bq-endnote__actions .bq-button--primary:hover { background: #0c2b23; border-color: #0c2b23; }
.bq-endnote__actions .bq-button--secondary { background: rgba(255,255,255,.9); color: #123a30; border: 1px solid rgba(18,58,48,.25); }
.bq-endnote__actions .bq-button--secondary:hover { background: var(--white); border-color: #123a30; }

/* --- Inline document download --- */
.bq-filelink {
    display: inline-flex; align-items: center; gap: 9px;
    margin-top: 4px; padding: 11px 16px;
    border: 1px solid var(--bq-line-strong); border-radius: var(--radius);
    background: var(--white);
    font-size: 14px; font-weight: 700; color: var(--blue-primary);
    text-decoration: none !important; border-bottom: 1px solid var(--bq-line-strong) !important;
}
.bq-filelink:hover { background: var(--gray-100); border-color: var(--blue-primary) !important; }
.bq-filelink svg { width: 15px; height: 15px; flex-shrink: 0; }
.bq-filelink__meta { font-weight: 400; color: var(--gray-500); font-size: 12.5px; }

/* =====================================================================
   WORKED EXAMPLES — one company, every industry it operates in
   ---------------------------------------------------------------------
   The tag list IS the argument for multi-industry classification, so it is
   shown as data rather than described in a paragraph. Relevance is encoded
   three ways at once — the left rule weight, the code chip's fill, and the
   written label — so it survives greyscale printing and does not rely on
   colour alone.
   ===================================================================== */
.bq-example { background: var(--white); border: 1px solid var(--bq-line-strong); border-radius: var(--radius); overflow: hidden; }
.bq-example + .bq-example { margin-top: 26px; }
.bq-example__head {
    background: var(--blue-darkest); padding: 20px 26px;
    display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.bq-example__label {
    display: block; margin-bottom: 7px;
    font-size: 10px; font-weight: 700; letter-spacing: 1.5px;
    text-transform: uppercase; color: rgba(255,255,255,.55);
}
.bq-example__name { font-size: 23px; font-weight: 700; color: var(--white); line-height: 1.15; letter-spacing: -.4px; }
.bq-example__note { font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.72); text-align: right; max-width: 300px; }
.bq-example__rows { padding: 16px 26px 8px; }
.bq-example__row {
    display: grid; grid-template-columns: 80px minmax(0,1.1fr) minmax(0,1.3fr) 84px;
    align-items: center; gap: 18px;
    padding: 10px 16px 10px 13px; margin-bottom: 6px;
    background: var(--gray-100); border-left: 3px solid var(--bq-line-strong);
}
.bq-example__code {
    font-size: 12px; font-weight: 700; letter-spacing: .6px;
    text-align: center; padding: 5px 0; border-radius: 2px;
    color: var(--white); background: var(--gray-500);
    font-variant-numeric: tabular-nums;
}
.bq-example__industry { font-size: 14.5px; font-weight: 700; color: var(--gray-900); line-height: 1.35; }
.bq-example__what { font-size: 13.5px; color: var(--gray-700); line-height: 1.45; }
.bq-example__rank {
    font-size: 10px; font-weight: 700; letter-spacing: 1.1px;
    text-transform: uppercase; text-align: right; color: var(--gray-500);
}
.bq-example__row--primary { border-left-color: var(--blue-darkest); }
.bq-example__row--primary .bq-example__code { background: var(--blue-darkest); }
.bq-example__row--primary .bq-example__rank { color: var(--gray-900); }
.bq-example__row--secondary { border-left-color: #6d8ba6; }
.bq-example__row--secondary .bq-example__code { background: #4a6f90; }
.bq-example__row--secondary .bq-example__rank { color: var(--gray-700); }
.bq-example__row--minor { border-left-color: var(--bq-line-strong); }
.bq-example__row--minor .bq-example__code { background: #9fb2c2; }
.bq-example__flag {
    display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 18px;
    margin: 10px 0 6px; padding: 12px 16px;
    background: #f2f6f4; border-left: 3px solid #93cec0;
    font-size: 13.5px; line-height: 1.5; color: var(--gray-700);
}
.bq-example__flag strong {
    font-size: 10px; font-weight: 700; letter-spacing: 1.1px;
    text-transform: uppercase; color: #2f6b58;
}
.bq-example__caption {
    padding: 4px 26px 20px;
    font-size: 13px; line-height: 1.6; color: var(--gray-500);
}
.bq-example__caption strong { color: var(--gray-700); font-weight: 700; }

/* Carousel controls. One example is shown at a time and rotates, so the
   section makes its point without three full tables of vertical scroll. */
.bq-example-tabs {
    display: flex; flex-wrap: wrap; gap: 8px;
    margin-bottom: 20px;
}
.bq-example-tab {
    position: relative; overflow: hidden;
    padding: 9px 16px; border: 1px solid var(--bq-line-strong); border-radius: 2px;
    background: var(--white); cursor: pointer;
    font-family: var(--font-sans); font-size: 13.5px; font-weight: 700;
    color: var(--gray-700); transition: color .15s, border-color .15s;
}
.bq-example-tab:hover { color: var(--blue-darkest); border-color: var(--gray-500); }
.bq-example-tab[aria-selected="true"] { color: var(--white); background: var(--blue-darkest); border-color: var(--blue-darkest); }
/* Progress fill doubles as the "this will advance" signal, so no separate
   timer UI is needed. */
.bq-example-tab__fill {
    position: absolute; left: 0; bottom: 0; height: 2px; width: 0;
    background: #93cec0; pointer-events: none;
}
.bq-example-tab[aria-selected="true"] .bq-example-tab__fill.is-running {
    width: 100%; transition: width linear;
}
.bq-example-panel[hidden] { display: none; }

/* Cards sitting on a tinted band need a touch more edge definition. */
.bq-plain-page .bq-band--tint .bq-card { border-color: var(--bq-line-strong); }

@media (max-width: 767px) {
    .bq-page-intro { padding: 40px 0 36px; }
    .bq-page-intro h1 { font-size: 29px; letter-spacing: -.6px; }
    .bq-page-intro__lede { font-size: 16px; }
    .bq-page-intro__facts { gap: 20px 0; margin-top: 28px; padding-top: 22px; }
    .bq-page-fact { flex: 1 1 45%; padding-right: 14px; margin-right: 0; border-right: none; }
    .bq-page-intro__actions { flex-direction: column; align-items: stretch; }
    .bq-page-intro__actions .bq-button, .bq-page-intro__actions .bq-filelink { width: 100%; box-sizing: border-box; justify-content: center; }
    .bq-plain-page .bq-band { padding: 48px 0; }
    .bq-endnote { padding: 36px 0 48px; }
    .bq-endnote__panel { padding: 26px 22px; }
    .bq-endnote__inner { flex-direction: column; align-items: flex-start; gap: 22px; }
    .bq-endnote__actions { width: 100%; }
    .bq-endnote h2 { font-size: 20px; }
    .bq-page-intro h1 .bq-page-intro__abbr { font-size: 31px; letter-spacing: -.8px; }
    .bq-page-intro h1 .bq-page-intro__expand { font-size: 19px; letter-spacing: -.2px; }
    .bq-example__head { padding: 18px 20px; }
    .bq-example__name { font-size: 19px; }
    .bq-example__note { text-align: left; max-width: none; font-size: 13px; }
    .bq-example__rows { padding: 14px 16px 6px; }
    .bq-example__row {
        grid-template-columns: 68px minmax(0,1fr) 74px;
        gap: 10px 12px; padding: 11px 12px 11px 11px;
    }
    .bq-example__what { grid-column: 1 / -1; font-size: 12.5px; }
    .bq-example__rank { font-size: 9.5px; }
    .bq-example__flag { grid-template-columns: 1fr; gap: 5px; }
    .bq-example__caption { padding: 4px 18px 18px; font-size: 12.5px; }
    .bq-example-tabs { gap: 6px; }
    .bq-example-tab { flex: 1 1 auto; padding: 9px 12px; font-size: 12.5px; }
    .bq-endnote__actions { flex-direction: column; }
    .bq-endnote__actions .bq-button { width: 100%; box-sizing: border-box; }
}