/* Accessibility panel — shared controls (top bar dropdown + mobile sidebar) */

.site-a11y-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.site-a11y-controls__group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.site-a11y-controls__group--toggles {
    gap: 8px;
}

.site-a11y-controls__label {
    color: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    opacity: 0.72;
}

.site-a11y-controls__row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.site-a11y-controls__toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.site-a11y-controls__toggle-row .site-a11y-controls__label {
    text-transform: none;
    font-size: 13px;
    font-weight: 500;
    opacity: 1;
}

.site-a11y-controls__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 32px;
    padding: 4px 10px;
    border: 1px solid transparent;
    border-radius: 6px 0;
    background: rgba(58, 104, 213, 0.08);
    color: #3a68d5;
    font-family: var(--font-family);
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.site-a11y-controls__btn:hover {
    background: rgba(58, 104, 213, 0.14);
}

.site-a11y-controls__btn:focus {
    outline: none;
}

.site-a11y-controls__btn:focus-visible {
    outline: 2px solid rgba(58, 104, 213, 0.45);
    outline-offset: 2px;
}

.site-a11y-controls__btn.is-active {
    border-color: #3a68d5;
    background: #3a68d5;
    color: #fff;
}

.site-a11y-controls__btn--font {
    min-width: 40px;
    font-size: 14px;
}

.site-a11y-controls__btn--font[data-a11y-action="font-decrease"] {
    font-size: 12px;
}

.site-a11y-controls__btn--font[data-a11y-action="font-increase"] {
    font-size: 16px;
}

