.pageheader + *:not(:empty) {
  padding-top: 60px;
}
.ppuxtoppar :first-child:has( .cross-template-component:not([class*='--background-gray'])) {
  padding-top: 60px;
  border-top: solid 1px #ededed;
}
.ppuxtoppar:has(> :only-child:empty) {
  display: none;
}
.matchingblockbannerteaser .teaser-banner-item {
  margin: 0;
  padding: 0;
}
.matchingblockbannerteaser .mbSeparator {
  display: none;
}
/* Sticky buttons */
#MT_sticky_layer .bottom .ppUX2020_button_navi .fb-see-thx-btn {
  display: none;
}
#MT_sticky_layer .bottom .button_navi_wrapper .ppUX2020_button_navi {
  padding: 0;
}
#MT_sticky_layer .bottom .ppUX2020_button_navi .feedbacka_button {
  width: auto;
  max-width: 100%;
  display: flex;
}
#MT_sticky_layer .bottom .ppUX2020_button_navi .feedbacka_button :nth-child(1n) {
  margin-right: 1px;
}
#MT_sticky_layer .bottom .ppUX2020_button_navi .fb-a-button-wrapper {
  flex: 1 1 50%;
}
#MT_sticky_layer .bottom .ppUX2020_button_navi .fb-button-p5a {
  min-height: 50px;
  width: 100%;
  margin: 0;
  text-align: center;
}
/* Expand/Collapse text areas */
.ppUX2020_design_readmore {
  display: none;
  position: absolute;
  bottom: 0;
  width: 94%;
  margin: 0;
  padding: 15px 0;
  background-image: linear-gradient(to top, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
  cursor: pointer;
}
.ppUX2020_design_readmore .ppUX2020_arrow {
  display: block;
  border: solid #004494;
  border-width: 0 2px 2px 0;
  padding: 4px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  position: absolute;
  right: 3px;
  bottom: 3px;
}
.ppUX2020_design_text_collapsed.ppUX2020_design_text_expanded {
  overflow: visible;
  height: auto;
  padding-bottom: 20px;
}
.ppUX2020_design_text_expanded .ppUX2020_design_readmore {
  background-image: none;
}
.price {
  display: flex;
  align-items: baseline;
}
.ppUX2020_product_blocks_wrap:has(.productcards:is(:last-child:empty)) {
  padding: 0 !important;
}
/* ==========================================================================
   Product Filtering
   ========================================================================== */
.ppUX2020_filter_wrap:has(#PF_productFiltering, .ds_productFiltering) {
  padding-top: 60px;
  border-top: solid 1px #ededed;
}
.ppuxtoppar:empty + .ppUX2020_filter_wrap:has(#PF_productFiltering, .ds_productFiltering) {
  border-top: 0px;
}
.ppuxtoppar:empty ~ div.ds_productFiltering {
  padding-top: 60px;
}
/* ==========================================================================
   Useful Related Links
   ========================================================================== */
.usefulRelatedLinksBanner:has(.matchingblockbannerteaser:empty) + .usefulRelatedLinks:not(:empty),
.advantagesCarouselWrap:has(.cross-template-component) + .usefulRelatedLinksBanner:empty + .usefulRelatedLinks:not(:empty) {
  border-top: solid 1px #ededed;
}
.usefulRelatedLinksBanner:has(.matchingblockbannerteaser:not(:empty)) + .usefulRelatedLinks:not(:empty),
.usefulRelatedLinksBanner:empty + .usefulRelatedLinks:not(:empty) {
  padding-top: 60px;
  border-top: solid 1px #ededed;
}
.usefulRelatedLinks + .matchingblockbannerteaser .teaser-banner-item {
  margin: 0;
}
.usefulRelatedLinks:empty + .matchingblockbannerteaser:has(.cross-template-component) {
  border-top: solid 1px #ededed;
}
/* ==========================================================================
   Documentation
   ========================================================================== */
.ppUX2020_documentation_wrap {
  padding-bottom: 60px;
}
.ppUX2020_documentation_wrap:has(.matchingBlock:empty) {
  display: none;
}
.ppUX2020_documentation_wrap .mb_documentationLayout .mb_documentationLayout__category {
  padding: 0;
  border-bottom: 0;
}
/* ==========================================================================
   News and Events
   ========================================================================== */
.ppUX2020_news_events_wrap {
  padding: 60px 0 0 0;
  margin: 60px 0 0 0;
  border-top: solid 1px #ededed;
}
.ppUX2020_documentation_wrap:has(:only-child:empty) + .ppUX2020_news_events_wrap:has(.cross-template-component) {
  margin-top: 0;
}
/* ==========================================================================
   Service
   ========================================================================== */
.ppUX2020_service_wrap {
  display: contents;
}
.ppUX2020_service_wrap .serviceintropar {
  padding: 0;
}
.ppUX2020_service_wrap .servicevalueboxes {
  padding-bottom: 0 !important;
}
.ppUX2020_service_wrap .servicevalueboxes + *:not(:empty) {
  padding-top: 60px;
  margin-top: 60px;
}
.ppUX2020_service_wrap .carouselbase_SliderBox {
  margin-bottom: 0;
}
.ppUX2020_service_wrap .ppUX2020_service_wrap-values:has( .servicevaluespar:not(:empty)),
.ppUX2020_service_wrap .ppUX2020_service_wrap-values:has( .serviceTable .posofferingsleftpar:not(:empty)),
.ppUX2020_service_wrap .ppUX2020_service_wrap-values:has( .serviceTable .posofferingsrightpar:not(:empty)),
.ppUX2020_service_wrap .ppUX2020_service_wrap-values:has( .serviceseopar:not(:empty)) .ppUX2020_service_wrap .ppUX2020_service_wrap-values:has( .serviceseopar .introtext:not(:empty)) {
  padding-bottom: 60px;
}
.ppUX2020_service_wrap:has(.experiencefragment):has(.servicevaluespar:empty):has(.posofferingsleftpar:empty):has(.posofferingsrightpar:empty):has(.serviceseopar:empty) + .simplefaq {
  border-top: 0 !important;
}
/* ==========================================================================
   FAQ
   ========================================================================== */
.esbucustompar + .simplefaq:not(:empty) {
  border-top: solid 1px #ededed;
}
/* ==========================================================================
   Misc. spacing & divider line rules. 
   Some very specific, depending on order of elements/elements with visible children in DOM.
   ========================================================================== */
.ppUX2020_news_events_wrap:has(.matchingBlockTable:empty),
.ppUX2020_service_wrap-values:has(.iconsGrid__cards:empty) {
  display: none;
}
.ppUX2020_service_wrap-intro-text:not(:empty) + .ppUX2020_service_wrap-values,
*:empty + .seopar:not(:empty) {
  border-top: solid 1px #ededed;
}
.ppUX2020_service_wrap-intro-text:not(:empty) + .ppUX2020_service_wrap-values:has(.servicevaluespar:empty):has(.posofferingsleftpar:empty):has(.servicevaluespar:empty):has(.posofferingsleftpar:empty) {
  border-top: 0;
}
.mbBannerTeaser:empty + .ppUX2020_service_wrap:not(:empty),
.ppUX2020_news_events_wrap:has(.matchingBlockTable:empty) + .ppUX2020_service_wrap:not(:empty),
.filteringPageVideo:empty + .advantagesCarouselWrap {
  margin-top: -60px;
}
.ppUX2020_service_wrap-contact-info .contact-phone-container {
  padding-top: 0;
}
#frame_layer > *:has( .cross-template-component:not(:empty, [class*="--background-gray"])):not(.parsys, .quote, .landingpagesection, .sectionhighlight, .seopar, .ppUX2020_service_wrap-values, .esbucustompar) {
  padding-top: 60px;
  padding-bottom: 60px;
}
#frame_layer > *:has(.cross-template-component__section--hidden) {
  padding-top: 0;
  padding-bottom: 0;
}
#frame_layer > *:has( .cross-template-component:not(:empty)):is(.moodvideo, .showcase, .showcase + *, .moodvideo + *),
#frame_layer .landingpagesection:has(h1) + *:has( .cross-template-component:not(:empty):not([class*="--background-gray"])),
#frame_layer .sectionhighlight + *:has( .cross-template-component:not(:empty):not([class*="--background-gray"])) {
  padding-top: 0;
}
#frame_layer > *:has(.sectionhighlight) {
  padding-top: 0;
  padding-bottom: 60px;
}
#frame_layer > *:has([class*="--background-gray"]) + *:has(.sectionhighlight) {
  padding-top: 60px;
}
#frame_layer :is(.parsys, .grouping) > .landingpagesection:has(.cross-template-component__section--visible),
#frame_layer :is(.parsys, .grouping) > *:has( > .cross-template-component:not(:empty, [class*="--background-gray"])) + .landingpagesection:has(.cross-template-component__section--visible) {
  padding-top: 40px;
  padding-bottom: 60px;
}
#frame_layer > *:is( *:has(.cross-template-component) + *:has(.cross-template-component)):not(.listseo, .ppuxpar, .ppUX2020_service_wrap, .esbucustompar) {
  border-top: solid 1px #ededed;
}
#frame_layer > *:has( .cross-template-component:not(:empty):not([class*="--background-gray"])) + .landingpagesection:has([class*="--hidden"]) {
  border-top: solid 1px #ededed;
  margin-bottom: -1px;
}
#frame_layer > *:is( *:has([class*="--background-gray"]) + *):is( *:has([class*="--background-gray"])) {
  margin-top: -1px;
}
#frame_layer .ppuxtoppar:has(> :last-child [class*="--background-gray"]) + .ppUX2020_filter_wrap,
#frame_layer > *:is( *:has( .cross-template-component:not([class*="--background-gray"])) + *):has([class*="--background-gray"]),
#frame_layer > *:is(.quote, .quote + *),
#frame_layer > *:is(.landingpagesection, .landingpagesection + *),
#frame_layer > *:is(.showcase, .showcase + *),
#frame_layer > *:is(.moodvideo, .moodvideo + *),
#frame_layer > *:is(.grouping + .grouping),
#frame_layer > *:is( *:has(.cross-template-component--no-dividers)),
#frame_layer > *:is( *:has(.cross-template-component--no-dividers) + *) {
  border-top: 0 !important;
}
#frame_layer :is(.parsys) > .landingpagesection:only-child {
  padding-bottom: 0;
}
.ppUX2020_service_wrap:has(.showcaseWrapper) {
  /* Where .ppUX2020_service_wrap has Service XF visible, 
    * remove top padding and border from following components,
    * so single 60px vertical space divides them. */
}
.ppUX2020_service_wrap:has(.showcaseWrapper):has(.iconsGrid__cards:empty):has(.posofferingsleftpar:empty):has(.posofferingsrightpar:empty):has(.introtext:empty) + * {
  padding-top: 0 !important;
  border-top: 0 !important;
}
.ppUX2020_service_wrap:has(.showcaseWrapper):has(.iconsGrid__cards:empty):has(.posofferingsleftpar:empty):has(.posofferingsrightpar:empty):has(.introtext:empty) + *:has(.cross-template-component) {
  padding-top: 60px !important;
}
.ppUX2020_service_wrap:has(.showcaseWrapper):has(.iconsGrid__cards:not(empty)) .ppUX2020_service_wrap-values {
  padding-top: 0 !important;
  border-top: 0 !important;
}
.ppUX2020_service_wrap:has(.showcaseWrapper):has(.landingpagedivider:not(empty)):has(.iconsGrid__cards:not(empty)) .ppUX2020_service_wrap-values {
  border-top: solid 1px #ededed !important;
}
/* if a standalonemoodimage follows an experience fragment, add some top padding */
.ppUX2020_service_wrap-intro-text .experiencefragment + .standalonemoodimage {
  padding-top: 60px;
  border-top: 0;
}
/* ==========================================================================
   Right to left style overrides
   ========================================================================== */
