/* Business in a Box (Joe, 2026-10-15): /business-in-a-box and its trade pages, phone first (390 px), scoped to body.bv2.
   Colours come from the trade's content file as --bv-paper, --bv-ink, --bv-accent, --bv-accent-dark, --bv-straw and --bv-tomato
   (/biab-v2/tokens-<trade>.css); the defaults below are the farm's. Type: Geist for headlines and Inter for text, the site's own pair
   (premium.css @font-face; Joe 2026-10-13). Banned typefaces: NexVerto-Standards (Joe 2026-10-15). Spacing on an 8 px scale; sections 56 px apart on phones and 120 px on desktop; targets 44 px.
   Motion (each: trigger, target, states, timing, cleanup; reduced motion in the last block):
   1. Hero layers. Load: the plate pushes in (.bv-layer-plate img, scale 1 to 1.06, 16 s ease-out, once). Pointer (desktop, fine
      pointer) and scroll (all sizes): each [data-depth] layer drifts by its depth, eased toward the target every frame (biab-v2.js),
      at most about 12 px with the pointer and 28 px (phones) or 40 px (desktop) over one hero height of scroll; listeners are passive
      and run only while the hero is on screen. Reduced: still.
   2. Call card rises. Load; .bv-call; 24 px lower and transparent to in place; 700 ms ease-out after 400 ms, once. Reduced: shown.
   3. Sheet opens. A card's button; dialog.bv-sheet; phones slide up from below, desktop fades and scales from .98; 300 ms
      ease-out; closing is instant. Reduced: no movement.
   4. Step line draws. The steps entering view (biab-v2.js adds .is-in, then stops watching); .bv-step-list::before; scale 0 to
      1 from the start; 900 ms ease-out, once. Reduced or no script: drawn.
   5. Sticky bar slides. Scroll (biab-v2.js); .bv-bar; below the screen to in place; 220 ms. Reduced: appears.
   6. Gallery focus. The slider's scroll, arrows, keys and chips (biab-v2.js marks the card in focus .is-focus); every other card blurs 3 px and
      fades to .8; 350 ms ease-out each way. Reduced: the others dim to .45 at once, no blur.
   7. Door drift (the hub). Scroll and the pointer (desktop); each .bv-door img moves at most 16 px, eased
      every frame (biab-v2.js) only while the doors are on screen. Reduced: still.
   Nothing takes over scrolling: the slider is native horizontal scroll with snap points. */
a {text-decoration:none!important;}

body.bv2 {
  --bv-paper:#F6F2EA; --bv-ink:#16140F; --bv-accent:#2F5D3A; --bv-accent-dark:#8FC79A; --bv-straw:#D9B26F; --bv-tomato:#C2452D;
  --bv-display:"Geist","Geist Fallback",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --bv-bg:var(--bv-paper); --bv-fg:var(--bv-ink); --bv-muted:#57534A; --bv-acc:var(--bv-accent); --bv-on-acc:#FFFFFF;
  --bv-line:rgb(22 20 15 / .14); --bv-soft:rgb(22 20 15 / .06); --bv-raised:#FFFDF8; --bv-gutter:16px; --bv-gap:56px; --bv-top:76px;
  --bg:var(--bv-bg); --header-bg:var(--bv-bg); --border:rgb(22 20 15 / .12);
  background:var(--bv-bg); color:var(--bv-fg); overflow-x:clip;
}
html[data-theme=dark] body.bv2 {
  --bv-bg:var(--bv-ink); --bv-fg:var(--bv-paper); --bv-muted:#C9C2B4; --bv-acc:var(--bv-accent-dark); --bv-on-acc:var(--bv-ink);
  --bv-line:rgb(246 242 234 / .16); --bv-soft:rgb(246 242 234 / .07); --bv-raised:#211E18; --border:rgb(246 242 234 / .12);
}
html:has(body.bv2) {scroll-padding-top:calc(var(--bv-top, 76px) + 64px);}
html:has(body.bv2 dialog[open]) {overflow:hidden;}

/* The page runs edge to edge; the site's header and footer keep the site's width. */
body.bv2 .wrap {width:100%;}
body.bv2 .top, body.bv2 footer, body.bv2 .bv-in {width:min(1200px,calc(100% - 64px));margin-inline:auto;}
body.bv2 main {min-height:0;}
body.bv2 main section {margin:0;}
body.bv2 p {margin:0;}
body.bv2 h1, body.bv2 h2, body.bv2 h3, body.bv2 h4 {margin:0;font-family:var(--bv-display);font-weight:600!important;letter-spacing:-.026em!important;color:inherit;text-wrap:balance;}
@media (max-width:1100px) {body.bv2 .top, body.bv2 footer, body.bv2 .bv-in {width:calc(100% - 48px);}}
@media (max-width:700px) {body.bv2 .top, body.bv2 footer, body.bv2 .bv-in {width:calc(100% - 32px);}}
/* One button on phones and tablets: the sticky bar carries it, so the header's own button steps aside. */
@media (max-width:1023px) {body.bv2 .top .intro-header {display:none;}}

