/* ==========================================================================
   DEVOSO 4.7 — phone layer (≤ 767px), loaded last.
   Reading comfort, one gutter, calm type scale, tighter rhythm, tap targets,
   horizontal rails for long card lists, collapsed secondary content.
   Also: the burger drawer (≤ 991px) and full-screen modals on phones.
   Nothing is removed from the HTML — secondary blocks are only collapsed.
   Author: Maks Odintsov
   ========================================================================== */

:root {
    --m47-g: 1.125rem;                 /* side gutter on phones */
    --m47-r: 1.125rem;                 /* card radius */
    --m47-sec: 3rem;                   /* section padding */
    --m47-k: #121718;
    --m47-k2: #1d2729;
    --m47-soft: #f4f6f5;
    --m47-t1: #4e6c6e;
    --m47-t2: #7fa3a4;
    --m47-t3: #b5cfcf;
    --m47-ease: cubic-bezier(.2, .8, .2, 1);
    --m47-bar: 3.6rem;                 /* bottom quick-action bar */
}

/* JS helpers (buttons are created by mobile47.js) are invisible on wide screens */
.m47-more, .m47-rmore, .m47-dots, .m47-sclose { display: none; }

/* ==========================================================================
   1. DRAWER MENU (burger, ≤ 991px)
   ========================================================================== */
