/* =========================================================================
   perf.css — layout-shift (CLS) and loading fixes. Loaded last from master/MasterPage.master.
   Hand-maintained (not generated by WebCompiler).
   ========================================================================= */

/* Owl Carousel hides .owl-carousel (display:none) until its JS runs at the end of the page, so every
   carousel "pops in" and pushes the page down. Show the first N items in the same columns Owl will use
   (breakpoints/attributes mirror the .rs-carousel init in assets/js/main.js) so nothing moves on init. */
.owl-carousel:not(.owl-loaded){display:flex;overflow:hidden;--owl-gap:0px}
.owl-carousel:not(.owl-loaded)[data-margin="30"]{gap:30px;--owl-gap:30px}
.owl-carousel:not(.owl-loaded)>*{flex:0 0 100%;min-width:0}
.owl-carousel:not(.owl-loaded)[data-mobile-device="1"]>*{flex-basis:calc((100% - 0 * var(--owl-gap)) / 1)}
.owl-carousel:not(.owl-loaded)[data-mobile-device="2"]>*{flex-basis:calc((100% - 1 * var(--owl-gap)) / 2)}
.owl-carousel:not(.owl-loaded)[data-mobile-device="3"]>*{flex-basis:calc((100% - 2 * var(--owl-gap)) / 3)}
.owl-carousel:not(.owl-loaded)[data-mobile-device="4"]>*{flex-basis:calc((100% - 3 * var(--owl-gap)) / 4)}
.owl-carousel:not(.owl-loaded)[data-mobile-device="5"]>*{flex-basis:calc((100% - 4 * var(--owl-gap)) / 5)}
.owl-carousel:not(.owl-loaded)[data-mobile-device="6"]>*{flex-basis:calc((100% - 5 * var(--owl-gap)) / 6)}
@media (min-width:576px){
  .owl-carousel:not(.owl-loaded)[data-ipad-device2="1"]>*{flex-basis:calc((100% - 0 * var(--owl-gap)) / 1)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device2="2"]>*{flex-basis:calc((100% - 1 * var(--owl-gap)) / 2)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device2="3"]>*{flex-basis:calc((100% - 2 * var(--owl-gap)) / 3)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device2="4"]>*{flex-basis:calc((100% - 3 * var(--owl-gap)) / 4)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device2="5"]>*{flex-basis:calc((100% - 4 * var(--owl-gap)) / 5)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device2="6"]>*{flex-basis:calc((100% - 5 * var(--owl-gap)) / 6)}
}
@media (min-width:768px){
  .owl-carousel:not(.owl-loaded)[data-ipad-device="1"]>*{flex-basis:calc((100% - 0 * var(--owl-gap)) / 1)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device="2"]>*{flex-basis:calc((100% - 1 * var(--owl-gap)) / 2)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device="3"]>*{flex-basis:calc((100% - 2 * var(--owl-gap)) / 3)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device="4"]>*{flex-basis:calc((100% - 3 * var(--owl-gap)) / 4)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device="5"]>*{flex-basis:calc((100% - 4 * var(--owl-gap)) / 5)}
  .owl-carousel:not(.owl-loaded)[data-ipad-device="6"]>*{flex-basis:calc((100% - 5 * var(--owl-gap)) / 6)}
}
@media (min-width:992px){
  .owl-carousel:not(.owl-loaded)[data-md-device="1"]>*{flex-basis:calc((100% - 0 * var(--owl-gap)) / 1)}
  .owl-carousel:not(.owl-loaded)[data-md-device="2"]>*{flex-basis:calc((100% - 1 * var(--owl-gap)) / 2)}
  .owl-carousel:not(.owl-loaded)[data-md-device="3"]>*{flex-basis:calc((100% - 2 * var(--owl-gap)) / 3)}
  .owl-carousel:not(.owl-loaded)[data-md-device="4"]>*{flex-basis:calc((100% - 3 * var(--owl-gap)) / 4)}
  .owl-carousel:not(.owl-loaded)[data-md-device="5"]>*{flex-basis:calc((100% - 4 * var(--owl-gap)) / 5)}
  .owl-carousel:not(.owl-loaded)[data-md-device="6"]>*{flex-basis:calc((100% - 5 * var(--owl-gap)) / 6)}
}

/* Inner-page header banners rendered by SeoHelper.BannerPicture(): same look as the old
   .banImage / .banImageLaptop / .banImageMobi trio, but one image download. */
.rs-breadcrumbs .breadcrumbs-img picture.banPic{display:block}
.rs-breadcrumbs .breadcrumbs-img picture.banPic img{display:block;width:100%;height:auto}
@media only screen and (max-width:991px){
  .rs-breadcrumbs .breadcrumbs-img picture.banPic img{height:90vh;object-fit:cover;object-position:bottom}
}

/* Footer logo has width/height attributes for aspect ratio; keep it fluid. */
.rs-footer .footer-bottom .footer-logo a img{height:auto}

/* Hero slider: slide images are absolutely positioned inside a 65vh stage, so reserve that height
   before Owl builds the stage. */
.rs-slider.style1 .owl-carousel:not(.owl-loaded){height:65vh}
.rs-slider.style1 .owl-carousel:not(.owl-loaded) .slider-content{height:65vh}
.rs-slider.style1 picture.banResponsive{display:block}
.rs-slider.style1 picture.banResponsive img{width:100%;height:65vh;object-fit:cover;object-position:center}
@media only screen and (max-width:991px){
  /* same as the old .banImageMobi rule */
  .rs-slider.style1 picture.banResponsive img{height:90vh;object-position:bottom}
}
