/*
 * Обводка фокуса: на кнопках и ссылках — только при навигации с клавиатуры.
 *
 * Шаблон сайта (Bootstrap-слой) рисует рамку и тень на `:focus`, а он срабатывает и от
 * обычного клика мышью — после каждого нажатия кнопка оставалась в чёрной рамке (просьба
 * владельца 01.10.2026 убрать это). `:focus-visible` браузер ставит только там, где подсветка
 * реально нужна: Tab, стрелки, скринридер.
 *
 * ⚠️ Текстовые поля не трогаем вовсе: у них обводка при фокусе нужна всегда — человек должен
 * видеть, куда он печатает.
 */

a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
summary:focus:not(:focus-visible),
label:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible),
input[type="button"]:focus:not(:focus-visible),
input[type="submit"]:focus:not(:focus-visible),
input[type="reset"]:focus:not(:focus-visible),
input[type="checkbox"]:focus:not(:focus-visible),
input[type="radio"]:focus:not(:focus-visible),
.btn:focus:not(:focus-visible),
.zn-btn:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

/* с клавиатуры подсветка остаётся — иначе по сайту нельзя ходить табом */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
.btn:focus-visible,
.zn-btn:focus-visible {
    outline: 2px solid #dc3545;
    outline-offset: 2px;
}

/*
 * Текстовые поля: обводка при ЛЮБОМ фокусе — и мышью, и с клавиатуры (просьба владельца).
 * Нужен явный стиль: шаблон сайта гасит дефолтную рамку браузера, и поле никак не
 * показывало, что курсор в нём.
 */
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="email"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
input:not([type]):focus,
textarea:focus,
select:focus {
    /* !important: стили компонентов (корзина, карточка) гасят outline у полей и подключаются
       позже этого файла — без него правило проигрывает по порядку */
    outline: 2px solid #1a1d21 !important;
    outline-offset: 0;
}
