/* Explain: Base reset and typography with nature background and accessibility styles. */
* {
    box-sizing: border-box;
}

html {
    background: var(--background-color);
    color: var(--text-color);
    scroll-padding-top: 92px;
}

body {
    margin: 0;
    overflow-x: hidden;
    background:
        linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.85)),
        url('https://files.cdn-files-a.com/uploads/12360355/normal_gi-6a9c65159e7fd.jpg?format=avif') center/cover fixed;
    color: var(--text-color);
    font-family: var(--font-body);
    text-rendering: optimizeLegibility;
}

button,
a,
select {
    cursor: pointer;
}

img {
    display: block;
    max-width: 100%;
}

::selection {
    background: var(--accent-color);
    color: #ffffff;
}

/* Accessibility Classes */
html.large-text {
    font-size: 115% !important;
}

body.high-contrast, body.high-contrast * {
    background-color: #000000 !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

body.high-contrast a, body.high-contrast button, body.high-contrast .fa-solid {
    color: #ffeb3b !important;
}

body.high-contrast img, body.high-contrast video {
    filter: grayscale(100%) contrast(120%) !important;
}

body.highlight-links a {
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 4px !important;
    background-color: #ffeb3b !important;
    color: #000000 !important;
}

body.highlight-links a * {
    color: #000000 !important;
}
