/**
 * Built to Run sales route (/built-to-run/).
 *
 * Loaded ONLY on this route, and only ever after bundle.css, because the
 * template declares aiimn-styles as this handle's dependency. That ordering is
 * what lets the whole file work without a single !important.
 *
 * NAMESPACE CONTRACT
 * Every selector here is inside .aiimn-btr-*. The deployed bundle carries the
 * frozen .aiimn-mc-* rule set and cannot be regenerated by this task, so this
 * route claims its own namespace instead of trying to out-specify roughly
 * 1,300 lines it cannot see change.
 *
 * SHARED SURFACES TOUCHED BY THIS ROUTE: six rules covering the eight selectors
 * below, every one of them scoped under body.aiimn-btr-body, a class no other
 * template registers. (Candidate revision 2's file header claimed one; it was
 * wrong, and a maintainer reading it would not have looked for the rest.)
 *   1. .aiimn-mc-footer          bottom padding, reserves the sticky bar height
 *   2. .aiimn-mc-header          deep-navy ground
 *   3. .aiimn-mc-wordmark b      white wordmark on that ground
 *   4. .aiimn-mc-wordmark b i    orange N
 *   5. .aiimn-mc-wordmark span   descriptor at 62% white
 *   6. .aiimn-mc-header .container    measure aligned to the shared container
 *   7. .aiimn-mc-footer .container    the same
 *   8. .aiimn-consent-band .container the same, so the three chrome surfaces
 *      and the body bands all share one measure (the prototype's own decision)
 * That is the whole list. No focus override: this route inherits the bundle's
 * single documented focus indicator, see FOCUS below. No .skip-link rule, no
 * footer-navigation rule, and no change to any id, role, data attribute or
 * behaviour on any shared surface.
 *
 * FOCUS
 * bundle.css:7970 states the contract for this body class: one focus indicator
 * for the whole route, a white outline plus a deep-navy box-shadow band, and
 * "there are no per-element focus overrides on this route; adding one is a
 * regression." Candidate revision 2 carried four outline-only overrides, which
 * left the bundle's box-shadow in place and painted a second ring. They are
 * removed. If a control on this route ever needs a different indicator, change
 * the bundle's rule, not this file.
 *
 * WHY EVERY SELECTOR REPEATS ITS FIRST CLASS
 * The campaign body carries the class .aiimn-mc (header-campaign.php ->
 * body_class('aiimn-mc')), and the frozen bundle styles this markup through
 * descendant rules on that body class: .aiimn-mc h1, .aiimn-mc h2,
 * .aiimn-mc h3 and .aiimn-mc a. Those are specificity (0,1,1) and they beat a
 * plain single-class rule (0,1,0). Repeating the leading class lifts every rule
 * here to (0,2,x), which clears the highest bundle rule that can reach this
 * markup, without a single !important. It is a specificity floor, not
 * decoration: if you add a rule, repeat its first class the same way.
 *
 * TOKENS
 * Every colour is a literal from config/brand.json. The custom properties below
 * are local aliases so the file reads like the brand record, not so that a new
 * palette can be introduced here.
 *
 * @package AIIMN
 * @since 2.3.0
 */

:root {
  /* brand.json primary + support */
  --btr-navy: #163f68;
  --btr-deep: #06192b;
  --btr-orange: #ff7357;
  --btr-orange-dark: #e85f45;
  --btr-sky: #edf4fa;
  --btr-white: #ffffff;
  --btr-ink: #102033;
  --btr-muted: #607086;
  /* brand.json extended */
  /*
   * The two alpha values below are the registered navy #163f68 (brand.json
   * primary) at 16% and 28%. They are opacities of a brand hue, not new
   * colours; no hex here is absent from brand.json.
   */
  --btr-border: rgba(22, 63, 104, .16);
  --btr-border-strong: rgba(22, 63, 104, .28);
  --btr-shadow: 0 24px 70px rgba(6, 25, 43, .14);
  --btr-navy-800: #0a2440;
  --btr-navy-700: #0f3156;
  --btr-coral-lighter: #ffb8a8;
  --btr-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Courier New", monospace;

  /*
   * Published by assets/js/built-to-run.js from the sticky bar's real measured
   * height, and reset to 0 the moment the bar is not shown. Declared here so
   * the calc rules below have a value before the first measurement.
   */
  --btr-sticky-h: 0px;
}

/*
 * WCAG 2.2 SC 2.4.11 (focus not obscured). A control reached by keyboard or by
 * a fragment jump must not land underneath the fixed bar. Restated here rather
 * than relied on from a stylesheet this task cannot regenerate.
 */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 1rem;
  scroll-padding-bottom: calc(var(--btr-sticky-h) + 1rem);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/*
 * The bar's measured height is reserved at the end of the document so the fixed
 * layer can never cover the campaign footer. The footer is the last painted
 * surface on the route, so the reservation is added to its own bottom padding
 * (bundle value: padding-block 2.5rem) rather than to the body, which would
 * expose a strip of body background under a navy footer. Scoped under this
 * route's body class, so no other page that uses the campaign footer is
 * touched.
 */
body.aiimn-btr-body.aiimn-btr-body .aiimn-mc-footer {
  padding-bottom: calc(2.5rem + var(--btr-sticky-h));
}

/* ------------------------------------------------------------------ */
/* Campaign header, this route only                                    */
/*                                                                      */
/* The shared campaign header ships white with a hairline bottom border */
/* (bundle: .aiimn-mc-header). On this route it sits directly on a deep */
/* navy hero, and the approved prototype carries the header as part of  */
/* that dark unit, so the white bar reads as a seam the design does not  */
/* have. These four rules recolour it and nothing else: geometry,        */
/* markup, ids and the shared header template are untouched. A fifth     */
/* rule below aligns the chrome's measure with the body bands.           */
/*                                                                      */
/* SCOPE. Every rule is prefixed with body.aiimn-btr-body, a class added */
/* by a body_class filter registered INSIDE page-built-to-run.php. No    */
/* other template registers it, so these rules cannot reach the          */
/* masterclass route, the confirmation route, or any other page that     */
/* uses the campaign chrome. (Note: WordPress emits page-template-*      */
/* classes only for templates declared with a Template Name header;      */
/* a slug-selected template like this one gets page-template-default,    */
/* which is shared, so the route's own class is the correct handle.)     */
/*                                                                      */
/* The border is kept as a transparent 1px rather than removed, so the   */
/* header box measures exactly as it does elsewhere.                     */
/* ------------------------------------------------------------------ */
body.aiimn-btr-body.aiimn-btr-body .aiimn-mc-header {
  background: var(--btr-deep);
  border-bottom-color: transparent;
}

