/* Module decorations — sky-blue geometric accents */
.cruz-deco {
  --cruz-deco: 14, 165, 233;
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}

.cruz-deco > * {
  position: absolute;
  pointer-events: none;
}

/* Keep module content above deco */
.jjBanner20260811,
.jjService20260811,
.jjAbout20260811,
.jjFeatureCards20260811,
.jjCapabilities20260811,
.jjFooter20260811,
.jjAboutHero20260811,
.jjAboutPage20260811,
.jjCoreService20260811,
.jjTrustBadge20260811 {
  isolation: isolate;
}

.jjService20260811 .jj-service-inner,
.jjAbout20260811 .jj-about-inner,
.jjAbout20260811 .jj-dots,
.jjFeatureCards20260811 .jj-fc-inner,
.jjCapabilities20260811 .jj-cap-container,
.jjFooter20260811 .jj-foot-container,
.jjFooter20260811 .jj-foot-bottom,
.jjAboutHero20260811 .jj-hero-inner,
.jjAboutPage20260811 .jj-about-inner,
.jjCoreService20260811 .jj-cs-inner,
.jjTrustBadge20260811 .jj-tb-inner,
.jjBanner20260811 .swiper-container,
.jjBanner20260811 .jj-footer-bar,
.jjBanner20260811 .swiper-pagination,
.jjBanner20260811 .swiper-button-prev,
.jjBanner20260811 .swiper-button-next {
  position: relative;
  z-index: 3;
}

/* Corner brackets */
.cruz-deco-corner {
  width: 28px;
  height: 28px;
  opacity: 0.7;
}

.cruz-deco-tl {
  top: 18px;
  left: 18px;
  border-top: 2px solid rgba(var(--cruz-deco), 0.55);
  border-left: 2px solid rgba(var(--cruz-deco), 0.55);
}

.cruz-deco-tr {
  top: 18px;
  right: 18px;
  border-top: 2px solid rgba(var(--cruz-deco), 0.55);
  border-right: 2px solid rgba(var(--cruz-deco), 0.55);
}

.cruz-deco-bl {
  bottom: 18px;
  left: 18px;
  border-bottom: 2px solid rgba(var(--cruz-deco), 0.55);
  border-left: 2px solid rgba(var(--cruz-deco), 0.55);
}

.cruz-deco-br {
  bottom: 18px;
  right: 18px;
  border-bottom: 2px solid rgba(var(--cruz-deco), 0.55);
  border-right: 2px solid rgba(var(--cruz-deco), 0.55);
}

/* Soft edge rails */
.cruz-deco-rail {
  left: 12%;
  right: 12%;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(var(--cruz-deco), 0.35),
    transparent
  );
}

.cruz-deco-rail--top {
  top: 0;
}

.cruz-deco-rail--bottom {
  bottom: 0;
}

/* Floating orbs */
.cruz-deco-orb {
  border-radius: 50%;
  filter: blur(2px);
  animation: cruz-deco-float 14s ease-in-out infinite;
}

.cruz-deco-orb-a {
  width: 180px;
  height: 180px;
  top: 8%;
  right: 4%;
  background: radial-gradient(circle, rgba(var(--cruz-deco), 0.16) 0%, transparent 70%);
}

.cruz-deco-orb-b {
  width: 140px;
  height: 140px;
  bottom: 10%;
  left: 3%;
  background: radial-gradient(circle, rgba(var(--cruz-deco), 0.12) 0%, transparent 72%);
  animation-delay: -6s;
}

/* Diagonal slashes */
.cruz-deco-slash {
  width: 54px;
  height: 2px;
  background: linear-gradient(90deg, rgba(var(--cruz-deco), 0.45), transparent);
  opacity: 0.85;
}

.cruz-deco-slash-a {
  top: 22%;
  left: 8%;
  transform: rotate(-32deg);
}

.cruz-deco-slash-b {
  bottom: 24%;
  right: 7%;
  transform: rotate(-32deg);
  background: linear-gradient(90deg, transparent, rgba(var(--cruz-deco), 0.45));
}

