/* 3dcm.ru - единое место стилей интерфейса поверх темы Ликвиума.
   Грузится на всех страницах после стилей темы (mu-plugins/3dcm-ui.php).
   Правило здесь меняет элемент на всём сайте сразу. Цвета - только переменные темы (--c-*), размеры на компьютере - vw (px макета / 19,2).
   Правила и реестр кнопок - ДИЗАЙН-СИСТЕМА_3dcm.md в проекте владельца. */

/* ===== Кнопки: правки расхождений с гайдом (UI-ГАЙД_3dcm.md, раздел 7, 25.10.2026) =====
   Ликвиуму уходит задача перенести это в исходник; когда перенесут - соответствующий блок отсюда убираем. */

/* П.3. Мессенджер: один вид везде - как cart_btn--dark: значок слева, поля 10 / 24 при 1920 (.520833vw 1.25vw), просвет 12 (.625vw);
   на телефоне 6 / 24, просвет 8. Раньше в блоках услуг просвет был 24, в «Обсудим ваш проект» на телефоне поля 16, в окне сервиса «Покупателям» поля 6 / 16. */
.discuss .discuss_social,
.sd_request .sd_request_contacts .sd_request_socials .def_btn,
.buyers_service_contacts .buyers_service_socials .def_btn {
    flex-direction: row;
    gap: .625vw;
    padding: .520833vw 1.25vw;
}
.discuss .discuss_social .c_icon,
.sd_request .sd_request_contacts .sd_request_socials .def_btn .c_icon,
.buyers_service_contacts .buyers_service_socials .def_btn .c_icon {
    order: -1;
}
@media (max-width: 768px) {
    .discuss .discuss_social,
    .sd_request .sd_request_contacts .sd_request_socials .def_btn,
    .buyers_service_contacts .buyers_service_socials .def_btn {
        gap: 8px;
        padding: 6px 24px;
    }
}

/* П.5. Контурная кнопка: рамка 1 px не прибавляется к высоте (было 48 вместо 46 и 34 вместо 32).
   Рамка рисуется внутренней тенью, при наведении и нажатии уходит так же, как раньше уходил цвет рамки. */
.def_btn--outline {
    border: 0;
    box-shadow: inset 0 0 0 1px var(--c-lines);
    transition: color .35s cubic-bezier(.19, 1, .22, 1), box-shadow .35s cubic-bezier(.19, 1, .22, 1);
}
.def_btn--outline.is-active,
.def_btn--outline:active {
    box-shadow: inset 0 0 0 1px transparent;
}
@media (hover: hover) {
    .def_btn--outline:hover {
        box-shadow: inset 0 0 0 1px transparent;
    }
}

/* П.6. Видео-кнопка: подложка 12 % (было 8 %), при наведении 24 % (раньше не менялась). Размытие темы остаётся. */
.icon_btn--play {
    background: rgba(255, 255, 255, .12);
}
@media (hover: hover) {
    .icon_btn--play:hover {
        background: rgba(255, 255, 255, .24);
    }
}

/* Фокус с клавиатуры (Tab). Тема гасит его везде (a:focus{outline:none}), без него с клавиатуры не видно, где находишься.
   Синее кольцо с белым зазором видно и на светлом, и на тёмном фоне. Мышью не появляется - только :focus-visible. */
a:focus-visible,
button:focus-visible,
.def_btn:focus-visible,
.cart_btn:focus-visible,
.link_btn:focus-visible,
.icon_btn:focus-visible,
.icon_btn--outline:focus-visible,
.icon_btn--nav:focus-visible,
.icon_btn--play:focus-visible,
.tabs .tabs_btn:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--c-accent, #0011fc);
    outline-offset: 2px;
    box-shadow: 0 0 0 2px var(--c-white, #fff);
}

