/*
================================================
Accessibility - High Contrast Overrides
================================================
These styles only activate when the user has enabled
high contrast mode in their OS/browser settings.
No impact on normal visitors.

Uses brand purple (#3E428C) instead of pure black for
backgrounds — 8.89:1 contrast ratio against white,
exceeds WCAG 2.1 AAA requirements.

Compliant with:
- European Accessibility Act (EAA) 2025
- WCAG 2.1 AA contrast requirements
================================================
*/

@media (prefers-contrast: more) {

	/* ===== TEXT & BACKGROUNDS ===== */

	body {
		color: #3E428C !important;
		background-color: #fff !important;
	}

	#content h1,
	#content h2,
	#content h3,
	#content h4,
	#content h5,
	#content h6,
	.entry-content h1,
	.entry-content h2,
	.entry-content h3 {
		color: #3E428C !important;
	}

	p, li, td, th, label, span, div {
		color: #3E428C !important;
	}

	/* ===== LINKS ===== */

	a,
	a:visited {
		color: #0000EE !important;
		text-decoration: underline !important;
	}

	a:hover,
	a:focus,
	a:active {
		color: #3E428C !important;
		text-decoration: underline !important;
		outline: 2px solid #3E428C !important;
	}

	.entry-content a {
		color: #0000EE !important;
		text-decoration: underline !important;
	}

	/* ===== FOCUS OUTLINES ===== */

	a:focus,
	button:focus,
	input:focus,
	select:focus,
	textarea:focus,
	[tabindex]:focus {
		outline: 3px solid #3E428C !important;
		outline-offset: 2px !important;
	}

	/* ===== BUTTONS ===== */

	.btn,
	button.btn,
	input[type="button"].btn,
	input[type="reset"].btn,
	input[type="submit"].btn {
		background-color: #3E428C !important;
		color: #fff !important;
		border: 2px solid #3E428C !important;
	}

	.btn:hover,
	button.btn:hover,
	input[type="submit"].btn:hover {
		background-color: #2d3066 !important;
		color: #fff !important;
	}

	.btn.btn-outline,
	button.btn.btn-outline,
	input[type="button"].btn.btn-outline,
	input[type="reset"].btn.btn-outline,
	input[type="submit"].btn.btn-outline {
		background-color: #fff !important;
		color: #3E428C !important;
		border: 2px solid #3E428C !important;
	}

	/* ===== HEADER & FOOTER ===== */

	.header-top-bar,
	footer.footer,
	.footer-container {
		background: #3E428C !important;
		color: #fff !important;
	}

	.header-top-bar a,
	.header-top-bar a:visited,
	footer.footer a,
	footer.footer a:visited {
		color: #fff !important;
		text-decoration: underline !important;
	}

	footer.footer .copy {
		color: #fff !important;
	}

	/* ===== NAVIGATION ===== */

	a.nav-link-regular,
	.navbar a.nav-link {
		color: #3E428C !important;
		text-decoration: none !important;
	}

	#masthead .dropdown-menu {
		background: #fff !important;
		border: 2px solid #3E428C !important;
	}

	#masthead .dropdown-menu .dropdown-item {
		color: #3E428C !important;
	}

	#masthead .dropdown-menu .dropdown-item:hover,
	#masthead .dropdown-menu .dropdown-item:focus {
		background-color: #3E428C !important;
		color: #fff !important;
	}

	li.nav-item {
		border-bottom: 1px solid #3E428C !important;
	}

	/* ===== BANNERS ===== */

	.banner .banner-title {
		background: rgba(62, 66, 140, 0.95) !important;
	}

	.banner .banner-title h1,
	.banner .banner-title h2,
	.banner .banner-title .pre {
		color: #fff !important;
	}

	/* ===== SIDEBAR ===== */

	.side-links header {
		background: #3E428C !important;
		color: #fff !important;
	}

	.side-links ul li a {
		color: #0000EE !important;
		border-bottom: 1px solid #3E428C !important;
	}

	.side-links ul li a.active {
		background-color: #3E428C !important;
		color: #fff !important;
	}

	.sidebar-header {
		background-color: #3E428C !important;
		color: #fff !important;
	}

	/* ===== FIGURE CAPTIONS ===== */

	figure figcaption.blue,
	figure figcaption.green,
	figure figcaption.blue.has-ribbon::after,
	figure figcaption.green.has-ribbon::after {
		background: rgba(62, 66, 140, 0.95) !important;
		color: #fff !important;
	}

	#content figure figcaption h1,
	figure figcaption.blue h1,
	figure figcaption.blue a,
	figure figcaption.blue span,
	figure figcaption.blue p,
	figure figcaption.green h1,
	figure figcaption.green a,
	figure figcaption.green span,
	figure figcaption.green p {
		color: #fff !important;
	}

	/* ===== FORMS ===== */

	input,
	select,
	textarea {
		border: 2px solid #3E428C !important;
		color: #3E428C !important;
		background-color: #fff !important;
	}

	.search-form {
		border-bottom: 2px solid #3E428C !important;
	}

	.search-form .search-submit {
		background-color: #3E428C !important;
		color: #fff !important;
	}

	/* ===== TABS ===== */

	.tab-bar .tab-item {
		color: #666 !important;
		border: 1px solid #ccc !important;
	}

	.tab-bar .tab-item.active {
		color: #3E428C !important;
		border: 2px solid #3E428C !important;
		background: #fff !important;
	}

	.tab-bar .tab-item.active:before {
		background: #3E428C !important;
	}

	/* ===== FAQ ACCORDION ===== */

	.faq-accordion-widget .accordion .item {
		border-bottom: 2px solid #3E428C !important;
	}

	/* ===== TABLES ===== */

	table,
	table td,
	table th {
		border: 1px solid #3E428C !important;
	}

	figure.wp-block-table.is-style-stripes table tr {
		border-color: #3E428C !important;
	}

	/* ===== FOOTERLINKS ===== */

	.footerlinks h3 {
		color: #3E428C !important;
		border-bottom-color: #3E428C !important;
	}

	section.footerlinks ul li a {
		color: #3E428C !important;
	}

	/* ===== IMAGES ===== */

	img {
		border: 1px solid #3E428C !important;
	}

	/* ===== COUNTDOWN ===== */

	.countdown-message {
		background-color: #3E428C !important;
		color: #fff !important;
	}

	/* ===== COOKIE CONSENT ===== */

	.cc-btn {
		color: #fff !important;
	}

	/* ===== WORDPRESS BLOCKS ===== */

	.wp-block-buttons .wp-block-button__link {
		background-color: #3E428C !important;
		color: #fff !important;
		border: 2px solid #3E428C !important;
	}

	.wp-block-buttons .wp-block-button__link:hover {
		background-color: #2d3066 !important;
		color: #fff !important;
	}
}
