
/* =========================================================
   ВАЛЬЦ: светлый перелив только на CTA-кнопках
   Версия безопасная: структура сайта не меняется.
   ========================================================= */

a.btn,
button.btn,
.btn:not(.kp-modal__close):not(.modal-close):not(.close),
.darkbtn,
.detail-btn,
.kp-modal__submit,
input[type="submit"].btn,
input[type="button"].btn,
.product-actions a.btn,
.product-actions button.btn,
.page-actions a.btn,
.page-actions button.btn,
.hero-actions a.btn,
.hero-actions button.btn,
.video-actions a.btn,
.video-actions button.btn,
.equip-head-actions a.btn,
.equip-head-actions button.btn {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

/* Светлая волна */
a.btn::before,
button.btn::before,
.btn:not(.kp-modal__close):not(.modal-close):not(.close)::before,
.darkbtn::before,
.detail-btn::before,
.kp-modal__submit::before,
input[type="submit"].btn::before,
input[type="button"].btn::before,
.product-actions a.btn::before,
.product-actions button.btn::before,
.page-actions a.btn::before,
.page-actions button.btn::before,
.hero-actions a.btn::before,
.hero-actions button.btn::before,
.video-actions a.btn::before,
.video-actions button.btn::before,
.equip-head-actions a.btn::before,
.equip-head-actions button.btn::before {
  content: "";
  position: absolute;
  top: -55%;
  left: -90%;
  width: 55%;
  height: 210%;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(
    115deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.14) 32%,
    rgba(255,255,255,.72) 50%,
    rgba(255,255,255,.18) 68%,
    rgba(255,255,255,0) 100%
  );
  transform: skewX(-22deg);
  animation: valtzButtonLightWave 2.9s ease-in-out infinite;
}

/* Содержимое кнопки поверх волны */
a.btn > *,
button.btn > *,
.btn > *,
.darkbtn > *,
.detail-btn > *,
.kp-modal__submit > * {
  position: relative;
  z-index: 1;
}

/* Для кнопок без внутренних span */
a.btn,
button.btn,
.btn,
.darkbtn,
.detail-btn,
.kp-modal__submit {
  z-index: 0;
}

/* Мягкая подсветка кнопок */
a.btn,
button.btn,
.btn:not(.kp-modal__close):not(.modal-close):not(.close),
.darkbtn,
.detail-btn,
.kp-modal__submit {
  box-shadow:
    0 12px 28px rgba(31,145,207,.16),
    inset 0 1px 0 rgba(255,255,255,.18) !important;
}

/* На наведении перелив чуть быстрее */
a.btn:hover::before,
button.btn:hover::before,
.btn:hover::before,
.darkbtn:hover::before,
.detail-btn:hover::before,
.kp-modal__submit:hover::before {
  animation-duration: 1.75s;
}

/* Не трогаем служебные элементы */
.kp-modal__close::before,
.modal-close::before,
.close::before,
button[aria-label="Закрыть"]::before,
button[aria-label="close"]::before,
.filter-btn::before,
.catalog-filter::before,
.pill::before,
.more::before,
.slider-btn::before,
.slider-dot::before,
.swiper-button-next::before,
.swiper-button-prev::before {
  display: none !important;
}

/* Не трогаем фото, карточки, слайдеры и видео */
.hero-visual::before,
.photo::before,
.product-photo::before,
.cat-photo::before,
.zig-photo-slider::before,
.tg-video-embed::before,
.video-frame::before,
.video-placeholder::before,
.machine-stage::before,
img::before,
picture::before {
  display: none !important;
}

@keyframes valtzButtonLightWave {
  0% {
    left: -90%;
    opacity: 0;
  }
  18% {
    opacity: 1;
  }
  55% {
    opacity: .95;
  }
  100% {
    left: 135%;
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  a.btn::before,
  button.btn::before,
  .btn::before,
  .darkbtn::before,
  .detail-btn::before,
  .kp-modal__submit::before {
    animation: none !important;
    opacity: 0 !important;
  }
}
