:root {
        --text-scale: 1;
        font-size: calc(100% * var(--text-scale));
    }

    /* Делаем текст и блоки эластичными при увеличении */
    html, body {
        max-width: 100%;
        overflow-x: hidden;
    }

    body {
        line-height: 1.5;
        text-size-adjust: 100%;
    }

    * {
        -webkit-text-size-adjust: 100%;
    }

    img, video, svg, canvas {
        max-width: 100%;
        height: auto;
    }

    /* Разрешаем переносы, чтобы не появлялся горизонтальный скролл */
    p, li, a, h1, h2, h3, h4, h5, h6, .t-descr, .t-name, [class*="t-"] {
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
        font-size: inherit; /* подчиняемся :root */
    }

    /* Видимый фокус для всех интерактивных элементов */
    :is(a, button, [role="button"], [tabindex], input, textarea, select):focus-visible {
        outline: 3px solid #14509e;
        outline-offset: 2px;
    }

    /* Не теряем фокус у элементов без собственных стилей */
    [tabindex="-1"]:focus {
        outline: none;
    }

    /* Декоративные картинки, помеченные атрибутами ниже, скрываем от SR */
    img[aria-hidden="true"], img[role="presentation"] {
        pointer-events: none;
    }

    /* Skip-link (если у страницы не было — создадим через JS, но здесь стили) */
    .a11y-skiplink {
        position: absolute;
        left: 20px;
        top: 0;
        z-index: 99999;
        transform: translateY(-200%);
        transition: transform .2s ease;
        padding: .5rem .75rem;
        border-radius: .5rem;
        background: #c7d2e9;
        color: #000;
    }

    .a11y-skiplink:focus {
        transform: translateY(20px);
    }