/* Broadcastwell app layer on brand system 3.0.0 (STEP 3.3). Every value is a brand token from
   /assets/brand/tokens.css; test/app-system.test.js refuses any other length or colour. */

/* The navigation and footer keep their own type and box model on every app page, also on pages
   whose body is still in the earlier style. */
.bw-site-nav,.bw-site-footer{font-family:var(--bw-font-sans);font-size:var(--bw-text-16);line-height:var(--bw-leading-16);font-weight:var(--bw-weight-regular);color:var(--bw-color-ink);text-align:left;letter-spacing:normal}
header.bw-site-nav.bw-site-nav{display:block;width:auto;max-width:none;margin:0;padding:0;position:relative}
footer.bw-site-footer.bw-site-footer{display:block;width:auto;max-width:none;margin:0;padding-inline:0}
.bw-site-nav__actions+.bw-site-nav__phone{margin-left:auto}
.bw-site-nav *,.bw-site-nav *::before,.bw-site-nav *::after,.bw-site-footer *,.bw-site-footer *::before,.bw-site-footer *::after{box-sizing:border-box}
/* Element rules of earlier page styles (details, nav, p, address, li) do not reach into the chrome;
   the brand classes set every other box. */
.bw-site-nav details,.bw-site-nav nav,.bw-site-nav li,.bw-site-footer nav,.bw-site-footer li,.bw-site-footer p,.bw-site-footer address{margin:0;padding:0;max-width:none;background:none;border:0;box-shadow:none}
.bw-site-nav li,.bw-site-footer li{list-style:none}
/* An earlier page rule that lays out every nav as a row (nav{display:flex}) does not reach the phone
   menu's own list of doors, items and links; the bar's and footer's navs keep their class layout. */
.bw-site-nav .bw-site-nav__sheet>nav{display:block}
/* Nor do the document rules of the sample views and printable pages (header{border-top}, a{overflow-wrap:
   anywhere}): the bar keeps its hairline and its labels never break inside a word. */
header.bw-site-nav.bw-site-nav{border-top:0}
.bw-site-nav a,.bw-site-nav summary{overflow-wrap:normal;word-break:normal}
/* The Exchange's own bar follows the shared navigation and stays in reach while scrolling; it sits below
   the navigation's menus, which open over it. */
body.ex .ex-header.ex-header{z-index:var(--bw-z-sticky)}
/* The public sample's sticky stack (sample context, buy bar and section rail) does the same: it sticks at
   the top of the window once the shared navigation scrolls away, on the sticky layer, under the
   navigation's menus. Its earlier styles held it 64 px down, under a sticky site header the shared
   navigation replaced, and the scrolled page showed in that strip above it. */
.sticky-stack.bw-public-sample-stack{top:0;z-index:var(--bw-z-sticky)}
/* The evidence tables lay out at fixed column widths, so a header label wraps inside its own column instead
   of running under the next one (the rivals table's "Named instead of you" at 1440 px). */
.dash-table.dash-table thead th{white-space:normal}
/* A sample view keeps its views rail beside the page from 1280 px (brand-app-legacy.css lays the body out
   as a rail column and a content column). The shared navigation and footer span both columns, as on every
   other page, and the rail stays in reach below the navigation instead of lying over it. */
@media (min-width:1280px){
body[data-bw-sample-views-body]>header.bw-site-nav,body[data-bw-sample-views-body]>footer.bw-site-footer{grid-column:1/-1}
body[data-bw-sample-views-body]>.bw-sample-views.bw-sample-views{position:sticky;top:0;bottom:auto;z-index:auto;grid-column:1;grid-row:2/span 2;align-self:start}
body[data-bw-sample-views-body]>footer.bw-site-footer{position:relative}
}
:where(.bw-site-nav,.bw-site-footer) :where(a){font:inherit}
/* The wordmark keeps the brand's own size and weight on every app page (art director live round 1): the
   rule above would draw it at the navigation's 16 px and start the menu 21 px further left. */
.bw-site-nav .bw-logotype,.bw-site-footer .bw-logotype{font-size:var(--bw-text-20);line-height:var(--bw-leading-20);font-weight:var(--bw-wordmark-weight);letter-spacing:var(--bw-wordmark-tracking)}
.bw-site-footer__title{font-size:var(--bw-text-16)}
.bw-site-nav .bw-icon{width:var(--bw-space-16);height:var(--bw-space-16);fill:none;stroke:currentColor}
.bw-site-nav .bw-icon--24{width:var(--bw-space-24);height:var(--bw-space-24)}
@media print{.bw-site-nav,.bw-site-footer,.bw-skip{display:none!important}}

