/* =========================================================
   HEROES MOVING • GLOBAL PERFORMANCE + MOBILE STABILITY FIX
   CLEAN / SAFE / PREMIUM
========================================================= */

/* ---------- CORE ---------- */

html{
  scroll-behavior:smooth;
  overflow-x:hidden !important;
  width:100%;
  max-width:100%;
  -webkit-text-size-adjust:100%;
}

body{
  overflow-x:hidden !important;
  width:100%;
  max-width:100%;
  margin:0;
  padding:0;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:auto;
}

/* ---------- GLOBAL BOX MODEL ---------- */

*,
*::before,
*::after{
  box-sizing:border-box;
}

/* ---------- MEDIA OPTIMIZATION ---------- */

img,
video,
canvas,
svg,
iframe{
  max-width:100%;
  height:auto;
  display:block;
}

/* ---------- TOUCH FIX ---------- */

a,
button,
input,
textarea,
select{
  touch-action:manipulation;
}

/* ---------- MOBILE PERFORMANCE ---------- */

@media(max-width:1024px){

  html,
  body{
    overflow-x:hidden !important;
    touch-action:pan-y;
  }

  *{
    -webkit-tap-highlight-color:transparent;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }

  /* Prevent random horizontal scrolling */

  section,
  div,
  container{
    max-width:100%;
  }

  /* Blur optimization */

  [style*="backdrop-filter"],
  [style*="-webkit-backdrop-filter"]{
    -webkit-transform:translateZ(0);
    transform:translateZ(0);
  }

  /* Sticky/fixed lag reduction */

  .elementor-sticky--active,
  [style*="position: fixed"]{
    will-change:transform;
    transform:translateZ(0);
  }

  /* Improve scrolling smoothness */

  body *{
    scroll-margin-top:90px;
  }

}

/* ---------- ELEMENTOR STABILITY ---------- */

.elementor,
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget{
  max-width:100%;
}

/* ---------- BUTTON OPTIMIZATION ---------- */

button,
.elementor-button{
  transform:translateZ(0);
  will-change:transform;
}

/* ---------- IMAGE RENDER FIX ---------- */

img{
  image-rendering:auto;
}

/* ---------- PREVENT RANDOM OVERFLOW ---------- */

.elementor-widget-container,
.elementor-text-editor,
.elementor-image,
.elementor-heading-title{
  overflow-wrap:break-word;
  word-break:normal;
}

/* ---------- SAFARI FIX ---------- */

@supports (-webkit-touch-callout:none){

  body{
    -webkit-overflow-scrolling:touch;
  }

}

/* ---------- PERFORMANCE BOOST ---------- */

.elementor-motion-effects-layer,
.elementor-background-overlay{
  pointer-events:none;
}

/* ---------- CLEAN SCROLL ---------- */

::-webkit-scrollbar{
  width:10px;
}

::-webkit-scrollbar-thumb{
  background:rgba(185,132,45,.45);
  border-radius:999px;
}

::-webkit-scrollbar-track{
  background:transparent;
}
/* =========================================================
   HEROES MOVING • SEO + UX GLOBAL ENHANCEMENT
========================================================= */

/* ---------- GLOBAL ---------- */

html{
  scroll-behavior:smooth;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
}

body{
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.6;
}

/* ---------- BETTER CONTENT READABILITY ---------- */

p{
  max-width:75ch;
}

/* ---------- IMAGE SEO + PERFORMANCE ---------- */

img{
  max-width:100%;
  height:auto;
  display:block;
}

/* ---------- PREVENT LAYOUT SHIFT ---------- */

img,
video,
iframe{
  vertical-align:middle;
}

/* ---------- MOBILE UX ---------- */

@media(max-width:1024px){

  body{
    touch-action:pan-y;
    -webkit-overflow-scrolling:touch;
  }

  *{
    -webkit-tap-highlight-color:transparent;
  }

}

/* ---------- CLICKABLE ELEMENTS ---------- */

a,
button,
.elementor-button{
  transition:
    opacity .25s ease,
    transform .25s ease,
    background .25s ease;
}

/* ---------- BETTER FOCUS ACCESSIBILITY ---------- */

a:focus,
button:focus{
  outline:none;
}

/* ---------- ELEMENTOR STABILITY ---------- */

