.elementor-1252 .elementor-element.elementor-element-cbe170f{--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;}.elementor-1252 .elementor-element.elementor-element-cbe170f:not(.elementor-motion-effects-element-type-background), .elementor-1252 .elementor-element.elementor-element-cbe170f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0A0B0F;}.elementor-1252 .elementor-element.elementor-element-34b22ed{--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;}.elementor-1252 .elementor-element.elementor-element-34b22ed:not(.elementor-motion-effects-element-type-background), .elementor-1252 .elementor-element.elementor-element-34b22ed > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0A0B0F;}.elementor-1252 .elementor-element.elementor-element-4ebfc69{--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;}.elementor-1252 .elementor-element.elementor-element-583ba73{--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;}.elementor-1252 .elementor-element.elementor-element-d9a36b9{--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;}.elementor-1252 .elementor-element.elementor-element-3d38eab{--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;}.elementor-1252 .elementor-element.elementor-element-58bc5f9{z-index:9999;}body.elementor-page-1252:not(.elementor-motion-effects-element-type-background), body.elementor-page-1252 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0A0B0F;}:root{--page-title-display:none;}/* Start custom CSS *//* ============================================
   JTS ECOM — Global page styles
   Paste into: Elementor → Page Settings →
   Advanced → Custom CSS

   Handles:
   1. Page-wide background color
   2. Ambient glow orbs (one set, page-level)
   3. Mobile bar / overflow fixes
   ============================================ */

/* ============================================
   PAGE BACKGROUND — force one color everywhere
   ============================================ */
html,
body,
#page,
.site,
.site-content,
main,
#main,
#primary,
#content,
.elementor,
.elementor-page,
.elementor-section-wrap,
.elementor-section,
.elementor-container,
.elementor-row,
.elementor-column,
.elementor-column-wrap,
.elementor-widget-wrap,
.elementor-widget,
.elementor-widget-html,
.elementor-element {
  background-color: #0A0B0F !important;
}

.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap {
  background-image: none !important;
}

.elementor-background-overlay {
  background: transparent !important;
  background-color: transparent !important;
  opacity: 0 !important;
}

/* ============================================
   AMBIENT GLOWS — page-wide, fixed positioning
   These sit behind everything and stay
   constrained to the viewport so they never
   create side bars on mobile.
   ============================================ */

body {
  position: relative;
  overflow-x: hidden !important;
  max-width: 100% !important;
}

/* Top glow — large, soft, behind hero */
body::before {
  content: "";
  position: fixed;
  top: -300px;
  left: 50%;
  transform: translateX(-50%);
  width: min(1100px, 90vw);
  height: 800px;
  background: radial-gradient(
    ellipse at center,
    rgba(107, 138, 255, 0.18) 0%,
    rgba(107, 138, 255, 0.06) 35%,
    transparent 65%
  );
  filter: blur(60px);
  pointer-events: none;
  z-index: 0;
}

/* Secondary glow — mid-page right, very subtle */
body::after {
  content: "";
  position: fixed;
  top: 40%;
  right: -150px;
  width: min(700px, 60vw);
  height: 700px;
  background: radial-gradient(
    ellipse at center,
    rgba(107, 138, 255, 0.10) 0%,
    rgba(107, 138, 255, 0.03) 40%,
    transparent 70%
  );
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}

/* Make sure all content sits above the glows */
.elementor,
.elementor-section,
.elementor-widget {
  position: relative;
  z-index: 1;
}

/* ============================================
   REMOVE PER-SECTION GLOWS
   Now that glows live on body, kill the ones
   inside each section widget
   ============================================ */
.jts-hero::before,
.jts-hero::after,
.jts-about::before,
.jts-about::after,
.jts-process::before,
.jts-process::after,
.jts-portfolio::before,
.jts-portfolio::after,
.jts-contact::before,
.jts-contact::after {
  display: none !important;
}

/* But keep the horizon line on the hero visible */
.jts-hero-horizon {
  display: block !important;
}

/* ============================================
   MOBILE OVERFLOW / BAR FIXES
   ============================================ */
html, body {
  overflow-x: hidden !important;
  max-width: 100% !important;
}

.elementor-section,
.elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 100% !important;
}

.elementor-section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.elementor-widget-html,
.elementor-widget-html .elementor-widget-container {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

@media (max-width: 1024px) {
  html, body, #page, .site, .elementor-page {
    background-color: #0A0B0F !important;
  }

  .elementor-section .elementor-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Shrink glows on mobile so they don't dominate */
  body::before {
    width: min(600px, 80vw) !important;
    height: 500px !important;
    top: -200px !important;
    filter: blur(50px) !important;
  }

  body::after {
    width: min(450px, 70vw) !important;
    height: 500px !important;
    right: -100px !important;
    filter: blur(60px) !important;
  }
}/* End custom CSS */