/* Accessibility Toolbar Refined Styles */
:root {
    --acc-maroon: #a3cb47;
    --acc-text: #333;
    --acc-bg: #fff;
    --acc-border: #eee;
}

/* Disable all transitions on page load to prevent zoom animation */
html.no-transition,
html.no-transition *,
html.no-transition *::before,
html.no-transition *::after {
    transition: none !important;
    animation: none !important;
}

.accessibility-toolbar {
    position: fixed;
    right: 0;
    top: 20% !important;
    z-index: 999999;
    font-family: 'Inter', 'Segoe UI', Roboto, sans-serif;
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-start;
}

.accessibility-tab {
    background: var(--acc-maroon);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: -2px 0 5px rgba(0,0,0,0.1);
    border-radius: 4px 0 0 4px;
    flex-shrink: 0;
}

.accessibility-toggle {
    background: none;
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.accessibility-menu {
    width: 230px;
    background: white;
    box-shadow: -5px 5px 15px rgba(0,0,0,0.1);
    border: 1px solid var(--acc-border);
    display: none;
    flex-direction: column;
    max-height: 80vh;
    overflow-y: auto;
    border-radius: 4px 0 0 4px;
}

.accessibility-toolbar.active .accessibility-menu {
    display: flex;
    animation: slideInRight 0.3s forwards;
}

@keyframes slideInRight {
    from { transform: translateX(20px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.accessibility-header {
    padding: 12px 15px;
    border-bottom: 1px solid var(--acc-border);
    background: #fcfcfc;
}

.accessibility-header h3 {
    margin: 0;
    font-size: 18px;
    color: #444;
    font-weight: 700;
}

.accessibility-list {
    display: flex;
    flex-direction: column;
    padding: 10px 0;
}

.acc-action-btn {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 8px 15px;
    border: none;
    background: white;
    text-align: left;
    cursor: pointer;
    transition: background 0.2s;
    color: var(--acc-text);
    font-size: 14px;
    gap: 10px;
}

.acc-action-btn i {
    font-size: 18px;
    width: 20px;
    text-align: center;
    color: #555;
}

.acc-action-btn:hover {
    background: #f5f5f5;
}

.acc-action-btn span {
    flex-grow: 1;
}

/* Accessibility Features - TARGETING WRAPPER */

/* 1. Universal Font Scaling - Override fixed pixels with rem */
#accessibility-wrapper h1, #accessibility-wrapper .h1 { font-size: 2.5rem !important; }
#accessibility-wrapper h2, #accessibility-wrapper .h2 { font-size: 2.75rem !important; }
#accessibility-wrapper h3, #accessibility-wrapper .h3 { font-size: 1.5rem !important; }
#accessibility-wrapper h4, #accessibility-wrapper .h4 { font-size: 1.3rem !important; }
#accessibility-wrapper h5, #accessibility-wrapper .h5 { font-size: 1.25rem !important; }
#accessibility-wrapper h6, #accessibility-wrapper .h6 { font-size: 1rem !important; }
#accessibility-wrapper p { font-size: 1rem !important; }
#accessibility-wrapper .post-card-title { font-size: 0.875rem !important; } /* 14px */
#accessibility-wrapper .section-title h3 { font-size: 1.5rem !important; }
#accessibility-wrapper .newsletter-name { font-size: 0.875rem !important; }
#accessibility-wrapper .card-title { font-size: 1rem !important; }
#accessibility-wrapper .title-color small { font-size: 0.85rem !important; }
#accessibility-wrapper .nav-link { font-size: 1.25rem !important; } /* 20px in nav */

/* 2. Grayscale */
html.grayscale-mode #accessibility-wrapper {
    filter: grayscale(100%) !important;
}

/* 3. High Contrast */
html.high-contrast #accessibility-wrapper {
    background: #000 !important;
    color: #fff !important;
}
html.high-contrast #accessibility-wrapper *:not(.accessibility-toolbar):not(.accessibility-toolbar *) {
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}
html.high-contrast #accessibility-wrapper a {
    color: #ffff00 !important;
}

/* 4. Negative Contrast (Inverted) */
html.inverted-colors #accessibility-wrapper {
    filter: invert(1) hue-rotate(180deg) !important;
}

/* 5. Light Background */
html.light-background #accessibility-wrapper {
    background-color: #f8f9fa !important;
    color: #212529 !important;
}
html.light-background #accessibility-wrapper *:not(.accessibility-toolbar *) {
    background-color: #f8f9fa !important;
    color: #212529 !important;
}

/* 6. Links Underline */
html.links-underline #accessibility-wrapper a {
    text-decoration: underline !important;
}

/* 7. Readable Font */
html.readable-font #accessibility-wrapper, 
html.readable-font #accessibility-wrapper * {
    font-family: Arial, Helvetica, sans-serif !important;
}

@media (max-width: 768px) {
    .accessibility-menu {
        width: 210px;
    }
}
