/* BPS Lite frame — compiled from build/frame.scss by build/compile-frame.php. Do not edit. */
@charset "UTF-8";
/* ═══ Layer B · palette bridge (shared by every direction file added after Barefoot) ═════════
   Colours come from the Lite palette (Lite → Palette, or a saved custom preset): the 26 standard
   slots are read here, on body, where Lite prints them. No colour value lives in a direction file. */
body {
  --bps-d-bg: var(--light-bg);
  --bps-d-surface: var(--light-bg2);
  --bps-d-surface-2: var(--light-bg3);
  --bps-d-ink: var(--light-text);
  --bps-d-ink-muted: var(--light-text2);
  --bps-d-line: var(--light-border);
  --bps-d-line-strong: var(--light-accent-3);
  --bps-d-primary: var(--light-accent);
  --bps-d-on-primary: var(--light-accent-text);
  --bps-d-primary-hover: color-mix(in srgb, var(--light-accent) 86%, black);
  --bps-d-accent-ink: var(--light-accent);
  /* text-safe: accent-2 is a fill tint (2.5:1 as text in Seaglass, 3.9:1 Terracotta; 0.7.49) */
  --bps-d-brand-accent: var(--light-accent-2);
  --bps-d-band-ink: var(--light-accent-2);
  --bps-d-inverse-bg: var(--dark-bg);
  --bps-d-inverse-2: var(--dark-bg2);
  --bps-d-inverse-line: var(--dark-border);
  --bps-d-inverse-ink: var(--dark-text);
  --bps-d-inverse-muted: var(--dark-text2);
  --bps-d-inverse-action: var(--dark-accent);
  --bps-d-rule: 1px solid var(--bps-d-line);
  --bps-d-rule-heavy: 3px solid var(--bps-d-ink);
  --bps-d-counter: var(--bps-d-primary);
  --bps-d-panel-bg: var(--bps-d-surface);
  --bps-d-panel-line: var(--bps-d-line);
}
body:has(.bps-sec) {
  background: var(--bps-d-bg);
  -webkit-font-smoothing: antialiased;
}
/* Astra prints html { font-size: 91.2% } at 921px and below (with a 16px body), which shrinks every rem size on the
   frame by ~9% on phones and tablets. The lab pages the frame came from reset it (goa-sections 0-host.css); the frame
   does the same, on pages that carry a frame section, at those widths only: desktop keeps whatever root the site's
   Astra body size gives. (0,1,1) beats Astra's bare html. Funnel harvest B10, OWED-funnelharvest-12 #2 (6.2 review: narrowed). */
@media (max-width: 921px) {
  html:has(.bps-sec) {
    font-size: 100%;
  }
}
/* Every direction sets these 49 on :root. With no direction (a plain Lite site, a section from the library) the frame's
   own rules fall back inline, but the pieces (assets/css/pieces/, moved verbatim from the lab, row 4) read them bare,
   so they are given the same defaults here. :where(:root) is (0,0,0): any direction's :root block wins. (0.7.45) */
:where(:root) {
  --bps-d-brand-font: var(--font-heading, system-ui, sans-serif);
  --bps-d-brand-size: 1.25rem;
  --bps-d-brand-track: 0;
  --bps-d-brand-weight: 700;
  --bps-d-container: 1200px;
  --bps-d-font-body: var(--font-body, system-ui, sans-serif);
  --bps-d-font-data: var(--font-body, system-ui, sans-serif);
  --bps-d-font-display: var(--font-heading, system-ui, sans-serif);
  --bps-d-font-display-sm: var(--font-heading, system-ui, sans-serif);
  --bps-d-gutter: clamp(1rem, 4vw, 2rem);
  --bps-d-head-measure: 44rem;
  --bps-d-header-h: 4.5rem;
  --bps-d-hero-h1-measure: 16ch;
  --bps-d-hero-y: var(--moa-y-xl, 120px);
  --bps-d-label-case: uppercase;
  --bps-d-label-font: var(--font-body, system-ui, sans-serif);
  --bps-d-lead-measure: 36rem;
  --bps-d-leading-body: 1.6;
  --bps-d-leading-h2: 1.15;
  --bps-d-leading-snug: 1.3;
  --bps-d-leading-tight: 1.05;
  --bps-d-measure: 62ch;
  --bps-d-radius: 6px;
  --bps-d-section-y: var(--moa-y-lg, 60px);
  --bps-d-space-1: 0.25rem;
  --bps-d-space-2: 0.5rem;
  --bps-d-space-3: 0.75rem;
  --bps-d-space-4: 1rem;
  --bps-d-space-5: 1.5rem;
  --bps-d-space-6: 2rem;
  --bps-d-space-7: 3rem;
  --bps-d-space-8: 4rem;
  --bps-d-space-9: 6rem;
  --bps-d-split-cols: 5fr 7fr;
  --bps-d-tap: 44px;
  --bps-d-text-2xl: var(--step-4, 1.875rem);
  --bps-d-text-3xl: var(--step-5, 2.375rem);
  --bps-d-text-4xl: var(--step-6, 3rem);
  --bps-d-text-base: 1rem;
  --bps-d-text-lg: var(--step-2, 1.25rem);
  --bps-d-text-md: var(--step-1, 1.125rem);
  --bps-d-text-sm: 0.875rem;
  --bps-d-text-xl: var(--step-3, 1.5rem);
  --bps-d-tracking-display: -0.01em;
  --bps-d-tracking-label: 0.08em;
  --bps-d-weight-data: 500;
  --bps-d-weight-display: 700;
  --bps-d-weight-h3: 600;
  --bps-d-weight-medium: 500;
}
/* ── Reset: Elementor's container and widget defaults out of the way ──
   Every selector carries a leading `body`: Elementor prints widget CSS late in the page, so a rule of
   equal specificity loses on order (measured 2026-10-03: max-width:100% beat .bps-lead). */
body .bps-sec.e-con, body .bps-sec.e-con .e-con {
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --margin-top: 0px;
  --margin-bottom: 0px;
  --container-max-width: none;
  --content-width: 100%;
  --width: 100%;
}
/* (0,3,1): ties with role rules below, which win on order (a role's own margins must survive). */
body .bps-sec .elementor-widget:not(:last-child) {
  margin-block-end: 0;
}
/* Elementor draws every container's background overlay in ::before (absolute, 100% box). The frame and
   signatures use ::before for marks and bars, so it is put back into normal flow here. */
body .bps-sec.e-con::before, body .bps-sec.e-con .e-con::before {
  position: static;
  inset: auto;
  width: auto;
  height: auto;
  opacity: 1;
  mix-blend-mode: normal;
  border-radius: 0;
}
/* Elementor sets flex-direction through --flex-direction (column); every row-flex below says so itself. */
/* Inner elements inherit from their widget wrapper, where the role class sits. The wrapper itself
   is only given inherit at (0,2,1) so a role class later in this file (also (0,2,1)) wins on order. */
body .bps-sec .elementor-widget-text-editor, body .bps-sec .elementor-widget-heading {
  color: inherit;
  font-family: inherit;
}
body .bps-sec.e-con .elementor-heading-title, body .bps-sec.e-con .elementor-widget-text-editor p {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}
body .bps-sec.e-con .elementor-heading-title, body .bps-sec.e-con .elementor-widget-text-editor p {
  margin: 0;
}
/* A div or li in a text widget inherits the face too: Lite core's .section text-widget rule (0,2,1) paints p, div and li
   with the skin's --font-body, and only p was reset above, so a week strip, a leaders list or a details fold drew in the
   skin face (Inter) instead of the direction's. (0,2,1), the core rule's own weight: it wins on load order (the frame
   prints after core) and loses to any piece rule of that weight or more (pieces print after the frame), so no piece
   font is overridden. Funnel harvest B10, OWED-funnelharvest-12 #1 (68 elements on the ten rebuilt funnel pages). */
.bps-sec .elementor-widget-text-editor :is(div, li) {
  font-family: inherit;
}
/* A frame section given a tone through Lite's Tone dropdown also gets Lite's .section class, and Lite colours every
   heading in a .section.<tone> at (0,2,1): white headings inside a white card on an accent band. Headings written
   inside a text widget inherit here instead, as on a frame section toned by class (0.7.45, found filing row 5). */
