

html, body { max-width: 100%; overflow-x: clip; }


img, svg, video, canvas, iframe, embed, object, figure, picture {
    max-width: 100%;
}
img, video, canvas { height: auto; }
pre, code, kbd, samp { overflow-x: auto; max-width: 100%; }


h1, h2, h3, h4, h5, h6,
[class*='lockup'], [class*='display'], [class*='headline'], [class*='title'],
[class*='hero'] h1, [class*='hero'] h2 {
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
}
[class*='lockup'], [class*='lockup'] > * { white-space: normal !important; }


/* Long unbroken strings (URLs, emails, ids) wrap rather than overflow. */
p, li, dd, dt, blockquote, figcaption, address, a, span, td, th {
    overflow-wrap: break-word;
}


/* Grid and flex children may shrink below their content so a single wide
    child cannot force the whole track past the viewport. */
[class*='grid'] > *, [class*='row'] > *, [class*='flex'] > *,
[class*='cols'] > *, [class*='columns'] > * { min-width: 0; }


:not(img):not(picture):not(svg):not(video):not(canvas):only-child {
    grid-column: 1 / -1;
}


@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) {
    animation-duration: .28s;
}
@media (prefers-reduced-motion: reduce) {
    ::view-transition-group(*),
    ::view-transition-old(*),
    ::view-transition-new(*) { animation: none !important; }
}


.semi873 { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.semi873 > table { min-width: max-content; }
@media (max-width: 48rem) {
    .semi873 > table { font-size: .94em; }
}
.semi873 > table,
.semi873 > table > thead, .semi873 > table > tbody,
.semi873 > table > tfoot, .semi873 > table tr,
.semi873 > table th, .semi873 > table td { display: revert; }


@media (max-width: 30rem) {
    :root {

        --lepi-444: clamp(2.2rem, 9vw, 3rem);
        --lepi-678: clamp(2rem, 8vw, 2.7rem);
        --lepi-383: clamp(1.8rem, 7vw, 2.4rem);
        --lepi-43e: clamp(1.55rem, 6vw, 2.05rem);
        --lepi-fb8: clamp(1.35rem, 5vw, 1.8rem);
    }
}

@media (min-width: 30.01rem) and (max-width: 48rem) {

    :root {
        --lepi-444: clamp(2.8rem, 8vw, 4.6rem);
        --lepi-678: clamp(2.5rem, 7vw, 4rem);
        --lepi-383: clamp(2.2rem, 6vw, 3.4rem);
    }
}


/* Touch targets stay usable. */
@media (pointer: coarse) {
    a.btn, button, [role='button'], .btn,
    input[type='submit'], input[type='button'] { min-height: 44px; }
}



/* Consent bar — bounded so it cannot cover the headline. */
.cookie-banner {
    max-height: 20vh;
    overflow: auto;
    top: auto;
    bottom: 0;
}
@media (max-width: 30rem) {
    .cookie-banner { max-height: 38vh; }
}
