/* ===== SilverWeb Services Carousel (v1.4.6 – clean, no dot, no ghost text) ===== */

.sw-services-wrap{
  --sw-radius: 30px;
  --sw-card-h: 560px;
  --sw-space: 28px;

  --sw-cards-mobile: 1;
  --sw-cards-tablet: 2;
  --sw-cards-desktop: 4;

  --sw-speed: 70; /* px per second */

  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none;
  box-sizing: border-box;
  overflow: hidden !important;
  padding: clamp(18px, 3vw, 40px) clamp(14px, 3vw, 56px);
}

@supports (width: 100dvw){
  .sw-services-wrap{
    width: 100dvw;
    margin-left: calc(50% - 50dvw);
    margin-right: calc(50% - 50dvw);
  }
}


/* Viewport */
.sw-services-wrap .sw-marquee{
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden !important;
}

/* Track */
.sw-services-wrap .sw-marquee__track{
  display: flex !important;
  gap: var(--sw-space) !important;
  align-items: stretch;
  will-change: transform;
  transform: translate3d(0,0,0);
}

/* Fallback scroll */
.sw-services-wrap:not(.sw-ready) .sw-marquee{
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
}
.sw-services-wrap:not(.sw-ready) .sw-marquee__item{ scroll-snap-align: start; }

/* Item widths */
.sw-services-wrap .sw-marquee__item{
  flex: 0 0 calc((100% - (var(--sw-space) * (var(--sw-cards-mobile) - 1))) / var(--sw-cards-mobile));
}
@media (min-width: 640px){
  .sw-services-wrap .sw-marquee__item{
    flex-basis: calc((100% - (var(--sw-space) * (var(--sw-cards-tablet) - 1))) / var(--sw-cards-tablet));
  }
}
@media (min-width: 1024px){
  .sw-services-wrap .sw-marquee__item{
    flex-basis: calc((100% - (var(--sw-space) * (var(--sw-cards-desktop) - 1))) / var(--sw-cards-desktop));
  }

@media (min-width: 1440px){
  .sw-services-wrap .sw-marquee__item{
    flex-basis: min(420px, calc((100% - (var(--sw-space) * (var(--sw-cards-desktop) - 1))) / var(--sw-cards-desktop)));
  }
}
}

/* ===== Card ===== */
.sw-services-wrap .sw-card{
  height: var(--sw-card-h);
  border-radius: var(--sw-radius);
  overflow: hidden;
  display: block;
  position: relative;
  text-decoration: none;

  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-color: #0b0f16;

  outline: 1px solid rgba(255,255,255,.10);

  box-shadow: 0 18px 55px rgba(10,12,16,.18);
  transform: translateZ(0);
  transition: transform .22s ease, box-shadow .22s ease;
}
.sw-services-wrap .sw-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 24px 70px rgba(10,12,16,.22);
}

/* Overlay: close to your SEO reference (no grey haze) */
.sw-services-wrap .sw-card__overlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 520px at 20% 20%, rgba(0,0,0,.40), rgba(0,0,0,0) 62%),
    linear-gradient(135deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.20) 42%, rgba(0,0,0,0) 72%),
    linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.18) 48%, rgba(0,0,0,.90) 100%);
}

/* Top title */
.sw-services-wrap .sw-card__top{
  position:absolute;
  left: 36px;
  right: 36px;
  top: 30px;
  z-index:2;
}

.sw-services-wrap .sw-card__title{
  margin:0 !important;
  font-size: clamp(46px, 3.1vw, 86px);
  font-weight: 950;
  letter-spacing: -0.05em;
  line-height: 1.02;
  text-shadow: 0 18px 60px rgba(0,0,0,.60);
  color:#fff !important;
}

.sw-services-wrap .sw-card__title .sw-title__accent{
  color: var(--sw-accent, #B7E35A) !important;
}
.sw-services-wrap .sw-card__title .sw-title__rest{
  color:#fff !important;
}

/* Bottom content */
.sw-services-wrap .sw-card__content{
  position:absolute;
  left: 36px;
  right: 36px;
  bottom: 30px;
  z-index:2;
  color:#fff;
}

.sw-services-wrap .sw-card__lead{
  font-size: clamp(30px, 2.05vw, 48px);
  font-weight: 900;
  letter-spacing: -0.025em;
  line-height: 1.12;
  margin: 0 0 14px 0 !important;
  color:#fff !important;
  text-shadow: 0 18px 60px rgba(0,0,0,.60);
  max-width: 22ch;
  text-wrap: balance;
}

.sw-services-wrap .sw-card__body{
  font-size: 20px;
  line-height: 1.60;
  max-width: 48ch;
  opacity: .96;
  color:#fff !important;
  text-shadow: 0 18px 60px rgba(0,0,0,.60);
}

/* Mobile */
@media (max-width: 640px){
  .sw-services-wrap{ padding: 22px 0; }
  .sw-services-wrap .sw-card__top{ left: 22px; right: 22px; top: 18px; }
  .sw-services-wrap .sw-card__content{ left: 22px; right: 22px; bottom: 20px; }
  .sw-services-wrap .sw-card__body{
  font-size: 20px;
  line-height: 1.60;
  max-width: 48ch;
  opacity: .96;
  color:#fff !important;
  text-shadow: 0 18px 60px rgba(0,0,0,.60);
}
}


/* ===== Theme reset (kill ghost/grey duplicate text) =====
   Some themes add decorative text via ::before/::after on links/headings,
   or apply mix-blend-mode/filters that can create “ghost” duplicates.
   We explicitly neutralize pseudo elements inside our cards. */
.sw-services-wrap .sw-card::before,
.sw-services-wrap .sw-card::after,
.sw-services-wrap .sw-card *::before,
.sw-services-wrap .sw-card *::after{
  content: none !important;
  background: none !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  opacity: 1 !important;
}

/* Also neutralize possible text-stroke/outline effects some themes apply */
.sw-services-wrap .sw-card,
.sw-services-wrap .sw-card *{
  -webkit-text-stroke: 0 !important;
  text-stroke: 0 !important;
  filter: none !important;
}

/* Make sure ONLY our top title is visible (no accidental inherited styling) */
.sw-services-wrap .sw-card__top,
.sw-services-wrap .sw-card__content{
  isolation: isolate;
}