body .bps-sec.section :is(h1, h2, h3, h4, h5, h6) {
  color: inherit;
}
body .bps-sec.e-con a {
  text-decoration-line: underline;
}
body .bps-sec.e-con .elementor-widget-text-editor p + p {
  margin-top: var(--bps-d-space-4, 1rem);
}
body .bps-sec.e-con .elementor-widget-text-editor ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
body .bps-sec.e-con a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
body .bps-sec.e-con a:hover {
  text-decoration-thickness: 2px;
}
body .bps-sec.e-con :focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
/* ── Section root, wrap, tones ── */
body .bps-sec.e-con {
  display: block;
  padding-block: var(--bps-d-section-y, var(--moa-y-lg, 60px));
  background: var(--bps-d-bg);
  color: var(--bps-d-ink);
  font-family: var(--bps-d-font-body, var(--font-body, system-ui, sans-serif));
  font-size: var(--bps-d-text-md, var(--step-1, 1.125rem));
  line-height: var(--bps-d-leading-body, 1.6);
}
body .bps-sec.light + .bps-sec.light {
  border-top: var(--bps-d-rule);
}
body .bps-sec.light3 {
  background: var(--bps-d-surface-2);
}
body .bps-sec.dark {
  background: var(--bps-d-inverse-bg);
  color: var(--bps-d-inverse-ink);
  --bps-d-muted-ink: var(--bps-d-inverse-muted);
  --bps-d-line-now: var(--bps-d-inverse-line);
  --bps-d-head-rule: var(--bps-d-inverse-ink);
}
body .bps-sec .bps-wrap.e-con {
  display: block;
  max-width: var(--bps-d-container, 1200px);
  margin-inline: auto;
  padding-inline: var(--bps-d-gutter, clamp(1rem, 4vw, 2rem));
}
/* ── Type roles (classes go on widget wrappers) ── */
body .bps-sec .bps-h1 {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-4xl, var(--step-6, 3rem));
  font-weight: var(--bps-d-weight-h1, var(--bps-d-weight-display, 700));
  text-transform: var(--bps-d-h1-case, none);
  line-height: var(--bps-d-leading-tight, 1.05);
  letter-spacing: var(--bps-d-tracking-display, -0.01em);
  text-wrap: balance;
}
body .bps-sec .bps-h2 {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-3xl, var(--step-5, 2.375rem));
  font-weight: var(--bps-d-weight-display, 700);
  line-height: var(--bps-d-leading-h2, 1.15);
  letter-spacing: var(--bps-d-tracking-display, -0.01em);
  text-wrap: balance;
}
body .bps-sec .bps-h3 {
  text-wrap: balance;
  font-family: var(--bps-d-font-display-sm, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-h3-size, var(--bps-d-text-lg, var(--step-2, 1.25rem)));
  font-weight: var(--bps-d-weight-h3, 600);
  line-height: var(--bps-d-leading-snug, 1.3);
}
body .bps-sec .bps-eyebrow {
  font-family: var(--bps-d-label-font, var(--font-body, system-ui, sans-serif));
  font-size: var(--bps-d-text-sm, 0.875rem);
  text-transform: var(--bps-d-label-case, uppercase);
  letter-spacing: var(--bps-d-tracking-label, 0.08em);
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
body .bps-sec .bps-lead {
  font-size: var(--bps-d-text-lg, var(--step-2, 1.25rem));
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
  text-wrap: pretty;
}
body .bps-sec .bps-body {
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
  text-wrap: pretty;
}
/* Measures: on the inner element (Elementor caps widget wrappers at max-width:100% from a (0,4,0)-class rule). */
body .bps-sec .bps-lead p {
  max-width: var(--bps-d-lead-measure, 36rem);
}
body .bps-sec .bps-body p {
  max-width: var(--bps-d-measure, 62ch);
}
body .bps-sec .bps-mono {
  font-family: var(--bps-d-font-data, var(--font-body, system-ui, sans-serif));
  font-weight: var(--bps-d-weight-data, 500);
  letter-spacing: 0;
}
body .bps-sec .bps-small {
  font-size: var(--bps-d-text-base, 1rem);
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
/* ── Section head + "after" link row ── */
body .bps-sec .bps-head.e-con {
  display: grid;
  gap: var(--bps-d-space-4, 1rem);
  max-width: var(--bps-d-head-measure, 44rem);
  margin-bottom: var(--bps-d-head-gap, var(--bps-d-space-7, 3rem));
}
body .bps-sec .bps-after {
  margin-top: var(--bps-d-space-6, 2rem);
}
/* ── Grids ── */
body .bps-sec .bps-hero-grid.e-con, body .bps-sec .bps-split.e-con {
  display: grid;
  gap: var(--bps-d-space-7, 3rem);
  align-items: center;
}
body .bps-sec .bps-split.e-con {
  align-items: start;
}
body .bps-sec .bps-stack.e-con {
  display: grid;
  gap: var(--bps-d-space-4, 1rem);
  align-content: start;
}
@media (min-width: 1025px) {
  body .bps-sec .bps-hero-grid.bps-hero-form.e-con {
    grid-template-columns: var(--bps-d-hero-form-cols, 7fr 5fr);
    align-items: start;
  }
}
:root {
  --bps-d-mark-yes: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --bps-d-mark-no: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5L5 15' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
}
@media (min-width: 1025px) {
  body .bps-sec .bps-hero-grid.e-con {
    grid-template-columns: var(--bps-d-hero-cols);
    gap: var(--bps-d-space-8, 4rem);
  }
  body .bps-sec .bps-split.e-con {
    grid-template-columns: var(--bps-d-split-cols, 5fr 7fr);
    gap: var(--bps-d-space-8, 4rem);
  }
}
/* ── Hero ── */
body .bps-sec.bps-hero {
  padding-block: var(--bps-d-hero-y, var(--moa-y-xl, 120px));
}
body .bps-sec.bps-hero .bps-hero-grid.e-con {
  align-items: var(--bps-d-hero-align, center);
}
body .bps-sec.bps-hero .bps-h1 .elementor-heading-title {
  max-width: var(--bps-d-hero-h1-measure, 16ch);
}
body .bps-sec.bps-hero .bps-eyebrow {
  display: block;
  margin-bottom: var(--bps-d-space-4, 1rem);
}
body .bps-sec.bps-hero .bps-lead {
  margin-top: var(--bps-d-space-5, 1.5rem);
}
body .bps-sec.bps-hero .bps-btn-row {
  margin-top: var(--bps-d-space-6, 2rem);
}
/* ── Buttons: one primary style + a text link (Elementor button widget) ── */
body .bps-sec .bps-btn-row.e-con {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--bps-d-space-4, 1rem);
  align-items: center;
}
body .bps-sec .bps-btn-row > .elementor-widget {
  width: auto;
}
body .bps-sec .elementor-widget-button .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--bps-d-space-2, 0.5rem);
  min-height: var(--bps-d-tap, 44px);
  padding: 0 var(--bps-d-space-5, 1.5rem);
  border: 1px solid transparent;
  border-radius: var(--bps-d-radius, 6px);
  font: var(--bps-d-weight-medium, 500) var(--bps-d-text-base, 1rem)/1.2 var(--bps-d-font-body, var(--font-body, system-ui, sans-serif));
  text-decoration: none;
  white-space: nowrap;
  background: transparent;
  color: inherit;
  box-shadow: none;
  transition: background 0.15s, border-color 0.15s;
}
body .bps-sec .elementor-widget-button .elementor-button-content-wrapper {
  display: inline-flex;
  align-items: center;
  gap: var(--bps-d-space-2, 0.5rem);
  flex-direction: row;
}
body .bps-sec .elementor-widget-button .elementor-button-icon {
  display: inline-flex;
  font-size: 1.05em;
  margin: 0;
}
/* Elementor renders FA icons as inline SVG filled with its button-text white: follow the text instead. */
body .bps-sec .elementor-widget-button .elementor-button-icon svg {
  fill: currentColor;
  width: 1em;
  height: 1em;
}
body .bps-sec .bps-btn-lg .elementor-button {
  min-height: 3.25rem;
  padding: 0 var(--bps-d-space-6, 2rem);
  font-size: var(--bps-d-text-md, var(--step-1, 1.125rem));
}
body .bps-sec .bps-btn-primary .elementor-button {
  background: var(--bps-d-primary);
  color: var(--bps-d-on-primary);
  border-color: var(--bps-d-primary-border, transparent);
}
body .bps-sec .bps-btn-primary .elementor-button:hover {
  background: var(--bps-d-primary-hover);
  color: var(--bps-d-on-primary);
}
body .bps-sec .bps-btn-line .elementor-button {
  border-color: var(--bps-d-line-strong);
  color: inherit;
}
body .bps-sec .bps-text-link .elementor-button {
  padding: 0;
  min-height: var(--bps-d-tap, 44px);
  background: none;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  color: inherit;
}
body .bps-sec .bps-text-link .elementor-button:hover {
  text-decoration-thickness: 2px;
  background: none;
  color: inherit;
}
/* Long labels wrap on phones instead of running off the screen (desktop keeps the one-line button). B10, OWED-funnelharvest-12 #3. */
@media (max-width: 767px) {
  body .bps-sec .bps-btn-row > .elementor-widget {
    max-width: 100%;
  }
  body .bps-sec .elementor-widget-button .elementor-button {
    max-width: 100%;
    white-space: normal;
    text-wrap: balance;
    text-align: center;
    padding-block: var(--bps-d-space-2, 0.5rem);
  }
}
/* ── Facts strip: label / value / note columns on a heavy top rule ── */
body .bps-sec .bps-facts.e-con {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  border-top: 2px solid var(--bps-d-head-rule, var(--bps-d-ink));
}
body .bps-sec .bps-fact.e-con {
  display: grid;
  align-content: start;
  gap: var(--bps-d-space-2, 0.5rem);
  padding: var(--bps-d-space-5, 1.5rem) var(--bps-d-space-5, 1.5rem) var(--bps-d-space-5, 1.5rem) 0;
  border-bottom: var(--bps-d-rule);
}
body .bps-sec .bps-fact .bps-value {
  font-size: var(--bps-d-text-xl, var(--step-3, 1.5rem));
  font-weight: var(--bps-d-weight-medium, 500);
  line-height: 1.25;
}
body .bps-sec .bps-fact .bps-small {
  margin-top: calc(var(--bps-d-space-1, 0.25rem) * -1);
}
/* bps-facts-big: a stat pair or trio, the figures at the hero H1 step in the display face, side by side on phones
   (the launch page's "21 days / 16 hours"). Funnel harvest B10. */
body .bps-sec .bps-facts.bps-facts-big.e-con {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  column-gap: var(--bps-d-space-6, 2rem);
}
body .bps-sec .bps-facts.bps-facts-big .bps-fact.e-con {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  padding-right: 0;
}
body .bps-sec .bps-facts.bps-facts-big .bps-fact .bps-value {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-weight-display, 700);
  font-size: var(--bps-d-text-4xl, var(--step-6, 3rem));
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
/* ── Tiles: a 2-up grid of small bordered cards, each in its own pastel (bps-tile-1..4) ──
   No colour lives in a direction, so the four pastels are turned from the palette's accent: the same light, soft
   tone at 0, 90, 180 and 270 degrees round the hue wheel (relative colour); older browsers keep a plain accent tint.
   Tile text is always the light ink, because the tiles stay pale in a dark band too. Funnel harvest B10 (the quiz
   page's four grower types). */