/* Mini dot grid */
.cruz-deco-dots {
  width: 72px;
  height: 72px;
  top: 28px;
  right: 56px;
  opacity: 0.45;
  background-image: radial-gradient(rgba(var(--cruz-deco), 0.55) 1.2px, transparent 1.3px);
  background-size: 10px 10px;
}

/* Light tone (default) */
.cruz-deco--light {
  --cruz-deco: 14, 165, 233;
}

/* Soft gray sections */
.cruz-deco--soft {
  --cruz-deco: 14, 165, 233;
}

.cruz-deco--soft .cruz-deco-orb-a {
  background: radial-gradient(circle, rgba(var(--cruz-deco), 0.14) 0%, transparent 70%);
}

/* Dark / photo sections */
.cruz-deco--dark {
  --cruz-deco: 125, 211, 252;
}

.cruz-deco--dark .cruz-deco-corner {
  opacity: 0.85;
}

.cruz-deco--dark .cruz-deco-orb-a {
  background: radial-gradient(circle, rgba(56, 189, 248, 0.22) 0%, transparent 70%);
}

.cruz-deco--dark .cruz-deco-orb-b {
  background: radial-gradient(circle, rgba(14, 165, 233, 0.18) 0%, transparent 72%);
}

.cruz-deco--dark .cruz-deco-dots {
  opacity: 0.35;
  background-image: radial-gradient(rgba(186, 230, 253, 0.7) 1.2px, transparent 1.3px);
}

.cruz-deco--dark .cruz-deco-rail {
  background: linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.45), transparent);
}

@keyframes cruz-deco-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(0, -14px, 0) scale(1.04);
  }
}

/* Title accents on light modules */
.jjFeatureCards20260811 .jj-fc-title::after,
.jjCapabilities20260811 .jj-cap-tag::after,
.jjTrustBadge20260811 .jj-tb-title::after,
.jjAboutPage20260811 .jj-about-subtitle::after,
.jjCoreService20260811 .jj-cs-subtitle::after {
  content: "";
  display: block;
  width: 36px;
  height: 2px;
  margin-top: 10px;
  background: linear-gradient(90deg, rgba(14, 165, 233, 0.85), transparent);
  border-radius: 2px;
}

.jjCapabilities20260811 .jj-cap-tag::after {
  margin-top: 8px;
}

/* Refresh About corner dots toward theme cyan */
.jjAbout20260811 .jj-dots circle {
  fill: rgba(14, 165, 233, 0.35);
}

.jjAbout20260811 .jj-dots {
  opacity: 0.85;
}

/* Hide duplicate deco dots when About already has SVG dots */
.jjAbout20260811 > .cruz-deco .cruz-deco-dots {
  display: none;
}

/* Banner: keep deco subtle so slides stay dominant */
.jjBanner20260811 > .cruz-deco .cruz-deco-orb-a {
  width: 220px;
  height: 220px;
  top: auto;
  bottom: 12%;
  right: 6%;
}

.jjBanner20260811 > .cruz-deco .cruz-deco-orb-b {
  top: 18%;
  left: 5%;
  bottom: auto;
}

@media (max-width: 767px) {
  .cruz-deco-corner {
    width: 18px;
    height: 18px;
  }

  .cruz-deco-tl,
  .cruz-deco-tr,
  .cruz-deco-bl,
  .cruz-deco-br {
    top: auto;
    bottom: auto;
  }

  .cruz-deco-tl {
    top: 12px;
    left: 12px;
  }

  .cruz-deco-tr {
    top: 12px;
    right: 12px;
  }

  .cruz-deco-bl {
    bottom: 12px;
    left: 12px;
  }

  .cruz-deco-br {
    bottom: 12px;
    right: 12px;
  }

  .cruz-deco-orb-a,
  .cruz-deco-orb-b {
    width: 110px;
    height: 110px;
  }

  .cruz-deco-dots {
    width: 48px;
    height: 48px;
    right: 40px;
  }

  .cruz-deco-slash {
    width: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cruz-deco-orb {
    animation: none;
  }
}
