/* matrix-site-system-v48.19 overlay
   Requires the immutable matrix-site-system-v46 stylesheet. */

/* A suppressed or empty persistent-action owner must never paint a blank bar. */
#mx-site-mobile-bar:empty,
#mx-site-mobile-bar[hidden],
#mx-site-mobile-bar[aria-hidden="true"] {
  display: none !important;
}

/* Keep deferred fixed launchers out of the open navigation layer. */
.mx-nav-lock zapier-interfaces-chatbot-embed {
  visibility: hidden !important;
  pointer-events: none !important;
}

@media screen and (max-width: 1199px) {
  /* Reuse Webflow's native dropdown instead of forcing every service link open. */
  html:root .navbar .dropdown {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
  }

  html:root .navbar .nav-link.down {
    position: absolute !important;
    z-index: 2;
    top: -48px;
    right: 0;
    bottom: auto;
    left: auto;
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html:root .navbar .nav-link:has(+ .dropdown) {
    padding-right: 56px !important;
  }

  html:root .navbar .ropdown-list {
    position: static !important;
    top: auto;
    left: auto;
    width: 100%;
    display: none !important;
    padding: 0;
    opacity: 1 !important;
    transform: none !important;
  }

  html:root .navbar .ropdown-list.w--open {
    position: static !important;
    top: auto;
    left: auto;
    display: block !important;
    padding: 0;
  }

  html:root .navbar .drop-list-div.landing {
    width: calc(100% - 14px);
  }

  /* Customer actions remain reachable when a short viewport scrolls the drawer. */
  html:root .navbar .nav-buttons {
    position: sticky;
    z-index: 3;
    bottom: 0;
    background: #fff;
  }
}

@media screen and (max-width: 767px) {
  #mx-site-mobile-bar[data-mx-action-count="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.mx-site-actions-ready:has(#mx-site-mobile-bar:empty),
  body.mx-site-actions-ready:has(#mx-site-mobile-bar[hidden]),
  body.mx-site-actions-ready:has(#mx-site-mobile-bar[aria-hidden="true"]) {
    padding-bottom: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html:root .navbar .nav-link.down .arrow-icon {
    transition: none;
  }
}

/* Areas We Serve: locally specific territory navigation and coverage close. */
html[data-wf-page="6a7a559ce4674e1355d6e618"] .mxcd__head {
  grid-template-columns: minmax(0, 780px);
}

html[data-wf-page="6a7a559ce4674e1355d6e618"] section[aria-labelledby="areas-territory-title"] {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: var(--mx-space-3, 24px) var(--mx-space-5, 40px);
  margin: 0 0 var(--mx-space-4, 32px);
  padding: var(--mx-space-4, 32px);
  color: var(--mx-ink);
  background: var(--mx-white);
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] section[aria-labelledby="areas-territory-title"] > div:first-child {
  display: block;
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] #areas-territory-title {
  max-width: none;
  margin: 0;
  color: var(--mx-ink) !important;
  font-size: clamp(28px, 2.25vw, 32px);
  line-height: 1.08;
  letter-spacing: -.03em;
  text-wrap: balance;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] section[aria-labelledby="areas-territory-title"] > div:first-child > div > p:first-child {
  margin: 16px 0 0;
  color: var(--mx-muted);
  font-size: 17px;
  line-height: 1.55;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] [data-mx-coverage-note] {
  grid-column: 1 / -1;
  grid-row: 3;
  margin: 0;
  padding-top: var(--mx-space-3, 24px);
  border-top: 1px solid var(--mx-line);
  color: var(--mx-muted);
  font-size: 15px;
  line-height: 1.55;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] [data-mx-region-map] {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  min-width: 0;
  margin: 0;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] [data-mx-region-map] img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 440px;
  object-fit: contain;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] {
  grid-column: 2;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > span[aria-hidden="true"] { display: none; }
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > a > span[aria-hidden="true"] {
  position: static; display: block; width: auto; height: auto;
  margin: 0 0 8px; padding: 0; border: 0; border-radius: 0; background: transparent;
  color: var(--mx-red); font: 800 14px/1.2 Inter,Arial,sans-serif;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > a {
  display: block;
  min-width: 0;
  min-height: 44px;
  padding: 16px 0 0;
  border-top: 1px solid var(--mx-line);
  color: var(--mx-ink);
  text-decoration: none;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > a > span:nth-of-type(2) {
  display: block;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > a > span:nth-of-type(3) {
  display: block;
  margin-top: 8px;
  color: var(--mx-muted);
  font-size: 16px;
  line-height: 1.5;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > a:hover > span:nth-of-type(2) {
  text-decoration: underline;
  text-underline-offset: .2em;
}
html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > a:focus-visible,
html[data-wf-page="6a7a559ce4674e1355d6e618"] .areas__card:target {
  outline: 3px solid var(--mx-red);
  outline-offset: 4px;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"] .areas__card {
  border-left-width: 1px;
  box-shadow: 0 14px 32px rgba(14, 18, 22, 0.09);
}

html[data-wf-page="6a7a559ce4674e1355d6e618"] .areas__card h2 {
  font-size: 20px;
  line-height: 1.2;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"] .areas__card:target {
  scroll-margin-top: 110px;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"]
  [data-mx-action-owner="areas-final-close"] {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  margin-top: 64px;
  padding: clamp(30px, 4vw, 54px);
  color: #fff;
  background: #181818;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"] #areas-coverage-title {
  max-width: 18ch;
  margin: 0 0 16px;
  color: #fff !important;
  font-size: clamp(28px, 3.3vw, 44px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"]
  [aria-label="Confirm service coverage"] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"]
  [data-mx-action-owner="areas-final-close"]
  a[data-mx-action-id] {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 14px 20px;
  border: 2px solid #fff;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background-color 160ms ease,
    color 160ms ease,
    border-color 160ms ease;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"]
  [data-mx-action-owner="areas-final-close"]
  a[data-mx-action="primary"] {
  border-color: #b92024;
  background: #b92024;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"]
  [data-mx-action-owner="areas-final-close"]
  a[data-mx-action="primary"]:hover {
  border-color: #c91219;
  background: #c91219;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"]
  [data-mx-action-owner="areas-final-close"]
  a[data-mx-action="secondary"]:hover {
  color: #181818;
  background: #fff;
}

html[data-wf-page="6a7a559ce4674e1355d6e618"]
  [data-mx-action-owner="areas-final-close"]
  a[data-mx-action-id]:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

/* Shared footer: clearer proof text and comfortable privacy target. */
.footer-bottom__center .text--label {
  color: #fff;
  font-size: 12px;
  line-height: 1.5;
}

.footer-bottom__right > a {
  display: flex;
  min-height: 44px;
  align-items: center;
}

.footer-bottom__right .text-size--small,
.footer__spec-line .text--label {
  color: #f2edf7;
}

.footer__spec-line .text--label {
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

@media screen and (max-width: 991px) {
  html[data-wf-page="6a7a559ce4674e1355d6e618"] section[aria-labelledby="areas-territory-title"] {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding: 24px;
    margin-bottom: 24px;
  }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] section[aria-labelledby="areas-territory-title"] > div:first-child { grid-column: 1; grid-row: 1; }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] #areas-territory-title { font-size: 26px; }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] [data-mx-coverage-note] { grid-row: 4; }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] [data-mx-region-map] { grid-column: 1; grid-row: 2; }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] [data-mx-region-map] img { max-height: 400px; }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] { grid-column: 1; grid-row: 3; }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] > a > span:nth-of-type(3) { font-size: 15px; }
}
@media screen and (max-width: 767px) {
  html[data-wf-page="6a7a559ce4674e1355d6e618"] section[aria-labelledby="areas-territory-title"] { padding: 24px 16px; }
  html[data-wf-page="6a7a559ce4674e1355d6e618"] nav[aria-label="Jump to a service region"] { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}

@media screen and (max-width: 767px) {
  html[data-wf-page="6a7a559ce4674e1355d6e618"]
    section[aria-labelledby="areas-territory-title"] > div:first-child > div > p:first-child {
    font-size: 16px;
    line-height: 1.55;
  }

  html[data-wf-page="6a7a559ce4674e1355d6e618"]
    [data-mx-action-owner="areas-final-close"] {
    grid-template-columns: 1fr;
    gap: 26px;
    margin-top: 40px;
    padding: 30px 22px;
  }

  html[data-wf-page="6a7a559ce4674e1355d6e618"] .areas__card h2 {
    font-size: 19px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-wf-page="6a7a559ce4674e1355d6e618"]
    nav[aria-label="Jump to a service region"]
    > a
    > span[aria-hidden="true"],
  html[data-wf-page="6a7a559ce4674e1355d6e618"]
    [data-mx-action-owner="areas-final-close"]
    a[data-mx-action-id] {
    transition: none;
  }
}

/* One content-page opening, reusing the incumbent markup and display token.
   All public content-page families opt in, including CMS templates. */
html[data-mx-header-page]:root {
  --mx-header-inset: max(var(--mx-gutter, 24px), calc((100vw - var(--mx-shell, 1320px)) / 2));
  --mx-header-title-width: 900px;
  --mx-header-copy-width: 780px;
}
html[data-mx-header-page]:root :is(#Top:not(.services), #mx-about-intro, .mm3-header, .mx-template-header) {
  width: 100vw !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 calc(50% - 50vw) !important;
  padding: 118px var(--mx-header-inset) 56px !important;
  border: 0 !important;
  border-bottom: 4px solid var(--mx-red) !important;
  background: var(--mx-ink) !important;
  color: var(--mx-white);
}
html[data-mx-header-page]:root #Top > .container,
html[data-mx-header-page]:root #Top .section-title,
html[data-mx-header-page]:root #Top > .mxcd__kicker,
html[data-mx-header-page]:root #Top > .mxcd__head,
html[data-mx-header-page]:root .mx-about-intro__shell {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
html[data-mx-header-page]:root #Top .section-title {
  display: block !important;
  text-align: left !important;
  opacity: 1 !important;
  transform: none !important;
}
html[data-mx-header-page]:root :is(.mx-about-intro__shell, .mm3-header) { display: block !important; }
/* Collapse the old About action slot only while its actions are suppressed. */
html[data-mx-header-page]:root .mx-about-intro__routes:not(:has(a:not([hidden]))) {
  display: none !important;
}
html[data-mx-header-page]:root :is(.mxcd__kicker, .mxc-intent-kicker, .mx-about-intro__eyebrow, .mm3-eyebrow, .mx-template-header-kicker) {
  margin: 0 !important;
  color: var(--mx-white) !important;
  font: 800 12px/1.3 Inter, Arial, sans-serif !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}
html[data-mx-header-page]:root :is(.mxcd__kicker, .mx-about-intro__eyebrow, .mm3-eyebrow, .mx-template-header-kicker)::before,
html[data-mx-header-page]:root .mxc-intent-rule {
  content: "";
  display: block !important;
  width: 88px !important;
  height: 4px !important;
  margin: 0 0 18px !important;
  background: var(--mx-red) !important;
}
html[data-mx-header-page]:root :is(#Top:not(.services), #mx-about-intro, .mm3-header, .mx-template-header) h1 {
  display: block !important;
  width: 100% !important;
  max-width: var(--mx-header-title-width) !important;
  margin: 14px 0 0 !important;
  padding: 0 0 20px !important;
  border: 0 !important;
  border-bottom: 2px solid var(--mx-red) !important;
  color: var(--mx-white) !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: var(--mx-h-display) !important;
  font-weight: 900 !important;
  line-height: .96 !important;
  letter-spacing: -.04em !important;
  text-transform: uppercase !important;
  text-align: left !important;
  text-wrap: balance;
}
/* The exported trailing BR must not add an empty title line. */
html[data-mx-header-page]:root #Top h1 > br:last-child { display: none; }
html[data-mx-header-page]:root :is(#Top:not(.services), #mx-about-intro, .mm3-header, .mx-template-header) h1::after {
  content: none !important;
}
html[data-mx-header-page]:root #Top .mxcd__head {
  display: grid !important;
  grid-template-columns: minmax(0, 900px) minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
}
html[data-mx-header-page]:root .mxc-intent-intro {
  grid-template-columns: minmax(0, 900px) minmax(0, 1fr) !important;
  gap: 40px !important;
}
html[data-mx-header-page]:root :is(.mxcd__copy, .mxc-intent-lede, .mx-about-intro__lede, .mm3-intro, .mx-template-header-copy) {
  width: 100% !important;
  max-width: var(--mx-header-copy-width) !important;
  margin: 24px 0 0 !important;
  padding: 0 !important;
  color: #d3d3d3 !important;
  font: 17px/1.55 Arial, sans-serif !important;
}
html[data-mx-header-page]:root #Top .mxcd__routes { margin-top: 24px !important; }
@media screen and (min-width: 1200px) {
  /* Discovery openings share a two-line lead-in without constraining mobile copy. */
  html[data-mx-header-page][data-mx-opening="index"]:root
    :is(#Top .mxcd__copy, #Top .mx-template-header-copy, .mx-about-intro__lede, .mm3-intro) {
    min-height: 3.1em;
  }
}
@media screen and (max-width: 1199px) {
  html[data-mx-header-page]:root #Top .mxcd__head,
  html[data-mx-header-page]:root .mxc-intent-intro { grid-template-columns: 1fr !important; gap: 24px !important; }
  html[data-mx-header-page]:root #Top .mxcd__routes { margin-top: 0 !important; }
}
@media screen and (max-width: 767px) {
  html[data-mx-header-page]:root { --mx-header-inset: 16px; }
  html[data-mx-header-page]:root :is(#Top:not(.services), #mx-about-intro, .mm3-header, .mx-template-header) {
    padding-top: 102px !important;
    padding-bottom: 36px !important;
  }
  html[data-mx-header-page]:root :is(#Top:not(.services), #mx-about-intro, .mm3-header, .mx-template-header) h1 {
    font-size: var(--mx-h-display-sm) !important;
  }
  html[data-mx-header-page]:root :is(.mxcd__copy, .mxc-intent-lede, .mx-about-intro__lede, .mm3-intro, .mx-template-header-copy) {
    font-size: 16px !important;
  }
}

/* Template content remains below the shared opening; images keep their nodes. */
html[data-mx-header-page]:root [data-mx-header-relocated] { display: none !important; }
html[data-mx-header-page]:root .mx-template-header { position: relative; text-align: left; }
html[data-mx-header-page]:root .mx-template-header > h1 { opacity: 1 !important; transform: none !important; overflow-wrap: anywhere; }
html[data-mx-header-page]:root .mx-template-header h1 .square { display: none; }
html[data-mx-header-page]:root #Top .square { display: none !important; }
html[data-mx-header-page]:root .mx-template-header-date { font-size: 14px !important; }
html[data-mx-header-page]:root .mx-template-header-actions {
  display: flex !important; flex-wrap: wrap; gap: 12px !important; margin: 24px 0 0 !important;
}
html[data-mx-header-page]:root .mx-template-header-actions a[data-mx-action="utility"] {
  color: var(--mx-white) !important;
}
html[data-mx-header-page]:root .mx-template-header-actions a[data-mx-action="secondary"] {
  color: var(--mx-white) !important; border-color: var(--mx-white) !important; background: transparent !important;
}
html[data-mx-header-page]:root .mx-template-header-actions a[hidden] { display: none !important; }
html[data-mx-header-page]:root .mx-template-header + .section.blog,
html[data-mx-header-page]:root .mx-template-header + .section.gray.less-padding-top {
  padding-top: 36px !important;
}
html[data-mx-header-page]:root #mx-booking-page { padding-top: 0 !important; }
html[data-mx-header-page]:root #mx-booking-page .mxb-shell { padding-top: 36px !important; }
html[data-mx-header-page]:root .utility-page-wrap {
  min-height: 0 !important; height: auto !important; display: block !important; padding: 36px var(--mx-header-inset) 56px !important;
}
html[data-mx-header-page]:root .utility-page-content { margin: 0 !important; max-width: 900px !important; text-align: left !important; }
/* Home is the media variant: same type/spacing grammar at the split-column step. */
html[data-mx-header-home]:root #mx-home-hero h1 {
  font-family: Inter, Arial, sans-serif !important; font-weight: 900 !important;
  line-height: .96 !important; letter-spacing: -.04em !important;
  margin-top: 14px !important; padding-bottom: 20px !important;
  border-bottom: 2px solid var(--mx-red) !important; text-align: left !important;
}
html[data-mx-header-home]:root #mx-home-hero .mxh-lede { margin-top: 24px !important; }

/* Remove legacy devices and duplicate top spacing exposed by relocation. */
html[data-mx-header-page]:root .mx-template-header-kicker::after,
html[data-mx-header-home]:root #mx-home-hero h1::after { content: none !important; }
html[data-mx-header-page]:root .mx-template-header-copy { border: 0 !important; }
html[data-mx-header-page]:root #mx-booking-page .mxb-layout { padding-top: 0 !important; }
html[data-mx-header-page]:root .mx-template-header + #Top.services {
  padding:32px 0 0 !important; margin:0 auto !important;
}
html[data-mx-header-home]:root #mx-home-hero .mxh-eyebrow {
  margin: 0 !important; color: var(--mx-white) !important;
  font: 800 12px/1.3 Inter, Arial, sans-serif !important;
  letter-spacing: .16em !important;
}
html[data-mx-header-home]:root #mx-home-hero .mxh-eyebrow::before {
  width: 88px !important; height: 4px !important; margin: 0 0 18px !important;
}
@media screen and (max-width: 767px) {
  html[data-mx-header-home]:root #mx-home-hero { padding-top: 102px !important; }
  html[data-mx-header-home]:root #mx-home-hero > .mxh-shell {
    width: calc(100% - 32px) !important; margin-inline: auto !important;
  }
  html[data-mx-header-home]:root #mx-home-hero h1 {
    font-size: var(--mx-h-display-sm) !important;
  }
  html[data-mx-header-home]:root #mx-home-hero .mxh-lede {
    font-size: 16px !important; line-height: 1.55 !important;
  }
}

/* Services and Projects use the same text-only opening as the other indexes. */
html[data-wf-page="648211d82b26705faa1e4b54"]:root .mxc-intent-reassurance {
  display: none !important;
}
html[data-wf-page="648211d82b26705faa1e4b54"]:root .mxc-intent-intro,
html[data-wf-page="648211d82b26705faa1e4b53"]:root #Top .mxcd__head {
  display: block !important;
}
/* Hide the old slot immediately, including while the CMS index is loading. */
html[data-wf-page="648211d82b26705faa1e4b53"]:root #Top .mxcd__routes {
  display: none !important;
}
html[data-wf-page="648211d82b26705faa1e4b53"]:root .mxcd__body-routes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
  margin: 32px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--mx-line);
}
html[data-wf-page="648211d82b26705faa1e4b53"]:root .mxcd__body-routes .mxcd__call {
  color: var(--mx-ink);
}
@media screen and (max-width: 767px) {
  html[data-wf-page="648211d82b26705faa1e4b53"]:root .mxcd__body-routes {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 24px;
  }
}