/* S1 The moment: the photo under the header, the promise on its calm top, the call card on its lower edge. */
body.bv2 .bv-hero {position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:92svh;overflow:hidden;color:#FFFFFF;}
/* The stage, back to front (spec section 2): 1 background plate (no people), 2 environment (light, scrim, grain),
   3 cut-out objects with contact shadows, 4 content (.bv-hero-copy, outside the stage), 5 the NexVerto card. */
body.bv2 .bv-hero-layers {min-height:max(92svh,720px);}
body.bv2 .bv-stage {position:absolute;inset:0;z-index:-1;overflow:hidden;}
body.bv2 .bv-layer {position:absolute;inset:0;will-change:transform;}
body.bv2 .bv-layer-plate picture {display:block;width:100%;height:100%;}
body.bv2 .bv-layer-plate img {display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform-origin:50% 60%;animation:bv-push 16s cubic-bezier(.2,.6,.3,1) both;}
body.bv2 .bv-layer-env {pointer-events:none;
  background:radial-gradient(120% 60% at 0% 18%,rgb(255 214 150 / .22),rgb(255 214 150 / 0) 60%),
    linear-gradient(180deg,rgb(14 12 8 / .78) 0%,rgb(14 12 8 / .62) 34%,rgb(14 12 8 / .34) 54%,rgb(14 12 8 / 0) 72%,rgb(14 12 8 / .22) 100%);}
body.bv2 .bv-layer-env::after {content:"";position:absolute;inset:0;opacity:.14;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");}
body.bv2 .bv-layer-obj {inset:auto;pointer-events:none;}
body.bv2 .bv-layer-obj img {display:block;width:100%;height:auto;filter:drop-shadow(0 18px 18px rgb(0 0 0 / .32)) drop-shadow(0 4px 4px rgb(0 0 0 / .22));}
body.bv2 .bv-layer-obj::after {content:"";position:absolute;left:12%;right:12%;bottom:6%;height:12%;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgb(0 0 0 / .45),rgb(0 0 0 / 0));}
body.bv2 .bv-obj-a {left:-6%;bottom:118px;width:58%;}
body.bv2 .bv-obj-b {right:-4%;bottom:132px;width:42%;}
body.bv2 .bv-layer-card {inset:auto 16px max(16px,env(safe-area-inset-bottom)) 16px;}
body.bv2 .bv-hero-copy {position:relative;width:calc(100% - 32px);margin-inline:auto;padding-top:32px;}
body.bv2 .bv-label {font:600 13px/1.3 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:rgb(255 255 255 / .88);}
body.bv2 .bv-hero h1 {margin-top:12px;font-size:clamp(40px,11.2vw,46px);line-height:1.02;color:#FFFFFF;text-shadow:0 1px 18px rgb(0 0 0 / .28);}
body.bv2 .bv-line {margin-top:16px;max-width:34ch;font-size:17px;line-height:1.5;color:rgb(255 255 255 / .94);text-shadow:0 1px 12px rgb(0 0 0 / .3);}
body.bv2 .bv-cta {display:flex;width:100%;min-height:56px;margin-top:24px;font-size:17px;}
body.bv2 .bv-call {position:relative;padding:14px 16px 16px;border-radius:18px;background:#FFFFFF;color:#16140F;
  box-shadow:0 1px 2px rgb(0 0 0 / .1),0 10px 24px rgb(0 0 0 / .18),0 28px 56px -16px rgb(0 0 0 / .35);animation:bv-rise .7s cubic-bezier(.2,.7,.2,1) .4s both;}
body.bv2 .bv-call-status {display:flex;align-items:center;gap:8px;font:600 13px/1.3 var(--sans);color:#2F5D3A;}
body.bv2 .bv-dot {width:8px;height:8px;border-radius:50%;background:#2E9E53;box-shadow:0 0 0 4px rgb(46 158 83 / .16);flex:none;}
body.bv2 .bv-call-title {margin-top:6px;font:600 16px/1.35 var(--sans);color:#16140F;}
body.bv2 .bv-call-line {margin-top:2px;font-size:14px;line-height:1.4;color:#57534A;}
@keyframes bv-push {from {transform:scale(1);} to {transform:scale(1.06);}}
@keyframes bv-rise {from {opacity:0;transform:translateY(24px);} to {opacity:1;transform:none;}}

/* S2 The gallery (Joe, 2026-10-16: "those blurred cards i want cut to 3 visible at any time"; 2026-10-15: no card cut off at the
   screen's edge): one card on a phone, three from 900 px, never more, always whole. The rail is exactly that many cards wide (plus a
   16 px edge, less than the 24 px gap, so the next card waits out of sight) and snaps to whole cards. The card in focus is sharp,
   the middle one wherever the row can centre it; the others blur (motion 6, biab-v2.js). Chips above; a sheet for each card. */
body.bv2 .bv-gallery {position:relative;padding-top:var(--bv-gap);container-type:inline-size;}
body.bv2 .bv-eyebrow {font:600 13px/1.3 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--bv-acc);}
body.bv2 .bv-ghead h2 {margin-top:8px;font-size:clamp(32px,8.4vw,52px);line-height:1.06;}
body.bv2 .bv-lede {margin-top:12px;max-width:40ch;font-size:17px;line-height:1.5;color:var(--bv-muted);}
body.bv2 .bv-chips {position:sticky;top:var(--bv-top,76px);z-index:6;margin-top:24px;background:var(--bv-bg);box-shadow:0 1px 0 var(--bv-line);}
body.bv2 .bv-chips-row {display:flex;gap:8px;overflow-x:auto;padding:10px 16px;scroll-padding-inline:16px;scrollbar-width:none;overscroll-behavior-x:contain;}
body.bv2 .bv-chips-row::-webkit-scrollbar {display:none;}
body.bv2 .bv-chip {display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:56px;min-height:44px;padding:0 16px;border-radius:999px;
  background:var(--bv-soft);font:600 15px/1 var(--sans);--link-ink:var(--bv-fg);transition:background-color .2s ease-out;}
body.bv2 .bv-chip.is-current {background:var(--bv-acc);--link-ink:var(--bv-on-acc);}
body.bv2 .bv-rail {--bv-n:1;--bv-cgap:24px;--bv-edge:16px;--bv-railw:min(100cqi,calc(460px + 2 * var(--bv-edge)));
  --bv-cardw:calc((var(--bv-railw) - 2 * var(--bv-edge) - (var(--bv-n) - 1) * var(--bv-cgap)) / var(--bv-n));
  position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:var(--bv-cardw);gap:var(--bv-cgap);box-sizing:border-box;width:var(--bv-railw);
  margin:0 auto;padding:16px var(--bv-edge) 8px;list-style:none;
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--bv-edge);scrollbar-width:none;}
@media (min-width:900px) {body.bv2 .bv-rail {--bv-n:3;--bv-railw:min(calc(100cqi - 64px),1200px);}}
body.bv2 .bv-rail::-webkit-scrollbar {display:none;}
body.bv2 .bv-rail:focus-visible {outline:3px solid var(--bv-acc);outline-offset:-3px;}
body.bv2 .bv-rail.is-dragging {scroll-snap-type:none;cursor:grabbing;user-select:none;}
body.bv2 .bv-card {position:relative;display:flex;flex-direction:column;min-width:0;padding:0;scroll-snap-align:start;}
body.bv2 .bv-rail.is-live .bv-card {transition:filter .35s cubic-bezier(.2,.7,.2,1),opacity .35s cubic-bezier(.2,.7,.2,1);}
body.bv2 .bv-rail.is-live .bv-card:not(.is-focus) {filter:blur(3px);opacity:.8;}
body.bv2 .bv-when {font:600 13px/1.2 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--bv-acc);}
body.bv2 .bv-card > .bv-when {margin-bottom:10px;}
body.bv2 .bv-shot {aspect-ratio:1;overflow:hidden;border-radius:18px;background:var(--bv-soft);
  box-shadow:0 1px 2px rgb(22 20 15 / .08),0 8px 20px rgb(22 20 15 / .1),0 24px 48px -16px rgb(22 20 15 / .22);}
html[data-theme=dark] body.bv2 .bv-shot {box-shadow:0 1px 2px rgb(0 0 0 / .3),0 12px 32px rgb(0 0 0 / .35);}
body.bv2 .bv-shot img {display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
body.bv2 .bv-tagrow {display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:14px;font:600 13px/1.3 var(--sans);}
body.bv2 .bv-tag {color:var(--bv-acc);}
/* Every picture is an example of what NexVerto builds: the label sits in its corner. */
body.bv2 .bv-shot, body.bv2 .bv-sheet-shot {position:relative;}
body.bv2 .bv-example {position:absolute;left:10px;top:10px;padding:5px 10px;border-radius:999px;background:rgb(14 12 8 / .64);color:#FFFFFF;
  font:600 12px/1.2 var(--sans);letter-spacing:.04em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;}
body.bv2 .bv-ctitle {margin-top:6px;font-size:22px;line-height:1.2;}
body.bv2 .bv-open {all:unset;cursor:pointer;font:inherit;color:inherit;}
body.bv2 .bv-open::after {content:"";position:absolute;inset:-6px;border-radius:22px;}
body.bv2 .bv-open:focus-visible::after {outline:3px solid var(--bv-acc);outline-offset:2px;}
body.bv2 .bv-cline {margin-top:6px;font-size:15px;line-height:1.45;color:var(--bv-muted);}
body.bv2 .bv-rail-ui {display:flex;align-items:center;gap:8px;margin-top:8px;}
body.bv2 .bv-count {margin-right:auto;font:600 14px/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--bv-muted);}
body.bv2 .bv-count b {color:var(--bv-fg);font-weight:700;}
body.bv2 .bv-arrow {display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid var(--bv-line);border-radius:50%;
  background:var(--bv-raised);color:var(--bv-fg);cursor:pointer;transition:background-color .15s,border-color .15s,opacity .15s;}
body.bv2 .bv-arrow svg {fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
body.bv2 .bv-arrow:disabled {opacity:.35;cursor:default;}
body.bv2 .bv-arrow:focus-visible {outline:3px solid var(--bv-acc);outline-offset:2px;}
@media (hover:hover) and (pointer:fine) {
  body.bv2 .bv-card:hover .bv-shot img {transform:scale(1.03);}
  body.bv2 .bv-arrow:not(:disabled):hover {border-color:var(--bv-fg);}
  body.bv2 .bv-rail {cursor:grab;}
}

/* S2b Everything in the box (Joe, 2026-10-16: "organized cleanly and available knowledge for them"; the entertainers page): every
   capability in five groups. Phones and tablets: one tile per group, a tap opens it in place (one at a time, all closed at load) and
   the tapped title stays where the finger is (biab-v2.js). Desktop: the five titles are tabs beside one panel; every panel shares
   the panel's cell, so switching never moves the page. Without the script every group is shown open.
   Motion 8. Group opens. A tap (nothing moves at load); its items; 8 px lower and transparent to in place, 280 ms ease-out, 40 ms
   apart; on phones the chevron turns in 250 ms; desktop tabs switch at once. Reduced: shown at once, no movement. */
body.bv2 .bv-kit-sec {padding-top:var(--bv-gap);}
body.bv2 .bv-kit {display:grid;gap:12px;margin-top:24px;overflow-anchor:none;}
body.bv2 .bv-kit-group {border:1px solid var(--bv-line);border-radius:18px;background:var(--bv-raised);}
@media (max-width:1023px) {body.bv2 .bv-kit.is-ready .bv-kit-group {transition:border-color .25s ease-out;}}
body.bv2 .bv-kit-group.is-open {border-color:color-mix(in srgb,var(--bv-acc) 55%,var(--bv-line));}
body.bv2 .bv-kit-h {font-size:inherit;}
body.bv2 .bv-kit-tab {all:unset;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:center;width:100%;min-height:76px;
  padding:16px 18px;border-radius:18px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
body.bv2 .bv-kit-title {grid-column:1;font:600 20px/1.2 var(--bv-display);letter-spacing:-.02em;color:var(--bv-fg);}
body.bv2 .bv-kit-sum {grid-column:1;margin-top:4px;font:500 15px/1.4 var(--sans);letter-spacing:0;color:var(--bv-muted);text-wrap:pretty;}
body.bv2 .bv-kit-chev {grid-column:2;grid-row:1 / span 2;width:20px;height:20px;fill:none;stroke:var(--bv-acc);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:1023px) {body.bv2 .bv-kit.is-ready .bv-kit-chev {transition:transform .25s cubic-bezier(.2,.7,.2,1);}}
body.bv2 .bv-kit-tab[aria-expanded=true] .bv-kit-chev {transform:rotate(180deg);}
body.bv2 .bv-kit-tab:focus-visible {outline:3px solid var(--bv-acc);outline-offset:-3px;}
body.bv2 .bv-kit-tab:active .bv-kit-title {opacity:.8;}
body.bv2 .bv-kit-list {margin:0;padding:0 18px 6px;list-style:none;}
body.bv2 .bv-kit-list li {padding:14px 0 16px;border-top:1px solid var(--bv-line);}
body.bv2 h4.bv-kit-name {font-size:17px;line-height:1.3;letter-spacing:-.012em!important;}
body.bv2 .bv-kit-list p {margin-top:4px;font-size:15px;line-height:1.5;color:var(--bv-muted);}
body.bv2 .bv-kit-soon {display:inline-block;margin-left:6px;padding:3px 9px;border-radius:999px;background:var(--bv-soft);color:var(--bv-acc);
  font:600 12px/1.3 var(--sans);letter-spacing:.02em;vertical-align:2px;white-space:nowrap;}
body.bv2 .bv-kit.is-live .bv-kit-panel:not(.is-open) {display:none;}
body.bv2 .bv-kit.is-live .bv-kit-panel.is-open.is-enter li {animation:bv-kit-in .28s cubic-bezier(.2,.7,.2,1) both;}
body.bv2 .bv-kit.is-live .bv-kit-panel.is-open.is-enter li:nth-child(2) {animation-delay:40ms;}
body.bv2 .bv-kit.is-live .bv-kit-panel.is-open.is-enter li:nth-child(3) {animation-delay:80ms;}
body.bv2 .bv-kit.is-live .bv-kit-panel.is-open.is-enter li:nth-child(4) {animation-delay:120ms;}
body.bv2 .bv-kit.is-live .bv-kit-panel.is-open.is-enter li:nth-child(5) {animation-delay:160ms;}
body.bv2 .bv-kit.is-live .bv-kit-panel.is-open.is-enter li:nth-child(6) {animation-delay:200ms;}
@keyframes bv-kit-in {from {opacity:0;transform:translateY(8px);} to {opacity:1;transform:none;}}
@media (hover:hover) and (pointer:fine) {body.bv2 .bv-kit-tab:hover .bv-kit-title {color:var(--bv-acc);}}
@media (min-width:1024px) {
  body.bv2 .bv-kit {margin-top:48px;}
  body.bv2 .bv-kit-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 40px;padding:0 24px 16px;}
  body.bv2 .bv-kit-list li {padding:20px 0 18px;}
  body.bv2 .bv-kit.is-live .bv-kit-list li:nth-child(-n+2) {border-top:0;}
  body.bv2 h4.bv-kit-name {font-size:20px;}
  body.bv2 .bv-kit-list p {font-size:16px;}
  body.bv2 .bv-kit.is-live {grid-template-columns:minmax(0,380px) minmax(0,1fr);grid-template-rows:repeat(5,auto) 1fr;gap:8px 40px;align-items:start;}
  body.bv2 .bv-kit.is-live .bv-kit-group {display:contents;}
  body.bv2 .bv-kit.is-live .bv-kit-h {grid-column:1;}
  body.bv2 .bv-kit-tab {border:1px solid transparent;}
  body.bv2 .bv-kit.is-live .bv-kit-tab {min-height:88px;padding:18px 22px;border-radius:16px;}
  body.bv2 .bv-kit.is-live .bv-kit-tab:hover {background:var(--bv-soft);}
  body.bv2 .bv-kit.is-live .bv-kit-tab[aria-expanded=true] {background:var(--bv-raised);border-color:var(--bv-line);box-shadow:inset 3px 0 0 var(--bv-acc);}
  body.bv2 .bv-kit.is-live .bv-kit-chev {opacity:0;transform:rotate(-90deg);}
  body.bv2 .bv-kit.is-live .bv-kit-tab:hover .bv-kit-chev {opacity:.5;}
  body.bv2 .bv-kit.is-live .bv-kit-tab[aria-expanded=true] .bv-kit-chev {opacity:1;transform:rotate(-90deg);}
  body.bv2 .bv-kit.is-live .bv-kit-panel {grid-column:2;grid-row:1 / -1;align-self:stretch;padding:16px 16px 8px;border:1px solid var(--bv-line);border-radius:24px;
    background:var(--bv-raised);box-shadow:0 1px 2px rgb(22 20 15 / .06),0 24px 48px -28px rgb(22 20 15 / .3);}
  body.bv2 .bv-kit.is-live .bv-kit-panel:not(.is-open) {display:block;visibility:hidden;}
}
@media (prefers-reduced-motion:reduce) {
  body.bv2 .bv-kit.is-live .bv-kit-panel.is-open.is-enter li {animation:none;}
  body.bv2 .bv-kit.is-ready .bv-kit-chev, body.bv2 .bv-kit.is-ready .bv-kit-tab, body.bv2 .bv-kit.is-ready .bv-kit-group {transition:none;}
}

/* The sheet: a bottom sheet on phones and tablets, a dialog on desktop. */
body.bv2 .bv-sheet {box-sizing:border-box;width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;padding:0;border:0;border-radius:20px 20px 0 0;
  background:var(--bv-bg);color:var(--bv-fg);overflow:auto;overscroll-behavior:contain;}
body.bv2 .bv-sheet[open] {animation:bv-sheet-up .3s cubic-bezier(.2,.7,.2,1);}
body.bv2 .bv-sheet::backdrop {background:rgb(12 10 7 / .58);}
body.bv2 .bv-sheet-in {position:relative;padding:12px 16px calc(32px + env(safe-area-inset-bottom));}
body.bv2 .bv-grip {display:block;width:40px;height:5px;margin:0 auto 12px;border-radius:3px;background:var(--bv-line);}
body.bv2 .bv-close-form {position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;height:0;}
body.bv2 .bv-close {display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:4px;padding:0;border:0;border-radius:50%;
  background:rgb(22 20 15 / .62);color:#FFFFFF;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
body.bv2 .bv-close svg {fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;}
body.bv2 .bv-close:focus-visible {outline:3px solid var(--bv-acc);outline-offset:2px;}
body.bv2 .bv-sheet-shot {overflow:hidden;border-radius:16px;background:var(--bv-soft);aspect-ratio:1;}
body.bv2 .bv-sheet-shot img {display:block;width:100%;height:100%;object-fit:cover;}
body.bv2 .bv-sheet-text {padding-top:20px;}
body.bv2 .bv-sheet-text h3 {margin-top:8px;font-size:28px;line-height:1.15;}
body.bv2 .bv-sheet-text .bv-tagrow {margin-top:10px;}
body.bv2 .bv-sheet-text .bv-cline {margin-top:8px;font-size:17px;}
body.bv2 .bv-sheet-text > p:not([class]) {margin-top:12px;font-size:17px;line-height:1.5;}
body.bv2 .bv-recipe {margin-top:20px;padding:20px;border-radius:16px;background:var(--bv-raised);border:1px solid var(--bv-line);}
body.bv2 .bv-recipe-title {font-size:24px;line-height:1.15;}
body.bv2 .bv-recipe-meta {margin-top:8px;font:500 14px/1.45 var(--sans);color:var(--bv-muted);}
body.bv2 .bv-recipe-ingredients, body.bv2 .bv-recipe-steps {margin:16px 0 0;padding:16px 0 0;list-style:none;border-top:1px solid var(--bv-line);}
body.bv2 .bv-recipe li {margin-top:8px;font-size:16px;line-height:1.5;}
body.bv2 .bv-recipe li:first-child {margin-top:0;}
body.bv2 .bv-recipe-footer {margin-top:16px;padding-top:12px;border-top:1px solid var(--bv-line);font:600 14px/1.3 var(--sans);color:var(--bv-muted);text-align:center;}
@keyframes bv-sheet-up {from {transform:translateY(32px);opacity:.4;} to {transform:none;opacity:1;}}
@keyframes bv-sheet-in {from {transform:scale(.98);opacity:0;} to {transform:none;opacity:1;}}

/* S3 The stakes: the close-up with the story on its soft top. */
body.bv2 .bv-stakes {position:relative;isolation:isolate;margin-top:var(--bv-gap)!important;color:#FFFFFF;}
body.bv2 .bv-stakes-media {position:relative;z-index:-2;display:block;aspect-ratio:4/5;overflow:hidden;}
body.bv2 .bv-stakes-media img {display:block;width:100%;height:100%;object-fit:cover;object-position:50% 62%;}
body.bv2 .bv-stakes::before {content:"";position:absolute;inset:0 0 auto;height:72%;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgb(14 12 8 / .8) 0%,rgb(14 12 8 / .62) 46%,rgb(14 12 8 / 0) 100%);}
body.bv2 .bv-stakes-copy {position:absolute;inset:0 0 auto;width:calc(100% - 32px);margin-inline:auto;padding-top:40px;}
body.bv2 .bv-story {max-width:34ch;font-size:18px;line-height:1.5;color:rgb(255 255 255 / .95);text-shadow:0 1px 12px rgb(0 0 0 / .32);}
body.bv2 .bv-q {margin-top:20px;max-width:16ch;font-size:clamp(30px,8.4vw,40px);line-height:1.08;color:#FFFFFF;text-shadow:0 1px 18px rgb(0 0 0 / .3);}
body.bv2 .bv-q::before {content:"";display:block;width:40px;height:3px;margin-bottom:16px;border-radius:2px;background:var(--bv-tomato);}
body.bv2 .bv-stakes-plain {color:var(--bv-fg);}
body.bv2 .bv-stakes-plain::before {display:none;}
body.bv2 .bv-stakes-plain .bv-stakes-copy {position:static;width:min(1200px,calc(100% - 32px));padding-block:8px;}
body.bv2 .bv-stakes-plain .bv-story, body.bv2 .bv-stakes-plain .bv-q {color:var(--bv-fg);text-shadow:none;}

/* S4 How it starts: three steps on a thin accent line. */
body.bv2 .bv-steps {padding-top:var(--bv-gap);}
body.bv2 .bv-steps h2 {font-size:clamp(30px,8vw,48px);line-height:1.08;}
body.bv2 .bv-step-list {position:relative;margin:24px 0 0;padding:0 0 0 40px;list-style:none;counter-reset:bv-step;}
body.bv2 .bv-step-list::before {content:"";position:absolute;left:13px;top:14px;bottom:14px;width:2px;border-radius:1px;background:var(--bv-acc);opacity:.5;transform-origin:top;}
body.bv2 .bv-steps.is-ready .bv-step-list::before {transform:scaleY(0);transition:transform .9s cubic-bezier(.2,.7,.2,1);}
body.bv2 .bv-steps.is-in .bv-step-list::before {transform:none;}
body.bv2 .bv-step-list li {position:relative;counter-increment:bv-step;padding-bottom:24px;}
body.bv2 .bv-step-list li:last-child {padding-bottom:0;}
body.bv2 .bv-step-list li::before {content:counter(bv-step);position:absolute;left:-40px;top:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--bv-acc);color:var(--bv-on-acc);font:700 14px/1 var(--sans);}
body.bv2 .bv-step-list h3 {font-size:21px;line-height:1.25;}
body.bv2 .bv-step-list p {margin-top:4px;font-size:17px;line-height:1.5;color:var(--bv-muted);}

/* S5 The form: the live request form. */
body.bv2 .bv-form {padding:var(--bv-gap) 0 calc(var(--bv-gap) + 24px);}
body.bv2 .bv-form h2 {font-size:clamp(28px,7.6vw,44px);line-height:1.1;}
body.bv2 .bv-form .signup-panel {margin-top:24px;}
body.bv2 .bv-form #lead-submit {width:100%;min-height:56px;font-size:17px;}

/* The sticky bar (phones and tablets): the one button between the hero's button and the form. */
body.bv2 .bv-bar {display:none;}
@media (max-width:1023px) {
  html.bv-ready body.bv2 .bv-bar {display:block;position:fixed;z-index:45;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:var(--bv-bg);border-top:1px solid var(--bv-line);box-shadow:0 -10px 28px rgb(0 0 0 / .14);transform:translateY(110%);visibility:hidden;
    transition:transform .22s cubic-bezier(.2,.7,.2,1),visibility 0s linear .22s;}
  html.bv-ready body.bv2 .bv-bar.is-shown {transform:none;visibility:visible;transition:transform .22s cubic-bezier(.2,.7,.2,1),visibility 0s;}
  html.bv-ready body.bv2 .bv-bar .btn {display:flex;width:100%;min-height:52px;font-size:17px;}
  html.bv-ready body.bv2 footer {padding-bottom:88px;}
}

/* Tablet: the hero and the stakes widen; the slider sizes itself in S2. */
@media (min-width:600px) {
  body.bv2 {--bv-gutter:24px;}
  body.bv2 .bv-hero-copy {width:calc(100% - 48px);max-width:620px;margin-inline:24px auto;padding-top:48px;}
  body.bv2 .bv-cta {display:inline-flex;width:auto;padding-inline:32px;}
  body.bv2 .bv-layer-card {right:auto;left:24px;width:400px;}
  body.bv2 .bv-obj-a {left:auto;right:30%;width:40%;}
  body.bv2 .bv-obj-b {right:2%;width:30%;}
  body.bv2 .bv-chips-row {padding-inline:24px;}
  body.bv2 .bv-stakes-copy {width:calc(100% - 48px);padding-top:56px;}
  body.bv2 .bv-form-in {display:grid;grid-template-columns:minmax(0,1fr);max-width:640px;}
}

/* Desktop: the hero splits, the slider widens with arrows, the stakes and steps sit side by side, the form beside its heading. */
@media (min-width:1024px) {
  body.bv2 {--bv-gap:120px;--bv-top:84px;}
  body.bv2 .bv-hero {display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);align-items:center;gap:56px;width:min(1320px,calc(100% - 64px));
    min-height:0;margin:0 auto;padding:48px 0 64px;overflow:visible;color:var(--bv-fg);}
  body.bv2 .bv-hero-layers {min-height:0;}
  body.bv2 .bv-stage {position:relative;inset:auto;z-index:0;grid-column:2;grid-row:1;aspect-ratio:3/2;overflow:visible;}
  body.bv2 .bv-layer-plate, body.bv2 .bv-layer-env {inset:0;overflow:hidden;border-radius:24px;clip-path:inset(0 round 24px);}
  body.bv2 .bv-layer-plate {box-shadow:0 2px 4px rgb(22 20 15 / .08),0 32px 64px -24px rgb(22 20 15 / .35);}
  body.bv2 .bv-layer-env {background:radial-gradient(90% 70% at 0% 20%,rgb(255 214 150 / .2),rgb(255 214 150 / 0) 60%),linear-gradient(180deg,rgb(14 12 8 / 0) 60%,rgb(14 12 8 / .22) 100%);}
  body.bv2 .bv-obj-a {left:auto;right:-7%;bottom:-12%;width:44%;}
  body.bv2 .bv-obj-b {left:auto;right:33%;bottom:-8%;width:28%;}
  body.bv2 .bv-layer-card {inset:auto auto 10% -6%;width:360px;}
  body.bv2 .bv-hero-copy {grid-column:1;grid-row:1;width:auto;max-width:none;margin:0;padding:0;}
  body.bv2 .bv-label {color:var(--bv-acc);}
  body.bv2 .bv-hero h1 {font-size:clamp(56px,5.3vw,76px);line-height:1;color:var(--bv-fg);text-shadow:none;}
  body.bv2 .bv-line {margin-top:24px;font-size:19px;color:var(--bv-muted);text-shadow:none;}
  body.bv2 .bv-cta {margin-top:32px;}
  body.bv2 .bv-ghead {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:48px;}
  body.bv2 .bv-ghead .bv-lede {grid-column:2;grid-row:1 / span 2;align-self:end;max-width:30ch;margin:0;}
  body.bv2 .bv-ghead h2 {font-size:64px;}
  body.bv2 .bv-chips {position:static;margin-top:32px;background:none;box-shadow:none;}
  body.bv2 .bv-chips-row {width:min(1200px,calc(100% - 64px));margin-inline:auto;padding:0;flex-wrap:wrap;}
  body.bv2 .bv-rail {padding-top:32px;}
  body.bv2 .bv-rail-ui {margin-top:16px;}
  body.bv2 .bv-sheet {width:min(980px,calc(100% - 64px));max-height:min(88dvh,780px);margin:auto;border-radius:24px;overflow:hidden;}
  body.bv2 .bv-sheet[open] {animation-name:bv-sheet-in;}
  body.bv2 .bv-sheet-in {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;height:100%;max-height:inherit;padding:32px;box-sizing:border-box;}
  body.bv2 .bv-grip {display:none;}
  body.bv2 .bv-close-form {position:absolute;top:16px;right:16px;height:auto;}
  body.bv2 .bv-close {margin:0;}
  body.bv2 .bv-sheet-shot {align-self:start;}
  body.bv2 .bv-sheet-text {padding:8px 32px 0 0;overflow:auto;max-height:calc(min(88dvh,780px) - 64px);}
  body.bv2 .bv-stakes {display:grid;grid-template-columns:minmax(0,45fr) minmax(0,55fr);align-items:center;gap:72px;width:min(1200px,calc(100% - 64px));margin-inline:auto;color:var(--bv-fg);}
  body.bv2 .bv-stakes::before {display:none;}
  body.bv2 .bv-stakes-media {z-index:0;border-radius:24px;aspect-ratio:3/2;}
  body.bv2 .bv-stakes-copy {position:static;width:auto;padding:0;}
  body.bv2 .bv-story {font-size:22px;color:var(--bv-muted);text-shadow:none;max-width:30ch;}
  body.bv2 .bv-q {font-size:56px;color:var(--bv-fg);text-shadow:none;max-width:14ch;}
  body.bv2 .bv-stakes-plain {display:block;}
  body.bv2 .bv-steps h2 {font-size:56px;}
  body.bv2 .bv-step-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-top:48px;padding:48px 0 0;}
  body.bv2 .bv-step-list::before {left:14px;right:14px;top:13px;bottom:auto;width:auto;height:2px;transform-origin:left;}
  body.bv2 .bv-steps.is-ready .bv-step-list::before {transform:scaleX(0);}
  body.bv2 .bv-steps.is-in .bv-step-list::before {transform:none;}
  body.bv2 .bv-step-list li {padding:0;}
  body.bv2 .bv-step-list li::before {left:0;top:-48px;}
  body.bv2 .bv-step-list h3 {font-size:26px;}
  body.bv2 .bv-form-in {display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:80px;align-items:start;max-width:none;}
  body.bv2 .bv-form h2 {font-size:52px;max-width:12ch;}
  body.bv2 .bv-form .signup-panel {margin-top:0;}
}

@media (prefers-reduced-motion:reduce) {
  body.bv2 .bv-layer-plate img, body.bv2 .bv-call, body.bv2 .bv-sheet[open] {animation:none;}
  body.bv2 .bv-layer {transform:none!important;will-change:auto;}
  body.bv2 .bv-shot img {transition:none;}
  body.bv2 .bv-card:hover .bv-shot img {transform:none;}
  body.bv2 .bv-steps.is-ready .bv-step-list::before {transform:none;transition:none;}
  body.bv2 .bv-rail.is-live .bv-card {transition:none;}
  body.bv2 .bv-rail.is-live .bv-card:not(.is-focus) {filter:none;opacity:.45;}
  html.bv-ready body.bv2 .bv-bar, html.bv-ready body.bv2 .bv-bar.is-shown {transition:none;}
}

/* The hub: a text hero, then one large photo door per trade (a swipe row on phones, three across on desktop). */
body.bv2 .bv-hero-plain {min-height:0;color:var(--bv-fg);padding-bottom:8px;}
body.bv2 .bv-hero-plain::before {display:none;}
body.bv2 .bv-hero-plain .bv-label {color:var(--bv-acc);}
body.bv2 .bv-hero-plain h1 {color:var(--bv-fg);text-shadow:none;}
body.bv2 .bv-hero-plain .bv-line {color:var(--bv-muted);text-shadow:none;}
body.bv2 .bv-doors {padding-top:40px;}
body.bv2 .bv-doors h2 {font-size:clamp(26px,7vw,40px);line-height:1.1;}
/* The industry doors (Joe, 2026-10-15: no picture cut off at the screen's edge): one whole door per row on phones and tablets,
   three across on desktop. */
body.bv2 .bv-door-row {display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:min(560px,calc(100% - 32px));margin:0 auto;padding:20px 0 8px;list-style:none;}
body.bv2 .bv-door {min-width:0;}
body.bv2 .bv-door a {position:relative;isolation:isolate;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:20px;--link-ink:#FFFFFF;
  box-shadow:0 1px 2px rgb(22 20 15 / .1),0 16px 40px -12px rgb(22 20 15 / .35);}
body.bv2 .bv-door img {position:absolute;inset:-16px;z-index:-2;width:calc(100% + 32px);height:calc(100% + 32px);max-width:none;object-fit:cover;
  will-change:translate;transition:scale .6s cubic-bezier(.2,.7,.2,1);}
body.bv2 .bv-door a::before {content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(14 12 8 / 0) 38%,rgb(14 12 8 / .55) 62%,rgb(14 12 8 / .86) 100%);}
body.bv2 .bv-door-text {position:absolute;left:20px;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;}
body.bv2 .bv-door-trade {font:600 13px/1.3 var(--sans);letter-spacing:.09em;text-transform:uppercase;opacity:.9;}
body.bv2 .bv-door-title {font:600 30px/1.08 var(--bv-display);letter-spacing:-.026em;}
body.bv2 .bv-door-cue {display:inline-flex;align-self:flex-start;align-items:center;min-height:44px;margin-top:4px;padding:0 18px;border-radius:10px;background:#FFFFFF;
  font:600 15px/1 var(--sans);--link-ink:#16140F;}
body.bv2 .bv-door-cue {color:#16140F;}
body.bv2 .bv-door-cue {gap:.3em;}
body.bv2 .bv-door-cue .wordmark {color:#0B1220!important;}
body.bv2 .bv-door-cue .wordmark b {color:#104fb6!important;}
body.bv2 .bv-door a:focus-visible {outline:3px solid var(--bv-acc)!important;outline-offset:3px;}

/* A stakes section without a photograph: the story and the question on a quiet band. */
body.bv2 .bv-stakes-plain {width:min(1200px,calc(100% - 32px));margin-inline:auto;padding:40px 24px;border-radius:24px;background:var(--bv-raised);border:1px solid var(--bv-line);}
body.bv2 .bv-stakes-plain .bv-stakes-copy {width:auto;padding:0;}
body.bv2 .bv-stakes-plain .bv-story {color:var(--bv-muted);}

@media (min-width:1024px) {
  body.bv2 .bv-hero-plain {display:block;padding:72px 0 16px;width:min(1200px,calc(100% - 64px));}
  body.bv2 .bv-hero-plain .bv-hero-copy {max-width:880px;}
  body.bv2 .bv-hero-plain .bv-line {max-width:44ch;}
  body.bv2 .bv-doors {padding-top:56px;}
  body.bv2 .bv-doors h2 {font-size:40px;}
  body.bv2 .bv-door-row {grid-template-columns:repeat(3,minmax(0,1fr));width:min(1200px,calc(100% - 64px));margin-inline:auto;padding:28px 0 0;gap:24px;}
  body.bv2 .bv-door a {aspect-ratio:2/3;}
  body.bv2 .bv-door-title {font-size:34px;}
  body.bv2 .bv-stakes-plain {display:block;width:min(1200px,calc(100% - 64px));padding:72px 80px;}
  body.bv2 .bv-stakes-plain .bv-q {max-width:20ch;}
}
@media (hover:hover) and (pointer:fine) {
  body.bv2 .bv-door a:hover img {scale:1.03;}
}
@media (prefers-reduced-motion:reduce) {
  body.bv2 .bv-door img {transition:none;translate:none!important;}
  body.bv2 .bv-door a:hover img {scale:none;}
}

/* Primary buttons are lit from premium.css (--btn-lit). The white door pill gets the same four layers in neutral tones. */
body.bv2 .bv-door-cue {box-shadow:inset 0 1px 0 rgb(255 255 255 / .9),inset 0 -2px 0 rgb(22 20 15 / .1),
  0 10px 24px -10px rgb(0 0 0 / .55),0 1px 2px rgb(0 0 0 / .35);}

/* Affiliate code note (website/codes.py): only a visit that came in through an affiliate's link sees it, under the hero
   button. Over the photo it is a dark pill so it reads on any plate; beside the photo (desktop) it is a plain accent link. */
body.bv2 .bv-code {margin-top:16px;font-size:15px;line-height:1.45;}
body.bv2 .bv-code a {display:inline-flex;align-items:center;min-height:32px;padding:6px 14px;border-radius:999px;background:rgb(14 12 8 / .55);font-weight:500;--link-ink:#FFFFFF;}
@media (min-width:1024px) {body.bv2 .bv-code a {min-height:24px;padding:0;border-radius:0;background:none;--link-ink:var(--bv-acc);}}

/* Ad landing page: one clear promise, then the process. Trade pages keep their layouts. */
body.bv2-hub .bv-hero-plain {width:min(1200px,calc(100% - 32px));margin-inline:auto;padding:40px 0 32px;}
body.bv2-hub .bv-hero-copy {width:100%;max-width:800px;margin:0;padding:0;}
body.bv2-hub .bv-hero h1 {margin:0;font-size:clamp(40px,7vw,72px);line-height:1.05;}
body.bv2-hub .bv-line {max-width:48ch;font-size:clamp(20px,2.1vw,26px);line-height:1.45;}
body.bv2-hub .bv-detail {max-width:56ch;margin-top:16px;font-size:17px;line-height:1.5;color:var(--bv-muted);}
body.bv2-hub .bv-steps {padding-top:24px;}
body.bv2-hub .bv-steps > .bv-in {padding-top:32px;border-top:1px solid var(--bv-line);}
body.bv2-hub .bv-steps h2 {font-size:clamp(28px,4vw,40px);}
body.bv2-hub .bv-step-list {padding-left:20px;}
body.bv2-hub .bv-step-list::before {left:0;}
body.bv2-hub .bv-step-list li::before {content:none;}
body.bv2-hub .bv-doors {padding-top:56px;}
body.bv2-hub .bv-kit-sec {padding-top:56px;}
body.bv2-hub .bv-ghead h2 {margin-top:0;font-size:clamp(28px,4vw,40px);line-height:1.1;}
@media (min-width:1024px) {
  body.bv2-hub .bv-hero-plain {width:min(1200px,calc(100% - 64px));padding:64px 0 40px;}
  body.bv2-hub .bv-steps > .bv-in {padding-top:40px;}
  body.bv2-hub .bv-step-list {margin-top:28px;padding:0;gap:40px;}
  body.bv2-hub .bv-step-list::before {content:none;}
  body.bv2-hub .bv-doors {padding-top:80px;}
  body.bv2-hub .bv-kit-sec {padding-top:80px;}
}
