body.cm-a11y-body-overflow-locked {
    overflow: hidden !important;
}

body.cm-a11y-text-lg > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, a, button, label, input, textarea, select, blockquote, td, th, figcaption, summary),
body.cm-a11y-text-lg > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, a, button, label, input, textarea, select, blockquote, td, th, figcaption, summary) {
    font-size: 1.15em !important;
}

body.cm-a11y-text-xl > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, a, button, label, input, textarea, select, blockquote, td, th, figcaption, summary),
body.cm-a11y-text-xl > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, a, button, label, input, textarea, select, blockquote, td, th, figcaption, summary) {
    font-size: 1.3em !important;
}

body.cm-a11y-text-xxl > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, a, button, label, input, textarea, select, blockquote, td, th, figcaption, summary),
body.cm-a11y-text-xxl > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, a, button, label, input, textarea, select, blockquote, td, th, figcaption, summary) {
    font-size: 1.45em !important;
}

body.cm-a11y-line-relaxed > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, blockquote, figcaption, summary, label, input, textarea, select),
body.cm-a11y-line-relaxed > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, blockquote, figcaption, summary, label, input, textarea, select) {
    line-height: 1.75 !important;
}

body.cm-a11y-line-spacious > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, blockquote, figcaption, summary, label, input, textarea, select),
body.cm-a11y-line-spacious > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, blockquote, figcaption, summary, label, input, textarea, select) {
    line-height: 2 !important;
}

body.cm-a11y-letter-wide > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary),
body.cm-a11y-letter-wide > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary) {
    letter-spacing: 0.04em !important;
}

body.cm-a11y-letter-wider > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary),
body.cm-a11y-letter-wider > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary) {
    letter-spacing: 0.08em !important;
}

body.cm-a11y-word-wide > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary),
body.cm-a11y-word-wide > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary) {
    word-spacing: 0.12em !important;
}

body.cm-a11y-word-wider > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary),
body.cm-a11y-word-wider > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(p, li, a, button, label, input, textarea, select, blockquote, figcaption, summary) {
    word-spacing: 0.22em !important;
}

body.cm-a11y-underline-links > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) a {
    text-decoration: underline !important;
    text-decoration-thickness: 0.08em !important;
    text-underline-offset: 0.16em !important;
}

body.cm-a11y-dyslexia-font > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher),
body.cm-a11y-dyslexia-font > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) * {
    font-family: OpenDyslexic, Arial, sans-serif !important;
}

body.cm-a11y-hide-images > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher),
body.cm-a11y-hide-images > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) * {
    background-image: none !important;
}

body.cm-a11y-hide-images:not(.cm-a11y-show-alt-text) > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher):where(img),
body.cm-a11y-hide-images:not(.cm-a11y-show-alt-text) > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) img {
    display: none !important;
}

.cm-a11y-image-alt-wrap {
    position: relative !important;
    display: inline-block !important;
    max-width: 100% !important;
    vertical-align: middle !important;
}

.cm-a11y-image-alt-wrap--block {
    display: block !important;
}

body.cm-a11y-show-alt-text .cm-a11y-image-alt-wrap img {
    opacity: 0.2 !important;
}

body.cm-a11y-hide-images.cm-a11y-show-alt-text .cm-a11y-image-alt-wrap img {
    opacity: 0 !important;
}

.cm-a11y-alt-text {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    z-index: 1 !important;
    max-width: calc(100% - 16px) !important;
    padding: 4px 8px !important;
    border-radius: 4px !important;
    background: #000 !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    overflow-wrap: break-word !important;
    pointer-events: none !important;
    transform: translate(-50%, -50%) !important;
}

body.cm-a11y-pause-animations > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) *,
body.cm-a11y-pause-animations > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) *::before,
body.cm-a11y-pause-animations > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) *::after {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
}

body.cm-a11y-highlight-focus > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
    outline: 3px solid #005fcc !important;
    outline-offset: 3px !important;
}

body.cm-a11y-highlight-focus > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(a, button, input, textarea, select, img, p, h1, h2, h3, h4, h5, h6, label, summary):hover,
body.cm-a11y-highlight-focus > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) .cm-a11y-hover-highlight {
    outline: 3px solid #FF1493 !important;
    outline-offset: 3px !important;
    border-radius: 2px !important;
    box-shadow: 0 0 10px #FF1493, 0 0 20px #FF1493 !important;
}

@media (hover: hover) and (pointer: fine) {
    body.cm-a11y-highlight-focus-cursor > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher),
    body.cm-a11y-highlight-focus-cursor > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) * {
        cursor: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><circle cx="32" cy="32" r="16" fill="%23FF1493"/></svg>') 32 32, auto !important;
    }
}

@keyframes cmA11yFocusGlow {
    0%   { box-shadow: 0 0 5px #FF1493; }
    50%  { box-shadow: 0 0 35px #FF1493; }
    100% { box-shadow: 0 0 5px #FF1493; }
}

body.cm-a11y-highlight-focus > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) *:focus-visible {
    animation: cmA11yFocusGlow 1.5s infinite ease-in-out;
}

body.cm-a11y-contrast-grayscale > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) {
    filter: grayscale(100%) !important;
}

body.cm-a11y-contrast-invert > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) {
    filter: invert(1) hue-rotate(180deg) !important;
}

body.cm-a11y-cb-protanopia > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) {
    filter: contrast(1.08) sepia(0.55) saturate(0.78) hue-rotate(-20deg) !important;
}

body.cm-a11y-cb-deuteranopia > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) {
    filter: contrast(1.08) sepia(0.45) saturate(0.72) hue-rotate(-15deg) !important;
}

body.cm-a11y-cb-tritanopia > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) {
    filter: contrast(1.08) sepia(0.6) saturate(0.86) hue-rotate(48deg) !important;
}

body.cm-a11y-contrast-high > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher),
body.cm-a11y-contrast-high > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(header, main, footer, nav, aside, article, section, div) {
    background-color: #000 !important;
    color: #fff !important;
}

body.cm-a11y-contrast-high > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) a {
    color: #ffeb3b !important;
}

body.cm-a11y-contrast-high > :not(#cm-a11y-shadow-host):not(#accessibility-menu):not(#cm-a11y-reading-guide):not(#cm-a11y-reading-guide-toast):not(#cm-a11y-launcher) :where(button, input, textarea, select) {
    background-color: #fff !important;
    color: #000 !important;
    border-color: #fff !important;
}
