/* Дополнения к стилям шаблона, нужные для живой логики. Стили шаблона — styles.min.css, не правим. */

[hidden] { display: none !important; }

.form-checkbox, .form-file, .form-select { position: relative; }
.form-checkbox .is-error,
.form-file .is-error,
.form-input-file .is-error,
.form-select .is-error,
.modal__btns .is-error,
form > .is-error {
    display: block;
    margin-top: 0.6rem;
    color: #A71600;
    font-size: 1.3rem;
}
/* .form-checkbox и .modal__btns — flex-строки: ошибка переносится на свою строку, а не сжимает подпись */
.form-checkbox, .modal__btns { flex-wrap: wrap; }
.form-checkbox > label { flex: 1 1 0; }
.form-checkbox .is-error, .modal__btns .is-error { flex-basis: 100%; }

/* honeypot против спама */
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

[data-copy].is-copied { color: #2E7D32; }

.product-card__no-img,
.product-hero__no-img {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 12rem;
    color: #8A9BB5;
    font-size: 1.3rem;
    text-align: center;
    background: #F2F5FA;
    border-radius: 0.8rem;
}

.catalog__empty { padding: 4rem 0; font-size: 1.6rem; }

@media print {
    .header, .footer, .mobile-menu, .chat-btn, .prev-products, .cart__controls-btns, .js-cart-remove { display: none !important; }
    /* «Распечатать заказ»: только отмеченные позиции, без элементов управления */
    .breadcrumbs, .modal, .cart__all-checkbox, .cart__item-checkbox, .cart__count-input button,
    .cart__total-btns, .cart__total-description, .cart__list > li.is-unselected { display: none !important; }
    .cart__count-input input { border: 0; background: none; }
}

/* Заглушка логотипа производителя, если файл не загружен */
.manufacture__logo-placeholder {
    display: flex; align-items: center; justify-content: center; width: 100%; min-height: 80px;
    font-weight: 700; font-size: 20px; color: #9aa4b5; text-align: center;
}

/* Индикатор загрузки (busy() в resources/js/app.js) */
@keyframes dt-spin { to { transform: rotate(360deg); } }
.btn.is-loading { position: relative; pointer-events: none; }
.btn.is-loading > * { opacity: 0.25; }
.btn.is-loading::after {
    content: ''; position: absolute; inset: 0; margin: auto; width: 1.8rem; height: 1.8rem;
    border: 0.2rem solid currentColor; border-right-color: transparent; border-radius: 50%;
    animation: dt-spin 0.7s linear infinite;
}
[data-cart-item].is-loading { opacity: 0.5; pointer-events: none; transition: opacity 0.2s; }
/* Переход по фильтрам каталога: полоса сверху, пока грузится страница */
body.is-navigating::before {
    content: ''; position: fixed; top: 0; left: 0; z-index: 10000; height: 0.3rem; width: 30%;
    background: #144F89; animation: dt-progress 1.2s ease-in-out infinite;
}
@keyframes dt-progress { 0% { left: -30%; } 100% { left: 100%; } }
@media (prefers-reduced-motion: reduce) {
    .btn.is-loading::after, body.is-navigating::before { animation-duration: 3s; }
}

/* Модалки ЛК: «История статусов» сразу после списка полей — отступ как между блоками шаблона */
.profile__list + .modal__title { margin-top: 2.4rem; }

/* Карточка товара: мобильная копия заголовка — не <h1>, но выглядит так же (стили .product-hero__title h1 шаблона) */
.product-hero__title .product-hero__h1 {
    background: linear-gradient(135deg, #5793c7 0%, #1C4354 100%);
    background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    font-size: 5.4rem; font-weight: 500; line-height: 90%; letter-spacing: -0.05em; text-align: left;
}
@media (max-width: 1280px) { .product-hero__title .product-hero__h1 { font-size: 3.6rem; letter-spacing: -0.03em; } }
@media (max-width: 991px) { .product-hero__title .product-hero__h1 { text-align: center; } }
@media (max-width: 768px) { .product-hero__title .product-hero__h1 { font-size: 2.4rem; letter-spacing: -0.03em; } }

/* Подсказки поиска: пока идёт запрос по новому вводу, старые варианты приглушены */
.is-stale { opacity: 0.45; transition: opacity 0.15s; }
