/* Accessibility variants — toggled by JS via classes on <html> or <body> */

/* Font size variations (root font-size scales whole layout via rem) */
html.fs-small  { font-size: 14px; }
html.fs-normal { font-size: 16px; }
html.fs-large  { font-size: 19px; }

/* High-contrast mode — black/yellow palette */
body.hc-on,
body.hc-on .glass,
body.hc-on .glass-strong,
body.hc-on .glass-card,
body.hc-on .glass-navbar,
body.hc-on .glass-offcanvas,
body.hc-on .glass-tint {
    background: #000 !important;
    color: #ffea00 !important;
    border-color: #ffea00 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
}

body.hc-on .site-header,
body.hc-on .site-footer,
body.hc-on .top-bar,
body.hc-on .hero,
body.hc-on .page-hero,
body.hc-on .stats-strip,
body.hc-on .footer-top,
body.hc-on .footer-bottom {
    background: #000 !important;
    color: #ffea00 !important;
}

body.hc-on h1, body.hc-on h2, body.hc-on h3, body.hc-on h4, body.hc-on h5, body.hc-on h6,
body.hc-on p, body.hc-on a, body.hc-on li, body.hc-on label,
body.hc-on .nav-link, body.hc-on .navbar-brand, body.hc-on .brand-name, body.hc-on .brand-sub,
body.hc-on .small, body.hc-on address, body.hc-on .text-muted2, body.hc-on .text-muted {
    color: #ffea00 !important;
}

body.hc-on a { text-decoration: underline !important; }
body.hc-on a:hover, body.hc-on a:focus { color: #fff !important; background: #000 !important; }

body.hc-on .btn,
body.hc-on .btn-primary,
body.hc-on .btn-outline-primary,
body.hc-on .btn-donate,
body.hc-on .btn-outline-light {
    background: #ffea00 !important;
    color: #000 !important;
    border: 2px solid #ffea00 !important;
    box-shadow: none !important;
    background-image: none !important;
}
body.hc-on .btn:hover, body.hc-on .btn:focus {
    background: #fff !important; color: #000 !important; border-color: #fff !important;
}

body.hc-on .form-control, body.hc-on .form-select {
    background: #000 !important; color: #ffea00 !important; border: 2px solid #ffea00 !important;
}
body.hc-on .form-control::placeholder { color: rgba(255,234,0,.6) !important; }

body.hc-on .card, body.hc-on .accordion-item { background: #000 !important; border: 1px solid #ffea00 !important; }

body.hc-on :focus-visible {
    outline: 3px solid #fff !important;
    outline-offset: 3px !important;
}

body.hc-on .gallery-grid a, body.hc-on .gallery-grid img { filter: grayscale(1) contrast(1.4); }

/* Hide decorative blobs in HC mode */
body.hc-on .bg-blobs::before, body.hc-on .bg-blobs::after { display: none; }
body.hc-on .hero::before, body.hc-on .hero::after { display: none; }

/* Active state on a11y toolbar buttons */
.btn[data-a11y][aria-pressed="true"] {
    background: var(--ifd-primary);
    color: #fff;
}

/* Underline links (option some users may toggle in future) */
body.underline-links a:not(.btn):not(.nav-link):not(.dropdown-item) { text-decoration: underline; }
