/* ============================================================
   Доработки темы integrator (custom.css)
   Подключается в funcs/init.php как mytheme-custom-css.
   ============================================================ */

/* --- Кликабельные заголовки колонок подвала --- */
.site-footer__col h4 a {
    color: inherit;
    text-decoration: none;
    transition: opacity .15s ease;
}

.site-footer__col h4 a:hover,
.site-footer__col h4 a:focus-visible {
    text-decoration: underline;
    opacity: .85;
}

/* --- Кнопка «Скопировать реквизиты» --- */
[data-copy-requisites] {
    min-width: 210px;
    transition: color .15s ease, border-color .15s ease;
}

[data-copy-requisites].is-copied {
    color: var(--success, #1a7f37);
    border-color: var(--success, #1a7f37);
}

/* --- Плашка про cookies --- */
.cookie-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1080;
    background: var(--ink, #0d2647);
    color: #fff;
    box-shadow: 0 -6px 24px rgba(0, 0, 0, .18);
    transform: translateY(110%);
    transition: transform .3s ease;
}

.cookie-bar.is-visible {
    transform: translateY(0);
}

.cookie-bar__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.cookie-bar__text {
    margin: 0;
    flex: 1 1 320px;
    font-size: 14px;
    line-height: 1.5;
    color: rgba(255, 255, 255, .92);
}

.cookie-bar__text a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.cookie-bar__ok {
    flex: 0 0 auto;
    min-width: 130px;
}

@media (max-width: 575px) {
    .cookie-bar__inner {
        padding: 12px 14px;
        gap: 10px;
    }

    .cookie-bar__text {
        font-size: 13px;
    }

    .cookie-bar__ok {
        width: 100%;
    }
}

@media print {
    .cookie-bar {
        display: none !important;
    }
}

/* --- Выгрузка PDF через печать --- */
#print-root {
    display: none;
}

@media print {
    /* печатаем только собранный документ */
    body.print-mode > *:not(#print-root) {
        display: none !important;
    }

    body.print-mode #print-root {
        display: block !important;
        padding: 0;
        color: #000;
        font-size: 11pt;
    }

    @page {
        margin: 14mm 12mm;
    }

    .print-head__top {
        display: flex;
        align-items: center;
        gap: 14px;
        padding-bottom: 10px;
        border-bottom: 2px solid #0d2647;
    }

    .print-head__logo {
        height: 46px;
        width: auto;
    }

    .print-head__org {
        flex: 1;
    }

    .print-head__name {
        font-size: 15pt;
        font-weight: 700;
        color: #0d2647;
    }

    .print-head__tag {
        font-size: 9pt;
        color: #444;
    }

    .print-head__contacts {
        text-align: right;
        font-size: 9pt;
        line-height: 1.5;
    }

    .print-head__title {
        margin: 14px 0 2px;
        font-size: 16pt;
        color: #0d2647;
    }

    .print-head__date {
        margin-bottom: 12px;
        font-size: 9pt;
        color: #666;
    }

    .print-foot {
        margin-top: 14px;
        padding-top: 8px;
        border-top: 1px solid #bbb;
        font-size: 8.5pt;
        color: #555;
    }

    /* таблицы прайса в печати */
    #print-root table {
        width: 100%;
        border-collapse: collapse;
        page-break-inside: auto;
    }

    #print-root th,
    #print-root td {
        padding: 4px 6px;
        border-bottom: 1px solid #ddd;
        font-size: 9.5pt;
        text-align: left;
    }

    #print-root th {
        background: #f2f4f7 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #print-root tr,
    #print-root .sub-block,
    #print-root .requisites__row {
        page-break-inside: avoid;
    }

    #print-root .cat-row {
        page-break-inside: auto;
        margin-bottom: 10px;
    }

    #print-root .cat-row__title {
        font-size: 12pt;
        color: #0d2647;
    }

    #print-root a {
        color: #000;
        text-decoration: none;
    }

    /* реквизиты в печати — две колонки меткa/значение */
    #print-root .requisites__row {
        display: flex;
        gap: 10px;
        padding: 3px 0;
        border-bottom: 1px dotted #ccc;
    }

    #print-root .requisites__lbl {
        min-width: 190px;
        color: #555;
    }

    #print-root .requisites__val {
        font-weight: 600;
    }
}

/* --- Текстовые страницы (политика, соглашения и т.п.) ---
   Типографика приведена к стилю сайта, чтобы документ не выбивался. */
.page-doc {
    max-width: 860px;
}

.page-doc__head {
    margin-bottom: 26px;
}

