/* Uniform vertical padding for top-level WPBakery rows (not nested rows). Scale lives in space.css */
body .vc_row.wpb_row:not(.vc_inner) {
  padding-top: var(--section-padding);
  padding-bottom: var(--section-padding);
}

/* WPBakery adds 35px of top padding inside filled rows/columns and in the row after a filled row; spacing comes from the row padding instead */
body .vc_col-has-fill>.vc_column-inner,
body .vc_row-has-fill .vc_column_container>.vc_column-inner,
body .vc_row-has-fill+.vc_row>.vc_column_container>.vc_column-inner,
body .vc_row-has-fill+.vc_row-full-width+.vc_row>.vc_column_container>.vc_column-inner {
  padding-top: 0 !important;
}

.vc_column-inner {
  padding: 0 !important;
}

/* Banner-style rows (e.g. the property search strip) use 1/4 of the section padding */
body .vc_row.wpb_row:not(.vc_inner).search-block,
body .vc_row.wpb_row:not(.vc_inner):has(.lms-wrapper),
body .vc_row.wpb_row:not(.vc_inner).section-banner {
  padding-top: var(--section-padding-banner) !important;
  padding-bottom: var(--section-padding-banner) !important;
}

/* Raw HTML elements don't need WPBakery's default bottom margin */
body .wpb_raw_code.wpb_content_element.wpb_raw_html {
  margin-bottom: 0;
}

/* Gap between columns of top-level rows. Each column keeps its 15px gutters, so the flex gap is reduced by 30px to make the visible gap equal --column-gap */
body .vc_row.wpb_row:not(.vc_inner) {
  display: flex;
  flex-wrap: nowrap;
  gap: calc(var(--column-gap) - 30px);
}

/* Clearfix pseudo-elements would otherwise become flex items and add extra gaps */
body .vc_row.wpb_row:not(.vc_inner)::before,
body .vc_row.wpb_row:not(.vc_inner)::after {
  display: none;
}

/* Columns keep their percentage widths and shrink evenly to make room for the gap */
body .vc_row.wpb_row:not(.vc_inner)>.vc_column_container {
  flex: 0 1 auto;
  min-width: 0;
}

/* Stacked columns: same gap vertically */
@media (max-width: 767px) {
  body .vc_row.wpb_row:not(.vc_inner) {
    flex-direction: column;
  }

  body .vc_row.wpb_row:not(.vc_inner)>.vc_column_container {
    width: 100%;
  }
}

.vc_row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.vc_row.padded-top+.vc_row {
  padding-top: 0 !important;
}
/* Footer CTA button (white with orange text): on hover keep the white background and turn the text gray.
   Overrides .btn-secondary's hover, whose var(--gray) doesn't exist and dropped the background. */
.footer-cta .btn-secondary .btn.btn-md.btn-gradient.btn-shadow:hover,
.footer-cta .btn-secondary .btn.btn-md.btn-gradient.btn-shadow:focus-visible {
  background-color: var(--white) !important;
  color: var(--dark-gray) !important;
}

/* Slider nav arrows (Owl Carousel, e.g. property type Downloads): turn gray on hover like the orange buttons.
   Replaces the old theme's teal hover from components.css. */
.owl-carousel .owl-nav button.owl-prev:hover,
.owl-carousel .owl-nav button.owl-next:hover,
.owl-carousel .owl-nav button.owl-prev:focus-visible,
.owl-carousel .owl-nav button.owl-next:focus-visible {
  background-color: var(--dark-gray) !important;
  color: var(--white) !important;
}