@media (max-width: 991.98px) {
    .dv-drawer { z-index: 1065; }
    .dv-drawer__backdrop { background: rgba(18, 23, 24, .62); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); transition: opacity .35s ease; }
    .dv-drawer__panel {
        width: min(26rem, 100%); background: var(--m47-k); color: #fff; border-left: 0 !important;
        overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
        transform: translateX(100%); transition: transform .45s var(--m47-ease); box-shadow: -1.5rem 0 4rem rgba(0, 0, 0, .35);
        padding-bottom: env(safe-area-inset-bottom);
    }
    .dv-drawer.is-open .dv-drawer__panel { transform: none; }

    /* head: logo + close, stays on top while the panel scrolls */
    .dv-drawer__head {
        position: sticky; top: 0; z-index: 3; padding: .85rem var(--m47-g); min-height: 4.25rem;
        background: rgba(18, 23, 24, .96); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
        border-bottom: 1px solid rgba(255, 255, 255, .08);
    }
    .dv-drawer__head .dv-logo, .dv-drawer__head .dv-logo__text, .dv-drawer__head .dv-logo__text b { color: #fff !important; }
    .dv-drawer__head .dv-iconbtn {
        width: 2.75rem; height: 2.75rem; border-radius: 50%; background: rgba(255, 255, 255, .06);
        border: 1px solid rgba(255, 255, 255, .16); color: #fff; display: inline-flex; align-items: center; justify-content: center;
        transition: background .2s, transform .3s var(--m47-ease);
    }
    .dv-drawer__head .dv-iconbtn:active { background: rgba(255, 255, 255, .16); transform: rotate(90deg); }

    /* first level */
    .dv-drawer__menu { padding: .5rem var(--m47-g) 1rem; counter-reset: m47d; }
    .dv-drawer__menu > li { position: relative; border-bottom: 1px solid rgba(255, 255, 255, .08); counter-increment: m47d; }
    .dv-drawer__menu > li > a {
        display: flex !important; align-items: center; gap: .9rem; min-height: 3.6rem; padding: .6rem 3.25rem .6rem 0 !important;
        font-family: var(--f-head); font-size: 1.55rem !important; font-weight: 600 !important; line-height: 1.2;
        color: #fff !important; background: none !important; border-radius: 0 !important; letter-spacing: -.01em;
    }
    .dv-drawer__menu > li > a::before {
        content: counter(m47d, decimal-leading-zero); font-family: var(--f-body); font-size: .72rem; font-weight: 600;
        letter-spacing: .08em; color: var(--m47-t2); min-width: 1.4rem;
    }
    .dv-drawer__menu .menu-item-has-children > a::after { display: none !important; content: none !important; }
    .dv-drawer__menu > li.current-menu-item > a, .dv-drawer__menu > li.current-menu-ancestor > a, .dv-drawer__menu > li.current-menu-parent > a { color: var(--m47-t3) !important; }

    /* accordion toggle (created by JS) */
    .m47-dtog {
        position: absolute; right: -.35rem; top: .4rem; width: 2.75rem; height: 2.75rem; border-radius: 50%;
        border: 1px solid rgba(255, 255, 255, .14); background: transparent; color: #fff; cursor: pointer;
        display: inline-flex; align-items: center; justify-content: center; padding: 0; transition: background .2s, border-color .2s;
    }
    .dv-drawer__menu .sub-menu .m47-dtog { top: .2rem; width: 2.5rem; height: 2.5rem; right: -.25rem; border-color: rgba(255, 255, 255, .1); }
    .m47-dtog svg { width: 1rem; height: 1rem; transition: transform .35s var(--m47-ease); }
    .m47-dtog[aria-expanded="true"] { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .24); }
    .m47-dtog[aria-expanded="true"] svg { transform: rotate(180deg); }

    /* sub levels: collapsed by default, height animated by JS */
    .dv-drawer.m47-ready .dv-drawer__menu .sub-menu { display: block !important; overflow: hidden; height: 0; visibility: hidden; transition: height .38s var(--m47-ease), visibility 0s linear .38s; padding: 0 !important; margin: 0 !important; }
    .dv-drawer.m47-ready .dv-drawer__menu li.m47-open > .sub-menu { visibility: visible; transition: height .38s var(--m47-ease), visibility 0s; }
    .dv-drawer.m47-ready .dv-drawer__menu li.m47-open > .sub-menu:not(.m47-anim) { height: auto; }
    .dv-drawer.m47-ready .dv-drawer__menu li.m47-static > .sub-menu { height: auto !important; visibility: visible !important; }
    .dv-drawer__menu > li > .sub-menu { padding-bottom: .75rem !important; }
    .dv-drawer.m47-ready .dv-drawer__menu > li.m47-open > .sub-menu { padding-bottom: .75rem !important; }
    .dv-drawer__menu .sub-menu li { position: relative; border: 0; }
    .dv-drawer__menu .sub-menu a {
        display: flex !important; align-items: center; min-height: 2.9rem; padding: .55rem 3rem .55rem 2.3rem !important;
        font-family: var(--f-body); font-size: 1.02rem !important; font-weight: 500 !important; color: rgba(255, 255, 255, .8) !important;
        background: none !important; border-radius: .75rem !important; line-height: 1.35;
    }
    .dv-drawer__menu .sub-menu a:active { background: rgba(255, 255, 255, .06) !important; }
    .dv-drawer__menu .sub-menu .sub-menu { border-left: 1px solid rgba(127, 163, 164, .35) !important; margin-left: 2.3rem !important; }
    .dv-drawer__menu .sub-menu .sub-menu a { padding-left: 1rem !important; font-size: .95rem !important; color: rgba(255, 255, 255, .64) !important; min-height: 2.75rem; }
    .dv-drawer__menu .sub-menu .current-menu-item > a { color: var(--m47-t3) !important; }
    .dv-drawer__menu .sub-menu .current-menu-item > a::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: var(--m47-t3); margin-right: .55rem; flex: none; }
    /* group labels («#» links) */
    .dv-drawer__menu a[href="#"] { min-height: 0 !important; padding-top: 1rem !important; padding-bottom: .35rem !important; color: var(--m47-t2) !important; font-size: .72rem !important; }

    /* foot: CTA, contacts as tiles, cabinet, language */
    .dv-drawer__foot { margin-top: auto; padding: 1.25rem var(--m47-g) calc(1.25rem + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255, 255, 255, .08); gap: .75rem; background: var(--m47-k2); }
    .m47-dcta {
        display: flex; align-items: center; justify-content: center; gap: .6rem; width: 100%; min-height: 3.25rem; border: 0; border-radius: 999px;
        background: #fff; color: var(--m47-k); font: 600 1.02rem/1.2 var(--f-body); cursor: pointer;
    }
    .m47-dcta svg { width: 1.1rem; height: 1.1rem; }
    .dv-drawer__foot .dv-cbtns--stack { display: grid !important; grid-template-columns: 1fr 1fr; gap: .5rem; }
    .dv-drawer__foot .dv-cbtn {
        display: flex !important; align-items: center; gap: .6rem; min-height: 3.5rem; padding: .6rem .75rem !important; margin: 0 !important;
        border-radius: 1rem !important; background: rgba(255, 255, 255, .05) !important; border: 1px solid rgba(255, 255, 255, .1) !important;
        color: #fff !important; box-shadow: none !important; min-width: 0;
    }
    .dv-drawer__foot .dv-cbtn--call, .dv-drawer__foot .dv-cbtn--email { grid-column: 1 / -1; }
    .dv-drawer__foot .dv-cbtn__ico { width: 2.25rem !important; height: 2.25rem !important; flex: none; border-radius: .7rem !important; background: rgba(127, 163, 164, .18) !important; color: var(--m47-t3) !important; display: inline-flex; align-items: center; justify-content: center; }
    .dv-drawer__foot .dv-cbtn__ico svg { width: 1.05rem; height: 1.05rem; }
    .dv-drawer__foot .dv-cbtn__txt { min-width: 0; }
    .dv-drawer__foot .dv-cbtn__txt small { display: block; font-size: .75rem !important; color: rgba(255, 255, 255, .6) !important; }
    .dv-drawer__foot .dv-cbtn__txt b { display: block; font-size: .98rem !important; color: #fff !important; font-weight: 600; overflow-wrap: anywhere; }
    .dv-drawer__foot .dv-btn--outline { min-height: 3rem; border-radius: 999px !important; border: 1px solid rgba(255, 255, 255, .22) !important; color: #fff !important; background: transparent !important; display: flex; align-items: center; justify-content: center; gap: .5rem; }
    .dv-drawer__foot .dv-btn--outline svg { color: #fff; }
    .dv-drawer__foot .lang-switcher { display: flex !important; gap: .4rem; padding: .3rem; border-radius: 999px; background: rgba(255, 255, 255, .06); justify-self: start; }
    .dv-drawer__foot .lang-switcher__item { display: inline-flex !important; align-items: center; gap: .4rem; min-height: 2.75rem; min-width: 4.5rem; justify-content: center; padding: 0 1rem; border-radius: 999px; color: rgba(255, 255, 255, .78) !important; font-weight: 600; font-size: .9rem; text-decoration: none; }
    .dv-drawer__foot .lang-switcher__item.is-active { background: #fff; color: var(--m47-k) !important; }
    .dv-drawer__foot .lang-code { display: inline !important; }

    /* entrance: menu items rise one after another */
    .dv-drawer__menu > li, .dv-drawer__foot > * { opacity: 0; transform: translateY(.75rem); transition: opacity .4s ease, transform .5s var(--m47-ease); }
    .dv-drawer.is-open .dv-drawer__menu > li, .dv-drawer.is-open .dv-drawer__foot > * { opacity: 1; transform: none; }
    .dv-drawer.is-open .dv-drawer__menu > li:nth-child(1) { transition-delay: .08s; }
    .dv-drawer.is-open .dv-drawer__menu > li:nth-child(2) { transition-delay: .12s; }
    .dv-drawer.is-open .dv-drawer__menu > li:nth-child(3) { transition-delay: .16s; }
    .dv-drawer.is-open .dv-drawer__menu > li:nth-child(4) { transition-delay: .2s; }
    .dv-drawer.is-open .dv-drawer__menu > li:nth-child(5) { transition-delay: .24s; }
    .dv-drawer.is-open .dv-drawer__menu > li:nth-child(n+6) { transition-delay: .28s; }
    .dv-drawer.is-open .dv-drawer__foot > * { transition-delay: .3s; }
    html.dv-leaving .dv-drawer__panel { transition: none !important; }

    /* WordPress toolbar (logged-in editors only) is hidden while the drawer is open */
    html.m47-lock #wpadminbar { display: none !important; }
    .dv-drawer__menu a { justify-content: flex-start !important; text-align: left; }
}
@media (max-width: 767.98px) {
    .dv-drawer__panel { width: 100%; box-shadow: none; }
    .dv-drawer__backdrop { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .dv-drawer__panel, .dv-drawer__menu > li, .dv-drawer__foot > *, .dv-drawer .sub-menu { transition: none !important; }
}

/* Page behind an open overlay: fixed in place by JS (iOS-safe scroll lock) */
body.m47-locked { position: fixed !important; left: 0; right: 0; width: 100%; overflow: hidden !important; }

/* ==========================================================================
   2. FULL-SCREEN MODALS (phones)
   ========================================================================== */
@media (max-width: 767.98px) {
    /* consultation and other .devoso-modal */
    .devoso-modal { padding: 0 !important; align-items: stretch !important; justify-content: stretch !important; }
    .devoso-modal__backdrop { background: var(--m47-k) !important; }
    .devoso-modal .devoso-modal__dialog, #modal-consultation .devoso-modal__dialog {
        max-width: none !important; width: 100% !important; height: 100vh; height: 100dvh; max-height: none !important; margin: 0 !important;
        transform: translateY(2.5rem) !important; opacity: 0; transition: transform .42s var(--m47-ease), opacity .3s ease !important;
    }
    .devoso-modal.is-open .devoso-modal__dialog, #modal-consultation.is-open .devoso-modal__dialog { transform: none !important; opacity: 1; }
    .devoso-modal__dialog::before {
        content: ""; position: absolute; z-index: 3; left: 0; right: 0; top: 0; height: calc(3.75rem + env(safe-area-inset-top));
        background: rgba(255, 255, 255, .94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); pointer-events: none;
    }
    .devoso-modal .devoso-modal__content, #modal-consultation .devoso-modal__content {
        position: static !important; height: 100% !important; max-height: none !important; border-radius: 0 !important; border: 0 !important; box-shadow: none !important;
        overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
        padding: calc(4.5rem + env(safe-area-inset-top)) var(--m47-g) calc(2rem + env(safe-area-inset-bottom)) !important;
    }
    .devoso-modal .devoso-modal__body, #modal-consultation .devoso-modal__body { overflow: visible !important; max-height: none !important; padding: 0 !important; }
    .devoso-modal .devoso-modal__header { padding: 0 0 1rem !important; }
    #modal-consultation .devoso-modal__title, .devoso-modal__title { font-size: 1.65rem !important; line-height: 1.2; }
    .devoso-modal__subtitle { font-size: .95rem !important; }
    .devoso-modal .devoso-modal__close {
        position: absolute !important; z-index: 4; top: calc(.5rem + env(safe-area-inset-top)) !important; right: .75rem !important;
        width: 2.75rem !important; height: 2.75rem !important; background: var(--m47-soft) !important; color: var(--m47-k) !important; border: 1px solid var(--line) !important;
    }
    .dv-mdl { grid-template-columns: 1fr !important; gap: 1.25rem !important; }

    /* native <dialog class="dvm"> (practice + Telegram post modals) */
    dialog.dvm, dialog.dvm--tg {
        width: 100vw; max-width: none !important; height: 100vh; height: 100dvh; max-height: none !important; margin: 0; inset: 0; border-radius: 0;
    }
    dialog.dvm[open] { animation: m47Up .42s var(--m47-ease); }
    dialog.dvm::before {
        content: ""; position: absolute; z-index: 3; left: 0; right: 0; top: 0; height: calc(3.75rem + env(safe-area-inset-top));
        background: rgba(255, 255, 255, .94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); pointer-events: none;
    }
    dialog.dvm .dvm__box {
        position: static; height: 100%; max-height: none; border-radius: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
        padding: calc(4.5rem + env(safe-area-inset-top)) var(--m47-g) calc(2rem + env(safe-area-inset-bottom)) !important;
    }
    dialog.dvm .dvm__x {
        position: absolute; z-index: 4; top: calc(.5rem + env(safe-area-inset-top)); right: .75rem; width: 2.75rem; height: 2.75rem;
        background: var(--m47-soft); border: 1px solid var(--line); color: var(--m47-k);
    }
    dialog.dvm .dvm__box h3 { margin-right: 0; font-size: 1.55rem; }
    .dvm-tg__head { margin-right: 0 !important; }
    .dvm-tg__foot { flex-direction: column; }
    .dvm-tg__btn { width: 100%; justify-content: center; min-height: 3rem; }

    /* search palette */
    .dv-search__box {
        position: absolute !important; inset: 0 !important; width: 100% !important; max-width: none !important; height: 100vh; height: 100dvh; max-height: none !important;
        margin: 0 !important; border-radius: 0 !important; overflow-y: auto; overscroll-behavior: contain;
        padding: calc(1rem + env(safe-area-inset-top)) var(--m47-g) calc(1.5rem + env(safe-area-inset-bottom)) !important;
    }
    .dv-search__field { min-height: 3.25rem; }
    .dv-search__field kbd { display: none; }
    .m47-sclose { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; margin-right: -.4rem; border-radius: 50%; border: 1px solid var(--line); background: var(--m47-soft); color: var(--m47-k); cursor: pointer; padding: 0; }
    html.m47-lock #wpadminbar { display: none !important; }

    /* cookie banner: compact bottom sheet above the quick-action bar; settings open full-screen */
    .cookie-consent { left: .75rem !important; right: .75rem !important; bottom: calc(.75rem + env(safe-area-inset-bottom)) !important; width: auto !important; max-width: none !important; border-radius: 1.25rem !important; }
    .cookie-consent__inner { padding: 1rem 1.1rem !important; }
    .cookie-consent__text { font-size: .9rem !important; color: #3a4648 !important; }
    .cookie-consent__actions .cookie-btn { min-height: 2.75rem; }
    .cookie-consent--expanded { top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; border-radius: 0 !important; max-height: none !important; overflow-y: auto; overscroll-behavior: contain; }
    .cookie-consent--expanded .cookie-consent__actions { flex-wrap: wrap !important; gap: .5rem !important; }
    .cookie-consent--expanded .cookie-consent__actions .cookie-btn:not(.cookie-btn--close) { flex: 1 1 30%; min-height: 3rem; justify-content: center; margin: 0 !important; }
    .cookie-consent--expanded .cookie-btn--close { position: absolute; top: calc(.75rem + env(safe-area-inset-top)); right: .75rem; width: 2.75rem !important; height: 2.75rem !important; }
    .cookie-consent--expanded .cookie-consent__main { padding-right: 3rem; }
    .cookie-consent--expanded .cookie-consent__inner { padding: calc(1.25rem + env(safe-area-inset-top)) var(--m47-g) calc(1.5rem + env(safe-area-inset-bottom)) !important; }
}
@keyframes m47Up { from { transform: translateY(2.5rem); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    dialog.dvm[open] { animation: none !important; }
    .devoso-modal .devoso-modal__dialog { transition: none !important; }
}

/* ==========================================================================
   3. PHONES: base reading comfort
   ========================================================================== */
@media (max-width: 767.98px) {
    html { -webkit-text-size-adjust: 100%; }
    body { font-size: 1rem; line-height: 1.6; padding-bottom: calc(var(--m47-bar) + env(safe-area-inset-bottom)); }

    /* one gutter everywhere */
    .dv-wrap, .container, .b43 .dv-wrap { width: auto !important; max-width: none !important; margin-left: var(--m47-g) !important; margin-right: var(--m47-g) !important; padding-left: 0 !important; padding-right: 0 !important; }
    :is(.dv-wrap, .container) :is(.dv-wrap, .container) { margin-left: 0 !important; margin-right: 0 !important; }

    /* section rhythm */
    main :is(.dv-sec, .v3-sec, .dss-sec, .svc-block) { padding-top: var(--m47-sec) !important; padding-bottom: var(--m47-sec) !important; }
    main .ab-slide { min-height: 0 !important; padding-top: var(--m47-sec) !important; padding-bottom: var(--m47-sec) !important; }
    main .py-5 { padding-top: var(--m47-sec) !important; padding-bottom: var(--m47-sec) !important; }

    /* headings */
    main h1:not(.dv-h46__l1) { font-size: clamp(1.9rem, 8.4vw, 2.3rem) !important; line-height: 1.14 !important; letter-spacing: -.015em; overflow-wrap: break-word; hyphens: auto; }
    main :is(.dv-title, .v3-title, .dss-h2, .ab-h, .b43-h2, .dvc-h, .dvq__h, .dva__h, .section-title, .dvh-tg46__t, .v3-faqhub__title, .cta-section__title, .dv-ev-next__title) { font-size: clamp(1.5rem, 6.6vw, 1.75rem) !important; line-height: 1.2 !important; letter-spacing: -.01em; }
    main .ab-h--xl { font-size: clamp(1.9rem, 8.4vw, 2.3rem) !important; }
    main :is(.article-content, .entry-content, .dv-cms) h2 { font-size: 1.5rem !important; line-height: 1.25 !important; margin-top: 2rem; }
    main :is(.article-content, .entry-content, .dv-cms) h3 { font-size: 1.22rem !important; line-height: 1.3 !important; }
    main h3 { line-height: 1.3; }

    /* text */
    main :is(.article-content, .entry-content, .dv-cms) :is(p, li) { font-size: 1.04rem !important; line-height: 1.68 !important; }
    main :is(.dv-sub, .v3-sub, .v3-lead, .v3-phero__lead, .dv-h46__lead, .b43-hero__lead, .dv-ab47__lead, .dvh__text) { font-size: 1.02rem !important; line-height: 1.6 !important; }
    main :is(.dv-eyebrow, .b43-eyebrow, .ab-eb__t) { font-size: .78rem !important; letter-spacing: .1em; }
    /* no tiny grey text */
    main :is(small, .dvh-m43__lbl, .dvp-plan__badge, .dvp-calc__lbl, .b43-meta__topic, .dv-ph46__t, .dss-hero__navt, .dv-help46__eb, .dv-ev-next__kicker, .dvc-rt__note, .dv-lf__hint, .breadcrumb_last) { font-size: max(.8rem, 12px) !important; }
    main :is(.svc-card__tags span, .dvh-arena__pts span, .dv-tag) { font-size: .8rem !important; }
    .b43-meta, .b43-meta time { font-size: .8rem !important; }

    /* breadcrumbs: one line, scrollable */
    main :is(.dv-crumbs, #breadcrumbs, nav[aria-label="breadcrumbs"]) { white-space: nowrap; overflow-x: auto; scrollbar-width: none; font-size: .82rem !important; }
    main :is(.dv-crumbs, #breadcrumbs)::-webkit-scrollbar { display: none; }

    /* buttons: comfortable, full width in CTA groups */
    main :is(.dv-btn, .v3-btn, .btn) { min-height: 3rem; }
    main :is(.dv-h46__cta, .dvh-ret__cta, .dvh-m43__acts, .v3-inline-cta, .v3-cta__actions, .dv-help46__act, .dss-hero__cta, .dvp-hero__cta, .cta-section__actions) { display: flex !important; flex-direction: column; align-items: stretch !important; gap: .6rem; }
    main :is(.dv-h46__cta, .dvh-ret__cta, .dvh-m43__acts, .v3-inline-cta, .v3-cta__actions, .dv-help46__act, .dss-hero__cta, .dvp-hero__cta, .cta-section__actions) > :is(a, button) { width: 100%; justify-content: center; }

    /* forms */
    main :is(input[type="text"], input[type="tel"], input[type="email"], input[type="search"], input[type="number"], select, textarea), .devoso-modal :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) { font-size: 1rem !important; min-height: 3rem; }
    .dv-lf__ok { display: flex !important; gap: .65rem; align-items: flex-start; min-height: 2.75rem; font-size: .92rem; line-height: 1.45; }
    .dv-lf__ok input { flex: none; width: 1.25rem; height: 1.25rem; margin: .1rem 0 0 !important; }
    .dv-lf__foot { flex-direction: column; align-items: stretch !important; }
    .dv-lf__btn { width: 100%; justify-content: center; min-height: 3.25rem; }
    main textarea, .devoso-modal textarea { min-height: 7rem; }
    .dv-lf__grid { grid-template-columns: 1fr !important; }

    /* cards: one radius */
    main :is(.dv-card, .v3-card, .svc-card, .dvx-card, .dvp-plan, .dvi-card, .b43-card, .dss-card, .dv-ev, .dvh-arena, .dvp-deliv__item, .dvx-res__item, .dvp-law, .dvx-other__item, .dvx-risk, .dvx-myth, .v3-member) { border-radius: var(--m47-r) !important; }

    /* decorative art off on phones */
    .dv-hero__glow, .dv-hero__spot, .dss-hero__glow, .dv-f42__word, .dv-orb, .dv-h46__word, .dv-hero__scene, .dvh-arena__n, .dv-adv43__bar,
    .ab-progress, .ab-cover__hint, main [class*="__glow"], main [class*="__spot"] { display: none !important; }
    main [data-animate] { transition-duration: .35s !important; }

    /* sticky header slimmer */
    .dv-header .dv-burger, .dv-header .dv-iconbtn { width: 2.75rem; height: 2.75rem; }

    /* Telegram strip on top: one compact row */
    .tg-banner { padding: .45rem var(--m47-g) !important; }
    .tg-banner__inner { gap: .6rem !important; }
    .tg-banner__title { font-size: .86rem !important; line-height: 1.25; }
    .tg-banner__btn { min-height: 2.25rem; padding: 0 .9rem !important; font-size: .8rem !important; }
    .tg-banner__close { width: 2.75rem !important; height: 2.75rem !important; margin: -.4rem -.6rem -.4rem 0; }
    .dv-topbar__mail { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .82rem; }
    .dv-topbar .lang-switcher__item { min-height: 2.25rem; min-width: 2.75rem; display: inline-flex; align-items: center; justify-content: center; }

    /* bottom quick-action bar */
    .dv-mbar { min-height: var(--m47-bar); background: rgba(18, 23, 24, .97) !important; }
    .dv-mbar a, .dv-mbar button { min-height: var(--m47-bar); justify-content: center; font-size: .78rem !important; font-weight: 600; letter-spacing: .01em; }
    .dv-mbar svg { width: 1.3rem !important; height: 1.3rem !important; color: var(--m47-t3) !important; }
    .dv-mbar button { background: var(--brand) !important; }
    .dv-mbar button svg { color: #fff !important; }
    .scroll-to-top { bottom: calc(var(--m47-bar) + .85rem + env(safe-area-inset-bottom)) !important; right: .85rem !important; width: 2.75rem !important; height: 2.75rem !important; }
    body:not(.m47-bar-on) .scroll-to-top { bottom: calc(1rem + env(safe-area-inset-bottom)) !important; }
    .cookie-consent:not(.cookie-consent--expanded) { bottom: calc(var(--m47-bar) + .6rem + env(safe-area-inset-bottom)) !important; }
}

/* ==========================================================================
   4. PHONES: horizontal rails for long card lists (swipe, snap)
   ========================================================================== */
@media (max-width: 767.98px) {
    :is(.dvh-arenas__grid, .v3-team__grid, .v3-rev__list, .v3-mist__grid, .v3-posts .dv-grid, .svc-block--alt .dv-grid, .dv-adv43__list,
        .dvx-cards, .dvx-risks, .dvx-myths, .dvp-plans, .dvp-deliv, .dvx-res, .dvp-laws__list, .dvx-other,
        .ab-clients .ab-cards, .ab-practices .ab-cards, .ab-people, .dss-when, .dss-risks, .dvi-grid) {
        display: flex !important; flex-wrap: nowrap !important; grid-template-columns: none !important; gap: .75rem !important;
        overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
        margin-left: calc(var(--m47-g) * -1) !important; margin-right: calc(var(--m47-g) * -1) !important;
        padding: .25rem var(--m47-g) .75rem !important; scroll-padding-left: var(--m47-g);
        align-items: stretch !important; -webkit-overflow-scrolling: touch;
    }
    :is(.dvh-arenas__grid, .v3-team__grid, .v3-rev__list, .v3-mist__grid, .v3-posts .dv-grid, .svc-block--alt .dv-grid, .dv-adv43__list,
        .dvx-cards, .dvx-risks, .dvx-myths, .dvp-plans, .dvp-deliv, .dvx-res, .dvp-laws__list, .dvx-other,
        .ab-clients .ab-cards, .ab-practices .ab-cards, .ab-people, .dss-when, .dss-risks, .dvi-grid)::-webkit-scrollbar { display: none; }
    :is(.dvh-arenas__grid, .v3-team__grid, .v3-rev__list, .v3-mist__grid, .v3-posts .dv-grid, .svc-block--alt .dv-grid, .dv-adv43__list,
        .dvx-cards, .dvx-risks, .dvx-myths, .dvp-plans, .dvp-deliv, .dvx-res, .dvp-laws__list, .dvx-other,
        .ab-clients .ab-cards, .ab-practices .ab-cards, .ab-people, .dss-when, .dss-risks, .dvi-grid) > * {
        flex: 0 0 84% !important; width: 84% !important; max-width: 22rem !important; min-width: 0 !important; scroll-snap-align: start;
        margin: 0 !important; grid-column: auto !important; transform: none !important;
    }
    .v3-team__grid > * { flex-basis: 62% !important; width: 62% !important; }
    .v3-posts .dv-grid > *, .svc-block--alt .dv-grid > * { flex-basis: 80% !important; }
    :is(.dvh-arenas__grid, .v3-team__grid, .v3-rev__list, .v3-mist__grid, .v3-posts .dv-grid, .svc-block--alt .dv-grid, .dv-adv43__list,
        .dvx-cards, .dvx-risks, .dvx-myths, .dvp-plans, .dvp-deliv, .dvx-res, .dvp-laws__list, .dvx-other,
        .ab-clients .ab-cards, .ab-practices .ab-cards, .ab-people, .dss-when, .dss-risks, .dvi-grid) > :is([data-animate], .ab-rv) { opacity: 1 !important; visibility: visible !important; }
    /* stop hover-lift transforms that clip inside rails */
    :is(.dvh-arenas__grid, .dvx-cards, .dvp-plans, .v3-rev__list) > *:hover { transform: none !important; }

    /* rail dots (created by JS) */
    .m47-dots { display: flex; justify-content: center; gap: .4rem; margin: .35rem 0 0; padding: 0; list-style: none; }
    .m47-dots span { width: .45rem; height: .45rem; border-radius: 999px; background: currentColor; opacity: .22; transition: width .3s var(--m47-ease), opacity .3s; }
    .m47-dots span.is-on { width: 1.4rem; opacity: .7; }
    :is(.dv-sec--dark, .dvs-risks, .dvh-arenas, .ab-slide--dark, .dss-sec--ink) .m47-dots { color: #fff; }

    /* compact cards inside rails */
    :is(.dvh-arenas__grid, .v3-mist__grid, .dv-adv43__list, .dvx-cards, .dvx-risks, .dvx-myths, .dvp-deliv, .dvx-res, .dvp-laws__list, .dvx-other, .ab-cards, .dss-when, .dss-risks, .dvi-grid) :is(h3, .dvh-arena__t) { font-size: 1.22rem !important; line-height: 1.28 !important; }
    .dvh-arena { padding: 1.25rem !important; }
    .dvh-arena__d { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
    .dvh-arena__pts span:nth-child(n+3) { display: none !important; }
    .dvx-card p, .dvx-risk p, .dvp-deliv__item p, .dvx-res__item p, .dvp-law p, .dvx-other__item p, .dss-card p, .ab-cards p { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
    .v3-rev__list .v3-card p { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
    .dv-card__title { font-size: 1.2rem !important; line-height: 1.3 !important; }
    .dv-card__media { aspect-ratio: 2 / 1 !important; height: auto !important; }
    .dv-card__media .dv-tag--float { display: none !important; }
    .v3-member__photo { aspect-ratio: 1 / 1 !important; height: auto !important; }
    .dvh-tg46__stats { display: none !important; }
    .dv-grid .dv-card__excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
}

/* ==========================================================================
   5. PHONES: page groups
   ========================================================================== */
@media (max-width: 767.98px) {
    /* home hero + trust strip */
    .dv-h46__cards { gap: .6rem !important; }
    .dv-h46__card { padding: 1rem !important; min-height: 0 !important; border-radius: 1rem !important; }
    .dv-trust43__list { grid-template-columns: 1fr 1fr !important; gap: 0 !important; }
    .dv-trust43__item { padding: 1rem .25rem !important; align-items: flex-start !important; gap: .6rem !important; border: 0 !important; }
    .dv-trust43__item strong { font-size: .92rem; line-height: 1.25; display: block; }
    .dv-trust43__item small { font-size: .78rem !important; line-height: 1.35; display: block; }
    .dv-trust43__ico { width: 2.25rem !important; height: 2.25rem !important; flex: none; }

    /* «for whom» panels (home, audiences): shorter */
    .dvh-m43__head { display: block !important; }
    .dvh-m43__head .dvh-m43__ico { margin-bottom: .75rem; }
    .dvh-m43__head p { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
    .dvh-m43__risks small, .dvh-m43__chips { display: none !important; }
    .dvh-m43__risks li { align-items: center !important; }
    .dvh-m43__more { display: inline-flex; align-items: center; min-height: 2.75rem; justify-content: center; }

    /* section intros: left-aligned on phones reads easier */
    main :is(.dv-sec, .v3-sec) :is(.dv-sub, .v3-sub) { text-align: left; }

    /* practice pages */
    .dvp-vis, .dvp-kpis > div:not(.dvp-kpis__cta), .dvp-inds, .dvp-scene { display: none !important; }
    .dvp-kpis { display: block !important; margin: 0 !important; }
    .dvp-hero__points { margin-bottom: 1rem !important; }
    .dvp-hero__lead { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
    .dvp-bar { min-height: 0 !important; }
    .dvp-bar a { min-height: 2.75rem; display: inline-flex; align-items: center; }
    .v3-expert__photo { height: auto !important; aspect-ratio: 16 / 10; }
    main :is(.dvp-sit__panel, .dvx-road__panel, .v3-tabs__panel, .dvx-ov__panel) h3 { font-size: 1.35rem !important; line-height: 1.25 !important; }
    .dvp-sit__tab { white-space: normal !important; width: 72vw !important; text-align: left; }
    .dss-plist :is(p, .dss-pcard__d) { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

    /* about page */
    .ab-next, .ab-sfoot { display: none !important; }
    .ab-people > * { flex-basis: 84% !important; width: 84% !important; }

    /* sub-service pages */
    .dss-hero__nav { display: none !important; }

    /* services catalog: shorter cards */
    .svc-catalog { gap: .75rem !important; }
    .svc-card { padding: 1.25rem !important; }
    .svc-card__desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    .svc-card__tags { display: none !important; }

    /* blog / news: compact list cards (thumbnail + text) */
    .b43-main .b43-grid { gap: .75rem !important; }
    .b43-main .b43-card { display: grid !important; grid-template-columns: 6.25rem minmax(0, 1fr); align-items: stretch; overflow: hidden; }
    .b43-main .b43-card__media { height: auto !important; min-height: 100%; aspect-ratio: auto !important; border-radius: 0 !important; }
    .b43-main .b43-card__media .dv-ph46__w, .b43-main .b43-card__media .dv-ph46__t { display: none; }
    .b43-main .b43-card__body { padding: .85rem 1rem !important; gap: .35rem !important; }
    .b43-main .b43-card__title { font-size: 1.04rem !important; line-height: 1.3 !important; margin: 0 !important; }
    .b43-main .b43-card__exc, .b43-main .b43-card__go, .b43-main .b43-meta__read { display: none !important; }
    .b43-chips { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; margin-left: calc(var(--m47-g) * -1); margin-right: calc(var(--m47-g) * -1); padding: 0 var(--m47-g) .25rem; }
    .b43-chips::-webkit-scrollbar { display: none; }
    .b43-chip { flex: none; min-height: 2.75rem; }
    .b43-card--lead .b43-card__title { font-size: 1.55rem !important; line-height: 1.2 !important; }
    .b43-card--lead .b43-card__body { padding-top: 1rem !important; }
    .b43-top .b43-card--lead .b43-card__exc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

    /* chips rows everywhere: one swipeable line */
    main .dv-chips { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; margin-left: calc(var(--m47-g) * -1); margin-right: calc(var(--m47-g) * -1); padding: 0 var(--m47-g) .25rem !important; scroll-snap-type: x proximity; }
    main .dv-chips::-webkit-scrollbar { display: none; }
    main .dv-chip { flex: none; min-height: 2.75rem; scroll-snap-align: start; }

    /* tab rows: one swipeable line instead of a pile of pills */
    main :is(.dvh-sit__tabs, .dvp-sit__list, .dvx-ov__nav) {
        display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; gap: .5rem !important; grid-template-columns: none !important;
        margin-left: calc(var(--m47-g) * -1) !important; margin-right: calc(var(--m47-g) * -1) !important; padding: 0 var(--m47-g) .35rem !important; scroll-snap-type: x proximity;
    }
    main :is(.dvh-sit__tabs, .dvp-sit__list, .dvx-ov__nav)::-webkit-scrollbar { display: none; }
    main :is(.dvh-sit__tabs, .dvp-sit__list, .dvx-ov__nav) > * { flex: none !important; width: auto !important; max-width: 78vw; min-height: 2.75rem; scroll-snap-align: start; white-space: nowrap; }
    .dv-ab47__prs { display: none !important; }
    .dvh-ret__list { gap: .5rem !important; }
    .dvh-ret__list > li { padding: .8rem 1rem !important; min-height: 0 !important; border-radius: .9rem !important; font-size: .98rem; }
    .dvh-sit__t small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

    /* accordions */
    .v3-acc__item summary, .v3-acc__q, .dss-faq__item summary { min-height: 3.25rem; font-size: 1.02rem !important; line-height: 1.4; }

    /* article */
    .dv-ah46__media-wrap:has(.dv-ph46) { display: none !important; }
    .dv-ah__lead { font-size: 1.04rem !important; line-height: 1.6 !important; }
    .b43-stats { display: none !important; }
    .dv-article__share { flex-wrap: wrap; }
    .dv-article__share .dv-sh { width: 2.75rem; height: 2.75rem; }
    main :is(.article-content, .dv-cms) img { border-radius: .875rem; height: auto; }
    main :is(.article-content, .dv-cms) table { display: block; overflow-x: auto; max-width: 100%; }

    /* events */
    .dv-ev-next__media { height: 9rem !important; min-height: 0 !important; }
    .dv-evcal__nav .dv-iconbtn { width: 2.75rem; height: 2.75rem; }

    /* contacts */
    .dvc-hero__bg { display: none !important; }
    .dvc-router :is(.dv-pills, .dvc-rt__chips) { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; gap: .5rem; margin-left: calc(var(--m47-g) * -1); margin-right: calc(var(--m47-g) * -1); padding: 0 var(--m47-g) .35rem; }
    .dvc-router :is(.dv-pills, .dvc-rt__chips)::-webkit-scrollbar { display: none; }
    .dvc-router :is(.dv-pill, .dvc-rt__chips > *) { flex: none; min-height: 2.75rem; }
    .dvc-chan__i { min-height: 3.5rem; }

    /* footer: tighter, link columns become an accordion (JS) */
    .dv-f42 { padding-top: 2.75rem !important; }
    .dv-f42__top { gap: 1.5rem !important; }
    .dv-f42__brand p { font-size: .95rem; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    .dv-f42__reach { grid-template-columns: 1fr !important; gap: .5rem !important; }
    .dv-f42__tile { min-height: 3.5rem; padding: .75rem 1rem !important; border-radius: 1rem !important; }
    .dv-f42__grid { grid-template-columns: 1fr !important; gap: 0 !important; margin-top: 1.5rem !important; }
    .dv-f42__col { border-top: 1px solid rgba(255, 255, 255, .1); }
    .dv-f42__col:last-child { border-bottom: 1px solid rgba(255, 255, 255, .1); }
    .dv-f42__h { margin: 0 !important; font-size: 1rem !important; }
    .m47-fbtn { all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 3.25rem; cursor: pointer; font: inherit; color: inherit; }
    .m47-fbtn svg { width: 1rem; height: 1rem; transition: transform .3s var(--m47-ease); opacity: .7; }
    .m47-fbtn[aria-expanded="true"] svg { transform: rotate(180deg); }
    .m47-fbtn:focus-visible { outline: 2px solid var(--m47-t2); outline-offset: 2px; }
    .dv-f42__col.m47-fcol > ul { display: none !important; }
    .dv-f42__col.m47-fcol.m47-open > ul { display: grid !important; gap: 0 !important; padding: 0 0 .75rem !important; }
    .dv-f42__col ul a { display: flex; align-items: center; min-height: 2.75rem; font-size: .98rem !important; }
    .dv-f42__bottom { flex-direction: column; align-items: flex-start !important; gap: .75rem !important; font-size: .85rem !important; padding-bottom: 1rem; }
    .dv-f42__bottom nav { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
    .dv-f42__bottom nav a { min-height: 2.75rem; display: inline-flex; align-items: center; }
    .v3-cities { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

    /* «Показати ще» and «Детальніше» (created by JS) */
    .m47-hide { display: none !important; }
    .m47-more, .m47-rmore {
        display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; min-height: 3rem; margin: 1rem 0 0;
        border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--m47-k); font: 600 .98rem/1.2 var(--f-body); cursor: pointer;
    }
    .m47-rmore { width: auto; display: inline-flex; min-height: 2.75rem; padding: 0 1.1rem; margin-top: .5rem; }
    .m47-more svg, .m47-rmore svg { width: 1rem; height: 1rem; transition: transform .3s var(--m47-ease); }
    .m47-more[aria-expanded="true"] svg, .m47-rmore[aria-expanded="true"] svg { transform: rotate(180deg); }
    :is(.dv-sec--dark, .ab-slide--dark, .dss-sec--ink) :is(.m47-more, .m47-rmore) { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .24); }
    .m47-clamp { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
    .m47-fold { max-height: var(--m47-fold, 22rem); overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 65%, transparent); mask-image: linear-gradient(180deg, #000 65%, transparent); }
    .v3-seo__text { max-height: 15rem; }
}

/* very small phones */
@media (max-width: 359.98px) {
    :root { --m47-g: 1rem; }
    .dv-trust43__list { grid-template-columns: 1fr !important; }
}
