/* ── Blog flagship layer ───────────────────────────────────────────────
   Brings blog posts up to the homepage standard: real colour separation,
   left-aligned reading measure, data graphics, real app screens.

   Loads AFTER design.css. Everything is namespaced bf- so it cannot
   collide with design.css or home-flagship.css, which share .tile,
   .eyebrow, .fact, .sec and .price between them.

   --display is Plus Jakarta Sans from design.css; never override it (Aaron, 2026-09-09). */

:root{
  --bf-ink-2:#1E2427; --bf-ink-3:#2A3236;
  --bf-on-ink:#F4F6F6; --bf-on-ink-soft:#A4AFB2;
  --bf-teal-lift:#18C7A4;
  --bf-amber:#E0A33A;
  --bf-t-hero:clamp(2.35rem,1.2rem + 3.2vw,3.75rem);
  --bf-t-xl:clamp(1.9rem,1.1rem + 2.9vw,3.1rem);
  --bf-measure:54ch;
}

/* ── Bands. The point of the file: a reader can tell sections apart with
      the page zoomed to a thumbnail. Never two reading bands in a row. ── */
.bf-band{padding:clamp(56px,7vw,104px) 0;position:relative}
.bf-band--paper{background:var(--paper)}
.bf-band--cream{background:var(--butter)}
.bf-band--ink{background:var(--ink);color:var(--bf-on-ink);isolation:isolate;overflow:hidden}
.bf-band--ink::before{content:"";position:absolute;inset:-40% -10% auto -25%;height:150%;z-index:0;
  pointer-events:none;
  background:radial-gradient(58% 52% at 20% 30%,rgba(14,156,130,.20),transparent 68%),
             radial-gradient(46% 44% at 84% 6%,rgba(224,163,58,.12),transparent 70%)}
.bf-band--ink > *{position:relative;z-index:1}
/* white on --teal is 3.46:1, under AA. --teal-dark is 5.27:1. */
.bf-band--teal{background:var(--teal-dark);color:#fff}
.bf-band--ink h2,.bf-band--ink h3,.bf-band--teal h2,.bf-band--teal h3{color:inherit}
.bf-band--ink p,.bf-band--teal p{color:inherit}
/* design.css paints .section p a:not([class]) --teal-dark at (0,2,2), which is
   2.98:1 on ink. Anything on a dark ground has to win that. */
.bf-band--ink a:not([class]),.bf-band--teal a:not([class]){color:var(--bf-teal-lift)}
.bf-band--teal a:not([class]){color:#fff;text-decoration:underline}

/* ── Section head ── */
.bf-head{margin-bottom:clamp(30px,3.6vw,52px);max-width:var(--bf-measure)}
.bf-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.bf-eyebrow .n{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;
  background:var(--ink);color:var(--cream);border-radius:6px;padding:4px 8px;line-height:1}
.bf-eyebrow .l{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-fade)}
.bf-eyebrow::after{content:"";flex:1;height:1px;background:var(--ink-trace);min-width:24px}
.bf-band--ink .bf-eyebrow .n{background:var(--bf-on-ink);color:var(--ink)}
.bf-band--ink .bf-eyebrow .l{color:var(--bf-on-ink-soft)}
.bf-band--ink .bf-eyebrow::after{background:var(--bf-ink-3)}
.bf-band--teal .bf-eyebrow .n{background:#fff;color:var(--teal-dark)}
.bf-band--teal .bf-eyebrow .l{color:rgba(255,255,255,.82)}
.bf-band--teal .bf-eyebrow::after{background:rgba(255,255,255,.28)}

.bf-h2{font-family:var(--display);font-size:var(--bf-t-xl);line-height:1.04;letter-spacing:-.028em;
  font-weight:800;text-align:left;margin:0}
/* design.css forces h1-h6 em to color:inherit!important, so these must match it */
.bf-h2 em{font-style:normal!important;color:var(--teal-dark)!important}
.bf-band--ink .bf-h2 em,.bf-band--teal .bf-h2 em{color:var(--bf-teal-lift)!important}
.bf-band--teal .bf-h2 em{color:#fff!important;text-decoration:underline;text-decoration-thickness:3px;
  text-underline-offset:5px}
.bf-lede{margin-top:16px;font-size:clamp(16.5px,15px + .3vw,18.5px);line-height:1.62;
  color:var(--ink-soft);max-width:var(--bf-measure);text-align:left}
.bf-band--ink .bf-lede{color:var(--bf-on-ink-soft)}
.bf-band--teal .bf-lede{color:rgba(255,255,255,.9)}

/* ── Body copy. The fix for centred 120-character lines. ── */
.bf-copy{max-width:var(--bf-measure);text-align:left}
.bf-copy p{font-size:17px;line-height:1.72;margin:0}
.bf-copy p + p{margin-top:1.05em}
.bf-copy strong{font-weight:700}
.bf-band--ink .bf-copy p{color:var(--bf-on-ink-soft)}
.bf-band--ink .bf-copy strong{color:var(--bf-on-ink)}

/* ── Two column: copy one side, artefact the other, alternating ── */
.bf-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,4.5vw,72px);align-items:center}
.bf-two--top{align-items:start}
.bf-two--flip > :first-child{order:2}
@media (max-width:860px){
  .bf-two{grid-template-columns:1fr;gap:34px}
  .bf-two--flip > :first-child{order:0}
}

