/* ============================================================================
   Эффорт Групп — ЕДИНЫЙ ЯЗЫК ДВИЖЕНИЯ.  Этап 1, 12.09.2026
   ----------------------------------------------------------------------------
   Подключать ПОСЛЕДНИМ стилем в шапке — после всех наших слоёв:
     главная:     motion.css, hero.css, geo.css, home.css, home-seo.css,
                  /include/eg-home-trust-static-20260910.css
     внутренние:  iflow-stock-v1.css, partner-offer-v1.css, motion.css,
                  palette.css, header.css, fonts.css, effort-design.css
   Откат: снять одну строку подключения. Файл ничего не удаляет и не переверстывает.

   ЗАЧЕМ. Замер живого раздела /catalog/videonablyudenie/ 12.09.2026:
     узлов в DOM                                        7 216
     узлов с ЖИВЫМ переходом (длительность ≠ 0)         4 676
     из них `transition: all 0.3s ease-out`             4 564
   Все 4 564 приходят от ОДНОГО правила темы
   (assets/css/style.css, 21 селектор: a, .btn, button, span, p, i, input,
   select, textarea, li, img, svg path, *::after, *::before, .transition-3, h1…h6).
   «all» означает «готовь переход для любого свойства» — включая ширину,
   высоту и отступы, то есть перекладку страницы.

   ЧТО ДЕЛАЕМ. Сужаем список свойств до тех, что тема реально меняет по
   наведению, и приводим время с кривой к нашим. Ни один видимый эффект не
   исчезает: свойства, которыми тема двигает геометрию (27 объявлений),
   возвращены точечно в §3.
   ========================================================================== */

/* --- 1. Токены движения. Один набор вместо девяти. ------------------------ */
:root {
  --eg-fast: 160ms;
  --eg-base: 220ms;
  --eg-slow: 380ms;
  --eg-ease: cubic-bezier(.2, .7, .2, 1);
  --eg-step: 60ms;

  /* Кривые соседних слоёв сводим к нашей, сами файлы не трогаем.
     home.css объявляет --eh-ease: cubic-bezier(.22,.75,.2,1) */
  --eh-ease: cubic-bezier(.2, .7, .2, 1);
}

/* --- 2. Главное правило: 4 564 узла перестают ждать перехода «всего» ------ */
a,
.btn,
button,
span,
p,
i,
input,
select,
textarea,
li,
img,
svg path,
*::after,
*::before,
.transition-3,
h1, h2, h3, h4, h5, h6 {
  transition-property: color, background-color, background-image, border-color,
                       box-shadow, opacity, transform, fill, stroke, visibility;
  transition-duration: var(--eg-base);
  transition-timing-function: var(--eg-ease);
  transition-delay: 0s;
}

/* --- 3. Точечные возвраты: то, что тема двигает геометрией и это ВИДНО ---- */

/* Черта под активной вкладкой карточки товара — растёт по ширине. */
.product__details-des-tab .nav-tabs .nav-item .nav-link::after,
.product__details-des-tab .nav-tabs .nav-item .nav-link:hover::after {
  transition-property: width, background-color, opacity;
  transition-duration: var(--eg-base);
  transition-timing-function: var(--eg-ease);
}

/* Выпадающие меню и мини-корзина: тема показывает их сдвигом top + visibility. */
.main-menu ul li ul.submenu,
.main-menu ul li ul.megamenu-1,
.main-menu ul li .mega-menu,
.cat__menu ul li > ul.submenu,
.block-cart > .cart .cart__mini,
.hover-effect::after,
.hover-effect::before {
  transition-property: opacity, visibility, top, left, right, bottom, transform;
  transition-duration: var(--eg-base);
  transition-timing-function: var(--eg-ease);
}

/* Отступ ссылки футера при наведении и ширина кнопки-каталога. */
.footer__link ul li a,
.cat-toggle-btn-1 {
  transition-property: color, background-color, border-color, opacity,
                       transform, padding-left, min-width;
  transition-duration: var(--eg-base);
  transition-timing-function: var(--eg-ease);
}

/* --- 4. Кнопки: одна кривая и одно время вместо трёх ---------------------- */
/* effort-design.css даёт .eg-action время 0.18s и кривую cubic-bezier(.22,1,.36,1) */
.eg-action,
.eg-page .eg-action,
.eg-page .eg-action:not(:disabled):not([aria-disabled="true"]) {
  transition-property: color, background-color, border-color, box-shadow, transform;
  transition-duration: var(--eg-base);
  transition-timing-function: var(--eg-ease);
}

/* --- 5. Нажатие: подтверждаем единое значение ----------------------------- */
/* :active scale(.98) уже в бою (8 правил) — здесь только выравниваем время. */
.btn:active,
.eg-action:active,
.stock-btn__link:active,
.cart-btn:active,
.mainPageSections__items a:active {
  transition-duration: var(--eg-fast);
  transition-timing-function: var(--eg-ease);
}

/* --- 6. Уважение к настройке «меньше движения» ---------------------------- */
/* Контент остаётся ВИДИМЫМ, гасим только переходы и проигрывание. */
@media (prefers-reduced-motion: reduce) {
  a, .btn, button, span, p, i, input, select, textarea, li, img, svg path,
  *::after, *::before, .transition-3, h1, h2, h3, h4, h5, h6,
  .eg-action, .footer__link ul li a, .cat-toggle-btn-1,
  .product__details-des-tab .nav-tabs .nav-item .nav-link::after,
  .main-menu ul li ul.submenu, .main-menu ul li ul.megamenu-1,
  .main-menu ul li .mega-menu, .cat__menu ul li > ul.submenu,
  .block-cart > .cart .cart__mini {
    transition-duration: 1ms !important;
    transition-delay: 0s !important;
  }
}
