/* Accessibility Utility Classes */

/* Dark Mode */
body.dark-mode {
    background-color: #121212 !important;
    color: #e0e0e0 !important;
}
body.dark-mode div, 
body.dark-mode main, 
body.dark-mode section,
body.dark-mode header,
body.dark-mode footer,
body.dark-mode nav {
    background-color: #121212 !important;
    color: #e0e0e0 !important;
    border-color: #333 !important;
}
body.dark-mode a {
    color: #60a5fa !important;
}
body.dark-mode a:hover {
    color: #93c5fd !important;
}
body.dark-mode h1, 
body.dark-mode h2, 
body.dark-mode h3, 
body.dark-mode h4, 
body.dark-mode h5, 
body.dark-mode h6,
body.dark-mode p,
body.dark-mode span {
    color: #e0e0e0 !important;
}

/* High Contrast */
body.high-contrast {
    filter: contrast(120%) brightness(90%) !important;
    background-color: #000 !important;
}

body.high-contrast * {
    color: #fff !important;
    border-color: #444 !important;
}

body.high-contrast a {
    color: #ffd700 !important;
}

/* Grayscale */
body.grayscale-mode {
    filter: grayscale(100%) !important;
}

/* Underline Links */
body.underline-links a {
    text-decoration: underline !important;
    text-underline-offset: 4px;
}

/* Dyslexia Font */
@font-face {
    font-family: 'OpenDyslexic';
    src: url('https://opendyslexic.org/core/OpenDyslexic-Regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

body.dyslexia-font,
body.dyslexia-font * {
    font-family: 'OpenDyslexic', sans-serif !important;
}

/* Big Cursor */
body.big-cursor,
body.big-cursor * {
    cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="black" stroke="white" stroke-width="2" d="M7 2l12 11.2h-5.8l3.3 7.3-2.2.9-3.2-7.4-4.4 4.8z"/></svg>'), auto !important;
}

/* Highlight Focus */
body.highlight-focus *:focus {
    outline: 4px solid #ffeb3b !important;
    outline-offset: 2px !important;
    background-color: rgba(255, 235, 59, 0.2) !important;
}

/* Line Spacing Classes */
body.spacing-medium {
    line-height: 1.8 !important;
}
body.spacing-large {
    line-height: 2.2 !important;
}

/* Smooth Transitions for font-size and spacing */
html {
    transition: font-size 0.3s ease;
}
body {
    transition: line-height 0.3s ease, filter 0.3s ease;
}
