/* ============================================================================
   Печать — единственный слой, отвечающий за бумагу. Подключён с media="print",
   поэтому на экране не участвует ни в одном расчёте.

   ПОЧЕМУ ОН ВООБЩЕ ПОЯВИЛСЯ. Печать карточки была отдельным серверным маршрутом:
   свой шаблон `print_info.php` → wkhtmltopdf → файл на диске. Шаблон был копией
   страницы товара, снятой когда-то давно, и с тех пор жил своей жизнью: тянул
   фото с чужого домена, печатал на бумаге кнопку «В корзину», счётчик «по 10шт»
   и пустые заголовки «Документация»/«Сертификаты», а характеристики показывал
   до-разделами. Копия разметки всегда отстаёт от оригинала — вопрос лишь в том,
   когда это заметят. Здесь макет ОДИН: печатается сама страница, а этот файл
   лишь говорит, чего на листе быть не должно.

   Правило чтения: сначала общие правила (годятся любой странице сайта), ниже —
   раздел «страница товара». Ctrl+P на любом экране кабинета теперь тоже опрятен.

   Про `!important`: в проекте он под запретом — здесь исключение и вот почему.
   Bootstrap прячет неактивные вкладки инлайн-состоянием классов (`.fade`
   без `.show`), а часть блоков носит `style="display:none"` из разметки. Перебить
   их из внешнего файла иначе нечем, а спорить с ними на бумаге не с чем: слой
   действует только при печати и живёт в одном файле.
   ========================================================================== */

@page {
    size: A4 portrait;
    margin: 12mm 12mm 14mm;
}

/* --------------------------------------------------------------------------
   Общее для всех страниц
   -------------------------------------------------------------------------- */

body,
#body_main {
    background: #fff;
    color: #000;
    font-size: 10.5pt;
    line-height: 1.35;
}

/* Обвязка сайта на бумаге бессмысленна: по ней нельзя кликнуть. */
header.header,
footer.footer,
#breadcrumbs,
.p_title_hide,
.alert,
.offcanvas,
.offcanvas-backdrop,
.modal,
.modal-backdrop {
    display: none !important;
}

main#main {
    display: block;
}