body .bps-sec .bps-tiles.e-con {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  gap: var(--bps-d-space-3, 0.75rem);
}
body .bps-sec .bps-tile.e-con {
  display: grid;
  align-content: start;
  gap: var(--bps-d-space-1, 0.25rem);
  padding: var(--bps-d-space-4, 1rem);
  border: 2px solid var(--light-text, var(--bps-d-ink));
  border-radius: var(--bps-d-tile-radius, 1rem);
  background: color-mix(in srgb, var(--bps-d-primary) 14%, var(--light-bg2));
  color: var(--light-text, var(--bps-d-ink));
}
/* In @supports, not as a second declaration: a declaration with var() always parses, so a browser without relative
   colour would drop to a transparent tile instead of keeping the tint above (6.2 review). */
@supports (color: oklch(from red l c h)) {
  body .bps-sec .bps-tile.e-con {
    background: oklch(from var(--bps-d-primary) 0.93 0.065 calc(h + var(--bps-tile-turn, 0)));
  }
}
body .bps-sec .bps-tile.e-con :is(p, .elementor-heading-title) {
  color: inherit;
  margin: 0;
}
body .bps-sec .bps-tile .bps-tile-t .elementor-heading-title {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-weight-h1, var(--bps-d-weight-display, 700));
  font-size: var(--bps-d-text-base, 1rem);
  line-height: 1.25;
}
body .bps-sec .bps-tile .bps-small {
  font-size: var(--bps-d-text-sm, 0.875rem);
  line-height: 1.3;
}
body .bps-sec .bps-tile-2.e-con {
  --bps-tile-turn: 90;
}
body .bps-sec .bps-tile-3.e-con {
  --bps-tile-turn: 180;
}
body .bps-sec .bps-tile-4.e-con {
  --bps-tile-turn: 270;
}
/* ── Checklist: ruled rows, a yes or no mark (never colour alone) ── */
body .bps-sec .bps-checklist.e-con {
  display: grid;
}
@media (min-width: 640px) {
  body .bps-sec .bps-checklist.bps-two.e-con {
    grid-template-columns: 1fr 1fr;
    column-gap: var(--bps-d-space-6, 2rem);
  }
}
body .bps-sec .bps-check-item.e-con {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  column-gap: var(--bps-d-space-3, 0.75rem);
  padding-block: var(--bps-d-space-4, 1rem);
  border-bottom: var(--bps-d-rule);
}
body .bps-sec .bps-check-item.e-con::before {
  content: "";
  grid-row: 1 / span 2;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.2rem;
  background: currentColor;
  -webkit-mask: var(--bps-d-mark-yes) center / contain no-repeat;
  mask: var(--bps-d-mark-yes) center / contain no-repeat;
}
body .bps-sec .bps-check-item.bps-no.e-con::before {
  -webkit-mask-image: var(--bps-d-mark-no);
  mask-image: var(--bps-d-mark-no);
  color: var(--bps-d-ink-muted);
}
body .bps-sec .bps-check-item .bps-check-t {
  font-weight: var(--bps-d-weight-medium, 500);
}
body .bps-sec .bps-check-item .bps-check-d {
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
/* ── Numbered rules: three columns, a counter, a top rule each ── */
body .bps-sec .bps-rules.e-con {
  display: grid;
  gap: var(--bps-d-space-6, 2rem);
  counter-reset: gxr;
}
@media (min-width: 768px) {
  body .bps-sec .bps-rules.e-con {
    grid-template-columns: repeat(3, 1fr);
  }
}
body .bps-sec .bps-rule.e-con {
  counter-increment: gxr;
  display: grid;
  align-content: start;
  gap: var(--bps-d-space-3, 0.75rem);
  padding-top: var(--bps-d-space-5, 1.5rem);
  border-top: var(--bps-d-rule-top, 1px solid var(--bps-d-line-now, var(--bps-d-line)));
}
body .bps-sec .bps-rules.bps-unnumbered .bps-rule.e-con::before {
  display: none;
}
body .bps-sec .bps-rule.e-con::before {
  content: "0" counter(gxr);
  font-family: var(--bps-d-font-data, var(--font-body, system-ui, sans-serif));
  font-size: var(--bps-d-text-base, 1rem);
  color: var(--bps-d-counter);
}
body .bps-sec .bps-rules.bps-rules-big .bps-rule.e-con::before {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-rules-num-size, var(--bps-d-text-2xl, var(--step-4, 1.875rem)));
  font-weight: var(--bps-d-weight-h1, 800);
  line-height: 1;
  letter-spacing: var(--bps-d-tracking-display, -0.01em);
  color: inherit;
  font-variant-numeric: tabular-nums;
}
/* ── Panel: a quiet surface for a signature or a summary ── */
body .bps-sec .bps-panel.e-con {
  display: grid;
  gap: var(--bps-d-space-5, 1.5rem);
  padding: var(--bps-d-space-6, 2rem);
  border-radius: var(--bps-d-radius, 6px);
  background: var(--bps-d-panel-bg);
  border: 1px solid var(--bps-d-panel-line);
}
body .bps-sec .bps-panel-top.e-con {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--bps-d-space-4, 1rem);
  flex-wrap: wrap;
}
body .bps-sec .bps-panel-top > .elementor-widget {
  width: auto;
}
body .bps-sec .bps-pairs.e-con {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--bps-d-space-4, 1rem);
  border-top: 1px solid var(--bps-d-panel-line);
  padding-top: var(--bps-d-space-4, 1rem);
}
body .bps-sec .bps-pairs .bps-value {
  font-weight: var(--bps-d-weight-medium, 500);
  margin-top: var(--bps-d-space-1, 0.25rem);
}
/* ── Close band ── */
body .bps-sec.bps-close .bps-lead {
  margin-top: var(--bps-d-space-4, 1rem);
}
body .bps-sec.bps-close .bps-lead p {
  max-width: 36rem;
}
body .bps-sec.bps-close .bps-btn-row {
  margin-top: var(--bps-d-space-6, 2rem);
}
body .bps-sec.bps-close.bps-centred .bps-wrap {
  text-align: center;
}
body .bps-sec.bps-close.bps-centred .bps-lead p {
  margin-inline: auto;
}
body .bps-sec.bps-close.bps-centred .bps-btn-row {
  justify-content: center;
}
@media (max-width: 767px) {
  body .bps-sec.bps-close.bps-centred .bps-wrap {
    text-align: left;
  }
  body .bps-sec.bps-close.bps-centred .bps-lead p {
    margin-inline: 0;
  }
  body .bps-sec.bps-close.bps-centred .bps-btn-row {
    justify-content: flex-start;
  }
}
body .bps-sec.bps-close.bps-centred .bps-h2 .elementor-heading-title {
  max-width: var(--bps-d-close-measure, none);
  margin-inline: auto;
}
@media (max-width: 767px) {
  body .bps-sec.bps-close.bps-centred .bps-h2 .elementor-heading-title {
    margin-inline: 0;
  }
}
/* Lite's own Text Align chip (bps-text-center) on a stack inside any frame band: carry the lead's measure and the button
   row to the centre with the text, as the skin does for its lede. bps-centred stays the closing band's switch (it goes
   left on phones); this is the centred-everywhere wrapper (the VSL theatre). Funnel harvest B10, OWED-funnelharvest-12 #4. */