/* ── Percentage bars, from the post's own sourced numbers ── */
.bf-bars{display:grid;gap:20px;margin:0}
.bf-bar__top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:9px}
.bf-bar__name{font-size:15px;font-weight:600;line-height:1.35}
.bf-bar__pct{font-family:var(--mono);font-size:19px;font-weight:700;letter-spacing:-.02em;flex:none}
.bf-bar__track{height:10px;border-radius:99px;background:var(--ink-trace);overflow:hidden}
.bf-band--ink .bf-bar__track{background:var(--bf-ink-3)}
/* an inline span ignores width and height: this must stay a block */
.bf-bar__fill{display:block;height:100%;border-radius:99px;background:var(--teal);
  width:0;transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.bf-band--ink .bf-bar__fill{background:var(--bf-teal-lift)}
.bf-bar--warn .bf-bar__fill{background:var(--bf-amber)}
.bf-bar--bad .bf-bar__fill{background:var(--coral)}
/* neutral: for a bar that shows a range, not a target */
.bf-bar--none .bf-bar__fill{background:var(--ink-fade)}
.bf-band--ink .bf-bar--none .bf-bar__fill{background:var(--bf-on-ink-soft)}
.reveal.in .bf-bar__fill,.bf-bars.in .bf-bar__fill{width:var(--w)}
.bf-bar__note{margin-top:8px;font-size:14px;line-height:1.55;color:var(--ink-fade)}
.bf-band--ink .bf-bar__note{color:var(--bf-on-ink-soft)}

/* ── Stat rows for figures that are not percentages ── */
.bf-stat{display:grid;gap:5px;padding:20px 0;border-top:1px solid var(--ink-trace)}
.bf-stat:last-child{border-bottom:1px solid var(--ink-trace)}
.bf-band--ink .bf-stat{border-color:var(--bf-ink-3)}
.bf-stat__n{font-family:var(--mono);font-size:clamp(26px,22px + 1vw,34px);font-weight:700;
  letter-spacing:-.03em;line-height:1}
.bf-stat__n small{font-size:.5em;font-weight:500;letter-spacing:0;margin-left:6px;color:var(--ink-fade)}
.bf-band--ink .bf-stat__n{color:var(--bf-teal-lift)}
.bf-band--ink .bf-stat__n small{color:var(--bf-on-ink-soft)}
.bf-stat__l{font-size:15.5px;line-height:1.6;color:var(--ink-soft);max-width:60ch}
.bf-band--ink .bf-stat__l{color:var(--bf-on-ink-soft)}

/* ── Cards with a severity rule, same idea as the homepage acard ── */
.bf-cards{display:grid;gap:16px}
.bf-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.bf-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:860px){.bf-cards--2,.bf-cards--3{grid-template-columns:1fr}}
.bf-card{background:var(--surface);border:1px solid var(--rule);border-radius:16px;
  padding:clamp(20px,2.4vw,28px);border-left:4px solid var(--teal);text-align:left}
.bf-card--warn{border-left-color:var(--bf-amber)}
.bf-card--bad{border-left-color:var(--coral)}
.bf-card--none{border-left-color:var(--ink-trace)}
.bf-card__k{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-fade);display:block;margin-bottom:9px}
.bf-card h3{font-family:var(--display);font-size:19px;font-weight:700;line-height:1.2;
  letter-spacing:-.02em;margin:0 0 9px}
