/* 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-2);
  --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;
}
/* 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 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.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;
}
/* ── 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);
}
/* ── 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);
}
/* ── 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;
  }
}
/* ── 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;
  }
  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-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;
}
/* 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) ── */
@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-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);
}
/* ── 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);
}
/* ── 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));
}

