.elementor-3375 .elementor-element.elementor-element-a12762f{--display:flex;--min-height:70vh;--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:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-5c7d9f2{--display:flex;--min-height:600px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-5c7d9f2:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-5c7d9f2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2025/11/BG-scaled.jpg");background-position:center center;background-size:auto;}.elementor-3375 .elementor-element.elementor-element-1e704bc > .elementor-widget-container{margin:7px 0px 0px 51px;padding:0px 0px 0px 0px;}.elementor-3375 .elementor-element.elementor-element-1e704bc.elementor-element{--align-self:center;}body:not(.rtl) .elementor-3375 .elementor-element.elementor-element-1e704bc{left:9px;}body.rtl .elementor-3375 .elementor-element.elementor-element-1e704bc{right:9px;}.elementor-3375 .elementor-element.elementor-element-1e704bc{top:-8px;}.elementor-3375 .elementor-element.elementor-element-1e704bc img{height:600px;}.elementor-3375 .elementor-element.elementor-element-c3e1921{width:var( --container-widget-width, 23.473% );max-width:23.473%;--container-widget-width:23.473%;--container-widget-flex-grow:0;}.elementor-3375 .elementor-element.elementor-element-c3e1921 > .elementor-widget-container{margin:0px 0px 0px 30px;padding:0px 0px 0px 0px;}.elementor-3375 .elementor-element.elementor-element-c3e1921.elementor-element{--align-self:flex-end;--flex-grow:0;--flex-shrink:0;}.elementor-3375 .elementor-element.elementor-element-426d47d{--display:flex;--min-height:70vh;--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;}.elementor-3375 .elementor-element.elementor-element-426d47d:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-426d47d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2025/11/IMG_6666-scaled.jpg");background-position:top center;background-size:cover;}.elementor-3375 .elementor-element.elementor-element-10263e1 .elementor-heading-title{color:#020202;}.elementor-3375 .elementor-element.elementor-element-788b95b{--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:10px;--margin-bottom:10px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-54957f8{--display:flex;--min-height:600px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-54957f8:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-54957f8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2026/01/RiSCAN_PRO_leYDhb6AJa.jpg");background-position:center center;background-size:cover;}.elementor-3375 .elementor-element.elementor-element-54957f8.e-con{--align-self:center;}.elementor-3375 .elementor-element.elementor-element-28bd7d9{width:100%;max-width:100%;top:0px;}.elementor-3375 .elementor-element.elementor-element-28bd7d9 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-3375 .elementor-element.elementor-element-28bd7d9.elementor-element{--align-self:center;}body:not(.rtl) .elementor-3375 .elementor-element.elementor-element-28bd7d9{left:0px;}body.rtl .elementor-3375 .elementor-element.elementor-element-28bd7d9{right:0px;}.elementor-3375 .elementor-element.elementor-element-28bd7d9 img{width:100%;max-width:100%;height:600px;object-fit:cover;object-position:center center;}.elementor-3375 .elementor-element.elementor-element-fa2f7c2 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:465px 0px 0px 30px;}.elementor-3375 .elementor-element.elementor-element-fa2f7c2.elementor-element{--align-self:flex-start;}.elementor-3375 .elementor-element.elementor-element-fa2f7c2 .elementor-heading-title{color:#F5F5F5;}.elementor-3375 .elementor-element.elementor-element-ffef608{--display:flex;--min-height:70vh;--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;--justify-content:center;}.elementor-3375 .elementor-element.elementor-element-ffef608:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-ffef608 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2026/01/TLS-Banner-Colour.jpg");background-size:cover;}.elementor-3375 .elementor-element.elementor-element-7c7a9a4{text-align:center;}.elementor-3375 .elementor-element.elementor-element-7c7a9a4 .elementor-heading-title{font-size:42px;color:#FFFFFF;}.elementor-3375 .elementor-element.elementor-element-6c471f7{--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:10px;--margin-bottom:10px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-9f3543e{--display:flex;--min-height:600px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:flex-start;}.elementor-3375 .elementor-element.elementor-element-9f3543e:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-9f3543e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2025/11/Geo-scaled.webp");background-size:cover;}.elementor-3375 .elementor-element.elementor-element-8e5be23 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 30px;}.elementor-3375 .elementor-element.elementor-element-d8f9fd2{--display:flex;--min-height:70vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor-3375 .elementor-element.elementor-element-d8f9fd2:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-d8f9fd2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2025/11/Geo-scaled.webp");background-position:center left;background-size:cover;}.elementor-3375 .elementor-element.elementor-element-c947d15 .elementor-heading-title{font-size:42px;color:#FFFFFF;}.elementor-3375 .elementor-element.elementor-element-cedef70{--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:10px;--margin-bottom:10px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-08b64f4{--display:flex;--min-height:600px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-08b64f4:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-08b64f4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2025/11/CAS-1-T.png");background-position:center center;background-size:cover;}.elementor-3375 .elementor-element.elementor-element-f65e41a{width:100%;max-width:100%;}.elementor-3375 .elementor-element.elementor-element-f65e41a > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-3375 .elementor-element.elementor-element-f65e41a.elementor-element{--align-self:center;}.elementor-3375 .elementor-element.elementor-element-f65e41a img{width:100%;max-width:100%;height:600px;object-fit:cover;object-position:center center;}.elementor-3375 .elementor-element.elementor-element-66f0ff8 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 30px;}body:not(.rtl) .elementor-3375 .elementor-element.elementor-element-66f0ff8{left:0px;}body.rtl .elementor-3375 .elementor-element.elementor-element-66f0ff8{right:0px;}.elementor-3375 .elementor-element.elementor-element-66f0ff8{top:554px;}.elementor-3375 .elementor-element.elementor-element-66f0ff8 .elementor-heading-title{color:#000000;}.elementor-3375 .elementor-element.elementor-element-4720dfb{--display:flex;--min-height:70vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor-3375 .elementor-element.elementor-element-4720dfb:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-4720dfb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2025/11/CAS-3.png");background-size:cover;}.elementor-3375 .elementor-element.elementor-element-c502b4b .elementor-heading-title{font-size:42px;color:#F0F0F0;}.elementor-3375 .elementor-element.elementor-element-f6a9bc3{--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:10px;--margin-bottom:10px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-9a8d2f7{--display:flex;--min-height:600px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3375 .elementor-element.elementor-element-9a8d2f7:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-9a8d2f7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2026/01/ChatGPT-Image-Jan-2-2026-10_19_07-PM.png");background-position:center center;background-size:cover;}.elementor-3375 .elementor-element.elementor-element-2599f5b > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 350px 0px;}.elementor-3375 .elementor-element.elementor-element-2599f5b.elementor-element{--align-self:flex-start;}.elementor-3375 .elementor-element.elementor-element-2599f5b img{max-width:100%;}.elementor-3375 .elementor-element.elementor-element-e50990d > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 30px;}.elementor-3375 .elementor-element.elementor-element-e50990d.elementor-element{--align-self:flex-start;}.elementor-3375 .elementor-element.elementor-element-e50990d{bottom:0px;}.elementor-3375 .elementor-element.elementor-element-e50990d .elementor-heading-title{color:#FFFCFC;}.elementor-3375 .elementor-element.elementor-element-1c7c5eb{--display:flex;--min-height:70vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor-3375 .elementor-element.elementor-element-1c7c5eb:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-1c7c5eb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2026/01/DSC_2513-Enhanced-NR-scaled.jpg");}.elementor-3375 .elementor-element.elementor-element-c738ae6 .elementor-heading-title{color:#F3F3F3;}.elementor-3375 .elementor-element.elementor-element-fb0e565{--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:10px;--margin-bottom:10px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}@media(max-width:767px){.elementor-3375 .elementor-element.elementor-element-426d47d{--min-height:55vh;--justify-content:center;}.elementor-3375 .elementor-element.elementor-element-426d47d:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-426d47d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-repeat:no-repeat;}.elementor-3375 .elementor-element.elementor-element-10263e1.elementor-element{--align-self:center;}.elementor-3375 .elementor-element.elementor-element-10263e1 .elementor-heading-title{font-size:42px;}.elementor-3375 .elementor-element.elementor-element-d8f9fd2:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-d8f9fd2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://sasurv.com/wp-content/uploads/2026/01/Geo-scaled-1.png");background-repeat:no-repeat;}.elementor-3375 .elementor-element.elementor-element-d8f9fd2{--justify-content:flex-start;}.elementor-3375 .elementor-element.elementor-element-1c7c5eb{--justify-content:flex-start;}.elementor-3375 .elementor-element.elementor-element-1c7c5eb:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-1c7c5eb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center right;background-repeat:no-repeat;background-size:cover;}.elementor-3375 .elementor-element.elementor-element-c738ae6 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:50px 0px 0px 0px;}.elementor-3375 .elementor-element.elementor-element-c738ae6.elementor-element{--align-self:center;}.elementor-3375 .elementor-element.elementor-element-c738ae6{text-align:center;}.elementor-3375 .elementor-element.elementor-element-c738ae6 .elementor-heading-title{font-size:40px;}}@media(min-width:1025px){.elementor-3375 .elementor-element.elementor-element-5c7d9f2:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-5c7d9f2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:fixed;}.elementor-3375 .elementor-element.elementor-element-9f3543e:not(.elementor-motion-effects-element-type-background), .elementor-3375 .elementor-element.elementor-element-9f3543e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:fixed;}}/* Start custom CSS for container, class: .elementor-element-788b95b */.sas-carousel {
  position: relative;
  overflow: hidden;
  padding: 2rem 0;
}

