.site-header {
	--header-background: #fcf7f0;
	--header-text: #0e352d;
	--nav-background: #12473c;
	--nav-text: #ffffff;

	position: relative;
	z-index: 10;
	margin: 0;
	background: var(--header-background);
	color: var(--header-text);
}

.site-header__inner {
	box-sizing: border-box;
	gap: 1.5rem 3rem;
	max-width: 1200px;
	min-height: 5.5rem;
	margin-inline: auto;
	padding: 0.75rem clamp(1rem, 4vw, 3rem);
}

.site-brand {
	min-width: 0;
	gap: 1rem;
}

.site-brand__logo {
	display: grid;
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	margin: 0;
	place-items: center;
	border: 2px dashed currentColor;
	border-radius: 50%;
}

.site-brand__logo:has(.custom-logo) {
	border-color: transparent;
}

.site-brand__logo .wp-block-site-logo,
.site-brand__logo .custom-logo-link {
	margin: 0;
}

.site-brand__logo img {
	display: block;
	max-width: 60px;
	max-height: 60px;
	object-fit: contain;
}

.site-brand__name {
	margin: 0;
	color: var(--header-text);
	font-family: var(--em-font-title);
	font-size: var(--em-title-primary);
	font-weight: 800;
	line-height: 1.1;
}

.site-brand__name a {
	color: inherit;
	text-decoration: none;
}

.site-brand__name a:hover {
	text-decoration: underline;
}

.site-header__controls {
	align-items: center;
	gap: 0.5rem;
	margin: 0;
}

.reading-control,
.font-control {
	margin: 0;
	color: var(--header-text);
}

.reading-control__trigger,
.font-control__trigger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 52px;
	min-height: 44px;
	padding: 0.45rem 0.7rem;
	border: 2px solid var(--header-text);
	border-radius: 0.65rem;
	background: transparent;
	color: var(--header-text);
	cursor: pointer;
}

.reading-control__trigger:hover,
.font-control__trigger:hover {
	background: rgb(14 53 45 / 10%);
}

.reading-control__symbol {
	font-weight: 800;
	line-height: 1;
}

.reading-control__symbol span:first-child {
	font-size: 0.8em;
}

.reading-control__symbol span:last-child {
	font-size: 1.25em;
}

.font-control__symbol {
	font-family: Faustina, Georgia, serif;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
}

.reading-dialog,
.font-dialog {
	box-sizing: border-box;
	width: min(calc(100% - 2rem), 32rem);
	max-height: calc(100% - 2rem);
	padding: 1.5rem;
	border: 2px solid var(--header-text);
	border-radius: 1rem;
	background: var(--header-background);
	color: var(--header-text);
	box-shadow: 0 1.25rem 3rem rgb(14 53 45 / 25%);
}

.reading-dialog::backdrop,
.font-dialog::backdrop {
	background: rgb(14 53 45 / 58%);
}

.reading-dialog__heading,
.font-dialog__heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.reading-dialog__heading h2,
.font-dialog__heading h2 {
	margin: 0;
	color: var(--header-text);
	font-size: 1.35rem;
}

.reading-dialog__description,
.font-dialog__description {
	margin: 0.65rem 0 1.25rem;
}

.reading-dialog__close,
.font-dialog__close {
	display: inline-grid;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	padding: 0;
	place-items: center;
	border: 2px solid transparent;
	border-radius: 50%;
	background: transparent;
	color: var(--header-text);
	font: inherit;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

.reading-dialog__close:hover,
.font-dialog__close:hover {
	background: rgb(14 53 45 / 10%);
}

.reading-control__options {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.5rem;
}

.font-control__options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.5rem;
}

.reading-control__options button,
.font-control__options button {
	min-height: 44px;
	padding: 0.55rem 0.8rem;
	border: 2px solid transparent;
	border-radius: 0.4rem;
	background: transparent;
	color: var(--header-text);
	font: inherit;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
}

.font-control__options [data-font-choice="current"] {
	font-family: "Atkinson Hyperlegible", Arial, sans-serif;
}

.font-control__options [data-font-choice="faustina"] {
	font-family: Faustina, Georgia, serif;
}

.reading-control__options button:hover,
.font-control__options button:hover {
	background: rgb(14 53 45 / 10%);
}

.reading-control__options button[aria-pressed="true"],
.font-control__options button[aria-pressed="true"] {
	border-color: var(--header-text);
	background: var(--header-text);
	color: var(--header-background);
}