.site-a11y-controls__reset {
    width: 100%;
    margin-top: 2px;
    padding: 8px 12px;
    border: 1px solid rgba(58, 104, 213, 0.25);
    border-radius: 8px 0;
    background: transparent;
    color: #3a68d5;
    font-family: var(--font-family);
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.site-a11y-controls__reset:hover {
    background: rgba(58, 104, 213, 0.08);
    border-color: rgba(58, 104, 213, 0.4);
}

.site-a11y-controls__reset:focus {
    outline: none;
}

.site-a11y-controls__reset:focus-visible {
    outline: 2px solid rgba(58, 104, 213, 0.45);
    outline-offset: 2px;
}

/* --- Applied accessibility modes (html classes) --- */

/*
 * Scale only page content (not the fixed header).
 * Width compensation prevents horizontal overflow after zoom.
 */
html.a11y-font-1 {
    --a11y-scale: 1.15;
}

html.a11y-font-2 {
    --a11y-scale: 1.3;
}

html.a11y-font-3 {
    --a11y-scale: 1.5;
}

html[class*="a11y-font-"] body {
    overflow-x: clip;
}

html[class*="a11y-font-"] .site-a11y-scalable {
    zoom: var(--a11y-scale);
    width: calc(100% / var(--a11y-scale));
    max-width: calc(100% / var(--a11y-scale));
    margin-inline: auto;
    overflow-x: clip;
}

@supports not (zoom: 1) {
    html[class*="a11y-font-"] .site-a11y-scalable {
        zoom: unset;
        width: 100%;
        max-width: 100%;
        font-size: calc(1rem * var(--a11y-scale));
    }
}

html.a11y-underline-links a {
    text-decoration: underline !important;
    text-underline-offset: 0.15em;
}

html.a11y-hide-images img:not(.a11y-keep),
html.a11y-hide-images picture,
html.a11y-hide-images video,
html.a11y-hide-images svg:not(.a11y-keep) {
    visibility: hidden !important;
    max-width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

html.a11y-hide-images [style*="background-image"] {
    background-image: none !important;
}

html.a11y-hide-images img[alt]:not([alt=""])::after {
    content: attr(alt);
    visibility: visible;
    display: inline;
    max-width: none;
    opacity: 1;
    font-size: inherit;
    color: inherit;
}

/* Dark high contrast */

html.a11y-contrast-dark {
    color-scheme: dark;
}

html.a11y-contrast-dark,
html.a11y-contrast-dark body {
    background-color: #000 !important;
    color: #fff !important;
}

html.a11y-contrast-dark .site-header__top,
html.a11y-contrast-dark .site-header__main,
html.a11y-contrast-dark .site-header__sidebar,
html.a11y-contrast-dark .site-header__mega,
html.a11y-contrast-dark .site-footer,
html.a11y-contrast-dark .main-content,
html.a11y-contrast-dark main,
html.a11y-contrast-dark section,
html.a11y-contrast-dark article,
html.a11y-contrast-dark aside,
html.a11y-contrast-dark nav,
html.a11y-contrast-dark header,
html.a11y-contrast-dark footer {
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

html.a11y-contrast-dark a,
html.a11y-contrast-dark button,
html.a11y-contrast-dark .site-header__nav-link,
html.a11y-contrast-dark .site-footer a {
    color: #ffeb3b !important;
}

html.a11y-contrast-dark .site-header__search-input,
html.a11y-contrast-dark input,
html.a11y-contrast-dark textarea,
html.a11y-contrast-dark select {
    background-color: #000 !important;
    color: #fff !important;
    border: 1px solid #fff !important;
}

html.a11y-contrast-dark .site-header__menu-toggle,
html.a11y-contrast-dark .site-header__toolbar-btn,
html.a11y-contrast-dark .site-header__search-btn {
    background-color: #222 !important;
    border: 1px solid #fff !important;
}

html.a11y-contrast-dark .site-a11y-controls__btn {
    background: #222 !important;
    color: #ffeb3b !important;
    border-color: #fff !important;
}

html.a11y-contrast-dark .site-a11y-controls__btn.is-active {
    background: #ffeb3b !important;
    color: #000 !important;
}

html.a11y-contrast-dark .site-a11y-controls__reset {
    color: #ffeb3b !important;
    border-color: #fff !important;
}

html.a11y-contrast-dark .site-header__accessibility-panel,
html.a11y-contrast-dark .site-header__lang-menu {
    background: #000 !important;
    border: 1px solid #fff !important;
}

/* Light high contrast */

html.a11y-contrast-light {
    color-scheme: light;
}

html.a11y-contrast-light,
html.a11y-contrast-light body {
    background-color: #fff !important;
    color: #000 !important;
}

html.a11y-contrast-light .site-header__top,
html.a11y-contrast-light .site-header__main,
html.a11y-contrast-light .site-header__sidebar,
html.a11y-contrast-light .site-header__mega,
html.a11y-contrast-light .site-footer,
html.a11y-contrast-light .main-content,
html.a11y-contrast-light main,
html.a11y-contrast-light section,
html.a11y-contrast-light article,
html.a11y-contrast-light aside,
html.a11y-contrast-light nav,
html.a11y-contrast-light header,
html.a11y-contrast-light footer {
    background-color: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
}

html.a11y-contrast-light a,
html.a11y-contrast-light button,
html.a11y-contrast-light .site-header__nav-link,
html.a11y-contrast-light .site-footer a {
    color: #0000cc !important;
}

html.a11y-contrast-light .site-header__top,
html.a11y-contrast-light .site-header__accessibility-trigger,
html.a11y-contrast-light .site-header__lang-trigger {
    color: #000 !important;
}

html.a11y-contrast-light .site-header__top-nav a {
    color: #000 !important;
}

html.a11y-contrast-light .site-header__search-input,
html.a11y-contrast-light input,
html.a11y-contrast-light textarea,
html.a11y-contrast-light select {
    background-color: #fff !important;
    color: #000 !important;
    border: 2px solid #000 !important;
}

html.a11y-contrast-light .site-a11y-controls__btn {
    background: #fff !important;
    color: #000 !important;
    border: 2px solid #000 !important;
}

html.a11y-contrast-light .site-a11y-controls__btn.is-active {
    background: #000 !important;
    color: #fff !important;
}

html.a11y-contrast-light .site-a11y-controls__reset {
    color: #000 !important;
    border: 2px solid #000 !important;
}

html.a11y-contrast-light .site-header__accessibility-panel,
html.a11y-contrast-light .site-header__lang-menu {
    background: #fff !important;
    border: 2px solid #000 !important;
}

html.a11y-contrast-light .site-header__accessibility-trigger,
html.a11y-contrast-light .site-header__lang {
    background: rgba(0, 0, 0, 0.08) !important;
    color: #000 !important;
}

/* Sidebar-specific control styling */

.site-header__sidebar-a11y {
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.site-header__sidebar-a11y-title {
    margin: 0 0 12px;
    color: #3a68d5;
    font-size: 15px;
    font-weight: 600;
    line-height: 20px;
}

.site-header__sidebar-a11y .site-a11y-controls__label {
    color: #666;
}

.site-header__sidebar-a11y .site-a11y-controls__toggle-row .site-a11y-controls__label {
    color: #333;
}

html.a11y-contrast-dark .site-header__sidebar-a11y {
    border-bottom-color: #fff !important;
}

html.a11y-contrast-dark .site-header__sidebar-a11y-title,
html.a11y-contrast-dark .site-header__sidebar-a11y .site-a11y-controls__label,
html.a11y-contrast-dark .site-header__sidebar-a11y .site-a11y-controls__toggle-row .site-a11y-controls__label {
    color: #fff !important;
}

html.a11y-contrast-light .site-header__sidebar-a11y {
    border-bottom-color: #000 !important;
}

html.a11y-contrast-light .site-header__sidebar-a11y-title,
html.a11y-contrast-light .site-header__sidebar-a11y .site-a11y-controls__label,
html.a11y-contrast-light .site-header__sidebar-a11y .site-a11y-controls__toggle-row .site-a11y-controls__label {
    color: #000 !important;
}

@media (prefers-reduced-motion: reduce) {
    .site-a11y-controls__btn,
    .site-a11y-controls__reset {
        transition: none;
    }
}