.elementor-3570 .elementor-element.elementor-element-603c7c4{--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-3570 .elementor-element.elementor-element-6017c07{--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-3570 .elementor-element.elementor-element-6015d18{--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-3570 .elementor-element.elementor-element-602737f{--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-3570 .elementor-element.elementor-element-6025490{--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-3570 .elementor-element.elementor-element-60216b2{--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-3570 .elementor-element.elementor-element-600e15c .elementor-field-group{padding-right:calc( 0px/2 );padding-left:calc( 0px/2 );margin-bottom:28px;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-form-fields-wrapper{margin-left:calc( -0px/2 );margin-right:calc( -0px/2 );margin-bottom:-28px;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-field-group.recaptcha_v3-bottomleft, .elementor-3570 .elementor-element.elementor-element-600e15c .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-3570 .elementor-element.elementor-element-600e15c .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-3570 .elementor-element.elementor-element-600e15c .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-3570 .elementor-element.elementor-element-600e15c .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-field-type-html{padding-bottom:0px;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-button[type="submit"]{color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-3570 .elementor-element.elementor-element-600e15c{--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-padding:30px;--e-form-steps-indicator-inactive-secondary-color:#ffffff;--e-form-steps-indicator-active-secondary-color:#ffffff;--e-form-steps-indicator-completed-secondary-color:#ffffff;--e-form-steps-divider-width:1px;--e-form-steps-divider-gap:10px;}:root{--page-title-display:none;}/* Start custom CSS *//* ==========================================================================
   BP — Contact: page-specific CSS only (page Custom CSS).
   Phase 11.7: one-screen layout. Intro + contact details (left) | inquiry form (right).
   The glass portal section and the separate "Need help?" section were removed;
   the portal link now lives in the details note, the help links under the details.
   Tokens: #1A1A1A · #555555 · #F7941D · #E8E8E8 · #FFFFFF · Manrope · Inter.
   ========================================================================== */

/* ---------- Header 13510: "solid white from load" on this page only ----------
   Same owner-approved page-scoped state as Services / Portfolio / Resources. */
body.page-id-3570 .bp-header {
  background-color: #FFFFFF;
  border-bottom-color: #E8E8E8;
  box-shadow: 0 1px 3px rgba(26, 26, 26, .06);
}
body.page-id-3570 .bp-header .bp-logo img { opacity: 0; }
body.page-id-3570 .bp-header .bp-logo a::after { opacity: 1; }
body.page-id-3570 .bp-header .bp-nav .elementor-nav-menu--main .elementor-item { color: #1A1A1A; }
body.page-id-3570 .bp-header .bp-nav .elementor-nav-menu--main .elementor-item:hover,
body.page-id-3570 .bp-header .bp-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #F7941D; }
body.page-id-3570 .bp-header a:focus-visible,
body.page-id-3570 .bp-header button:focus-visible { outline-color: #1A1A1A; }
body.page-id-3570 .bp-header .bp-toggle__btn { color: #1A1A1A; }

/* ---------- page grid: intro + details | form ---------- */
.bp-ct-main .elementor-widget:not(:last-child) { margin-block-end: 0; }
.bp-ct-main.e-con {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  column-gap: 96px;
  align-items: start;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding: 128px 80px 72px;
  background: #FFFFFF;
}

/* ---------- A. Intro (breadcrumb, H1, lede) + contact details ---------- */
.bp-ct-hero.e-con { display: block; width: 100%; min-height: 0; padding: 0; background: transparent; }
.bp-ct-hero .bp-ct-hero__inner.e-con { display: block; width: 100%; max-width: none; margin: 0; padding: 0; }
.bp-crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  font: 500 13px/1.4 "Inter", sans-serif;
  color: #555555;
}
.bp-crumbs li + li::before { content: "/"; margin-right: 8px; color: #555555; }
.bp-crumbs a { color: #555555; text-decoration: underline; text-decoration-color: rgba(85, 85, 85, .4); text-underline-offset: 4px; }
.bp-crumbs a:hover { color: #1A1A1A; text-decoration-color: #F7941D; }
.bp-crumbs a:focus { outline: none; }
.bp-crumbs a:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 2px; border-radius: 2px; }
.bp-crumbs [aria-current="page"] { color: #1A1A1A; }
/* ≥44px hit area at every width, no visual change */
.bp-ct-hero .bp-crumbs a { display: inline-block; padding-block: 13px; margin-block: -13px; }
.bp-ct-hero .bp-ct-hero__title .elementor-heading-title {
  margin: 0 0 16px;
  max-width: 16ch;
  font-family: "Manrope", sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 1.1;
  letter-spacing: -.005em;
  color: #1A1A1A;
}
.bp-ct-hero .bp-ct-hero__sub p { margin: 0; max-width: 44ch; font: 400 17px/1.6 "Inter", sans-serif; color: #555555; }

/* shared text link */
.bp-ct-main a.bp-ct-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font: 600 15px/20px "Inter", sans-serif;
  color: #1A1A1A;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  transition: text-decoration-color .15s ease;
}
.bp-ct-main a.bp-ct-link:hover { color: #1A1A1A; text-decoration-color: #F7941D; }
.bp-ct-main a.bp-ct-link:focus { outline: none; }
.bp-ct-main a.bp-ct-link:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 2px; border-radius: 2px; }

/* contact details (moved under the intro) */
.bp-ct-hero .bp-ct-details { margin-top: 48px; }
.bp-ct-main h2.bp-ct-details__title { margin: 0 0 12px; font: 700 18px/1.3 "Manrope", sans-serif; color: #1A1A1A; }
.bp-ct-main .bp-ct-details__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 24px;
  margin: 0;
  padding: 0;
  border-top: 1px solid #E8E8E8;
  border-bottom: 1px solid #E8E8E8;
}
.bp-ct-main .bp-ct-details__item { padding: 14px 0; }
.bp-ct-main .bp-ct-details__item dt {
  margin: 0 0 2px;
  font: 600 12px/1.4 "Inter", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #555555;
}
.bp-ct-main .bp-ct-details__item dd { margin: 0; font: 400 16px/1.5 "Inter", sans-serif; color: #1A1A1A; }
.bp-ct-main .bp-ct-details__item dd a.bp-ct-link { min-height: 24px; font: 500 16px/1.5 "Inter", sans-serif; overflow-wrap: anywhere; }
/* 44px hit area for the email link without changing the row height */
.bp-ct-main .bp-ct-details__item dd a.bp-ct-link { padding-block: 10px; margin-block: -10px; }
.bp-ct-main p.bp-ct-details__note { margin: 16px 0 0; font: 400 15px/1.6 "Inter", sans-serif; color: #555555; }
.bp-ct-main p.bp-ct-details__note a {
  display: inline-block;
  padding-block: 12px;
  margin-block: -12px;
  font-weight: 600;
  color: #1A1A1A;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: #F7941D;
  text-underline-offset: 4px;
}
.bp-ct-main p.bp-ct-details__note a:hover { text-decoration-thickness: 2px; }
.bp-ct-main p.bp-ct-details__note a:focus { outline: none; }
.bp-ct-main p.bp-ct-details__note a:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 2px; border-radius: 2px; }
.bp-ct-main h2.bp-ct-details__title--help { margin-top: 32px; margin-bottom: 4px; }
.bp-ct-main .bp-ct-help-links { display: flex; flex-wrap: wrap; column-gap: 32px; margin: 0; padding: 0; list-style: none; }

/* ---------- B. Inquiry form (right column) ---------- */
.bp-ct-inquiry.e-con { display: block; width: 100%; padding: 0; background: transparent; }
.bp-ct-inquiry .bp-ct-inquiry__inner.e-con { display: block; width: 100%; max-width: none; margin: 0; padding: 0; border-top: 0; }
.bp-ct-inquiry .bp-ct-form-col.e-con { display: block; padding: 0; }
.bp-ct-inquiry .bp-ct-form-col__title .elementor-heading-title {
  margin: 0 0 4px;
  font-family: "Manrope", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.25;
  color: #1A1A1A;
}
.bp-ct-main p.bp-ct-required-note { margin: 0 0 24px; font: 400 14px/1.5 "Inter", sans-serif; color: #555555; }

/* form fields — flat, 1px rules, square; labels always visible */
body.page-id-3570 .bp-contact-form .elementor-form .elementor-form-fields-wrapper { margin: 0; column-gap: 24px; }
body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group { margin-bottom: 20px; }
/* two fields per row: Name | Email, Company | Service */
body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-name,
body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-email,
body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-company,
body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-service { flex: 0 0 calc(50% - 12px); width: calc(50% - 12px); max-width: calc(50% - 12px); }
.bp-contact-form .elementor-form .elementor-field-group > .elementor-field-label {
  display: block;
  margin: 0 0 6px;
  padding: 0;
  font: 600 14px/1.4 "Inter", sans-serif;
  color: #1A1A1A;
}
/* visible "required" text instead of a red asterisk */
.bp-contact-form .elementor-form .elementor-mark-required .elementor-field-label::after {
  content: " (required)";
  padding: 0;
  font-weight: 400;
  color: #555555;
}
.bp-contact-form .elementor-form .elementor-field-group .elementor-field-textual,
.bp-contact-form .elementor-form .elementor-field-group .elementor-select-wrapper select {
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #8C8C8C;          /* 3.4:1 on white — non-text contrast */
  border-radius: 0;
  background: #FFFFFF;
  box-shadow: none;
  font: 400 16px/1.5 "Inter", sans-serif;   /* ≥16px: no iOS zoom */
  color: #1A1A1A;
  /* the Kit's `transition: all` would animate the focus outline and error border in from 0 */
  transition: border-color .15s ease;
}
.bp-contact-form .elementor-form .elementor-field-group textarea.elementor-field-textual { height: 120px; min-height: 120px; resize: vertical; }
.bp-contact-form .elementor-form .elementor-select-wrapper select { padding-right: 44px; appearance: none; -webkit-appearance: none; }
.bp-contact-form .elementor-form .elementor-select-wrapper .select-caret-down-wrapper { right: 16px; color: #1A1A1A; font-size: 12px; }
.bp-contact-form .elementor-form .elementor-field-group .elementor-field-textual:focus,
.bp-contact-form .elementor-form .elementor-field-group .elementor-select-wrapper select:focus {
  border-color: #1A1A1A;
  outline: 2px solid #1A1A1A;
  outline-offset: 2px;
  box-shadow: none;
}
.bp-contact-form .elementor-form .elementor-field-group .elementor-field-textual[aria-invalid="true"] {
  border: 2px solid #B42318;
  padding: 11px 13px;
}
/* inline error text (bp-contact-form.js) — text + icon-free, never colour-only (the field also gets a 2px border and the message) */
.bp-contact-form p.bp-field-error { margin: 6px 0 0; font: 500 14px/1.4 "Inter", sans-serif; color: #B42318; }
.bp-contact-form p.bp-form-summary {
  width: 100%;
  margin: 0 0 20px;
  padding: 4px 0 4px 14px;
  border-left: 2px solid #B42318;
  font: 600 15px/1.5 "Inter", sans-serif;
  color: #B42318;
}
.bp-contact-form p.bp-form-summary[hidden] { display: none; }
/* Elementor's own messages (success / server error) */
.bp-contact-form .elementor-form .elementor-message { margin-top: 16px; font: 500 15px/1.5 "Inter", sans-serif; }
.bp-contact-form .elementor-form .elementor-message.elementor-message-success { color: #1A1A1A; }
.bp-contact-form .elementor-form .elementor-message.elementor-message-danger { color: #B42318; }
.bp-contact-form .elementor-form .elementor-message::before { display: none; }
.bp-contact-form .elementor-form .elementor-message:focus { outline: 2px solid #1A1A1A; outline-offset: 4px; }
/* honeypot stays out of view and out of the tab order (Elementor also hides it) */
.bp-contact-form .elementor-form .elementor-field-type-honeypot { display: none !important; }
/* the honeypot's zero-width wrapper would otherwise take a 24px flex gap in the button row */
.bp-contact-form .elementor-form .elementor-form-fields-wrapper > .elementor-field-type-text:not(.elementor-field-group) {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.bp-contact-form .elementor-form .elementor-form-fields-wrapper { position: relative; }

/* submit + reCAPTCHA badge share one row: button first, badge beside it */
body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-type-submit { order: 1; flex: 0 0 auto; width: auto; max-width: none; margin: 0; justify-content: flex-start; }
body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-type-recaptcha_v3 { order: 2; flex: 0 0 auto; width: auto; max-width: none; margin: 0; align-self: center; }
.bp-contact-form .elementor-form .elementor-field-type-submit .elementor-button {
  flex: 0 0 auto;
  width: auto;
  min-width: 200px;
  min-height: 52px;
  padding: 16px 32px;
  border: 0;
  border-radius: 2px;
  background: #1A1A1A;
  font: 600 16px/20px "Inter", sans-serif;
  letter-spacing: 0;
  text-transform: none;
  color: #FFFFFF;
  transition: background-color .15s ease;
}
.bp-contact-form .elementor-form .elementor-field-type-submit .elementor-button:hover,
.bp-contact-form .elementor-form .elementor-field-type-submit .elementor-button:focus { background: #333333; color: #FFFFFF; }
.bp-contact-form .elementor-form .elementor-field-type-submit .elementor-button:focus { outline: none; }
.bp-contact-form .elementor-form .elementor-field-type-submit .elementor-button:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 3px; }
.bp-ct-main p.bp-ct-privacy { margin: 16px 0 0; max-width: 64ch; font: 400 13px/1.6 "Inter", sans-serif; color: #555555; }
.bp-ct-main p.bp-ct-privacy a {
  display: inline-block;
  padding-block: 12px;
  margin-block: -12px;
  color: #1A1A1A;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bp-ct-main p.bp-ct-privacy a:hover { text-decoration-color: #F7941D; }
.bp-ct-main p.bp-ct-privacy a:focus { outline: none; }
.bp-ct-main p.bp-ct-privacy a:focus-visible { outline: 2px solid #1A1A1A; outline-offset: 2px; border-radius: 2px; }

/* ---------- tablet: keep the two columns, narrower gutter ---------- */
@media (max-width: 1024px) {
  .bp-ct-main.e-con { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); column-gap: 48px; padding: 120px 48px 64px; }
  .bp-ct-hero .bp-ct-hero__title .elementor-heading-title { font-size: 36px; }
  .bp-ct-hero .bp-ct-hero__sub p { font-size: 16px; }
  .bp-ct-hero .bp-ct-details { margin-top: 36px; }
  .bp-ct-main .bp-ct-details__list { grid-template-columns: minmax(0, 1fr); }
  .bp-ct-main .bp-ct-details__item + .bp-ct-details__item { padding-top: 0; }
  .bp-ct-main .bp-ct-help-links { flex-direction: column; }
}

/* ---------- mobile: one column — intro, details, then the form ---------- */
@media (max-width: 767px) {
  .bp-ct-main.e-con { grid-template-columns: minmax(0, 1fr); row-gap: 48px; padding: 112px 20px 64px; }
  .bp-ct-hero .bp-ct-hero__title .elementor-heading-title { font-size: 32px; max-width: none; }
  .bp-crumbs ol { margin-bottom: 16px; }
  .bp-ct-hero .bp-ct-details { margin-top: 32px; }
  .bp-ct-main .bp-ct-help-links { flex-direction: row; }
  .bp-ct-inquiry .bp-ct-form-col__title .elementor-heading-title { font-size: 24px; }
  body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-name,
  body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-email,
  body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-company,
  body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-group-service { flex-basis: 100%; width: 100%; max-width: 100%; }
  body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-type-submit { flex: 1 1 100%; width: 100%; margin-bottom: 16px; }
  .bp-contact-form .elementor-form .elementor-field-type-submit .elementor-button { flex: 1 1 100%; width: 100%; min-height: 48px; }
  body.page-id-3570 .bp-contact-form .elementor-form .elementor-field-type-recaptcha_v3 { align-self: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .bp-ct-main a.bp-ct-link,
  .bp-contact-form .elementor-form .elementor-field-type-submit .elementor-button,
  .bp-contact-form .elementor-form .elementor-field-group .elementor-field-textual,
  .bp-contact-form .elementor-form .elementor-field-group .elementor-select-wrapper select { transition: none; }
}

/* ---------- BP-CT-HOURS:START (Phase 12.22) ---------- */
.bp-ct-main .bp-ct-clock { font-variant-numeric: tabular-nums; white-space: nowrap; }
.bp-ct-main .bp-ct-address { display: inline; font-style: normal; }
.bp-ct-main .bp-ct-maps { white-space: nowrap; }
.bp-ct-main .bp-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* ---------- BP-CT-HOURS:END ---------- *//* End custom CSS */