.sas-track {
  display: flex;
  gap: 2rem;
  transition: transform 0.6s ease;
  will-change: transform;
}

.sas-slide {
  flex: 0 0 calc(33.333% - 1.3rem);
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.sas-slide:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

/* 4:3 image ratio */
.sas-slide-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.sas-slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.sas-slide-overlay {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 1.2rem 1rem;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(8px);
  color: #fff;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.sas-slide-overlay h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}

.sas-slide-overlay p {
  font-size: 0.9rem;
  margin: 0.3rem 0 0;
}

/* Navigation buttons */
.sas-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 20px;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  transition: all 0.3s ease;
}

.sas-nav:hover {
  background: #e74c3c;
  color: #fff;
}

.sas-nav-prev { left: 1rem; }
.sas-nav-next { right: 1rem; }/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-308bb13 *//* Mobile fixes for SAS carousel */

.sas-carousel {
  position: relative;
  width: 100%;
}

.sas-track {
  display: flex;
  gap: var(--sas-gap, 12px);
  align-items: stretch;
  will-change: transform;
}

.sas-slide {
  flex: 0 0 auto;
}

/* 1 card on phones */
@media (max-width: 767px) {
  .sas-slide {
    width: 86vw;      /* big card */
    max-width: 420px; /* keeps it tidy */
  }

  .sas-slide-image {
    min-height: 240px;
  }

  /* Make text readable and not a vertical novel */
  .sas-slide-overlay p {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Arrows nicer */
  .sas-nav {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(0,0,0,.35);
    color: #fff;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .sas-nav-prev { left: 10px; }
  .sas-nav-next { right: 10px; }
}

/* 2 cards on tablets */
@media (min-width: 768px) and (max-width: 1023px) {
  .sas-slide {
    width: calc((100% - var(--sas-gap, 16px)) / 2);
  }
}

/* 3 cards on desktop */
@media (min-width: 1024px) {
  .sas-slide {
    width: calc((100% - (var(--sas-gap, 16px) * 2)) / 3);
  }
}
html {
  scroll-behavior: smooth;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-6c471f7 */.sas-carousel {
  position: relative;
  overflow: hidden;
  padding: 2rem 0;
}

.sas-track {
  display: flex;
  gap: 2rem;
  transition: transform 0.6s ease;
  will-change: transform;
}

.sas-slide {
  flex: 0 0 calc(33.333% - 1.3rem);
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.sas-slide:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

/* 4:3 image ratio */
.sas-slide-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.sas-slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.sas-slide-overlay {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 1.2rem 1rem;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(8px);
  color: #fff;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.sas-slide-overlay h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}

.sas-slide-overlay p {
  font-size: 0.9rem;
  margin: 0.3rem 0 0;
}

/* Navigation buttons */
.sas-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 20px;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  transition: all 0.3s ease;
}

.sas-nav:hover {
  background: #e74c3c;
  color: #fff;
}

.sas-nav-prev { left: 1rem; }
.sas-nav-next { right: 1rem; }/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-8eb15b8 *//* =========================
   SAS Carousel Card Polish
   Mobile first, clickable, no jank
   ========================= */

/* Card sizing helpers */
.sas-carousel{
  --sas-radius: 18px;
  --sas-gap: 16px;
  --sas-shadow: 0 18px 50px rgba(0,0,0,.35);
  --sas-shadow-soft: 0 10px 26px rgba(0,0,0,.22);
  --sas-border: 1px solid rgba(255,255,255,.14);
}

/* Track gap safety */
.sas-track{
  gap: var(--sas-gap);
}

/* Slide card */
.sas-slide{
  position: relative;
  border-radius: var(--sas-radius);
  overflow: hidden;
  background: rgba(255,255,255,.06);
  border: var(--sas-border);
  box-shadow: var(--sas-shadow-soft);
  transform: translateZ(0);
}

/* Whole card clickable */
.sas-slide-link{
  display: grid;
  grid-template-rows: 1fr;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
  border-radius: var(--sas-radius);
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}

/* Image fills card */
.sas-slide-image{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 240px; /* mobile baseline */
}

.sas-slide-image img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform .35s ease, filter .35s ease;
  will-change: transform;
}

/* Text overlay */
.sas-slide-overlay.glass-box,
.sas-slide-overlay{
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 14px;
  padding: 14px 14px 12px 14px;
  border-radius: 16px;
  background: rgba(0,0,0,.48);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  pointer-events: none; /* prevents weird click stealing */
}

/* Typography */
.sas-slide-overlay h3{
  margin: 0 0 6px 0;
  font-size: 16px;
  line-height: 1.15;
  letter-spacing: .2px;
  color: #fff;
}

.sas-slide-overlay p{
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
  color: rgba(255,255,255,.88);
}

/* Hover and focus effects */
@media (hover:hover) and (pointer:fine){
  .sas-slide{
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  }

  .sas-slide:hover{
    transform: translateY(-6px) scale(1.02);
    box-shadow: var(--sas-shadow);
    border-color: rgba(255,255,255,.22);
  }

  .sas-slide:hover .sas-slide-image img{
    transform: scale(1.06);
    filter: saturate(1.06) contrast(1.04);
  }

  /* Subtle hint chip */
  .sas-slide-link::after{
    content: "Open";
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 8px 10px;
    font-size: 12px;
    border-radius: 999px;
    background: rgba(0,0,0,.45);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease;
    pointer-events: none;
  }

  .sas-slide:hover .sas-slide-link::after{
    opacity: 1;
    transform: translateY(0);
  }
}

/* Keyboard focus ring */
.sas-slide-link:focus-visible{
  outline: 3px solid rgba(255,255,255,.85);
  outline-offset: 4px;
  border-radius: var(--sas-radius);
}

/* Active tap feedback (mobile) */
.sas-slide:active{
  transform: scale(.99);
}

/* =========================
   Mobile layout tuning
   ========================= */

/* Smaller text and taller images on phones */
@media (max-width: 767px){
  .sas-carousel{ --sas-gap: 12px; --sas-radius: 16px; }

  .sas-slide-image{
    min-height: 220px;
  }

  .sas-slide-overlay{
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 12px;
    border-radius: 14px;
  }

  .sas-slide-overlay h3{
    font-size: 15px;
  }
  .sas-slide-overlay p{
    font-size: 12.5px;
  }

  /* If you show 1 card on mobile, this keeps it from feeling cramped */
  .sas-track{
    scroll-padding-left: 14px;
  }
}

/* Larger cards on big screens */
@media (min-width: 1024px){
  .sas-slide-image{
    min-height: 280px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .sas-slide,
  .sas-slide-image img,
  .sas-slide-link::after{
    transition: none !important;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-cedef70 */<div class="sas-carousel" data-carousel="legal">
  <button class="sas-nav sas-nav-prev" aria-label="Previous slide">‹</button>
  <button class="sas-nav sas-nav-next" aria-label="Next slide">›</button>

  <div class="sas-track">

    <!-- Subdivisions -->
    <article class="sas-slide">
      <div class="sas-slide-image">
        <img src="https://sasurv.com/wp-content/uploads/2025/12/RiSCAN_PRO_WyXf9qKuCb.jpg" alt="Scan of Building">
      </div>
      <div class="sas-slide-overlay">
        <h3>Subdivisions</h3>
        <p>Division of land into multiple erven or lots in accordance with planning legislation and local authority requirements.</p>
      </div>
    </article>

    <!-- Consolidations-->
    <article class="sas-slide">
      <div class="sas-slide-image">
        <img src="https://sasurv.com/wp-content/uploads/2025/11/IMG_4800-scaled.jpg" alt="VZ600 scanning telescope">
      </div>
      <div class="sas-slide-overlay">
        <h3>Consolidations</h3>
        <p>Amalgamation of two or more registered properties into a single parcel to support development, planning, or ownership simplification.</p>
      </div>
    </article>

    <!-- Sectional Title Surveys -->
    <article class="sas-slide">
      <div class="sas-slide-image">
        <img src="https://sasurv.com/wp-content/uploads/2026/01/19f33af26fd1e459ec0f85a9bad7e8dd.jpeg" alt="Topographic survey over varied terrain">
      </div>
      <div class="sas-slide-overlay">
        <h3>Sectional Title Surveys</h3>
        <p>Surveying and unit delineation within sectional title schemes, ensuring accurate definition of sections, common property, and exclusive use areas.</p>
      </div>
    </article>

    <!-- Boundary Reinstatement & Verification -->
    <article class="sas-slide">
      <div class="sas-slide-image">
        <img src="https://sasurv.com/wp-content/uploads/2026/01/3dsurvey_stockpile_volume_calculation-002.png.webp" alt="Survey along road or pipeline corridor">
      </div>
      <div class="sas-slide-overlay">
        <h3>Boundary Reinstatement & Verification</h3>
        <p>Re establishment and verification of registered property boundaries to provide legal certainty for development, transactions, and dispute resolution.</p>
      </div>
    </article>

    <!--Servitudes & Right of Way Surveys-->
    <article class="sas-slide">
      <div class="sas-slide-image">
        <img src="https://sasurv.com/wp-content/uploads/2026/01/Heritage-Survey-Point-Cloud.webp" alt="Monitoring points on a structure">
      </div>
      <div class="sas-slide-overlay">
        <h3>Servitudes & Right of Way Surveys</h3>
        <p>Surveying and definition of servitudes, access rights, and utility corridors for legal registration and land use compliance.</p>
      </div>
    </article>

    <!-- Township Establishment Surveys -->
    <article class="sas-slide">
      <div class="sas-slide-image">
        <img src="https://sasurv.com/wp-content/uploads/2026/01/vektorisierung-1024x656-1.png" alt="Boundary survey marker and GNSS rover">
      </div>
      <div class="sas-slide-overlay">
        <h3>Township Establishment Surveys</h3>
        <p>Comprehensive surveying support for new township developments, including layout design, statutory compliance, and registration processes.</p>
      </div>
    </article>

     <!-- Cadastral Data Capture -->
    <article class="sas-slide">
      <div class="sas-slide-image">
        <img src="https://sasurv.com/wp-content/uploads/2026/01/vektorisierung-1024x656-1.png" alt="Boundary survey marker and GNSS rover">
      </div>
      <div class="sas-slide-overlay">
        <h3>Cadastral Data Capture</h3>
        <p>Accurate capture and validation of cadastral information to support land registration systems, planning authorities, and spatial data management.</p>
      </div>
    </article


</div>

<script>
(function () {
  const VISIBLE = 3; // how many cards on screen

  const carousels = document.querySelectorAll('.sas-carousel');

  carousels.forEach((carousel) => {
    const track = carousel.querySelector('.sas-track');
    if (!track) return;

    let originalSlides = Array.from(track.children);
    const realCount = originalSlides.length;
    if (realCount === 0) return;

    // 1) Clone last VISIBLE slides to the front
    for (let i = realCount - VISIBLE; i < realCount; i++) {
      const clone = originalSlides[i].cloneNode(true);
      clone.classList.remove('is-center', 'is-near');
      track.insertBefore(clone, track.firstChild);
    }

    // 2) Clone first VISIBLE slides to the end
    for (let i = 0; i < VISIBLE; i++) {
      const clone = originalSlides[i].cloneNode(true);
      clone.classList.remove('is-center', 'is-near');
      track.appendChild(clone);
    }

    let slides = Array.from(track.children);
    let index = VISIBLE;      // left-most REAL slide
    let isAnimating = false;

    function getStep() {
      const first = slides[0];
      if (!first) return 0;
      const rect = first.getBoundingClientRect();
      const style = window.getComputedStyle(track);
      const gap = parseFloat(style.columnGap || style.gap || 0);
      return rect.width + gap;
    }

    function updateClasses() {
      slides.forEach((s) => s.classList.remove('is-center', 'is-near'));

      const left = index;
      const center = index + 1;
      const right = index + 2;

      if (slides[left]) slides[left].classList.add('is-near');
      if (slides[center]) slides[center].classList.add('is-center');
      if (slides[right]) slides[right].classList.add('is-near');
    }

    function setPosition(noTransition) {
      const step = getStep();
      if (!step) return;
      if (noTransition) track.style.transition = 'none';
      const offset = -step * index;
      track.style.transform = `translateX(${offset}px)`;
      if (noTransition) {
        // force reflow so browser accepts future transitions
        void track.offsetHeight;
        track.style.transition = '';
      }
    }

    function go(dir) {
      if (isAnimating) return;
      isAnimating = true;

      const step = getStep();
      if (!step) { isAnimating = false; return; }

      // move one step with animation
      track.style.transition = 'transform 0.45s ease';
      index += dir;
      const offset = -step * index;
      track.style.transform = `translateX(${offset}px)`;

      const onEnd = () => {
        track.removeEventListener('transitionend', onEnd);

        // wrap logic: real slides are from VISIBLE .. VISIBLE+realCount-1
        const leftMostReal = VISIBLE;
        const rightMostReal = VISIBLE + realCount - 1;

        if (index > rightMostReal) {
          index -= realCount;       // jumped past end, snap back to same slide in real block
          setPosition(true);
        } else if (index < leftMostReal) {
          index += realCount;       // jumped before start, snap to same slide in real block
          setPosition(true);
        }

        updateClasses();
        isAnimating = false;
      };

      track.addEventListener('transitionend', onEnd);
    }

    // init position and classes
    setPosition(true);
    updateClasses();

    const prevBtn = carousel.querySelector('.sas-nav-prev');
    const nextBtn = carousel.querySelector('.sas-nav-next');

    if (prevBtn) prevBtn.addEventListener('click', () => go(-1));
    if (nextBtn) nextBtn.addEventListener('click', () => go(1));

    // click slide to bring its group into view (rough but works)
    slides.forEach((slide, i) => {
      slide.addEventListener('click', () => {
        const targetIndex = i - 1; // try to make clicked slide the center
        const diff = targetIndex - index;
        if (diff === 0) return;
        go(diff > 0 ? 1 : -1);
      });
    });

    window.addEventListener('resize', () => {
      setPosition(true);
      updateClasses();
    });
  });
})();
</script>/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-f6a9bc3 */.sas-carousel {
  position: relative;
  overflow: hidden;
  padding: 2rem 0;
}

.sas-track {
  display: flex;
  gap: 2rem;
  transition: transform 0.6s ease;
  will-change: transform;
}

.sas-slide {
  flex: 0 0 calc(33.333% - 1.3rem);
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.sas-slide:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

/* 4:3 image ratio */
.sas-slide-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.sas-slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.sas-slide-overlay {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 1.2rem 1rem;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(8px);
  color: #fff;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.sas-slide-overlay h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}

.sas-slide-overlay p {
  font-size: 0.9rem;
  margin: 0.3rem 0 0;
}

/* Navigation buttons */
.sas-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 20px;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  transition: all 0.3s ease;
}

.sas-nav:hover {
  background: #e74c3c;
  color: #fff;
}

.sas-nav-prev { left: 1rem; }
.sas-nav-next { right: 1rem; }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-fb0e565 */.sas-carousel {
  position: relative;
  overflow: hidden;
  padding: 2rem 0;
}

.sas-track {
  display: flex;
  gap: 2rem;
  transition: transform 0.6s ease;
  will-change: transform;
}

.sas-slide {
  flex: 0 0 calc(33.333% - 1.3rem);
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.sas-slide:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

/* 4:3 image ratio */
.sas-slide-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.sas-slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.sas-slide-overlay {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 1.2rem 1rem;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(8px);
  color: #fff;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.sas-slide-overlay h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}

.sas-slide-overlay p {
  font-size: 0.9rem;
  margin: 0.3rem 0 0;
}

/* Navigation buttons */
.sas-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 20px;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  transition: all 0.3s ease;
}

.sas-nav:hover {
  background: #e74c3c;
  color: #fff;
}

.sas-nav-prev { left: 1rem; }
.sas-nav-next { right: 1rem; }/* End custom CSS */
/* Start custom CSS *//* Mobile fixes for SAS carousel */

.sas-carousel {
  position: relative;
  width: 100%;
}

.sas-track {
  display: flex;
  gap: var(--sas-gap, 12px);
  align-items: stretch;
  will-change: transform;
}

.sas-slide {
  flex: 0 0 auto;
}

/* 1 card on phones */
@media (max-width: 767px) {
  .sas-slide {
    width: 86vw;      /* big card */
    max-width: 420px; /* keeps it tidy */
  }

  .sas-slide-image {
    min-height: 240px;
  }

  /* Make text readable and not a vertical novel */
  .sas-slide-overlay p {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Arrows nicer */
  .sas-nav {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(0,0,0,.35);
    color: #fff;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .sas-nav-prev { left: 10px; }
  .sas-nav-next { right: 10px; }
}

/* 2 cards on tablets */
@media (min-width: 768px) and (max-width: 1023px) {
  .sas-slide {
    width: calc((100% - var(--sas-gap, 16px)) / 2);
  }
}

/* 3 cards on desktop */
@media (min-width: 1024px) {
  .sas-slide {
    width: calc((100% - (var(--sas-gap, 16px) * 2)) / 3);
  }
}
html {
  scroll-behavior: smooth;
}/* End custom CSS */