.elementor-6670 .elementor-element.elementor-element-29ae153{--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;--margin-top:-11px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-6670 .elementor-element.elementor-element-17792cf{--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;}@media(max-width:767px){.elementor-6670 .elementor-element.elementor-element-29ae153{--margin-top:-1px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}}/* Start custom CSS for html, class: .elementor-element-ee0b137 *//* Make the section that CONTAINS #hero-contractors go full-bleed */
.elementor-section:has(#hero-contractors),
.e-con:has(#hero-contractors) {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

/* If your theme wraps sections in "container" divs, let this one overflow */
[class*="container"]:has(#hero-contractors) {
  overflow: visible !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Prevent horizontal scrollbars from the negative margins */
html, body { overflow-x: hidden; }

html, body { overflow-x: hidden; }
/* Optional: ensure the inner wrapper respects page gutters on mobile */
#hero-contractors .content-wrapper { padding-inline: 16px; }
@media (min-width: 768px){
  #hero-contractors .content-wrapper { padding-inline: 24px; }
}
/* Remove underlines from CTA links/buttons */
#hero-contractors .ctas a,
#hero-contractors .btn,
#hero-contractors .btn:link,
#hero-contractors .btn:visited,
#hero-contractors .btn:hover,
#hero-contractors .btn:focus,
#cta-rail .btn,
#cta-rail a.cta-rail-button,
#partner-with-ladma .btn,
a.cta-rail-button {
  text-decoration: none !important;
}

/* Also ensure no underline on hover/focus */
#hero-contractors .ctas a:hover,
#hero-contractors .ctas a:focus,
#cta-rail .btn:hover,
#cta-rail .btn:focus,
#cta-rail a.cta-rail-button:hover,
#cta-rail a.cta-rail-button:focus,
a.cta-rail-button:hover,
a.cta-rail-button:focus {
  text-decoration: none !important;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-23b577f *//* === Make row items the same height === */

/* 1) KPI row: equal-height cards */
.kpi-row{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
  align-items: stretch;          /* let items stretch to row height */
}
.kpi{
  height: 100%;
  min-height: 140px;             /* visual floor */
  display: flex;                 /* center content vertically */
  flex-direction: column;
  justify-content: center;
}

/* 2) Testimonials: equal-height cards per row */
.test-cards{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.25rem;
  align-items: stretch;
}
.test-card{
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;  /* keeps quote & attribution balanced */
}

/* 3) Split sections (text + image) column balance */
.split{
  align-items: stretch;          /* columns match height */
}
.split .media figure{ height: 100%; }
.split .media img{
  width: 100%;
  height: 100%;
  object-fit: cover;             /* prevents short/tall image mismatch */
}

/* Optional: lock consistent image aspect ratios inside content images */
.split .media img,
#why-ladma .media img,
#capabilities .media img{
  aspect-ratio: 16 / 9;          /* reserve space and unify heights */
}

/* Mobile safeguard: let items auto-size on small screens */
@media (max-width: 768px){
  .kpi{ min-height: 120px; }
  .test-card{ height: auto; }
  .split .media img{ aspect-ratio: auto; height: auto; }
}
/* ===== KPI TILES: force clean 4-up on desktop ===== */
.kpi-row{
  display: grid !important;                /* override any flex */
  gap: 16px;
  grid-template-columns: repeat(1, 1fr);   /* mobile default */
}
.kpi{
  min-width: 0;
  box-sizing: border-box;
  padding: 20px;                           /* slightly smaller so 4 fit comfortably */
}

/* >=640px (tablets): 2 columns */
@media (min-width: 640px){
  .kpi-row{ grid-template-columns: repeat(2, 1fr); }
}

/* >=1024px (desktops): 4 columns, no wrap */
@media (min-width: 1024px){
  .kpi-row{
    grid-template-columns: repeat(4, 1fr) !important;
  }
  .kpi .num{ font-size: clamp(26px, 2.4vw, 34px); }  /* keep numbers from forcing wrap */
  .kpi .lab{ font-size: 14px; }
}

/* Optional: widen container slightly so 4 tiles breathe more */
@media (min-width: 1200px){
  .container{ max-width: 1200px; } /* was 1100; gives tiles extra room */
}

/* ===== MOBILE ORDER: image under text in BOTH split sections ===== */
@media (max-width: 768px){
  /* Force column flow even if a split used row-reverse on desktop */
  #why-ladma .split,
  #capabilities .split{
    flex-direction: column !important;
  }
  /* Ensure text comes first, image second */
  #why-ladma .text,
  #capabilities .text{ order: 1; }
  #why-ladma .media,
  #capabilities .media{ order: 2; }

  /* Make sure images don’t get huge fixed heights on mobile */
  #why-ladma .media img,
  #capabilities .media img{
    height: auto !important;
    aspect-ratio: auto;
    object-fit: cover;
  }
}
html, body {
  max-width: 100%;
  overflow-x: hidden; /* stops horizontal breaking/scroll on load */
}

#hero-contractors {
  width: 100%;
  overflow: hidden; /* prevents scrollbars popping in/out */
}

#hero-contractors .wrap {
  align-items: stretch; /* keeps left/right balanced */
}

#hero-contractors img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Fix viewport height issues on mobile browsers */
@supports (-webkit-touch-callout: none) {
  #hero-contractors .wrap {
    min-height: -webkit-fill-available;
  }
}/* End custom CSS */