/* =========================================================
   VOXELMARKET — LEGAL PAGES
   Layout matched to the supplied desktop/mobile references.
   The hero background image can be tuned separately later.
   ========================================================= */

.vm-legal-page {
    --vm-legal-red: #e30613;
    --vm-legal-black: #090909;
    --vm-legal-text: #292929;
    --vm-legal-muted: #747474;
    --vm-legal-soft: #f7f7f7;
    --vm-legal-border: #e7e7e7;

    /* Wide editorial layout from the reference. */
    --vm-legal-max-width: 1920px;
    --vm-legal-gutter: clamp(24px, 3.9vw, 64px);

    /* Change this only when the legal navigation must sit below a fixed header. */
    --vm-legal-sticky-top: 0px;

    width: 100%;
    background: #fff;
    color: var(--vm-legal-black);
}

.vm-legal-page,
.vm-legal-page * {
    box-sizing: border-box;
}

.vm-legal-page a {
    -webkit-tap-highlight-color: transparent;
}


/* =========================================================
   HERO
   ========================================================= */

.vm-legal-page .vm-legal-hero {
    width: 100%;
    min-height: 225px !important;
    height: auto !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;

    padding: 27px var(--vm-legal-gutter) 30px !important;

    background-color: #fff;
    background-repeat: no-repeat;
    background-position: right center;
    background-size: auto 100%;
    overflow: hidden;
}

.vm-legal-page .vm-legal-hero-copy {
    width: min(
        calc(100vw - (2 * var(--vm-legal-gutter))),
        var(--vm-legal-max-width)
    ) !important;
    max-width: none !important;
    margin: 0 auto !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
}

.vm-legal-page .vm-legal-breadcrumb {
    margin: 0 0 19px !important;
}

.vm-legal-page .vm-legal-breadcrumb p,
.vm-legal-page .vm-legal-breadcrumb .elementor-widget-container {
    margin: 0 !important;

    font-size: 11px !important;
    line-height: 1.35 !important;
    font-weight: 500 !important;
    letter-spacing: 0.075em !important;
    text-transform: uppercase !important;

    color: var(--vm-legal-muted) !important;
}

.vm-legal-page .vm-legal-breadcrumb a {
    color: var(--vm-legal-red) !important;
    text-decoration: none !important;
}

.vm-legal-page .vm-legal-title {
    margin: 0 !important;
}

.vm-legal-page .vm-legal-title .elementor-heading-title {
    margin: 0 !important;

    font-size: clamp(66px, 4.7vw, 76px) !important;
    line-height: 0.94 !important;
    font-weight: 700 !important;
    letter-spacing: -0.058em !important;

    color: var(--vm-legal-black) !important;
}

.vm-legal-page .vm-legal-title .elementor-heading-title::after {
    content: ".";
    color: var(--vm-legal-red);
}

.vm-legal-page .vm-legal-date {
    margin-top: 23px !important;
}

.vm-legal-page .vm-legal-date p,
.vm-legal-page .vm-legal-date .elementor-widget-container,
.vm-legal-page .vm-legal-date .elementor-icon-list-text {
    margin: 0 !important;

    font-size: 14px !important;
    line-height: 1.45 !important;
    font-weight: 400 !important;

    color: #686868 !important;
}

.vm-legal-page .vm-legal-date .elementor-icon-list-item,
.vm-legal-page .vm-legal-date .elementor-icon-box-wrapper {
    align-items: center !important;
    gap: 10px !important;
}


/* =========================================================
   LEGAL NAVIGATION
   ========================================================= */

