/* Accessibility tool: tokens + UI + mode states */
:root {
    --a11y-color-text: #000000;
    --a11y-color-bg: #FFFFFF;
    --a11y-color-link: #000000;
    --a11y-button-bg: #000000;
    --a11y-button-text: #FFFFFF;
    --a11y-button-border: #000000;
    --a11y-invert-bg-current: #FFFFFF;
    --a11y-invert-fg-current: #000000;
    --a11y-font-scale: 1;
    --a11y-cursor-large: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 512 512'%3E%3Cpath fill='%23000000' d='M429.742 319.31L82.49 0l-.231 471.744 105.375-100.826 61.89 141.083 96.559-42.358-61.89-141.083 145.549-9.25z'/%3E%3Cpath fill='%23FFFFFF' d='M306.563 454.222l-41.62 18.259-67.066-152.879-85.589 81.894.164-333.193 245.264 225.529-118.219 7.512 67.066 152.878z'/%3E%3C/svg%3E") 8 2, default;
}

::-moz-selection {
    color: var(--a11y-color-bg, #ffffff);
    background: var(--a11y-color-text, #000000);
}

::selection {
    color: var(--a11y-color-bg, #ffffff);
    background: var(--a11y-color-text, #000000);
}

/*
 * Utility: invert custom background/text pairs when high-contrast mode is active.
 * Usage in HTML: class="a11y-invert-bg" + optional CSS vars:
 * --a11y-invert-bg: #000; --a11y-invert-fg: #fff;
 */
.a11y-invert-bg {
    --a11y-invert-bg-base: var(--a11y-invert-bg, #000000);
    --a11y-invert-fg-base: var(--a11y-invert-fg, #FFFFFF);
    --a11y-invert-bg-current: var(--a11y-invert-bg-base);
    --a11y-invert-fg-current: var(--a11y-invert-fg-base);
}

/* Optional helper for plain blocks/buttons. */
.a11y-invert-fill {
    background-color: var(--a11y-invert-bg-current);
    color: var(--a11y-invert-fg-current);
    border-color: var(--a11y-invert-fg-current);
}

html.is-menu-open #accessibility-tool-root .a11y-toggle,
html.is-menu-open #accessibility-tool-root .a11y-tool-hide,
html.is-menu-open .a11y-restore,
html.is-reel-route #accessibility-tool-root .a11y-toggle,
html.is-reel-route #accessibility-tool-root .a11y-tool-hide,
html.is-reel-route .a11y-restore {
    --a11y-invert-bg-current: #FFFFFF;
    --a11y-invert-fg-current: #000000;
}

html[data-theme="high-contrast"].is-menu-open #accessibility-tool-root .a11y-toggle,
html[data-theme="high-contrast"].is-menu-open #accessibility-tool-root .a11y-tool-hide,
html[data-theme="high-contrast"].is-menu-open .a11y-restore,
html[data-theme="high-contrast"].is-reel-route #accessibility-tool-root .a11y-toggle,
html[data-theme="high-contrast"].is-reel-route #accessibility-tool-root .a11y-tool-hide,
html[data-theme="high-contrast"].is-reel-route .a11y-restore {
    --a11y-invert-bg-current: #FFFFFF;
    --a11y-invert-fg-current: #000000;
}

/*
 * Utility: fixed black surface token.
 * Usage in HTML: class="a11y-black-bg"
 */
.a11y-black-bg {
    --a11y-black-bg-base: #000000;
    --a11y-black-fg-base: #FFFFFF;
    --a11y-black-bg-current: var(--a11y-black-bg-base);
    --a11y-black-fg-current: var(--a11y-black-fg-base);
    --a11y-invert-bg-current: var(--a11y-black-bg-current);
    --a11y-invert-fg-current: var(--a11y-black-fg-current);
    background: var(--a11y-black-bg-current);
    color: var(--a11y-black-fg-current);
}

html[data-theme="high-contrast"] .a11y-invert-bg {
    --a11y-invert-bg-current: var(--a11y-invert-fg-base);
    --a11y-invert-fg-current: var(--a11y-invert-bg-base);
}

html[data-theme="high-contrast"] .a11y-black-bg {
    --a11y-black-bg-current: var(--a11y-black-fg-base);
    --a11y-black-fg-current: var(--a11y-black-bg-base);
}

html {
    font-size: calc(62.5% * var(--a11y-font-scale));
}

body {
    color: var(--a11y-color-text);
    background: var(--a11y-color-bg);
}

a {
    color: var(--a11y-color-link);
}

.button-primary,
button.button-primary {
    background: var(--a11y-button-bg);
    color: var(--a11y-button-text);
    border: 1px solid var(--a11y-button-border);
}

html[data-theme="high-contrast"] {
    --a11y-color-text: #FFFFFF;
    --a11y-color-bg: #000000;
    --a11y-color-link: #000000;
    --a11y-button-bg: #FFFFFF;
    --a11y-button-text: #000000;
    --a11y-button-border: #FFFFFF;
}

html[data-font-scale="90"] {
    --a11y-font-scale: 0.9;
}

html[data-font-scale="100"] {
    --a11y-font-scale: 1;
}

html[data-font-scale="110"] {
    --a11y-font-scale: 1.1;
}

html[data-font-scale="120"] {
    --a11y-font-scale: 1.2;
}

html[data-font-scale="130"] {
    --a11y-font-scale: 1.3;
}

html[data-font-scale="140"] {
    --a11y-font-scale: 1.4;
}

html[data-font-scale="150"] {
    --a11y-font-scale: 1.5;
}

html[data-cursor="large"] {
    cursor: var(--a11y-cursor-large);
}

html[data-cursor="large"] * {
    cursor: var(--a11y-cursor-large) !important;
}

html[data-cursor="large"] a,
html[data-cursor="large"] a *,
html[data-cursor="large"] button,
html[data-cursor="large"] button *,
html[data-cursor="large"] [role="button"],
html[data-cursor="large"] [role="button"] *,
html[data-cursor="large"] input[type="button"],
html[data-cursor="large"] input[type="submit"],
html[data-cursor="large"] input[type="reset"],
html[data-cursor="large"] summary,
html[data-cursor="large"] summary *,
html[data-cursor="large"] label[for],
html[data-cursor="large"] label[for] * {
    cursor: pointer !important;
}

.image-alt-text {
    display: none;
    box-sizing: border-box;
}

article .article-teaser .image-alt-text {
    display: none;
}

html[data-alt-mode="on"] article .article-teaser-media img {
    display: none !important;
}

html[data-alt-mode="on"] article .article-teaser-media {
    position: relative;
}

html[data-alt-mode="on"] article .article-teaser-media picture {
    visibility: hidden;
}

html[data-alt-mode="on"] article .ad-teaser-media {
    position: relative;
}

html[data-alt-mode="on"] article .ad-teaser-media img {
    visibility: hidden !important;
}

html[data-alt-mode="on"] article .article-teaser-media video {
    display: none !important;
}

html[data-alt-mode="on"] .article-teaser-media--video .reel-timeline--teaser {
    display: none !important;
}

html[data-alt-mode="on"] .article-intro-media,
html[data-alt-mode="on"] .content-blocks .content-blocks__item figure,
html[data-alt-mode="on"] .content-blocks .content-blocks__item .image-block__media,
html[data-alt-mode="on"] .content-blocks .content-blocks__item .gallery-block__media,
html[data-alt-mode="on"] .content-blocks .content-blocks__item .embed-block__media {
    position: relative;
}

html[data-alt-mode="on"] .article-intro-media picture,
html[data-alt-mode="on"] .article-intro-media img,
html[data-alt-mode="on"] .article-intro-media video,
html[data-alt-mode="on"] .article-intro-media iframe,
html[data-alt-mode="on"] .content-blocks .content-blocks__item figure picture,
html[data-alt-mode="on"] .content-blocks .content-blocks__item figure img,
html[data-alt-mode="on"] .content-blocks .content-blocks__item figure video,
html[data-alt-mode="on"] .content-blocks .content-blocks__item figure iframe,
html[data-alt-mode="on"] .content-blocks .content-blocks__item .embed-block__media iframe {
    visibility: hidden !important;
}

html[data-alt-mode="on"] article .article-teaser-media .image-alt-text {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    padding: 1rem;
    background: #000000;

    font-family: var(--font-family-TimesNewRoman);
    font-size: var(--font-size-17);
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.41;
    letter-spacing: normal;
    text-align: left;

    color: #fff;
}

html[data-alt-mode="on"] .article-intro-media .image-alt-text,
html[data-alt-mode="on"] .content-blocks .content-blocks__item figure .image-alt-text,
html[data-alt-mode="on"] .content-blocks .content-blocks__item .gallery-block__media .image-alt-text,
html[data-alt-mode="on"] .content-blocks .content-blocks__item .embed-block__media .image-alt-text {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    padding: 1rem;
    background: #000000;

    font-family: var(--font-family-TimesNewRoman);
    font-size: var(--font-size-17);
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.41;
    letter-spacing: normal;
    text-align: left;

    color: #fff;
}

html[data-alt-mode="on"] .article-media-meta-wrapper[data-media-state="has-media"] {
    --teaser-meta-fg: #FFFFFF;
}

html[data-alt-mode="on"] article .ad-teaser-media .image-alt-text {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: absolute;
    inset: 0;
    width: 100%;
    height: auto;
    padding: 1rem;
    background: #000000;
    font-family: var(--font-family-TimesNewRoman);
    font-size: var(--font-size-17);
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.41;
    letter-spacing: normal;
    text-align: left;
    color: #fff;
}

html[data-alt-mode="on"] article .article-teaser-media--slider .image-alt-text {
    transform: scale(1.01);
    transform-origin: center center;
}

html[data-theme="high-contrast"][data-alt-mode="on"] article .article-teaser-media .image-alt-text {
    background: #FFFFFF;
    color: #000000;
    border-color: #000000;
}

html[data-theme="high-contrast"][data-alt-mode="on"] .article-intro-media .image-alt-text,
html[data-theme="high-contrast"][data-alt-mode="on"] .content-blocks .content-blocks__item figure .image-alt-text,
html[data-theme="high-contrast"][data-alt-mode="on"] .content-blocks .content-blocks__item .embed-block__media .image-alt-text {
    background: #FFFFFF;
    color: #000000;
    border-color: #000000;
}

html[data-theme="high-contrast"][data-alt-mode="on"] .article-media-meta-wrapper[data-media-state="has-media"] {
    --teaser-meta-fg: #000000;
}

html[data-theme="high-contrast"][data-alt-mode="on"] article .ad-teaser-media .image-alt-text {
    background: #FFFFFF;
    color: #000000;
    border-color: #000000;
}

#accessibility-tool-root {
    position: fixed;
    left: 3rem;
    bottom: 3rem;
    z-index: 999998;
    font-family: var(--font-family-ArialNarrow), Arial, Helvetica, sans-serif;
    font-size: var(--font-size-15);
}

.a11y-restore {
    position: fixed;
    left: 3rem;
    bottom: 4rem;
    z-index: 999998;
    width: 4.4rem;
    height: 4.4rem;
    border: 0;
    border-radius: 50%;
    padding: 0;
    background-color: var(--a11y-invert-bg-current);
    color: var(--a11y-invert-fg-current);
    cursor: pointer;

    font-family: var(--font-family-TimesNewRoman);
    font-size: 3rem;
    line-height: 1;
    text-align: center;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.a11y-restore-letter {
    display: inline-block;
    transform: scaleX(0.75);
}

.a11y-trigger {
    position: relative;
    display: inline-block;
}

.a11y-tool-hide {
    position: absolute;
    top: 50%;
    right: 1.8rem;
    transform: translateY(-50%);
    z-index: 2;
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid var(--a11y-invert-bg-current);
    border-radius: 50%;
    background-color: var(--a11y-invert-fg-current);
    color: var(--a11y-invert-bg-current);
    display: inline-flex;
    align-items: center;
    justify-content: center;

    font-family: var(--font-family-TimesNewRoman);
    font-size: var(--font-size-15);
    line-height: 1;
    padding: 0;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

html[data-theme="high-contrast"] .a11y-tool-hide {
    border-color: #FFFFFF;
    background-color: #000000;
    color: #FFFFFF;
}

.a11y-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-width: 21.5rem;
    min-height: 5rem;
    padding: 1.8rem 4.8rem 1.8rem 2.8rem;
    border: 0;
    background-color: var(--a11y-invert-bg-current);
    border-radius: 50%;
    cursor: pointer;

    font-family: var(--font-family-ArialNarrow);
    font-size: var(--font-size-22);
    font-weight: normal;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.2;
    letter-spacing: 0.011em;
    text-align: center;
    color: var(--a11y-invert-fg-current);

    white-space: nowrap;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.a11y-overlay {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s ease, visibility 0.28s ease;
}

.a11y-modal {
    position: fixed;
    z-index: 91;
    left: 3rem;
    bottom: 12rem;
    --a11y-modal-max-height: calc(80vh - 12rem);
    width: min(46rem, calc(100vw - 3.2rem));
    max-height: var(--a11y-modal-max-height);
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--a11y-color-text);
    border-radius: 0;
    background: var(--a11y-color-bg);
    color: var(--a11y-color-text);
    --a11y-modal-fade-start: rgba(255, 255, 255, 0);
    --a11y-modal-fade-end: #FFFFFF;
    box-shadow: 0 1.2rem 3.6rem rgba(0, 0, 0, 0.25);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(2rem);
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s ease;

}

.a11y-modal-scroll {
    position: relative;
    z-index: 1;
    max-height: var(--a11y-modal-max-height);
    overflow: auto;
    padding: 2rem 2rem 5.6rem;
    -ms-scroll-chaining: none;
    overscroll-behavior: none;
}

.a11y-modal-fade {
    display: none;

    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4.4rem;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(180deg,
            var(--a11y-modal-fade-start) 0%,
            var(--a11y-modal-fade-end) 82%);
}

html[data-theme="high-contrast"] .a11y-modal {
    --a11y-modal-fade-start: rgba(0, 0, 0, 0);
    --a11y-modal-fade-end: #000000;
}

#accessibility-tool-root[data-open="true"] .a11y-overlay,
#accessibility-tool-root[data-open="true"] .a11y-modal {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

#accessibility-tool-root[data-open="true"] .a11y-modal {
    transform: translateY(0);
}

.a11y-title {
    margin: 0 0 2.4rem;
    padding-bottom: 0;
    font-size: var(--font-size-35);
    line-height: 1;
    font-weight: normal;
}

.a11y-list {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
}

.a11y-item {
    margin-bottom: 1.8rem;
}

.a11y-stack {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.a11y-label {
    font-size: var(--font-size-15);
    line-height: 1.2;
}

.a11y-actions {
    display: flex;
    gap: 0.8rem;
    flex-wrap: wrap;
}

.a11y-btn {
    min-height: 4rem;
    padding: 0.8rem 1.8rem;
    border: 1px solid var(--a11y-button-border);
    border-radius: 50%;
    background: var(--a11y-button-bg);
    color: var(--a11y-button-text);
    font-size: var(--font-size-15);
    line-height: 1;
    cursor: pointer;

    min-width: 10rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;

    width: fit-content;
}

.a11y-btn--wide {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}

.a11y-btn[aria-pressed="true"] {
    background: color-mix(in srgb, var(--a11y-button-bg) 65%, var(--a11y-color-text));
    color: var(--a11y-button-text);
    border-color: var(--a11y-color-text);
}

.a11y-help {
    margin: 2.4rem 0;
    padding-top: 1.6rem;
    border-top: 1px solid color-mix(in srgb, var(--a11y-color-text) 100%, transparent);
}

.a11y-help summary {
    font-weight: normal;
    cursor: pointer;
    font-size: var(--font-size-15);
}

.a11y-help>summary {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: block;
    position: relative;
    list-style: none;
    cursor: pointer;
    padding-left: 0.8em;
}

.a11y-help>summary::marker {
    content: "";
    font-size: 0;
}

.a11y-help>summary::-webkit-details-marker {
    display: none !important;
}

.a11y-help>summary::before {
    content: "+";
    position: absolute;
    left: 0;
    top: 0;
    width: 1em;
}

.a11y-help[open]>summary::before {
    content: "−";
}

.a11y-help-list {
    list-style: none;
    margin: 1.6rem 0 0;
    padding: 0;
    font-size: var(--font-size-15);
}

.a11y-help-list li {
    margin-bottom: 1.6rem;
}

.a11y-help-list li u {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.a11y-help-note {
    margin: 1.6rem 0 0;
    font-family: var(--font-family-TimesNewRoman);
    font-size: var(--font-size-15);
}

.a11y-shortcut {
    white-space: nowrap;
}


@media screen and (max-width: 50em) {
    /* 800px */

    #accessibility-tool-root {
        left: 1rem;
        bottom: 1rem;
    }

    .a11y-restore {
        left: 1rem;
        bottom: 1.5rem;
        width: 4rem;
        height: 4rem;
        font-size: 2.8rem
    }

    .a11y-modal {
        left: 1rem;
        bottom: 7rem;
        --a11y-modal-max-height: calc(100vh - 8rem);
        width: calc(100vw - 2rem);
        max-height: var(--a11y-modal-max-height);
    }

    .a11y-toggle {
        min-width: auto;
        min-height: auto;
        padding: 1.5rem 4.4rem 1.5rem 2rem;
    }

    .a11y-tool-hide {
        right: 1.6rem;
        width: 2rem;
        height: 2rem;
        font-size: var(--font-size-12);
    }

    .a11y-item-cursor {
        display: none;
    }

    .a11y-btn {
        min-width: 8rem;
    }

    .a11y-help {
        padding: 0;
    }

    .a11y-help>summary.a11y-summary {
        display: none;
    }

    .a11y-shortcut {
        display: none;
    }

    .a11y-modal-scroll {
        padding: 2.4rem 2rem 2.8rem 2rem;
    }

    .a11y-modal-fade {
        height: 2.8rem;
    }

}