/* Clone overrides — fixes for JS-applied behaviors that differ on clone */

/* Avada Fusion Builder: reveal animated elements without JS */
.fusion-animated {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  animation: none !important;
}

/* Avada before/after slider: container height:0 until JS runs.
   CSS-only recreation: after image is base layer (sets height), before image
   clipped to left 50% via clip-path, handle positioned statically at center. */
.fusion-image-before-after {
  position: relative !important;
  height: auto !important;
  overflow: hidden !important;
}

/* After image = base, determines natural height */
.fusion-image-before-after img.fusion-image-before-after-after {
  display: block !important;
  position: static !important;
  width: 100% !important;
  height: auto !important;
}

/* Before image = absolute, full size, clipped to left 50% */
.fusion-image-before-after img.fusion-image-before-after-before {
  position: absolute !important;
  display: block !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  clip-path: inset(0 var(--ba-clip, 50%) 0 0) !important;
}

/* Overlay container fills the element */
.fusion-image-before-after .fusion-image-before-after-overlay {
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
}

/* Handle circle at the 50% split point */
.fusion-image-before-after .fusion-image-before-after-handle {
  display: flex !important;
  position: absolute !important;
  top: 50% !important;
  left: var(--ba-split, 50%) !important;
  transform: translate(-50%, -50%) !important;
}

/* Vertical divider line — follows --split var set by JS, defaults to 50% */
.fusion-image-before-after .fusion-image-before-after-overlay::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: var(--ba-split, 50%) !important;
  width: 2px !important;
  height: 100% !important;
  background: rgba(255,255,255,0.8) !important;
  transform: translateX(-50%) !important;
}

/* Avada image element boxes: height 0 until JS — let natural image size take over */
.fusion-image-element {
  height: auto !important;
}
.fusion-image-element img {
  position: static !important;
  height: auto !important;
}

/* Avada gallery recovery.
   The live site's Fusion/Isotope runtime turns gallery columns from
   display:none into positioned masonry tiles. On the static clone that JS does
   not finish reliably, so the Project Gallery heading showed but all 12 images
   collapsed to 0x0. Recreate the masonry layout with CSS columns so the section
   remains visible and responsive without depending on runtime calculations. */
.fusion-gallery.fusion-gallery-container {
  display: block !important;
  height: auto !important;
  position: static !important;
  column-count: 3;
  column-gap: 10px;
  margin: -5px !important;
}

.fusion-gallery.fusion-gallery-container .fusion-grid-column,
.fusion-gallery.fusion-gallery-container .fusion-gallery-column {
  display: inline-block !important;
  position: static !important;
  left: auto !important;
  top: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  break-inside: avoid;
  page-break-inside: avoid;
  margin: 0 0 10px 0 !important;
  vertical-align: top;
}

.fusion-gallery-image {
  display: block !important;
  height: auto !important;
  overflow: hidden !important;
}
.fusion-gallery-image a,
.fusion-gallery-image img {
  display: block !important;
  position: static !important;
  height: auto !important;
  width: 100% !important;
}

@media (max-width: 1024px) {
  .fusion-gallery.fusion-gallery-container {
    column-count: 2;
  }
}

@media (max-width: 640px) {
  .fusion-gallery.fusion-gallery-container {
    column-count: 1;
  }
}

/* Prevent source fixed-width Avada image frames from causing mobile horizontal scroll. */
@media (max-width: 640px) {
  .fusion-imageframe,
  .fusion-imageframe img,
  img.img-responsive {
    max-width: 100% !important;
  }
}

