/**
 * @file nfs-text-btn-hover.css
 * @description Линия снизу при hover/focus-visible: расширяется из центра (яркий синий, как вкладки входа).
 * Утилита: class="nfs-text-btn" на <button> или <a>. Отключение: class="nfs-no-text-hover-line".
 */

/* Утилита и типовые текстовые контролы (шапка, модалка, каталог, hero) */
:is(
    button.nfs-text-btn,
    a.nfs-text-btn,
    [role="button"].nfs-text-btn,
    .auth-modal a.auth-link,
    .btn-collapse-all,
    .btn-close-sidebar,
    .filter-show-more-btn,
    .hero-filter-text-btn,
    .nfs-nav-item > a,
    .nfs-dropdown-item,
    .nfs-user-dropdown-item,
    a.nfs-mobile-nav-link:not(.nfs-mobile-nav-link--row)
):not(.nfs-no-text-hover-line) {
    position: relative;
}

/* Базовая линия */
:is(
    button.nfs-text-btn,
    a.nfs-text-btn,
    [role="button"].nfs-text-btn,
    .auth-modal a.auth-link,
    .btn-collapse-all,
    .btn-close-sidebar,
    .filter-show-more-btn,
    .hero-filter-text-btn,
    .nfs-nav-item > a,
    .nfs-dropdown-item,
    .nfs-user-dropdown-item,
    a.nfs-mobile-nav-link:not(.nfs-mobile-nav-link--row)
):not(.nfs-no-text-hover-line)::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: calc(100% - 16px);
    max-width: 100%;
    height: var(--nfs-text-hover-line-height, 3px);
    border-radius: 0;
    background: var(--nfs-text-hover-line-color, var(--nfs-blue-bright, #4f8cff));
    transform: translateX(-50%) scaleX(0);
    transform-origin: center;
    transition: transform var(--nfs-text-hover-line-duration, 0.22s) var(--nfs-text-hover-line-ease, ease);
    pointer-events: none;
}

:is(
    button.nfs-text-btn,
    a.nfs-text-btn,
    [role="button"].nfs-text-btn,
    .auth-modal a.auth-link,
    .btn-collapse-all,
    .btn-close-sidebar,
    .filter-show-more-btn,
    .hero-filter-text-btn,
    .nfs-nav-item > a,
    .nfs-dropdown-item,
    .nfs-user-dropdown-item,
    a.nfs-mobile-nav-link:not(.nfs-mobile-nav-link--row)
):not(.nfs-no-text-hover-line):hover::after,
:is(
    button.nfs-text-btn,
    a.nfs-text-btn,
    [role="button"].nfs-text-btn,
    .auth-modal a.auth-link,
    .btn-collapse-all,
    .btn-close-sidebar,
    .filter-show-more-btn,
    .hero-filter-text-btn,
    .nfs-nav-item > a,
    .nfs-dropdown-item,
    .nfs-user-dropdown-item,
    a.nfs-mobile-nav-link:not(.nfs-mobile-nav-link--row)
):not(.nfs-no-text-hover-line):focus-visible::after {
    transform: translateX(-50%) scaleX(1);
}

/* «Показать ещё» в фильтрах — без дефолтного оформления кнопки */
.filter-show-more-btn:not(.nfs-no-text-hover-line) {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.35rem;
    padding: 0.2rem 0.15rem;
    border: none;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--nfs-blue);
}

/* Ссылки в модалке: корректный контейнер для ::after */
.auth-modal a.auth-link {
    display: inline-block;
}

/* Ссылки в модалке: линия вместо классического underline */
.auth-modal a.auth-link:hover,
.auth-modal a.auth-link:focus-visible {
    text-decoration: none;
}

/* Верхнее меню: текст синий при hover */
.nfs-nav-item > a:not(.nfs-no-text-hover-line):hover,
.nfs-nav-item > a:not(.nfs-no-text-hover-line):focus-visible {
    color: var(--nfs-text-hover-text-color, var(--nfs-blue));
}

/* Hero: «ещё фильтры» — без старого underline */
.hero-filter-text-btn:not(.nfs-no-text-hover-line):hover,
.hero-filter-text-btn:not(.nfs-no-text-hover-line):focus-visible {
    text-decoration: none;
}

/* Каталог: свернуть / закрыть сайдбар — при hover текст синий */
.btn-collapse-all:not(.nfs-no-text-hover-line):hover,
.btn-collapse-all:not(.nfs-no-text-hover-line):focus-visible,
.btn-close-sidebar:not(.nfs-no-text-hover-line):hover,
.btn-close-sidebar:not(.nfs-no-text-hover-line):focus-visible {
    color: var(--nfs-text-hover-text-color, var(--nfs-blue));
}

/* Мобильные текстовые ссылки в drawer: при hover синий текст */
a.nfs-mobile-nav-link:not(.nfs-mobile-nav-link--row):not(.nfs-no-text-hover-line):hover,
a.nfs-mobile-nav-link:not(.nfs-mobile-nav-link--row):not(.nfs-no-text-hover-line):focus-visible {
    color: var(--nfs-text-hover-text-color, var(--nfs-blue));
}

.filter-show-more-btn:not(.nfs-no-text-hover-line):hover,
.filter-show-more-btn:not(.nfs-no-text-hover-line):focus-visible {
    color: var(--nfs-text-hover-text-color-strong, var(--nfs-blue-hover));
}

/* Утилита и явные текстовые кнопки */
button.nfs-text-btn:not(.nfs-no-text-hover-line):hover,
button.nfs-text-btn:not(.nfs-no-text-hover-line):focus-visible,
a.nfs-text-btn:not(.nfs-no-text-hover-line):hover,
a.nfs-text-btn:not(.nfs-no-text-hover-line):focus-visible,
[role="button"].nfs-text-btn:not(.nfs-no-text-hover-line):hover,
[role="button"].nfs-text-btn:not(.nfs-no-text-hover-line):focus-visible {
    color: var(--nfs-text-hover-text-color-strong, var(--nfs-blue-hover));
}