body.aiimn-btr-body.aiimn-btr-body .aiimn-mc-header .aiimn-mc-wordmark b {
  color: var(--btr-white);
}

body.aiimn-btr-body.aiimn-btr-body .aiimn-mc-header .aiimn-mc-wordmark b i {
  color: var(--btr-orange);
}

body.aiimn-btr-body.aiimn-btr-body .aiimn-mc-header .aiimn-mc-wordmark span {
  color: rgba(255, 255, 255, .62);
}

/*
 * The shared chrome sizes its .container at 1160px with a clamped inline
 * padding (bundle.css:7989 and its 768px media rule), while every band on this
 * route measures --aiimn-container with a flat 24px padding, so the wordmark, the consent
 * sentence and the footer row all sat about 24px off the content beneath them.
 * The approved prototype uses ONE measure for chrome and bands alike, so the
 * chrome is brought to the route's measure rather than the bands widened.
 *
 * The consent band is included deliberately: leaving it out would simply move
 * the seam from header-versus-band to consent-versus-header. This changes its
 * measure and nothing else. Every id, role, data attribute, tabindex and the
 * noscript block that the shared consent runtime binds to are untouched, which
 * is the part of that template that is contractual.
 */
body.aiimn-btr-body.aiimn-btr-body .aiimn-mc-header .container,
body.aiimn-btr-body.aiimn-btr-body .aiimn-mc-footer .container,
body.aiimn-btr-body.aiimn-btr-body .aiimn-consent-band .container {
  max-width: var(--aiimn-container);
  padding-inline: 24px;
}

/* ------------------------------------------------------------------ */
/* Scoped reset                                                        */
/* Only the elements this route renders. bundle.css gives every <p> a   */
/* bottom margin and every heading a token font size; the components    */
/* below own their own rhythm, so it is cleared once here.              */
/*                                                                      */
/* :where() is load-bearing: written as ".aiimn-btr-main h1" this reset  */
/* would be (0,2,1) and would silently beat every component rule at      */
/* (0,2,0). :where() contributes nothing, so the reset lands at (0,2,0), */
/* still above the bundle's .aiimn-mc h1 (0,1,1), while any component    */
/* rule later in this file wins on source order.                        */
/* ------------------------------------------------------------------ */
.aiimn-btr-main.aiimn-btr-main :where(h1, h2, h3, h4, p, ul, ol, li, figure, dl, dd, dt),
.aiimn-btr-sticky.aiimn-btr-sticky :where(p) {
  margin: 0;
  padding: 0;
}

.aiimn-btr-main.aiimn-btr-main :where(ul, ol) {
  list-style: none;
}

/*
 * overflow-wrap is inherited, so declaring it once on the two route surfaces
 * gives every descendant the same last-resort behaviour. "anywhere", not
 * "break-word", matching the bundle's deliberate choice at bundle.css:7953:
 * only "anywhere" also constrains the intrinsic min-content width inside flex
 * and grid items, which is what stops a long word forcing a horizontal
 * scrollbar at 400% text. Candidate revision 2 downgraded this to break-word
 * and re-opted in at four places; that traded a route-wide guard for per-element
 * discipline, so the guard is restored. The individual opt-ins below are now
 * redundant and are kept only as local documentation.
 *
 * No focus rule here. See the FOCUS note in the file header: this route inherits
 * the bundle's single documented indicator.
 */
.aiimn-btr-main.aiimn-btr-main,
.aiimn-btr-sticky.aiimn-btr-sticky {
  color: var(--btr-ink);
  line-height: 1.55;
  overflow-wrap: anywhere;
}

/* ---------- containers ------------------------------------------- */
.aiimn-btr-container.aiimn-btr-container {
  width: 100%;
  max-width: var(--aiimn-container);
  margin-inline: auto;
  padding-inline: 24px;
}

.aiimn-btr-measure.aiimn-btr-measure { max-width: 40rem; }
.aiimn-btr-measure--center.aiimn-btr-measure--center { margin-inline: auto; }
.aiimn-btr-measure--spaced.aiimn-btr-measure--spaced { margin-top: 26px; }
.aiimn-btr-measure--spaced-lg.aiimn-btr-measure--spaced-lg { margin-top: 28px; }

/* ---------- bands ------------------------------------------------ */
.aiimn-btr-band.aiimn-btr-band { padding-block: var(--aiimn-section-y); background: var(--btr-white); }
.aiimn-btr-band--sky.aiimn-btr-band--sky { background: var(--btr-sky); }
.aiimn-btr-band--navy.aiimn-btr-band--navy {
  background: linear-gradient(180deg, var(--btr-deep), var(--btr-navy-800));
  color: #fff;
}
.aiimn-btr-band--tight.aiimn-btr-band--tight { padding: 44px 0; }

.aiimn-btr-eyebrow.aiimn-btr-eyebrow {
  font-family: var(--btr-mono);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--btr-orange);
  margin-bottom: 12px;
}

.aiimn-btr-h2.aiimn-btr-h2 {
  font-size: clamp(1.5rem, 3.2vw, 2.125rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.015em;
  color: var(--btr-navy);
  margin-bottom: 16px;
}

.aiimn-btr-band--navy.aiimn-btr-band--navy .aiimn-btr-h2 { color: #fff; }

.aiimn-btr-prose.aiimn-btr-prose p { font-size: 1.0625rem; line-height: 1.7; margin-bottom: 1.15em; }
.aiimn-btr-prose.aiimn-btr-prose p:last-child { margin-bottom: 0; }
.aiimn-btr-band--navy.aiimn-btr-band--navy .aiimn-btr-prose p { color: rgba(255, 255, 255, .86); }
.aiimn-btr-prose.aiimn-btr-prose strong { color: var(--btr-navy); font-weight: 700; }
.aiimn-btr-prose.aiimn-btr-prose b { color: var(--btr-navy); font-weight: 700; }
.aiimn-btr-band--navy.aiimn-btr-band--navy .aiimn-btr-prose strong { color: #fff; }

/* ---------- buttons ---------------------------------------------- */
/*
 * The label is deep navy, never white: #fff on #ff7357 measures 2.68:1 and
 * fails AA outright; #06192b on the same orange measures 6.64:1.
 */
.aiimn-btr-btn.aiimn-btr-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: var(--button-padding-y) var(--button-padding-x);
  background: var(--btr-orange);
  color: var(--btr-deep);
  font: inherit;
  font-weight: var(--font-weight-semibold);
  font-size: 1rem;
  line-height: 1.25;
  border: 0;
  border-radius: var(--aiimn-radius-sm);
  cursor: pointer;
  text-decoration: none;
  text-align: center;
}

.aiimn-btr-btn.aiimn-btr-btn:hover,
.aiimn-btr-btn.aiimn-btr-btn:focus-visible {
  background: var(--btr-orange-dark);
  color: var(--btr-deep);
}

.aiimn-btr-cta.aiimn-btr-cta {
  margin-top: 30px;
  display: flex;
  align-items: center;
  gap: 14px 20px;
  flex-wrap: wrap;
}

.aiimn-btr-cta.aiimn-btr-cta p { font-size: .875rem; color: var(--btr-muted); max-width: 26rem; }
.aiimn-btr-band--navy.aiimn-btr-band--navy .aiimn-btr-cta p { color: rgba(255, 255, 255, .72); }

/* ================================================================== */
/* 1. HERO                                                            */
/* ================================================================== */
.aiimn-btr-hero.aiimn-btr-hero {
  color: #fff;
  padding-block: var(--aiimn-hero-pad-y);
}

.aiimn-btr-hero__grid.aiimn-btr-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 26px;
}

.aiimn-btr-hero__grid.aiimn-btr-hero__grid > * { min-width: 0; max-width: 100%; }

.aiimn-btr-hero__eyebrow.aiimn-btr-hero__eyebrow {
  font-family: var(--btr-mono);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--btr-orange);
  margin-bottom: 14px;
}