body .bps-sec .bps-text-center .bps-lead p, body .bps-sec .bps-text-center .bps-small p {
  margin-inline: auto;
}
body .bps-sec .bps-text-center .bps-btn-row.e-con {
  justify-content: center;
}
/* ── Status strip (above the header) ── */
body .bps-sec.bps-strip {
  padding-block: 0;
  background: var(--bps-d-inverse-bg);
  color: var(--bps-d-inverse-ink);
  border-bottom: 1px solid var(--bps-d-inverse-line);
  font-size: var(--bps-d-text-base, 1rem);
}
body .bps-sec.bps-strip .bps-wrap.e-con {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: var(--bps-d-space-4, 1rem);
  min-height: var(--bps-d-tap, 44px);
}
body .bps-sec.bps-strip .bps-wrap > .elementor-widget {
  width: auto;
}
body .bps-sec.bps-strip .bps-strip-demo {
  font-family: var(--bps-d-font-data, var(--font-body, system-ui, sans-serif));
  font-size: var(--bps-d-text-sm, 0.875rem);
  color: var(--bps-d-inverse-muted);
}
body .bps-sec.bps-strip .bps-strip-now a {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bps-d-space-2, 0.5rem);
  text-decoration-line: none;
}
body .bps-sec.bps-strip .bps-strip-now a:hover b {
  text-decoration-line: underline;
}
body .bps-sec.bps-strip .bps-strip-now {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bps-d-space-2, 0.5rem);
}
body .bps-sec.bps-strip .bps-strip-now b {
  font-weight: var(--bps-d-weight-medium, 500);
}
body .bps-sec.bps-strip .bps-strip-now .bps-dot {
  display: inline-block;
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  background: var(--bps-d-primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--bps-d-primary) 22%, transparent);
}
body .bps-sec.bps-strip .bps-strip-now .bps-k {
  font-family: var(--bps-d-label-font, var(--font-body, system-ui, sans-serif));
  font-size: var(--bps-d-text-sm, 0.875rem);
  text-transform: var(--bps-d-label-case, uppercase);
  letter-spacing: var(--bps-d-tracking-label, 0.08em);
}
body .bps-sec.bps-strip .bps-strip-now .bps-w {
  font-family: var(--bps-d-font-data, var(--font-body, system-ui, sans-serif));
  font-size: var(--bps-d-text-sm, 0.875rem);
  color: var(--bps-d-inverse-muted);
}
body .bps-sec.bps-strip .bps-strip-now .bps-sep {
  color: var(--bps-d-inverse-muted);
}
/* ── Header: brand, nav, one action ── */
body .bps-sec.bps-header {
  position: sticky;
  top: 0;
  z-index: 50;
  padding-block: 0;
  background: var(--bps-d-bg);
  border-bottom: var(--bps-d-header-rule, var(--bps-d-rule));
}
body .bps-sec.bps-header .bps-wrap.e-con {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--bps-d-space-6, 2rem);
  min-height: var(--bps-d-header-h, 4.5rem);
}
body .bps-sec.bps-header .bps-wrap > .elementor-widget {
  width: auto;
}
body .bps-sec .bps-brand {
  line-height: 1;
}
body .bps-sec .bps-brand a {
  text-decoration-line: none;
  display: grid;
}
body .bps-sec .bps-brand .bps-bn {
  font-family: var(--bps-d-brand-font, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-brand-weight, 700);
  font-size: var(--bps-d-brand-size, 1.25rem);
  letter-spacing: var(--bps-d-brand-track, 0);
  text-transform: var(--bps-d-brand-case, none);
  line-height: var(--bps-d-brand-leading, 1);
}
body .bps-sec .bps-brand .bps-bn i {
  font-style: italic;
  color: var(--bps-d-brand-accent, inherit);
}
body .bps-sec .bps-brand .bps-bs {
  font-family: var(--bps-d-bs-font, var(--bps-d-label-font, var(--font-body, system-ui, sans-serif)));
  font-weight: var(--bps-d-bs-weight, inherit);
  font-size: var(--bps-d-bs-size, 0.75rem);
  text-transform: var(--bps-d-bs-case, uppercase);
  letter-spacing: var(--bps-d-bs-track, 0.22em);
  margin-top: 0.3rem;
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
body .bps-sec .bps-nav {
  margin-left: auto;
}
body .bps-sec .bps-nav ul {
  display: flex;
  flex-direction: row;
  gap: var(--bps-d-space-1, 0.25rem);
}
body .bps-sec .bps-nav li {
  flex: none;
  white-space: nowrap;
}
body .bps-sec .bps-nav a {
  text-decoration-line: none;
  display: inline-flex;
  align-items: center;
  min-height: var(--bps-d-tap, 44px);
  padding: 0 var(--bps-d-space-3, 0.75rem);
  text-decoration: none;
  font-size: var(--bps-d-text-base, 1rem);
  border-bottom: 2px solid transparent;
}
body .bps-sec .bps-nav a:hover {
  border-bottom-color: var(--bps-d-line-strong);
}
/* No JS menu in the lab: below 1025px the nav drops to its own scrollable row and the action moves to the phone bar. */
@media (max-width: 1024px) {
  body .bps-sec.bps-header .bps-wrap.e-con {
    flex-wrap: wrap;
    row-gap: 0;
    padding-top: var(--bps-d-space-2, 0.5rem);
  }
  body .bps-sec.bps-header .bps-nav {
    order: 3;
    width: 100%;
    margin-left: calc(var(--bps-d-space-3, 0.75rem) * -1);
    overflow-x: auto;
  }
  body .bps-sec.bps-header .bps-header-action {
    margin-left: auto;
  }
}
@media (max-width: 767px) {
  body .bps-sec.bps-header .bps-header-action {
    display: none;
  }
  body .bps-sec.bps-header {
    position: static;
  }
}
/* ── Footer ── */
body .bps-sec.bps-footer {
  padding-block: var(--bps-d-space-8, 4rem) var(--bps-d-space-6, 2rem);
  background: var(--bps-d-inverse-bg);
  color: var(--bps-d-inverse-ink);
  font-size: var(--bps-d-text-base, 1rem);
  --bps-d-muted-ink: var(--bps-d-inverse-muted);
}
body .bps-sec .bps-footer-grid.e-con {
  display: grid;
  gap: var(--bps-d-space-7, 3rem);
}
@media (min-width: 768px) {
  body .bps-sec .bps-footer-grid.e-con {
    grid-template-columns: var(--bps-d-footer-cols, minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr));
  }
}
body .bps-sec.bps-footer .bps-links a {
  overflow-wrap: anywhere;
}
body .bps-sec .bps-footer-grid .bps-stack .bps-eyebrow {
  margin-bottom: var(--bps-d-space-1, 0.25rem);
}
body .bps-sec.bps-footer .bps-links p {
  color: var(--bps-d-inverse-muted);
}
body .bps-sec.bps-footer .bps-links li a {
  display: inline-flex;
  align-items: center;
  min-height: var(--bps-d-tap, 44px);
}
body .bps-sec .bps-legal {
  margin-top: var(--bps-d-space-7, 3rem);
  padding-top: var(--bps-d-space-5, 1.5rem);
  border-top: 1px solid var(--bps-d-inverse-line);
  color: var(--bps-d-inverse-muted);
  font-size: var(--bps-d-text-sm, 0.875rem);
}
body .bps-sec .bps-legal div + div {
  margin-top: var(--bps-d-space-2, 0.5rem);
}
body .bps-sec .bps-legal .bps-demo {
  font-family: var(--bps-d-font-data, var(--font-body, system-ui, sans-serif));
}
/* ── Phone action bar (fixed, phones only) ── */
body .bps-sec.bps-mobile-bar {
  display: none;
}
@media (max-width: 767px) {
  body .bps-sec.bps-mobile-bar.e-con {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--bps-d-space-2, 0.5rem);
    position: fixed;
    inset: auto 0 0;
    z-index: 60;
    padding: var(--bps-d-space-3, 0.75rem) var(--bps-d-gutter, clamp(1rem, 4vw, 2rem));
    background: var(--bps-d-bg);
    border-top: var(--bps-d-rule);
  }
  body .bps-sec.bps-mobile-bar .elementor-button {
    width: 100%;
    padding: 0 var(--bps-d-space-3, 0.75rem);
  }
  body:has(.bps-mobile-bar) {
    padding-bottom: 4.5rem;
  }
  @supports (animation-timeline: scroll()) {
    body .bps-sec.bps-mobile-bar.bps-bar-late.e-con {
      animation: bps-bar-in linear both;
      animation-timeline: scroll(root);
      animation-range: 0 var(--bps-d-bar-after, 400px);
    }
  }
  body .bps-sec .bps-fact .bps-value {
    font-size: var(--bps-d-text-lg, var(--step-2, 1.25rem));
  }
  body .bps-sec.bps-strip .bps-strip-now .bps-w, body .bps-sec.bps-strip .bps-strip-now .bps-sep:first-of-type, body .bps-sec.bps-strip .bps-strip-demo {
    display: none;
  }
}
/* ── Media: one image treatment per page (ratio + radius are tokens) ── */
body .bps-sec .bps-media img, body .bps-sec .bps-media-img img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--bps-d-media-ratio, 4/5);
  object-fit: cover;
  border-radius: var(--bps-d-radius, 6px);
}
/* ── Band: a full-width decorative rule between sections (the pattern is the direction's) ── */
body .bps-sec.bps-band.e-con {
  padding-block: 0;
  height: var(--bps-d-band-h, 0px);
  min-height: 0;
  background: var(--bps-d-bg);
}
body .bps-sec.bps-band.e-con::before {
  content: "";
  display: block;
  height: 100%;
  background: var(--bps-d-band-ink, var(--bps-d-primary));
  -webkit-mask: var(--bps-d-band, none) repeat-x left center / var(--bps-d-band-h, 0px) var(--bps-d-band-h, 0px);
  mask: var(--bps-d-band, none) repeat-x left center / var(--bps-d-band-h, 0px) var(--bps-d-band-h, 0px);
}
/* ── Choice list: a few ruled options (title / why / link), not cards ── */
body .bps-sec .bps-choices.e-con {
  display: grid;
  border-top: 1px solid var(--bps-d-head-rule, var(--bps-d-ink));
}
body .bps-sec .bps-choice.e-con {
  display: grid;
  gap: var(--bps-d-space-3, 0.75rem) var(--bps-d-space-7, 3rem);
  padding-block: var(--bps-d-space-6, 2rem);
  border-bottom: var(--bps-d-rule);
}
@media (min-width: 768px) {
  body .bps-sec .bps-choice.e-con {
    grid-template-columns: var(--bps-d-choice-cols, 1fr 1.4fr auto);
    align-items: baseline;
  }
}
body .bps-sec .bps-choice .bps-h3 {
  font-size: var(--bps-d-choice-size, var(--bps-d-text-2xl, var(--step-4, 1.875rem)));
}
body .bps-sec .bps-choice > .elementor-widget-button {
  width: auto;
}
/* ── Time rows: a time, then what happens (a day, a programme) ── */
body .bps-sec .bps-times.e-con {
  display: grid;
}
body .bps-sec .bps-time.e-con {
  display: grid;
  gap: var(--bps-d-space-2, 0.5rem) var(--bps-d-space-7, 3rem);
  padding-block: var(--bps-d-space-6, 2rem);
  border-top: 1px solid var(--bps-d-line-now, var(--bps-d-line));
}
@media (min-width: 768px) {
  body .bps-sec .bps-time.e-con {
    grid-template-columns: var(--bps-d-time-col, 8rem) 1fr;
  }
}
body .bps-sec .bps-time .bps-time-t {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-time-weight, inherit);
  font-size: var(--bps-d-time-size, var(--bps-d-text-2xl, var(--step-4, 1.875rem)));
  line-height: 1;
  color: var(--bps-d-time-ink, var(--bps-d-accent-ink, var(--bps-d-primary)));
  font-variant-numeric: tabular-nums;
}
body .bps-sec .bps-time .bps-time-b.e-con {
  gap: var(--bps-d-space-2, 0.5rem);
}
body .bps-sec.dark {
  --bps-d-time-ink: var(--bps-d-inverse-action, var(--bps-d-primary));
}
/* ── Footer, light: the page ground with a heavy top rule (for a page whose one dark band is elsewhere) ── */
body .bps-sec.bps-footer.bps-light {
  background: var(--bps-d-bg);
  color: var(--bps-d-ink);
  --bps-d-muted-ink: var(--bps-d-ink-muted);
  border-top: var(--bps-d-rule-heavy, 3px solid var(--bps-d-ink));
}
body .bps-sec.bps-footer.bps-light .bps-links p {
  color: var(--bps-d-ink-muted);
}
body .bps-sec.bps-footer.bps-light .bps-legal {
  border-top-color: var(--bps-d-line);
  color: var(--bps-d-ink-muted);
}
/* ── Index list: ruled name + count rows, two columns from 640px (a directory, a stall list) ── */
body .bps-sec .bps-ilist ul {
  display: grid;
  border-top: var(--bps-d-rule-heavy, 2px solid var(--bps-d-ink));
}
@media (min-width: 640px) {
  body .bps-sec .bps-ilist:not(.bps-one) ul {
    grid-template-columns: 1fr 1fr;
    column-gap: var(--bps-d-space-6, 2rem);
  }
}
body .bps-sec .bps-ilist li {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--bps-d-space-4, 1rem);
  min-height: 3.5rem;
  padding-block: var(--bps-d-space-3, 0.75rem);
  border-bottom: var(--bps-d-rule);
}
body .bps-sec .bps-ilist .bps-il-n {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-weight-h1, var(--bps-d-weight-display, 700));
  font-size: var(--bps-d-text-2xl, var(--step-4, 1.875rem));
  text-transform: var(--bps-d-h1-case, none);
  line-height: 1;
}
body .bps-sec .bps-ilist .bps-il-c {
  font-size: var(--bps-d-text-base, 1rem);
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
/* ── Wide wrap: a section that needs the wider container (a map, a strip, a gallery) ── */
body .bps-sec.bps-wide .bps-wrap.e-con {
  max-width: var(--bps-d-container-wide, var(--bps-d-container, 1200px));
}
/* ── Tag: a small outlined pill naming a category (never colour alone) ── */
body .bps-sec .bps-tag-pill span, body .bps-sec .bps-tag-pill .elementor-heading-title {
  display: inline-flex;
  align-items: center;
  width: max-content;
  padding: 0 var(--bps-d-space-2, 0.5rem);
  border: 1px solid var(--bps-d-ink);
  border-radius: 999px;
  font-size: var(--bps-d-text-sm, 0.875rem);
  font-weight: var(--bps-d-weight-medium, 500);
  line-height: 1.6;
  background: var(--bps-d-surface);
  color: var(--bps-d-ink);
}
body .bps-sec .bps-tag-pill.bps-tag-lg span {
  font-size: var(--bps-d-text-base, 1rem);
  padding: var(--bps-d-space-1, 0.25rem) var(--bps-d-space-3, 0.75rem);
}
/* ── Term rows: a term (tag), what it means, an aside — a key or legend as a ruled list ── */
body .bps-sec .bps-terms.e-con {
  display: grid;
  border-top: var(--bps-d-rule-ink, 2px solid var(--bps-d-ink));
}
body .bps-sec .bps-term.e-con {
  display: grid;
  grid-template-columns: var(--bps-d-term-col, 8.5rem) 1fr auto;
  gap: var(--bps-d-space-2, 0.5rem) var(--bps-d-space-5, 1.5rem);
  align-items: center;
  padding-block: var(--bps-d-space-4, 1rem);
  border-bottom: var(--bps-d-rule);
}
body .bps-sec .bps-term > .elementor-widget {
  width: auto;
}
@media (max-width: 639px) {
  body .bps-sec .bps-term.e-con {
    grid-template-columns: 1fr auto;
  }
  body .bps-sec .bps-term .bps-body {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}
/* ── Header flag: a small bordered notice beside the action (an age limit, a status) ── */
body .bps-sec.bps-header .bps-flag span {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0 var(--bps-d-space-2, 0.5rem);
  border: 1px solid var(--bps-d-line-strong);
  border-radius: var(--bps-d-radius, 6px);
  font-size: var(--bps-d-text-sm, 0.875rem);
  font-weight: var(--bps-d-weight-medium, 500);
  white-space: nowrap;
}
@media (max-width: 1024px) {
  body .bps-sec.bps-header .bps-flag {
    margin-left: auto;
  }
  body .bps-sec.bps-header .bps-flag + .bps-header-action {
    margin-left: 0;
  }
}
/* ── Facts as rows: label beside value + note (a short spec list) ── */
body .bps-sec .bps-facts.bps-rows.e-con {
  grid-template-columns: 1fr;
  border-top-width: 1px;
}
body .bps-sec .bps-facts.bps-rows .bps-fact.e-con {
  grid-template-columns: var(--bps-d-fact-col, 8rem) 1fr;
  column-gap: var(--bps-d-space-4, 1rem);
  row-gap: 0;
  padding: var(--bps-d-space-4, 1rem) 0;
}
body .bps-sec .bps-facts.bps-rows .bps-fact > .bps-eyebrow {
  grid-row: 1 / span 2;
  padding-top: var(--bps-d-space-1, 0.25rem);
}
body .bps-sec .bps-facts.bps-rows .bps-fact .bps-value {
  font-size: var(--bps-d-text-lg, var(--step-2, 1.25rem));
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}
body .bps-sec .bps-facts.bps-rows .bps-fact .bps-small {
  margin-top: var(--bps-d-space-1, 0.25rem);
}
/* ── Notice: bordered aside, one big mark beside heading + text ── */
body .bps-sec .bps-notice-box.e-con {
  display: grid;
  gap: var(--bps-d-space-5, 1.5rem);
  padding: var(--bps-d-space-6, 2rem);
  border: 1px solid var(--bps-d-line-strong);
  border-radius: var(--bps-d-radius, 6px);
}
@media (min-width: 768px) {
  body .bps-sec .bps-notice-box.e-con {
    grid-template-columns: auto 1fr;
    gap: var(--bps-d-space-7, 3rem);
  }
}
body .bps-sec .bps-notice-mark {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-4xl, var(--step-6, 3rem));
  line-height: 1;
}
body .bps-sec .bps-notice-box .bps-h3 {
  font-size: var(--bps-d-text-2xl, var(--step-4, 1.875rem));
}
/* ── Titled columns ── */
body .bps-sec .bps-cols.e-con {
  display: grid;
  gap: var(--bps-d-space-7, 3rem);
}
@media (min-width: 768px) {
  body .bps-sec .bps-cols.e-con {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--bps-d-space-6, 2rem);
  }
}
body .bps-sec .bps-cols .bps-checklist.e-con {
  border-top: 1px solid currentColor;
}
/* ── Tight section: a short band (a notice) with half the section padding ── */
body .bps-sec.bps-tight.e-con {
  padding-block: var(--bps-d-space-8, 4rem);
}
/* ── Split, reversed weight: the wide column first ── */
@media (min-width: 1025px) {
  body .bps-sec.bps-split-rev .bps-split.e-con {
    grid-template-columns: var(--bps-d-split-rev-cols, 7fr 5fr);
  }
}
/* ── Steps: a real sequence, numbered in accent discs ── */
body .bps-sec .bps-steps.e-con {
  display: grid;
  counter-reset: gxs;
  border-top: var(--bps-d-rule-ink, 2px solid var(--bps-d-ink));
}
body .bps-sec .bps-step-row.e-con {
  counter-increment: gxs;
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: var(--bps-d-space-4, 1rem);
  padding-block: var(--bps-d-space-4, 1rem);
  border-bottom: var(--bps-d-rule);
}
body .bps-sec .bps-step-row.e-con::before {
  content: counter(gxs);
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--bps-d-primary);
  color: var(--bps-d-on-primary);
  font-weight: var(--bps-d-weight-medium, 500);
  font-variant-numeric: tabular-nums;
}
body .bps-sec .bps-step-row .bps-stack.e-con {
  gap: var(--bps-d-space-2, 0.5rem);
}
/* ── Wide media: a full-width band image inside a section (one ratio token, cropped by object-fit) ── */
body .bps-sec .bps-media-wide img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--bps-d-media-wide-ratio, 21/9);
  object-fit: cover;
  border-radius: var(--bps-d-radius, 6px);
}
body .bps-sec .bps-media-wide {
  margin-bottom: var(--bps-d-space-7, 3rem);
}
body .bps-sec .bps-stack > .bps-media {
  margin-top: var(--bps-d-space-4, 1rem);
}
/* ── Business-site additions (2026-10-03): trio, quote, flip ── */
body .bps-sec .bps-trio.e-con {
  display: grid;
  gap: var(--bps-d-space-7, 3rem) var(--bps-d-space-6, 2rem);
  margin-top: var(--bps-d-space-7, 3rem);
}
body .bps-sec .bps-trio-card.e-con {
  display: grid;
  gap: var(--bps-d-space-4, 1rem);
  align-content: start;
}
body .bps-sec .bps-trio-img img {
  aspect-ratio: var(--bps-d-trio-small-ratio, 16/10);
}
@media (min-width: 768px) {
  body .bps-sec .bps-trio.e-con {
    grid-template-columns: 1fr 1fr;
  }
  body .bps-sec .bps-trio-card:first-child {
    grid-column: 1 / -1;
  }
}
@media (min-width: 1025px) {
  body .bps-sec .bps-trio.e-con {
    grid-template-columns: var(--bps-d-trio-cols, 7fr 4fr);
  }
  body .bps-sec .bps-trio-card:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
  }
  body .bps-sec .bps-trio-card:first-child .bps-trio-img img {
    aspect-ratio: var(--bps-d-trio-big-ratio, 3/2);
  }
}
body .bps-sec .bps-quote.e-con {
  display: grid;
  gap: var(--bps-d-space-5, 1.5rem);
  max-width: var(--bps-d-quote-measure, 52rem);
}
body .bps-sec .bps-quote-q {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-quote, var(--bps-d-text-3xl, var(--step-5, 2.375rem)));
  font-weight: var(--bps-d-weight-display, 700);
  line-height: var(--bps-d-leading-h2, 1.15);
  letter-spacing: var(--bps-d-tracking-display, -0.01em);
  text-wrap: balance;
}
body .bps-sec .bps-quote-by.e-con {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--bps-d-space-3, 0.75rem);
}
body .bps-sec .bps-quote-by > .elementor-widget {
  width: auto;
}
body .bps-sec .bps-quote-sm, body .bps-sec.e-con .bps-quote-sm p {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-lg, var(--step-2, 1.25rem));
  font-weight: var(--bps-d-weight-regular, 400);
  line-height: 1.35;
  color: inherit;
  text-wrap: pretty;
}
/* flip: the split's right-hand element (an image) leads on desktop */
@media (min-width: 1025px) {
  body .bps-sec.bps-flip .bps-split.e-con {
    grid-template-columns: var(--bps-d-flip-cols, 5fr 6fr);
  }
  body .bps-sec.bps-flip .bps-split > .elementor-element:last-child {
    order: -1;
  }
}
/* feature band: the primary colour as a ground (on-primary ink); a panel on any coloured band keeps page ink */
body .bps-sec.accent {
  background: var(--bps-d-primary);
  color: var(--bps-d-on-primary);
  --bps-d-muted-ink: var(--bps-d-on-primary);
}
body .bps-sec.accent .bps-panel, body .bps-sec.dark .bps-panel.bps-paper {
  color: var(--bps-d-ink);
  --bps-d-muted-ink: var(--bps-d-ink-muted);
  --bps-d-panel-bg: var(--bps-d-surface);
  --bps-d-panel-line: transparent;
  --bps-d-time-ink: var(--bps-d-accent-ink, var(--bps-d-ink));
  --bps-d-head-rule: var(--bps-d-ink);
  --bps-d-line-now: var(--bps-d-line);
  box-shadow: 0 1.5rem 3rem -1.5rem rgba(0, 0, 0, 0.45);
}
/* hero media: a photo with a caption chip pinned to its lower edge (static under it on phones) */
body .bps-sec .bps-hero-media.e-con {
  position: relative;
  display: block;
}
body .bps-sec .bps-hero-media .bps-media img {
  aspect-ratio: var(--bps-d-hero-media-ratio, 4/5);
}
body .bps-sec .bps-hero-chip {
  margin-top: var(--bps-d-space-3, 0.75rem);
  color: var(--bps-d-inverse-ink);
  font-size: var(--bps-d-text-base, 1rem);
  line-height: 1.35;
}
body .bps-sec .bps-hero-chip p {
  display: inline-block;
  padding: var(--bps-d-space-3, 0.75rem) var(--bps-d-space-4, 1rem);
  background: var(--bps-d-inverse-bg);
  border-radius: var(--bps-d-radius, 6px);
  max-width: 22rem;
}
body .bps-sec .bps-hero-chip strong {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-lg, var(--step-2, 1.25rem));
  margin-right: var(--bps-d-space-2, 0.5rem);
}
@media (min-width: 768px) {
  body .bps-sec .bps-hero-chip {
    position: absolute;
    right: var(--bps-d-chip-right, calc(-1 * var(--bps-d-space-4, 1rem)));
    bottom: var(--bps-d-space-6, 2rem);
    margin: 0;
  }
}
/* a four-column footer (brand + three) from 1025px: a direction opts in with --bps-d-footer-cols-wide */
@media (min-width: 1025px) {
  body {
    --bps-d-footer-cols: var(--bps-d-footer-cols-wide, minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr));
  }
}
body .bps-sec.bps-landscape {
  --bps-d-media-ratio: var(--bps-d-landscape-ratio, 5 / 4);
}
/* ═══ Layer A · FRAME, trades & local additions (2026-10-04) ═══════════════════════════════
   Additive to A-frame.css (load after it). Same rules: tokens only, no colour, font or site.
   Pieces: bleed hero, marked h1, moments, quotes group, close-bleed, price rows, promises,
   before/after, dated rows, lift (a panel that rises into the section above).
   ═══════════════════════════════════════════════════════════════════════════════════ */
