@media (max-width: 800px) {
    /* Крупные, но редкие пятна: заметный фон без перегрузки Safari. */
    .page-background__ball {
        width: 52rem;
        height: 52rem;
        filter: blur(105px);
    }

    :root[data-theme="white"] .page-background__ball {
        filter: blur(115px) saturate(85%);
    }

    .page-background__ball--violet-top {
        top: -18rem;
        right: -35rem;
    }

    .page-background__ball--blue-left {
        top: 38rem;
        left: -38rem;
    }

    .page-background__ball--green-right {
        top: 86rem;
        right: -39rem;
    }

    .page-background__ball--violet-bottom {
        top: 142rem;
        left: -38rem;
    }

    .page-background__ball--generated[data-side="left"] {
        left: -39rem;
    }

    .page-background__ball--generated[data-side="right"] {
        right: -39rem;
    }

    :root {
        --page-max-width: 95vw;
    }
    .container {
        padding: 0;
        margin: 0 auto;
    }
    .header_container { width: 100%; max-width: none; padding: .9rem .9rem 0; }
    .header { position:relative; z-index:1000; }
    .mobile-header {
        position:relative; z-index:1000;
        color:var(--color-black); font-family:var(--f-manr);
    }
    .mobile-header__bar { display:grid; grid-template-columns:minmax(0,1fr) 3rem 3rem; gap:.35rem; height:2.55rem; }
    .mobile-header > .mobile-header__bar { grid-template-columns:minmax(0,1fr) 3rem 3rem 3rem; }
    .mobile-header__brand,.mobile-header__toggle,.mobile-header__close,.mobile-menu__portal { color:var(--color-black); border:0; border-radius:.75rem; background:transparent; text-decoration:none; }
    .mobile-header > .mobile-header__bar > .mobile-header__brand,
    .mobile-header > .mobile-header__bar > .mobile-header__search-wrap,
    .mobile-header > .mobile-header__bar > .mobile-header__toggle {
        background:var(--color-surface-soft);
    }
    .mobile-header > .mobile-header__bar > .mobile-header__search-wrap {
        border-radius:.75rem;
    }
    .mobile-header__brand { display:flex; align-items:center; min-width:0; padding:.2rem .55rem; }
    .mobile-header__brand .site-header__logo-svg { display:block; width:5.8rem; height:2.1rem; }
    .mobile-header__search-wrap { display:flex; justify-content:flex-end; min-width:0; }
    .mobile-header__search-wrap .header-search.is-open { z-index:2; }
    .mobile-header__toggle,.mobile-header__close { display:grid; place-items:center; padding:0; cursor:pointer; }
    .mobile-header__bar > .theme-toggle { width:3rem; height:2.55rem; border:0; border-radius:.75rem; box-shadow:none; }
    .mobile-header__toggle { gap:.28rem; align-content:center; }
    .mobile-header__toggle span { width:1.25rem; height:.12rem; background:currentColor; }
    .mobile-header__close { font-size:1.75rem; font-weight:300; line-height:1; }
    .mobile-menu[hidden] { display:none; }
    .mobile-menu {
        position:fixed; inset:0; z-index:1000000; min-height:100dvh; overflow-y:auto;
        padding:.9rem .9rem 1.5rem; color:var(--color-black);
        border:var(--liquid-border); background:var(--liquid-background);
        -webkit-backdrop-filter:var(--liquid-blur); backdrop-filter:var(--liquid-blur);
        opacity:0; transform:translateX(1.5rem);
        transition:opacity .2s ease,transform .25s ease;
        overscroll-behavior:contain;
    }
    .mobile-menu.is-open { opacity:1; transform:none; }
    .mobile-menu__top {
        position: sticky;
        top: -20px;
        z-index: 20;
        margin: -.9rem -.9rem 1rem -.9rem;
        padding: .9rem .9rem 1rem;
        background: var(--color-text-secondary-liq);
        box-shadow: 0 .5rem 1rem var(--color-shadow-light);
        isolation: isolate;
        transform: translateZ(0);
        border-radius: 0 0 20px 20px;
    }
    .mobile-menu__top .mobile-header__bar { padding:0; }
    .mobile-menu__portal { display:inline-flex; gap:.35rem; margin-top:.7rem; padding:.65rem .8rem; font-size:1rem; }
    .mobile-menu__content { display:flex; min-height:calc(100dvh - 8.5rem); flex-direction:column; justify-content:space-between; gap:3rem; padding:.8rem .5rem 0; }
    .mobile-menu__contacts { display:grid; gap:.55rem; padding-bottom:.5rem; }
    .mobile-menu__contacts a,.mobile-menu__contacts p { display:grid; grid-template-columns:1rem 1fr; gap:.65rem; align-items:start; margin:0; color:var(--color-black); font-size:1.1rem; line-height:1.3; }
    .mobile-menu__contacts a { text-decoration:underline; }
    body.mobile-menu-open { overflow:hidden; }
    .tsg-tabs {
        overflow-x: scroll;
        overflow-y: clip;
    }
    .footer_info_contact_wrap, .footer_information  {
        grid-template-columns: 1fr;
        grid-auto-flow: row;
        gap: 1rem;
        padding-bottom: 1.5rem;
        margin-bottom: 1.5rem;
    }
    @font-face {
        font-family: "Manrope";
        src: url("../fonts/Manrope.ttf") format("ttf");
        font-style: normal;
        font-display: swap;
    }
    .header_mobile_nav_link_start_p {
        font-family: "DINPro", Arial, sans-serif;
    }

    header#mobile {
        font-family: "Manrope", Arial, sans-serif;
    }
    .arrow_link_image {
        margin-left: 10px;
        font-family: "formular", Arial, sans-serif;
    }


    .header_mobile_dop_info_wrap {
        position: fixed;
        top: 0;
        left: 0;

        display: flex;
        flex-direction: column;
        justify-content: space-between;

        width: 100vw;
        height: 100dvh;
        padding: 160px 25px 30px 25px;

        background: var(--color-surface);
        z-index: 1000000;

        transform: translateX(100%);
        transition: transform 0.4s ease;

        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
    }
    .header_mobile_dop_info_wrap.is-open {
        transform: translateX(0);
    }

    .header_mobile_dop_info_adress {
        color: var(--color-black);
        font-size: 20px;
        font-weight: 400;
        line-height: 27px;

        margin-top: 8px;
    }
    .header_mobile_dop_info_adress b {
        font-weight: 400;
    }
    .header_mobile_phones {
        margin-bottom: 20px;
    }

    .header_mobile_phones a {
        display: block;
        color: var(--color-black);
        font-size: 20px;
        line-height: 39px;
        letter-spacing: 1px;
        font-weight: 400;

        text-decoration: underline;
    }

    .header_mobile_phones a:last-child {
        margin-bottom: 0;
    }

    .header_mobile .visible_block {
        display: block;
    }

    .header_mobile_nav_link_start {
        margin-bottom: 18px;
    }

    .header_mobile_nav_link_start_content {
        display: flex;
        align-items: center;
        gap: 11px;
    }
    .header_mobile_nav_link_start.is-open .header_mobile_nav_link_start_content{
        margin-bottom: 18px;
    }

    .header_mobile_nav_link_start:last-child {
        margin-bottom: 0;
    }

    .header_mobile_nav_link_start_p {
        color: var(--color-black);
        font-size: 20px;
        font-weight: 400;
        line-height: 27px;
        text-align: left;
    }

    .header_mobile_nav_link_start_img {
        width: 3vw;
        transition: transform 0.3s ease;
    }

    .header_mobile_nav_link_start.is-open
    .header_mobile_nav_link_start_img {
        transform: rotate(180deg);
    }

    .header_mobile_nav_link_second_nav {
        overflow: hidden;
        max-height: 0;
        opacity: 0;
        padding-left: 0;

        transition:
                max-height 0.4s ease,
                opacity 0.3s ease,
                padding-left 0.3s ease;

        margin-top: 3vw;
    }
    .header_mobile_nav_link_second_nav.is-open {
        max-height: 1000px;
        opacity: 1;
        padding-left: 20px;
    }

    .header_mobile_nav_link_second {
        display: flex;
        align-items: center;
        gap: 11px;
        justify-content: space-between;
        margin-bottom: 18px;
    }

    .header_mobile_nav_link_second:last-child {
        margin-bottom: 0;
    }

    .header_mobile_nav_link_second_p {
        color: var(--color-text);
        font-size: 19px;
        font-weight: 400;
        line-height: 26px;
        text-align: left;
    }

    .header_mobile_nav_link_second_img {
        transform: rotate(-90deg);
        width: 3vw;
    }

    .header_mobile_nav_link_last_nav {
        position: fixed;
        inset: 0;

        background: var(--color-surface);
        z-index: 9999;

        transform: translateX(100%);
        transition: transform 0.35s ease;
    }

    .header_mobile_nav_link_last_nav.is-open {
        transform: translateX(0);
    }

    .header_mobile_nav_link_last_nav {
        padding: 3vh 0;
    }

    .header_mobile_nav_link_last_title {
        display: flex;
        align-items: flex-start;
        gap: 1vw;
        margin-bottom: 3vw;
    }

    .header_mobile_nav_link_last_img {
        transform: rotate(90deg);
        margin-top: 1vw;
    }

    .header_mobile_nav_link_last_title p {
        color: var(--color-black);
        font-size: 4.4vw;
        font-weight: 600;
        line-height: normal;
        text-align: left;
    }

    .header_mobile_nav_link_last_nav ul {
        padding: 0 1vw;
        overflow-y: auto;
        height: 90vh;
        position: sticky;
        z-index: 100000;
    }

    .header_mobile_nav_link_last_nav ul li {
        margin-bottom: 2vw;
    }

    .header_mobile_nav_link_last_nav ul li a {
        color: var(--color-text-secondary);
        font-size: 4.5vw;
        font-weight: 400;
        line-height: normal;
        text-align: left;
    }
    .service-request__requisites, .service-request__form {
        width: 100%;
    }
    .mobile-header__brand-mark {
        background: var(--color-title);
        margin-right: 1rem;
        padding: .5rem 1rem;
        border-radius: .5rem;
        color: white;
    }
    .service-request__table th, .service-request__table td {
        font-size: 1rem;
    }
    .service-detail__advantages, .service-detail__text-block ul, .service-detail__text-block ol  {
        display: flex;
        flex-direction: column;
    }
}

