:root {
	--veil-link-light: #0A4FCC;
	--veil-link-light-visited: #4B2C83;
	--veil-link-dark: #9EC5FF;
	--veil-link-dark-visited: #C7A6FF;
	--veil-crimson: #7A0000;
	--veil-crimson-dark: #FF9B9B;
	--veil-focus-ring: #FFD966;
}

/* ==========================================
   WCAG AAA CONTENT LINKS
========================================== */

.entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
.ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link) {
	color: var(--veil-link-light);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.15em;
	text-decoration-color: currentColor;
}

.entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):visited,
.ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):visited {
	color: var(--veil-link-light-visited);
}

.entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):hover,
.entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):focus-visible,
.ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):hover,
.ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):focus-visible {
	text-decoration-thickness: 3px;
}

/* Focus visibility */
.entry-content a:focus-visible,
.ct-entry-content a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.veil-btn:focus-visible {
	outline: 3px solid var(--veil-focus-ring);
	outline-offset: 3px;
}

/* ==========================================
   DARK MODE LINKS
========================================== */

@media (prefers-color-scheme: dark) {
	.entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
	.ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link) {
		color: var(--veil-link-dark);
	}

	.entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):visited,
	.ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):visited {
		color: var(--veil-link-dark-visited);
	}
}

[data-color-mode="dark"] .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
[data-color-mode="dark"] .ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link) {
	color: var(--veil-link-dark);
}

[data-color-mode="dark"] .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):visited,
[data-color-mode="dark"] .ct-entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link):visited {
	color: var(--veil-link-dark-visited);
}

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

.page-legal .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
.page-support .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
.page-privacy-policy .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
.page-terms-and-conditions .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link) {
	color: var(--veil-crimson);
}

@media (prefers-color-scheme: dark) {
	.page-legal .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
	.page-support .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
	.page-privacy-policy .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link),
	.page-terms-and-conditions .entry-content a:not(.button):not(.btn):not(.veil-btn):not(.wp-block-button__link) {
		color: var(--veil-crimson-dark);
	}
}

/* ==========================================
   MOTION SAFETY
========================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}
}