/**
 * ArgonShop — функциональные стили интерфейса.
 *
 * @package ArgonShop
 * @author  Иван Войтков (Ivan Voitkov)
 * @version 1.0.0
 *
 * ============================================================
 * НАЗНАЧЕНИЕ
 * ============================================================
 *
 * Этот файл содержит МИНИМАЛЬНЫЙ набор CSS, необходимый для
 * корректной работы JavaScript-модулей плагина. Здесь нет
 * оформления — только функциональные состояния элементов.
 *
 * Всё оформление (цвета, размеры, шрифты, отступы, сетка,
 * расположение элементов) полностью находится в теме и может
 * быть заменено на любой другой дизайн.
 *
 * ============================================================
 * ПРИНЦИП РАЗДЕЛЕНИЯ
 * ============================================================
 *
 * CSS магазина в теме.
 * JS магазина в плагине.
 * Функциональный CSS (этот файл) — в плагине.
 *
 * «Функциональным» считается CSS, который:
 *   1. Управляется JavaScript-модулями плагина.
 *   2. Определяет начальное состояние элементов, которые JS
 *      показывает или скрывает в процессе работы.
 *   3. Не относится к визуальному оформлению и не может быть
 *      заменён в теме без слома поведения интерфейса.
 *
 * ============================================================
 * ЧТО НЕ НУЖНО ДОБАВЛЯТЬ В ЭТОТ ФАЙЛ
 * ============================================================
 *
 * - Цвета, размеры, шрифты, отступы, тени.
 * - Медиазапросы для адаптива.
 * - Сетки и flexbox-раскладки.
 * - Стили hover, focus, active.
 * - Псевдоэлементы декоративного назначения.
 *
 * Всё это — в теме.
 *
 * ============================================================
 * ВАЖНО ДЛЯ ТЕМЫ
 * ============================================================
 *
 * Ошибки магазина (.shoppingCartError, .submitError и др.)
 * скрыты по умолчанию и показываются JavaScript-модулями при
 * сбоях AJAX-запросов. Тема обязана определить для них
 * визуальные стили (рамка, цвет, отступы), иначе пользователь
 * увидит только текст без подсветки.
 *
 * ============================================================
 * JS-КОНТРАКТ
 * ============================================================
 *
 * Если тема переверстывает корзину, ЛК или другой блок
 * магазина, она должна сохранить классы и атрибуты, указанные
 * в шапке соответствующего JS-модуля (блок «DOM-ЭЛЕМЕНТЫ»).
 *
 * Полный список селекторов приведён в шапках файлов:
 *
 *   assets/interface/js/modules/cart.js
 *   assets/interface/js/modules/product.js
 *   assets/interface/js/modules/card-product.js
 *   assets/interface/js/modules/cabinet.js
 *   assets/interface/js/modules/search.js
 *   assets/interface/js/modules/sort.js
 *   assets/interface/js/modules/control-panels.js
 *   assets/interface/js/modules/request.js
 *   assets/interface/js/modules/catalog-page.js
 *   assets/interface/js/modules/menu-catalog.js
 *   assets/interface/js/modules/mobile-menu.js
 *   assets/interface/js/modules/consent.js
 *
 * ============================================================
 */

/* ============================================================
   БЛОКИ-ТАБЫ
   ============================================================
 *
 * Контейнеры, переключаемые через панели (модуль control-panels.js).
 * По умолчанию все скрыты. JS показывает только активный блок.
 *
 * Если тема использует собственные селекторы и переопределяет
 * display через медиазапросы с !important (например, показывая
 * дочерние категории каталога на десктопе независимо от табов),
 * это по-прежнему работает: !important в CSS темы имеет приоритет
 * над inline-стилем, который ставит JS.
 */

.blockItemPage {
    display: none;
}

/* ============================================================
   РЕГИСТРАЦИЯ В КОРЗИНЕ
   ============================================================
 *
 * Блок с полем логина скрыт по умолчанию и показывается
 * при отметке чекбокса «Зарегистрировать вас?» (модуль cart.js).
 */

.cartLogin {
    display: none;
}

/* ============================================================
   СООБЩЕНИЯ ОБ ОШИБКАХ
   ============================================================
 *
 * Показываются JavaScript-модулями при сбоях AJAX-запросов или
 * ошибках валидации. До срабатывания JS должны быть невидимы.
 *
 * Визуальные стили (рамка, цвет, отступы) — в теме.
 */

.shoppingCartError,
.submitError,
.errorDeleteProducts,
.as-error-sort,
#addProductError,
.card-addProductError {
    display: none;
}

/* ============================================================
   РЕЗУЛЬТАТЫ AJAX-ПОИСКА
   ============================================================
 *
 * Выпадающий блок с результатами поиска (модуль search.js).
 * Показывается при вводе текста длиной 2+ символа.
 */

.searchAjaxResult {
    display: none;
}

/* ============================================================
   КНОПКА «СМОТРЕТЬ ВСЕ» В БЛОКЕ ПОПУЛЯРНЫХ ЗАПРОСОВ
   ============================================================
 *
 * Показывается модулем request.js только если содержимое
 * блока обрезано по высоте.
 */

.view-allCards-request {
    display: none;
}

/* ============================================================
   ПОЛЯ ЮРИДИЧЕСКОГО ЛИЦА В ЛК
   ============================================================
 *
 * Таблица с полями юрлица скрыта и показывается только при
 * отметке чекбокса «Юрлицо» (модуль cabinet.js).
 */

#accountLegalBlock {
    display: none;
}

/* ============================================================
   ФУНКЦИОНАЛЬНЫЕ КЛАССЫ-СОСТОЯНИЯ
   ============================================================
 *
 * Классы, которые JavaScript добавляет или снимает с элементов
 * во время работы.
 */

/**
 * Развёрнутое состояние блока популярных запросов (модуль request.js).
 *
 * При клике по кнопке «Смотреть все» блок .block-cards-request
 * получает класс .is-expanded, ограничение max-height снимается.
 */
.block-cards-request.is-expanded {
    max-height: none;
}