.aiimn-btr-hero__title.aiimn-btr-hero__title {
  font-size: clamp(2rem, 5.4vw, 3.25rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: var(--aiimn-tracking-display);
  color: #fff;
  margin-bottom: 16px;
}

.aiimn-btr-hero__sub.aiimn-btr-hero__sub {
  font-size: clamp(1.0625rem, 1.6vw, 1.1875rem);
  line-height: 1.55;
  color: rgba(255, 255, 255, .88);
  max-width: 34rem;
  margin-bottom: 24px;
}

.aiimn-btr-hero__actions.aiimn-btr-hero__actions {
  display: flex;
  align-items: center;
  gap: 12px 18px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}

.aiimn-btr-hero__note.aiimn-btr-hero__note { font-size: .875rem; color: rgba(255, 255, 255, .7); }

.aiimn-btr-hero__scene.aiimn-btr-hero__scene {
  border-left: 2px solid var(--btr-orange);
  padding-left: 18px;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, .84);
  max-width: 36rem;
}

/* ---------- hero video ------------------------------------------- */
/*
 * Click to play only. No autoplay, no muted autoplay, and preload="none" so
 * the 78-second master is never fetched on page load. The overlay is a real
 * <button> rendered by the route JS; without JavaScript the native controls
 * and the poster are the whole affordance and the video is still playable.
 */
.aiimn-btr-video.aiimn-btr-video { margin: 0; }

.aiimn-btr-video__frame.aiimn-btr-video__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, .18);
  /* The frame ground shows only before the poster paints and in any letterbox
     the object-fit leaves. brand.json extended navy_800, a registered value. */
  background: var(--btr-navy-800);
  box-shadow: var(--btr-shadow);
}

.aiimn-btr-video__el.aiimn-btr-video__el {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: var(--btr-navy-800);
}

.aiimn-btr-video__play.aiimn-btr-video__play {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 10px;
  padding: 18px;
  border: 0;
  cursor: pointer;
  text-align: left;
  background: linear-gradient(180deg, rgba(6, 25, 43, 0) 38%, rgba(6, 25, 43, .82) 100%);
  color: #fff;
  font: inherit;
}

/*
 * The disc sits at 30% from the left of the frame, over the wall area of the
 * poster, so it never covers Robert's face. Do not centre it.
 */
.aiimn-btr-video__disc.aiimn-btr-video__disc {
  position: absolute;
  left: 30%;
  top: 46%;
  transform: translate(-50%, -50%);
  width: 74px;
  height: 74px;
  border-radius: 50%;
  background: var(--btr-orange);
  display: grid;
  place-items: center;
  box-shadow: 0 10px 30px rgba(6, 25, 43, .45);
}

.aiimn-btr-video__disc.aiimn-btr-video__disc::before {
  content: "";
  width: 0;
  height: 0;
  margin-left: 6px;
  border-left: 22px solid var(--btr-deep);
  border-top: 14px solid transparent;
  border-bottom: 14px solid transparent;
}

.aiimn-btr-video__play.aiimn-btr-video__play:hover .aiimn-btr-video__disc,
.aiimn-btr-video__play.aiimn-btr-video__play:focus-visible .aiimn-btr-video__disc {
  background: var(--btr-orange-dark);
}

.aiimn-btr-video__label.aiimn-btr-video__label { font-size: 1rem; font-weight: 700; line-height: 1.3; }

.aiimn-btr-video__meta.aiimn-btr-video__meta {
  font-family: var(--btr-mono);
  font-size: .6875rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .78);
  display: flex;
  gap: 6px 14px;
  flex-wrap: wrap;
}

.aiimn-btr-video.aiimn-btr-video.is-playing .aiimn-btr-video__play { display: none; }

/*
 * Shown only by the route JS, and only when the media element or its <source>
 * raises an error. It ships with the hidden attribute, so it is absent for every
 * reader whose video loads and for every reader without JavaScript.
 */
.aiimn-btr-video__error.aiimn-btr-video__error {
  margin-top: 12px;
  padding: 10px 14px;
  border-left: 3px solid var(--btr-orange);
  font-size: .875rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .86);
  background: rgba(255, 255, 255, .06);
}

.aiimn-btr-video__cap.aiimn-btr-video__cap {
  margin-top: 12px;
  font-size: .8125rem;
  color: rgba(255, 255, 255, .68);
  display: flex;
  gap: 6px 16px;
  flex-wrap: wrap;
}

/* ================================================================== */
/* 2. TRUST STRIP (continues the dark hero unit)                      */
/* ================================================================== */
.aiimn-btr-trust.aiimn-btr-trust {
  background: var(--btr-navy-800);
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 34px 0 38px;
}

.aiimn-btr-trust__intro.aiimn-btr-trust__intro {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, .86);
  max-width: 44rem;
  margin-bottom: 20px;
}

.aiimn-btr-chips.aiimn-btr-chips { display: flex; gap: 12px; flex-wrap: wrap; }

.aiimn-btr-chip.aiimn-btr-chip {
  flex: 1 1 190px;
  min-width: 0;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 115, 87, .35);
  border-radius: 12px;
  padding: 16px 18px;
}

.aiimn-btr-chip.aiimn-btr-chip b {
  display: block;
  overflow-wrap: anywhere;
  font-size: clamp(1.625rem, 3.2vw, 2.125rem);
  font-weight: 800;
  color: var(--btr-orange);
  letter-spacing: -.02em;
  line-height: 1.05;
}

