body.high-contrast {
    /* --- 1. Global Palette --- */
    --color-blue-dark: #000000;
    --color-blue-dark-rgb: 0, 0, 0;
    --color-blue-light: #FFFF00;
    --color-blue-light-rgb: 255, 255, 0;
    --color-cream-white: #FFFFFF;
    --color-cream-white-rgb: 255, 255, 255;
    --color-white: #FFFFFF;
    --color-white-rgb: 255, 255, 255;
    --color-black: #000000;
    --color-black-rgb: 0, 0, 0;
    --color-gray-light: #FFFFFF;
    --color-gray-light-rgb: 255, 255, 255;
    --color-gray-dark: #000000;
    --color-gray-dark-rgb: 0, 0, 0;

    /* --- 2. Semantic Variables --- */
    --color-bg-body: #FFFFFF;
    --color-bg-surface: #FFFFFF;
    --color-bg-header: #000000;
    --color-bg-footer: #000000;

    --color-text-body: #000000;
    --color-text-heading: #000000;
    --color-text-muted: #000000;
    --color-text-inverse: #FFFFFF;
    --color-text-footer: #FFFFFF;

    --color-link: #FFFFFF;
    --color-link-hover: #FFFF00;

    --color-border: #000000;

    /* Disable shadows */
    --shadow-card: none;
    --shadow-card-hover: none;
}

body.high-contrast .header,
body.high-contrast footer,
body.high-contrast .mega-menu {
    background-color: var(--color-blue-dark) !important;
    color: var(--color-white) !important;
    border-color: var(--color-white);
}

body.high-contrast .mega-menu {
    border: 2px solid var(--color-white);
    box-shadow: none;
}

body.high-contrast .info-card,
body.high-contrast .news-card,
body.high-contrast .hero-stats div,
body.high-contrast .hero-card,
body.high-contrast .slider,
body.high-contrast input {
    border: 2px solid var(--color-blue-dark);
}

body.high-contrast a:not(.header a):not(footer a):not(.mega-menu a):not(.btn):not(h2 a):hover {
    background-color: var(--color-blue-light);
}

body.high-contrast .btn {
    border: 2px solid var(--color-blue-dark);
}

body.high-contrast .btn.primary {
    border-color: var(--color-blue-dark);
}

body.high-contrast .btn.primary:hover {
    border-color: var(--color-blue-dark);
}

body.high-contrast .tag {
    border: 2px solid var(--color-blue-dark);
    font-weight: bold;
}

body.high-contrast img,
body.high-contrast .news-image,
body.high-contrast .media-thumb,
body.high-contrast .slide-image {
    filter: grayscale(100%) contrast(150%);
}

body.high-contrast *:focus-visible {
    outline: 2px solid var(--color-blue-light) !important;
    outline-offset: 2px;
}

body.high-contrast .info-card,
body.high-contrast .news-card,
body.high-contrast .hero-stats div {
    border: 2px solid var(--color-border);
    box-shadow: none;
}

body.high-contrast .slider-btn {
    border: 2px solid var(--color-link);
}

body.high-contrast .footer-content a:hover {
    color: var(--color-link-hover) !important;
}

body.high-contrast .footer-bottom {
    border-top: 1px solid rgba(var(--color-white-rgb));
}

body.high-contrast .main-nav {
    background-color: var(--color-blue-dark) !important;
    /*border-right: 2px solid var(--color-white);*/
}

body.high-contrast .main-nav a {
    /*border-bottom: 1px solid var(--color-white);*/
    color: var(--color-white) !important;
}

body.high-contrast .main-nav a:hover,
body.high-contrast .main-nav a.active {
    background-color: var(--color-white) !important;
    color: var(--color-blue-dark) !important;
}

body.high-contrast .mobile-back-btn {
    background-color: var(--color-blue-dark) !important;
    color: var(--color-white) !important;
    border-bottom: 2px solid var(--color-white) !important;
}

body.high-contrast .mobile-back-btn:hover {
    background-color: var(--color-white) !important;
    color: var(--color-blue-dark) !important;
}

/* GLightbox high contrast mode */
body.high-contrast .gbtn {
    background: var(--color-white) !important;
    border: 3px solid var(--color-black) !important;
    box-shadow: none !important;
}

body.high-contrast .gbtn:hover {
    background: var(--color-blue-light) !important;
    border-color: var(--color-black) !important;
}

body.high-contrast .gbtn svg,
body.high-contrast .gbtn svg path {
    fill: var(--color-black) !important;
}

body.high-contrast .gbtn:hover svg,
body.high-contrast .gbtn:hover svg path {
    fill: var(--color-black) !important;
}

body.high-contrast .goverlay {
    background: var(--color-white) !important;
}

body.high-contrast .gslide-image img {
    border: 3px solid var(--color-black) !important;
}

