:root {
    --bk-mobile-gutter: 24px;
    --bk-mobile-header-height: 48px;
}

@media screen and (min-width: 1364px) {
    .header {
        height: 64px;
    }

    .header > .block {
        width: 100%;
        min-width: 0;
        max-width: none;
        height: 64px;
        padding: 8px 48px;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: center;
        gap: 24px;
        box-sizing: border-box;
    }

    .header > .block > .sc-logo {
        width: 96px;
        height: 48px;
        flex: 0 0 96px;
        transform: none;
    }

    .header > .block > .sc-logo::before {
        display: none;
    }

    .header > .block > .sc-logo img {
        width: 96px !important;
        height: 48px !important;
        max-width: none !important;
        max-height: none !important;
        display: block !important;
        object-fit: contain;
    }

    .header > .block > .search-from {
        width: 300px;
        height: 40px;
        flex: 0 0 300px;
        position: relative;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        margin: 0 !important;
        transform: none;
    }

    .header > .block > .search-from .form-control,
    .header > .block > .search-from .form-control:focus {
        width: 300px !important;
        height: 40px;
        padding: 0 56px 0 16px;
        background: #fff;
        border: 1px solid #d7dae4;
        border-radius: 4px;
        box-sizing: border-box;
        flex: 0 0 300px;
    }

    .header > .block > .search-from .btn-search {
        width: 40px;
        height: 40px;
        right: 0;
        top: 0;
        position: absolute;
        background: transparent;
        z-index: 2;
    }

    .header > .block > .search-from .btn-search svg {
        fill: #11275f;
    }

    .header > .block > .search-from .btn-search .cube,
    .header > .block > .search-from .btn-search .cube > span {
        width: 40px;
        height: 40px;
    }

    .header > .block > .contacts {
        width: 824px !important;
        min-width: 0;
        margin-left: auto;
        flex: 0 0 824px;
        flex-wrap: nowrap !important;
        justify-content: flex-end;
        gap: 24px;
    }

    .header .contacts > .hr {
        display: none;
    }

    .header .contacts .social {
        width: 128px !important;
        margin-right: 0 !important;
        flex: 0 0 128px;
        gap: 4px;
    }

    .header .contacts .social > .hr {
        display: none;
    }

    .header .contacts .social > a {
        width: 40px;
        height: 40px;
    }

    .header .contacts .social > a[data-analytics="index-header-max"] {
        order: 1;
    }

    .header .contacts .social > a[data-analytics="index-header-tg"] {
        order: 2;
    }

    .header .contacts .social > a[data-analytics="index-header-wa"] {
        order: 3;
    }

    .header .contacts .phone-and-email {
        width: 356px;
        height: 40px;
        display: flex;
        flex: 0 0 auto;
        flex-direction: column;
        justify-content: center;
    }

    .header .contacts .phone-and-email .phone,
    .header .contacts .phone-and-email .email-header {
        position: static !important;
    }

    .header .contacts > a[data-analytics="index-header-yt"] {
        width: 130px !important;
        height: 40px;
        padding: 0 16px;
        display: flex;
        align-items: center;
        gap: 8px;
        background: #e5e7ed;
        border-radius: 4px;
        box-sizing: border-box;
        order: 1;
    }

    .header .contacts > a[data-analytics="index-header-yt"] .icon-position {
        width: 24px;
        height: 24px;
        position: relative;
        inset: auto;
        transform: none;
    }

    .header .contacts > a[data-analytics="index-header-yt"] .icon-animation span {
        width: 24px;
        height: 24px;
    }

    .header .contacts > a[data-analytics="index-header-yt"] .icon-info {
        display: block !important;
        opacity: 1;
        position: static;
        font-size: 12px;
        font-weight: 700;
        line-height: 14px;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .header .contacts > .open-modal {
        width: 158px;
        height: 40px;
        display: flex;
        flex: 0 0 158px;
        align-items: center;
        justify-content: center;
        background: #e5e7ed;
        border-radius: 4px;
        white-space: nowrap;
        order: 3;
        margin-left: -20px !important;
    }

    .header .contacts > .social {
        order: 2;
    }

    .header .contacts > .phone-and-email {
        order: 4;
    }

    .section-menu {
        height: 44px;
        top: 64px;
        margin-top: 0;
    }

    .section-menu > .block {
        width: 1232px;
        min-width: 0;
        max-width: calc(100% - 208px);
        height: 44px;
        padding: 4px;
        gap: 0;
        box-sizing: border-box;
    }

    .section-menu > .block > .catalog,
    .section-menu > .block > .link {
        height: 40px;
        min-height: 40px;
        padding-top: 0;
        padding-bottom: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
    }

    .section-menu > .block > .catalog {
        width: 124px;
        flex: 0 0 124px;
        margin-right: 4px;
        background: #f3712b;
        border-radius: 4px;
    }

    .section-menu > .block > .link {
        flex: 1 1 auto;
        background: #11275f;
        color: #fff;
    }

    .section-menu > .block > .link:first-of-type {
        border-radius: 4px 0 0 4px;
    }

    .section-menu > .block > .link:last-of-type {
        border-radius: 0 4px 4px 0;
    }
}

@media screen and (max-width: 767px) {
    #page-category {
        padding-bottom: 0;
    }

    .footer > .block,
    .header > .block,
    .section > .block,
    .section-menu > .block,
    .section-messenger > .block,
    section > .block,
    .section-sert > .block > .block {
        width: 100%;
        min-width: 0;
        max-width: none;
        box-sizing: border-box;
    }

    .header {
        height: var(--bk-mobile-header-height);
        background: #fff;
        border-bottom: 1px solid #e5e7ed;
    }

    .header > .block {
        height: var(--bk-mobile-header-height);
        margin: 0;
        padding: 0;
        flex-wrap: nowrap;
        align-items: stretch;
        outline: 0;
        border-bottom: 1px solid #e5e7ed;
    }

    .header .block .menu,
    .header .block .open-search {
        width: 48px;
        height: 48px;
        flex: 0 0 48px;
        background: #fff;
        border: 0;
    }

    .header .block .menu .lines {
        width: 24px;
        height: 24px;
    }

    .header .block .menu .lines .line {
        width: 19.5px;
        height: 1.5px;
        left: 2.25px;
        background: #11275f;
        border-radius: 2px;
    }

    .header .block .menu .lines .line:first-child {
        top: 4.25px;
    }

    .header .block .menu .lines .line:nth-child(2) {
        top: 11.25px;
        transform: none;
    }

    .header .block .menu .lines .line:last-child {
        top: 18.25px;
        bottom: auto;
    }

    .header .block .menu.active .lines .line:first-child,
    .header .block .menu.active .lines .line:last-child {
        top: 11.25px;
        bottom: auto;
        margin-top: 0;
    }

    .header .block .menu.active .lines .line:first-child {
        transform: rotate(45deg);
    }

    .header .block .menu.active .lines .line:nth-child(2) {
        width: 0;
    }

    .header .block .menu.active .lines .line:last-child {
        transform: rotate(-45deg);
    }

    .header > .block > .sc-logo {
        width: auto;
        height: 48px;
        flex: 1 1 auto;
        display: flex;
        align-items: center;
        justify-content: center;
        transform: none;
    }

    .header > .block > .sc-logo::before {
        display: none;
    }

    .header > .block > .sc-logo img {
        width: 72px !important;
        height: 36px !important;
        max-width: none !important;
        max-height: none !important;
        object-fit: contain;
    }

    .header .block .open-search .bk-header-search-icon {
        width: 24px;
        height: 24px;
        position: absolute;
        top: 50%;
        left: 50%;
        display: block;
        transform: translate(-50%, -50%);
    }

    .header > .block > .search-from {
        width: 100%;
        height: 48px;
        top: 0;
        left: 0;
    }

    .header > .block > .search-from .form-control,
    .header > .block > .search-from .form-control:focus,
    .header > .block > .search-from .btn-search,
    .header > .block > .search-from .clear,
    .header > .block > .search-from .btn-search .cube,
    .header > .block > .search-from .btn-search .cube > span {
        height: 48px;
    }

    .header > .block > .search-from .form-control,
    .header > .block > .search-from .form-control:focus {
        width: 100% !important;
        padding-right: 96px;
        padding-left: 16px;
        box-sizing: border-box;
    }

    .header > .block > .search-from .btn-search,
    .header > .block > .search-from .clear {
        width: 48px;
    }

    .header > .block > .search-from .clear {
        right: 48px;
    }

    .header > .block > .search-from .btn-search:hover .cube {
        transform: translateY(-48px);
    }

    .header > .block > .result {
        width: 100vw;
        max-width: 100vw;
        top: 48px;
        left: 0;
    }

    #modal-menu {
        z-index: 802;
        background: rgba(17, 39, 95, 0.36);
    }

    #modal-menu .modal-position {
        min-height: 100%;
        position: relative;
    }

    #modal-menu.fade .modal-dialog {
        transform: translateX(-100%);
        transition: transform 0.3s ease-out;
    }

    #modal-menu.in .modal-dialog {
        transform: translateX(0);
    }

    #modal-menu .modal-dialog {
        width: min(300px, 100vw);
        min-height: 100vh;
        margin: 0;
        overflow: visible;
        background: transparent;
        text-align: left;
    }

    #modal-menu .modal-dialog .modal-content {
        width: min(300px, 100vw);
        min-width: 0;
        max-width: none;
        min-height: 100vh;
        margin: 0;
        padding: 12px 16px 32px;
        border: 0;
        background: #fff;
        box-shadow: 0 10px 70px rgba(0, 0, 0, 0.1);
        box-sizing: border-box;
    }

    #modal-menu .bk-mobile-menu-dismiss {
        position: fixed;
        z-index: 1;
        top: 0;
        right: 0;
        bottom: 0;
        left: min(300px, 100vw);
        width: auto;
        height: auto;
        padding: 0;
        border: 0;
        background: transparent;
    }

    #modal-menu .modal-content > .catalog {
        width: 100%;
        height: 40px;
        padding: 0 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        color: #fff;
        background: #f3712b;
        border: 0;
        border-radius: 4px;
        box-sizing: border-box;
    }

    #modal-menu .modal-dialog .modal-content > .catalog {
        height: 40px !important;
        padding: 0 16px !important;
        border: 0 !important;
    }

    #modal-menu .modal-content > .catalog::before {
        content: "";
        width: 24px;
        height: 24px;
        flex: 0 0 24px;
        background: url("../img/mobile-menu-catalog.svg") center / 24px 24px no-repeat;
    }

    #modal-menu .modal-content > .catalog > svg {
        display: none;
    }

    #modal-menu .modal-content > .catalog .text-position,
    #modal-menu .modal-content > .catalog .text-animation {
        height: auto;
        color: inherit;
        line-height: 14px;
    }

    #modal-menu .modal-content > .catalog .text-animation {
        position: static;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.6px;
        text-transform: uppercase;
    }

    #modal-menu .modal-content > .catalog .text-animation::after,
    #modal-menu .ul .text-animation::after {
        display: none;
    }

    #modal-menu .ul {
        width: 100%;
        margin: 32px 0 0;
        padding: 0;
        border: 0;
    }

    #modal-menu .ul > li,
    #modal-menu .ul > li > a,
    #modal-menu .ul > li:last-child > .submenu li,
    #modal-menu .ul > li:last-child > .submenu li > a {
        width: 100%;
        min-height: 38px;
        margin: 0;
        padding: 0;
        border: 0;
        box-sizing: border-box;
    }

    #modal-menu .modal-dialog .modal-content .ul > li > a,
    #modal-menu .modal-dialog .modal-content .ul > li:last-child > .submenu li > a {
        width: 100% !important;
        height: 38px !important;
        min-height: 38px !important;
        padding: 0 !important;
        display: flex !important;
    }

    #modal-menu .ul > li > a,
    #modal-menu .ul > li:last-child > .submenu li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        color: #11275f;
        font-size: 12px;
        font-weight: 700;
        line-height: 14px;
        letter-spacing: 0.6px;
        text-transform: uppercase;
    }

    #modal-menu .ul > li > a .text-position,
    #modal-menu .ul > li > a .text-animation,
    #modal-menu .ul > li:last-child > .submenu li > a .text-position,
    #modal-menu .ul > li:last-child > .submenu li > a .text-animation {
        width: auto;
        height: auto;
        position: static;
        top: auto;
        color: inherit;
        line-height: inherit;
    }

    #modal-menu .ul > li > a > svg {
        width: 16px;
        height: 16px;
        flex: 0 0 16px;
        transform: rotate(-90deg);
        fill: #11275f;
    }

    #modal-menu .ul > li:nth-child(3) > a {
        justify-content: flex-start;
    }

    #modal-menu .ul > li:nth-child(3) > a::before {
        content: "";
        width: 20px;
        height: 20px;
        flex: 0 0 20px;
        background: url("../img/mobile-menu-price.svg") center / 20px 20px no-repeat;
    }

    #modal-menu .modal-dialog .modal-content .ul > li:last-child > a {
        display: none !important;
    }

    #modal-menu .ul > li:last-child > .submenu {
        display: block !important;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0;
    }

    #modal-menu .ul > li:last-child > .submenu > ul {
        width: 100%;
        margin: 0;
        padding: 0;
    }

    #modal-menu .bk-mobile-menu-channel,
    #modal-menu .contacts {
        width: 100%;
        margin-top: 32px;
        padding-top: 16px;
        border-top: 1px solid #e5e7ed;
        box-sizing: border-box;
    }

    #modal-menu .bk-mobile-menu-channel p {
        margin: 0 0 12px;
        color: #5f698c;
        font-size: 14px;
        line-height: 16px;
    }

    #modal-menu .bk-mobile-menu-channel a,
    #modal-menu .contacts .open-modal,
    #modal-menu .contacts .wa,
    #modal-menu .contacts .bk-mobile-menu-social {
        width: 100%;
        height: 40px;
        padding: 0 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        color: #11275f;
        background: #e5e7ed;
        border: 0;
        border-radius: 4px;
        box-sizing: border-box;
        font-size: 12px;
        font-weight: 700;
        line-height: 14px;
        letter-spacing: 0.6px;
        text-transform: uppercase;
    }

    #modal-menu .modal-dialog .modal-content .contacts .open-modal,
    #modal-menu .modal-dialog .modal-content .contacts .wa,
    #modal-menu .modal-dialog .modal-content .contacts .bk-mobile-menu-social {
        width: 100% !important;
        height: 40px !important;
        min-height: 40px !important;
        padding: 0 16px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        border: 0 !important;
    }

    #modal-menu .bk-mobile-menu-channel img,
    #modal-menu .contacts .bk-mobile-menu-social img {
        width: 24px;
        height: 24px;
        flex: 0 0 24px;
    }

    #modal-menu .contacts {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    #modal-menu .contacts .phone {
        width: 100%;
        height: auto;
        padding: 0;
        color: #11275f;
        border: 0;
        font-size: 19px;
        font-weight: 500;
        line-height: 24px;
        white-space: nowrap;
    }

    #modal-menu .modal-dialog .modal-content .contacts .phone {
        min-height: 24px !important;
        padding: 0 !important;
        border: 0 !important;
        font-size: 19px !important;
        line-height: 24px !important;
        text-align: left !important;
    }

    #modal-menu .contacts .phone-email {
        margin: 0 0 4px;
    }

    #modal-menu .contacts .open-modal > span,
    #modal-menu .contacts .wa > span:nth-child(2),
    #modal-menu .contacts .open-modal > svg,
    #modal-menu .contacts .wa > svg {
        display: none;
    }

    #modal-menu .modal-dialog .modal-content .contacts .open-modal > span,
    #modal-menu .modal-dialog .modal-content .contacts .wa > span:nth-child(2),
    #modal-menu .modal-dialog .modal-content .contacts .open-modal > svg,
    #modal-menu .modal-dialog .modal-content .contacts .wa > svg {
        display: none !important;
    }

    #modal-menu .modal-dialog .modal-content .contacts .open-modal::before {
        content: "Заказать звонок" !important;
        display: block !important;
        position: static !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: auto !important;
        height: auto !important;
        background: none !important;
        transform: none !important;
    }

    #modal-menu .contacts .wa::before {
        content: "";
        width: 24px;
        height: 24px;
        flex: 0 0 24px;
        background: url("../img/header/icon-whatsapp.svg") center / 24px 24px no-repeat;
    }

    body.modal-open #stickyButtons,
    body.modal-open .section-messenger {
        visibility: hidden;
    }

    #page-category .section-1 > .block,
    #page-catalog .section-first_2 > .block {
        padding-right: var(--bk-mobile-gutter);
        padding-left: var(--bk-mobile-gutter);
    }

    #page-category .section-1 .scroll-sidebar,
    #page-card.product-card-redesign #product-card-top .bk-product-breadcrumbs .scroll-sidebar {
        width: 100vw;
        max-width: 100vw;
        margin-left: 0;
        left: 50%;
        transform: translateX(-50vw);
    }

    #page-category .section-1 .scroll-sidebar > .sidebar,
    #page-card.product-card-redesign #product-card-top .bk-product-breadcrumbs .scroll-sidebar > .sidebar {
        width: max-content;
        min-width: 100%;
        max-width: none;
        padding-right: var(--bk-mobile-gutter);
        padding-left: var(--bk-mobile-gutter);
        box-sizing: border-box;
    }

    #page-card.product-card-redesign #product-card-top .bk-product-breadcrumbs {
        overflow: visible !important;
    }

    #page-category .section-2 .block .contents .types {
        top: var(--bk-mobile-header-height);
        height: calc(100dvh - var(--bk-mobile-header-height));
    }

    #page-category .section-2 .block .contents .list .function {
        top: var(--bk-mobile-header-height);
    }

    #page-catalog .section-first_2 > .block > .sidebar {
        padding-left: 0;
    }

    .section-first > .block > .content,
    main:not(#page-catalog) > .section-first_2 > .block,
    #page-blog > .section-1 > .block,
    #page-typical > .section-1 > .block {
        padding-right: var(--bk-mobile-gutter);
        padding-left: var(--bk-mobile-gutter);
        box-sizing: border-box;
    }

    #page-contacts > .section-1 h1,
    #page-reviews > .section-1 h1,
    #page-certificates > .section-1 h1,
    #page-guarantees > .section-1 h1,
    #page-gallery > .section-1 h1,
    #page-contract > .section-1 h1,
    #page-map > .section-1 h1 {
        padding-right: var(--bk-mobile-gutter) !important;
        padding-left: var(--bk-mobile-gutter) !important;
        box-sizing: border-box;
    }

    #page-projects > .section-jobs > .block > h1 {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .bk-contact-block,
    .bk-map-block,
    .bk-footer,
    .bk-information-landing .bk-contact-block--information-landing,
    .bk-information-landing .bk-map-block--information-landing {
        width: 100%;
        max-width: none;
        margin-left: 0;
        transform: none;
    }

    .bk-contact-block__phone {
        max-width: 100%;
        font-size: clamp(27px, 9vw, 40px);
        line-height: 1.05;
        white-space: nowrap;
    }

    #page-card.product-card-redesign .section-contacts--product-card .bk-contact-block__phone {
        font-size: clamp(27px, 9vw, 40px) !important;
        line-height: 1.05 !important;
    }

    .bk-contact-block__email-link,
    .bk-contact-block__email-text {
        max-width: 100%;
        overflow: visible;
        text-overflow: clip;
        white-space: nowrap;
    }

    #page-card.product-card-redesign .section-contacts--product-card > .block {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #page-card.product-card-redesign #product-card-top {
        margin-top: var(--bk-mobile-header-height) !important;
    }

    .catalog-card__spec {
        height: auto;
        min-height: 0;
        grid-template-columns: minmax(0, 1fr) minmax(112px, auto);
    }

    .catalog-card__spec dd {
        max-width: none;
        overflow-wrap: anywhere;
    }
}

@media screen and (max-width: 374px) {
    .bk-contact-block {
        padding-right: var(--bk-mobile-gutter);
        padding-left: var(--bk-mobile-gutter);
    }

    .bk-contact-block__lead {
        width: calc(100% + 48px);
        margin-left: -24px;
    }

    .bk-contact-block__lead-title {
        padding-right: 24px;
    }

    .bk-contact-block__form,
    .bk-map-block,
    .bk-footer__main,
    .bk-footer__benefits,
    .bk-footer__bottom {
        padding-right: var(--bk-mobile-gutter);
        padding-left: var(--bk-mobile-gutter);
    }
}