/* ── Bleed hero: photo behind, scrim, copy in front ── */
body .bps-sec.bps-hero-bleed.e-con {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--bps-d-inverse-bg);
  color: var(--bps-d-inverse-ink);
  padding-block: var(--bps-d-bleed-y, clamp(4rem, calc(2rem + 8vw), 9rem));
  --bps-d-muted-ink: var(--bps-d-inverse-muted);
}
body .bps-sec.bps-hero-bleed .bps-wrap.e-con {
  position: static;
}
/* Elementor positions containers; the photo belongs to the section */
body .bps-sec .bps-bleed-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  margin: 0;
}
body .bps-sec .bps-bleed-bg .elementor-widget-container, body .bps-sec .bps-bleed-bg img {
  height: 100%;
}
body .bps-sec .bps-bleed-bg img {
  width: 100%;
  object-fit: cover;
  object-position: var(--bps-d-bleed-pos, center);
  border-radius: 0;
  aspect-ratio: auto;
}
body .bps-sec .bps-bleed-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--bps-d-bleed-scrim, linear-gradient(90deg, color-mix(in srgb, var(--bps-d-inverse-bg) 82%, transparent) 0%, color-mix(in srgb, var(--bps-d-inverse-bg) 45%, transparent) 60%, color-mix(in srgb, var(--bps-d-inverse-bg) 15%, transparent) 100%));
}
body .bps-sec .bps-bleed-copy.e-con {
  position: relative;
  display: grid;
  gap: var(--bps-d-space-5, 1.5rem);
  justify-items: start;
  max-width: var(--bps-d-bleed-measure, 44rem);
}
body .bps-sec .bps-bleed-card.e-con {
  display: grid;
  gap: var(--bps-d-space-5, 1.5rem);
  padding: var(--bps-d-space-5, 1.5rem) var(--bps-d-space-5, 1.5rem) var(--bps-d-space-6, 2rem);
  background: var(--bps-d-inverse-bg);
  border-radius: var(--bps-d-radius, 6px);
  max-width: 32rem;
}
body .bps-sec .bps-bleed-card .bps-lead {
  margin: 0;
  color: var(--bps-d-inverse-ink);
  font-size: var(--bps-d-text-md, var(--step-1, 1.125rem));
}
body .bps-sec .bps-bleed-card .bps-btn-row {
  margin: 0;
}
/* marked h1: each line a strip of ground; the second line takes the primary */
body .bps-sec .bps-h1-marked .elementor-heading-title {
  max-width: none;
  line-height: 1.08;
}
body .bps-sec .bps-mk {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding: 0.02em 0.14em 0;
  background: var(--bps-d-mk-bg, var(--bps-d-inverse-bg));
  color: var(--bps-d-mk-ink, var(--bps-d-inverse-ink));
}
body .bps-sec .bps-mk-2 {
  background: var(--bps-d-primary);
  color: var(--bps-d-on-primary);
}
/* ── Lift: the section's split right-hand panel rises into the section above (desktop) ── */
/* Only into a bleed hero, which makes room for it (the :has() rule below). After any other section the panel stays
   in its own section: it rose over the section above's content and covered its button (0.7.49). */