.aiimn-btr-chip.aiimn-btr-chip b i { font-style: normal; font-size: .52em; font-weight: 700; letter-spacing: 0; }
.aiimn-btr-chip.aiimn-btr-chip > span {
  display: block;
  font-size: .8125rem;
  color: rgba(255, 255, 255, .84);
  line-height: 1.35;
  margin-top: 6px;
}

/*
 * Attribution, not small print. It may not be shrunk, hidden at any
 * breakpoint, or moved below the fold of its own section.
 */
.aiimn-btr-trust__foot.aiimn-btr-trust__foot {
  margin-top: 18px;
  font-size: .9375rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, .7);
  max-width: 44rem;
}

/*
 * 2.4 Time to first result. The only new rule the 2026-08-28 copy rebuild
 * needed: a short member pull on the dark trust ground, which no existing
 * class covers. It reuses the trust strip's own measure and muted lead colour
 * and adds nothing but the orange rule and the quote's emphasis.
 */
.aiimn-btr-trust__pull.aiimn-btr-trust__pull {
  margin-top: 22px;
  padding-left: 16px;
  border-left: 2px solid var(--btr-orange);
  max-width: 44rem;
}

.aiimn-btr-trust__pull-lead.aiimn-btr-trust__pull-lead {
  font-size: .9375rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, .7);
  margin-bottom: 8px;
}

.aiimn-btr-trust__pull.aiimn-btr-trust__pull blockquote p {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.45;
  color: #fff;
}

.aiimn-btr-trust__pull.aiimn-btr-trust__pull figcaption {
  margin-top: 6px;
  font-size: .8125rem;
  color: rgba(255, 255, 255, .7);
}

/* ================================================================== */
/* EARLY COURSE PROOF (normal flow; never a checkout or fixed layer)   */
/* ================================================================== */
.aiimn-btr-early-proof.aiimn-btr-early-proof {
  background: var(--btr-white);
  padding: clamp(3rem, 7vw, 5.5rem) 0;
  border-bottom: 1px solid var(--btr-border);
}

.aiimn-btr-early-proof__intro.aiimn-btr-early-proof__intro {
  max-width: 48rem;
}

.aiimn-btr-early-proof__intro.aiimn-btr-early-proof__intro > p:last-child {
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.7;
}

.aiimn-btr-commercial.aiimn-btr-commercial {
  display: grid;
  gap: 0.875rem;
  align-items: center;
  margin: 1.75rem 0 2rem;
  padding: 1.25rem;
  background: var(--btr-sky);
  border-left: 4px solid var(--btr-orange);
  border-radius: 0 14px 14px 0;
}

.aiimn-btr-commercial.aiimn-btr-commercial > * {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.aiimn-btr-commercial.aiimn-btr-commercial p {
  font-size: clamp(1.125rem, 3vw, 1.375rem);
  line-height: 1.45;
  color: var(--btr-ink);
}

.aiimn-btr-commercial.aiimn-btr-commercial strong {
  color: var(--btr-navy);
}

.aiimn-btr-commercial.aiimn-btr-commercial .aiimn-btr-btn {
  width: 100%;
}

.aiimn-btr-artifacts.aiimn-btr-artifacts {
  display: grid;
  gap: 1.25rem;
}

.aiimn-btr-artifact.aiimn-btr-artifact {
  margin: 0;
  min-width: 0;
}

.aiimn-btr-artifact__frame.aiimn-btr-artifact__frame {
  overflow: hidden;
  background: var(--btr-sky);
  border: 1px solid var(--btr-border);
  border-radius: 14px;
  box-shadow: 0 16px 38px rgba(6, 25, 43, .12);
  aspect-ratio: 16 / 9;
}

.aiimn-btr-artifact__frame.aiimn-btr-artifact__frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.aiimn-btr-artifact__frame--screen.aiimn-btr-artifact__frame--screen img {
  width: 182%;
  max-width: none;
  object-position: 100% 50%;
  transform: translateX(-44%);
}

.aiimn-btr-artifact.aiimn-btr-artifact figcaption {
  margin-top: 0.75rem;
  color: var(--btr-muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.aiimn-btr-artifact.aiimn-btr-artifact figcaption strong {
  display: block;
  color: var(--btr-navy);
}

@media (min-width: 720px) {
  .aiimn-btr-commercial.aiimn-btr-commercial {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 1.5rem 1.75rem;
  }

  .aiimn-btr-commercial.aiimn-btr-commercial .aiimn-btr-btn { width: auto; }
  .aiimn-btr-artifacts.aiimn-btr-artifacts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }

  .aiimn-btr-artifact__frame--screen.aiimn-btr-artifact__frame--screen img {
    width: 100%;
    transform: none;
    object-position: 50% 50%;
  }
}

@media (forced-colors: active) {
  .aiimn-btr-commercial.aiimn-btr-commercial,
  .aiimn-btr-artifact__frame.aiimn-btr-artifact__frame {
    border: 1px solid CanvasText;
  }
}

/* ================================================================== */
/* QUALIFIED BUSINESS REVIEW WARM DECISION                            */
/* Server-rendered, normal flow, and absent from the cold/direct DOM. */
/* ================================================================== */
.aiimn-btr-warm.aiimn-btr-warm {
  padding: clamp(3rem, 7vw, 5rem) 0;
  background: var(--btr-sky);
  border-bottom: 1px solid var(--btr-border);
  scroll-margin-block-start: 1rem;
}

.aiimn-btr-warm__context.aiimn-btr-warm__context {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  margin: 0 0 1.25rem;
  padding: 0.25rem 0.75rem;
  color: var(--btr-navy);
  background: var(--btr-white);
  border: 1px solid var(--btr-border);
  border-radius: 999px;
  font-family: var(--btr-mono);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-transform: uppercase;
}

.aiimn-btr-warm__intro.aiimn-btr-warm__intro {
  max-width: 48rem;
  margin-bottom: 2rem;
}

.aiimn-btr-warm__intro.aiimn-btr-warm__intro > p:last-child {
  font-size: 1.0625rem;
  line-height: 1.7;
}

.aiimn-btr-warm__layout.aiimn-btr-warm__layout {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: 1.5rem;
  align-items: start;
}

.aiimn-btr-warm__layout.aiimn-btr-warm__layout > * {
  min-width: 0;
  max-width: 100%;
}

.aiimn-btr-warm__proof.aiimn-btr-warm__proof {
  margin: 0;
  min-width: 0;
}

.aiimn-btr-warm__proof-frame.aiimn-btr-warm__proof-frame {
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--btr-white);
  border: 1px solid var(--btr-border);
  border-radius: 14px;
  box-shadow: 0 16px 38px rgba(6, 25, 43, .12);
}

.aiimn-btr-warm__proof-frame.aiimn-btr-warm__proof-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.aiimn-btr-warm__proof.aiimn-btr-warm__proof figcaption {
  margin-top: 0.75rem;
  color: var(--btr-muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.aiimn-btr-warm__proof.aiimn-btr-warm__proof figcaption strong {
  display: block;
  color: var(--btr-navy);
}

.aiimn-btr-warm__decision.aiimn-btr-warm__decision {
  padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--btr-white);
  border: 1px solid var(--btr-border);
  border-radius: 16px;
  box-shadow: var(--btr-shadow);
}

.aiimn-btr-warm__contracts.aiimn-btr-warm__contracts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: 0.75rem;
}

.aiimn-btr-warm__contract.aiimn-btr-warm__contract {
  min-width: 0;
  padding: 1rem;
  background: var(--btr-sky);
  border: 1px solid var(--btr-border);
  border-radius: 12px;
}

.aiimn-btr-warm__contract.aiimn-btr-warm__contract p {
  margin: 0;
  color: var(--btr-muted);
  font-size: 0.875rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.aiimn-btr-warm__contract-label.aiimn-btr-warm__contract-label {
  color: var(--btr-navy);
  font-weight: 800;
}

.aiimn-btr-warm__contract-price.aiimn-btr-warm__contract-price {
  margin: 0.25rem 0 0.35rem;
  color: var(--btr-deep);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 800;
  line-height: 1.2;
}

.aiimn-btr-warm__guarantee.aiimn-btr-warm__guarantee {
  margin-top: 1rem;
  padding: 1rem;
  border-left: 4px solid var(--btr-orange);
  background: var(--btr-sky);
  border-radius: 0 12px 12px 0;
}

.aiimn-btr-warm__guarantee.aiimn-btr-warm__guarantee h3 {
  margin: 0 0 0.5rem;
  color: var(--btr-navy);
  font-size: 1.125rem;
  line-height: 1.3;
}

.aiimn-btr-warm__guarantee.aiimn-btr-warm__guarantee p {
  margin: 0 0 0.75rem;
  color: var(--btr-ink);
  font-size: 0.9375rem;
  line-height: 1.6;
}

.aiimn-btr-warm__guarantee.aiimn-btr-warm__guarantee a,
.aiimn-btr-warm__read-on.aiimn-btr-warm__read-on {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--btr-navy);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.aiimn-btr-warm__actions.aiimn-btr-warm__actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: 0.75rem 1rem;
  align-items: center;
  margin-top: 1rem;
}

.aiimn-btr-warm__actions.aiimn-btr-warm__actions > * {
  min-width: 0;
  max-width: 100%;
}

.aiimn-btr-warm__actions.aiimn-btr-warm__actions p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--btr-muted);
  font-size: 0.8125rem;
  line-height: 1.5;
}

