:root {
	--odessos-a11y-focus: #07396a;
}

/* Requested link presentation; keyboard focus outlines remain unchanged. */
html body a,
html body a:hover,
html body a:focus-visible {
	text-decoration: none !important;
}

html[data-odessos-text-size="default"],
html[data-odessos-text-size="default"] body {
	font-size: 16px !important;
}

html[data-odessos-text-size="large"],
html[data-odessos-text-size="large"] body {
	font-size: 18px !important;
}

html[data-odessos-text-size="xlarge"],
html[data-odessos-text-size="xlarge"] body {
	font-size: 24px !important;
}

html[data-odessos-text-size] body .odessos-brand-text strong,
html[data-odessos-text-size] body .odessos-mobile-brand strong {
	font-size: 1rem;
}

html[data-odessos-text-size] body .odessos-brand-text em,
html[data-odessos-text-size] body .odessos-mobile-brand em {
	font-size: .75rem;
}

html[data-odessos-text-size] body .header-navbar .header-menu__item-link--level-0,
html[data-odessos-text-size] body .odessos-header-signal,
html[data-odessos-text-size] body .header-search .c-search-form__input {
	font-size: .875rem;
}

/* Enlarged text must wrap rather than shrink the branding under menu items. */
html[data-odessos-text-size] body .header-menu__list {
	flex-wrap: wrap;
}

html[data-odessos-text-size] body .odessos-navbar-logo {
	flex-shrink: 0;
}

.odessos-accessibility {
	position: relative;
	z-index: 110;
	flex: 0 0 auto;
	margin-right: 12px;
	color: #212529;
	font-size: 1rem;
	line-height: 1.5;
}

.odessos-accessibility,
.odessos-accessibility * {
	box-sizing: border-box;
}

.odessos-accessibility__toggle,
.odessos-accessibility__close {
	min-width: 44px;
	min-height: 44px;
	border: 2px solid #07396a;
	border-radius: 3px;
	background: #fff;
	color: #07396a;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.odessos-accessibility__toggle {
	display: inline-flex;
	width: 42px;
	height: 42px;
	min-width: 42px;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: rgba(255, 255, 255, .12);
	color: #fff;
}

.odessos-accessibility__toggle-icon {
	display: block;
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

.odessos-accessibility__toggle-icon-head {
	fill: currentColor;
	stroke: none;
}

.odessos-accessibility__toggle:hover,
.odessos-accessibility__toggle[aria-expanded="true"] {
	background: #fff;
	color: #07396a;
}

.odessos-accessibility__close:hover {
	background: #07396a;
	color: #fff;
}

.odessos-accessibility__toggle:focus-visible,
.odessos-accessibility__close:focus-visible,
.odessos-accessibility__options label:has(input:focus-visible) {
	outline: 3px solid #fff;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--odessos-a11y-focus);
}

.odessos-accessibility__panel {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	right: auto;
	width: min(520px, calc(100vw - 32px));
	padding: 20px;
	border: 3px solid #07396a;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 8px 26px rgba(0, 0, 0, .28);
	color: #212529;
	text-align: left;
}

.odessos-accessibility__panel[hidden] {
	display: none !important;
}

.odessos-accessibility__panel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 18px;
}

.odessos-accessibility__panel-title {
	margin: 0;
	font-size: 1.125em;
	font-weight: 800;
}

.odessos-accessibility__close {
	flex: 0 0 44px;
	padding: 0;
	font-size: 1.5em;
	line-height: 1;
}

.odessos-accessibility__group {
	min-width: 0;
	margin: 0 0 18px;
	padding: 0;
	border: 0;
}

.odessos-accessibility__group legend {
	margin-bottom: 8px;
	padding: 0;
	color: inherit;
	font: inherit;
	font-weight: 700;
}