.bf-card p{font-size:15.5px;line-height:1.62;color:var(--ink-soft);margin:0}
.bf-card p + p{margin-top:.8em}
.bf-band--ink .bf-card{background:var(--bf-ink-2);border-color:var(--bf-ink-3)}
.bf-band--ink .bf-card h3{color:var(--bf-on-ink)}
.bf-band--ink .bf-card p,.bf-band--ink .bf-card__k{color:var(--bf-on-ink-soft)}
.bf-band--teal .bf-card{background:rgba(0,0,0,.16);border-color:rgba(255,255,255,.2);
  border-left-color:#fff}
.bf-band--teal .bf-card h3{color:#fff}
.bf-band--teal .bf-card p,.bf-band--teal .bf-card__k{color:rgba(255,255,255,.88)}

/* ── Real app screen, never a fake mockup ── */
.bf-shot{margin:0}
.bf-shot img{display:block;width:auto;max-width:100%;max-height:620px;margin-inline:auto;
  border-radius:22px}
.bf-shot figcaption{margin-top:16px;font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.11em;text-transform:uppercase;color:var(--ink-fade);text-align:center;line-height:1.6}
.bf-band--ink .bf-shot figcaption{color:var(--bf-on-ink-soft)}
.bf-band--teal .bf-shot figcaption{color:rgba(255,255,255,.8)}

/* ── Pull quote, to break a long run of body copy ── */
.bf-quote{margin:0;padding-left:clamp(18px,2vw,26px);border-left:3px solid var(--teal);
  max-width:52ch;text-align:left}
.bf-quote p{font-family:var(--display);font-size:clamp(19px,17px + .7vw,25px);line-height:1.3;
  font-weight:600;letter-spacing:-.02em;margin:0}
.bf-quote cite{display:block;margin-top:14px;font-style:normal;font-family:var(--mono);
  font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-fade)}
.bf-band--ink .bf-quote{border-left-color:var(--bf-teal-lift)}
.bf-band--ink .bf-quote cite{color:var(--bf-on-ink-soft)}

/* ── Chips for a row of small sourced facts ── */
.bf-chips{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none}
.bf-chip{display:inline-flex;align-items:baseline;gap:7px;background:var(--surface);
  border:1px solid var(--rule);border-radius:99px;padding:8px 15px;font-size:14.5px;line-height:1.3}
.bf-chip b{font-family:var(--mono);font-weight:700;letter-spacing:-.02em}
.bf-band--ink .bf-chip{background:var(--bf-ink-2);border-color:var(--bf-ink-3);color:var(--bf-on-ink-soft)}
.bf-band--ink .bf-chip b{color:var(--bf-teal-lift)}

/* ── Finale ── */
.bf-fin{background:var(--ink);color:var(--bf-on-ink);border-radius:26px;
  padding:clamp(34px,4.6vw,66px);position:relative;overflow:hidden;isolation:isolate}
.bf-fin::before{content:"";position:absolute;inset:auto -12% -55% 40%;height:130%;z-index:0;
  pointer-events:none;background:radial-gradient(50% 50% at 60% 50%,rgba(14,156,130,.30),transparent 70%)}
.bf-fin > *{position:relative;z-index:1}
.bf-fin__h{font-family:var(--display);font-size:var(--bf-t-xl);line-height:1.02;
  letter-spacing:-.03em;font-weight:800;margin:0;max-width:14ch}
.bf-fin__body{color:var(--bf-on-ink-soft);font-size:16px;line-height:1.65;max-width:46ch}
.bf-fin__body strong{color:var(--bf-on-ink)}
.bf-fin__note{margin-top:14px;font-size:13px;color:var(--bf-on-ink-soft)}
/* white on --teal is 3.44:1; ink on --teal is 4.92:1 and keeps the fill */
.bf-fin .btn--ink{background:var(--teal);color:var(--ink);border-color:var(--teal);font-weight:700}
.bf-fin .btn--ink:hover{background:var(--bf-teal-lift);border-color:var(--bf-teal-lift);color:var(--ink)}

/* ── Hero on the dark ground ── */
.bf-hero__kicker{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bf-on-ink-soft);margin:0 0 20px}
.bf-hero__h1{font-family:var(--display);font-size:var(--bf-t-hero);line-height:1.02;
  letter-spacing:-.03em;font-weight:800;color:var(--bf-on-ink);margin:0;max-width:16ch;text-align:left}
