.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-page-transition-entrance-animation:e-page-transition-fade-out;--e-page-transition-exit-animation:e-page-transition-fade-in;--e-page-transition-animation-duration:2500ms;--e-preloader-animation:eicon-spin;--e-preloader-animation-duration:3000ms;--e-preloader-delay:0ms;--e-preloader-color:#FFFFFF;--e-preloader-size:151px;}.elementor-kit-6 e-page-transition{background-color:#393939;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:430px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:932px;}.e-con{--container-max-width:932px;}}/* Start custom CSS *//* =========================================================
   MOBILE FIX: Allow panels to grow (stop clipping content)
   - Hero stays 100vh (video cover)
   - Other panels become auto-height
========================================================= */
@media (max-width:1024px){

  /* DEFAULT: panels should NOT be locked to 100vh */
  .hs-wrap > .hs-panel{
    height: auto !important;
    min-height: calc(var(--vh) * 100) !important; /* still feels like a “section” */
    overflow: visible !important;
  }

  /* HERO ONLY: true fullscreen + clip for background video */
  .hs-wrap > .hs-panel.m-hero{
    height: calc(var(--vh) * 100) !important;
    min-height: calc(var(--vh) * 100) !important;
    overflow: hidden !important;
  }

  /* Safety: if inner wrappers were forced to 100% height, remove that on non-hero */
  .hs-wrap > .hs-panel:not(.m-hero) .e-con,
  .hs-wrap > .hs-panel:not(.m-hero) .elementor-container,
  .hs-wrap > .hs-panel:not(.m-hero) .elementor-widget-wrap{
    height: auto !important;
  }

  /* Keep hero internals stretched (so video/text layout stays right) */
  .hs-wrap > .hs-panel.m-hero .e-con,
  .hs-wrap > .hs-panel.m-hero .elementor-container,
  .hs-wrap > .hs-panel.m-hero .elementor-widget-wrap{
    height: 100% !important;
  }
}
/* ===== Fluid type tokens ===== */
:root{
  --h1: clamp(34px, 2.6vw, 54px);
  --h2: clamp(24px, 1.9vw, 36px);
  --h3: clamp(18px, 1.4vw, 24px);
  --body: clamp(14px, 1.05vw, 18px);
  --small: clamp(12px, 0.95vw, 14px);

  /* iOS-safe vh token */
  --vh: 1vh;
}

/* Apply to your hero + service cards */
.hero-title, .company-title { font-size: var(--h1); line-height: 1.05; }
.hero-body,  .company-body  { font-size: var(--body); line-height: 1.55; }

.service-card h3 { font-size: var(--h2); line-height: 1.15; }
.service-card p,
.service-card li { font-size: var(--body); line-height: 1.5; }

.service-card .meta,
.service-card .small { font-size: var(--small); line-height: 1.35; }


/* =========================================================
   DESKTOP HORIZONTAL SLIDER (>=1025px)
========================================================= */