/*
 * iPhone/iPad WebKit.
 * Полноэкранный backdrop-filter вместе с большими blur-слоями заставляет
 * Safari перерисовывать всю страницу на каждом кадре открытия меню.
 * Оставляем полупрозрачный liquid-эффект, но убираем дорогой живой blur.
 */
@supports (-webkit-touch-callout: none) {
    @media (max-width: 800px) and (hover: none) and (pointer: coarse) {
        .liquid.mobile-menu {
            height: 100dvh;
            min-height: 100svh;
            opacity: 1;
            transform: translate3d(100%, 0, 0);
            transition: transform 0.18s cubic-bezier(.22, 1, .36, 1);
            background: var(--color-page) !important;
            background: color-mix(
                    in srgb,
                    var(--color-page) 90%,
                    transparent
            ) !important;
            -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
            contain: none;
            will-change: transform;
            -webkit-overflow-scrolling: touch;
        }

        .mobile-menu.is-open {
            height: 100dvh;
            transform: translate3d(0, 0, 0);
        }

        .header_mobile_nav_link_second_nav {
            transition: none;
        }

        .header_mobile_nav_link_start_content.is-submenu-trigger {
            cursor: pointer;
        }

        body.mobile-menu-open .page-background {
            visibility: hidden;
        }

        .mobile-header__toggle,
        .mobile-header__close,
        .header_mobile_nav_link_start_content {
            touch-action: manipulation;
        }
    }
}