.bf-hero__h1 em{font-style:normal!important;color:var(--bf-teal-lift)!important}
.bf-dot{color:var(--coral)}
.bf-hero__lede{margin:24px 0 0;font-size:clamp(16.5px,15px + .35vw,19px);line-height:1.62;
  color:var(--bf-on-ink-soft);max-width:52ch;text-align:left}
.bf-hero__lede strong{color:var(--bf-on-ink);font-weight:700}
.bf-hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.bf-hero__note{margin:20px 0 0;font-size:13.5px;color:var(--bf-on-ink-soft)}
.bf-sep{opacity:.45;margin:0 4px}

/* design.css .btn--ink is a dark pill: invisible on a dark band */
.bf-band--ink .btn--ink,.bf-fin .btn--ink{border-color:transparent}
.bf-band--ink .btn--ink{background:var(--bf-on-ink);color:var(--ink)}
.bf-band--ink .btn--ink:hover{background:#fff}
.bf-band--ink .btn--ghost{background:transparent;color:var(--bf-on-ink);border-color:var(--bf-ink-3)}
.bf-band--ink .btn--ghost:hover{border-color:var(--bf-on-ink-soft);background:rgba(255,255,255,.05)}
.bf-band--teal .btn--ink{background:#fff;color:var(--teal-dark);border-color:#fff}

/* srclist and FAQ inherit design.css; only the ground changes under them */
.bf-band .srclist{max-width:var(--bf-measure)}
/* design.css leaves FAQ answers full width: 133 characters a line at 1280.
   Narrow the card itself, so the copy fills it instead of hugging one edge. */
.bf-band .enum-faq{max-width:630px}

/* ── Ordered priority list ── */
.bf-order{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:none}
.bf-order li{display:flex;align-items:center;gap:14px;background:var(--surface);
  border:1px solid var(--rule);border-radius:14px;padding:14px 18px;font-size:16px;font-weight:600}
.bf-order li b{font-family:var(--mono);font-size:13px;font-weight:700;flex:none;
  width:26px;height:26px;display:grid;place-items:center;border-radius:7px;
  background:var(--ink);color:var(--cream)}
.bf-band--ink .bf-order li{background:var(--bf-ink-2);border-color:var(--bf-ink-3);color:var(--bf-on-ink)}
.bf-band--ink .bf-order li b{background:var(--bf-teal-lift);color:var(--ink)}

/* ── Timeline. Illustrates a stated window; never implies measured data. ── */
.bf-time{list-style:none;margin:0;padding:0;display:grid;gap:0}
.bf-time li{display:grid;grid-template-columns:64px 1fr;gap:16px;padding:14px 0;
  border-top:1px solid var(--ink-trace);align-items:baseline}
.bf-time li:last-child{border-bottom:1px solid var(--ink-trace)}
.bf-band--ink .bf-time li{border-color:var(--bf-ink-3)}
.bf-time__t{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:-.01em}
.bf-time__l{font-size:15.5px;line-height:1.55}
/* --coral on a light ground is 3.37:1; --coral-deep is 5.1:1 */
.bf-time li.is-hit .bf-time__t{color:var(--coral-deep)}
.bf-band--ink .bf-time li.is-hit .bf-time__t{color:var(--coral)}
.bf-time li.is-hit .bf-time__l{font-weight:600}
.bf-time li.is-window{background:linear-gradient(90deg,rgba(224,163,58,.14),transparent 70%)}
.bf-time__cap{margin-top:14px;font-size:13.5px;line-height:1.55;color:var(--ink-fade)}
.bf-band--ink .bf-time__cap{color:var(--bf-on-ink-soft)}

/* ── Visible byline. Metadata alone is invisible to a reader and to an
      answer engine reading rendered text. ── */
.bf-byline{margin:22px 0 0;font-size:14px;line-height:1.6;color:var(--bf-on-ink-soft)}
.bf-byline a{color:var(--bf-on-ink);border-bottom:1px solid var(--bf-ink-3)}
.bf-byline a:hover{border-bottom-color:var(--bf-on-ink-soft)}
