/**
 * DRTV Shared Page Rail
 *
 * One owner for the responsive gutter. Feature plugins consume these semantic
 * classes and must not redefine their padding, viewport width or overflow.
 */
body.drtv-shared-elementor-rail-page,
body.drtv-shared-page-rail-active {
    --drtv-page-gutter: clamp(14px, 2.5vw, 52px);
    --drtv-page-gutter-left: max(var(--drtv-page-gutter), env(safe-area-inset-left, 0px));
    --drtv-page-gutter-right: max(var(--drtv-page-gutter), env(safe-area-inset-right, 0px));
}

.drtv-page-rail {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin-inline: auto;
    padding-left: var(--drtv-page-gutter-left, clamp(14px, 2.5vw, 52px));
    padding-right: var(--drtv-page-gutter-right, clamp(14px, 2.5vw, 52px));
    box-sizing: border-box;
}

.drtv-page-bleed {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    box-sizing: border-box;
}

/**
 * Sticky-safe application boundary.
 *
 * overflow: clip contains accidental horizontal paint without creating a
 * scroll container. That distinction is essential: overflow-x:hidden/auto on
 * this ancestor breaks position:sticky descendants in WebKit and Chromium.
 * Local carousels continue to own their own overflow-x:auto.
 */
.drtv-page-boundary {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin-inline: 0;
    overflow-x: clip;
    overflow-y: visible;
    overscroll-behavior-x: none;
    box-sizing: border-box;
}
