@page {
    margin: 15mm;
}

@media print {
    /*
     * Формы поиска.
     * .search-page намеренно не используем:
     * этим классом может быть обёрнута вся страница поиска.
     */
    form[action*="/search/"],
    form:has(input[type="search"]),
    form:has(input[name="q"]),
    form:has(input[name="QUERY"]),
    .search-form,
    .bx-searchtitle,
    .bx-searchtitle-form {
        display: none !important;
    }

    /*
     * Элементы, предназначенные только для печати.
     */
    .print-only {
        display: block !important;
    }

    /*
     * Печатная шапка.
     */
    .print-header {
        display: grid !important;
        grid-template-columns: 42mm minmax(0, 1fr) !important;
        align-items: start !important;
        column-gap: 8mm !important;

        margin: 0 0 7mm !important;
        padding: 2mm 0 4mm !important;

        border-bottom: 1px solid #aaa !important;
    }

    .print-header-logo {
        display: block !important;
        align-self: start !important;

        width: 42mm !important;
        max-width: 42mm !important;
        height: auto !important;

        margin: 0 !important;
    }

    .print-header-contacts {
        display: grid !important;
        grid-template-rows: auto auto !important;
        align-self: start !important;
        row-gap: 2.5mm !important;

        width: 100% !important;
        min-width: 0 !important;
    }

    .print-phone-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        align-items: start !important;
        column-gap: 4mm !important;

        width: 100% !important;
    }

    .print-phone {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;

        min-width: 0 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }

    .print-phone strong {
        display: block !important;

        font-size: 8.5pt !important;
        font-weight: 600 !important;
        line-height: 1.15 !important;

        color: #000 !important;
    }

    .print-phone span {
        display: block !important;

        margin-top: 1mm !important;

        font-size: 5.5pt !important;
        line-height: 1.15 !important;
        text-transform: uppercase !important;

        color: #666 !important;
    }

    .print-header-address {
        width: 100% !important;
        margin: 0 !important;

        font-size: 6.5pt !important;
        line-height: 1.2 !important;
        text-align: center !important;

        color: #444 !important;
    }

    /*
     * Изображение на главной.
     */
    .print-home-image {
        float: none !important;

        width: 100% !important;
        margin: 0 0 8mm !important;
        padding: 0 !important;

        text-align: center !important;
    }

    .print-home-image img {
        display: inline-block !important;

        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
    }

    /*
     * Отступ после хлебных крошек.
     */
    .breadcrumb-nav {
        margin-bottom: 4mm !important;
        break-after: avoid;
        page-break-after: avoid;
    }

    /*
     * Общие элементы сайта, не предназначенные для печати.
     */
    .no-print,
    #bx-panel,
    .layer1 {
        display: none !important;
    }

    /*
     * Интерактивная Яндекс.Карта.
     */
    .bx-yandex-view-layout,
    .bx-yandex-view-map,
    .bx-yandex-map {
        display: none !important;
    }

    /*
     * SmartCaptcha и блок «Политика обработки данных».
     */
    .smart-captcha,
    [class*="smartcaptcha" i],
    [id*="smartcaptcha" i],
    [class*="smart-captcha" i],
    [id*="smart-captcha" i] {
        display: none !important;
        visibility: hidden !important;
    }

    /*
     * Кнопка и окно онлайн-чата Bitrix24.
     */
    .b24-widget-button-wrapper,
    .b24-widget-button-popup,
    .b24-widget-button-inner-container,
    [class*="b24-widget-button"],
    [class*="bx-livechat"],
    [id*="bx-livechat"] {
        display: none !important;
        visibility: hidden !important;
    }

    /*
     * Базовая печатная компоновка.
     */
    html,
    body {
        width: auto !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #fff !important;
        color: #000 !important;
    }

    #main,
    #content,
    .main-col,
    .print-main,
    .print-content {
        display: block !important;
        float: none !important;

        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .print-content {
        text-align: left !important;
    }

    /*
     * Изображения.
     */
    img {
        max-width: 100% !important;
        height: auto !important;
    }

    img,
    figure {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /*
     * Таблицы.
     *
     * Всю таблицу или строку не запрещаем разрывать глобально:
     * на старой табличной вёрстке это создаёт пустые страницы.
     */
    table {
        height: auto !important;
        max-width: 100% !important;

        break-inside: auto !important;
        page-break-inside: auto !important;
    }

    tbody,
    tr,
    td {
        height: auto !important;

        break-inside: auto;
        page-break-inside: auto;
    }

    thead {
        display: table-header-group;
    }

    /*
     * Типографика и переносы.
     */
    h1,
    h2,
    h3,
    h4 {
        break-after: avoid;
        page-break-after: avoid;
    }

    p,
    li {
        orphans: 3;
        widows: 3;
    }

    a,
    a:visited {
        color: inherit !important;
        text-decoration: none !important;
    }

    /*
     * Интерактивные элементы не печатаем.
     */
    video,
    audio,
    iframe {
        display: none !important;
    }
}