/* Deliberate opening sizes within the existing Matrix shell. */
html[data-mx-opening="index"] { --mx-h-display: clamp(36px,4.2vw,56px) !important; --mx-h-display-sm: 34px !important; }
html[data-mx-opening="article"] { --mx-h-display: clamp(32px,3.6vw,48px) !important; --mx-h-display-sm: 30px !important; }
html[data-mx-opening="service"] { --mx-h-display: clamp(40px,4.8vw,64px) !important; --mx-h-display-sm: 36px !important; }
html[data-mx-opening="article"]:root .mx-template-header { padding-bottom: 36px !important; }
html:root .text-rich-text { max-width: 70ch !important; line-height: 1.65 !important; }
html:root .text-rich-text h2 { margin: 36px 0 14px !important; font-size: clamp(24px,2.4vw,32px) !important; line-height: 1.15 !important; }
html:root .text-rich-text h2:first-child { margin-top: 0 !important; }
html:root .text-rich-text p { margin-bottom: 20px !important; }
html:root .text-rich-text a { color: #b92024 !important; text-decoration: underline !important; text-underline-offset: .18em !important; }
html:root .text-rich-text ul { columns: 1 !important; }
html:root .text-rich-text figure { margin: 28px 0 !important; }
html:root .text-rich-text figure img { width: 100% !important; max-height: 480px !important; object-fit: contain !important; }
html:root .text-rich-text figcaption { font-size: 14px !important; line-height: 1.5 !important; margin-top: 10px !important; }
html:root :is(a,button,input,select,textarea):focus-visible { outline: 3px solid #b92024 !important; outline-offset: 4px !important; }
html:root .achivement__item { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center !important; gap: 12px !important; min-width: 0 !important; }
html:root .achivement__item .heading-2 { width: 100% !important; max-width: 14ch !important; margin: 0 auto !important; text-align: center !important; font-size: clamp(27px,3.1vw,44px) !important; line-height: 1.05 !important; }
html:root .achivement__item .text--label { margin: 0 !important; text-align: center !important; color: #ba1b20 !important; }
html:root :is(.collection-list-services,.collection-list-blog,.collection-list-projects) > .w-dyn-item { min-width: 0 !important; height: auto !important; }
html:root :is(.collection-list-services,.collection-list-blog,.collection-list-projects) :is(h2,h3,.heading-3) { font-size: clamp(24px,2.2vw,30px) !important; line-height: 1.12 !important; overflow-wrap: normal !important; word-break: normal !important; text-overflow: clip !important; -webkit-line-clamp: unset !important; }
html:root .mxc-intent-router { width: 100% !important; max-width: 1320px !important; margin: 24px auto 40px !important; padding: 0 !important; color:var(--mx-ink) !important; background:var(--mx-paper) !important; border:0 !important; }
html:root .mxc-intent-intro { width: 100% !important; margin: 0 !important; padding: 24px 0 !important; background: transparent !important; border: 0 !important; color: #1a1a1a !important; display: block !important; }
html:root .mxc-intent-title { max-width: none !important; font-size: clamp(26px,3vw,36px) !important; line-height: 1.1 !important; }
html:root .mxc-intent-paths { grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 16px !important; }
html:root .mxc-intent-card { min-width: 0 !important; padding: 24px !important; }
html:root .mxc-intent-card-title { font-size: 24px !important; line-height: 1.15 !important; }
html:root .mxc-intent-catalogue-kicker,html:root .mxc-intent-catalogue-title { display: none !important; }
html:root .mxc-intent-catalogue { display:none !important; }
html:root .mxs-discovery { margin-top: 32px !important; }
html:root .mxsd-decision .mxsd-actions { display: flex !important; flex-direction: row !important; align-items:center !important; flex-wrap: wrap !important; gap: 12px 24px !important; }
html:root .mxsd-decision .mxsd-actions a:not([hidden]) { display:inline-flex !important; align-items:center !important; width:auto !important; min-height:48px !important; }
html:root [data-mx-related-projects]:has(.w-dyn-empty) { display: none !important; }
html:root .mx-proof-rating .mx-google-rating-link { color:inherit !important; text-decoration:underline !important; text-underline-offset:.2em !important; }
html:root .mx-real-job-proof { padding: 48px 0 !important; }
html:root .mx-real-job-proof :is(.mxh-shell,.mxh-shell-1) { width: calc(100% - 48px) !important; max-width: 1320px !important; margin: 0 auto !important; }
html:root .mx-real-job-proof > div > p { margin:0 0 24px !important; max-width:70ch; }
html:root .mx-real-job-proof h2 { margin-bottom: 24px !important; font-size: clamp(28px,3vw,40px) !important; }
html:root .mx-real-job { display:flex !important; flex-direction:column !important; align-items:flex-start !important; min-width:0 !important; }
html:root .mx-real-job img { width:100% !important; aspect-ratio:4/3 !important; object-fit:cover !important; }
html:root .mx-real-job-link { margin-top:auto !important; padding-top:16px !important; color:#b92024 !important; text-decoration:underline !important; text-underline-offset:.2em !important; }
@media(max-width:991px){
 html:root .mxc-intent-paths { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
 html:root .mxcd__tools { grid-template-columns:minmax(0,1fr) !important; gap:20px !important; }
 html:root .mxcd__tools > * { min-width:0 !important; width:100% !important; grid-column:auto !important; }
 html:root .mxcd__search input { min-width:0 !important; max-width:100% !important; }
 html:root .mxcd__filters { display:flex !important; flex-wrap:wrap !important; gap:8px !important; overflow:visible !important; }
 html:root .mxcd__filter { min-width:0 !important; max-width:100% !important; white-space:normal !important; }
 html:root .mxcd__status { text-align:left !important; margin:0 !important; }
}
@media(max-width:767px){
 html:root .mxs-filters { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important; overflow:visible !important; margin-inline:0 !important; padding-inline:0 !important; padding-bottom:0 !important; }
 html:root .mxs-filters button { min-width:0 !important; width:100% !important; padding-inline:8px !important; white-space:normal !important; }
 html:root .mxc-intent-paths { grid-template-columns: 1fr !important; }
 html:root .mxc-intent-card { padding: 20px !important; }
 html:root .mx-real-job-proof :is(.mxh-shell,.mxh-shell-1) { width: calc(100% - 32px) !important; }
 html:root .text-rich-text { width: 100% !important; }
}

html[data-mx-header-page]:root .mxc-intent-intro { width:100% !important; margin:0 !important; padding:24px 0 !important; background:transparent !important; border:0 !important; color:var(--mx-ink) !important; }
html[data-mx-header-page]:root .mxc-intent-title { color:var(--mx-ink) !important; font-size:clamp(26px,3vw,36px) !important; max-width:900px !important; }
html[data-mx-header-page]:root .mxc-intent-kicker { color:#b92024 !important; }
html[data-mx-header-page]:root .mxc-intent-lede { color:var(--mx-muted) !important; max-width:70ch !important; margin-top:16px !important; }
html:root .mx-real-job:nth-child(1) img { object-position:50% 65%; }
html:root .mx-real-job:nth-child(2) img { object-position:50% 100%; }
html:root .mx-real-job:nth-child(3) img { object-position:50% 60%; }

/* Give discovery pages one consistent gap below their introductions. */
html[data-mx-header-page][data-mx-opening="index"]:root :is(#Top, #mx-about-intro) + .section.gray,
html[data-mx-header-page][data-mx-opening="index"]:root #Top + .mx-real-job-proof,
html[data-mx-header-page][data-mx-opening="index"]:root .mm3-layout { padding-top:32px !important; }
html[data-wf-page="648211d82b26705faa1e4b54"]:root .section.gray { padding-top:32px !important; }
html[data-wf-page="648211d82b26705faa1e4b54"]:root .mxs-discovery { margin-top:0 !important; }
/* Keep content discovery compact and enquiry closes consistent with existing controls. */
html:root .mxcd--blog .mxcd__tools { padding-top:24px !important; grid-template-columns:minmax(0,1fr) !important; gap:16px !important; }
html:root .mxcd--blog .mxcd__tools > * { min-width:0 !important; width:100% !important; grid-column:1 !important; }
html:root .mxcd--blog .mxcd__search { max-width:560px !important; }
html:root .mxcd--blog .mxcd__filters { display:flex !important; flex-wrap:wrap !important; gap:8px !important; }
html:root .mxcd--blog .mxcd__status { text-align:left !important; margin:0 !important; }
html:root .mx-customer-close { background:var(--mx-paper); border-top:1px solid var(--mx-line); }
html:root .mx-customer-close > .webflow-container { display:flex; align-items:center; justify-content:space-between; gap:32px; }
html:root .mx-customer-close h2 { max-width:24ch; margin:0 0 16px; font-size:clamp(28px,3vw,40px); line-height:1.12; }
html:root .mx-customer-close p { max-width:55ch; margin:0; color:var(--mx-muted); }
html:root .mx-customer-close__actions { display:flex; flex-wrap:wrap; gap:12px; flex-shrink:0; }
html:root .mx-customer-close__actions a { display:inline-flex; align-items:center; justify-content:center; padding:0 var(--mx-action-padding-inline,18px); }
html:root .text-rich-text .mx-guide-updated { margin:0 0 16px !important; color:var(--mx-muted); font-size:14px; }
html:root .text-rich-text .mx-guide-opening-action { padding:16px 0; border-top:1px solid var(--mx-line); border-bottom:1px solid var(--mx-line); }
html:root #contact-form .mx-form-routing { margin:0 0 20px; color:var(--mx-ink); font:16px/1.55 Arial,sans-serif; }
html:root #contact-form .mx-form-routing p { margin:0; }
html:root #contact-form .mx-form-routing a { color:inherit; font-weight:700; text-decoration:underline; text-underline-offset:.2em; }
html:root #contact-form .mx-form-routing a:focus-visible { outline:3px solid var(--mx-red); outline-offset:3px; }
@media(max-width:991px){html:root .mx-customer-close > .webflow-container { align-items:flex-start; flex-direction:column; }}
@media(max-width:479px){html:root .mx-customer-close__actions { width:100%; flex-direction:column; } html:root .mx-customer-close__actions a { width:100%; }}
html[data-mx-opening="article"]:root .blog__inner { padding:0 0 48px !important; }
html[data-mx-opening="article"]:root .line-wrapper.top.blog { width:min(calc(70ch + 64px),100%) !important; max-width:none !important; margin-top:0 !important; padding:32px !important; font-size:17px !important; }
@media(max-width:767px){html[data-mx-opening="article"]:root .line-wrapper.top.blog { padding:24px 20px !important; }}

/* Recovery panels and the compact mobile navigation use the shared card rhythm. */
html:root [data-mx-empty-state] { background:#fff !important; border:1px solid var(--mx-line) !important; padding:24px !important; }
html:root [data-mx-empty-state] h2 { font-size:clamp(24px,3vw,32px) !important; line-height:1.15 !important; margin:0 0 16px !important; }
html:root [data-mx-empty-state] p { margin:0 0 24px !important; }
html:root .mx-utility-actions .mx-utility-primary { color:#fff !important; background:#b92024 !important; border-color:#b92024 !important; }
html:root .mx-utility-actions .mx-utility-primary:hover { background:var(--mx-ink) !important; border-color:var(--mx-ink) !important; }
@media(max-width:991px){
 html:root .mm3-form-card { order:1 !important; }
 html:root .mm3-desk { order:2 !important; }
 html:root .navbar .nav-buttons { display:grid !important; grid-template-columns:minmax(0,1fr) !important; width:100% !important; gap:10px !important; padding:12px 0 0 !important; }
 html:root .navbar .nav-buttons .button { width:100% !important; min-width:0 !important; max-width:100% !important; margin:0 !important; padding:16px !important; white-space:normal !important; }
}

/* Design-quality pass: repair the existing templates and retain their content roles. */
/* Collapse only the unused related-work track; real future case studies retain it. */
html[data-mx-opening="service"]:root .line-wrapper.top:has(> [data-mx-related-projects] .w-dyn-empty) {
  display:block !important; max-width:1000px !important; margin:0 auto !important;
}
html[data-mx-opening="service"]:root .block-wrapper.services {
  width:100% !important; padding:48px !important; border-right:0 !important;
}
html[data-mx-opening="service"]:root .block-wrapper.services > :is(.text-rich-text,.mxsd-decision) {
  width:100% !important; max-width:70ch !important; margin-inline:auto !important;
}
html[data-mx-opening="service"]:root #Top.services {
  width:100% !important; max-width:1000px !important; margin-inline:auto !important;
  padding:32px 0 0 !important; border:0 !important;
}
html[data-mx-opening="service"]:root #Top.services .invisible-image-div { width:100% !important; height:auto !important; aspect-ratio:2 / 1 !important; }
html[data-mx-opening="service"]:root .service-image {
  height:auto !important; min-height:0 !important; aspect-ratio:2 / 1 !important;
  transform:none !important; border:0 !important;
}
html[data-mx-opening="service"]:root .service-image img { height:100% !important; }
/* A consistent scan pattern makes Guides easier to compare without changing order. */
html:root .collection-list-blog > .mxcd-card--lead { grid-column:auto !important; }
html:root .collection-list-blog .work-image-wrapper { aspect-ratio:3 / 2 !important; height:auto !important; }
html:root .collection-list-blog .work-post.post { height:100% !important; min-height:0 !important; transform:none !important; }
html:root .collection-list-blog .info-wrapper { padding:24px !important; }
html:root .collection-list-blog .work-post-link { height:100% !important; display:flex !important; flex-direction:column !important; }
html:root .collection-list-blog .work-post-link > .info-wrapper { flex:1 0 auto; }
html:root .text-rich-text figcaption { text-align:left !important; color:var(--mx-muted); }
/* Align Guide headings to their reading measure; retain the full-width dark opening. */
@media(min-width:768px){
 html[data-mx-header-page][data-wf-page="648211d82b26705faa1e4b4c"]:root {
   --mx-header-inset:max(24px,calc((100vw - 660px) / 2));
 }
}
/* Detail pages are reading layouts, not cards from the Projects index. */
html[data-wf-page="648211d82b26705faa1e4b4d"]:root .info-wrapper.project {
  display:block !important; padding:40px !important;
}
html[data-wf-page="648211d82b26705faa1e4b4d"]:root .info-wrapper.project > :is(.text--label,.text-rich-text) {
  width:100% !important; max-width:70ch !important; margin-inline:0 !important;
}
html[data-wf-page="648211d82b26705faa1e4b4d"]:root .info-wrapper.project > .text--label { margin-bottom:20px !important; }
html[data-wf-page="648211d82b26705faa1e4b4d"]:root .info-wrapper.project > .view-more { display:none !important; }
html:root [data-mx-project-inquiry] { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) !important; align-items:start !important; gap:32px !important; background:transparent !important; }
html:root [data-mx-project-inquiry] .page-title.right { padding:0 !important; }
html:root [data-mx-project-inquiry] .heading { font-size:clamp(28px,3vw,40px) !important; line-height:1.12 !important; max-width:20ch !important; }
html:root [data-mx-project-inquiry] > div:last-child { background:transparent !important; padding:0 !important; }
html:root .mx-project-routes { margin:0 !important; padding:24px !important; background:var(--mx-white) !important; }
@media(max-width:767px){
 html[data-mx-opening="service"]:root .block-wrapper.services { padding:28px 20px !important; }
 html[data-mx-opening="service"]:root #Top.services { width:calc(100% - 32px) !important; padding-top:24px !important; }
 html[data-mx-opening="service"]:root .service-image,
 html[data-mx-opening="service"]:root #Top.services .invisible-image-div { aspect-ratio:3 / 2 !important; }
 html:root .mxsd-decision { padding:24px 20px !important; }
 html:root .mxsd-decision .mxsd-actions { align-items:stretch !important; flex-direction:column !important; gap:8px !important; }
 html:root .mxsd-decision .mxsd-actions a:not([hidden]) { justify-content:center !important; width:100% !important; }
 html:root .mxcd--blog .mxcd__filters { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
 html:root .mxcd--blog .mxcd__filter { min-height:44px !important; padding:10px 8px !important; }
 /* Questions lead the Guides index; photographs support the reading choice. */
 html[data-mx-header-page][data-wf-page="648211d82b26705faa1e4b48"]:root #Top { padding-bottom:24px !important; }
 html[data-mx-header-page][data-wf-page="648211d82b26705faa1e4b48"]:root #Top .mxcd__kicker { display:none !important; }
 html[data-mx-header-page][data-wf-page="648211d82b26705faa1e4b48"]:root #Top h1 { margin-top:0 !important; padding-bottom:16px !important; }
 html[data-mx-header-page][data-wf-page="648211d82b26705faa1e4b48"]:root #Top .mxcd__copy { margin-top:16px !important; }
 html:root .mxcd--blog .mxcd__tools { padding:16px !important; gap:12px !important; }
 html:root .collection-list-blog .info-wrapper { padding:20px !important; }
 html:root .collection-list-blog .work-image-wrapper { aspect-ratio:2 / 1 !important; }
 html[data-wf-item-slug="plumbing"]:root .service-image,
 html[data-wf-item-slug="plumbing"]:root #Top.services .invisible-image-div { aspect-ratio:2 / 1 !important; }
 html[data-wf-page="648211d82b26705faa1e4b4d"]:root .info-wrapper.project { padding:28px 20px !important; }
 html:root [data-mx-project-inquiry] { grid-template-columns:minmax(0,1fr) !important; gap:28px !important; }
 /* Compact navigation with the same links and minimum 44px touch targets. */
 html:root .footer__top .grid--main { display:flex !important; flex-direction:column !important; align-items:center !important; gap:24px !important; }
 html:root .footer__top .brand.footer { margin:0 !important; }
 html:root .footer__column { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; width:100% !important; gap:0 16px !important; }
 html:root .footer__column .footer__link:not([hidden]) { display:flex !important; align-items:center !important; justify-content:center !important; min-height:44px !important; margin:0 !important; }
 html:root .footer__top { margin-bottom:28px !important; }
}

/* Tablet and mobile footer service links meet the 44px touch-target minimum. */
@media screen and (max-width:991px) {
  html:root .footer__services-link {
    min-height:44px;
    min-width:44px;
  }
}

/* Encoding-safe arrow for the shared Projects and Guides card action. */
.info-wrapper .view-more::after{content:" \2192"}

/* Visual review: preserve readable recovery links and focus clearance. */
html:root .mxcd__empty a,
html:root .mxcd__empty a:hover,
html:root .mxcd__empty a:focus-visible {
  color: #fff !important;
  text-decoration: underline !important;
  text-underline-offset: .2em;
  display: inline-block;
  margin: 6px;
}
html:root .mxcd__empty a:focus-visible {
  outline-color: #fff !important;
}
html:root .mxh-faq-answer { padding-top: 12px; }
html:root .mxs-more { margin-top: 24px; }
html:root .mxs-more[hidden] { display: none !important; }
@media (max-width: 767px) {
  html:root .mxh-hero-title {
    font-size: clamp(30px, 9.4vw, 42px) !important;
    text-wrap: wrap !important;
  }
  html:root .mxh-hero-title .mxh-title-line { display: block !important; }
  html:root .mxh-hero-title .mxh-title-line:first-child { white-space: nowrap; }
}

/* Areas opening: one compact introduction before the connected region selector. */
html[data-wf-page="6a7a559ce4674e1355d6e618"][data-mx-header-page]:root #Top {
  padding-top: 104px !important;
  padding-bottom: var(--mx-space-3, 24px) !important;
}
@media (max-width: 1199px) {
  html[data-wf-page="6a7a559ce4674e1355d6e618"][data-mx-header-page]:root #Top { padding-top: 90px !important; }
}
@media (max-width: 767px) {
  html[data-wf-page="6a7a559ce4674e1355d6e618"][data-mx-header-page]:root #Top {
    padding-bottom: var(--mx-space-3, 24px) !important;
  }
}

/* About team: one section gap and one heading gap, without legacy stacking. */
html[data-wf-page="648211d82b26705faa1e4b47"]:root .section.gray:has(.service__achivements) {
  padding-bottom: 0 !important;
}
html[data-wf-page="648211d82b26705faa1e4b47"]:root .section.gray:has(.team-grid) {
  margin-top: 0 !important;
  padding-top: var(--mx-space-6, 56px) !important;
}
html[data-wf-page="648211d82b26705faa1e4b47"]:root .section-title:has(+ .team-grid) {
  margin: 0 0 var(--mx-space-4, 32px) !important;
  padding-top: var(--mx-space-4, 32px);
}
html[data-wf-page="648211d82b26705faa1e4b47"]:root .section-title:has(+ .team-grid) .square {
  top: 0;
  height: 8px;
}
html[data-wf-page="648211d82b26705faa1e4b47"]:root .section-title:has(+ .team-grid) .square__line {
  height: 8px;
}
html[data-wf-page="648211d82b26705faa1e4b47"]:root .team-grid { margin-top: 0 !important; }
html[data-wf-page="648211d82b26705faa1e4b47"]:root .team-grid + .team-grid {
  margin-top: var(--mx-space-4, 32px) !important;
}
@media (max-width: 767px) {
  html[data-wf-page="648211d82b26705faa1e4b47"]:root .section.gray:has(.team-grid) {
    padding-top: var(--mx-space-5, 40px) !important;
  }
  html[data-wf-page="648211d82b26705faa1e4b47"]:root .section-title:has(+ .team-grid) {
    margin-bottom: var(--mx-space-3, 24px) !important;
  }
}