@media (forced-colors: active) {
  .aiimn-btr-warm__proof-frame.aiimn-btr-warm__proof-frame,
  .aiimn-btr-warm__decision.aiimn-btr-warm__decision,
  .aiimn-btr-warm__contract.aiimn-btr-warm__contract,
  .aiimn-btr-warm__guarantee.aiimn-btr-warm__guarantee {
    border: 1px solid CanvasText;
  }
}

/* ================================================================== */
/* 3. SCENES                                                          */
/* ================================================================== */
.aiimn-btr-scenes.aiimn-btr-scenes {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 30px;
  margin-top: 8px;
}

.aiimn-btr-scene.aiimn-btr-scene {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  border-top: 1px solid var(--btr-border);
  padding-top: 22px;
}

.aiimn-btr-scene.aiimn-btr-scene h3 {
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--btr-navy);
  line-height: 1.3;
}

.aiimn-btr-scene.aiimn-btr-scene p { font-size: 1.0625rem; line-height: 1.7; color: var(--btr-ink); }

/* ================================================================== */
/* 4B. THE SHIFT - before/after comparison of the same Monday          */
/* ================================================================== */
.aiimn-btr-shift.aiimn-btr-shift {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.aiimn-btr-shift__col.aiimn-btr-shift__col {
  border: 1px solid var(--btr-border);
  border-radius: 14px;
  padding: 24px;
  background: var(--btr-white);
  min-width: 0;
}

.aiimn-btr-shift__col--after.aiimn-btr-shift__col--after {
  background: var(--btr-sky);
  border-color: var(--btr-border-strong);
}

.aiimn-btr-shift__col.aiimn-btr-shift__col h3 {
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--btr-navy);
  margin-bottom: 4px;
}

.aiimn-btr-shift__col--before.aiimn-btr-shift__col--before h3 { color: var(--btr-muted); }

.aiimn-btr-shift__time.aiimn-btr-shift__time {
  font-family: var(--btr-mono);
  font-size: .8125rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--btr-orange-dark);
  margin: 14px 0 12px;
}

.aiimn-btr-shift__col--before.aiimn-btr-shift__col--before .aiimn-btr-shift__time { color: var(--btr-muted); }

.aiimn-btr-shift__col.aiimn-btr-shift__col li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 12px;
  font-size: 1rem;
  line-height: 1.6;
}

.aiimn-btr-shift__col.aiimn-btr-shift__col li:last-child { margin-bottom: 0; }

.aiimn-btr-shift__col--after.aiimn-btr-shift__col--after li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .5em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--btr-orange);
}

.aiimn-btr-shift__col--before.aiimn-btr-shift__col--before li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .72em;
  width: 11px;
  height: 2px;
  background: var(--btr-muted);
}

.aiimn-btr-shift__verdict.aiimn-btr-shift__verdict {
  margin-top: 16px;
  font-weight: 700;
  color: var(--btr-navy);
}

.aiimn-btr-shift__col--before.aiimn-btr-shift__col--before .aiimn-btr-shift__verdict { color: var(--btr-muted); }

/* ================================================================== */
/* 5. MECHANISM SPINE (the page's memorable element)                  */
/* ================================================================== */
.aiimn-btr-mech.aiimn-btr-mech {
  margin-top: 34px;
  background: var(--btr-sky);
  border: 1px solid var(--btr-border);
  border-radius: 18px;
  padding: 26px 22px;
}

.aiimn-btr-mech__title.aiimn-btr-mech__title {
  font-family: var(--btr-mono);
  font-size: .75rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--btr-muted);
  font-weight: 700;
  margin-bottom: 20px;
}

.aiimn-btr-mech__list.aiimn-btr-mech__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.aiimn-btr-mech__step.aiimn-btr-mech__step {
  position: relative;
  padding: 0 0 22px 34px;
  border-left: 2px solid rgba(255, 115, 87, .4);
}

.aiimn-btr-mech__step.aiimn-btr-mech__step:last-child { border-left-color: transparent; padding-bottom: 0; }