/* ===== Раздел «Бренды» (mu-plugins/3dcm-brands.php, 25.10.2026) =====
   Список /manufacturer/ и страница бренда собраны из готовых блоков темы: шапка каталога, карточка товара,
   блоки описания товара, «Обсудим ваш проект». Здесь только поправки под бренды. Шкала: 100 = 5.20833vw, 40 = 2.08333vw,
   24 = 1.25vw, 16 = .833333vw, 12 = .625vw; телефон - px. */

/* Список: направления через 100 px */
.brands .brands_group + .brands_group {
    margin-top: 5.20833vw;
}

/* Карточка бренда = карточка товара: логотип на белом по центру, вся карточка - ссылка (заголовок растянут на карточку) */
.brand_card {
    position: relative;
}
.brand_card .product_card_title::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}
.brand_card .product_card_title {
    min-height: 0;
}
.brand_card .product_card_slide {
    height: 100%;
}
.brand_card .product_card_slide img {
    width: 70%;
    height: 70%;
    object-fit: contain;
}
.brand_card .brand_card_name {
    font: 500 max(2.5vw, 24px)/90% var(--font-aeroport);
    letter-spacing: -.02em;
    color: var(--c-main-1, #13161e);
}
.brand_card .brand_card_lead {
    color: var(--c-text-second, #737882);
    margin: 0;
    flex-grow: 1;
}
.brand_card .product_card_body {
    flex-grow: 1;
}
.brand_card .product_card_foot {
    align-items: center;
}
@media (hover: hover) {
    .brand_card:hover .brand_card_more {
        text-decoration: underline;
        text-underline-offset: .2em;
    }
}

/* Отступы страницы бренда по шкале гайда (владелец 25.10.2026, «все расстояния по текстам как в гайде»): от края светлой панели до «О компании» 60 вместо 100 каталога,
 * между текстом «О компании» и плашкой логотипа 100 вместо 175 у descr_top карточки товара. Замеры - 30_РАЗРАБОТКА/ОТСТУПЫ_страница_бренда_2026-10-25.md */
.brand_single .catalog_wrap {
    padding-top: 3.125vw;
}
/* Колонка описания - как у карточки товара (.catalog_detail .product_tabs в catalog.min.css: width 100%, max-width 79.6875vw, по центру), владелец 26.10.2026: текст, цифры и карточки с фото вровень по краям */
.brand_page .descr {
    width: 100%;
    max-width: 79.6875vw;
    margin-left: auto;
    margin-right: auto;
}
.catalog_detail.brand_page .descr .descr_top {
    column-gap: 5.20833vw;
    row-gap: 3.125vw;
}
/* «О компании» по примеру владельца 26.10.2026 (ПРИМЕРЫ_ДИЗАЙНА/brend-fastform-po-referensu): заголовок во всю ширину сетки descr_top,
 * под ним счётчики 2 x 2 слева и плашка логотипа справа на их высоту; текст ниже в две колонки (строка до 80 знаков) */
.brand_page .descr .brand_about > .dots_ttl {
    grid-column: 1;
    grid-row: 1;
}
.brand_page .descr .brand_about > .about_stats {
    grid-column: 1;
    grid-row: 2;
}
/* правая колонка (владелец 26.10.2026): плашка логотипа 16:9 вровень с верхом заголовка, под ней через 40 вводная фраза мельче шапочной, под ней через 24 кнопка в каталог бренда; колонка на два ряда - заголовок и счётчики слева */
.brand_page .descr .brand_about > .brand_about_side {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.08333vw;
}
.brand_page .brand_about_side .brand_logo_box {
    align-self: stretch;
}
.brand_page .brand_about_side .brand_about_intro {
    margin: 0 0 -.833333vw;
}
.brand_page .descr .brand_about_text {
    columns: 2;
    column-gap: 3.125vw;
}
.brand_page .descr .brand_about_text p {
    margin: 0 0 1.25vw;
    break-inside: avoid;
}
.brand_page .descr .brand_about_text p:last-child {
    margin-bottom: 0;
}
/* Отдельная страница бренда: логотип - окошко справа от «О компании» (правая колонка descr_top), белое, скругление как у descr_card; блоки описания товара в столбец */
.brand_page .brand_logo_box {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: start;
    aspect-ratio: 16/9;
    padding: 2.08333vw;
    border-radius: var(--radius-xl);
    background: var(--c-white, #fff);
}
.brand_page .brand_logo_box img {
    display: block;
    /* логотип на 30 % меньше прежних 70 %: 70 x 0,7 = 49 %, плашка та же (владелец 25.10.2026) */
    width: 49%;
    height: 49%;
    object-fit: contain;
}
.brand_page .descr .descr_cards {
    display: flex;
    flex-direction: column;
    gap: 2.08333vw;
}
/* Картинка карточки с фото - тот же стандарт, что в описании товара (владелец 24.10.2026, стили в описании HBD 150D): окно 4:3 шириной 25vw по центру столбца, белый фон, рамка #D5D7E0, фото на весь кадр */
.brand_page .descr .descr_cards .descr_card .descr_card_media {
    background: var(--c-white, #fff);
    border: 1px solid #d5d7e0;
}
.brand_page .descr .descr_cards .descr_card .descr_card_media img {
    top: 0;
    bottom: 0;
    height: 100%;
    object-fit: cover;
}
@media (min-width: 769px) {
    /* колонка фото = окно + отступ справа 3.125vw, как у текста слева (иначе окно шире колонки темы 27.0833vw и вылезает за край блока) */
    .brand_page .descr .descr_cards .descr_card {
        grid-template-columns: minmax(0, 1fr) 33.6806vw;
    }
    .brand_page .descr .descr_cards .descr_card .descr_card_media {
        /* у страницы бренда крупнее товарных 25vw (владелец 26.10.2026): высота окна = высота блока 29.1667vw минус отступы текста 2 x 3.125vw = 22.9167vw, то есть вровень с границами текста; 4:3 даёт ширину 30.5556vw */
        width: 30.5556vw;
        aspect-ratio: 4/3;
        height: auto;
        align-self: center;
        justify-self: start;
        margin: 0;
    }
}
.brand_page .descr .descr_card_ttl,
.brand_page .descr .descr_card_txt,
.brand_page .descr .descr_text .h1 {
    margin: 0;
}

/* Заголовок «О компании <Бренд>» = заголовок с полем точек «Работаем на ключевых ЭТП РФ» (блок dots_ttl темы, анимация точек - chunks/dots) */
.brand_page .descr .descr_text .dots_ttl .h1 {
    margin: 0;
}

/* Цифры бренда = блок счётчиков главной (index: .about_main .about_stats в main.min.css, на странице каталога он не грузится) - правила один в один */
.brand_page .about_stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: stretch;
    gap: 3.125vw 2.08333vw;
}
.brand_page .about_stats .about_stat {
    display: flex;
    flex-direction: column;
    gap: 2.08333vw;
    padding-bottom: 1.25vw;
    border-bottom: 1px solid #d5d7e0;
}
.brand_page .about_stats .about_stat .about_stat_body {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: .833333vw;
    max-width: 13.0208vw;
}
.brand_page .about_stats .about_stat .about_stat_body .about_stat_text {
    max-width: 15.1042vw;
}
.brand_page .about_stats .about_stat_title,
.brand_page .about_stats .about_stat_text {
    margin: 0;
}

/* «Популярные модели <Бренд>» = «Похожее оборудование» карточки товара (detail_more > more_products) на сером фоне страницы, без белой панели; стрелки показываем и без кнопки в шапке, кнопка в каталог бренда - под слайдером через 40 */
.brand_page .brand_more {
    margin: 5.20833vw 0 0;
    padding: 0;
    background: transparent;
    overflow: visible;
}
@media (max-width: 768px) {
    .brand_page .brand_more {
        margin-top: 40px;
    }
}
.brand_page .brand_more .cd_head .cd_head_aside {
    display: flex;
}
/* слайдер - catalog_grid ради правила темы для карточки каталога (без серой рамки); сетка темы в одну колонку, иначе слайдер сожмётся до четверти. Вид карточки здесь не задаём (владелец 26.10.2026) */
.brand_page .brand_more .more_products_slider {
    --cols: 1;
}
.brand_page .brand_more .brand_more_foot {
    display: flex;
    margin-top: calc(2.08333vw - 5.20833vw);
}
@media (max-width: 768px) {
    .brand_single .catalog_wrap {
        padding-top: 32px;
    }
    .brand_page .descr {
        max-width: 100%;
    }
    .brands .brands_group + .brands_group {
        margin-top: 40px;
    }
    .brand_page .brand_logo_box {
        aspect-ratio: auto;
        height: 160px;
        padding: 24px;
    }
    .catalog_detail.brand_page .descr .descr_top {
        row-gap: 32px;
    }
    .brand_page .descr .brand_about > .dots_ttl,
    .brand_page .descr .brand_about > .brand_about_side,
    .brand_page .descr .brand_about > .about_stats {
        grid-column: auto;
        grid-row: auto;
    }
    .brand_page .descr .brand_about > .brand_about_side {
        gap: 20px;
    }
    .brand_page .brand_about_side .brand_about_intro {
        margin-bottom: -4px;
    }
    .brand_page .descr .brand_about_text {
        columns: 1;
    }
    .brand_page .descr .brand_about_text p {
        margin-bottom: 16px;
    }
    .brand_page .descr .descr_cards {
        gap: 20px;
        margin: 0;
        padding: 0;
        max-width: none;
    }
    .brand_page .descr .descr_card {
        width: auto;
        height: auto;
    }
    /* фото вровень с текстом карточки, как в descr_card карточки товара на телефоне */
    .brand_page .descr .descr_card .descr_card_media {
        aspect-ratio: 4/3;
        margin: 0;
    }
    .brand_page .about_stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 16px;
    }
    .brand_page .about_stats .about_stat {
        gap: 20px;
        padding-bottom: 20px;
    }
    .brand_page .about_stats .about_stat .about_stat_body {
        gap: 8px;
        max-width: 100%;
    }
    .brand_page .about_stats .about_stat .about_stat_body .about_stat_text {
        max-width: none;
    }
    .brand_page .brand_more {
        margin-top: 40px;
    }
    .brand_page .brand_more .cd_head .cd_head_aside {
        display: none;
    }
    /* телефон: кнопка под слайдером через 20, строка дилера через 40 (шкала телефона) */
    .brand_page .brand_more .brand_more_foot {
        margin-top: -28px;
    }
    .brand_page .brand_more .brand_dealer {
        margin-top: -8px;
    }
}
@media (max-width: 500px) {
    .brand_page .about_stats {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ===== Подвал: колонка «Каталог» (3dcm-ui.php, dcm_ui_footer_catalog, 25.10.2026) =====
   Колонок меню 6 вместо 5, все одной ширины (1fr). Контакты, юр. ссылки и «Дизайн сделан в» остаются под «Сервис», как в вёрстке Ликвиума;
   контактам - две колонки (как юр. ссылкам), иначе телефон переносится на две строки.
   До 768 px подвал - аккордеон в одну колонку, там правка не нужна. */
@media (min-width:769px){
  .footer_inner{grid-template-columns:16.1458vw repeat(6,1fr)}
  .footer_inner .footer_nav{grid-template-columns:repeat(6,1fr)}
  .footer_inner .footer_contacts{grid-area:2/6/auto/-1}
  .footer_inner .footer_bottom_main{grid-area:3/1/auto/6}
  .footer_inner .footer_legal_links,.footer_inner .footer_designer{grid-area:3/6/auto/-1}
}

/* Знак ® после названия Метод построения (без ёлочек) - одно правило на весь сайт (владелец 25.10.2026); ставит фильтр dcm_ui_reg_mark в 3dcm-ui.php и поле dcm_cta */
sup.dcm_reg {
    font-size: 0.7em;
    font-style: normal;
    font-weight: 400;
    line-height: 0;
    vertical-align: super;
}

/* ===== Главная, лента логотипов: кружок бренда со страницей бренда - ссылка (3dcm-brands.php, dcm_brand_marquee, 25.10.2026) =====
   При наведении рамка светлеет с 12 до 60 % белого (как приглушённые ссылки подвала), логотип нового бренда - белым, как в вёрстке. */
.marquee .marquee_item--link{transition:border-color .35s cubic-bezier(.19,1,.22,1)}
@media (hover:hover){.marquee .marquee_item--link:hover{border-color:rgba(255,255,255,.6)}}
.marquee .marquee_item .marquee_logo{filter:brightness(0) invert(1)}

/* ===== Лого «Метод построения» везде (шапка, липкая шапка, шапка телефона, подвал): при наведении по «восьмёрке» бежит красная линия,
   как на заставке, уводишь мышку - уходит назад (3dcm-ui.php, dcm_ui_logo_trace, владелец 25.10.2026). Цвет - как у .preloader_progress
   заставки темы, толщина - из файла лого. Обёртка span.dcm_logo - блок по размеру картинки, классы темы на img работают как прежде. */
.dcm_logo{position:relative;display:block;line-height:0}
.dcm_logo_trace{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.dcm_logo_trace path{fill:none;stroke:#D70012;stroke-linecap:round;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset .9s ease-in-out}
@media (hover:hover){a:hover .dcm_logo_trace path{stroke-dashoffset:0}}
a:focus-visible .dcm_logo_trace path{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.dcm_logo_trace path{transition:none}}

/* Комплектация: примечание под списком (строка dcm_kit «* текст»), 27.10.2026 */
.catalog_detail .kit_note{font:200 max(.833333vw, 12px)/160% var(--font-mono);letter-spacing:-.01em;color:rgba(19,22,30,.6);margin:1.71875vw 0 0;max-width:31.25vw}
@media (max-width:768px){.catalog_detail .kit_note{font-size:12px;margin-top:22px;max-width:100%}}

/* Снят с производства: плашка страницы товара как «Нет в наличии» у карточки каталога (.product_card_status--out темы), 3dcm-ui.php, dcm_ui_discontinued_main, 28.10.2026 */
.catalog_detail .product_status--out{color:var(--c-text-second, #737882);background:#edeef3}
.catalog_detail .product_status--out:before{background:var(--c-text-second, #737882)}

/* Цвет пластика: кружок цвета в фильтре каталога между галочкой и названием (data-f="f_cvet"), значение - мета dcm_color свойства pa_cvet, 3dcm-color.php, 28.10.2026 */
.dcm_swatch{flex:none;box-sizing:border-box;width:.833333vw;height:.833333vw;border-radius:50%;border:1px solid #d5d7e0;background:var(--dcm-sw, #fff)}
.dcm_swatch--multi{background:conic-gradient(#c12e1f, #f4ee2a, #00ae42, #0a2989, #5e43b7, #c12e1f)}
.dcm_swatch--clear{background:repeating-conic-gradient(#d5d7e0 0 25%, #fff 0 50%) 0 0/.416667vw .416667vw}
@media (max-width:768px){.dcm_swatch{width:16px;height:16px}.dcm_swatch--clear{background-size:8px 8px}}

/* Каталог без перезагрузки: пока фильтр или сортировка подгружают товары, сетка бледнеет (engine/catalog.js темы, класс is-loading на section.catalog), 28.10.2026 */
.catalog[data-dcm-catalog] .catalog_results{transition:opacity .2s}
.catalog[data-dcm-catalog].is-loading .catalog_results{opacity:.5;pointer-events:none}