/* Контейнер Bootstrap ограничен по ширине под экран; лист уже ограничен полями. */
.container,
.container-lg,
.container-xl {
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Ссылка на бумаге — обычный текст: подчёркивание и синий цвет ничего не дают,
   а URL печатать не нужно (он в колонтитуле браузера). */
a,
a:visited {
    color: #000 !important;
    text-decoration: none !important;
}

/* Заголовок не должен оставаться один в конце листа. */
h1, h2, h3, h4, h5 {
    break-after: avoid;
    page-break-after: avoid;
}

img {
    max-width: 100% !important;
}

/* Показывается ТОЛЬКО на бумаге: шапка и подпись листа (в разметке они скрыты). */
.print-only {
    display: block !important;
}

.print-sheet-head {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    border-bottom: 2px solid #ed1c24;
    padding-bottom: 6px;
    margin-bottom: 14px;
}

.print-sheet-head img {
    height: 34px;
    width: auto;
}

.print-sheet-head .print-sheet-meta {
    font-size: 9pt;
    color: #45484f;
    text-align: right;
}

.print-sheet-foot {
    border-top: 1px solid #d3d6db;
    margin-top: 16px;
    padding-top: 6px;
    font-size: 8.5pt;
    color: #45484f;
}

/* --------------------------------------------------------------------------
   Страница товара
   -------------------------------------------------------------------------- */

/* Всё, что на бумаге не нажимается. Печать самой кнопки печати — отдельный сорт
   бессмыслицы, поэтому иконки действий уходят целиком. */
.prod-info .bt_card,
.prod-info .calc_card,
.prod-info .calc_card_out,
.prod-info .cnt_item,
.prod-info .fav_item_div,
.prod-info .prod-gallery-thumbs,
.prod-info .btn,
.prod-info input[type="button"] {
    display: none !important;
}

/* Фото: на листе оно иллюстрация, а не главный герой — иначе характеристики
   уезжают на вторую страницу целиком. */
.prod-info .prod-gallery-main {
    border: 1px solid #d3d6db;
    max-height: 70mm;
}

.prod-info .prod-gallery-main .prod_img {
    max-height: 68mm;
    object-fit: contain;
}

/* Шапка карточки: фото слева, название и цена справа — как на экране, но в две
   колонки фиксированно (сетка Bootstrap на печати теряет брейкпоинты). */
.prod-info > .row > .col-lg-6:first-child {
    width: 38% !important;
    float: left;
}

.prod-info > .row > .col-lg-6 + .col-lg-6,
.prod-info > .row > .col-xl-7 {
    width: 60% !important;
    float: left;
    padding-left: 12px;
}

.prod-info h2 {
    font-size: 16pt;
    margin: 0 0 4px;
}

.prod-info .p_cat_name {
    font-size: 9pt;
    color: #45484f;
}

.prod-info .p_price {
    margin-top: 4px;
}

.prod-info .p_price .m_price {
    font-size: 14pt;
    font-weight: 700;
}

/* Описание на бумаге печатается ЦЕЛИКОМ: обрезка в четыре строки существует ради
   экрана, где за ней стоит кнопка «Показать полностью». На листе кнопки нет —
   обрезанный абзац стал бы просто потерянным текстом без всякого признака. */
.prod-desc__body {
    display: block !important;
    -webkit-line-clamp: unset !important;
    overflow: visible !important;
    font-size: 10pt;
}

.prod-desc__more {
    display: none !important;
}

/* Переключатели вкладок скрываем, а СОДЕРЖИМОЕ раскрываем: на бумаге нельзя
   переключиться, поэтому «Характеристики» и документы печатаются подряд
   (описание живёт выше вкладок, в шапке карточки).
   «Документация» и «Сертификаты» — превью файлов, которые на листе не читаются
   и не открываются: им место на экране. */
.prod-sub-info,
#pills-tab {
    display: none !important;
}

#pills-tabContent .tab-pane {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Документы на бумаге. Раньше раздел скрывался целиком — и правильно, пока в нём
   лежали одни превью: картинку с листа не открыть и не прочитать. Теперь у файлов
   есть имя, объём и число страниц, а распечатку карточки отдают клиенту как выписку
   по товару — и «паспорт на 12 страниц, сертификат ЕАЭС» там значит комплектность.
   Печатаем перечень; сами листы по-прежнему остаются экрану. */
#pills-docs,
#pills-sert {
    display: block !important;
}

.pfiles-sheets,
.pfiles-rule,
.file-card__icon,
.file-dl {
    display: none !important;
}

.file-card,
.file-card--print {
    display: block !important;
    max-width: none !important;
    margin: 0 0 4px;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    break-inside: avoid;
}

.file-card__name {
    font-size: 10pt;
    color: #0D1017 !important;
}

.file-card__name::before {
    content: "• ";
}

.file-card__meta {
    font-size: 9pt;
    color: #45484F !important;
}

.file-card__body {
    display: block !important;
}

.pfiles-none {
    font-size: 10pt;
    color: #45484F !important;
}

.item_tab_info h4 {
    font-size: 12pt;
    margin: 10px 0 6px;
}

/* Раздел паспорта не отрывается от своей первой строки, строка не рвётся пополам. */
.chr_group {
    break-after: avoid;
    page-break-after: avoid;
    break-inside: avoid;
    font-size: 10pt;
}

.datashet {
    break-inside: avoid;
    page-break-inside: avoid;
}

.chr_ico {
    display: none !important;   /* иконка — навигация глазом по экрану, на листе шум */
}

/* Две колонки характеристик на лист: столько же, сколько на широком экране. */
.col_ch.col-6 {
    width: 50% !important;
    float: left;
}

.col_ch.col-12 {
    width: 100% !important;
    float: none;
}