.page-doc__body {
    color: var(--ink-soft);
    font-size: var(--fs-15);
    line-height: 1.75;
}

.page-doc__body > *:first-child {
    margin-top: 0;
}

.page-doc__body h2 {
    margin: 32px 0 12px;
    font-size: var(--fs-22);
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
}

.page-doc__body h3 {
    margin: 24px 0 10px;
    font-size: var(--fs-17);
    font-weight: 600;
    color: var(--ink);
}

.page-doc__body h4 {
    margin: 20px 0 8px;
    font-size: var(--fs-15);
    font-weight: 600;
    color: var(--ink);
}

.page-doc__body p {
    margin: 0 0 14px;
}

.page-doc__body ul,
.page-doc__body ol {
    margin: 0 0 16px;
    padding-left: 22px;
}

.page-doc__body li {
    margin-bottom: 7px;
}

.page-doc__body a {
    color: var(--brand-mid);
    text-decoration: underline;
    text-underline-offset: 2px;
    word-break: break-word;
}

.page-doc__body a:hover {
    color: var(--accent-red);
}

.page-doc__body strong,
.page-doc__body b {
    color: var(--ink);
    font-weight: 600;
}

.page-doc__body table {
    width: 100%;
    margin: 0 0 18px;
    border-collapse: collapse;
    font-size: var(--fs-14);
}

.page-doc__body th,
.page-doc__body td {
    padding: 8px 10px;
    border: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.page-doc__body th {
    background: var(--surface-alt);
    color: var(--ink);
    font-weight: 600;
}

.page-doc__body img {
    max-width: 100%;
    height: auto;
    border-radius: var(--r-sm);
}

.page-doc__body hr {
    margin: 26px 0;
    border: 0;
    border-top: 1px solid var(--line);
}

/* --- Плашка «Цены актуальны на …» на странице прайса ---
   Повторяет вид плашки, которая была на главной. Дата ставится
   автоматически в шаблоне, вручную обновлять ничего не нужно. */
.price-updated {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    padding: 6px 14px;
    border: 1px solid #fff3;
    border-radius: var(--r-pill);
    background: #ffffff1f;
    color: #fff;
    font-size: var(--fs-12);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.price-updated__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4ade80;
}

/* --- Прилипающая панель при прокрутке (только десктоп) ---
   Логотип и телефон живут в верхнем блоке шапки, который уезжает вверх,
   поэтому в панели лежат их компактные копии — показываем при залипании. */
.site-nav__logo,
.site-nav__phone {
    display: none;
}

@media (min-width: 761px) {
    /* компенсируем высоту панели, чтобы контент не прыгнул вверх */
    .site-header.is-stuck {
        padding-bottom: var(--stuck-h, 52px);
    }

    .site-header.is-stuck .site-nav {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1030;
        background: var(--bg);
        border-top-color: transparent;
        box-shadow: 0 4px 18px #0d264726;
        animation: integrator-stick-in .22s ease-out;
    }

    .site-header.is-stuck .site-nav__logo {
        display: inline-flex;
        flex: 0 0 auto;
        align-items: center;
        margin-right: 16px;
        text-decoration: none;
    }

    .site-header.is-stuck .site-nav__logo img {
        width: 32px;
        height: 32px;
        object-fit: contain;
    }

    .site-header.is-stuck .site-nav__phone {
        display: inline-flex;
        align-items: center;
        margin-right: 14px;
        font-size: var(--fs-14);
        font-weight: 600;
        color: var(--brand);
        white-space: nowrap;
        text-decoration: none;
    }

    .site-header.is-stuck .site-nav__phone:hover {
        color: var(--accent-red);
    }

    .site-header.is-stuck .site-nav__cta {
        display: flex;
        align-items: center;
    }

    @keyframes integrator-stick-in {
        from { transform: translateY(-100%); }
        to   { transform: translateY(0); }
    }
}

/* на главной логотип в панели не кликабелен */
a.site-nav__logo:not([href]) {
    cursor: default;
}

@media print {
    .site-header.is-stuck .site-nav {
        position: static;
        box-shadow: none;
    }
}

/* --- Тёмная форма: читаемый текст на тёмном фоне ---
   Все правила scoped на .form--dark, светлые формы не затрагиваются. */
.form--dark .form-control,
.form--dark textarea.form-control,
.form--dark .form-select {
    color: var(--bg);
    background-color: transparent;
}

.form--dark .form-control::placeholder {
    color: #ffffff8c;
}

.form--dark .form-label {
    color: #ffffffa6;
}

.form--dark .form-outline .form-control:focus ~ .form-label {
    color: var(--bg);
}

/* рамки полей MDB (form-outline рисует их тремя блоками) */
.form--dark .form-outline .form-notch-leading,
.form--dark .form-outline .form-notch-middle,
.form--dark .form-outline .form-notch-trailing {
    border-color: #ffffff59;
}

.form--dark .form-outline .form-control:focus ~ .form-notch .form-notch-leading,
.form--dark .form-outline .form-control:focus ~ .form-notch .form-notch-middle,
.form--dark .form-outline .form-control:focus ~ .form-notch .form-notch-trailing {
    border-color: var(--bg);
}

/* автозаполнение браузера иначе возвращает тёмный текст */
.form--dark .form-control:-webkit-autofill,
.form--dark .form-control:-webkit-autofill:hover,
.form--dark .form-control:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--bg);
    caret-color: var(--bg);
    transition: background-color 5000s ease-in-out 0s;
}

