/*
 * Supplemental native-Divi parity fixes.
 * Load after divi-original-home.css and Divi generated module CSS.
 * Scope is limited to the sowillo-* reconstruction classes.
 */

/* Divi's native row default is 80% / 1080px. Restore the source widths. */
body .et_pb_row.sowillo-row {
  width: calc(100% - 30px) !important;
  max-width: 1220px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

body .et_pb_row.sowillo-header-row,
body .et_pb_row.sowillo-footer-row {
  width: calc(100% - 30px) !important;
  max-width: 1190px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

body .et_pb_row.sowillo-header-row {
  box-sizing: border-box !important;
  padding-right: 10px !important;
  padding-left: 10px !important;
}

/* The source hero is browser-wide. Divi otherwise retains an 80% slide container. */
body .et_pb_section.sowillo-hero,
body .et_pb_section.sowillo-hero .et_pb_row.sowillo-hero-row,
body .et_pb_section.sowillo-hero .sowillo-hero-row > .et_pb_column,
body .et_pb_section.sowillo-hero .sowillo-hero-slider {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .sowillo-hero-slider .et_pb_container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body .sowillo-hero-slider,
body .sowillo-hero-slider .et_pb_slides,
body .sowillo-hero-slider .et_pb_slide {
  min-height: 650px !important;
}

body .sowillo-hero-slider .et_pb_slide_description {
  position: relative !important;
  left: auto !important;
  width: min(52%, 610px) !important;
  max-width: 610px !important;
  margin-right: auto !important;
  margin-left: 46px !important;
  padding: 58px 46px 48px !important;
  background: rgba(255, 255, 255, .86) !important;
  border-radius: 8px !important;
  text-align: left !important;
  transform: none !important;
}

body .sowillo-hero-slider .et_pb_slide_title {
  color: #FF8329 !important;
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-align: left !important;
  text-transform: uppercase !important;
}

body .sowillo-hero-slider .et_pb_slide_content,
body .sowillo-hero-slider .et_pb_slide_content h3,
body .sowillo-hero-slider .et_pb_slide_content p,
body .sowillo-hero-slider .et_pb_button_wrapper {
  text-align: left !important;
}

/* Match the 45px utility bar and keep the three native Divi social icons at right. */
body .et_pb_section.sowillo-header-utility,
body .sowillo-header-utility > .et_pb_row.sowillo-header-row {
  height: 45px !important;
  min-height: 45px !important;
  max-height: 45px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body .sowillo-header-utility > .et_pb_row.sowillo-header-row {
  display: flex !important;
  align-items: center !important;
}

body .sowillo-header-utility .sowillo-header-utility-links,
body .sowillo-header-utility .sowillo-header-social {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body .sowillo-header-utility .sowillo-header-social,
body .sowillo-header-utility .sowillo-header-social ul.et_pb_social_media_follow {
  width: 100% !important;
}

body .sowillo-header-utility .sowillo-header-social ul.et_pb_social_media_follow {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Cap the complete native Menu box, rather than setting only minimum heights. */
body .et_pb_section.sowillo-header-nav,
body .sowillo-header-nav > .et_pb_row.sowillo-header-row,
body .sowillo-header-nav .sowillo-main-menu,
body .sowillo-header-nav .sowillo-main-menu .et_pb_menu_inner_container {
  height: 70px !important;
  min-height: 70px !important;
  max-height: 70px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body .sowillo-header-nav .sowillo-main-menu .et_pb_menu_inner_container {
  display: flex !important;
  align-items: center !important;
}

body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__logo-wrap {
  display: flex !important;
  flex: 0 0 230px !important;
  align-items: center !important;
  width: 230px !important;
  min-width: 230px !important;
  max-width: 230px !important;
  height: 70px !important;
  margin: 0 auto 0 0 !important;
  overflow: visible !important;
}

body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__logo,
body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__logo img {
  display: block !important;
  width: 230px !important;
  max-width: 230px !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}

body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__wrap,
body .sowillo-header-nav .sowillo-main-menu .et-menu-nav,
body .sowillo-header-nav .sowillo-main-menu .et-menu {
  align-items: center !important;
  height: 70px !important;
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__wrap {
  justify-content: flex-end !important;
}

/* Home has no breadcrumb band in the cached original. */
body.home .sowillo-header-breadcrumbs {
  display: none !important;
}

/* The source footer logo is about 310px wide. Remove native image clipping/caps. */
body .sowillo-global-footer .sowillo-footer-logo,
body .sowillo-global-footer .sowillo-footer-logo .et_pb_image_wrap {
  display: block !important;
  width: 310px !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

body .sowillo-global-footer .sowillo-footer-logo img {
  display: block !important;
  width: 310px !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: left center !important;
  clip-path: none !important;
}

@media (min-width: 768px) and (max-width: 980px) {
  body .sowillo-hero-slider,
  body .sowillo-hero-slider .et_pb_slides,
  body .sowillo-hero-slider .et_pb_slide {
    min-height: 520px !important;
  }

  body .sowillo-hero-slider .et_pb_slide_description {
    width: 56% !important;
    margin-left: 20px !important;
    padding: 42px 36px !important;
  }

  body .sowillo-hero-slider .et_pb_slide_title {
    font-size: 36px !important;
  }
}

@media (max-width: 767px) {
  /* Elementor source: utility columns 70/30, navigation/logo columns 50/50. */
  body .et_pb_row.sowillo-row,
  body .et_pb_row.sowillo-header-row,
  body .et_pb_row.sowillo-footer-row {
    width: calc(100% - 20px) !important;
  }

  body .sowillo-header-utility > .sowillo-header-row > .et_pb_column:first-child {
    width: 70% !important;
    margin: 0 !important;
  }

  body .sowillo-header-utility > .sowillo-header-row > .et_pb_column:last-child {
    width: 30% !important;
    margin: 0 !important;
  }

  body .sowillo-header-utility .sowillo-header-utility-links a {
    margin-right: 12px !important;
    font-size: 14px !important;
  }

  body .sowillo-header-utility .sowillo-header-social li {
    margin-left: 8px !important;
  }

  body .sowillo-header-utility .sowillo-header-social a.icon::before {
    font-size: 13px !important;
  }

  body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__logo-wrap {
    flex-basis: 50% !important;
    width: 50% !important;
    min-width: 0 !important;
    max-width: 50% !important;
    margin-left: 10px !important;
  }

  body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__logo,
  body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__logo img {
    width: 100% !important;
    max-width: 200px !important;
  }

  body .sowillo-header-nav .sowillo-main-menu .et_pb_menu__wrap {
    flex: 0 0 calc(50% - 10px) !important;
    justify-content: flex-end !important;
  }

  body .sowillo-header-nav .sowillo-main-menu .et_mobile_nav_menu {
    display: flex !important;
    justify-content: flex-end !important;
    width: 100% !important;
  }

  body .sowillo-hero-slider,
  body .sowillo-hero-slider .et_pb_slides,
  body .sowillo-hero-slider .et_pb_slide {
    min-height: 400px !important;
  }

  body .sowillo-hero-slider .et_pb_slide_description {
    width: calc(100% - 44px) !important;
    max-width: none !important;
    margin-right: 22px !important;
    margin-left: 22px !important;
    padding: 32px 30px !important;
  }

  body .sowillo-hero-slider .et_pb_slide_title {
    font-size: 30px !important;
  }

  body .sowillo-global-footer .sowillo-footer-logo,
  body .sowillo-global-footer .sowillo-footer-logo .et_pb_image_wrap,
  body .sowillo-global-footer .sowillo-footer-logo img {
    width: min(310px, 100%) !important;
  }
}

/* Clear native slide side padding: the inner container is already full width. */
body .sowillo-hero-slider .et_pb_slide{padding-left:0!important;padding-right:0!important}