.elementor-section,
.elementor-container,
.elementor-column{
  max-width:100%;
}

/* ---------- REDUCE OVERFLOW BUGS ---------- */

section{
  overflow-x:clip;
}

/* ---------- CLEAN SCROLLBAR ---------- */

::-webkit-scrollbar{
  width:10px;
}

::-webkit-scrollbar-thumb{
  background:rgba(185,132,45,.45);
  border-radius:999px;
}

::-webkit-scrollbar-track{
  background:transparent;
}
/* =====================================================
   HEROES MOVING - HARD MOBILE SCROLL FIX
   Use when mobile page loads but first scroll gets stuck
===================================================== */

@media (max-width: 767px) {

  html {
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    height: auto !important;
    min-height: 100% !important;
    scroll-behavior: auto !important;
    overscroll-behavior: auto !important;
    touch-action: pan-y !important;
  }

  body {
    overflow-x: hidden !important;
    overflow-y: visible !important;
    height: auto !important;
    min-height: 100% !important;
    position: relative !important;
    scroll-behavior: auto !important;
    overscroll-behavior: auto !important;
    touch-action: pan-y !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* Disable scroll snap / smooth effects */
  html,
  body,
  main,
  section,
  .elementor,
  .elementor-section,
  .e-con,
  .e-con-inner {
    scroll-snap-type: none !important;
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
  }

  /* Elementor / theme wrappers cannot become scroll containers */
  #page,
  .site,
  .site-content,
  .content-area,
  .site-main,
  main,
  article,
  .entry-content,
  .page-content,
  .elementor,
  .elementor-section-wrap,
  .elementor-location-single,
  .elementor-widget-wrap,
  .elementor-container,
  .elementor-column,
  .e-con,
  .e-con-inner {
    overflow: visible !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    transform: none !important;
    touch-action: pan-y !important;
  }

  /* Kill mobile transform effects that create ghost hitboxes */
  .elementor-motion-effects-element,
  .elementor-motion-effects-layer,
  .elementor-invisible,
  .animated,
  [data-settings*="animation"],
  [class*="elementor-animation"],
  [class*="motion"],
  [class*="parallax"] {
    transform: none !important;
    animation: none !important;
    transition: none !important;
    will-change: auto !important;
  }

  /* Decorative layers must never catch scroll */
  .elementor-background-overlay,
  .elementor-shape,
  .elementor-shape-top,
  .elementor-shape-bottom,
  .hm-overlay,
  .hm-bg-overlay,
  .hm-glow,
  .hm-blur,
  .hm-decor,
  .hm-orb,
  .hm-light,
  .hm-gradient,
  .hm-particles,
  .hm-piano-bg,
  .hm-piano-glow,
  .hm-piano-orb,
  .hm-piano-overlay,
  .hm-section-bg,
  .hm-section-overlay,
  [class*="overlay"],
  [class*="glow"],
  [class*="blur"],
  [class*="orb"],
  [class*="decor"],
  [class*="particle"],
  [class*="parallax"] {
    pointer-events: none !important;
  }

  /* Real clickable things stay clickable */
  a,
  button,
  input,
  textarea,
  select,
  option,
  label,
  form,
  iframe,
  .elementor-button,
  .wpcf7,
  .wpcf7-form,
  .wpcf7-form-control,
  .hm-btn,
  .hm-cta,
  .hm-form,
  .hm-quote-form,
  .hm-faq,
  .hm-faq-item,
  .hm-faq-question {
    pointer-events: auto !important;
  }

  input,
  textarea,
  select {
    font-size: 16px !important;
    touch-action: manipulation !important;
  }
}
/* Hide default theme header, menu, search and blue page title */
body header:not(.hm-header),
body .site-header,
body #site-header,
body .main-header,
body #header,
body .cz_header,
body .cz-header,
body .xtra-header,
body .codevz-header,
body .elms_row,
body .cz_search,
body .search_icon,
body .header_search,
body .page_title,
body .page-title,
body .page_title_area,
body .page-header,
body .cz_page_title,
body .xtra-page-title,
body .breadcrumb,
body .breadcrumbs,
body .cz_breadcrumb,
body .title_bar,
body .titlebar {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* Keep our custom Heroes header visible */
body .hm-header {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  overflow: visible !important;
}