/* выпадающий список читаем в системном меню */
.form--dark .form-select option {
    color: var(--ink);
    background: var(--bg);
}

/* --- Логотип в подвале как ссылка --- */
a.site-footer__logo {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

/* на главной логотипы не кликабельны — убираем «палец» */
a.site-header__logo:not([href]),
a.site-footer__logo:not([href]) {
    cursor: default;
}

/* --- Валидация форм --- */
.form-control.is-invalid,
.form-control.is-invalid:focus {
    border-color: var(--accent-red, #d32f2f) !important;
    box-shadow: 0 0 0 1px var(--accent-red, #d32f2f) inset;
}

.form-check-input.is-invalid {
    border-color: var(--accent-red, #d32f2f) !important;
    outline: 2px solid rgba(211, 47, 47, .25);
}

.field-error {
    margin-top: 4px;
    font-size: 13px;
    line-height: 1.35;
    color: var(--accent-red, #d32f2f);
}

.form--dark .field-error,
.form-white .field-error {
    color: #ff9b9b;
}

/* ссылка на политику в чекбоксе согласия */
.form-check-label a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.form-check-label a:hover {
    opacity: .8;
}

/* --- Живой поиск по таблицам --- */
.search-input {
    display: flex;
    align-items: center;
}

.live-search-count {
    margin-left: auto;
    padding-left: 10px;
    font-size: 13px;
    white-space: nowrap;
    opacity: .75;
}

.live-search-empty {
    padding: 18px 4px;
    font-size: 15px;
}

/* --- Статья блога --- */
.page-doc__meta {
    margin-top: 10px;
    font-size: var(--fs-13);
    color: var(--muted);
}

.page-doc__cover {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    border-radius: var(--r-sm);
    margin-bottom: 22px;
}

/* --- Карта сайта --- */
.sitemap-tree__count {
    margin: 0;
    font-size: var(--fs-13);
    color: var(--muted);
}

.sitemap-tree {
    columns: 2;
    column-gap: 48px;
}

@media (max-width: 900px) {
    .sitemap-tree { columns: 1; }
}

.sitemap-tree__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sitemap-tree__list--d0 > .sitemap-tree__item {
    break-inside: avoid;
    margin-bottom: 22px;
    padding-bottom: 4px;
}

.sitemap-tree__list--d0 > .sitemap-tree__item > .sitemap-tree__link {
    display: inline-block;
    margin-bottom: 8px;
    font-size: var(--fs-17);
    font-weight: 600;
    color: var(--ink);
}

.sitemap-tree__list--d1,
.sitemap-tree__list--d2,
.sitemap-tree__list--d3 {
    margin-left: 14px;
    padding-left: 12px;
    border-left: 1px solid var(--line);
}

.sitemap-tree__item {
    margin-bottom: 5px;
}

.sitemap-tree__link {
    font-size: var(--fs-14);
    color: var(--brand-mid);
    text-decoration: none;
    line-height: 1.5;
}

.sitemap-tree__link:hover {
    color: var(--accent-red);
    text-decoration: underline;
}

.sitemap-tree__link--current {
    color: var(--muted);
    cursor: default;
}

/* --- Заголовок «Контакты» в подвале ---
   Для .site-footer__col h4 в теме правило есть, а для контактов не было:
   заголовок рисовался дефолтным стилем и съезжал вниз относительно соседей. */
.site-footer__contacts h4 {
    margin: 0 0 16px;
    font-size: var(--fs-13);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ink);
}

/* --- Форма отклика на вакансию --- */
.vacancy-form-wrap {
    max-width: 860px;
    margin: 34px 0 8px;
}