/* Fallback mobile nav for static Avada clone when Fusion's runtime menu JS is unavailable. */
.fusion-mobile-nav-holder.tekton-mobile-open,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-menu-fallback,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-menu-fallback {
  display: block !important;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-menu-fallback li,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-menu-fallback li {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-menu-fallback a,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-menu-fallback a {
  display: block;
  padding: 13px 30px;
  color: inherit;
  text-decoration: none;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-menu-row,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-menu-row {
  display: flex;
  align-items: stretch;
  width: 100%;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-menu-row > a,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-menu-row > a {
  flex: 1 1 auto;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-submenu-toggle,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-submenu-toggle {
  flex: 0 0 56px;
  border: 0;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  background: transparent;
  color: #3f7884;
  font: 700 24px/1 Mulish, Arial, sans-serif;
  cursor: pointer;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-submenu,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-submenu {
  display: none !important;
  margin: 0;
  padding: 0;
  list-style: none;
  background: rgba(40, 121, 133, 0.055);
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-submenu-open > .tekton-mobile-submenu,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-submenu-open > .tekton-mobile-submenu {
  display: block !important;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-submenu a,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-submenu a {
  padding-left: 46px;
  font-size: 0.94em;
  letter-spacing: 0.02em;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-submenu .tekton-mobile-submenu a,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-submenu .tekton-mobile-submenu a {
  padding-left: 62px;
  font-size: 0.9em;
}

.fusion-mobile-nav-holder.tekton-mobile-open .tekton-mobile-menu-fallback > .tekton-mobile-has-children > .tekton-mobile-menu-row > a,
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded .tekton-mobile-menu-fallback > .tekton-mobile-has-children > .tekton-mobile-menu-row > a {
  font-weight: 800;
  text-transform: uppercase;
}

@media (max-width: 1024px) {
  #main #content [id^="post-"] > .fusion-builder-row-1,
  .home #main .post-content > .fusion-builder-row-1 {
    margin-top: 20px !important;
  }

  .fusion-image-before-after-wrapper {
    margin-bottom: 20px !important;
  }
}

@media (max-width: 640px) {
  .fusion-secondary-header .fusion-alignleft,
  .fusion-secondary-header .fusion-alignright,
  .fusion-secondary-header .fusion-contact-info {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
  }

  .fusion-secondary-header .fusion-contact-info {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 2px 6px !important;
    padding: 6px 10px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .fusion-secondary-header .fusion-contact-info span,
  .fusion-secondary-header .fusion-contact-info a {
    font-size: 12px !important;
  }

  .fusion-secondary-header .fusion-contact-info-email-address {
    display: block !important;
    flex: 0 0 100% !important;
  }

  .fusion-secondary-header .fusion-header-separator {
    display: none !important;
  }
}

/* Icon font recovery for the static clone.
   The live WordPress CSS references Avada/FontAwesome fonts from the production
   domain. Browsers block cross-origin webfont usage without CORS, which turns
   menu chevrons and social icons into square placeholders on Pages previews.
   Re-declare those families after the live CSS so the local captured fonts win. */
@font-face {
  font-family: "icomoon";
  src: url('/fonts/f56443c535.eot');
  src: url('/fonts/d6dcc3e1ab.eot') format('embedded-opentype'),
       url('/fonts/165cda487d.woff') format('woff'),
       url('/fonts/a4420a2fd0.ttf') format('truetype'),
       url('/images/217124c02d.svg') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Font Awesome 5 Brands";
  font-style: normal;
  font-weight: normal;
  src: url('/fonts/8a602821be.eot');
  src: url('/fonts/06a45cc4cf.eot') format('embedded-opentype'),
       url('/fonts/bf4e0f40bf.woff2') format('woff2'),
       url('/fonts/c7a7acca03.woff') format('woff'),
       url('/fonts/a2cad5ca92.ttf') format('truetype'),
       url('/images/9197c53ada.svg') format('svg');
  font-display: swap;
}

@font-face {
  font-family: "Font Awesome 5 Free";
  font-style: normal;
  font-weight: 400;
  src: url('/fonts/c8d3b1e220.eot');
  src: url('/fonts/e1d9931a2e.eot') format('embedded-opentype'),
       url('/fonts/6eafbb7955.woff2') format('woff2'),
       url('/fonts/8710932403.woff') format('woff'),
       url('/fonts/6d046a36dc.ttf') format('truetype'),
       url('/images/66d1bbbe73.svg') format('svg');
  font-display: swap;
}

@font-face {
  font-family: "Font Awesome 5 Free";
  font-style: normal;
  font-weight: 900;
  src: url('/fonts/4c19421334.eot');
  src: url('/fonts/dc97617693.eot') format('embedded-opentype'),
       url('/fonts/40e82a95d9.woff2') format('woff2'),
       url('/fonts/2ce86afa01.woff') format('woff'),
       url('/fonts/b74178eff5.ttf') format('truetype'),
       url('/images/ba6bdd1aef.svg') format('svg');
  font-display: swap;
}

/* Footer recovery.
   The captured Avada footer nests a full-width builder column inside the first
   footer widget column. On desktop the theme CSS was treating that inner builder
   column like a page-content grid column, shrinking it to roughly 25% of the
   already-narrow footer column. That made the logo tiny and forced the address,
   email, and phone into one-word lines. Keep the nested footer builder column
   full-width so the footer matches the live capture across desktop/tablet/mobile. */
.fusion-footer .fusion-footer-widget-column .fusion_builder_column_1_1,
.fusion-footer .fusion-footer-widget-column .fusion-one-full {
  width: 100% !important;
  max-width: 100% !important;
  clear: none !important;
}

.fusion-footer .fusion-footer-widget-column .fusion-column-wrapper {
  width: auto !important;
  max-width: 100% !important;
}

.fusion-footer .fusion-footer-widget-column .fusion-imageframe img.wp-image-1685 {
  width: 100% !important;
  max-width: 220px !important;
  height: auto !important;
}

@media (max-width: 800px) {
  .fusion-footer .fusion-footer-widget-column .fusion_builder_column_1_1,
  .fusion-footer .fusion-footer-widget-column .fusion-one-full,
  .fusion-footer .fusion-footer-widget-column .fusion-column-wrapper {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* Desktop dropdown nav recovery.
   Avada normally uses JS to temporarily set dropdown parents to overflow:visible
   while hovering. In the static clone the base CSS reveals the submenu opacity,
   but the parent li still clips it with overflow:hidden, so dropdowns appear dead.
   Keep this scoped to desktop so the mobile fallback menu behavior is unchanged. */
@media (min-width: 801px) {
  .fusion-main-menu .fusion-dropdown-menu,
  .fusion-main-menu .fusion-dropdown-submenu {
    overflow: visible !important;
  }

  .fusion-main-menu li.menu-item-has-children:hover > .sub-menu,
  .fusion-main-menu li.menu-item-has-children:focus-within > .sub-menu,
  .fusion-main-menu li.fusion-dropdown-menu:hover > .sub-menu,
  .fusion-main-menu li.fusion-dropdown-submenu:hover > .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 99999 !important;
  }

  .fusion-main-menu > ul > li > .sub-menu {
    top: 100% !important;
  }

  .fusion-main-menu .sub-menu li.menu-item-has-children > .sub-menu {
    left: 100% !important;
    top: 0 !important;
  }
}

/* Global desktop header recovery.
   The captured Avada header was constrained to the page content width, while the
   approved cutover direction is a full-browser-width desktop header with the
   same internal order. Keep this desktop-scoped so the existing mobile fallback
   menu stays stable. */
@media (min-width: 1025px) {
  .fusion-header-wrapper,
  .fusion-header-wrapper .fusion-secondary-header,
  .fusion-header-wrapper .fusion-header {
    width: 100% !important;
    max-width: none !important;
  }

  .fusion-header-wrapper .fusion-secondary-header .fusion-row,
  .fusion-header-wrapper .fusion-header .fusion-row {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    padding-left: clamp(24px, 3vw, 56px) !important;
    padding-right: clamp(24px, 3vw, 56px) !important;
  }

  .fusion-header-wrapper .fusion-header .fusion-row {
    display: flex !important;
    align-items: center !important;
    gap: clamp(14px, 1.8vw, 28px) !important;
  }

  .fusion-header-wrapper .fusion-logo {
    float: none !important;
    flex: 0 0 auto !important;
    margin-right: 0 !important;
  }

  .fusion-header-wrapper .fusion-logo img {
    max-width: clamp(170px, 15vw, 240px) !important;
    height: auto !important;
  }

  .fusion-header-wrapper .fusion-main-menu {
    float: none !important;
    margin-left: auto !important;
    flex: 0 1 auto !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.fusion-menu-item-button,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button {
    width: auto !important;
    min-width: 0 !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a {
    padding-left: clamp(7px, 0.62vw, 11px) !important;
    padding-right: clamp(7px, 0.62vw, 11px) !important;
    white-space: nowrap !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.fusion-menu-item-button > a,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 0 11px !important;
    margin-left: 6px !important;
    border-radius: 0 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
    font-size: 13px !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.fusion-menu-item-button,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.fusion-menu-item-button > a {
    background: transparent !important;
    border: 0 !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.fusion-menu-item-button > a .fusion-button {
    margin: 0 !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button {
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a {
    box-sizing: border-box !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 24px !important;
    background: transparent !important;
    border: 2px solid #287985 !important;
    color: #287985 !important;
    line-height: 34px !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a:hover,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a:focus {
    background: #287985 !important;
    border-color: #287985 !important;
    color: #ffffff !important;
  }
}

[data-tekton-heading-wrapper] {
  display: block;
}

.tekton-preserve-h1-visual {
  font-size: max(calc(var(--minFontSize, 0) * 1px), min(calc(var(--fontSize, 40) * 1px), calc(var(--fontSize, 40) * 0.803px + var(--fontSize, 40) * 0.0194vw))) !important;
  line-height: 1.4 !important;
}

h2.tekton-preserve-h1-visual:not([style*="margin:"]) {
  margin-block-start: 0.67em !important;
  margin-block-end: 0.67em !important;
}

.tekton-preserve-h3-visual {
  font-family: Mulish !important;
  font-size: calc(var(--fontSize, 23.4) * 1px) !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  color: #6d6d6d !important;
}

p.title-heading-left.tekton-preserve-h3-visual {
  font-family: Baskervville !important;
}
p.tekton-preserve-h3-visual {
  font-size: min(calc(var(--fontSize, 32) * 1px), calc(var(--fontSize, 32) * 0.9516px + var(--fontSize, 32) * 0.00464vw)) !important;
  line-height: 1.5 !important;
  color: #000000 !important;
  font-weight: 400 !important;
}

p.tekton-preserve-h3-visual:not([style*="margin:"]),
h2.tekton-preserve-h3-visual:not([style*="margin:"]) {
  margin-block-start: 1em !important;
  margin-block-end: 1em !important;
}

.tekton-preserve-h4-visual {
  font-family: Mulish !important;
  font-size: calc(var(--fontSize, 20) * 1px) !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  color: #6d6d6d !important;
}

h3.tekton-preserve-h4-visual:not([style*="margin:"]) {
  margin-block-start: 1.33em !important;
  margin-block-end: 1.33em !important;
}

h3.title-heading-center.tekton-preserve-h4-visual {
  font-family: Baskervville !important;
  font-size: 30px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  color: #2d2d2d !important;
}

@media (min-width: 1100px) {
  .tekton-preserve-h1-visual {
    font-size: calc(var(--fontSize, 40) * 1px) !important;
  }

  h2.tekton-preserve-h3-visual {
    font-size: calc(var(--fontSize, 23.4) * 1px) !important;
  }
}

@media (min-width: 641px) {
  #post-6 .fusion-builder-row-1 {
    padding-top: clamp(56px, 7.2vw, 136px) !important;
    padding-bottom: clamp(56px, 7.2vw, 136px) !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 640px) {
  html,
  body,
  #wrapper,
  #main,
  .fusion-body,
  .fusion-builder-row,
  .fusion-flex-container,
  .fusion-row,
  .fusion-layout-column,
  .fusion-column-wrapper {
    max-width: 100vw !important;
    box-sizing: border-box !important;
  }

  html,
  body,
  #wrapper,
  #main {
    overflow-x: hidden !important;
  }

  /* Homepage mobile hero: keep the black headline card off the white header. */
  .fusion-body #post-6 .fusion-flex-container.fusion-builder-row-1 {
    padding-top: clamp(24px, 7vw, 36px) !important;
    box-sizing: border-box !important;
  }

  /* Long SEO H1s need to keep the same Avada hero treatment without clipping on phones. */
  .fusion-body h1.title-heading-center,
  .fusion-body h1.title-heading-left {
    display: block !important;
    box-sizing: border-box !important;
    width: min(calc(100vw - 40px), 350px) !important;
    max-width: min(calc(100vw - 40px), 350px) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    font-size: clamp(21px, 5.8vw, 34px) !important;
    line-height: 1.1 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  .fusion-body h1.title-heading-left > p,
  .fusion-body h1.title-heading-center > p {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .fusion-body .fusion-title,
  .fusion-body .title-heading-center,
  .fusion-body .title-heading-left,
  .fusion-body h2.title-heading-center,
  .fusion-body h2.title-heading-left,
  .fusion-body .fusion-text,
  .fusion-body .fusion-text p,
  .fusion-body .fusion-button-wrapper,
  .fusion-body .fusion-layout-column > .fusion-column-wrapper,
  .fusion-body .fusion-column-wrapper > .fusion-builder-row,
  .fusion-body .fusion-column-wrapper > .fusion-fullwidth,
  .fusion-body form,
  .fusion-body .gform_wrapper {
    width: min(calc(100vw - 40px), 350px) !important;
    max-width: min(calc(100vw - 40px), 350px) !important;
    box-sizing: border-box !important;
  }

  .fusion-body h2.title-heading-center,
  .fusion-body h2.title-heading-left {
    font-size: clamp(28px, 8vw, 36px) !important;
    line-height: 1.1 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  .fusion-body .fusion-text,
  .fusion-body .fusion-text p,
  .fusion-body form,
  .fusion-body .gform_wrapper {
    overflow-wrap: break-word !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  .fusion-body .fusion-text p {
    width: min(calc(100vw - 80px), 310px) !important;
    max-width: min(calc(100vw - 80px), 310px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

@media (min-width: 960px) and (max-width: 1024px) {
  .fusion-header-wrapper .fusion-header .fusion-row {
    width: 100% !important;
    max-width: none !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
    text-align: center !important;
  }

  .fusion-header-wrapper .fusion-logo {
    float: none !important;
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 auto 18px auto !important;
  }

  .fusion-header-wrapper .fusion-logo a {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .fusion-header-wrapper .fusion-logo img.fusion-standard-logo {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .fusion-header-wrapper .fusion-logo img.fusion-mobile-logo {
    display: none !important;
  }

  .fusion-header-wrapper .fusion-main-menu {
    float: none !important;
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 auto !important;
    clear: both !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a {
    white-space: nowrap !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button {
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a {
    box-sizing: border-box !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 18px !important;
    background: transparent !important;
    border: 2px solid #287985 !important;
    color: #287985 !important;
    line-height: 34px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a:hover,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a:focus {
    background: #287985 !important;
    border-color: #287985 !important;
    color: #ffffff !important;
  }
}

@media (min-width: 1025px) and (max-width: 1320px) {
  .fusion-header-wrapper .fusion-header .fusion-row {
    gap: 16px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .fusion-header-wrapper .fusion-logo img {
    max-width: 170px !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a {
    padding-left: 7px !important;
    padding-right: 7px !important;
    font-size: 12px !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.fusion-menu-item-button > a,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a {
    min-height: 34px !important;
    padding: 0 8px !important;
    margin-left: 4px !important;
    font-size: 11px !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a {
    box-sizing: border-box !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 18px !important;
    border-width: 2px !important;
    line-height: 34px !important;
  }
}


/* Global header normalization.
   Match the approved larger-logo/serif-nav header across cloned pages. */
@media (min-width: 1025px) {
  .fusion-header-wrapper .fusion-logo img,
  .fusion-header-wrapper .fusion-logo img.fusion-standard-logo {
    width: clamp(220px, 14vw, 290px) !important;
    max-width: clamp(220px, 14vw, 290px) !important;
    height: auto !important;
  }

  .fusion-header-wrapper .fusion-secondary-header,
  .fusion-header-wrapper .fusion-secondary-header .fusion-contact-info,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a .menu-text,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a .fusion-button,
  .fusion-header-wrapper .fusion-main-menu .sub-menu a,
  .fusion-header-wrapper .fusion-main-menu .sub-menu span {
    font-family: Baskervville, Georgia, 'Times New Roman', serif !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a .menu-text {
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.015em !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.fusion-menu-item-button > a,
  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li.tekton-header-location-button > a {
    font-size: 13px !important;
    font-weight: 700 !important;
  }
}

@media (min-width: 1025px) and (max-width: 1320px) {
  .fusion-header-wrapper .fusion-logo img,
  .fusion-header-wrapper .fusion-logo img.fusion-standard-logo {
    width: clamp(200px, 17vw, 235px) !important;
    max-width: clamp(200px, 17vw, 235px) !important;
  }

  .fusion-header-wrapper .fusion-main-menu > ul.fusion-menu > li > a {
    font-size: 13px !important;
  }
}

/* Footer column normalization after adding service areas.
   Keep the new Service Areas column visually aligned with Navigate and Services. */
.fusion-footer-widget-area .tekton-footer-columns {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.35fr) minmax(140px, 0.7fr) minmax(200px, 1fr) minmax(240px, 1.2fr);
  column-gap: clamp(28px, 3vw, 54px);
  row-gap: 42px;
  align-items: start;
}

.fusion-footer-widget-area .tekton-footer-columns > .fusion-column {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.fusion-footer-widget-area .tekton-footer-columns h2 {
  font-family: Baskervville, Georgia, 'Times New Roman', serif !important;
  color: #ffffff !important;
}

.fusion-footer-widget-area .tekton-footer-columns a {
  color: #f3d2a7 !important;
}

@media (max-width: 1024px) {
  .fusion-footer-widget-area .tekton-footer-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .fusion-footer-widget-area .tekton-footer-columns {
    grid-template-columns: 1fr;
  }
}

/* Homepage hero H1 guardrail.
   Long local-service H1s need a mobile-specific size so the captured Avada
   desktop heading does not clip at the viewport edge. */
@media (max-width: 640px) {
  .home .fusion-title-1,
  #post-6 .fusion-title-1 {
    box-sizing: border-box !important;
    width: calc(100vw - 80px) !important;
    max-width: calc(100vw - 80px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .home .fusion-title-1 .title-heading-center,
  #post-6 .fusion-title-1 .title-heading-center {
    box-sizing: border-box !important;
    max-width: 100% !important;
    font-size: clamp(24px, 6.7vw, 28px) !important;
    line-height: 1.12 !important;
    overflow-wrap: normal !important;
    text-wrap: balance;
  }
}

/* Homepage mobile punch-list from review: keep the intro card centered,
   give the Learn More / Designers transition breathing room, and let the
   embedded map span the full phone width. */
@media (max-width: 640px) {
  #post-6 .fusion-builder-row-2 .fusion-builder-column-4,
  #post-6 .fusion-builder-row-2 .fusion-builder-column-4 > .fusion-column-wrapper {
    box-sizing: border-box !important;
    width: calc(100vw - 60px) !important;
    max-width: calc(100vw - 60px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  #post-6 .fusion-builder-row-2 .fusion-builder-column-4 > .fusion-column-wrapper {
    padding-left: 20px !important;
    padding-right: 20px !important;
    overflow: hidden !important;
  }

  #post-6 .fusion-builder-row-2 .fusion-builder-column-4 .fusion-text,
  #post-6 .fusion-builder-row-2 .fusion-builder-column-4 .fusion-text p {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    overflow-wrap: normal !important;
  }

  #post-6 .fusion-flex-container.fusion-builder-row-2 {
    padding-bottom: 25px !important;
  }

  #post-6 .fusion-flex-container.fusion-builder-row-4 {
    padding-top: 25px !important;
  }

  #post-6 .fusion-flex-container.fusion-builder-row-9 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #post-6 .fusion-flex-container.fusion-builder-row-9 > .fusion-builder-row,
  #post-6 .fusion-builder-row-9 .fusion-layout-column,
  #post-6 .fusion-builder-row-9 .fusion-column-wrapper,
  #post-6 .fusion-builder-row-9 a.fusion-modal-text-link,
  #post-6 .fusion-builder-row-9 iframe {
    box-sizing: border-box !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: 0 !important;
    transform: none !important;
  }

  #post-6 .fusion-flex-container.fusion-builder-row-9 > .fusion-builder-row,
  #post-6 .fusion-builder-row-9 .fusion-column-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* Team page mobile overflow cleanup.
   The captured Avada quote cards keep desktop blockquote margins and column padding
   on phones, pushing the owner bio and quote section outside the viewport. */
@media (max-width: 640px) {
  #post-12 .fusion-builder-row,
  #post-12 .fusion-flex-container,
  #post-12 .fusion-layout-column,
  #post-12 .fusion-column-wrapper {
    box-sizing: border-box !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  #post-12 .fusion-flex-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  #post-12 .fusion-builder-row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #post-12 .fusion-builder-column-2,
  #post-12 .fusion-builder-column-3,
  #post-12 .fusion-builder-column-2 > .fusion-column-wrapper,
  #post-12 .fusion-builder-column-3 > .fusion-column-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #post-12 .fusion-builder-column-3 > .fusion-column-wrapper {
    padding-top: 18px !important;
  }

  #post-12 .fusion-text:not(.fusion-text-2):not(.fusion-text-3) p {
    text-align: left !important;
    hyphens: none !important;
  }

  #post-12 .fusion-text-2,
  #post-12 .fusion-text-3 {
    box-sizing: border-box !important;
    width: min(calc(100vw - 56px), 334px) !important;
    max-width: min(calc(100vw - 56px), 334px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
  }

  #post-12 .fusion-text-2 blockquote,
  #post-12 .fusion-text-3 blockquote {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 22px 16px 22px 24px !important;
    overflow: visible !important;
  }

  #post-12 .fusion-text-2 blockquote p,
  #post-12 .fusion-text-3 blockquote p {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(18px, 4.9vw, 22px) !important;
    line-height: 1.55 !important;
    text-align: left !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  #post-12 .fusion-imageframe,
  #post-12 .fusion-imageframe img {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  #post-12 .fusion-button {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
}

/* Mobile-first cleanup for the service area template.
   The cloned desktop Avada rows carried giant hero spacing, negative form
   offsets, justified copy, and deep gallery/section padding onto phones. */
@media (max-width: 640px) {
  .fusion-social-networks,
  .fusion-social-networks-wrapper {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    transform: none !important;
    overflow: hidden !important;
  }

  #post-2633 .fusion-flex-container.fusion-builder-row-1 {
    padding-top: clamp(64px, 18vw, 86px) !important;
    padding-bottom: clamp(64px, 18vw, 92px) !important;
    background-position: center center !important;
    min-height: 0 !important;
  }

  #post-2633 .fusion-builder-row-1 .fusion-title-1,
  #post-2633 .fusion-builder-row-1 .fusion-text-1,
  #post-2633 .fusion-builder-row-1 .fusion-button-wrapper,
  #post-2633 .fusion-builder-row-1 h1 {
    width: 100% !important;
    max-width: 100% !important;
  }

  #post-2633 .fusion-builder-row-1 h1.title-heading-left {
    font-size: clamp(28px, 8.2vw, 36px) !important;
    line-height: 1.08 !important;
    text-wrap: balance;
  }

  #post-2633 .fusion-builder-row-1 .fusion-text p,
  #post-2633 .fusion-text p[style*="justify"] {
    text-align: left !important;
    hyphens: none !important;
  }

  #post-2633 .fusion-flex-container.fusion-builder-row-2 {
    padding: 28px 20px 34px !important;
  }

  #post-2633 .fusion-builder-column-1 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  #post-2633 .fusion-builder-column-1 > .fusion-column-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 26px 16px !important;
  }

  #post-2633 .fusion-builder-column-1 .fusion-title,
  #post-2633 .fusion-builder-column-1 h2,
  #post-2633 .fusion-builder-column-1 .fusion-text,
  #post-2633 .fusion-builder-column-1 .fusion-text p {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #post-2633 .fusion-builder-column-1 h2 {
    font-size: clamp(26px, 7.4vw, 32px) !important;
    line-height: 1.08 !important;
  }

  #post-2633 iframe[id^="inline-"] {
    position: static !important;
    left: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    display: block !important;
    width: 100% !important;
    height: 1040px !important;
    min-height: 940px !important;
    overflow: auto !important;
  }

  #post-2633 a.fusion-modal-text-link:has(iframe[id^="inline-"]) {
    display: block !important;
    width: 100% !important;
    min-height: 1040px !important;
  }

  #post-2633 .fusion-flex-container.fusion-builder-row-3 {
    padding-top: 54px !important;
    padding-bottom: 46px !important;
  }

  #post-2633 .fusion-builder-row-3 .fusion-layout-column,
  #post-2633 .fusion-builder-row-5 .fusion-layout-column {
    margin-bottom: 24px !important;
  }

  #post-2633 .fusion-flex-container.fusion-builder-row-5,
  #post-2633 .fusion-flex-container.fusion-builder-row-6,
  #post-2633 .fusion-flex-container.fusion-builder-row-10,
  #post-2633 .fusion-flex-container.fusion-builder-row-12 {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  #post-2633 .fusion-flex-container.fusion-builder-row-8 {
    padding-bottom: 70px !important;
  }

  #post-2633 .fusion-flex-container.fusion-builder-row-9 {
    padding: 32px 20px !important;
    margin-top: 0 !important;
  }

  #post-2633 #get-started,
  #post-2633 #get-started-top {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  #post-2633 #get-started > .fusion-column-wrapper,
  #post-2633 #get-started-top > .fusion-column-wrapper {
    min-height: 1120px !important;
  }

  #post-2633 .fusion-body .fusion-text,
  #post-2633 .fusion-text,
  #post-2633 .fusion-text p,
  #post-2633 .fusion-title,
  #post-2633 .title-heading-left,
  #post-2633 .title-heading-center {
    max-width: 100% !important;
  }

  #post-2633 h2.title-heading-left,
  #post-2633 h2.title-heading-center {
    font-size: clamp(27px, 7.6vw, 34px) !important;
    line-height: 1.12 !important;
    text-wrap: balance;
  }

  #post-2633 h3.title-heading-left,
  #post-2633 h3.title-heading-center {
    font-size: clamp(22px, 6.2vw, 28px) !important;
    line-height: 1.2 !important;
  }

  #post-2633 .fusion-builder-row-5 h3,
  #post-2633 .fusion-builder-row-5 .fusion-text,
  #post-2633 .fusion-builder-row-5 .fusion-text p {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #post-2633 .fusion-builder-row-5 .fusion-column-wrapper,
  #post-2633 .fusion-builder-row-6 .fusion-column-wrapper {
    box-sizing: border-box !important;
    width: calc(100vw - 80px) !important;
    max-width: calc(100vw - 80px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  #post-2633 .fusion-builder-row-6 .fusion-title,
  #post-2633 .fusion-builder-row-6 .fusion-text,
  #post-2633 .fusion-builder-row-6 h3,
  #post-2633 .fusion-builder-row-6 p {
    width: 100% !important;
    max-width: 100% !important;
  }

  #post-2633 .fusion-section-separator,
  #post-2633 .fusion-section-separator-svg,
  #post-2633 .fusion-section-separator-spacer,
  .fusion-section-separator,
  .fusion-section-separator-svg,
  .fusion-section-separator-spacer {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  #post-2633 .fusion-button-wrapper,
  #post-2633 .fusion-button {
    max-width: 100% !important;
  }
}

@media (max-width: 640px) {
  h1,
  h1.title-heading-left,
  h1.title-heading-center,
  .fusion-title h1.title-heading-left,
  .fusion-title h1.title-heading-center {
    font-size: clamp(30px, 8.2vw, 36px) !important;
    line-height: 1.12 !important;
    text-wrap: balance;
  }

  #post-8 .fusion-builder-column-3,
  #post-8 .fusion-builder-column-4 {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #post-8 .fusion-builder-column-3 > .fusion-column-wrapper,
  #post-8 .fusion-builder-column-4 > .fusion-column-wrapper {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  #post-8 .fusion-builder-column-3 .fusion-title,
  #post-8 .fusion-builder-column-4 .fusion-title,
  #post-8 .fusion-builder-column-3 .fusion-text,
  #post-8 .fusion-builder-column-4 .fusion-text,
  #post-8 .fusion-builder-column-3 p,
  #post-8 .fusion-builder-column-4 p {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
  }

  iframe[src*="google.com/maps"],
  iframe[data-src*="google.com/maps"] {
    display: block !important;
    box-sizing: border-box !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  a.fusion-modal-text-link:has(iframe[src*="google.com/maps"]),
  a.fusion-modal-text-link:has(iframe[data-src*="google.com/maps"]) {
    display: block !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* Blog title bar readability */
body.single-post .fusion-page-title-bar {
  position: relative !important;
  overflow: hidden !important;
  background-image: var(--page_title_bg) !important;
  background-size: cover !important;
}

body.single-post .fusion-page-title-bar::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  pointer-events: none;
  z-index: 0;
}

body.single-post .fusion-page-title-row {
  position: relative;
  z-index: 1;
}

body.single-post .fusion-page-title-bar h1.entry-title {
  color: #ffffff !important;
}

@media only screen and (max-width: 640px) {
  body.single-post .fusion-page-title-captions {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.single-post .fusion-page-title-bar h1.entry-title {
    font-size: 32px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }
}