@media (min-width:1025px){

  html, body{
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff;
  }

  .elementor-location-header,
  header,
  body > header{
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2147483647 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .hs-wrap{
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 0 !important;

    width: 100vw !important;
    height: 100vh !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    scroll-snap-type: x mandatory;
    scroll-snap-stop: always;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;

    will-change: scroll-position;
    z-index: 1 !important;
  }

  .hs-wrap{
    scrollbar-width: none;
  }
  .hs-wrap::-webkit-scrollbar{
    width: 0;
    height: 0;
  }

  .hs-wrap > .hs-panel{
    flex: 0 0 100vw !important;
    width: 100vw !important;
    max-width: 100vw !important;

    height: 100vh !important;
    min-height: 100vh !important;

    overflow: hidden !important;
    scroll-snap-align: start;
    min-width: 0 !important;

    isolation: isolate !important;
  }

  .hs-wrap > .hs-panel .e-con,
  .hs-wrap > .hs-panel .elementor-container,
  .hs-wrap > .hs-panel .elementor-widget-wrap{
    height: 100% !important;
  }

  .hs-wrap > .hs-panel .elementor-background-video-container,
  .hs-wrap > .hs-panel .elementor-background-overlay,
  .hs-wrap > .hs-panel .elementor-background-slideshow{
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none;
  }

  .hs-wrap > .hs-panel .elementor-background-video-container video{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .hs-wrap > .hs-panel .elementor-element{
    position: relative;
    z-index: 2;
  }
}


/* =========================================================
   MOBILE / TABLET VERTICAL MODE (<=1024px)
========================================================= */

@media (max-width:1024px){

  html, body{
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .elementor-location-header,
  header,
  body > header{
    position: sticky !important;
    top: 0 !important;
    z-index: 999999 !important;
  }

  .hs-wrap{
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
  }

  /* Each slide becomes full viewport height */
  .hs-wrap > .hs-panel{
    width: 100% !important;
    min-height: calc(var(--vh) * 100) !important;
    height: calc(var(--vh) * 100) !important;

    position: relative !important;
    overflow: hidden !important;
    isolation: isolate !important;
  }

  .hs-wrap > .hs-panel .e-con,
  .hs-wrap > .hs-panel .elementor-container,
  .hs-wrap > .hs-panel .elementor-widget-wrap{
    height: 100% !important;
  }

  .hs-wrap > .hs-panel .elementor-background-video-container,
  .hs-wrap > .hs-panel .elementor-background-overlay,
  .hs-wrap > .hs-panel .elementor-background-slideshow{
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 0 !important;
    pointer-events: none;
  }

  .hs-wrap > .hs-panel .elementor-background-video-container video,
  .hs-wrap > .hs-panel video.elementor-background-video-hosted{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .hs-wrap > .hs-panel .elementor-element{
    position: relative;
    z-index: 2;
  }

  /* Vertical snap for mobile slides */
  html{
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
  }

  .hs-wrap > .hs-panel{
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  /* =====================================================
     HIDE CSS-BASED SCROLL INDICATOR (mobile only)
     This kills pseudo-elements generating "SCROLL →"
  ===================================================== */

  .hs-wrap::before,
  .hs-wrap::after,
  .hs-wrap > .hs-panel::before,
  .hs-wrap > .hs-panel::after,
  .hs-panel::before,
  .hs-panel::after{
    content: none !important;
    display: none !important;
  }
}


/* Header animation */
.site-header{
  transition: opacity .35s ease, transform .35s ease;
  will-change: opacity, transform;
}

.site-header.is-hidden{
  opacity: 0;
  transform: translateY(-18px);
  pointer-events: none;
}

/* =========================================================
   MOBILE SPLIT SECTIONS
   Layout: IMAGE FIRST → TEXT CARD
   Classes required:
   - Parent: .m-split
   - Image column: .m-split__media
   - Text column: .m-split__copy
========================================================= */

@media (max-width:1024px){

  /* Stack vertically */
  .m-split{
    flex-direction: column !important;
    gap: 18px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  /* Force full width children */
  .m-split > *{
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  /* IMAGE FIRST */
  .m-split__media{
    order: 1 !important;
    height: 40vh;
    min-height: 260px;
    max-height: 460px;

    border-radius: 24px;
    overflow: hidden !important;

    box-shadow: 0 18px 48px rgba(0,0,0,0.12);
  }

  /* Ensure media covers properly */
  .m-split__media img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
  }

  .m-split__media .elementor-background-overlay,
  .m-split__media .elementor-background-video-container{
    inset: 0 !important;
  }

  /* TEXT CARD SECOND */
  .m-split__copy{
    order: 2 !important;

    background: rgba(255,255,255,0.72);
    backdrop-filter: blur(10px);

    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 20px;

    padding: 20px 18px !important;

    box-shadow: 0 12px 32px rgba(0,0,0,0.08);
  }

  /* Better typography spacing inside card */
  .m-split__copy p{
    margin-bottom: 1.1em;
  }

}
/* ===== MOBILE OVERRIDE (final winner) ===== */
@media (max-width:1024px){
  html{ scroll-snap-type: none !important; }

  /* unlock all panels by default */
  .hs-wrap > .hs-panel{
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  /* hero only stays full screen */
  .hs-wrap > .hs-panel.m-hero{
    height: calc(var(--vh) * 100) !important;
    min-height: calc(var(--vh) * 100) !important;
    overflow: hidden !important;
  }

  /* =========================================================
   EDITOR ONLY — UNCLIP PREVIEW SO HS CAN SHOW ALL PANELS
   (Live site unaffected)
========================================================= */
body.elementor-editor-active #elementor-preview,
body.elementor-editor-active #elementor-preview iframe,
body.elementor-editor-active .elementor-preview,
body.elementor-editor-active .elementor-preview-iframe{
  overflow: visible !important;
}

/* Some Elementor builds clip with overflow hidden on body/html inside iframe */
body.elementor-editor-active{
  overflow: visible !important;
}

/* Ensure the HS wrapper isn't being masked by a parent container */
body.elementor-editor-active .hs-wrap{
  position: relative !important;   /* avoid fixed inside editor iframe */
  inset: auto !important;
  transform: none !important;
  will-change: auto !important;
}/* End custom CSS */