/* ════════════════════════════════════════════════════════════════════════
   css/firm-pages-booking.css — THE BOOKING BAND ON THE FIRM PAGES
   service.tnaado.ca · linked ONLY from /firm, /office and /team, and loaded
   immediately after css/booking-band.css on those three pages.

   WHY THIS FILE EXISTS AT ALL. css/booking-band.css is shared with the nine
   selling pages, so it is read and never written. Two things about the firm
   pages differ from a selling page, and both are fixed here rather than
   there. Everything is scoped to `.bkx.fp-bk` — the marker class this file
   adds to the band on these three pages and nowhere else — so no selector
   here can reach a band on any other page.

   ── 1. NO SCROLL-DRIVEN MOTION. THE REASON, NOT A PREFERENCE ────────────
   css/firm-pages.css records "Ethan: no scroll animations, not what I asked
   for", and css/firm-pages-motion.css restates the line every transition on
   these pages has to pass: the READER starts it — a click, a keypress, a
   hover, a focus. js/booking.js adds `is-on` from an IntersectionObserver,
   which is the one mechanism that line forbids, and js/booking.js is engine
   and is not edited.

   So the class still lands and does nothing. That is safe because of how
   css/booking-band.css was authored: bkx-lift, bkx-throw and bkx-swell are
   `from`-only keyframes, and the finished state IS the state declared on the
   elements. Dropping the animations leaves the whole band — kicker, heading,
   offer, panel, fields, fallback — painted at first meaningful paint, which
   is what the same file's own prefers-reduced-motion block relies on
   (booking-band.css l.1259). This is that rule, applied on the ground that
   the page forbids the trigger rather than that the reader asked for less
   movement.

   `animation` ONLY. The transitions on .bkx__slot, .bkx__field input,
   .bkx__go and .bkx__alt, and the calendar's click-driven unfold, are all
   reader-started and all stay. Killing them would take the hover and focus
   feedback off a form, which is the opposite of the instruction.

   `!important` is deliberate and is the same lever booking-band.css pulls in
   its own reduced-motion block. A plain override would work only while this
   file is loaded after that one, and a head reordered by a later hand must
   not silently switch scroll animation back on.

   ── 2. THREE TYPE TOKENS THE FIRM PAGES DO NOT DEFINE ───────────────────
   booking-band.css asks for --font-display, --font-body and --font-mono with
   NO fallback. site.css defines all three, and the firm pages do not load
   site.css — they load firm-pages.css, which names the same three families
   --serif, --sans and --mono. An unresolved var() in a font-family makes the
   whole declaration invalid at computed-value time, so the band's Fraunces
   headline and its JetBrains Mono kickers would both have quietly inherited
   IBM Plex Sans from body. Aliased here, on .bkx, rather than adding a
   second global name for a family the site already has one name for.
   ════════════════════════════════════════════════════════════════════════ */

.bkx.fp-bk {
  --font-display: var(--serif);
  --font-body:    var(--sans);
  --font-mono:    var(--mono);

  /* The band's own column is 1180px; every other section on these three
     pages is --rail, 1136px, which firm-pages.css took to the pixel from
     css/work.css so the column never jumps between the portfolios and the
     firm. The band is the last thing on the page and must not be the one
     section that steps out 22px on each side. */
  --bkx-rail: var(--rail, 1180px);
}

.bkx.fp-bk.is-on,
.bkx.fp-bk.is-on * {
  animation: none !important;
}
