/* Мобильная версия constant-expert.ru (Смит, 2026-10-15). Срабатывает только на экранах уже 1000px; десктоп не меняется. */
.burger, .m-toggle { display: none; }

@media (max-width: 999px) {
    html, body { overflow-x: hidden; }
    body { -webkit-text-size-adjust: 100%; }
    .ha_center, .wrapper, .wrapper .main, .wrapper .content, .wrapper .content.mpage,
    .wrapper aside.main_page, .wrapper aside.news_aside, .wrapper .news_page {
        width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    }
    .wrapper .content, .wrapper aside { padding-left: 12px !important; padding-right: 12px !important; margin: 0 !important; }
    .wrapper .main { display: flex; flex-direction: column; }
    /* flex-basis 650/310px из десктопа в колонке превращается в высоту — отсюда пустоты */
    .wrapper .main > * { flex: 0 0 auto !important; }
    .wrapper .main .content { order: 1; }
    .wrapper .main aside { order: 2; }

    /* шапка */
    header .top_block { flex-wrap: wrap; justify-content: center; padding: 10px 12px; gap: 8px; }
    header .top_block .logo { flex: 0 0 auto; max-width: 110px; }
    header .top_block .slogan { flex: 1 1 160px; font-size: 16px; line-height: 1.5; }
    header .top_block .slogan div { text-align: center !important; }
    header .top_block .contacts { flex: 1 1 100%; border-left: 0; padding: 6px 0 0; border-top: 2px solid #ED594C; }
    header .top_block .contacts { display: flex; flex-direction: column; align-items: center; gap: 6px; }
    header .top_block .contacts > div { font-size: 18px !important; }
    header .top_block .contacts a.button { padding: 9px 16px; font-size: 16px; }

    /* меню-бургер */
    .burger {
        display: block; width: 100%; padding: 12px 16px; border: 0; cursor: pointer;
        background: #505050; color: #fff; font-size: 17px; text-align: left;
    }
    .burger:before { content: "\2630\00a0\00a0"; }
    header nav ul.top_menu { display: none !important; flex-direction: column; width: 100% !important; }
    header nav.open ul.top_menu { display: flex !important; }
    header nav li { width: 100%; border-right: 0 !important; border-bottom: 1px solid #969696; }
    header nav a { padding: 12px 16px !important; font-size: 16px; text-align: left; }
    header nav li { position: relative; }
    header nav > ul > li > a { color: #fff !important; }
    header nav li ul, header nav li ul.submenu {
        display: none !important; position: static !important; width: 100% !important; height: auto !important;
        box-shadow: none; padding-left: 16px;
    }
    header nav li.m-open > ul { display: block !important; }
    header nav li li a { padding: 10px 16px !important; font-size: 15px; }
    .m-toggle {
        display: block;
        position: absolute; right: 0; top: 0; width: 56px; height: 46px; border: 0; border-left: 1px solid #969696;
        background: transparent; color: #fff; font-size: 18px; cursor: pointer;
    }
    li.m-open > .m-toggle { transform: rotate(180deg); border-left: 0; border-right: 1px solid #969696; }
    header nav .pre { display: none; }

    /* контент */
    h1 { font-size: 22px; margin: 16px 0; }
    h2 { font-size: 20px; }
    /* по ширине на узком экране даёт дыры между словами — только justify меняем на left, центр оставляем */
    .content [style*="justify"], .content [align="justify"]:not([style*="text-align"]),
    aside [style*="justify"], aside [align="justify"]:not([style*="text-align"]) { text-align: left !important; }
    .content img, .content iframe, .content video { max-width: 100% !important; height: auto !important; }
    .content iframe { width: 100% !important; min-height: 220px; }
    .content [style*="width"] { max-width: 100% !important; }
    .content .container { width: 100% !important; max-width: 100% !important; }
    /* фиксированные высоты из редактора (ячейки, блоки) на узком экране обрезают текст и дают наложение */
    .content table, .content tr, .content td, .content div[style*="height"], .content p[style*="height"], .content article[style*="height"] { height: auto !important; }
    .content table { width: 100% !important; max-width: 100%; table-layout: auto; }
    .content table td { min-width: 0 !important; width: auto !important; padding: 4px !important; }
    .content table h3 { font-size: 16px; }
    .content table:not(.tablemain):not(.m-stack):not(.m-links) { table-layout: fixed; }
    table.tablecontacts td { font-size: 15px !important; padding: 4px 6px !important; }
    .content article { padding: 10px 12px !important; margin: 0 0 12px !important; width: 100% !important; height: auto !important; min-height: 0 !important; }
    .content table.m-links, .content table.m-links tbody { display: block; width: 100% !important; }
    .content table.m-links tr { display: flex; align-items: center; justify-content: space-around; gap: 8px; }
    .content article > *:last-child { margin-bottom: 0 !important; }
    .content table.m-links td { display: block; flex: 1 1 0; min-width: 0; }
    .content table.m-links td:has(> svg), .content table.m-links td.m-ico { flex: 0 0 auto; width: 46px !important; overflow: hidden; }
    .content table.m-links td > svg { display: block; overflow: visible; }
    .content table.m-links td { width: auto !important; text-align: left; padding: 0 !important; }
    .content table.m-links td a { font-size: 16px !important; line-height: 1.2; word-break: normal; }
    /* таблица «картинки сверху, подписи снизу» на телефоне превращается в карточки: картинка слева, текст справа */
    .m-cards { display: flex; flex-direction: column; gap: 14px; margin: 12px 0; }
    .m-card { display: flex; gap: 12px; align-items: flex-start; }
    .m-card-img { flex: 0 0 110px; }
    .m-card-img img { width: 110px !important; height: auto !important; }
    .m-card-txt { flex: 1 1 auto; min-width: 0; text-align: left; }
    .m-card-txt h3 { font-size: 17px; margin: 0 0 6px; }
    .m-card-txt p { margin: 0; }
    .content table td { -webkit-hyphens: manual; hyphens: manual; overflow-wrap: normal; }
    .content table:not(.tablemain):not(.m-stack):not(.tablecontacts):not(.m-links) td { font-size: 12px; }
    .content table:not(.tablemain):not(.m-stack):not(.tablecontacts):not(.m-links) h3 { font-size: 14px; }
    .content table.tablemain td:nth-last-child(1) { min-width: 90px !important; }
    .content .box { font-size: 18px !important; padding: 10px 12px !important; text-align: center !important; }
    .bx-wrapper .bx-viewport { height: auto !important; }
    /* слайдеры: ленту не ограничивать по ширине, высота — по картинке */
    .content .bxslider, aside .bxslider { max-width: none !important; }
    .bx-wrapper, .bx-wrapper .bx-viewport, .mpage_slider .bx-wrapper, .mpage_slider .bx-wrapper .bx-viewport,
    .bxslider li, .bxslider li a.item, .bxslider li .item { height: auto !important; }
    /* только сама таблица-раскладка, не вложенные в неё таблицы (прайс аренды и т.п.) */
    .content table.m-stack, .content table.m-stack > tbody, .content table.m-stack > tbody > tr, .content table.m-stack > tbody > tr > td {
        display: block; width: 100% !important; margin: 0 !important;
    }
    .content table.m-stack > tbody > tr > td { padding: 4px 0 !important; }
    /* вложенные таблицы с данными: по ширине, мелкий шрифт */
    .content table.m-stack table { display: table !important; width: 100% !important; table-layout: auto !important; border-spacing: 0; }
    .content table.m-stack table td, .content table.m-stack table td * { font-size: 12px !important; line-height: 1.3 !important; }
    .content table.m-stack table td { width: auto !important; min-width: 0 !important; padding: 4px 3px !important; word-break: normal; }
    .content table.m-stack table td p { margin: 0 0 4px; }
    /* широкие таблицы-прайсы (4+ колонок): каждая строка — карточка «название + подписи к значениям» */
    .content table.m-rows, .content table.m-rows tbody, .content table.m-rows tr, .content table.m-rows td { display: block !important; width: 100% !important; height: auto !important; }
    .content table.m-rows { border: 0 !important; }
    .content table.m-rows tr.m-head { display: none !important; }
    .content table.m-rows tr { border: 1px solid #969696; margin: 0 0 10px; padding: 6px 10px; background: #fff; }
    .content table.m-rows td { border: 0 !important; padding: 2px 0 !important; text-align: left !important; font-size: 15px !important; }
    .content table.m-rows td * { font-size: 15px !important; }
    .content table.m-rows td:first-child { padding-bottom: 6px !important; border-bottom: 1px solid #ddd !important; margin-bottom: 4px; }
    .content table.m-rows td:first-child p { margin: 0 0 2px; }
    .content table.m-rows td[data-label] { display: flex !important; justify-content: space-between; gap: 12px; }
    .content table.m-rows td[data-label]::before { content: attr(data-label); color: #777; }
    .content table.m-rows td[data-label] > :empty { display: none !important; }
    table.tablemain td { font-size: 14px !important; padding: 6px 4px !important; }
    table.tablemain td:nth-last-child(1) { white-space: nowrap; font-size: 15px !important; text-align: right; }
    .mpage_slider .bx-wrapper, .clauses_list .item .left_block, .clauses_list .item .right_block,
    .clauses_list .item .left_block .mpage_slider .bx-wrapper, .news_list .item .left_block, .news_list .item .right_block {
        width: 100% !important; max-width: 100% !important;
    }
    .clauses_list .item, .news_list .item .item_wrapper { flex-direction: column; }
    /* «Наши работы»: слайдеры без белой полосы под фото */
    .clauses_list .item .left_block, .clauses_list .item .left_block .mpage_slider .bx-wrapper,
    .clauses_list .item .left_block .mpage_slider .bx-wrapper .bx-viewport,
    .clauses_list .item .left_block .mpage_slider li, .clauses_list .item .left_block .mpage_slider li .item {
        height: auto !important;
    }
    .clauses_list .item .left_block { margin: 0 0 12px !important; }
    .clauses_list .item .left_block .mpage_slider li .item img { display: block; margin: 0 auto; }
    .clauses_list .mpage_slider li .item { margin: 0 !important; }
    /* ссылки на файлы: иконка + цвет ссылки, чтобы было видно, что это ссылка */
    .clauses_list .item a.attach, .content a.attach {
        display: inline-flex !important; align-items: center; min-height: 48px; padding: 6px 0 6px 58px !important;
        background: url(https://www.constant-expert.ru/custom/custom05_05_2016_02_23/img/attach_icon.png) left center / 46px auto no-repeat !important;
        color: #ED594C !important; text-decoration: underline; font-size: 17px;
    }
    /* фотогалереи (приборы, работы и т.п.): 2 столбца по центру */
    .photo_list .rows { flex-wrap: wrap; justify-content: center; gap: 14px 12px; }
    .photo_list .rows .item, .photo_list .rows.col3 .item, .photo_list .rows.col4 .item {
        width: calc(50% - 6px) !important; margin: 0 !important;
    }
    .photo_list .rows .item a.link, .photo_list .rows .item .link { display: block; }
    .news_list .item .right_block a.read_more { position: static; }

    /* боковая колонка: вертикальное меню дублирует «Наши услуги» в бургере — на телефоне скрыто */
    aside .leftmenu { display: none !important; }
    aside .block_photo .item img { width: 100%; }
    aside .news_block .item .right_block { width: auto; flex: 1; }
    .news_block_slider, .news_block_last { width: 100% !important; }

    /* формы */
    .feedback_form input, .feedback_form textarea { font-size: 16px; }
    .feedback_form .button, .feedback_form input.button { height: auto !important; min-height: 44px; line-height: 1.2; padding: 12px 28px !important; font-size: 17px; }

    /* подвал */
    footer .ha_center { flex-direction: column; align-items: center; gap: 12px; text-align: center; padding: 0 12px; }
    footer .bottom_search, footer .bottom_search input { width: 100% !important; max-width: 320px; }
    #top { right: 8px; bottom: 8px; }
}
