:root {
	--cr-a11y-text: #4b5563;
	--cr-a11y-link: #163f9e;
	--cr-a11y-focus: #111827;
	--cr-a11y-focus-gap: #ffffff;
	--cr-a11y-error: #b42318;
}

.elementor-kit-30 {
	--e-global-color-text: var(--cr-a11y-text);
}

body,
.entry-content,
.elementor-widget-text-editor,
.elementor-widget-icon-list .elementor-icon-list-text,
.elementor-widget-icon-box .elementor-icon-box-description,
.elementor-widget-image-box .elementor-image-box-description {
	color: var(--cr-a11y-text);
}

a {
	text-underline-offset: 0.16em;
	text-decoration-thickness: max(1px, 0.08em);
}

.entry-content a:not(.elementor-button):not(.wp-block-button__link),
.elementor-widget-text-editor a:not(.elementor-button),
.elementor-widget-theme-post-content a:not(.elementor-button) {
	color: var(--cr-a11y-link);
	text-decoration: underline;
}

.entry-content a:not(.elementor-button):not(.wp-block-button__link):hover,
.elementor-widget-text-editor a:not(.elementor-button):hover,
.elementor-widget-theme-post-content a:not(.elementor-button):hover {
	text-decoration-thickness: max(2px, 0.12em);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
[role="button"]:focus-visible,
[role="link"]:focus-visible,
.elementor-button:focus-visible,
.elementor-menu-toggle:focus-visible,
.elementor-accordion-title:focus-visible,
.elementor-tab-title:focus-visible {
	outline: 3px solid var(--cr-a11y-focus) !important;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--cr-a11y-focus-gap) !important;
}

@supports selector(:focus-visible) {
	a:focus:not(:focus-visible),
	button:focus:not(:focus-visible),
	input:focus:not(:focus-visible),
	select:focus:not(:focus-visible),
	textarea:focus:not(:focus-visible),
	summary:focus:not(:focus-visible),
	[tabindex]:not([tabindex="-1"]):focus:not(:focus-visible) {
		outline: none;
		box-shadow: none;
	}
}

.main-header-menu .menu-link:focus-visible,
.ast-builder-menu .menu-link:focus-visible,
.hfe-nav-menu a:focus-visible {
	position: relative;
	z-index: 2;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.elementor-field-group .elementor-field:focus-visible {
	border-color: var(--cr-a11y-link) !important;
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"],
.elementor-field-group .elementor-field[aria-invalid="true"] {
	border-color: var(--cr-a11y-error) !important;
	box-shadow: 0 0 0 2px rgba(180, 35, 24, 0.2);
}

.elementor-field-required label::after,
label.required::after {
	content: " *";
	color: var(--cr-a11y-error);
	font-weight: 700;
}

.screen-reader-text:focus,
.skip-link:focus {
	background: #ffffff;
	color: #111827;
	outline: 3px solid var(--cr-a11y-focus);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--cr-a11y-focus-gap);
}

.cr-a11y-statement-link {
	background: #ffffff;
	color: var(--cr-a11y-text);
	font-size: 14px;
	line-height: 1.5;
	padding: 12px 20px;
	text-align: center;
}

.cr-a11y-statement-link a {
	color: var(--cr-a11y-link);
	text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto !important;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.elementor-motion-effects-element,
	.elementor-motion-effects-layer,
	.elementor-motion-effects-container,
	.swiper-wrapper {
		transform: none !important;
		transition: none !important;
	}
}