.aiimn-btr-mech__step.aiimn-btr-mech__step::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 4px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--btr-orange);
  border: 3px solid var(--btr-sky);
}

.aiimn-btr-mech__num.aiimn-btr-mech__num {
  font-family: var(--btr-mono);
  font-size: .75rem;
  font-weight: 700;
  color: var(--btr-orange);
  letter-spacing: .1em;
  display: block;
  margin-bottom: 4px;
}

.aiimn-btr-mech__name.aiimn-btr-mech__name {
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--btr-navy);
  line-height: 1.25;
  margin-bottom: 4px;
}

.aiimn-btr-mech__gloss.aiimn-btr-mech__gloss { font-size: .9375rem; line-height: 1.55; color: var(--btr-ink); }

/* ================================================================== */
/* 7. WEEK MAP                                                        */
/* ================================================================== */
.aiimn-btr-weeks.aiimn-btr-weeks {
  margin-top: 30px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.aiimn-btr-week.aiimn-btr-week {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  padding: 22px 0;
  border-top: 1px solid var(--btr-border);
}

.aiimn-btr-week.aiimn-btr-week:first-child { border-top: 0; padding-top: 0; }

.aiimn-btr-week__tag.aiimn-btr-week__tag {
  font-family: var(--btr-mono);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--btr-orange);
}

.aiimn-btr-week__name.aiimn-btr-week__name {
  font-size: 1.1875rem;
  font-weight: 800;
  color: var(--btr-navy);
  line-height: 1.25;
}

.aiimn-btr-week.aiimn-btr-week p { font-size: 1.0625rem; line-height: 1.7; }

.aiimn-btr-kitnote.aiimn-btr-kitnote {
  margin-top: 26px;
  border-left: 3px solid var(--btr-orange);
  padding: 4px 0 4px 18px;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--btr-ink);
  max-width: 38rem;
}

/* ================================================================== */
/* 8. TRANSFORMATION MOMENTS                                          */
/* ================================================================== */
.aiimn-btr-moments.aiimn-btr-moments {
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}

.aiimn-btr-moment.aiimn-btr-moment {
  background: var(--btr-white);
  border: 1px solid var(--btr-border);
  border-radius: 14px;
  padding: 22px;
  min-width: 0;
}

.aiimn-btr-moment__when.aiimn-btr-moment__when {
  font-family: var(--btr-mono);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--btr-orange);
  margin-bottom: 10px;
}

.aiimn-btr-moment.aiimn-btr-moment h3 {
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--btr-navy);
  margin-bottom: 8px;
  line-height: 1.3;
}

.aiimn-btr-moment.aiimn-btr-moment p { font-size: .96875rem; line-height: 1.62; }

/* ================================================================== */
/* 9. WHAT YOU GET                                                    */
/* ================================================================== */
.aiimn-btr-gets.aiimn-btr-gets {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
}

.aiimn-btr-get.aiimn-btr-get { position: relative; padding-left: 30px; max-width: 40rem; }

.aiimn-btr-get.aiimn-btr-get::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  background: var(--btr-orange);
}

.aiimn-btr-get.aiimn-btr-get p { font-size: 1.0625rem; line-height: 1.7; }
.aiimn-btr-get.aiimn-btr-get strong { color: var(--btr-navy); font-weight: 800; }

.aiimn-btr-rule.aiimn-btr-rule {
  margin-top: 30px;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--btr-muted);
  max-width: 38rem;
  font-style: italic;
}

/* ================================================================== */
/* 10. PROOF + WHAT STILL BREAKS                                      */
/* ================================================================== */
.aiimn-btr-receipts.aiimn-btr-receipts {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin: 26px 0 30px;
}

.aiimn-btr-receipt.aiimn-btr-receipt {
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 12px;
  padding: 20px;
  min-width: 0;
}

.aiimn-btr-receipt.aiimn-btr-receipt b {
  display: block;
  overflow-wrap: anywhere;
  font-size: clamp(1.5rem, 3.2vw, 2.25rem);
  font-weight: 800;
  color: var(--btr-orange);
  line-height: 1.05;
  letter-spacing: -.02em;
}

.aiimn-btr-receipt.aiimn-btr-receipt span {
  display: block;
  font-size: .875rem;
  color: rgba(255, 255, 255, .76);
  margin-top: 8px;
  line-height: 1.45;
}

.aiimn-btr-breaks.aiimn-btr-breaks {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin-top: 26px;
}

.aiimn-btr-break.aiimn-btr-break {
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 14px;
  padding: 22px;
  min-width: 0;
}

.aiimn-btr-break__tag.aiimn-btr-break__tag {
  font-family: var(--btr-mono);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--btr-coral-lighter);
  margin-bottom: 12px;
}

.aiimn-btr-break.aiimn-btr-break p { font-size: 1rem; line-height: 1.68; color: rgba(255, 255, 255, .86); }

/* ================================================================== */
/* 11. FIT                                                            */
/* ================================================================== */
.aiimn-btr-fit.aiimn-btr-fit {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.aiimn-btr-fit__col.aiimn-btr-fit__col {
  border: 1px solid var(--btr-border);
  border-radius: 14px;
  padding: 24px;
  background: var(--btr-white);
  min-width: 0;
}

.aiimn-btr-fit__col--yes.aiimn-btr-fit__col--yes { background: var(--btr-sky); border-color: var(--btr-border-strong); }

.aiimn-btr-fit__col.aiimn-btr-fit__col h3 {
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--btr-navy);
  margin-bottom: 16px;
}

.aiimn-btr-fit__col--no.aiimn-btr-fit__col--no h3 { color: var(--btr-muted); }

.aiimn-btr-fit__col.aiimn-btr-fit__col li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 14px;
  font-size: 1rem;
  line-height: 1.6;
}

.aiimn-btr-fit__col.aiimn-btr-fit__col li:last-child { margin-bottom: 0; }

.aiimn-btr-fit__col--yes.aiimn-btr-fit__col--yes li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .5em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--btr-orange);
}

.aiimn-btr-fit__col--no.aiimn-btr-fit__col--no li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .72em;
  width: 11px;
  height: 2px;
  background: var(--btr-muted);
}

/* ================================================================== */
/* 12-13. MONEY BLOCK - guarantee then price, one continuous surface.  */
/* Two sky bands share a background, so the seam between them is        */
/* closed: the guarantee band drops its bottom padding and the price    */
/* band drops its top padding, leaving one gap between the two centred  */
/* panels rather than two section paddings stacked. Both panels stay    */
/* the page's only horizontally centred surfaces.                       */
/* ================================================================== */
.aiimn-btr-band--money-top.aiimn-btr-band--money-top.aiimn-btr-band--money-top { padding-bottom: 0; }
.aiimn-btr-band--money-end.aiimn-btr-band--money-end.aiimn-btr-band--money-end { padding-top: 44px; }