.odessos-accessibility__options {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.odessos-accessibility__options--contrast {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.odessos-accessibility__options label {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 8px 10px;
	border: 2px solid #6b7280;
	border-radius: 3px;
	background: #f3f5f7;
	color: #212529;
	font-weight: 700;
	text-align: center;
	cursor: pointer;
}

.odessos-accessibility__options label:has(input:checked) {
	border-color: #07396a;
	background: #07396a;
	color: #fff;
}

.odessos-accessibility__options input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.odessos-accessibility__status,
.odessos-accessibility__noscript {
	margin: 0;
	font-size: .875em;
}

.odessos-accessibility__status {
	min-height: 1.5em;
}

.odessos-accessibility__noscript {
	max-width: 34em;
	padding: 8px;
	background: #fff;
	color: #212529;
}

/* TownPress text that falls below WCAG 2.1 AA contrast in the default scheme. */
html:not([data-odessos-contrast="high"]) body .post-navigation__title-link,
html:not([data-odessos-contrast="high"]) body .post__attachment-label,
html:not([data-odessos-contrast="high"]) body.error404 .error-404-page__404 {
	color: #4d5961;
}

html:not([data-odessos-contrast="high"]) body .page__content p a:not(.c-button):not(.button):not(.wp-block-button__link):not(.odessos-home-hero__button):not(.odessos-home__contact-button):not(.odessos-header-signal),
html:not([data-odessos-contrast="high"]) body .page__content li a:not(.c-button):not(.button):not(.wp-block-button__link):not(.odessos-home-hero__button):not(.odessos-home__contact-button):not(.odessos-header-signal),
html:not([data-odessos-contrast="high"]) body .odessos-surveys-sidebar a {
	color: #07396a;
}

html:not([data-odessos-contrast="high"]) body .lsvr-alert-message--warning .lsvr-alert-message__title,
html:not([data-odessos-contrast="high"]) body .lsvr-alert-message--warning .lsvr-alert-message__text {
	color: #8f002c;
}

html[data-odessos-contrast="high"] {
	--odessos-a11y-focus: #ffff00;
	color-scheme: dark;
}

html[data-odessos-contrast="high"] body,
html[data-odessos-contrast="high"] body #wrapper,
html[data-odessos-contrast="high"] body .header,
html[data-odessos-contrast="high"] body .header__content,
html[data-odessos-contrast="high"] body .header-navbar,
html[data-odessos-contrast="high"] body .main,
html[data-odessos-contrast="high"] body .main__content,
html[data-odessos-contrast="high"] body .footer,
html[data-odessos-contrast="high"] body .footer__inner,
html[data-odessos-contrast="high"] body .widget,
html[data-odessos-contrast="high"] body .page__content,
html[data-odessos-contrast="high"] body .post__content,
html[data-odessos-contrast="high"] body .lsvr-container,
html[data-odessos-contrast="high"] body .wp-block-group,
html[data-odessos-contrast="high"] body .wp-block-column,
html[data-odessos-contrast="high"] body .forminator-ui,
html[data-odessos-contrast="high"] body .odessos-signal-form {
	border-color: #fff !important;
	background-color: #000 !important;
	color: #fff !important;
}

html[data-odessos-contrast="high"] body *:not(img):not(video):not(canvas):not(svg):not(path):not(a):not(button):not(input):not(select):not(textarea) {
	border-color: currentColor !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
}

html[data-odessos-contrast="high"] body,
html[data-odessos-contrast="high"] body p,
html[data-odessos-contrast="high"] body li,
html[data-odessos-contrast="high"] body dt,
html[data-odessos-contrast="high"] body dd,
html[data-odessos-contrast="high"] body h1,
html[data-odessos-contrast="high"] body h2,
html[data-odessos-contrast="high"] body h3,
html[data-odessos-contrast="high"] body h4,
html[data-odessos-contrast="high"] body h5,
html[data-odessos-contrast="high"] body h6,
html[data-odessos-contrast="high"] body label,
html[data-odessos-contrast="high"] body legend,
html[data-odessos-contrast="high"] body .odessos-brand-text strong,
html[data-odessos-contrast="high"] body .odessos-brand-text em,
html[data-odessos-contrast="high"] body .odessos-mobile-brand strong,
html[data-odessos-contrast="high"] body .odessos-mobile-brand em {
	color: #fff !important;
}

html[data-odessos-contrast="high"] body a:not(.button):not(.wp-block-button__link):not(.odessos-header-signal):not(.odessos-home-hero__button):not(.odessos-home__contact-button) {
	color: #00ffff !important;
}

html[data-odessos-contrast="high"] body a:visited:not(.button):not(.wp-block-button__link):not(.odessos-header-signal):not(.odessos-home-hero__button):not(.odessos-home__contact-button) {
	color: #ffb3ff !important;
}

html[data-odessos-contrast="high"] body a:hover,
html[data-odessos-contrast="high"] body a:focus-visible {
	color: #ffff00 !important;
}

html[data-odessos-contrast="high"] body button,
html[data-odessos-contrast="high"] body input[type="button"],
html[data-odessos-contrast="high"] body input[type="submit"],
html[data-odessos-contrast="high"] body input[type="reset"],
html[data-odessos-contrast="high"] body .button,
html[data-odessos-contrast="high"] body .wp-block-button__link,
html[data-odessos-contrast="high"] body .odessos-home-hero__button,
html[data-odessos-contrast="high"] body .odessos-home__contact-button,
html[data-odessos-contrast="high"] body .odessos-header-signal {
	border: 2px solid #ffff00 !important;
	background: #ffff00 !important;
	color: #000 !important;
	text-decoration: none !important;
}

html[data-odessos-contrast="high"] body input:not([type="button"]):not([type="submit"]):not([type="reset"]),
html[data-odessos-contrast="high"] body select,
html[data-odessos-contrast="high"] body textarea {
	border: 2px solid #fff !important;
	background: #000 !important;
	color: #fff !important;
	caret-color: #fff;
}

/* Link-based buttons retain black text on yellow when hovered or focused. */
html[data-odessos-contrast="high"] body :is(.button, .wp-block-button__link, .odessos-home-hero__button, .odessos-home__contact-button, .odessos-header-signal):is(:hover, :focus-visible) {
	color: #000 !important;
}

html[data-odessos-contrast="high"] body input::placeholder,
html[data-odessos-contrast="high"] body textarea::placeholder {
	color: #d9d9d9 !important;
	opacity: 1;
}

html[data-odessos-contrast="high"] body table,
html[data-odessos-contrast="high"] body th,
html[data-odessos-contrast="high"] body td,
html[data-odessos-contrast="high"] body blockquote,
html[data-odessos-contrast="high"] body hr {
	border-color: #fff !important;
	background: #000 !important;
	color: #fff !important;
}

html[data-odessos-contrast="high"] body :focus-visible {
	outline: 3px solid #ffff00 !important;
	outline-offset: 3px !important;
}

html[data-odessos-contrast="high"] body .odessos-home-hero__shade {
	background: rgba(0, 0, 0, .88) !important;
}

html[data-odessos-contrast="high"] body .odessos-home-hero__selector:not([aria-current="true"]) {
	background: #000 !important;
	color: #fff !important;
}

html[data-odessos-contrast="high"] body .odessos-home__stats,
html[data-odessos-contrast="high"] body .header-toolbar-toggle,
html[data-odessos-contrast="high"] body .odessos-header-actions {
	background: #000 !important;
	box-shadow: none !important;
}

html[data-odessos-contrast="high"] body .odessos-accessibility__panel,
html[data-odessos-contrast="high"] body .odessos-accessibility__options label,
html[data-odessos-contrast="high"] body .odessos-accessibility__noscript {
	border-color: #fff !important;
	background: #000 !important;
	color: #fff !important;
}

html[data-odessos-contrast="high"] body .odessos-accessibility__options label:has(input:checked) {
	border-color: #ffff00 !important;
	background: #ffff00 !important;
	color: #000 !important;
}

html[data-odessos-contrast="high"] body ::selection {
	background: #ffff00;
	color: #000;
}

@media (max-width: 780px) {
	.header__content-inner > .odessos-accessibility {
		order: 1;
		flex: 0 0 44px;
		width: 44px;
		margin: 0 0 12px 12px;
		padding: 0;
	}

	.header__content-inner > .odessos-accessibility .odessos-accessibility__toggle {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
		background: #07396a;
		color: #fff;
	}

	.header__content-inner > .odessos-accessibility .odessos-accessibility__toggle:hover,
	.header__content-inner > .odessos-accessibility .odessos-accessibility__toggle[aria-expanded="true"] {
		border: 2px solid #07396a;
		background: #fff;
		color: #07396a;
	}

	.header__content-inner > .odessos-accessibility .odessos-accessibility__panel {
		left: auto;
		right: 0;
		width: min(520px, calc(100vw - 32px));
	}

	.header__content-inner > .header-toolbar-toggle {
		order: 2;
	}

	.header__content-inner > .header-toolbar {
		order: 3;
	}

	.header__content-inner > .odessos-header-actions {
		order: 4;
	}
}

@media (max-width: 480px) {
	.odessos-accessibility__panel {
		left: auto;
		right: 0;
		width: calc(100vw - 32px);
		max-width: 520px;
		transform: none;
	}

	.odessos-accessibility__options,
	.odessos-accessibility__options--contrast {
		grid-template-columns: 1fr;
	}
}

@media (forced-colors: active) {
	.odessos-accessibility,
	.odessos-accessibility * {
		forced-color-adjust: auto;
	}
}