@media (min-width: 1025px) {
  body .bps-sec.bps-lift.e-con {
    position: relative;
    z-index: 2;
    padding-top: var(--bps-d-space-8, 4rem);
  }
  body .bps-sec.bps-hero-bleed + .bps-sec.bps-lift .bps-split > .elementor-element:last-child {
    margin-top: calc(-1 * var(--bps-d-lift, 12rem));
  }
  body .bps-sec.bps-hero-bleed:has(+ .bps-lift) {
    padding-bottom: calc(var(--bps-d-bleed-y, 9rem) + var(--bps-d-lift, 12rem) * .5);
  }
}
/* ── Moments: three columns of a big time, a title and text, on a top rule ── */
body .bps-sec .bps-moments.e-con {
  display: grid;
  border-top: 2px solid var(--bps-d-head-rule, var(--bps-d-ink));
}
@media (min-width: 768px) {
  body .bps-sec .bps-moments.e-con {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
body .bps-sec .bps-moment.e-con {
  display: grid;
  align-content: start;
  gap: var(--bps-d-space-2, 0.5rem);
  padding: var(--bps-d-space-5, 1.5rem) var(--bps-d-space-5, 1.5rem) var(--bps-d-space-5, 1.5rem) 0;
}
@media (min-width: 768px) {
  body .bps-sec .bps-moment.e-con + .bps-moment.e-con {
    padding-left: var(--bps-d-space-5, 1.5rem);
    border-left: var(--bps-d-moment-sep, var(--bps-d-rule));
  }
}
@media (max-width: 767px) {
  body .bps-sec .bps-moment.e-con + .bps-moment.e-con {
    border-top: var(--bps-d-rule);
  }
}
body .bps-sec .bps-moment-t {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-weight-h1, var(--bps-d-weight-display, 700));
  font-size: var(--bps-d-moment-size, var(--bps-d-text-3xl, var(--step-5, 2.375rem)));
  line-height: 1;
  letter-spacing: var(--bps-d-tracking-display, -0.01em);
  color: var(--bps-d-moment-ink, inherit);
  font-variant-numeric: tabular-nums;
  margin-bottom: var(--bps-d-space-2, 0.5rem);
}
body .bps-sec .bps-moment .bps-h3 {
  font-family: var(--bps-d-moment-h3-font, var(--bps-d-font-body, var(--font-body, system-ui, sans-serif)));
  font-size: var(--bps-d-moment-h3-size, var(--bps-d-text-base, 1rem));
  font-weight: var(--bps-d-weight-medium, 500);
}
/* dots: a dot on the rule above each moment */
body .bps-sec .bps-moments.bps-dots.e-con {
  border-top-width: 1px;
}
body .bps-sec .bps-moments.bps-dots .bps-moment.e-con {
  border-left: 0;
  padding-left: 0;
  position: relative;
  padding-top: var(--bps-d-space-6, 2rem);
}
body .bps-sec .bps-moments.bps-dots .bps-moment.e-con::before {
  content: "";
  position: absolute;
  top: -0.45rem;
  left: 0;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  background: var(--bps-d-primary);
  border: 1px solid var(--bps-d-ink);
}
/* ── Quotes group: one big, the rest stacked beside it ── */
body .bps-sec .bps-qg.e-con {
  display: grid;
  gap: var(--bps-d-space-8, 4rem);
}
@media (min-width: 1025px) {
  body .bps-sec .bps-qg.e-con {
    grid-template-columns: var(--bps-d-qg-cols, 1.15fr 1fr);
    align-items: start;
  }
}
body .bps-sec .bps-qg-side.e-con {
  display: grid;
  gap: var(--bps-d-space-7, 3rem);
}
body .bps-sec .bps-qg-item.e-con {
  display: grid;
  gap: var(--bps-d-space-3, 0.75rem);
  justify-items: start;
}
body .bps-sec .bps-qg-big .bps-quote-q {
  font-size: var(--bps-d-text-quote, var(--bps-d-text-3xl, var(--step-5, 2.375rem)));
}
body .bps-sec .bps-qg-small .bps-quote-q {
  font-size: var(--bps-d-qg-small-size, var(--bps-d-text-2xl, var(--step-4, 1.875rem)));
  line-height: 1.12;
}
body .bps-sec .bps-qg-by.e-con {
  display: grid;
  gap: 0;
}
body .bps-sec .bps-qg-who {
  font-size: var(--bps-d-text-base, 1rem);
  font-weight: var(--bps-d-weight-medium, 500);
}
body .bps-sec .bps-qg-by .bps-small {
  font-size: var(--bps-d-text-sm, 0.875rem);
}
/* ── Close with a bled photo: image half (to the viewport edge), copy half ── */
body .bps-sec.bps-close-bleed.e-con {
  display: grid;
  padding-block: 0;
}
@media (min-width: 1025px) {
  body .bps-sec.bps-close-bleed.e-con {
    grid-template-columns: var(--bps-d-cb-cols, 1fr 1fr);
    min-height: var(--bps-d-cb-h, 34rem);
  }
}
body .bps-sec .bps-cb-img, body .bps-sec .bps-cb-img .elementor-widget-container, body .bps-sec .bps-cb-img img {
  height: 100%;
}
body .bps-sec .bps-cb-img img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: auto;
  border-radius: 0;
}
@media (max-width: 1024px) {
  body .bps-sec .bps-cb-img img {
    aspect-ratio: var(--bps-d-cb-phone-ratio, 3/2);
  }
}
body .bps-sec .bps-cb-copy.e-con {
  display: grid;
  align-content: center;
  gap: var(--bps-d-space-5, 1.5rem);
  padding: var(--bps-d-section-y, var(--moa-y-lg, 60px)) var(--bps-d-gutter, clamp(1rem, 4vw, 2rem));
  max-width: 40rem;
}
body .bps-sec .bps-cb-copy .bps-lead p {
  max-width: 30rem;
}
body .bps-sec .bps-cb-copy .bps-btn-row {
  margin-top: var(--bps-d-space-2, 0.5rem);
}
/* ── Price rows: ruled services with the price set right ── */
body .bps-sec .bps-prows.e-con {
  display: grid;
  border-top: 1px solid var(--bps-d-head-rule, var(--bps-d-ink));
}
body .bps-sec .bps-prow.e-con {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--bps-d-space-5, 1.5rem);
  align-items: start;
  padding-block: var(--bps-d-space-6, 2rem);
  border-bottom: var(--bps-d-rule);
}
body .bps-sec .bps-prow-b.e-con {
  gap: var(--bps-d-space-2, 0.5rem);
}
body .bps-sec .bps-prow-p {
  text-align: right;
  line-height: 1.1;
}
body .bps-sec.e-con .bps-prow-p p {
  display: grid;
  justify-items: end;
  gap: 0.15rem;
}
body .bps-sec .bps-prow-n {
  font-size: var(--bps-d-text-sm, 0.875rem);
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
body .bps-sec .bps-prow-p strong {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-2xl, var(--step-4, 1.875rem));
  font-weight: var(--bps-d-weight-h1, var(--bps-d-weight-display, 700));
  font-variant-numeric: tabular-nums;
}
/* a mark: the primary square before each title (a direction opts in) */
body .bps-sec .bps-prows.bps-marked .bps-prow.e-con {
  grid-template-columns: 2.5rem 1fr auto;
}
body .bps-sec .bps-prows.bps-marked .bps-prow.e-con::before {
  content: "";
  width: 2rem;
  height: 2rem;
  border-radius: var(--bps-d-radius, 6px);
  background: var(--bps-d-primary);
  margin-top: 0.2rem;
}
/* ruled two-column variant: title left, text right (Dockside's services) */
@media (min-width: 768px) {
  body .bps-sec .bps-prows.bps-split-rows .bps-prow-b.e-con {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    column-gap: var(--bps-d-space-6, 2rem);
  }
  body .bps-sec .bps-prows.bps-split-rows .bps-prow-b > .elementor-widget:not(:first-child) {
    grid-column: 2;
  }
  body .bps-sec .bps-prows.bps-split-rows .bps-prow-b > .elementor-widget:first-child {
    grid-row: 1 / span 2;
  }
}
/* ── Promises: a row of short boxed promises ── */
body .bps-sec .bps-promises ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  border: 1px solid var(--bps-d-line);
  border-radius: var(--bps-d-radius, 6px);
  background: var(--bps-d-surface);
  color: var(--bps-d-ink);
}
body .bps-sec .bps-promises li {
  display: grid;
  gap: 0;
  padding: var(--bps-d-space-4, 1rem) var(--bps-d-space-5, 1.5rem);
  font-size: var(--bps-d-text-base, 1rem);
  line-height: 1.35;
}
body .bps-sec .bps-promises li + li {
  border-left: 1px solid var(--bps-d-line);
}
@media (max-width: 767px) {
  body .bps-sec .bps-promises li + li {
    border-left: 0;
    border-top: 1px solid var(--bps-d-line);
  }
}
body .bps-sec .bps-promises strong {
  font-weight: var(--bps-d-weight-medium, 500);
}
body .bps-sec .bps-promises span {
  color: var(--bps-d-ink-muted);
  font-size: var(--bps-d-text-sm, 0.875rem);
}
/* ── Before / after: two photos in one frame, split down the middle ── */
body .bps-sec .bps-ba.e-con {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--bps-d-radius, 6px);
  aspect-ratio: var(--bps-d-ba-ratio, 4/3);
}
body .bps-sec .bps-ba-img {
  position: absolute;
  inset: 0;
  margin: 0;
}
body .bps-sec .bps-ba-img .elementor-widget-container, body .bps-sec .bps-ba-img img {
  width: 100%;
  height: 100%;
}
body .bps-sec .bps-ba-img img {
  object-fit: cover;
  aspect-ratio: auto;
  border-radius: 0;
}
body .bps-sec .bps-ba-after {
  clip-path: inset(0 0 0 50%);
  transition: clip-path 0.4s ease;
}
body .bps-sec .bps-ba:hover .bps-ba-after {
  clip-path: inset(0 0 0 30%);
}
body .bps-sec .bps-ba.e-con::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 3px;
  margin-left: -1.5px;
  background: var(--bps-d-primary);
  transition: left 0.4s ease;
  z-index: 1;
}
body .bps-sec .bps-ba:hover.e-con::after {
  left: 30%;
}
body .bps-sec.e-con .bps-ba .bps-ba-labels {
  position: absolute;
  left: var(--bps-d-space-4, 1rem);
  right: var(--bps-d-space-4, 1rem);
  bottom: var(--bps-d-space-4, 1rem);
  width: auto;
  z-index: 2;
}
body .bps-sec.e-con .bps-ba-labels p {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
body .bps-sec .bps-ba-labels span {
  padding: var(--bps-d-space-1, 0.25rem) var(--bps-d-space-3, 0.75rem);
  background: var(--bps-d-inverse-bg);
  color: var(--bps-d-inverse-ink);
  border-radius: var(--bps-d-radius, 6px);
  font-size: var(--bps-d-text-sm, 0.875rem);
  font-weight: var(--bps-d-weight-medium, 500);
}
@media (prefers-reduced-motion: reduce) {
  body .bps-sec .bps-ba-after, body .bps-sec .bps-ba.e-con::after {
    transition: none;
  }
}
/* ── Dated rows: a date block, then what's on ── */
body .bps-sec .bps-dated.e-con {
  display: grid;
  border-top: 1px solid var(--bps-d-line-strong);
}
body .bps-sec .bps-date-row.e-con {
  display: grid;
  grid-template-columns: var(--bps-d-date-col, 6.5rem) 1fr;
  gap: var(--bps-d-space-5, 1.5rem);
  padding-block: var(--bps-d-space-5, 1.5rem);
  border-bottom: 1px solid var(--bps-d-line-strong);
}
body .bps-sec.e-con .bps-date p {
  display: grid;
  gap: var(--bps-d-space-1, 0.25rem);
  line-height: 1.15;
}
body .bps-sec .bps-dd, body .bps-sec .bps-dt {
  font-size: var(--bps-d-text-sm, 0.875rem);
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
body .bps-sec .bps-dn {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-xl, var(--step-3, 1.5rem));
  color: var(--bps-d-accent-ink, var(--bps-d-primary));
}
body .bps-sec .bps-date-row .bps-stack.e-con {
  gap: var(--bps-d-space-1, 0.25rem);
}
body .bps-sec .bps-date-kind {
  font-size: var(--bps-d-text-sm, 0.875rem);
  font-style: var(--bps-d-kind-style, italic);
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
}
/* ── Surface tone: a section on the lighter surface (beside light ground and light3) ── */
body .bps-sec.bps-surface-tone {
  background: var(--bps-d-surface);
}
@keyframes bps-bar-in {
  0%, 99% {
    transform: translateY(100%);
    visibility: hidden;
  }
  100% {
    transform: none;
    visibility: visible;
  }
}
/* ── Collage: a wide photo, a smaller one overlapping its lower right ── */
body .bps-sec .bps-collage.e-con {
  position: relative;
  display: grid;
  margin-top: var(--bps-d-space-7, 3rem);
}
body .bps-sec .bps-col-big img {
  width: 100%;
  aspect-ratio: var(--bps-d-col-big-ratio, 21/9);
  object-fit: cover;
  border-radius: var(--bps-d-radius, 6px);
}
body .bps-sec .bps-col-small img {
  width: 100%;
  aspect-ratio: var(--bps-d-col-small-ratio, 4/5);
  object-fit: cover;
  border-radius: var(--bps-d-radius, 6px);
}
@media (min-width: 768px) {
  body .bps-sec .bps-collage.e-con {
    padding-bottom: var(--bps-d-col-drop, 4rem);
  }
  body .bps-sec .bps-col-big {
    width: var(--bps-d-col-big-w, 80%);
  }
  body .bps-sec .bps-col-small {
    position: absolute;
    right: 0;
    bottom: 0;
    width: var(--bps-d-col-small-w, 26%);
    border: var(--bps-d-col-frame, 6px) solid var(--bps-d-bg);
  }
}
@media (max-width: 767px) {
  body .bps-sec .bps-col-big img {
    aspect-ratio: 1.3333333333;
  }
  body .bps-sec .bps-col-small {
    width: 60%;
    margin: calc(-1 * var(--bps-d-space-7, 3rem)) 0 0 auto;
    border: 6px solid var(--bps-d-bg);
  }
}
/* ── Leaders: term ........ value ── */
body .bps-sec .bps-leaders ul {
  display: grid;
  gap: var(--bps-d-space-2, 0.5rem);
}
body .bps-sec .bps-leaders li {
  display: flex;
  align-items: baseline;
  gap: var(--bps-d-space-3, 0.75rem);
  font-size: var(--bps-d-text-base, 1rem);
}
body .bps-sec .bps-leaders li::after {
  content: none;
}
body .bps-sec .bps-ld-t {
  display: flex;
  flex: 1;
  gap: var(--bps-d-space-3, 0.75rem);
  align-items: baseline;
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-weight-medium, 500);
}
body .bps-sec .bps-ld-t::after {
  content: "";
  flex: 1;
  border-bottom: 1px dotted var(--bps-d-line-strong);
}
body .bps-sec .bps-ld-v {
  font-style: italic;
  color: var(--bps-d-ink-muted);
}
body .bps-sec .bps-leaders p.bps-ld-head {
  margin: 0 0 var(--bps-d-space-3, 0.75rem);
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: 700;
  color: var(--bps-d-ink-muted);
}
body .bps-sec .bps-leaders p.bps-ld-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--bps-d-space-4, 1rem);
  max-width: none;
  margin: var(--bps-d-space-4, 1rem) 0 0;
  padding-top: var(--bps-d-space-4, 1rem);
  border-top: 1px solid var(--bps-d-line-strong);
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-lg, 1.25rem);
  font-weight: 700;
  line-height: 1.1;
}
body .bps-sec .bps-leaders .bps-ld-price {
  font-size: var(--bps-d-ld-price, clamp(2.5rem, 2rem + 2vw, 4rem));
  font-weight: 800;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
body .bps-sec .bps-leaders.bps-ld-big p.bps-ld-total {
  border-top: var(--bps-d-rule-ink, 2px solid var(--bps-d-ink));
}
body .bps-sec .bps-leaders.bps-ld-big .bps-ld-price {
  font-size: var(--bps-d-ld-price-big, clamp(3.5rem, 3rem + 2vw, 4.5rem));
}
body .bps-sec .bps-fold {
  border-top: 1px solid var(--bps-d-line);
}
body .bps-sec .bps-fold details {
  border-bottom: 1px solid var(--bps-d-line);
}
body .bps-sec .bps-fold summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bps-d-space-3, 0.75rem);
  min-height: var(--bps-d-tap, 44px);
  padding-block: var(--bps-d-space-3, 0.75rem);
  font-weight: 700;
  list-style: none;
  cursor: pointer;
}
body .bps-sec .bps-fold summary::-webkit-details-marker {
  display: none;
}
body .bps-sec .bps-fold summary::after {
  content: "+";
  flex: none;
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-size: var(--bps-d-text-lg, 1.25rem);
  line-height: 1;
}
body .bps-sec .bps-fold details[open] summary {
  color: var(--bps-d-accent-ink, var(--bps-d-primary));
}
body .bps-sec .bps-fold details[open] summary::after {
  content: "−";
}
body .bps-sec .bps-fold details > :not(summary) {
  margin: 0;
  padding-bottom: var(--bps-d-space-4, 1rem);
}
/* ── Big rows: a menu of kinds, the title at display size ── */
body .bps-sec .bps-bigrows.e-con {
  display: grid;
  border-top: 1px solid var(--bps-d-ink);
}
body .bps-sec .bps-bigrow.e-con {
  display: grid;
  gap: var(--bps-d-space-2, 0.5rem);
  padding-block: var(--bps-d-space-5, 1.5rem) var(--bps-d-space-6, 2rem);
  border-bottom: 1px solid var(--bps-d-ink);
}
body .bps-sec .bps-bigrow-t {
  font-family: var(--bps-d-font-display, var(--font-heading, system-ui, sans-serif));
  font-weight: var(--bps-d-weight-h1, var(--bps-d-weight-display, 700));
  font-size: var(--bps-d-bigrow-size, var(--bps-d-text-3xl, var(--step-5, 2.375rem)));
  line-height: 1;
  letter-spacing: var(--bps-d-tracking-display, -0.01em);
}
body .bps-sec .bps-bigrow-n {
  font-style: italic;
  color: var(--bps-d-muted-ink, var(--bps-d-ink-muted));
  font-size: var(--bps-d-text-base, 1rem);
}
body .bps-sec .bps-head.bps-head-row.e-con {
  max-width: none;
  margin-bottom: var(--bps-d-head-row-mb, var(--bps-d-head-gap, var(--bps-d-space-7, 3rem)));
}
@media (min-width: 1025px) {
  body .bps-sec .bps-head.bps-head-row.e-con {
    display: grid;
    grid-template-columns: var(--bps-d-head-row-cols, minmax(0, 1fr) minmax(0, 1fr));
    gap: var(--bps-d-head-row-gap, var(--bps-d-space-4, 1rem));
    justify-content: var(--bps-d-head-row-justify, normal);
    align-items: end;
  }
}
body .bps-sec .bps-brand.bps-brand-mark a {
  grid-template-columns: auto auto;
  column-gap: var(--bps-d-mark-gap, var(--bps-d-space-3, 0.75rem));
  align-items: center;
  justify-content: start;
}
body .bps-sec .bps-brand.bps-brand-mark a::before {
  content: "";
  grid-row: 1 / span 2;
  width: var(--bps-d-mark-w, 1.5rem);
  height: var(--bps-d-mark-h, 1.25rem);
}
body .bps-sec .bps-brand.bps-brand-mark .bps-bn, body .bps-sec .bps-brand.bps-brand-mark .bps-bs {
  line-height: var(--bps-d-mark-leading, 1.1);
  margin: 0;
}
body .bps-sec.bps-by-row .bps-quote-by.e-con, body .bps-sec.bps-by-row .bps-qg-by.e-con {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--bps-d-by-gap, var(--bps-d-space-3, 0.75rem));
  align-items: var(--bps-d-by-align, center);
}
body .bps-sec.bps-by-row .bps-quote-by > .elementor-element, body .bps-sec.bps-by-row .bps-qg-by > .elementor-element {
  width: auto;
}
@media (min-width: 1025px) {
  body .bps-sec.e-con .bps-bleed-right {
    margin-right: calc(-1 * (max(0px, calc((100vw - var(--bps-d-container, 1200px)) / 2)) + var(--bps-d-gutter, clamp(1rem, 4vw, 2rem))));
  }
}
body .bps-sec.bps-argument .bps-wrap.e-con {
  display: grid;
  gap: var(--bps-d-arg-wrap-gap, var(--bps-d-space-6, 2rem));
}
body .bps-sec .bps-arg-h .elementor-heading-title {
  font-size: var(--bps-d-arg-size, var(--bps-d-text-4xl, var(--step-6, 3rem)));
  max-width: var(--bps-d-arg-measure, 14ch);
  line-height: var(--bps-d-arg-leading, 1.04);
}
body .bps-sec .bps-arg-body.e-con {
  display: grid;
  gap: var(--bps-d-arg-gap, var(--bps-d-space-5, 1.5rem));
  max-width: var(--bps-d-arg-body-measure, 42rem);
  padding-top: var(--bps-d-arg-rule-gap, 0px);
  border-top: var(--bps-d-arg-rule-w, 0px) solid var(--bps-d-arg-rule-c, var(--bps-d-ink));
}
@media (min-width: 1025px) {
  body .bps-sec .bps-arg-body.e-con {
    margin-left: var(--bps-d-arg-offset, 41.6%);
  }
}
.accent {
  --bg: var(--light-accent);
  --bg2: var(--light-accent);
  --bg3: var(--light-accent);
  --text-color: var(--light-accent-text);
  --text-color2: var(--light-accent-text);
  --text-color3: var(--light-accent-text);
  --text-highlight: var(--light-accent-text);
  --text-highlight2: var(--light-accent-text);
  --border-color: color-mix(in srgb, var(--light-accent-text) 28%, transparent);
  --accent: var(--light-accent-text);
  --accent-text: var(--light-accent);
  --accent-2: var(--light-accent-text);
  --accent-text-2: var(--light-accent);
  --accent-3: var(--light-accent-text);
  --accent-text-3: var(--light-accent);
  --b-border-color: var(--border-color);
  --e-border-color: var(--border-color);
  --button-color: var(--light-accent-text);
  --button-color-text: var(--light-accent);
  --button-border-color: var(--light-accent-text);
  --button-ghost-color-text: var(--light-accent-text);
  --icon-color: var(--light-accent-text);
}
.section.accent {
  background-color: var(--bg);
  color: var(--text-color);
}
.section.accent :is(h1, h2, h3, h4, h5, h6, p):where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.accent a:where(:not(.override)):where(:not(.override *)) {
  color: var(--link-color, var(--text-color));
}