/* ================================================================== */
/* 12. GUARANTEE                                                      */
/* The only orange-bordered surface on the page, so it reads as the    */
/* seal it is.                                                         */
/* ================================================================== */
.aiimn-btr-guarantee.aiimn-btr-guarantee {
  margin-inline: auto;
  border: 2px solid var(--btr-orange);
  border-radius: 20px;
  padding: 32px 26px;
  background: var(--btr-white);
  max-width: 44rem;
}

.aiimn-btr-guarantee.aiimn-btr-guarantee .aiimn-btr-h2 { margin-bottom: 8px; }

.aiimn-btr-guarantee__leadin.aiimn-btr-guarantee__leadin {
  margin-bottom: 10px;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--btr-muted);
}

.aiimn-btr-guarantee__promise.aiimn-btr-guarantee__promise {
  font-size: clamp(1.1875rem, 2.4vw, 1.4375rem);
  line-height: 1.4;
  font-weight: 700;
  color: var(--btr-navy);
  margin-bottom: 20px;
}

/*
 * THE ANCHOR FIGURE. $12,950 is the number the price section then divides by
 * ten, and in candidate revision 2 it was inline body text while $1,295
 * rendered at display weight three times within the next 600px, which undid the
 * guarantee-before-price order the money block exists to create. It now gets the
 * page's stat treatment: block-level, display scale, on its own line inside the
 * approved sentence, with the guarantee's own orange rule beside it.
 *
 * The copy is unchanged, and the reading order is unchanged: the <b> is still
 * the same word in the same sentence, and the clause before it ("...that record
 * shows less than") is the line directly above.
 *
 * It stays deliberately smaller than the price figure (max 3rem against 4rem)
 * and carries the orange accent no other figure on the page has, so inside a
 * panel titled "The 10x Guarantee" it cannot be read as a price.
 */
.aiimn-btr-guarantee__anchor.aiimn-btr-guarantee__anchor {
  display: block;
  margin: 14px 0 12px;
  padding-left: 16px;
  border-left: 3px solid var(--btr-orange);
  font-size: clamp(2.125rem, 5.5vw, 3rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
  color: var(--btr-navy);
  min-width: 0;
  overflow-wrap: anywhere;
}

.aiimn-btr-guarantee__terms.aiimn-btr-guarantee__terms { margin-top: 22px; font-size: .875rem; }
.aiimn-btr-guarantee__terms.aiimn-btr-guarantee__terms a { color: var(--btr-navy); }

/* ================================================================== */
/* 13. PRICE                                                          */
/* ================================================================== */
.aiimn-btr-price.aiimn-btr-price {
  margin-inline: auto;
  background: var(--btr-white);
  border: 1px solid var(--btr-border);
  border-radius: 20px;
  box-shadow: var(--btr-shadow);
  padding: 32px 26px;
  max-width: 44rem;
}

.aiimn-btr-price__figure.aiimn-btr-price__figure {
  display: flex;
  align-items: baseline;
  gap: 8px 16px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.aiimn-btr-price__figure.aiimn-btr-price__figure > * { min-width: 0; }

/*
 * The rem floor is deliberate: this figure must grow with an enlarged browser
 * font size. overflow-wrap:anywhere is the concession that keeps the scaling,
 * letting "$1,295" take a second line instead of painting past the viewport at
 * a 64px root, where the floor alone resolves to 176px inside a 342px column.
 */
.aiimn-btr-price__figure.aiimn-btr-price__figure b {
  font-size: clamp(2.75rem, 7vw, 4rem);
  font-weight: 800;
  color: var(--btr-navy);
  letter-spacing: -.03em;
  line-height: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}

.aiimn-btr-price__figure.aiimn-btr-price__figure span {
  font-family: var(--btr-mono);
  font-size: .8125rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--btr-muted);
  font-weight: 700;
}

.aiimn-btr-price__incl.aiimn-btr-price__incl { margin-top: 10px; font-size: 1.0625rem; line-height: 1.7; }

.aiimn-btr-price__plan.aiimn-btr-price__plan {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--btr-border);
  font-size: 1.0625rem;
  line-height: 1.7;
}

.aiimn-btr-price__plan.aiimn-btr-price__plan b { color: var(--btr-navy); }


/* ================================================================== */
/* 15. FAQ                                                            */
/* ================================================================== */
.aiimn-btr-faq.aiimn-btr-faq { margin-top: 26px; max-width: 46rem; }

.aiimn-btr-faq.aiimn-btr-faq details {
  background: var(--btr-white);
  border: 1px solid var(--btr-border);
  border-radius: 12px;
  margin-bottom: 12px;
}

.aiimn-btr-faq.aiimn-btr-faq summary {
  padding: 18px 20px;
  font-weight: 700;
  font-size: 1rem;
  color: var(--btr-navy);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  min-height: 3.25rem;
  /*
   * The question is an ANONYMOUS flex item: there is no element to give
   * min-width:0, so its automatic minimum is its longest word. "anywhere" lets
   * that word break under text enlargement. Inert at every default size, where
   * each question already fits.
   */
  overflow-wrap: anywhere;
}

.aiimn-btr-faq.aiimn-btr-faq summary::-webkit-details-marker { display: none; }

.aiimn-btr-faq.aiimn-btr-faq summary::after {
  content: "+";
  font-weight: 700;
  font-size: 1.375rem;
  color: var(--btr-orange);
  line-height: 1;
  flex: none;
}

.aiimn-btr-faq.aiimn-btr-faq details[open] summary::after { content: "\2212"; }

.aiimn-btr-faq.aiimn-btr-faq details[open] summary {
  border-bottom: 1px solid var(--btr-border);
  margin-bottom: 14px;
}

.aiimn-btr-faq.aiimn-btr-faq details p { padding: 0 20px 18px; font-size: 1rem; line-height: 1.68; }

/* ================================================================== */
/* 16. FINAL CTA                                                      */
/* ================================================================== */
.aiimn-btr-close.aiimn-btr-close { max-width: 40rem; }

.aiimn-btr-close.aiimn-btr-close .aiimn-btr-priceline {
  margin: 22px 0 0;
  font-size: 1.125rem;
  line-height: 1.6;
  color: #fff;
  font-weight: 700;
}

.aiimn-btr-close.aiimn-btr-close .aiimn-btr-priceline span {
  display: block;
  font-weight: 400;
  font-size: 1rem;
  color: rgba(255, 255, 255, .78);
  margin-top: 6px;
}