/* Lists in running text on app pages hang from the scale. */
:where(.bw-page) :where(ul,ol):not([class*="bw-site"]){padding-left:var(--bw-space-24)}
:where(.bw-page) :where(li)+:where(li){margin-top:var(--bw-space-8)}

/* The signed-in app bar (scripts/step33-app-shell.mjs): wordmark, the account's links and the way back
   to the site, over pages whose body is still in the earlier style. */
header.bw-app-bar.bw-app-bar{max-width:none;width:auto;margin:0;padding:var(--bw-space-16) var(--bw-layout-edge);font-family:var(--bw-font-sans);font-size:var(--bw-text-16);line-height:var(--bw-leading-16);color:var(--bw-color-ink);box-sizing:border-box;position:relative}
.bw-app-bar__account{display:flex;flex-wrap:wrap;gap:var(--bw-space-4) var(--bw-space-16);margin:0;padding:0}
.bw-app-bar__account a,.bw-app-bar__back{display:inline-flex;align-items:center;min-height:var(--bw-layout-target-min);color:var(--bw-color-ink);text-decoration:none;font-weight:var(--bw-weight-medium)}
.bw-app-bar__account a:hover,.bw-app-bar__back:hover{color:var(--bw-color-accent);text-decoration:underline;text-decoration-thickness:var(--bw-stroke-hairline)}
.bw-app-bar a:focus-visible{outline:var(--bw-focus-width) var(--bw-focus-style) var(--bw-focus-color);outline-offset:var(--bw-focus-offset)}
.bw-app-bar__back{color:var(--bw-color-accent)}
.bw-site-nav nav{gap:0;font-size:var(--bw-text-16);line-height:var(--bw-leading-16)}
.bw-site-nav details,.bw-site-nav nav,.bw-site-footer nav{border-radius:0}
.bw-site-nav a,.bw-site-nav summary,.bw-site-footer a{font-size:inherit;letter-spacing:normal}
.bw-site-nav__sheet>nav{display:block;max-width:none}
/* The same bar on the account pages a Function renders (functions/lib/app-shell.js): earlier element
   rules for header links (header > a, header nav a) do not resize its links. */
header.bw-app-bar .bw-app-bar__back,header.bw-app-bar .bw-app-bar__account a{font-size:var(--bw-text-16);line-height:var(--bw-leading-16);letter-spacing:normal;padding:0;border:0;background:none}
header.bw-app-bar .bw-app-bar__account{font-size:var(--bw-text-16);margin:0;padding:0;border:0;background:none}
/* Art round 3 (B125, point 18): the selected state is the accent with the 2 px underline, as in the brand components. */
header.bw-app-bar .bw-app-bar__account a[aria-current="page"]{color:var(--bw-color-accent);text-decoration:underline;text-decoration-thickness:var(--bw-stroke-focus)}
/* The public sample from 1100 px (buyer objection pass, R-154, at 1440 px: a near-empty band under the
   navigation, a strip between the rail and the page, a blue banner out of line with the page, and the
   agency card's logo row sliding over the card's own paragraphs). The sample context (the company and its
   label) heads the rail's column beside the buy bar, so no band of its own opens; the rail takes the
   column's whole width; the buy bar and the availability note start where the page's text starts. */
@media (min-width:1100px){
.sticky-stack.bw-public-sample-stack{display:grid;grid-template-columns:var(--bw-layout-rail) minmax(0,1fr);align-items:stretch}
.sticky-stack.bw-public-sample-stack>.bw-shared-sample-context{grid-column:1;grid-row:1;display:flex;align-items:center;padding:var(--bw-space-8) var(--bw-space-16);border-right:var(--bw-stroke-hairline) solid var(--bw-color-line)}
.sticky-stack.bw-public-sample-stack>.bw-shared-sample-context .header-client{flex-wrap:wrap;justify-content:flex-start;row-gap:var(--bw-space-4)}
.sticky-stack.bw-public-sample-stack>.buy-bar{grid-column:1/-1;grid-row:1;padding:var(--bw-space-8) var(--bw-space-48) var(--bw-space-8) calc(var(--bw-layout-rail) + var(--bw-space-48))}
.sticky-stack.bw-public-sample-stack>.bw-shared-sample-context~.buy-bar{grid-column:2;padding-left:var(--bw-space-48)}
.sticky-stack.bw-public-sample-stack>.buy-bar .buy-bar-text{max-width:none;flex:1 1 0;min-width:0}
.sticky-stack.bw-public-sample-stack .section-nav[data-rail]{width:var(--bw-layout-rail)}
#app:has(.bw-public-sample-stack)>.sample-availability{padding-left:var(--bw-space-48);padding-right:var(--bw-space-48)}
}
/* The agency card's logo row belongs to the card: it scrolls with it and never covers the text below. */
.agency-preview.site-header{position:static}