.vm-legal-page .vm-legal-nav-wrap {
    position: sticky;
    top: var(--vm-legal-sticky-top);
    z-index: 40;

    width: 100%;
    min-height: 80px;

    background: rgba(255, 255, 255, 0.98);
    border-top: 0;
    border-bottom: 1px solid var(--vm-legal-border);

    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.vm-legal-page .vm-legal-nav-wrap .elementor-widget-html,
.vm-legal-page .vm-legal-nav-wrap .elementor-widget-container {
    width: 100%;
}

/*
 * The shell is created by legal.js around the existing <nav>.
 * The navigation track scrolls independently, while the arrow stays fixed
 * at the right edge instead of travelling as the last slide.
 */
.vm-legal-page .vm-legal-nav-shell {
    position: relative;

    width: 100%;
    min-height: 80px;

    display: flex;
    align-items: stretch;

    overflow: hidden;
    background: #fff;
}

.vm-legal-page .vm-legal-nav {
    flex: 1 1 auto;

    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: 80px;

    margin: 0;
    padding: 0;

    display: flex;
    align-items: stretch;
    flex-wrap: nowrap;

    overflow-x: auto;
    overflow-y: hidden;

    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
}

.vm-legal-page .vm-legal-nav::-webkit-scrollbar {
    display: none;
}

.vm-legal-page .vm-legal-nav-item {
    position: relative;

    flex: 1 1 0;
    min-width: 0;
    min-height: 80px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 7px;

    padding: 12px 8px 16px;

    color: var(--vm-legal-black);
    text-decoration: none;

    border-right: 1px solid var(--vm-legal-border);
    scroll-snap-align: start;

    transition: color 0.22s ease, background-color 0.22s ease;
}

.vm-legal-page .vm-legal-nav-number {
    display: block;

    font-size: 18px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: -0.025em;

    color: #252525;
}

.vm-legal-page .vm-legal-nav-label {
    display: -webkit-box;

    font-size: 11px;
    line-height: 1.2;
    font-weight: 400;

    color: #686868;

    white-space: normal;
    overflow: hidden;
    overflow-wrap: anywhere;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.vm-legal-page .vm-legal-nav-item::after {
    content: "";

    position: absolute;
    left: 8px;
    bottom: -1px;

    width: 65px;
    height: 3px;

    background: var(--vm-legal-red);

    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.24s ease;
}

.vm-legal-page .vm-legal-nav-item.is-active .vm-legal-nav-number,
.vm-legal-page .vm-legal-nav-item.is-active .vm-legal-nav-label {
    color: var(--vm-legal-red);
}

.vm-legal-page .vm-legal-nav-item.is-active .vm-legal-nav-number {
    font-weight: 650;
}

.vm-legal-page .vm-legal-nav-item.is-active::after {
    transform: scaleX(1);
}

/*
 * The button is a fixed navigation cell. The circle is drawn on its <span>,
 * so the solid white cell can fully cover the tab underneath it.
 */
.vm-legal-page .vm-legal-nav-next {
    position: relative;
    z-index: 3;

    flex: 0 0 92px;
    width: 92px;
    min-width: 92px;
    min-height: 80px;

    margin: 0;
    padding: 0;

    display: grid;
    place-items: center;

    color: #1f1f1f;
    background: #fff;

    border: 0;
    border-left: 1px solid var(--vm-legal-border);
    border-radius: 0;

    font: inherit;
    line-height: 1;
    cursor: pointer;

    transition: background-color 0.22s ease;
}

.vm-legal-page .vm-legal-nav-next > span {
    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    color: currentColor;
    background: #fff;

    border: 1px solid #d8d8d8;
    border-radius: 50%;

    font-size: 20px;
    line-height: 1;

    transition:
        color 0.22s ease,
        border-color 0.22s ease,
        opacity 0.22s ease,
        transform 0.22s ease;
}

.vm-legal-page .vm-legal-nav-next:hover > span {
    color: var(--vm-legal-red);
    border-color: var(--vm-legal-red);
    transform: translateX(2px);
}

.vm-legal-page .vm-legal-nav-next:disabled {
    opacity: 1;
    cursor: default;
}

.vm-legal-page .vm-legal-nav-next:disabled > span {
    opacity: 0.35;
    transform: none;
}

@media (hover: hover) {
    .vm-legal-page .vm-legal-nav-item:hover {
        background: #fafafa;
    }

    .vm-legal-page .vm-legal-nav-item:hover .vm-legal-nav-number,
    .vm-legal-page .vm-legal-nav-item:hover .vm-legal-nav-label {
        color: var(--vm-legal-red);
    }
}


/* =========================================================
   CONTENT
   ========================================================= */

.vm-legal-page .vm-legal-content {
    width: min(
        calc(100vw - (2 * var(--vm-legal-gutter))),
        var(--vm-legal-max-width)
    ) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;

    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
}


/* =========================================================
   LEGAL SECTION — DESKTOP
   ========================================================= */

.vm-legal-page .vm-legal-section {
    position: relative;
    width: 100%;

    display: grid !important;
    grid-template-columns: 180px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: 70px !important;
    row-gap: 25px !important;

    padding: 34px 340px 42px 0 !important;

    border-bottom: 1px solid var(--vm-legal-border);

    scroll-margin-top: calc(var(--vm-legal-sticky-top) + 100px);
}

.vm-legal-page .vm-legal-section-index {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start !important;

    margin: 0 !important;
}

.vm-legal-page .vm-legal-section-index .elementor-heading-title {
    margin: 0 !important;

    font-size: 112px !important;
    line-height: 0.78 !important;
    font-weight: 500 !important;
    letter-spacing: -0.075em !important;

    color: #f0f0f0 !important;
}

/* Only the dedicated heading widget belongs in the first content row.
   Do not target every HTML widget, because the legal body may also use one. */
.vm-legal-page .vm-legal-section > .vm-legal-section-heading {
    grid-column: 2 !important;
    grid-row: 1 !important;

    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.vm-legal-page .vm-legal-section-title {
    margin: 0 !important;

    font-size: 30px !important;
    line-height: 1.1 !important;
    font-weight: 650 !important;
    letter-spacing: -0.035em !important;

    color: var(--vm-legal-black) !important;
}

.vm-legal-page .vm-legal-section-paragraph {
    display: block !important;
    margin: 0 0 10px !important;

    font-size: 16px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;

    color: var(--vm-legal-red) !important;
}

.vm-legal-page .vm-legal-section-title::after {
    content: "";

    display: block;
    width: 31px;
    height: 2px;
    margin-top: 14px;

    background: var(--vm-legal-red);
}


/* =========================================================
   LEGAL TEXT
   ========================================================= */

.vm-legal-page .vm-legal-text {
    grid-column: 2 !important;
    grid-row: 2 !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 720px;
    margin: 0 !important;
}

.vm-legal-page .vm-legal-text .elementor-widget-container,
.vm-legal-page .vm-legal-text,
.vm-legal-page .vm-legal-text p,
.vm-legal-page .vm-legal-text li {
    font-size: 13px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;
    color: var(--vm-legal-text) !important;
}

.vm-legal-page .vm-legal-text p {
    margin: 0 !important;
}

.vm-legal-page .vm-legal-text a {
    color: var(--vm-legal-red) !important;
    text-decoration: none !important;
}

.vm-legal-page .vm-legal-text a:hover {
    text-decoration: underline !important;
}

.vm-legal-page .vm-legal-text ol {
    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
    counter-reset: vm-legal-item;
}

.vm-legal-page .vm-legal-text ol[start="2"] {
    counter-reset: vm-legal-item 1;
}

.vm-legal-page .vm-legal-text ol[start="3"] {
    counter-reset: vm-legal-item 2;
}

.vm-legal-page .vm-legal-text ol[start="4"] {
    counter-reset: vm-legal-item 3;
}

.vm-legal-page .vm-legal-text ol[start="5"] {
    counter-reset: vm-legal-item 4;
}

.vm-legal-page .vm-legal-text ol[start="6"] {
    counter-reset: vm-legal-item 5;
}

.vm-legal-page .vm-legal-text ol[start="7"] {
    counter-reset: vm-legal-item 6;
}

.vm-legal-page .vm-legal-text ol[start="8"] {
    counter-reset: vm-legal-item 7;
}

.vm-legal-page .vm-legal-text ol[start="9"] {
    counter-reset: vm-legal-item 8;
}

.vm-legal-page .vm-legal-text ol[start="10"] {
    counter-reset: vm-legal-item 9;
}

.vm-legal-page .vm-legal-text ol > li {
    counter-increment: vm-legal-item;

    /* Do not use CSS Grid here. Elementor/TinyMCE can leave the sentence
       as a text node and the link as a separate child. In a grid those
       pieces are auto-placed into different cells/rows, which caused the
       first point to become extremely narrow and very tall on the frontend. */
    position: relative !important;
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0 0 12px !important;
    padding: 0 0 0 37px !important;

    list-style: none !important;
}

.vm-legal-page .vm-legal-text ol > li::marker {
    content: "";
}

.vm-legal-page .vm-legal-text ol > li::before {
    content: counter(vm-legal-item) ".";

    position: absolute !important;
    top: 0 !important;
    left: 0 !important;

    width: 25px !important;

    font-size: 12px !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;

    color: var(--vm-legal-red) !important;
}

/* Keep text and URL in one normal flow regardless of whether Elementor
   outputs plain text, a paragraph, a span, or a direct anchor. */
.vm-legal-page .vm-legal-text ol > li > p,
.vm-legal-page .vm-legal-text ol > li > span {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.vm-legal-page .vm-legal-text ol > li > a,
.vm-legal-page .vm-legal-text ol > li > p a,
.vm-legal-page .vm-legal-text ol > li > span a {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
}


/* =========================================================
   COMPANY INFORMATION CARD
   Supports both .vm-legal-info-row and separate <p> rows.
   ========================================================= */

.vm-legal-page .vm-legal-info-card {
    width: calc(100% - 37px) !important;
    max-width: 560px;
    margin: 14px 0 17px 37px !important;
    padding: 0 !important;

    /* Force a single vertical stack on the public page as well as in
       Elementor. Flex is intentional here: it cannot form accidental
       two-column tracks when another stylesheet adds grid rules. */
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    grid-template-columns: none !important;
    grid-auto-flow: row !important;

    overflow: hidden;
    background: #f8f8f8 !important;
    border: 1px solid #f0f0f0 !important;
    border-left: 0 !important;
    border-radius: 11px !important;
}

.vm-legal-page .vm-legal-info-card p,
.vm-legal-page .vm-legal-info-card .vm-legal-info-row {
    position: relative;

    min-height: 34px;
    margin: 0 !important;
    padding: 8px 14px 8px 48px !important;

    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;

    border-bottom: 1px solid #e9e9e9;

    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    color: #303030 !important;
}

.vm-legal-page .vm-legal-info-card p:last-child,
.vm-legal-page .vm-legal-info-card .vm-legal-info-row:last-child {
    border-bottom: 0;
}

.vm-legal-page .vm-legal-info-card p::before,
.vm-legal-page .vm-legal-info-card .vm-legal-info-row::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 50%;

    width: 16px;
    height: 16px;

    background: #222;
    transform: translateY(-50%);

    -webkit-mask: var(--vm-info-icon) center / contain no-repeat;
    mask: var(--vm-info-icon) center / contain no-repeat;
}

.vm-legal-page .vm-legal-info-card p:nth-child(1),
.vm-legal-page .vm-legal-info-card .vm-legal-info-row:nth-child(1) {
    --vm-info-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}

.vm-legal-page .vm-legal-info-card p:nth-child(2),
.vm-legal-page .vm-legal-info-card .vm-legal-info-row:nth-child(2) {
    --vm-info-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

.vm-legal-page .vm-legal-info-card p:nth-child(3),
.vm-legal-page .vm-legal-info-card .vm-legal-info-row:nth-child(3) {
    --vm-info-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='8' cy='11' r='2'/%3E%3Cpath d='M6 16c.8-1.4 3.2-1.4 4 0M14 9h4M14 13h4'/%3E%3C/svg%3E");
}

.vm-legal-page .vm-legal-info-card p:nth-child(4),
.vm-legal-page .vm-legal-info-card .vm-legal-info-row:nth-child(4) {
    --vm-info-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
}

.vm-legal-page .vm-legal-info-row strong,
.vm-legal-page .vm-legal-info-card strong {
    color: var(--vm-legal-black) !important;
}


/* The information card is normally placed inside the second <li>.
   A list item is a two-column grid (number + text), so every additional
   child must be explicitly kept in the text column. Otherwise the browser
   may auto-place the card in the narrow number column on the frontend. */
.vm-legal-page .vm-legal-text ol > li > .vm-legal-info-card {
    display: flex !important;
    clear: both !important;

    width: 100% !important;
    max-width: 560px !important;
    min-width: 0 !important;

    margin: 14px 0 17px !important;
}

/* Support both Elementor Text Editor and HTML widgets as the legal body. */
.vm-legal-page .vm-legal-section > .elementor-widget-html.vm-legal-text,
.vm-legal-page .vm-legal-section > .elementor-widget-text-editor.vm-legal-text {
    grid-column: 2 !important;
    grid-row: 2 !important;

    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* WordPress/TinyMCE can leave empty paragraphs around block-level HTML. */
.vm-legal-page .vm-legal-text p:empty {
    display: none !important;
}


/* =========================================================
   AUTO-GENERATED DESKTOP TABLE OF CONTENTS
   Created by legal.js from the existing sections.
   ========================================================= */

.vm-legal-page .vm-legal-toc {
    position: absolute;
    top: 58px;
    right: 0;

    width: 260px;
    padding: 25px 25px 24px;

    background: #fff;
    border: 1px solid #e3e3e3;
    border-radius: 10px;
}

.vm-legal-page .vm-legal-toc-title {
    margin: 0 0 13px;

    font-size: 12px;
    line-height: 1.2;
    font-weight: 500;
    text-transform: uppercase;

    color: #444;
}

.vm-legal-page .vm-legal-toc-list {
    margin: 0;
    padding: 0 0 0 14px;

    list-style: none;
    border-left: 1px solid #dedede;
}

.vm-legal-page .vm-legal-toc-item {
    margin: 0;
    padding: 0;
}

.vm-legal-page .vm-legal-toc-link {
    position: relative;

    display: block;
    padding: 8px 0 8px 0;

    font-size: 11px;
    line-height: 1.25;
    font-weight: 400;

    color: #6c6c6c;
    text-decoration: none;
}

.vm-legal-page .vm-legal-toc-link::before {
    content: "";

    position: absolute;
    left: -15px;
    top: 0;

    width: 2px;
    height: 100%;

    background: var(--vm-legal-red);
    opacity: 0;
}

.vm-legal-page .vm-legal-toc-link.is-active {
    color: var(--vm-legal-red);
}

.vm-legal-page .vm-legal-toc-link.is-active::before {
    opacity: 1;
}


/* Optional information box, when such markup already exists in Elementor. */
.vm-legal-page .vm-legal-note {
    width: 260px;
    padding: 20px 22px;

    background: #fafafa;
    border: 1px solid #ededed;
    border-radius: 10px;
}

.vm-legal-page .vm-legal-note-title {
    margin: 0 0 8px;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    color: var(--vm-legal-red);
}

.vm-legal-page .vm-legal-note p {
    margin: 0;
    font-size: 10px;
    line-height: 1.45;
    color: #666;
}


/* =========================================================
   TABLET / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1200px) {
    .vm-legal-page .vm-legal-section {
        grid-template-columns: 138px minmax(0, 1fr) !important;
        column-gap: 42px !important;
        padding-right: 0 !important;
    }

    .vm-legal-page .vm-legal-toc {
        display: none !important;
    }

    .vm-legal-page .vm-legal-text {
        max-width: 760px;
    }
}

@media (max-width: 1024px) and (min-width: 768px) {
    .vm-legal-page .vm-legal-hero {
        min-height: 240px !important;
        padding-top: 30px !important;
        background-position: 108% center;
        background-size: auto 92%;
    }

    .vm-legal-page .vm-legal-title .elementor-heading-title {
        font-size: 64px !important;
    }

    .vm-legal-page .vm-legal-section-index .elementor-heading-title {
        font-size: 96px !important;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {
    .vm-legal-page {
        --vm-legal-gutter: clamp(20px, 4.7vw, 34px);
        --vm-legal-sticky-top: 0px;
    }

    .vm-legal-page .vm-legal-hero {
        min-height: 246px !important;
        height: 246px !important;
        padding: 22px var(--vm-legal-gutter) 22px !important;

        align-items: flex-start !important;

        background-position: right center;
        background-size: auto 100%;
    }

    .vm-legal-page .vm-legal-hero-copy {
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        justify-content: flex-start !important;
    }

    .vm-legal-page .vm-legal-breadcrumb {
        margin: 0 0 27px !important;
    }

    .vm-legal-page .vm-legal-breadcrumb p,
    .vm-legal-page .vm-legal-breadcrumb .elementor-widget-container {
        font-size: 10px !important;
        line-height: 1.35 !important;
        font-weight: 500 !important;
        letter-spacing: 0.13em !important;
    }

    .vm-legal-page .vm-legal-title {
        margin: 0 !important;
    }

    .vm-legal-page .vm-legal-title .elementor-heading-title {
        font-size: clamp(50px, 7.75vw, 56px) !important;
        line-height: 0.95 !important;
        font-weight: 700 !important;
        letter-spacing: -0.06em !important;
    }

    .vm-legal-page .vm-legal-date {
        max-width: none;
        margin-top: 22px !important;
    }

    .vm-legal-page .vm-legal-date p,
    .vm-legal-page .vm-legal-date .elementor-widget-container,
    .vm-legal-page .vm-legal-date .elementor-icon-list-text {
        font-size: 13px !important;
        line-height: 1.45 !important;
        font-weight: 400 !important;
    }

    .vm-legal-page .vm-legal-nav-wrap,
    .vm-legal-page .vm-legal-nav-shell,
    .vm-legal-page .vm-legal-nav {
        min-height: 86px;
    }

    .vm-legal-page .vm-legal-nav-shell {
        width: 100%;
    }

    .vm-legal-page .vm-legal-nav {
        width: 100%;
        margin: 0;
        padding: 0;

        /*
         * Three tabs remain visible. The fourth 25vw tab starts exactly
         * underneath the fixed arrow cell.
         */
        scroll-padding-inline: 0;
    }

    /*
     * Extra scroll space lets the final tab move fully out from under
     * the fixed arrow.
     */
    .vm-legal-page .vm-legal-nav::after {
        content: "";
        flex: 0 0 25vw;
        min-width: 25vw;
        min-height: 1px;
        pointer-events: none;
    }

    .vm-legal-page .vm-legal-nav-item {
        flex: 0 0 25vw;
        min-width: 25vw;
        min-height: 86px;

        gap: 7px;
        padding: 14px 15px 16px;
    }

    .vm-legal-page .vm-legal-nav-number {
        font-size: 17px;
    }

    .vm-legal-page .vm-legal-nav-label {
        max-width: 100%;
        font-size: 12px;
    }

    .vm-legal-page .vm-legal-nav-item::after {
        left: 15px;
        width: 63px;
        height: 2px;
    }

    /*
     * Fixed overlay: it occupies the fourth quarter of the viewport.
     * Tab 04 is still in the track, but starts underneath this opaque cell.
     */
    .vm-legal-page .vm-legal-nav-next {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 5;

        flex: none;

        width: 25vw;
        min-width: 25vw;
        min-height: 86px;

        background: #fff;
    }

    .vm-legal-page .vm-legal-nav-next > span {
        width: 42px;
        height: 42px;
        font-size: 20px;
    }

    .vm-legal-page .vm-legal-content {
        width: calc(100% - (2 * var(--vm-legal-gutter))) !important;
        padding-bottom: 95px !important;
    }

    .vm-legal-page .vm-legal-section {
        grid-template-columns: clamp(82px, 18vw, 112px) minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;
        column-gap: clamp(22px, 4vw, 34px) !important;
        row-gap: 26px !important;

        padding: 48px 0 40px !important;

        scroll-margin-top: calc(var(--vm-legal-sticky-top) + 100px);
    }

    .vm-legal-page .vm-legal-section-index {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: start !important;
    }

    .vm-legal-page .vm-legal-section-index .elementor-heading-title {
        font-size: clamp(82px, 13vw, 96px) !important;
        line-height: 0.78 !important;
        font-weight: 500 !important;
        letter-spacing: -0.08em !important;
        color: #f0f0f0 !important;
    }

    .vm-legal-page .vm-legal-section > .vm-legal-section-heading {
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: start !important;
    }

    .vm-legal-page .vm-legal-section-title {
        font-size: clamp(28px, 4.4vw, 32px) !important;
        line-height: 1.08 !important;
        font-weight: 650 !important;
        letter-spacing: -0.04em !important;
    }

    .vm-legal-page .vm-legal-section-paragraph {
        margin: 0 0 15px !important;

        font-size: 15px !important;
        line-height: 1 !important;
        font-weight: 700 !important;
    }

    .vm-legal-page .vm-legal-section-title::after {
        width: 30px;
        height: 2px;
        margin-top: 18px;
    }

    /* In the reference the body starts farther left than the section title. */
    .vm-legal-page .vm-legal-text {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: -20px !important;
}

    .vm-legal-page .vm-legal-text .elementor-widget-container,
    .vm-legal-page .vm-legal-text,
    .vm-legal-page .vm-legal-text p,
    .vm-legal-page .vm-legal-text li {
        font-size: 14px !important;
        line-height: 1.65 !important;
    }

    .vm-legal-page .vm-legal-text ol > li {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        margin-bottom: 18px !important;
        padding-left: 34px !important;
    }

    .vm-legal-page .vm-legal-text ol > li::before {
        top: 0 !important;
        left: 0 !important;
        width: 24px !important;
        font-size: 12px !important;
        line-height: 1.65 !important;
    }

    .vm-legal-page .vm-legal-info-card {
        width: 100% !important;
        max-width: none;
        margin: 13px 0 18px !important;
        border-radius: 12px !important;
    }

    .vm-legal-page .vm-legal-text ol > li > .vm-legal-info-card {
        display: flex !important;
        width: 100% !important;
        max-width: none !important;
        margin: 13px 0 18px !important;
    }

    .vm-legal-page .vm-legal-info-card p,
    .vm-legal-page .vm-legal-info-card .vm-legal-info-row {
        min-height: 47px;
        padding: 10px 13px 10px 58px !important;

        font-size: 11px !important;
        line-height: 1.45 !important;
    }

    .vm-legal-page .vm-legal-info-card p::before,
    .vm-legal-page .vm-legal-info-card .vm-legal-info-row::before {
        left: 20px;
        width: 18px;
        height: 18px;
    }

    .vm-legal-page .vm-legal-toc,
    .vm-legal-page .vm-legal-note {
        display: none !important;
    }
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media (max-width: 420px) {
    .vm-legal-page .vm-legal-title .elementor-heading-title {
        font-size: 49px !important;
    }

    .vm-legal-page .vm-legal-section-title {
        font-size: 27px !important;
    }

}


/* =========================================================
   ACCESSIBILITY / MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    .vm-legal-page .vm-legal-nav,
    .vm-legal-page .vm-legal-nav-item,
    .vm-legal-page .vm-legal-nav-item::after,
    .vm-legal-page .vm-legal-nav-next {
        scroll-behavior: auto;
        transition: none;
    }
}

@media (max-width: 767px) {
    .vm-legal-page
    .vm-legal-section
    > .elementor-widget-html.vm-legal-text,

    .vm-legal-page
    .vm-legal-section
    > .elementor-widget-text-editor.vm-legal-text {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;

        width: 100% !important;
        max-width: none !important;

        padding-left: 32px !important;
        padding-right: 32px !important;
    }
}



/* Навігація — точкові корекції */

.vm-legal-page .vm-legal-nav-next > span {
    width: 36px;
    height: 36px;
    border: 0;
}

@media (max-width: 767px) {

    .vm-legal-page .vm-legal-nav-item {
        padding-left: 20px;
    }

    .vm-legal-page .vm-legal-nav-item::after {
        left: 20px;
    }
}