/* ================================================================== */
/* STICKY ENROL BAR                                                   */
/* The route's only fixed surface. It ships with [hidden]; the route   */
/* JS is the only thing that removes it, so a page without JavaScript  */
/* never renders it and never puts an invisible control in the tab     */
/* order. It is armed ONLY after the price section has been passed, so */
/* it can never state a price the reader has not been shown in flow.   */
/* ================================================================== */
.aiimn-btr-sticky.aiimn-btr-sticky {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  background: rgba(6, 25, 43, .97);
  border-top: 1px solid rgba(255, 255, 255, .14);
  padding: 10px 0;
  visibility: hidden;
  transform: translateY(100%);
  /* A fixed layer may never become a source of horizontal document overflow. */
  overflow: hidden;
}

@media (prefers-reduced-motion: no-preference) {
  .aiimn-btr-sticky.aiimn-btr-sticky { transition: transform .18s ease-out, visibility .18s; }
}

.aiimn-btr-sticky.aiimn-btr-sticky.is-visible { visibility: visible; transform: translateY(0); }
.aiimn-btr-sticky.aiimn-btr-sticky[hidden] { display: none; }

.aiimn-btr-sticky.aiimn-btr-sticky .aiimn-btr-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.aiimn-btr-sticky__note.aiimn-btr-sticky__note {
  color: rgba(255, 255, 255, .82);
  font-size: .875rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.aiimn-btr-sticky.aiimn-btr-sticky[data-compact] .aiimn-btr-sticky__note { display: none; }
.aiimn-btr-sticky.aiimn-btr-sticky[data-compact] .aiimn-btr-btn { flex: 1; }

/*
 * The bar's button is allowed to wrap. It is one line at every default size,
 * so nothing measures differently there; under text enlargement the wrap makes
 * the bar TALLER, and the runtime budget check then withdraws the bar rather
 * than letting a fixed surface grow over the page.
 */
.aiimn-btr-sticky.aiimn-btr-sticky .aiimn-btr-btn {
  min-height: 2.875rem;
  font-size: .9375rem;
  white-space: normal;
}

/* ================================================================== */
/* >= 768 (tablet)                                                    */
/* ================================================================== */
@media (min-width: 768px) {
  .aiimn-btr-container.aiimn-btr-container { padding-inline: 32px; }
  .aiimn-btr-band.aiimn-btr-band { padding: 76px 0; }
  .aiimn-btr-band--tight.aiimn-btr-band--tight { padding: 56px 0; }
  .aiimn-btr-hero.aiimn-btr-hero { padding: 56px 0 52px; }
  .aiimn-btr-scenes.aiimn-btr-scenes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 40px; }
  .aiimn-btr-moments.aiimn-btr-moments { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .aiimn-btr-receipts.aiimn-btr-receipts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .aiimn-btr-breaks.aiimn-btr-breaks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .aiimn-btr-fit.aiimn-btr-fit { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .aiimn-btr-shift.aiimn-btr-shift { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .aiimn-btr-week.aiimn-btr-week {
    grid-template-columns: minmax(0, 8.5rem) minmax(0, 1fr);
    gap: 6px 28px;
    align-items: start;
  }
  .aiimn-btr-week__tag.aiimn-btr-week__tag { grid-row: span 2; padding-top: .28em; }
  .aiimn-btr-mech.aiimn-btr-mech { padding: 32px; }
  .aiimn-btr-price.aiimn-btr-price { padding: 40px; }
  .aiimn-btr-guarantee.aiimn-btr-guarantee { padding: 40px; }
}

/* ================================================================== */
/* >= 1000 (desktop: hero splits, mechanism goes horizontal)          */
/* ================================================================== */
@media (min-width: 1000px) {
  .aiimn-btr-hero__grid.aiimn-btr-hero__grid {
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
    gap: 26px 52px;
    align-items: start;
    grid-template-areas: "copy video" "copy scene";
    grid-template-rows: auto 1fr;
  }

  .aiimn-btr-hero__copy.aiimn-btr-hero__copy { grid-area: copy; align-self: center; }
  .aiimn-btr-hero__media.aiimn-btr-hero__media { grid-area: video; align-self: start; }
  .aiimn-btr-hero__scene.aiimn-btr-hero__scene { grid-area: scene; align-self: start; max-width: none; }
  .aiimn-btr-hero.aiimn-btr-hero { padding: 64px 0 60px; }

  .aiimn-btr-mech__list.aiimn-btr-mech__list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0 20px;
    position: relative;
  }

  .aiimn-btr-mech__step.aiimn-btr-mech__step { border-left: 0; padding: 26px 0 0 0; }

  .aiimn-btr-mech__step.aiimn-btr-mech__step::after {
    content: "";
    position: absolute;
    top: 6px;
    height: 2px;
    background: rgba(255, 115, 87, .4);
    left: 0;
    right: 0;
    z-index: 0;
  }

  .aiimn-btr-mech__step.aiimn-btr-mech__step:not(:first-child)::after { display: none; }
  .aiimn-btr-mech__step.aiimn-btr-mech__step::before { left: 0; top: 0; z-index: 1; }
  .aiimn-btr-mech__step.aiimn-btr-mech__step:last-child { padding-bottom: 0; }
}

/* ================================================================== */
/* COURSE ARTIFACT IMAGES, NARROW VIEWPORTS                           */
/*                                                                    */
/* The --screen frame carried a mobile zoom-and-pan (width: 182% with */
/* transform: translateX(-44%)) that pushed the image box to roughly  */
/* 619px starting at x=-247 on a 390px viewport. The frame's          */
/* overflow: hidden clipped it visually, but the element itself sat   */
/* off both edges and the crop discarded most of the lesson screen.   */
/* The sibling diagram stayed inside its frame yet was cropped by the */
/* 16/9 aspect-ratio plus object-fit: cover, shrinking its type past  */
/* legibility at 340px.                                               */
/*                                                                    */
/* Below 720px both frames now size to the image instead of forcing a */
/* 16/9 crop, and the image fills exactly the container width with no */
/* offset, so the whole asset is visible and nothing extends past the */
/* viewport. The sources are natively 1200x676 and 1200x658, close    */
/* enough to 16/9 that the frame height barely changes.               */
/*                                                                    */
/* Scoped to max-width: 719.98px so the >=720px rules above, which    */
/* already reset the --screen zoom, remain the desktop behaviour and  */
/* are untouched.                                                     */
/* ================================================================== */
@media (max-width: 719.98px) {
  .aiimn-btr-artifact__frame.aiimn-btr-artifact__frame {
    aspect-ratio: auto;
  }

  .aiimn-btr-artifact__frame.aiimn-btr-artifact__frame img {
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }

  .aiimn-btr-artifact__frame--screen.aiimn-btr-artifact__frame--screen img {
    width: 100%;
    max-width: 100%;
    transform: none;
    object-position: 50% 50%;
  }
}
