.elementor-13620 .elementor-element.elementor-element-30915d8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3011c3a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30024c2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-300fd4b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-300de5c{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30213b2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-301f4c3{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-301b6e5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-303a5d5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30386e6{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30367f7{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3028f6e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-302ec3b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3034908{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3045f6f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3044080{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30402a2{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30707f9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-306e90a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3051909{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-304fa1a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-306ca1b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30594c5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-305f192{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3064e5f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-306ab2c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-307c193{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-307a2a4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-30764c6{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-307ff71{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3087b2d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13620 .elementor-element.elementor-element-3085c3e{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}/* Start custom CSS *//* ==========================================================================
   BP — Home (Phase 10 art-direction rebuild): page-specific CSS only.
   Lives in the Home page's Custom CSS (page 13620). Nothing here is global, and
   no shared component class is styled: every body.elementor-page-13620 is scoped to .bp-home-main.
   Tokens: #1A1A1A · #555555 · #F7941D (Place Order only, via the Kit button) ·
   #E8E8E8 · #FAFAFA · #FFFFFF · Manrope (display) · Inter (text).
   Spacing: 8px grid, varied multiples (64 / 96 / 128 / 144) by role.
   ========================================================================== */

/* ==========================================================================
   H. HEADER ON HOME ONLY (Phase 10.2) — a floating, lightly blurred bar.
   Header template 13510 is NOT edited: these rules are scoped to this page's
   body class (the same pattern as the interior pages' solid header), so no
   other page changes. The bar is inset from the viewport (16 / 24 desktop,
   12 / 12 phone), tinted charcoal and blurred over the photograph so the white
   nav keeps AA, and turns into a near-solid white bar once the page scrolls.
   It is navigation, not a content surface: no shadow, no glow, 4px corner.
   The site's one glass *content* surface stays the Contact portal callout.
   ========================================================================== */
body.page-id-13620 .bp-header {
  width: auto;                     /* the template sets 100%; the insets define the width */
  top: 16px;
  left: 24px;
  right: 24px;
  min-height: 72px;
  padding: 0;                      /* the template adds 0 24px; the inner row owns the inset */
  gap: 0;                          /* the template's 20px column gap before an empty second child pushed the row to the top */
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 4px;
  background-color: rgba(26, 26, 26, .26);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
  backdrop-filter: blur(16px) saturate(1.1);
  box-shadow: none;
}
body.page-id-13620.admin-bar .bp-header { top: calc(var(--bp-adminbar-h, 32px) + 16px); }
/* the logo sits on the same 80px line as the hero copy and every section below */
body.page-id-13620 .bp-header .bp-header__inner { padding: 0 max(56px, calc((100% - 1280px) / 2)); }
body.page-id-13620 .bp-header .bp-header__inner > .e-con-inner { max-width: none; padding: 0; }
body.page-id-13620 .bp-header.is-scrolled {
  border-color: rgba(26, 26, 26, .08);
  background-color: rgba(255, 255, 255, .92);
  box-shadow: none;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body.page-id-13620 .bp-header { background-color: rgba(26, 26, 26, .55); }
  body.page-id-13620 .bp-header.is-scrolled { background-color: #FFFFFF; }
}
@media (max-width: 1024px) {
  body.page-id-13620 .bp-header .bp-header__inner { padding: 0 24px; }
}
@media (max-width: 767px) {
  body.page-id-13620 .bp-header { top: 12px; left: 12px; right: 12px; min-height: 64px; }
  body.page-id-13620.admin-bar .bp-header { top: calc(var(--bp-adminbar-h, 0px) + 12px); }
  body.page-id-13620 .bp-header .bp-header__inner { padding: 0 2px 0 16px; }
  /* Place Order stays a full 44px tap target on the phone */
  body.page-id-13620 .bp-header .bp-cta .elementor-button { min-height: 44px; display: inline-flex; align-items: center; }
  /* open menu: the overlay is position:fixed inside the header, and a backdrop-filter
     would make the header its containing block, so the blur is removed while open */
  body.page-id-13620 .bp-header.bp-nav-open {
    border-color: transparent;
    background-color: #FFFFFF;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* ---------- 0. page frame ---------- */
.bp-home-main.e-con {
  --g: 80px;                                   /* side gutter */
  --edge: max(var(--g), calc((100% - 1280px) / 2)); /* the grid's left edge */
  display: block;
  width: 100%;
  padding: 0;
  background: #FFFFFF;
}
.bp-home-main .e-con { --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.bp-home-main .elementor-widget:not(:last-child) { margin-block-end: 0; }
.bp-home-main .bp-home-compare-js { display: none; }

/* plain text link (secondary actions, never a second button) */
.bp-home-main .bp-textlink {
  font: 600 15px/1.4 "Inter", sans-serif;
  color: #1A1A1A;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(26, 26, 26, .35);
  text-underline-offset: 6px;
  transition: text-decoration-color .2s ease;
}
.bp-home-main .bp-textlink:hover { color: #1A1A1A; text-decoration-color: #F7941D; text-decoration-thickness: 2px; }
.bp-home-main .bp-textlink:focus { outline: none; }
.bp-home-main .bp-textlink:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 3px; border-radius: 2px; }
.bp-home-main .elementor-button:focus { outline: none; }
.bp-home-main .elementor-button:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 3px; }

/* section heading row (Services, Selected Work) */
.bp-home-main .bp-home-head.e-con {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px 24px;
  margin: 0 0 48px;
  padding: 0;
}
.bp-home-main .bp-home-head__title .elementor-heading-title {
  margin: 0;
  font: 700 40px/1.1 "Manrope", sans-serif;
  letter-spacing: -.015em;
  color: #1A1A1A;
}
.bp-home-main .bp-home-head__link p { margin: 0; }

/* ==========================================================================
   1. HERO — the finished result. (Phase 10.1) The copy is a white editorial
   panel floating centre-left inside the photograph, on the grid's left edge
   and in the empty sky / treeline, clear of the pavilion and most of the pool,
   with image visible on every side. It never touches a frame edge.
   The photo stays top-anchored (object-position y 0%): the dark upper sky
   under the transparent header is what keeps the white nav ≥ AA.
   ========================================================================== */
.bp-home-main .bp-home-hero.e-con {
  position: relative;
  display: block;
  width: 100%;
  height: min(100vh, 62.5vw);
  min-height: 600px;
  padding: 0;
  overflow: hidden;
  background: #1A1A1A; /* only visible before the photograph paints */
}
.bp-home-main .bp-home-hero__media.e-con { position: absolute; inset: 0; display: block; padding: 0; }
.bp-home-main .bp-home-hero__image { position: absolute; inset: 0; margin: 0; }
.bp-home-main .bp-home-hero__image .elementor-widget-container { height: 100%; }
/* Phase 10.2 depth: the photograph lags the scroll by up to 24px (bp-home-depth.js).
   The layer is 24px taller than the frame at the bottom, so no edge ever shows. */
.bp-home-main .bp-home-hero__depth {
  position: absolute;
  inset: 0 0 -24px 0;
  transform: translate3d(0, var(--bp-py, 0px), 0);
  will-change: transform;
}
.bp-home-main .bp-home-hero__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 0%;
}
.bp-home-main .bp-home-hero__panel.e-con {
  position: absolute;
  z-index: 3;
  left: var(--edge);               /* 80px at 1440: on the 1280 grid */
  top: calc(50% + 44px);           /* Phase 10.2: centred in the photo area below the floating header */
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 540px;
  max-width: calc(100% - 2 * var(--g));
  padding: 40px;
  background: #FFFFFF;
  border-radius: 2px;
}
.bp-home-main .bp-home-hero__eyebrow p {
  margin: 0 0 20px;
  font: 500 13px/1.4 "Inter", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #555555;
}
/* the site's one oversized headline (DDF §4) */
.bp-home-main .bp-home-hero__title .elementor-heading-title {
  margin: 0 0 16px;
  font: 800 clamp(40px, 4.4vw, 64px)/1.02 "Manrope", sans-serif;
  letter-spacing: -.02em;
  color: #1A1A1A;
}
.bp-home-main .bp-home-hero__sub p {
  margin: 0 0 32px;
  max-width: 44ch;
  font: 400 17px/1.6 "Inter", sans-serif;
  color: #555555;
}
.bp-home-main .bp-home-hero__actions.e-con {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  width: auto;
  padding: 0;
}
.bp-home-main .bp-home-hero__link p { margin: 0; }

/* ==========================================================================
   Home Before / After (.bp-hba) — Before LEFT, After RIGHT.
   The "before" layer sits on top, clipped to the divider; the "after"
   photograph is the base. The whole surface is the (invisible) native range
   input. The divider is a precise 2px line with a slim bar grip.
   ========================================================================== */
.bp-home-main .bp-hba-wrap .elementor-widget-container { display: block; }
.bp-hba {
  --bp-hba-pos: 50%;
  position: relative;
  width: 100%;
  aspect-ratio: var(--bp-hba-ratio, 3 / 2);
  overflow: hidden;
  background: #E8E8E8;
  isolation: isolate;
}
.bp-hba .bp-hba__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  object-fit: cover;
  object-position: var(--bp-hba-focus, 50% 50%);
}
.bp-hba .bp-hba__before {
  position: absolute;
  inset: 0;
  z-index: 1;
  clip-path: inset(0 calc(100% - var(--bp-hba-pos)) 0 0);
  will-change: clip-path;
}
.bp-hba .bp-hba__input {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: ew-resize;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  touch-action: pan-y; /* horizontal drags go to the slider; vertical swipes still scroll */
}
.bp-hba .bp-hba__input::-webkit-slider-runnable-track { height: 100%; background: transparent; }
.bp-hba .bp-hba__input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 2px; height: 100%; }
.bp-hba .bp-hba__input::-moz-range-track { height: 100%; background: transparent; }
.bp-hba .bp-hba__input::-moz-range-thumb { width: 2px; height: 100%; border: 0; background: transparent; }

.bp-hba .bp-hba__divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--bp-hba-pos);
  z-index: 2;
  width: 2px;
  margin-left: -1px;
  background: #FFFFFF;
  pointer-events: none;
}
.bp-hba .bp-hba__knob {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 56px;
  margin: -28px 0 0 -5px;
  background: #FFFFFF;
  border-radius: 2px;
  outline: 1px solid rgba(26, 26, 26, .18);
}
/* keyboard focus: a charcoal ring on the frame + a charcoal/white ring on the grip */
.bp-hba:has(.bp-hba__input:focus-visible) { outline: 2px solid #1A1A1A; outline-offset: 4px; }
.bp-hba .bp-hba__input:focus { outline: none; }
.bp-hba .bp-hba__input:focus-visible ~ .bp-hba__divider .bp-hba__knob { outline: 2px solid #1A1A1A; outline-offset: 2px; }

.bp-hba .bp-hba__label {
  position: absolute;
  top: 20px;
  z-index: 2;
  font: 600 11px/1 "Inter", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #FFFFFF;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .55);
  pointer-events: none;
}
.bp-hba .bp-hba__label--before { left: 20px; }
.bp-hba .bp-hba__label--after { right: 20px; }

/* ==========================================================================
   2. TRUST BRIDGE (Phase 11) — replaces the Day-to-Dusk signature.
   One architectural object: a warm #F6F4F0 panel on the header's 24px line with
   a 40px corner — a deliberate, Home-only exception to the 2px language — that
   rises 72px over the hero photograph. Inside: who Beepec is for, a slow strip
   of finished photographs and audience names, and drafting-line hexagons taken
   from the logo mark. No logos, no partner names, no numbers.
   Prototype B of three (A editorial band, C anti-grid) — see the Phase 11 report.
   ========================================================================== */
.bp-home-main .bp-home-trust.e-con {
  position: relative;
  z-index: 4;
  display: block;
  width: 100%;
  margin-top: -72px;               /* the panel rises over the photograph's lower edge */
  padding: 0 24px 24px;
  background: transparent;
}
.bp-home-main .bp-home-trust__panel.e-con {
  --in: max(56px, calc((100% - 1280px) / 2));  /* back onto the 80px grid line */
  position: relative;
  display: block;
  overflow: hidden;
  padding: 104px 0 32px;
  background: #F6F4F0;
  border-radius: 40px;
}
/* drafting-line hexagons (decorative) */
.bp-home-main .bp-home-trust__geo-wrap {
  position: absolute;
  top: -150px;
  right: -110px;
  z-index: 0;
  width: 880px;
  max-width: none;
  pointer-events: none;
}
.bp-home-main .bp-home-trust__geo { transform: translate3d(0, var(--bp-py, 0px), 0); will-change: transform; }
.bp-home-main .bp-home-trust__geo svg { display: block; width: 100%; height: auto; overflow: visible; }
.bp-home-main .bp-home-trust__head.e-con { position: relative; z-index: 1; display: block; max-width: calc(640px + var(--in)); padding: 0 0 0 var(--in); }
.bp-home-main .bp-home-trust__eyebrow p {
  margin: 0 0 24px;
  font: 500 13px/1.4 "Inter", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #555555;
}
.bp-home-main .bp-home-trust__title .elementor-heading-title {
  margin: 0;
  max-width: 14ch;
  font: 800 clamp(40px, 4vw, 58px)/1.02 "Manrope", sans-serif;  /* stays below the hero H1 */
  letter-spacing: -.03em;
  color: #1A1A1A;
}
.bp-home-main .bp-home-trust__sub p { margin: 24px 0 0; max-width: 40ch; font: 400 17px/1.6 "Inter", sans-serif; color: #555555; }

/* the strip: a duplicated track, moved by transform only */
.bp-home-main .bp-home-trust__strip { position: relative; z-index: 1; margin: 80px 0 0; }
.bp-home-main .bp-home-trust__strip .elementor-widget-container { display: block; }
/* Phase 11.1: the drift and the drag are both driven by bp-home-marquee.js (transform only).
   touch-action: pan-y hands vertical swipes to the browser, so the page still scrolls. */
.bp-marquee { overflow: hidden; cursor: grab; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.bp-marquee.is-dragging { cursor: grabbing; }
.bp-marquee__track { display: flex; width: max-content; will-change: transform; }
.bp-marquee img { -webkit-user-drag: none; pointer-events: none; }
.bp-marquee__set { display: flex; align-items: center; gap: 56px; margin: 0; padding: 0 56px 0 0; list-style: none; }
.bp-marquee__item { flex: 0 0 auto; margin: 0; }
.bp-marquee__item--word {
  font: 600 clamp(24px, 2.3vw, 34px)/1.1 "Manrope", sans-serif;
  letter-spacing: -.01em;
  white-space: nowrap;
  color: #1A1A1A;
}
.bp-marquee .bp-marquee__img { display: block; width: 264px; height: 176px; max-width: none; object-fit: cover; border-radius: 4px; }
/* visible stop control (WCAG 2.2.2); quiet, text-only, a 44px target */
.bp-home-main .bp-home-trust .bp-marquee__toggle,
.bp-home-main .bp-home-trust .bp-marquee__toggle:hover,
.bp-home-main .bp-home-trust .bp-marquee__toggle:focus {
  display: block;
  min-height: 44px;
  margin: 16px var(--in) 0 auto;
  padding: 12px 0;
  background-color: transparent !important;  /* Astra paints every <button> with its accent */
  background-image: none;
  border: 0;
  border-radius: 2px;
  box-shadow: none;
  font: 500 13px/1.4 "Inter", sans-serif;
  letter-spacing: .02em;
  color: #555555;
  text-decoration: underline;
  text-decoration-color: rgba(85, 85, 85, .4);
  text-underline-offset: 5px;
  cursor: pointer;
}
.bp-home-main .bp-home-trust .bp-marquee__toggle:hover { color: #1A1A1A; text-decoration-color: #F7941D; }
.bp-home-main .bp-home-trust .bp-marquee__toggle:focus { outline: none; }
.bp-home-main .bp-home-trust .bp-marquee__toggle:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 3px; }

@media (max-width: 1024px) {
  .bp-home-main .bp-home-trust.e-con { margin-top: -56px; }
  .bp-home-main .bp-home-trust__panel.e-con { --in: 24px; padding-top: 88px; border-radius: 32px; }
  .bp-home-main .bp-home-trust__geo-wrap { top: -120px; right: -260px; width: 720px; }
  .bp-home-main .bp-home-trust__strip { margin-top: 64px; }
  .bp-marquee .bp-marquee__img { width: 228px; height: 152px; }
}
@media (max-width: 767px) {
  /* phone: no overlap (the hero panel sits 24px above the photo's edge); the panel keeps
     the header's 12px frame; one strip, larger items, fewer at once */
  .bp-home-main .bp-home-trust.e-con { margin-top: 12px; padding: 0 12px 12px; }
  .bp-home-main .bp-home-trust__panel.e-con { --in: 20px; padding: 64px 0 16px; border-radius: 24px; }
  .bp-home-main .bp-home-trust__geo-wrap { top: 120px; right: -250px; width: 520px; } /* enters from the right edge, behind the statement and strip */
  .bp-home-main .bp-home-trust__eyebrow p { margin-bottom: 16px; font-size: 12px; }
  .bp-home-main .bp-home-trust__title .elementor-heading-title { font-size: 34px; line-height: 1.05; }
  .bp-home-main .bp-home-trust__sub p { margin-top: 16px; font-size: 16px; line-height: 1.5; padding-right: 20px; }
  .bp-home-main .bp-home-trust__strip { margin-top: 44px; }
  .bp-marquee__set { gap: 32px; padding-right: 32px; }
  .bp-marquee__item--word { font-size: 22px; }
  .bp-marquee .bp-marquee__img { width: 180px; height: 120px; }
  .bp-home-main .bp-home-trust .bp-marquee__toggle { margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  /* reduced motion: no drift; a normal, natively scrollable strip (one set, no duplicate) */
  .bp-marquee { overflow-x: auto; overscroll-behavior-x: contain; cursor: auto; touch-action: auto; scrollbar-width: thin; }
  .bp-marquee__track { transform: none !important; will-change: auto; }
  .bp-marquee__set + .bp-marquee__set { display: none; }
  .bp-home-main .bp-home-trust .bp-marquee__toggle { display: none; }
}

/* ==========================================================================
   3. HOW IT WORKS — compact charcoal band right after the trust bridge. Heading
   left, three steps right; the step rules join into one continuous line.
   ========================================================================== */
.bp-home-main .bp-home-process.e-con { display: block; width: 100%; padding: 88px var(--g); background: #1A1A1A; }
.bp-home-main .bp-home-process__inner.e-con {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  align-items: end;
  column-gap: 64px;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding: 0;
}
.bp-home-main .bp-home-process__title .elementor-heading-title {
  margin: 0;
  font: 700 40px/1.1 "Manrope", sans-serif;
  letter-spacing: -.015em;
  color: #FFFFFF;
}
.bp-home-main .bp-home-process__steps.e-con {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
}
.bp-home-main .bp-home-process__step.e-con { display: flex; flex-direction: column; min-width: 0; padding: 0; }
.bp-home-main .bp-home-process__num .elementor-heading-title {
  margin: 0 0 16px;
  font: 800 88px/.9 "Manrope", sans-serif;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
  color: rgba(246, 244, 240, .32);
}
.bp-home-main .bp-home-process__step-title .elementor-heading-title {
  margin: 0;
  padding: 20px 32px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .24);
  font: 600 20px/1.3 "Manrope", sans-serif;
  color: #FFFFFF;
}

/* ==========================================================================
   4. SERVICES — one lead (large proof), then a typographic index.
   ========================================================================== */
.bp-home-main .bp-home-services.e-con { display: block; width: 100%; padding: 144px var(--g) 144px; background: #FFFFFF; } /* 10.3: bottom edge before the portal band */
.bp-home-main .bp-home-services__inner.e-con { display: block; width: 100%; max-width: 1280px; margin-inline: auto; padding: 0; }
.bp-home-main .bp-home-services__grid.e-con {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  column-gap: 80px;
  align-items: start;
  padding: 0;
}
.bp-home-main .bp-home-lead.e-con { display: block; padding: 0; }
.bp-home-main .bp-hba--lead { --bp-hba-ratio: 3 / 2; }
.bp-home-main .bp-home-lead__body.e-con { display: block; padding: 24px 0 0; }
.bp-home-main .bp-home-lead__name .elementor-heading-title,
.bp-home-main .bp-home-index__name .elementor-heading-title {
  margin: 0;
  font: 600 32px/1.15 "Manrope", sans-serif;
  letter-spacing: -.01em;
  color: #1A1A1A;
}
.bp-home-main .bp-home-lead__name a,
.bp-home-main .bp-home-index__name a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(26, 26, 26, .25);
  text-underline-offset: 7px;
  transition: text-decoration-color .2s ease;
}
.bp-home-main .bp-home-lead__name a:hover,
.bp-home-main .bp-home-index__name a:hover { color: #1A1A1A; text-decoration-color: #F7941D; text-decoration-thickness: 2px; }
.bp-home-main .bp-home-lead__name a:focus-visible,
.bp-home-main .bp-home-index__name a:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 4px; border-radius: 2px; }
.bp-home-main .bp-home-lead__desc p,
.bp-home-main .bp-home-index__desc p {
  margin: 12px 0 0;
  max-width: 48ch;
  font: 400 16px/1.6 "Inter", sans-serif;
  color: #555555;
}
.bp-home-main .bp-home-lead__meta p { margin: 8px 0 0; font: 500 14px/1.5 "Inter", sans-serif; color: #555555; }
.bp-home-main .bp-home-index.e-con { display: block; padding: 0; }
.bp-home-main .bp-home-index__item.e-con { display: block; padding: 28px 0 32px; border-top: 1px solid #E8E8E8; }
.bp-home-main .bp-home-index__item.e-con:first-child { padding-top: 0; border-top: 0; }
.bp-home-main .bp-home-index__item.e-con:last-child { padding-bottom: 0; }

/* ==========================================================================
   5a. CLIENT PORTAL (Phase 10.2): the digital half of the story.
   Photography sections are tactile; this one is precise: a warm surface,
   hairlines, tabular type, one orange action. Typography left, a large
   portal illustration that runs past the grid to the header's 24px line and
   floats slightly ahead of the scroll, two small layers ahead of it, then the
   four capabilities set as type (no icons, no cards).
   ========================================================================== */
.bp-home-main .bp-home-portal.e-con { display: block; width: 100%; padding: 152px var(--g) 136px; background: #F6F4F0; overflow: hidden; }
.bp-home-main .bp-home-portal__inner.e-con { display: block; width: 100%; max-width: 1280px; margin-inline: auto; padding: 0; }
.bp-home-main .bp-home-portal__head.e-con {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  grid-template-areas: "eyebrow eyebrow" "title aside";
  align-items: end;
  column-gap: 80px;
  padding: 0;
}
.bp-home-main .bp-home-portal__eyebrow { grid-area: eyebrow; }
.bp-home-main .bp-home-portal__title { grid-area: title; }
.bp-home-main .bp-home-portal__aside.e-con { grid-area: aside; display: block; padding: 0 0 8px; }
.bp-home-main .bp-home-portal__eyebrow p {
  margin: 0 0 24px;
  font: 500 13px/1.4 "Inter", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #555555;
}
.bp-home-main .bp-home-portal__title .elementor-heading-title {
  margin: 0;
  font: 800 clamp(40px, 3.9vw, 56px)/1.02 "Manrope", sans-serif; /* 10.3: below the H1 */
  letter-spacing: -.03em;
  color: #1A1A1A;
}
.bp-home-main .bp-home-portal__sub p { margin: 0; max-width: 40ch; font: 400 17px/1.6 "Inter", sans-serif; color: #555555; }
.bp-home-main .bp-home-portal__link p { margin: 20px 0 0; }

/* stage: runs past the right grid edge to the header's 24px line */
/* (0,5,0) beats Elementor's .elementor.elementor .e-con>.elementor-widget { max-width: 100% } */
.bp-home-main.e-con .e-con > .elementor-widget.bp-home-portal__stage { width: calc(100% + var(--g) - 24px); max-width: none; margin: 88px 0 0; }
.bp-portal { position: relative; padding: 0 0 64px; }
.bp-portal [data-bp-depth] { transform: translate3d(0, var(--bp-py, 0px), 0); will-change: transform; }
.bp-portal__window {
  position: relative;
  z-index: 1;
  overflow: hidden;
  background: #FFFFFF;
  border: 1px solid #E8E8E8;
  border-radius: 4px;
  box-shadow: 0 40px 80px -48px rgba(26, 26, 26, .28);
  font-family: "Inter", sans-serif;
  color: #1A1A1A;
}
.bp-portal__bar {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  background: #FAFAFA;
  border-bottom: 1px solid #E8E8E8;
}
.bp-portal__url {
  min-width: 280px;
  padding: 5px 14px;
  background: #FFFFFF;
  border: 1px solid #E8E8E8;
  border-radius: 4px;
  font: 500 12px/1.3 "Inter", sans-serif;
  color: #555555;
  text-align: center;
}
.bp-portal__app { display: grid; grid-template-columns: 224px minmax(0, 1fr); min-height: 520px; }
.bp-portal__side { padding: 28px 16px; border-right: 1px solid #E8E8E8; }
.bp-portal .bp-portal__logo { display: block; width: auto; height: 26px; max-width: none; margin: 0 0 32px 12px; }
.bp-portal ul { margin: 0; padding: 0; list-style: none; }
.bp-portal__side li { margin: 0 0 4px; padding: 10px 12px; border-radius: 2px; font: 500 14px/1.3 "Inter", sans-serif; color: #555555; }
.bp-portal__side li.is-active { background: #F6F4F0; color: #1A1A1A; box-shadow: inset 2px 0 0 #F7941D; }
.bp-portal__main { padding: 28px 36px 24px; }
.bp-portal__top { display: flex; align-items: center; justify-content: space-between; }
.bp-portal__h { font: 700 24px/1.2 "Manrope", sans-serif; letter-spacing: -.01em; }
.bp-portal__new { padding: 11px 18px; background: #F7941D; border-radius: 2px; font: 600 13px/1 "Inter", sans-serif; color: #1A1A1A; }
.bp-portal__tabs { display: flex; gap: 28px; margin: 20px 0 4px; border-bottom: 1px solid #E8E8E8; }
.bp-portal__tabs span { padding: 10px 0; margin-bottom: -1px; font: 500 13px/1.3 "Inter", sans-serif; color: #555555; }
.bp-portal__tabs span.is-active { color: #1A1A1A; border-bottom: 2px solid #1A1A1A; }
.bp-portal__row {
  display: grid;
  grid-template-columns: 52px minmax(0, 1.5fr) 112px minmax(0, 1fr); /* 4th column: open space under the Messages layer */
  align-items: center;
  column-gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid #E8E8E8;
}
.bp-portal__row:last-child { border-bottom: 0; }
.bp-portal .bp-portal__thumb { display: block; width: 52px; height: 52px; max-width: none; object-fit: cover; border-radius: 2px; }
.bp-portal__what { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bp-portal__what b { overflow: hidden; font: 600 14px/1.35 "Inter", sans-serif; white-space: nowrap; text-overflow: ellipsis; }
.bp-portal__what i { font: 400 13px/1.35 "Inter", sans-serif; font-style: normal; color: #555555; }
.bp-portal__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-self: start;
  padding: 5px 10px;
  border-radius: 2px;
  font: 600 12px/1.2 "Inter", sans-serif;
  white-space: nowrap;
  color: #1A1A1A;
}
.bp-portal__chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.bp-portal__chip.is-live { background: #F6F4F0; }
.bp-portal__chip.is-live::before { background: #F7941D; }
.bp-portal__chip.is-done { background: #FAFAFA; box-shadow: inset 0 0 0 1px #E8E8E8; }

/* the two layers ahead of the window */
.bp-portal__card {
  position: absolute;
  z-index: 2;
  padding: 20px 22px;
  background: #FFFFFF;
  border: 1px solid #E8E8E8;
  border-radius: 4px;
  box-shadow: 0 32px 64px -36px rgba(26, 26, 26, .34);
  font-family: "Inter", sans-serif;
}
.bp-portal__label { display: block; font: 600 11px/1.2 "Inter", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #555555; }
.bp-portal__card--msg { top: 128px; right: 56px; width: 300px; }
.bp-portal__card--msg p { margin: 10px 0 14px; font: 500 15px/1.5 "Inter", sans-serif; color: #1A1A1A; }
.bp-portal__from img { display: block; width: auto; height: 16px; max-width: none; }
.bp-portal__card--inv { left: -40px; bottom: 0; width: 280px; }
.bp-portal__card--inv ul { margin-top: 12px; }
.bp-portal__card--inv li { padding: 11px 0; border-top: 1px solid #E8E8E8; font: 500 14px/1.3 "Inter", sans-serif; color: #1A1A1A; }
.bp-portal__card--inv li:first-child { border-top: 0; }

/* the four capabilities, as type */
.bp-home-main .bp-home-portal__caps.e-con {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 32px;
  margin: 24px 0 0;
  padding: 0;
}
.bp-home-main .bp-home-portal__cap.e-con { display: block; padding: 20px 0 0; border-top: 1px solid rgba(26, 26, 26, .18); }
.bp-home-main .bp-home-portal__cap-name .elementor-heading-title { margin: 0; font: 600 20px/1.3 "Manrope", sans-serif; color: #1A1A1A; }
.bp-home-main .bp-home-portal__cap-desc p { margin: 8px 0 0; max-width: 30ch; font: 400 15px/1.55 "Inter", sans-serif; color: #555555; }

/* ==========================================================================
   5. SELECTED WORK — one dominant photograph, one supporting, bottom-aligned.
   Unmatted: the photographs are the frame.
   ========================================================================== */
.bp-home-main .bp-home-work.e-con { display: block; width: 100%; padding: 128px var(--g) 144px; background: #FFFFFF; }
.bp-home-main .bp-home-work__inner.e-con { display: block; width: 100%; max-width: 1280px; margin-inline: auto; padding: 0; }
.bp-home-main .bp-home-work__grid.e-con {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  column-gap: 32px;
  align-items: end;
  padding: 0;
}
.bp-home-main .bp-home-work__item.e-con { display: block; min-width: 0; padding: 0; }
.bp-home-main .bp-home-work__frame { position: relative; overflow: hidden; background: #E8E8E8; aspect-ratio: 4 / 3; }
.bp-home-main .bp-home-work__item--minor .bp-home-work__frame { aspect-ratio: 4 / 5; }
.bp-home-main .bp-home-work__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 50%;
}
.bp-home-main .bp-home-work__item--minor .bp-home-work__img { object-position: 40% 50%; }
.bp-home-main .bp-home-work__title .elementor-heading-title { margin: 16px 0 0; font: 600 17px/1.3 "Manrope", sans-serif; color: #1A1A1A; }
.bp-home-main .bp-home-work__meta p { margin: 4px 0 0; font: 500 14px/1.4 "Inter", sans-serif; color: #555555; }

/* ==========================================================================
   6. PAUSE — one panoramic, full-bleed photograph. Nothing on it.
   ========================================================================== */
.bp-home-main .bp-home-pause.e-con { display: block; width: 100%; padding: 0; }
.bp-home-main .bp-home-pause__figure { position: relative; margin: 0; height: clamp(320px, 36vw, 560px); overflow: hidden; background: #E8E8E8; }
.bp-home-main .bp-home-pause__depth {
  position: absolute;
  inset: -20px 0;
  transform: translate3d(0, var(--bp-py, 0px), 0);
  will-change: transform;
}
.bp-home-main .bp-home-pause__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 62%;
}

/* ==========================================================================
   7. CLOSE — compact and light: one decision, then the charcoal footer as a
   separate, functional moment.
   ========================================================================== */
.bp-home-main .bp-home-close.e-con { display: block; width: 100%; padding: 80px var(--g); background: #FFFFFF; }
.bp-home-main .bp-home-close__inner.e-con {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding: 0;
}
.bp-home-main .bp-home-close__title .elementor-heading-title {
  margin: 0;
  font: 700 clamp(28px, 2.8vw, 40px)/1.12 "Manrope", sans-serif;
  letter-spacing: -.015em;
  color: #1A1A1A;
}
.bp-home-main .bp-home-close__button { flex: 0 0 auto; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .bp-home-main .bp-textlink,
  .bp-home-main .bp-home-lead__name a,
  .bp-home-main .bp-home-index__name a { transition: none; }
  .bp-hba, .bp-hba * { transition: none !important; animation: none !important; }
  /* no parallax: layers sit still (the script also writes 0) */
  .bp-home-main [data-bp-depth] { transform: none !important; will-change: auto; }
  body.page-id-13620 .bp-header { transition: none; }
}

/* ==========================================================================
   TABLET ≤1024
   ========================================================================== */
@media (max-width: 1024px) {
  .bp-home-main.e-con { --g: 48px; }
  /* taller + anchored top-right keeps the darker upper sky under the nav (Phase 4 measurement) */
  .bp-home-main .bp-home-hero.e-con { height: min(100vh, 75vw); min-height: 560px; }
  .bp-home-main .bp-home-hero__img { object-position: 70% 0%; }
  .bp-home-main .bp-home-hero__panel.e-con { width: 440px; padding: 32px; }
  .bp-home-main .bp-home-hero__sub p { margin-bottom: 28px; }
  .bp-home-main .bp-home-head__title .elementor-heading-title,
  .bp-home-main .bp-home-process__title .elementor-heading-title { font-size: 34px; }
  .bp-home-main .bp-home-process.e-con { padding: 72px var(--g); }
  .bp-home-main .bp-home-process__inner.e-con { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
  .bp-home-main .bp-home-process__num .elementor-heading-title { font-size: 72px; }
  .bp-home-main .bp-home-services.e-con { padding-top: 112px; padding-bottom: 112px; }
  .bp-home-main .bp-home-services__grid.e-con { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 40px; }
  .bp-home-main .bp-home-index__item.e-con { padding: 20px 0 24px; }
  .bp-home-main .bp-home-lead__name .elementor-heading-title,
  .bp-home-main .bp-home-index__name .elementor-heading-title { font-size: 28px; }
  .bp-home-main .bp-home-work.e-con { padding: 96px var(--g) 112px; }
  .bp-home-main .bp-home-work__grid.e-con { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 24px; }
  .bp-home-main .bp-home-close.e-con { padding: 64px var(--g); }
  /* portal */
  .bp-home-main .bp-home-portal.e-con { padding: 112px var(--g) 104px; }
  .bp-home-main .bp-home-portal__head.e-con { grid-template-columns: minmax(0, 1fr); grid-template-areas: "eyebrow" "title" "aside"; row-gap: 24px; }
  .bp-home-main .bp-home-portal__eyebrow p { margin-bottom: 0; }
  .bp-home-main.e-con .e-con > .elementor-widget.bp-home-portal__stage { margin-top: 64px; }
  .bp-portal__app { grid-template-columns: 184px minmax(0, 1fr); min-height: 480px; }
  .bp-portal__main { padding: 24px 28px 20px; }
  .bp-portal__row { grid-template-columns: 48px minmax(0, 1.4fr) 108px minmax(0, .6fr); column-gap: 16px; }
  .bp-portal .bp-portal__thumb { width: 48px; height: 48px; }
  /* both layers hang below the window here, so neither covers a status */
  .bp-portal { padding-bottom: 112px; }
  .bp-portal__card--msg { top: auto; bottom: 0; right: 32px; width: 260px; }
  .bp-portal__card--inv { left: -24px; bottom: 24px; width: 240px; }
  .bp-home-main .bp-home-portal__caps.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
}

/* ==========================================================================
   MOBILE ≤767 — composed for the phone, not collapsed from the desktop:
   the hero is one frame with the copy on it; the proof runs edge to edge in
   4:5; nothing is matted; images take the full width.
   ========================================================================== */
@media (max-width: 767px) {
  .bp-home-main.e-con { --g: 20px; }

  /* hero: one cinematic frame, the full viewport; the panel floats in its lower part,
     inset on every side (20 left / 44 right / 48 bottom), below the pavilion */
  .bp-home-main .bp-home-hero.e-con { height: 100vh; height: 100svh; min-height: 640px; max-height: 900px; }
  .bp-home-main .bp-home-hero__img { object-position: 60% 0%; }
  .bp-home-main .bp-home-hero__depth { inset: 0 0 -10px 0; }
  .bp-home-main .bp-home-hero__panel.e-con {
    left: 12px;                    /* Phase 10.2: the same 12px inset as the floating header, */
    right: 12px;                   /* so bar, photograph and message read as one frame */
    top: auto;
    bottom: 24px;
    transform: none;
    width: auto;
    max-width: none;
    padding: 20px 16px 20px;
  }
  .bp-home-main .bp-home-hero__eyebrow p { margin-bottom: 12px; font-size: 12px; }
  .bp-home-main .bp-home-hero__title .elementor-heading-title { margin-bottom: 12px; font-size: 36px; line-height: 1.04; }
  .bp-home-main .bp-home-hero__sub p { margin-bottom: 20px; font-size: 16px; line-height: 1.5; }
  .bp-home-main .bp-home-hero__actions.e-con { gap: 12px 24px; }

  .bp-home-main .bp-home-head.e-con { margin-bottom: 28px; }
  .bp-home-main .bp-home-head__title .elementor-heading-title,
  .bp-home-main .bp-home-process__title .elementor-heading-title { font-size: 28px; }

  /* proof: edge to edge, 4:5 */
  .bp-hba .bp-hba__knob { width: 12px; height: 64px; margin: -32px 0 0 -6px; }
  .bp-hba .bp-hba__label { top: 16px; }
  .bp-hba .bp-hba__label--before { left: 16px; }
  .bp-hba .bp-hba__label--after { right: 16px; }

  /* process: three compact rows — numeral beside title */
  .bp-home-main .bp-home-process.e-con { padding: 56px var(--g) 64px; }
  .bp-home-main .bp-home-process__inner.e-con { row-gap: 28px; }
  .bp-home-main .bp-home-process__steps.e-con { grid-template-columns: minmax(0, 1fr); }
  .bp-home-main .bp-home-process__step.e-con {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
    padding: 16px 0;
    border-top: 1px solid rgba(255, 255, 255, .24);
  }
  .bp-home-main .bp-home-process__step.e-con:last-child { border-bottom: 1px solid rgba(255, 255, 255, .24); }
  .bp-home-main .bp-home-process__num .elementor-heading-title { margin: 0; font-size: 44px; }
  .bp-home-main .bp-home-process__step-title .elementor-heading-title { padding: 0; border-top: 0; font-size: 19px; }

  /* services: lead proof edge to edge (1:1), index as type */
  .bp-home-main .bp-home-services.e-con { padding: 80px 0 88px; }
  .bp-home-main .bp-home-head.e-con,
  .bp-home-main .bp-home-lead__body.e-con,
  .bp-home-main .bp-home-index.e-con { padding-left: var(--g); padding-right: var(--g); }
  .bp-home-main .bp-home-services__grid.e-con { grid-template-columns: minmax(0, 1fr); row-gap: 48px; }
  .bp-home-main .bp-hba--lead { --bp-hba-ratio: 1 / 1; --bp-hba-focus: 30% 50%; }
  .bp-home-main .bp-home-lead__body.e-con { padding-top: 20px; }
  .bp-home-main .bp-home-index.e-con { display: block; }
  .bp-home-main .bp-home-index__item.e-con,
  .bp-home-main .bp-home-index__item.e-con:first-child { padding: 20px 0 24px; border-top: 1px solid #E8E8E8; }
  .bp-home-main .bp-home-lead__name .elementor-heading-title,
  .bp-home-main .bp-home-index__name .elementor-heading-title { font-size: 24px; }
  .bp-home-main .bp-home-lead__desc p,
  .bp-home-main .bp-home-index__desc p { margin-top: 8px; font-size: 15px; }

  /* work: the twilight edge to edge in 4:5, the interior within the gutter */
  .bp-home-main .bp-home-work.e-con { padding: 80px 0 88px; }
  .bp-home-main .bp-home-work__grid.e-con { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
  .bp-home-main .bp-home-work__item--major .bp-home-work__frame { aspect-ratio: 4 / 5; }
  .bp-home-main .bp-home-work__item--major .bp-home-work__img { object-position: 42% 50%; }
  .bp-home-main .bp-home-work__item--major .bp-home-work__title,
  .bp-home-main .bp-home-work__item--major .bp-home-work__meta { padding: 0 var(--g); }
  .bp-home-main .bp-home-work__item--minor.e-con { padding: 0 var(--g); }
  .bp-home-main .bp-home-work__item--minor .bp-home-work__frame { aspect-ratio: 1 / 1; }

  .bp-home-main .bp-home-pause__figure { height: auto; aspect-ratio: 4 / 3; }

  .bp-home-main .bp-home-close.e-con { padding: 56px var(--g) 64px; }
  .bp-home-main .bp-home-close__inner.e-con { flex-direction: column; align-items: stretch; gap: 24px; }
  .bp-home-main .bp-home-close__button { width: 100%; }
  .bp-home-main .bp-home-close__button .elementor-button { display: flex; width: 100%; }

  /* portal: typography, then the window edge to edge from the gutter (bleeding off the
     right edge), one layer ahead of it, then the capabilities as rows */
  .bp-home-main .bp-home-portal.e-con { padding: 88px 0 80px; }
  .bp-home-main .bp-home-portal__head.e-con { padding: 0 var(--g); row-gap: 16px; }
  .bp-home-main .bp-home-portal__title .elementor-heading-title { font-size: 40px; line-height: 1.02; }
  .bp-home-main .bp-home-portal__sub p { font-size: 16px; }
  .bp-home-main.e-con .e-con > .elementor-widget.bp-home-portal__stage { width: 100%; margin-top: 48px; padding-left: var(--g); }
  .bp-portal { padding-bottom: 72px; }
  .bp-portal__window { border-right: 0; border-radius: 4px 0 0 4px; }
  .bp-portal__bar { justify-content: flex-start; padding-left: 16px; height: 40px; }
  .bp-portal__url { min-width: 0; padding: 4px 12px; }
  .bp-portal__app { display: block; min-height: 0; }
  .bp-portal__side { display: none; }
  .bp-portal__main { padding: 20px 16px 8px; }
  .bp-portal__h { font-size: 20px; }
  .bp-portal__new { padding: 10px 14px; font-size: 12px; }
  .bp-portal__tabs { gap: 20px; margin-top: 16px; }
  .bp-portal__row { grid-template-columns: 44px minmax(0, 1fr) auto; column-gap: 12px; padding: 12px 0; }
  .bp-portal__row:nth-child(n+5) { display: none; }
  .bp-portal .bp-portal__thumb { width: 44px; height: 44px; }
  .bp-portal__chip { padding: 4px 8px; font-size: 11px; }
  .bp-portal__card--msg { top: auto; right: 20px; bottom: 0; width: 248px; padding: 16px 18px; }
  .bp-portal__card--msg p { margin: 8px 0 10px; font-size: 14px; }
  .bp-portal__card--inv { display: none; }
  .bp-home-main .bp-home-portal__caps.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; row-gap: 24px; margin-top: 16px; padding: 0 var(--g); }
  .bp-home-main .bp-home-portal__cap.e-con { padding: 14px 0 0; }
  .bp-home-main .bp-home-portal__cap-name .elementor-heading-title { font-size: 17px; }
  .bp-home-main .bp-home-portal__cap-desc p { margin-top: 4px; font-size: 14px; line-height: 1.45; }
}

/* ==========================================================================
   BP — Home Phase 12 prototype layer ("The Edit"). Appended after the approved
   Home CSS (home.css) and scoped the same way (.bp-home-main / body.page-id-N).
   Changes: 1 hero (live Day-to-Dusk edit, copy on the photograph), 3 How it
   works (light, drawn line), 4 services film strip, 5 Selected Work mosaic,
   6 pause zoom, plus quiet section-head reveals. Motion only where it shows the
   edit; everything collapses to static under prefers-reduced-motion.
   Accent stays #F7941D (Place Order + the one drawn line + the progress bar).
   ========================================================================== */

/* ---------- 1. HERO: the photograph finishes itself ---------- */
.bp-home-main .bp-home-hero.e-con { height: min(100vh, 64vw); min-height: 620px; }
.bp-home-main .bp-home-hero__img--before { z-index: 1; }
.bp-home-main .bp-home-hero__img--after { z-index: 2; }
.bp-home-main .bp-home-hero__sweep {
  position: absolute; z-index: 3; top: 0; bottom: 0; left: 0; width: 2px;
  background: rgba(255, 255, 255, .9); opacity: 0; pointer-events: none;
}
/* armed by the inline script only when motion is allowed and both photographs can load */
.bp-home-main .bp-home-hero.is-armed .bp-home-hero__img--after { clip-path: inset(0 100% 0 0); }
.bp-home-main .bp-home-hero.is-armed .bp-home-hero__sweep { opacity: 1; }
.bp-home-main .bp-home-hero.is-run .bp-home-hero__img--after {
  clip-path: inset(0 0 0 0);
  transition: clip-path 1.8s cubic-bezier(.65, 0, .35, 1) .35s;
}
.bp-home-main .bp-home-hero.is-run .bp-home-hero__sweep {
  left: 100%; opacity: 0;
  transition: left 1.8s cubic-bezier(.65, 0, .35, 1) .35s, opacity .4s ease 2.05s;
}
/* legibility scrim for copy placed on the photograph (bottom-left) */
.bp-home-main .bp-home-hero.e-con::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    linear-gradient(to top, rgba(17, 17, 17, .82) 0%, rgba(17, 17, 17, .46) 34%, rgba(17, 17, 17, 0) 62%),
    linear-gradient(to right, rgba(17, 17, 17, .38) 0%, rgba(17, 17, 17, 0) 58%);
}
/* the white panel becomes plain type on the image, above the trust panel's 72px overlap */
.bp-home-main .bp-home-hero__panel.e-con {
  top: auto; bottom: 136px; transform: none;
  width: 680px; padding: 0; background: transparent; border-radius: 0;
}
.bp-home-main .bp-home-hero__eyebrow p { color: rgba(255, 255, 255, .86); margin-bottom: 18px; }
.bp-home-main .bp-home-hero__title .elementor-heading-title { color: #FFFFFF; font-size: clamp(44px, 5vw, 76px); line-height: 1.02; }
.bp-home-main .bp-home-hero__sub p { color: rgba(255, 255, 255, .92); font-size: 18px; }
.bp-home-main .bp-home-hero .bp-textlink { color: #FFFFFF; text-decoration-color: rgba(255, 255, 255, .55); }
.bp-home-main .bp-home-hero .bp-textlink:hover { color: #FFFFFF; text-decoration-color: #F7941D; }
.bp-home-main .bp-home-hero .bp-textlink:focus-visible,
.bp-home-main .bp-home-hero .elementor-button:focus-visible { outline-color: #FFFFFF; }

/* ---------- 3. HOW IT WORKS: light, one drawn line ---------- */
.bp-home-main .bp-home-process.e-con { padding: 112px var(--g) 104px; background: #FFFFFF; }
.bp-home-main .bp-home-process__title .elementor-heading-title { color: #1A1A1A; }
.bp-home-main .bp-home-process__num .elementor-heading-title { color: rgba(26, 26, 26, .14); }
.bp-home-main .bp-home-process__step-title .elementor-heading-title {
  color: #1A1A1A;
  border-top-color: #E8E8E8;
  background: linear-gradient(#F7941D, #F7941D) 0 -1px / 0% 2px no-repeat;
}

/* ---------- 4. SERVICES FILM STRIP ---------- */
/* default = vertical stack (phones, reduced motion, no JS) */
.bp-home-main .bp-home-film-sec.e-con { display: block; width: 100%; padding: 112px var(--g) 128px; background: #FFFFFF; }
.bp-home-main .bp-home-film-sec__sticky.e-con { display: block; width: 100%; max-width: 1280px; margin-inline: auto; padding: 0; }
.bp-film__progress { display: none; }
.bp-film__track { display: grid; gap: 64px; margin: 0; padding: 0; list-style: none; }
.bp-film__panel { margin: 0; min-width: 0; }
.bp-hba.bp-hba--film { aspect-ratio: 3 / 2; }
.bp-hba.bp-hba--plan { background: #FFFFFF; }
.bp-film__still { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: #E8E8E8; }
.bp-home-main .bp-film__still-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.bp-film__play {
  position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px;
  border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 8px 28px rgba(17, 17, 17, .22); pointer-events: none;
}
.bp-film__play::after {
  content: ""; position: absolute; left: 29px; top: 24px;
  border-style: solid; border-width: 12px 0 12px 19px; border-color: transparent transparent transparent #1A1A1A;
}
.bp-film__cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 24px; margin-top: 18px; }
.bp-film__name { margin: 0; font: 700 26px/1.2 "Manrope", sans-serif; letter-spacing: -.01em; }
.bp-film__name a { color: #1A1A1A; text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 2px; text-underline-offset: 6px; transition: text-decoration-color .2s ease; }
.bp-film__name a:hover { color: #1A1A1A; text-decoration-color: #F7941D; }
.bp-film__name a:focus { outline: none; }
.bp-film__name a:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 3px; border-radius: 2px; }
.bp-film__desc { margin: 0; max-width: 56ch; font: 400 16px/1.55 "Inter", sans-serif; color: #555555; }

/* pinned = desktop / tablet with motion allowed (class set by bp-home-film.js) */
.bp-home-main .bp-home-film-sec.is-pinned.e-con { padding: 0; }
.bp-home-main .bp-home-film-sec.is-pinned .bp-home-film-sec__sticky.e-con {
  position: sticky; top: 0; height: 100vh; max-width: none;
  display: flex; flex-direction: column; justify-content: center;
  padding: 104px 0 32px; overflow: hidden;
}
.bp-home-film-sec.is-pinned .bp-home-head.e-con { width: min(1280px, calc(100% - 2 * var(--g))); margin: 0 auto 20px; }
.bp-home-film-sec.is-pinned .bp-film { --film-h: calc(100vh - 360px); overflow: hidden; overflow: clip; }
.bp-home-film-sec.is-pinned .bp-film__progress {
  display: block; position: relative; width: min(1280px, calc(100% - 2 * var(--g))); height: 2px;
  margin: 0 auto 28px; background: #E8E8E8;
}
.bp-home-film-sec.is-pinned .bp-film__bar { position: absolute; inset: 0; background: #F7941D; transform: scaleX(0); transform-origin: 0 50%; }
.bp-home-film-sec.is-pinned .bp-film__track {
  display: flex; flex-wrap: nowrap; gap: 32px; width: max-content;
  padding: 0 max(var(--g), calc((100vw - 1280px) / 2));
  will-change: transform;
}
.bp-home-film-sec.is-pinned .bp-film__panel { flex: 0 0 auto; width: min(72vw, calc(var(--film-h) * 1.5)); }
.bp-home-film-sec.is-pinned .bp-film__cap { margin-top: 16px; }

/* ---------- 5. SELECTED WORK MOSAIC ---------- */
.bp-mosaic {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: clamp(220px, 22vw, 320px); gap: 40px 24px;
  margin: 0; padding: 0; list-style: none;
}
.bp-mosaic__tile { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-width: 0; margin: 0; }
.bp-mosaic__tile--lead { grid-column: 1 / span 7; grid-row: span 2; }
.bp-mosaic__tile--a, .bp-mosaic__tile--b { grid-column: 8 / span 5; }
.bp-mosaic__tile--c { grid-column: 1 / span 5; }
.bp-mosaic__tile--d { grid-column: 6 / span 7; }
.bp-mosaic__frame { position: relative; overflow: hidden; background: #E8E8E8; }
/* (0,2,0): must beat Elementor's `.elementor img { height:auto }` (0,1,1), which left the lead photo short of its frame */
.bp-home-main .bp-mosaic__img {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; margin: 0;
  object-fit: cover; transition: transform .8s cubic-bezier(.16, 1, .3, 1), opacity .45s ease;
}
.bp-home-main .bp-mosaic__img--before { opacity: 0; }
.bp-home-main .bp-mosaic__tile.is-before .bp-mosaic__img--before { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  .bp-home-main .bp-mosaic__tile.has-before:hover .bp-mosaic__img--before { opacity: 1; }
  .bp-home-main .bp-mosaic__tile:hover .bp-mosaic__img { transform: scale(1.03); }
}
/* (0,3,0): out-specifies the Kit's global button styling (orange fill, uppercase, padding) */
.bp-home-main .bp-mosaic .bp-mosaic__toggle {
  position: absolute; right: 12px; bottom: 12px; z-index: 2;
  width: auto; min-height: 40px; margin: 0; padding: 10px 14px; border: 0; border-radius: 2px;
  background: rgba(255, 255, 255, .94); color: #1A1A1A; cursor: pointer; box-shadow: none;
  font: 600 13px/1 "Inter", sans-serif; letter-spacing: .01em; text-transform: none; text-decoration: none;
}
.bp-home-main .bp-mosaic .bp-mosaic__toggle:hover { background: #FFFFFF; color: #1A1A1A; }
.bp-home-main .bp-mosaic .bp-mosaic__toggle:focus { outline: none; }
.bp-home-main .bp-mosaic .bp-mosaic__toggle:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 2px; box-shadow: 0 0 0 4px #1A1A1A; }
/* screen-reader-only text (the component library's .bp-sr is not loaded on every page) */
.bp-home-main .bp-sr {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.bp-mosaic__cap { margin: 12px 0 0; font: 400 14px/1.4 "Inter", sans-serif; color: #555555; }
.bp-mosaic__cat { font-weight: 600; color: #1A1A1A; }

/* ---------- 6. PAUSE: taller frame, zoom handled below ---------- */
.bp-home-main .bp-home-pause__figure--zoom { height: clamp(360px, 46vw, 700px); }

/* ---------- scroll-linked motion (browsers with scroll timelines, motion allowed) ---------- */
@keyframes bp12-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes bp12-draw { from { background-size: 0% 2px; } to { background-size: 100% 2px; } }
@keyframes bp12-open { from { clip-path: inset(0 10% round 24px); } to { clip-path: inset(0 0 round 0px); } }
@keyframes bp12-settle { from { transform: scale(1.14); } to { transform: scale(1); } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .bp-home-main .bp-home-work .bp-home-head,
    .bp-home-main .bp-home-process__inner,
    .bp-home-main .bp-home-portal__head,
    .bp-mosaic__tile {
      animation: bp12-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 70%;
    }
    .bp-home-main .bp-home-process__step-title .elementor-heading-title {
      animation: bp12-draw linear both; animation-timeline: view(); animation-range: entry 60% cover 45%;
    }
    .bp-home-main .bp-home-process__step:nth-child(2) .bp-home-process__step-title .elementor-heading-title { animation-range: entry 80% cover 50%; }
    .bp-home-main .bp-home-process__step:nth-child(3) .bp-home-process__step-title .elementor-heading-title { animation-range: entry 100% cover 55%; }
    .bp-home-main .bp-home-pause__figure--zoom { animation: bp12-open linear both; animation-timeline: view(); animation-range: entry 0% cover 50%; }
    .bp-home-main .bp-home-pause__figure--zoom .bp-home-pause__img { animation: bp12-settle linear both; animation-timeline: view(); animation-range: entry 0% cover 60%; }
  }
}
/* no scroll timeline: the line is simply drawn */
@supports not (animation-timeline: view()) {
  .bp-home-main .bp-home-process__step-title .elementor-heading-title { background-size: 100% 2px; }
}

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
  .bp-home-main .bp-home-hero__panel.e-con { bottom: 128px; width: calc(100% - 2 * var(--g)); }
  .bp-home-main .bp-home-film-sec.e-con { padding: 96px var(--g) 112px; }
  .bp-home-film-sec.is-pinned .bp-film { --film-h: calc(100vh - 340px); }
  .bp-home-film-sec.is-pinned .bp-film__panel { width: min(78vw, calc(var(--film-h) * 1.5)); }
  .bp-mosaic { grid-auto-rows: clamp(180px, 24vw, 260px); gap: 32px 20px; }
}

/* ---------- phone ---------- */
@media (max-width: 767px) {
  .bp-home-main .bp-home-hero.e-con { height: 100svh; min-height: 600px; max-height: 860px; }
  .bp-home-main .bp-home-hero__panel.e-con { left: 20px; right: 20px; bottom: 104px; width: auto; max-width: none; }
  .bp-home-main .bp-home-hero__title .elementor-heading-title { font-size: 40px; }
  .bp-home-main .bp-home-hero__sub p { font-size: 16px; margin-bottom: 24px; }
  .bp-home-main .bp-home-process.e-con { padding: 80px var(--g) 72px; }
  /* the approved mobile rows used white rules on charcoal: re-tone them for the light band; no drawn line on phones */
  .bp-home-main .bp-home-process__step.e-con,
  .bp-home-main .bp-home-process__step.e-con:last-child { border-color: #E8E8E8; }
  .bp-home-main .bp-home-process__step-title .elementor-heading-title { background: none; animation: none; }
  .bp-home-main .bp-home-film-sec.e-con { padding: 80px var(--g) 88px; }
  .bp-home-main .bp-home-film-sec .bp-home-head.e-con { padding-left: 0; padding-right: 0; }
  .bp-mosaic { padding: 0 var(--g); }
  .bp-film__track { gap: 48px; }
  .bp-film__name { font-size: 22px; }
  .bp-film__play { width: 56px; height: 56px; margin: -28px 0 0 -28px; }
  .bp-film__play::after { left: 22px; top: 18px; border-width: 10px 0 10px 16px; }
  .bp-mosaic { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 32px; }
  .bp-mosaic__tile, .bp-mosaic__tile--lead, .bp-mosaic__tile--a, .bp-mosaic__tile--b, .bp-mosaic__tile--c, .bp-mosaic__tile--d { grid-column: 1; grid-row: auto; }
  .bp-mosaic__frame { aspect-ratio: 4 / 3; }
  .bp-mosaic__tile--lead .bp-mosaic__frame { aspect-ratio: 4 / 5; }
  /* keep the approved phone frame (height:auto + 4:3); a fixed height with that ratio widened the figure past the viewport */
  .bp-home-main .bp-home-pause__figure--zoom { height: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .bp-mosaic__img, .bp-film__name a { transition: none; }
  .bp-home-main .bp-home-process__step-title .elementor-heading-title { background-size: 100% 2px; }
}/* End custom CSS */