/* Valli Engineering – own additions (replace effects that needed the old plugin scripts) */
.et_animated:not(.ts-anim), .wow { opacity: 1 !important; animation: none !important; visibility: visible !important; }

/* scroll animations */
.ts-anim { opacity: 0; animation-fill-mode: both !important; animation-timing-function: ease-in-out !important; animation-name: none; }
.ts-anim.ts-anim-in { opacity: 1; }
.ts-anim-in.ts-a-slide { animation-name: tsSlide !important; }
.ts-anim-in.ts-a-slideLeft { animation-name: tsSlideLeft !important; }
.ts-anim-in.ts-a-slideRight { animation-name: tsSlideRight !important; }
.ts-anim-in.ts-a-slideTop { animation-name: tsSlideTop !important; }
.ts-anim-in.ts-a-slideBottom { animation-name: tsSlideBottom !important; }
.ts-anim-in.ts-a-fold { animation-name: tsFold !important; }
.ts-anim-in.ts-a-foldLeft { animation-name: tsFoldLeft !important; transform-origin: left center; }
.ts-anim-in.ts-a-foldRight { animation-name: tsFoldRight !important; transform-origin: right center; }
.ts-anim-in.ts-a-flip { animation-name: tsFlip !important; }
.ts-anim-in.ts-a-zoom { animation-name: tsZoom !important; }
.ts-anim-in.ts-a-zoomLeft { animation-name: tsZoom !important; transform-origin: left center; }
.ts-anim-in.ts-a-zoomRight { animation-name: tsZoom !important; transform-origin: right center; }
.ts-anim-in.ts-a-fade { animation-name: tsFade !important; }
@keyframes tsFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes tsSlide { from { opacity: 0; transform: scale3d(.5,.5,.5); } to { opacity: 1; transform: none; } }
@keyframes tsSlideLeft { from { opacity: 0; transform: translate3d(-50%,0,0); } to { opacity: 1; transform: none; } }
@keyframes tsSlideRight { from { opacity: 0; transform: translate3d(50%,0,0); } to { opacity: 1; transform: none; } }
@keyframes tsSlideTop { from { opacity: 0; transform: translate3d(0,-50%,0); } to { opacity: 1; transform: none; } }
@keyframes tsSlideBottom { from { opacity: 0; transform: translate3d(0,50%,0); } to { opacity: 1; transform: none; } }
@keyframes tsFold { from { opacity: 0; transform: perspective(2000px) rotateY(45deg); } to { opacity: 1; transform: perspective(2000px) rotateY(0); } }
@keyframes tsFoldLeft { from { opacity: 0; transform: perspective(2000px) rotateY(45deg); } to { opacity: 1; transform: perspective(2000px) rotateY(0); } }
@keyframes tsFoldRight { from { opacity: 0; transform: perspective(2000px) rotateY(-45deg); } to { opacity: 1; transform: perspective(2000px) rotateY(0); } }
@keyframes tsFlip { from { opacity: 0; transform: perspective(2000px) rotateX(45deg); } to { opacity: 1; transform: perspective(2000px) rotateX(0); } }
@keyframes tsZoom { from { opacity: 0; transform: scale3d(.5,.5,.5); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ts-anim { opacity: 1 !important; animation: none !important; } }

/* services slider */
.ts-slider .swiper-container { overflow: hidden; position: relative; }
.ts-slider .swiper-wrapper { display: flex; transition-property: transform; transition-timing-function: ease; box-sizing: content-box; }
.ts-slider .swiper-slide, .ts-slider .swiper-wrapper > * { flex-shrink: 0; position: relative; }
.ts-slider .swiper-button-prev, .ts-slider .swiper-button-next { cursor: pointer; }

/* phone menu */
.mobile_nav .et_mobile_menu { display: none; }
.mobile_nav.opened .et_mobile_menu { display: block !important; max-height: 80vh; overflow-y: auto; z-index: 99999; }
.et_mobile_menu li ul { display: none !important; }
.et_mobile_menu li.ts-sub-open > ul { display: block !important; padding-left: 15px !important; }
.et_mobile_menu li.ts-has-sub > a::after { content: ' \25BE'; }
.et-menu li:hover > ul, .et-menu li:focus-within > ul { opacity: 1 !important; visibility: visible !important; }


/* contact form */
.ts-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ts-form-msg { margin-top: 12px; font-size: 15px; line-height: 1.5; }
.ts-form-msg:empty { display: none; }
.ts-form-msg.is-ok { color: #1c7c43; background: #e9f8ef; border-left: 4px solid #1c9d4f; padding: 10px 14px; }
.ts-form-msg.is-error { color: #b32d2e; background: #fdf0f0; border-left: 4px solid #d63638; padding: 10px 14px; }
.ts-field-msg { color: #c02b0a; font-size: 13px; margin-top: 4px; }
.nfield_error input, .nfield_error textarea { border-color: #c02b0a !important; }
.nform_wrapper button.nform_button[disabled] { opacity: .6; cursor: wait; }
.g-recaptcha { min-height: 78px; }
@media (max-width: 360px) { .g-recaptcha { transform: scale(.88); transform-origin: 0 0; } }
html, body { overflow-x: hidden; }
html { scroll-behavior: smooth; }
/* 404 page */
.ts-404 { text-align: center; padding: 160px 20px 110px; background: #f5f7fb; }
.ts-404 h1 { font-size: 110px; line-height: 1; color: #1d337a; font-weight: 700; padding: 0; }
.ts-404 h2 { font-size: 30px; color: #e9a23b; margin: 14px 0 10px; }
.ts-404 p { font-size: 16px; color: #555; }
.ts-404-btn { display: inline-block; margin: 18px 6px 0; padding: 12px 28px; background: #1d337a; color: #fff !important; border-radius: 4px; font-weight: 600; }
.ts-404-alt { background: #e9a23b; }
@media (max-width: 767px) { .ts-404 { padding: 110px 16px 70px; } .ts-404 h1 { font-size: 80px; } }

/* toggles + tabs (were opened by the theme script) */
.ts_pb_toggle_close .ts_pb_toggle_content { display: none; }
.ts_pb_toggle_open .ts_pb_toggle_content { display: block; }
.ts_pb_toggle_title { cursor: pointer; }
.ts_pb_all_tabs > .ts_pb_tab { display: none; }
.ts_pb_all_tabs > .ts_pb_tab.ts_pb_active_content { display: block; opacity: 1; }

/* section background videos (were sized by a script) */
.ts_pb_section_video_bg { position: absolute !important; inset: 0; overflow: hidden; display: block !important; width: 100%; height: 100%; }
.ts_pb_section_video_bg video { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }

/* slide-in menu button */
#slide-in-open { cursor: pointer; }
/* fixed backgrounds do not work on phones -> normal scroll there */
@media (max-width: 980px) { #bg-img { background-attachment: scroll !important; } }
/* floating social bar: inline icons inside the round badges */
.sticky-icon a i { display: inline-flex !important; align-items: center; justify-content: center; vertical-align: middle; }
.sticky-icon a i .si { width: 16px; height: 16px; }

/* home banner (was a slider plugin) */
.tc-hero { position: relative; width: 100vw; margin-left: calc(50% - 50vw); aspect-ratio: 1920 / 550; overflow: hidden; background: #ddd; }
.tc-slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.06); transition: opacity 1s ease, transform 1.4s ease; }
.tc-slide.is-active { opacity: 1; transform: none; z-index: 1; }
.tc-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tc-nav { position: absolute; top: 50%; z-index: 3; width: 50px; height: 50px; margin-top: -25px; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.tc-nav::before { content: ''; position: absolute; left: 17px; top: 17px; width: 14px; height: 14px; border: solid #fff; border-width: 0 0 3px 3px; transform: rotate(45deg); filter: drop-shadow(0 0 2px rgba(0,0,0,.5)); }
.tc-prev { left: 30px; } .tc-next { right: 30px; } .tc-next::before { left: 12px; transform: rotate(-135deg); }
.tc-nav:hover { background: rgba(0,0,0,.25); }
@media (max-width: 767px) { .tc-hero { aspect-ratio: 16 / 9; } .tc-prev { left: 8px; } .tc-next { right: 8px; } }

/* sticky menu bar */
.ts-stuck { position: fixed !important; top: 0; left: 0; right: 0; z-index: 9999; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.et_pb_section_parallax_sticky { display: none; }

/* ===== Valli Engineering ===== */
.ve-hero { aspect-ratio: 1920 / 660; }
.ve-logo-text { display: inline-block; font: 700 22px/1.1 'Poppins', Arial, sans-serif; color: #e2161b; letter-spacing: .3px; white-space: nowrap; }
.ve-logo-text b { color: #222; } .ve-logo-text small { display: block; font-size: 11px; font-weight: 600; color: #555; letter-spacing: 3px; text-transform: uppercase; }
/* product filters */
.ve-filters { font-size: 14px; }
.ve-filter { margin-bottom: 18px; }
.ve-filter-title { color: #e2161b; font-weight: 700; font-size: 15px; margin-bottom: 8px; }
.ve-filter ul { list-style: none; margin: 0; padding: 0; }
.ve-filter li { margin: 0 0 4px; padding: 0; }
.ve-filter label { display: flex; align-items: center; gap: 7px; cursor: pointer; color: #444; line-height: 1.4; }
.ve-filter input { margin: 0; width: 15px; height: 15px; accent-color: #e2161b; flex: 0 0 auto; }
.ve-filter-reset { margin-top: 6px; background: #e2161b; color: #fff; border: 0; padding: 8px 16px; border-radius: 3px; cursor: pointer; font-size: 13px; }
.ve-empty { padding: 30px 0; color: #666; text-align: center; }
/* product gallery thumbs */
.woocommerce-product-gallery { opacity: 1 !important; }
.flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 12px 0 0; padding: 0; }
.flex-control-thumbs li { width: 70px; margin: 0; padding: 0; } .flex-control-thumbs img { cursor: pointer; opacity: .6; border: 2px solid transparent; }
.flex-control-thumbs img.flex-active { opacity: 1; border-color: #e2161b; }
.w-tabs-section-content { display: none; } .w-tabs-section.active .w-tabs-section-content { display: block; }
/* clients carousel */
.ve-owl { position: relative; padding: 0 40px; }
.ve-owl .owl-nav div { position: absolute; top: 50%; width: 36px; height: 36px; margin-top: -18px; border-radius: 50%; cursor: pointer; background: rgba(0,0,0,.06); }
.ve-owl .owl-prev { left: 0; } .ve-owl .owl-next { right: 0; }
.ve-owl .owl-nav div::before { content: ''; position: absolute; top: 12px; left: 14px; width: 10px; height: 10px; border: solid #333; border-width: 0 0 2px 2px; transform: rotate(45deg); }
.ve-owl .owl-next::before { left: 10px; transform: rotate(-135deg); }
/* phone menu */
@media (max-width: 1024px) {
  .w-nav.type_mobile .w-nav-control { display: block !important; }
  .w-nav.type_mobile .w-nav-list.level_1 { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; z-index: 999; box-shadow: 0 6px 16px rgba(0,0,0,.15); max-height: 75vh; overflow-y: auto; }
  .w-nav.type_mobile.ve-open .w-nav-list.level_1 { display: block !important; }
  .w-nav.type_mobile .w-nav-list.level_1 > li { display: block; width: 100%; }
  .w-nav.type_mobile .w-nav-anchor { color: #222 !important; padding: 12px 20px !important; display: block; }
  .w-nav.type_mobile .w-nav-list.level_2 { display: none !important; position: static !important; opacity: 1 !important; visibility: visible !important; box-shadow: none !important; padding-left: 15px; }
  .w-nav.type_mobile li.opened > .w-nav-list.level_2 { display: block !important; }
}
.w-nav.type_desktop .menu-item:hover > .w-nav-list.level_2 { display: block; opacity: 1 !important; visibility: visible !important; }
.w-toplink { opacity: 0; pointer-events: none; transition: opacity .3s; } .w-toplink.active { opacity: 1; pointer-events: auto; }
.footer_reveal .l-footer { position: static !important; } .footer_reveal .l-canvas { margin-bottom: 0 !important; }
@media (max-width: 899px) {
  .l-subheader.at_top { display: none !important; }
  .l-subheader.at_middle .l-subheader-cell.at_right { display: flex; align-items: center; justify-content: flex-end; }
  .l-subheader.at_middle { position: relative; }
  .w-nav.type_mobile .w-nav-list.level_1 { top: 100%; }
}
.w-nav .w-nav-close { display: none !important; }
.ultv-video__outer-wrap:before{display:none}