.mt_direction_right_to_left .ppUX2020_design_readmore .ppUX2020_arrow {
  right: auto;
  left: 3px;
}
@media screen and (max-width: 768px) {
  .ppUX2020_desktop_breadcrumb_wrap {
    display: none;
  }
  #mood_layer.productmodel #mood_pagetitle h2,
  #mood_layer.productmodel .mood_pagetitle_default h2 {
    margin-right: 20px;
    margin-left: 20px;
  }
  .ppUX2020_service_wrap-contact-info .servicePhoneContainer .contact-phone-container {
    padding-top: 0!important;
  }
}

.ppUX2020_page .getquote_btn .fb-button-p5a,
.ppUX2020_page .fb-button-p5a.getquote_btn,
.ppUX2020_page .moreinfo_btn .fb-button-p5a,
.ppUX2020_page .instantquote_btn .fb-button-p5a {
  background-image: none;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  padding: 10px 20px;
  margin: 0;
  text-align: center;
  line-height: normal;
}
/* Get a Quote, Instant Quote */
.getquote_btn .fb-button-p5a,
.fb-button-p5a.getquote_btn,
.instantquote_btn .fb-button-p5a {
  background-color: #6bb847;
}
/* Request info, Call for quote */
.ppUX2020_page .moreinfo_btn .fb-button-p5a {
  background-color: #3777bb;
}
.ppUX2020_service_wrap-forms {
  float: left;
}
.ppUX2020_service_wrap-contact-info {
  float: right;
}
.ppUX2020_design_text_collapsed .ppUX2020_design_readmore {
  display: block;
}
.ppUX2020_design .ppUX2020_design_text_expanded .ppUX2020_design_readmore {
  background-image: none;
}
.ds_productFiltering {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.ds_productFiltering__facets {
  flex: 1;
}
.ds_productFiltering__list {
  flex: 3;
}
@media screen and (max-width: 1009px) {
  .ppUX2020_news_events_wrap {
    margin: 60px 20px 0 20px;
  }
}
@media screen and (max-width: 990px) {
  .ds_productFiltering {
    display: block;
    gap: unset;
  }
  .ds_productFiltering__facets .multi-select,
  .ds_productFiltering__list {
    width: 94vw;
    padding: 0 3vw;
  }
  .ds_productFiltering:not(:has(.mt-facet-list)) {
    height: 5815px;
  }
  .ds_productFiltering:has(exp-mt-plp-component:empty) {
    height: 0;
  }
  .ds_productFiltering__list:not(:has(.mt-product-list)) {
    margin: 15px;
    width: auto;
  }
  .ds_productFiltering__list:not(:has(.mt-product-list)) exp-mt-product-list-component {
    display: block;
    padding: 25px;
  }
  .ds_productFiltering__list:not(:has(.mt-product-list)) exp-mt-product-list-component:before {
    margin: 0 0 20px 0;
    width: auto;
  }
  .ds_productFiltering__list:not(:has(.mt-product-list)) exp-mt-product-list-component:after {
    margin: 0;
  }
  .ds_productFiltering__facets:not(:has(.mt-facet-list)),
  .ds_productFiltering__facets:not(:has(.mt-facet-list)) exp-mt-facet-list-component {
    height: 0;
  }
}
@media screen and (max-width: 768px) {
  .ds_productFiltering__list {
    width: 100vw;
    padding: 0;
  }
}

