html,
body {
  overflow-x: hidden;
  overflow-x: clip;
}

html {
  scroll-behavior: auto;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html.eyvi-scroll-locked,
body.eyvi-scroll-locked {
  overflow: hidden !important;
  overscroll-behavior: none;
}

html[data-eyvi-snapping="true"] {
  scroll-behavior: auto !important;
}

[data-eyvi-section],
[data-eyvi-section] *,
[data-eyvi-section] *::before,
[data-eyvi-section] *::after {
  box-sizing: border-box;
}

[data-eyvi-section] video {
  display: block;
  max-width: 100%;
  object-fit: cover;
  backface-visibility: hidden;
}

[data-eyvi-snap] {
  scroll-margin-top: 0;
  scroll-margin-bottom: 0;
}

.eyvi-section-host {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 0;
  overflow: visible !important;
  contain: none !important;
}

.eyvi-tech-host,
.eyvi-wwa-host,
.eyvi-long-scroll-host,
.eyvi-free-scroll-host,
.eyvi-tech-host > *,
.eyvi-wwa-host > *,
.eyvi-long-scroll-host > *,
.eyvi-free-scroll-host > *,
.eyvi-tech-host .elementor-widget,
.eyvi-wwa-host .elementor-widget,
.eyvi-long-scroll-host .elementor-widget,
.eyvi-free-scroll-host .elementor-widget,
.eyvi-tech-host .elementor-widget-container,
.eyvi-wwa-host .elementor-widget-container,
.eyvi-long-scroll-host .elementor-widget-container,
.eyvi-free-scroll-host .elementor-widget-container,
.eyvi-tech-host .elementor-widget-html,
.eyvi-wwa-host .elementor-widget-html,
.eyvi-long-scroll-host .elementor-widget-html,
.eyvi-free-scroll-host .elementor-widget-html {
  overflow: visible !important;
  contain: none !important;
  height: auto !important;
}

.elementor-widget-container:has(#eyvi-tech),
.elementor-element:has(#eyvi-tech),
.elementor-widget-html:has(#eyvi-tech),
.e-con:has(#eyvi-tech),
.e-con-inner:has(#eyvi-tech),
.elementor-section:has(#eyvi-tech),
.elementor-container:has(#eyvi-tech),
.elementor-column:has(#eyvi-tech),
[data-elementor-type]:has(#eyvi-tech),
.elementor-widget-container:has(#eyvi-wwa),
.elementor-element:has(#eyvi-wwa),
.elementor-widget-html:has(#eyvi-wwa),
.e-con:has(#eyvi-wwa),
.e-con-inner:has(#eyvi-wwa),
.elementor-section:has(#eyvi-wwa),
.elementor-container:has(#eyvi-wwa),
.elementor-column:has(#eyvi-wwa),
[data-elementor-type]:has(#eyvi-wwa) {
  overflow: visible !important;
  contain: none !important;
  height: auto !important;
}

#eyvi-tech,
#eyvi-wwa {
  position: relative;
  display: block;
  width: 100%;
  height: auto !important;
  min-height: 0;
  overflow: visible !important;
  contain: none !important;
}

#eyvi-tech .et-driver {
  position: relative !important;
  height: 300vh !important;
  min-height: 300vh !important;
  overflow: visible !important;
}

#eyvi-wwa .wwa-driver {
  position: relative !important;
  height: calc(var(--vh, 1vh) * 306.05) !important;
  min-height: calc(var(--vh, 1vh) * 306.05) !important;
  overflow: visible !important;
}

@media (max-width: 700px) {
  #eyvi-tech .et-driver {
    height: 280vh !important;
    min-height: 280vh !important;
  }
}

@media (max-width: 850px) {
  #eyvi-wwa .wwa-driver {
    height: calc(var(--vh, 1vh) * 390) !important;
    min-height: calc(var(--vh, 1vh) * 390) !important;
  }
}

html.eyvi-tech-modal-open,
body.eyvi-tech-modal-open {
  overscroll-behavior: none !important;
  scroll-behavior: auto !important;
  touch-action: none !important;
}

html.eyvi-lite {
  scroll-behavior: auto !important;
}

html.eyvi-lite #eyvi-tech .et-backdrop,
html.eyvi-lite #eyvi-tech .et-backdrop.on {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: rgba(18, 18, 18, .88) !important;
}

html.eyvi-lite #eyvi-tech .eyvi-tech-fullscreen-txt::before {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  background: linear-gradient(135deg, rgba(18, 18, 18, .36), rgba(18, 18, 18, .72)) !important;
}

html.eyvi-lite #eyvi-tech .et-tile.is-fullscreen-source,
html.eyvi-lite #eyvi-tech .et-tile.is-fullscreen-source.is-expanded {
  box-shadow: none !important;
}

html.eyvi-lite [data-eyvi-showreel] .sr-card,
html.eyvi-lite #eyvi-tech .et-tile {
  -webkit-mask-image: none !important;
}

html.eyvi-lite #eyvi-wwa .wwa-cv-neg {
  display: none !important;
}

html.eyvi-lite #eyvi-wwa .wwa-title,
html.eyvi-lite #eyvi-wwa .wwa-title *,
html.eyvi-lite [data-eyvi-showreel] .sr-text,
html.eyvi-lite [data-eyvi-showreel] .sr-text * {
  mix-blend-mode: normal !important;
}

html.eyvi-lite .eyhc-center__text::before,
html.eyvi-lite .eyhc-center__text::after {
  display: none !important;
}

html.eyvi-lite .eyhc-center__text.is-glitching {
  animation: none !important;
  filter: none !important;
}

html.eyvi-lite [data-eyvi-section] {
  transform-style: flat !important;
}

html.eyvi-lite [data-eyvi-section] * {
  backface-visibility: hidden;
}

html.eyvi-lite .eyvi-contact-scene {
  content-visibility: auto;
  contain-intrinsic-size: 744px;
}

html.eyvi-lite .eyhc-center__text {
  will-change: auto !important;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  [data-eyvi-section] *,
  [data-eyvi-section] *::before,
  [data-eyvi-section] *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* ============================================================
   EYVI Plugin v1.2 — editable motion variables from widgets
   ============================================================ */
.eyvi-hero-widget {
  height: calc(var(--eyvi-hero-scroll-vh, 220) * 1vh) !important;
  height: calc(var(--eyvi-hero-scroll-vh, 220) * 1svh) !important;
  min-height: calc(var(--eyvi-hero-scroll-vh, 220) * 1vh) !important;
  min-height: calc(var(--eyvi-hero-scroll-vh, 220) * 1svh) !important;
}

#eyvi-tech .et-driver {
  height: calc(var(--eyvi-tech-driver-vh, 300) * 1vh) !important;
  min-height: calc(var(--eyvi-tech-driver-vh, 300) * 1vh) !important;
}

#eyvi-wwa .wwa-driver {
  height: calc(var(--vh, 1vh) * var(--eyvi-wwa-driver-vh, 306.05)) !important;
  min-height: calc(var(--vh, 1vh) * var(--eyvi-wwa-driver-vh, 306.05)) !important;
}

.eyvi-contact-scene {
  height: var(--eyvi-contact-height, 744px) !important;
  min-height: var(--eyvi-contact-height, 744px) !important;
}

@media (max-width: 767px) {
  .eyvi-hero-widget {
    height: calc(var(--eyvi-hero-scroll-mobile-vh, var(--eyvi-hero-scroll-vh, 220)) * 1dvh) !important;
    min-height: calc(var(--eyvi-hero-scroll-mobile-vh, var(--eyvi-hero-scroll-vh, 220)) * 1dvh) !important;
  }
}

@media (max-width: 700px) {
  #eyvi-tech .et-driver {
    height: calc(var(--eyvi-tech-driver-mobile-vh, var(--eyvi-tech-driver-vh, 280)) * 1vh) !important;
    min-height: calc(var(--eyvi-tech-driver-mobile-vh, var(--eyvi-tech-driver-vh, 280)) * 1vh) !important;
  }
}

@media (max-width: 850px) {
  #eyvi-wwa .wwa-driver {
    height: calc(var(--vh, 1vh) * var(--eyvi-wwa-driver-mobile-vh, var(--eyvi-wwa-driver-vh, 390))) !important;
    min-height: calc(var(--vh, 1vh) * var(--eyvi-wwa-driver-mobile-vh, var(--eyvi-wwa-driver-vh, 390))) !important;
  }
}

@media (max-width: 600px) {
  .eyvi-contact-scene {
    height: var(--eyvi-contact-mobile-height, 690px) !important;
    min-height: var(--eyvi-contact-mobile-height, 690px) !important;
  }
}

.eyvi-section-anchor {
  position: relative;
  display: block;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
  scroll-margin-top: 0;
}

/* EYVI plugin v1.3.9 — per-widget native smooth mode */
[data-eyvi-native-smooth="true"] {
  scroll-behavior: smooth;
}
