/* Общие утилиты сайта Eccentrio. Без фреймворков.
   Стили компонентов — инлайн в шаблонах (как в референсах docs/handoff/design).
   Здесь: hover-классы, видимость по брейкпойнтам, хедер, FAQ-аккордеон, лид-форма. */

/* ---- Hover-классы из docs/PORTING.md.
   !important нужен, потому что базовые цвета заданы инлайн в разметке, а инлайн сильнее класса. */
.hv-surface:hover{background:#f4f7fb!important}
.hv-navy:hover{color:#1a2a94!important}
.hv-wa:hover{background:#1ebe5a!important}
.hv-primary:hover{background:#142173!important}
.hv-border-navy:hover{border-color:#1a2a94!important}
.hv-opacity:hover{opacity:1!important}
.hv-lift{transition:transform 200ms ease,box-shadow 200ms ease}
.hv-lift:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(15,23,42,.08)}
.hv-text-dark:hover{color:#0f172a!important}
.hv-light:hover{color:#f8fafc!important}
/* Кнопка лид-формы в референсе: hover #14207a */
.hv-primary-dark:hover{background:#14207a!important}

/* ---- Видимость. Брейкпойнт хедера 1180px (isMobile = w < 1180), телефон в хедере — от 1360px. */
[hidden]{display:none!important}
@media (max-width:1179.98px){.only-desktop{display:none!important}}
@media (min-width:1180px){.only-mobile{display:none!important}}
@media (max-width:1359.98px){.only-wide{display:none!important}}

/* ---- Хедер */
.site-header-spacer{height:72px}
@media (max-width:1179.98px){.site-header-spacer{height:64px}}
.site-progress{position:absolute;top:0;inset-inline-start:0;height:2px;width:0;background:#3b9be8;z-index:51;transition:width 80ms linear}
/* Подпись плавающей WhatsApp-кнопки появляется при наведении (floatHover в референсе) */
.wa-float-label{display:none}
.wa-float:hover .wa-float-label{display:inline}
.site-menu-open{overflow:hidden}

/* ---- FAQ-аккордеон: data-faq > data-faq-item > data-faq-btn + data-faq-body.
   Один открытый за раз, 200ms ease. Открытый элемент получает .is-open. */
[data-faq-body]{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows 200ms ease}
[data-faq-body] > *{min-height:0;overflow:hidden}
/* свёрнутый ответ: убираем вертикальные паддинги прямого ребёнка, иначе остаётся полоса высотой в padding */
[data-faq-item]:not(.is-open) [data-faq-body] > *{padding-top:0!important;padding-bottom:0!important}
/* мобильная строка шапки на узких экранах (<400px): прячем глобус и ужимаем пилюли, чтобы не было переполнения */
@media (max-width:399.98px){[data-site-header] .only-mobile > div > svg{display:none}[data-site-header] .only-mobile > div > a{padding:0 7px!important}[data-site-header] .only-mobile{gap:6px!important;padding:0 12px!important}}
[data-faq-item].is-open > [data-faq-body],[data-faq-item].is-open [data-faq-body]{grid-template-rows:1fr}
[data-faq-btn]{cursor:pointer}
[data-faq-item]:not(.is-open) [data-faq-when-open]{display:none!important}
[data-faq-item].is-open [data-faq-when-closed]{display:none!important}
[data-faq-icon]{transition:transform 200ms ease}
[data-faq-item].is-open [data-faq-icon]{transform:rotate(180deg)}

/* ---- Лид-форма: ошибка валидации */
[data-lead] .is-invalid{border-color:#dc2626!important}

/* ---- Доступность */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* ---- Футер: ссылки #cbd5e1 → #6bb7f0 при наведении (style-hover в SiteFooter) */
.hv-light-blue:hover{color:#6bb7f0!important}
