/* ===== ACCESSIBILITY TOOL: START ===== */
.accessibility-skip-link {
    position: fixed;
    top: 0;
    left: 1rem;
    z-index: 2000;
    padding: .8rem 1.1rem;
    color: #102119;
    background: #d6f36b;
    border-radius: 0 0 10px 10px;
    font-family: var(--font_bold);
    font-size: .82rem;
    transform: translateY(-150%);
    transition: transform .2s ease;
}

.accessibility-skip-link:focus {
    transform: translateY(0);
}

.accessibility-widget {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 199;
    font-family: var(--font_med);
    color: #eef6ef;
}

.accessibility-toggle,
.accessibility-close,
.accessibility-button-row button,
.accessibility-reset {
    border: 1px solid rgba(214, 243, 107, .55);
    color: #eef6ef;
    background: #102119;
    cursor: pointer;
    font: inherit;
}

.accessibility-toggle {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 3.25rem;
    padding: .75rem 1.05rem;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(16, 33, 25, .28);
    font-family: var(--font_bold);
    font-size: .8rem;
    letter-spacing: .02em;
    transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.accessibility-toggle:hover {
    background: #1b3427;
    box-shadow: 0 14px 34px rgba(16, 33, 25, .36);
    transform: translateY(-2px);
}

.accessibility-toggle i {
    display: grid;
    width: 1.55rem;
    height: 1.55rem;
    place-items: center;
    color: #102119;
    background: #d6f36b;
    border-radius: 50%;
}

.accessibility-panel {
    width: min(23rem, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    margin-bottom: .75rem;
    padding: 1.25rem;
    color: #eef6ef;
    background: #102119;
    border: 1px solid rgba(214, 243, 107, .35);
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(16, 33, 25, .32);
    animation: accessibility-panel-in .2s ease-out;
    display: flex;
    flex-direction: column;
}

@keyframes accessibility-panel-in {
    from { opacity: 0; transform: translateY(8px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.accessibility-panel-header,
.accessibility-switch,
.accessibility-control,
.accessibility-button-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.accessibility-panel-header {
    margin-bottom: 1.15rem;
    border-bottom: 1px solid rgba(238, 246, 239, .16);
    padding-bottom: 1rem;
}

.accessibility-panel h2 {
    margin: 0;
    color: #fff;
    font-family: var(--font_bold);
    font-size: 1.05rem;
    letter-spacing: -.01em;
}

.accessibility-close {
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(238, 246, 239, .2);
    border-radius: 50%;
    padding: 0;
    font-size: 1.1rem;
    transition: background-color .2s ease, color .2s ease;
}

.accessibility-close:hover {
    color: #102119;
    background: #d6f36b;
}

.accessibility-controls {
    display: grid;
    min-height: 0;
    max-height: min(25rem, calc(100vh - 14rem));
    gap: .45rem;
    overflow-x: auto;
    overflow-y: auto;
    scrollbar-color: #78934d transparent;
    scrollbar-width: thin;
}

.accessibility-text-size {
    display: flex;
    flex: 0 0 auto;
    min-width: 19rem;
    margin-bottom: .35rem;
}

.accessibility-text-size > span {
    display: block;
    margin: 0;
    color: #b8c9bc;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.accessibility-button-row {
    justify-content: flex-start;
    gap: .35rem;
}

.accessibility-button-row button {
    min-width: 2.9rem;
    padding: .52rem .65rem;
    border-radius: 8px;
    font-size: .78rem;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.accessibility-button-row button:hover,
.accessibility-speech-controls button:hover,
.accessibility-reset:hover {
    color: #102119;
    background: #d6f36b;
    border-color: #d6f36b;
}

.accessibility-switch input {
    appearance: none;
    position: relative;
    width: 2.35rem;
    height: 1.3rem;
    margin: 0;
    flex: 0 0 auto;
    background: #42544a;
    border: 1px solid rgba(238, 246, 239, .25);
    border-radius: 999px;
    transition: background-color .2s ease;
}

.accessibility-switch input::before {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 1rem;
    height: 1rem;
    background: #eef6ef;
    border-radius: 50%;
    content: "";
    transition: transform .2s ease;
}

.accessibility-switch input:checked {
    background: #d6f36b;
    border-color: #d6f36b;
}

.accessibility-switch input:checked::before {
    background: #102119;
    transform: translateX(1.05rem);
}

.accessibility-switch,
.accessibility-control {
    flex: 0 0 auto;
    min-width: 19rem;
    min-height: 2.5rem;
    padding: .45rem .65rem;
    border-radius: 8px;
}

.accessibility-switch:hover,
.accessibility-control:hover {
    background: rgba(238, 246, 239, .07);
}

.accessibility-reset {
    width: 100%;
    margin-top: 1.1rem;
    padding: .7rem;
    border-radius: 8px;
    font-size: .78rem;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.a11y-hide-images img,
.a11y-hide-images picture,
.a11y-hide-images svg,
.a11y-hide-images [role="img"] {
    visibility: hidden !important;
}

.a11y-bigger-cursor,
.a11y-bigger-cursor * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='64' viewBox='0 0 40 56'%3E%3Cpath d='M3 2v42l11-9 7 18 7-3-7-18h15z' fill='white' stroke='black' stroke-width='3'/%3E%3C/svg%3E") 3 2, auto !important;
}

.a11y-letter-spacing * {
    letter-spacing: .08em !important;
}

.a11y-letter-spacing-more * {
    letter-spacing: .16em !important;
}

.a11y-line-spacing * {
    line-height: 1.8 !important;
}

.a11y-line-spacing-more * {
    line-height: 2.2 !important;
}

.accessibility-status {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.accessibility-toggle:focus-visible,
.accessibility-panel button:focus-visible,
.accessibility-panel input:focus-visible,
.accessibility-skip-link:focus-visible {
    outline: 3px solid #d6f36b;
    outline-offset: 2px;
}

html.a11y-text-small { font-size: 87.5%; }
html.a11y-text-large { font-size: 112.5%; }
html.a11y-text-xlarge { font-size: 125%; }
html.a11y-high-contrast body,
html.a11y-high-contrast body * {
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}
html.a11y-high-contrast body p,
html.a11y-high-contrast body h1,
html.a11y-high-contrast body h2,
html.a11y-high-contrast body h3,
html.a11y-high-contrast body h4,
html.a11y-high-contrast body h5,
html.a11y-high-contrast body h6,
html.a11y-high-contrast body a { color: #ffdf00 !important; opacity: 1; }
html.a11y-high-contrast input,
html.a11y-high-contrast textarea,
html.a11y-high-contrast select,
html.a11y-high-contrast button { background-color: #000 !important; color: #fff !important; }
html.a11y-high-contrast .accessibility-panel,
html.a11y-high-contrast .accessibility-toggle { background-color: #000 !important; color: #fff !important; }
html.a11y-high-contrast .accessibility-speech-controls button { background-color: #000 !important; color: #ffdf00 !important; }
html.a11y-high-contrast .accessibility-toggle:focus-visible,
html.a11y-high-contrast .accessibility-panel button:focus-visible,
html.a11y-high-contrast .accessibility-panel input:focus-visible,
html.a11y-high-contrast .accessibility-skip-link:focus-visible { outline-color: #ffdf00; }
html.a11y-grayscale { filter: grayscale(1); }
html.a11y-underline-links a { text-decoration: underline !important; }
html.a11y-reduce-motion *,
html.a11y-reduce-motion *::before,
html.a11y-reduce-motion *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
}

@media (max-width: 576px) {
    .accessibility-widget { right: .75rem; bottom: .75rem; }
    .accessibility-toggle span { display: none; }
    .accessibility-toggle { padding: .8rem .9rem; }
    .accessibility-panel {
        max-height: calc(100vh - 1.5rem);
        padding: 1rem;
    }
    .accessibility-controls {
        max-height: min(22rem, calc(100vh - 12rem));
    }
}
/* ===== ACCESSIBILITY TOOL: END ===== */