.reading-control :where(button):focus-visible,
.font-control :where(button):focus-visible {
	outline: 3px solid var(--header-text);
	outline-offset: 3px;
}

.site-header .site-navigation-bar {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	height: 56px;
	min-height: 56px;
	margin: 0;
	padding: 0 clamp(1rem, 4vw, 3rem);
	background: var(--nav-background);
	color: var(--nav-text);
}

.site-navigation {
	align-items: center;
	height: 100%;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto !important;
	justify-content: center;
}

.site-navigation .wp-block-navigation__responsive-container:not(.is-menu-open),
.site-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) :where(
	.wp-block-navigation__responsive-close,
	.wp-block-navigation__responsive-dialog,
	.wp-block-navigation__responsive-container-content
) {
	align-items: center;
	box-sizing: border-box;
	height: 100%;
	min-height: 0 !important;
	max-height: 56px;
	margin-block: 0;
	padding-block: 0;
}

.site-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
	background-color: transparent !important;
}

.site-navigation :where(.wp-block-navigation__container, .wp-block-page-list) {
	align-items: center;
	margin-block: 0 !important;
	padding-block: 0;
}

.site-navigation .wp-block-navigation-item {
	display: flex;
	align-items: center;
	margin-block: 0;
}

.site-navigation,
.site-navigation a,
.site-navigation .wp-block-navigation-item__content,
.site-navigation .wp-block-navigation__responsive-container-open,
.site-navigation .wp-block-navigation__responsive-container-close {
	color: var(--nav-text);
}

.site-navigation .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--nav-background) !important;
	color: var(--nav-text) !important;
}

.site-navigation a {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 44px;
	padding: 0.5rem 0.7rem 0;
	font-weight: 700;
	line-height: 1.2;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.2em;
}

.site-navigation a:hover,
.site-navigation a:focus-visible {
	text-decoration: underline;
}

.site-navigation :where(a, button):focus-visible {
	outline: 3px solid #ffffff;
	outline-offset: 2px;
}

html[data-reading-size="larger"] {
	font-size: 115%;
}

html[data-reading-size="largest"] {
	font-size: 130%;
}

html[data-reading-size="larger"] body {
	font-size: 20.7px;
}

html[data-reading-size="largest"] body {
	font-size: 23.4px;
}

@media (max-width: 700px) {
	.site-header__inner {
		align-items: center;
		flex-wrap: nowrap !important;
		gap: 0.75rem;
		min-height: 0;
		padding: 0.75rem 1rem;
	}

	.site-brand {
		flex: 1 1 auto;
		gap: 0.75rem;
		min-width: 0;
	}

	.site-brand__logo {
		flex-basis: 52px;
		width: 52px;
		height: 52px;
	}

	.site-brand__logo img {
		max-width: 50px;
		max-height: 50px;
	}

	.site-brand__name {
		min-width: 0;
		font-size: clamp(1.5rem, 7vw, 2.25rem);
		overflow-wrap: anywhere;
	}

	.site-header__controls {
		flex: 0 0 auto;
		gap: 0.35rem;
	}

	.reading-control {
		width: auto;
	}

	.reading-control__trigger,
	.font-control__trigger {
		min-width: 48px;
		padding-inline: 0.55rem;
	}

	.site-navigation .wp-block-navigation__responsive-container-open,
	.site-navigation .wp-block-navigation__responsive-container-close {
		display: grid;
		width: 44px;
		height: 44px;
		padding: 0;
		place-items: center;
	}

	.site-navigation .wp-block-navigation__responsive-container.is-menu-open {
		padding: 1rem;
	}

	.site-navigation .wp-block-navigation__responsive-container-close {
		top: 1rem;
		right: 1rem;
		color: #ffffff !important;
	}

	.site-navigation .wp-block-navigation__responsive-container-content {
		align-items: center;
		padding: 4rem 1rem 2rem;
	}

	.site-navigation .wp-block-navigation__responsive-container.is-menu-open :where(
		a,
		.wp-block-navigation-item__content
	) {
		justify-content: center;
		max-width: 100%;
		padding: 0.75rem 1rem;
		color: #ffffff !important;
		text-align: center;
		white-space: normal;
		overflow-wrap: anywhere;
	}

	.reading-control__options,
	.font-control__options {
		grid-template-columns: 1fr;
	}
}

@media (forced-colors: active) {
	.reading-control__options button[aria-pressed="true"],
	.font-control__options button[aria-pressed="true"] {
		outline: 2px solid ButtonText;
		outline-offset: -5px;
	}
}
