:root {
	--taxiolgy-radius-structural: 4px;
	--taxiolgy-radius-control: 10px;
	--taxiolgy-radius-hero: 14px;
	--taxiolgy-shadow-hero: 0 12px 40px color-mix(in srgb, var(--wp--preset--color--ink), transparent 90%);
	--taxiolgy-transition-fast: 140ms ease-out;
	--taxiolgy-transition-panel: 220ms ease-out;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	overflow-x: hidden;
}

img {
	height: auto;
	max-width: 100%;
}

.wp-site-blocks {
	padding: 0;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

.taxiolgy-skip-link {
	background: var(--wp--preset--color--brand-yellow);
	color: var(--wp--preset--color--ink);
	font-weight: 700;
	left: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	position: fixed;
	top: -100%;
	z-index: 100000;
}

.taxiolgy-skip-link:focus {
	top: var(--wp--preset--spacing--30);
}

:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--brand-yellow);
	outline-offset: 3px;
}

.has-stafford-green-background-color :where(a, button):focus-visible,
.taxiolgy-site-footer :where(a, button):focus-visible {
	box-shadow: 0 0 0 2px var(--wp--preset--color--paper);
}

.taxiolgy-site-header {
	background: var(--wp--preset--color--paper);
	border-top: 4px solid var(--wp--preset--color--brand-yellow);
	position: relative;
	z-index: 100;
}

body.admin-bar .taxiolgy-site-header {
	top: 32px;
}

.taxiolgy-site-header__inner {
	align-items: center;
	display: grid;
	gap: var(--wp--preset--spacing--50);
	grid-template-columns: minmax(220px, auto) 1fr auto;
	min-height: 76px;
	padding-block: var(--wp--preset--spacing--30);
}

.taxiolgy-site-header__inner > * {
	margin-block-start: 0;
}

.taxiolgy-site-identity {
	align-items: center;
	display: flex;
	gap: var(--wp--preset--spacing--30);
	min-width: 0;
}

.taxiolgy-site-identity__logo {
	flex: 0 0 auto;
	margin: 0;
	width: 64px;
}

.taxiolgy-site-identity__logo img {
	display: block;
	max-height: 56px;
	object-fit: contain;
	width: auto;
}

.taxiolgy-site-identity .wp-block-site-title {
	margin: 0;
	white-space: nowrap;
}

.taxiolgy-site-identity .wp-block-site-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.taxiolgy-site-header .wp-block-navigation {
	justify-self: end;
}

.taxiolgy-site-header .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink);
	padding-block: var(--wp--preset--spacing--30);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}

.taxiolgy-site-header .current-menu-item > .wp-block-navigation-item__content,
.taxiolgy-site-header .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--stafford-green);
	text-decoration: underline;
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	align-items: center;
	display: flex;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.taxiolgy-main {
	min-height: 55vh;
}

.taxiolgy-home-hero {
	min-height: 560px;
	position: relative;
}

.taxiolgy-home-hero__media,
.taxiolgy-home-hero__media figure,
.taxiolgy-home-hero__media img {
	height: 100%;
	margin: 0;
	min-height: 560px;
	width: 100%;
}

.taxiolgy-home-hero__media {
	inset: 0;
	position: absolute;
}

.taxiolgy-home-hero__media img {
	object-fit: cover;
	object-position: 68% 52%;
}

.taxiolgy-home-hero__inner {
	display: flex;
	margin-block-start: 0;
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size);
	min-height: 560px;
	position: relative;
	width: calc(100% - 48px);
	z-index: 2;
}

.taxiolgy-home-hero__panel {
	align-self: center;
	background: var(--wp--preset--color--paper);
	border-radius: var(--taxiolgy-radius-hero);
	box-shadow: var(--taxiolgy-shadow-hero);
	box-sizing: border-box;
	margin-block: var(--wp--preset--spacing--70);
	max-width: 452px;
	padding: var(--wp--preset--spacing--60);
}

.taxiolgy-home-hero__panel h1 {
	font-size: clamp(2.75rem, 4vw, 3.25rem);
	letter-spacing: -0.025em;
	line-height: 1.02;
	margin-block: 0 var(--wp--preset--spacing--40);
}

.taxiolgy-home-hero__panel p {
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.45;
}

.taxiolgy-home-hero__panel .taxiolgy-app-button {
	padding: 12px var(--wp--preset--spacing--30);
}

.taxiolgy-app-band {
	background: var(--wp--preset--color--stafford-green);
	color: var(--wp--preset--color--white);
	padding-block: var(--wp--preset--spacing--50);
}

.taxiolgy-app-band h2,
.taxiolgy-app-band p {
	color: inherit;
}

/* Component scope cannot overlap the earlier site-identity link rule. */
/* stylelint-disable-next-line no-descending-specificity */
.taxiolgy-app-band a {
	color: inherit;
}

.taxiolgy-reassurance {
	background: var(--wp--preset--color--warm-cream);
	border-bottom: 1px solid var(--wp--preset--color--divider);
	border-top: 1px solid var(--wp--preset--color--divider);
	padding-block: var(--wp--preset--spacing--40);
}

.taxiolgy-reassurance__list {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(3, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}

.taxiolgy-reassurance__list li {
	align-items: center;
	display: flex;
	font-weight: 600;
	justify-content: center;
	min-height: 56px;
	padding-inline: var(--wp--preset--spacing--40);
	text-align: center;
}

.taxiolgy-reassurance__list li + li {
	border-left: 1px solid var(--wp--preset--color--divider);
}

.taxiolgy-editorial-section {
	padding-block: var(--wp--preset--spacing--70);
}

.taxiolgy-page-content:not(:has(.wp-block-post-content > *)) {
	display: none;
}

.taxiolgy-editorial-row {
	align-items: center;
	display: grid;
	gap: var(--wp--preset--spacing--70);
	grid-template-columns: 7fr 5fr;
}

.taxiolgy-editorial-row--reverse {
	grid-template-columns: 5fr 7fr;
}

.taxiolgy-editorial-row figure {
	margin: 0;
}

.taxiolgy-editorial-row img {
	aspect-ratio: 3 / 2;
	border-radius: var(--taxiolgy-radius-structural);
	object-fit: cover;
	width: 100%;
}

.taxiolgy-page-shell {
	padding-block: var(--wp--preset--spacing--80);
}

.taxiolgy-page-title {
	margin-bottom: var(--wp--preset--spacing--60);
}

.taxiolgy-page-shell .wp-block-post-content {
	width: 100%;
}

.taxiolgy-page-shell--legal .wp-block-post-content {
	font-size: 1.0625rem;
	line-height: 1.7;
	max-width: var(--wp--style--global--content-size);
}

.taxiolgy-page-shell--legal :where(h2, h3) {
	scroll-margin-top: var(--wp--preset--spacing--80);
}

/* Legal-body links cannot occur inside the site-identity component. */
/* stylelint-disable-next-line no-descending-specificity */
.taxiolgy-page-shell--legal a {
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.taxiolgy-contact-intro {
	background: var(--wp--preset--color--warm-cream);
	border-radius: var(--taxiolgy-radius-hero);
	padding: var(--wp--preset--spacing--60);
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--divider);
	border-radius: var(--taxiolgy-radius-control);
	box-sizing: border-box;
	color: var(--wp--preset--color--ink);
	font: inherit;
	min-height: 52px;
	padding: var(--wp--preset--spacing--30);
	width: 100%;
}

textarea {
	min-height: 160px;
	resize: vertical;
}

:where(input, select, textarea):focus {
	border-color: var(--wp--preset--color--stafford-green);
}

.taxiolgy-site-footer {
	background: var(--wp--preset--color--stafford-green);
	color: var(--wp--preset--color--white);
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
}

.taxiolgy-site-footer :where(h2, h3, p, a, .wp-block-site-title) {
	color: inherit;
}

.taxiolgy-site-footer .taxiolgy-site-identity__logo img {
	filter: grayscale(1) invert(1);
	opacity: 0.9;
}

.taxiolgy-site-footer .taxiolgy-site-identity .wp-block-site-title,
.taxiolgy-site-footer .taxiolgy-site-identity .wp-block-site-title a {
	color: var(--wp--preset--color--white);
}

.taxiolgy-site-footer .wp-block-taxiolgy-app-download--compact .taxiolgy-app-button {
	height: 64px;
	min-width: 184px;
	width: 184px;
}

.taxiolgy-site-footer .taxiolgy-app-button--secondary {
	border-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--white);
}

.taxiolgy-site-footer .taxiolgy-app-button--secondary:hover {
	background: var(--wp--preset--color--stafford-green-hover);
	border-color: var(--wp--preset--color--stafford-green-hover);
}

.taxiolgy-site-footer__grid {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
}

.taxiolgy-site-footer .wp-block-navigation {
	align-items: flex-start;
	gap: var(--wp--preset--spacing--20);
}

/* Header and footer navigation are disjoint template-part scopes. */
/* stylelint-disable-next-line no-descending-specificity */
.taxiolgy-site-footer .wp-block-navigation-item__content {
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.taxiolgy-site-footer .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--brand-yellow);
	text-decoration: underline;
}

.taxiolgy-site-footer__legal {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--white), transparent 70%);
	margin-top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--40);
}

.taxiolgy-site-footer__legal p {
	font-size: var(--wp--preset--font-size--small);
	margin: 0;
}

@media (max-width: 1100px) {

	.taxiolgy-site-header__inner {
		gap: var(--wp--preset--spacing--30);
		grid-template-columns: auto 1fr auto;
	}

	.taxiolgy-site-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 781px) {

	body.admin-bar .taxiolgy-site-header {
		top: 46px;
	}

	.taxiolgy-site-header__inner {
		grid-template-columns: minmax(0, 1fr) auto auto;
		min-height: 48px;
	}

	.taxiolgy-site-identity__logo {
		width: 48px;
	}

	.taxiolgy-site-identity .wp-block-site-title {
		font-size: 1.5rem;
	}

	.taxiolgy-site-header .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--wp--preset--color--paper);
		box-sizing: border-box;
		color: var(--wp--preset--color--ink);
		height: calc(100dvh - 84px);
		padding: var(--wp--preset--spacing--50);
		top: 84px;
	}

	.taxiolgy-site-header .is-menu-open .wp-block-navigation__responsive-container-content,
	.taxiolgy-site-header .is-menu-open .wp-block-navigation__container {
		align-items: flex-start;
		width: 100%;
	}

	.taxiolgy-site-header .is-menu-open .wp-block-navigation-item,
	.taxiolgy-site-header .is-menu-open .wp-block-navigation-item__content {
		text-align: left;
		width: 100%;
	}

	body.admin-bar .taxiolgy-site-header .wp-block-navigation__responsive-container.is-menu-open {
		height: calc(100dvh - 130px);
		top: 130px;
	}

	.taxiolgy-home-hero {
		background: var(--wp--preset--color--warm-cream);
		min-height: 0;
	}

	.taxiolgy-home-hero__media {
		position: relative;
	}

	.taxiolgy-home-hero__media,
	.taxiolgy-home-hero__media figure,
	.taxiolgy-home-hero__media img {
		aspect-ratio: 16 / 10;
		min-height: 0;
	}

	.taxiolgy-home-hero__inner {
		width: 100%;
		min-height: 0;
	}

	.taxiolgy-home-hero__panel {
		border-radius: 0;
		box-shadow: none;
		margin: 0;
		max-width: none;
		padding-block: var(--wp--preset--spacing--60);
		width: 100%;
	}

	.taxiolgy-editorial-section,
	.taxiolgy-page-shell {
		padding-block: var(--wp--preset--spacing--70);
	}

	.taxiolgy-editorial-row,
	.taxiolgy-editorial-row--reverse {
		gap: var(--wp--preset--spacing--50);
		grid-template-columns: 1fr;
	}

	.taxiolgy-editorial-row__copy {
		grid-row: 1;
	}

	.taxiolgy-editorial-row__media {
		grid-row: 2;
	}

	.taxiolgy-site-footer__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 479px) {

	.taxiolgy-site-header__inner {
		gap: var(--wp--preset--spacing--20);
	}

	.taxiolgy-site-header .taxiolgy-site-identity {
		gap: var(--wp--preset--spacing--20);
	}

	.taxiolgy-site-identity .wp-block-site-title {
		font-size: 1.125rem;
	}

	.taxiolgy-site-header .wp-block-taxiolgy-app-download--compact .taxiolgy-app-button {
		font-size: var(--wp--preset--font-size--small);
		min-height: 48px;
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
		white-space: nowrap;
	}

	.taxiolgy-reassurance__list {
		grid-template-columns: 1fr;
	}

	.taxiolgy-reassurance__list li + li {
		border-left: 0;
		border-top: 1px solid var(--wp--preset--color--divider);
	}
}

@media (max-width: 359px) {

	.taxiolgy-site-identity .wp-block-site-title {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}

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

@media print {

	.taxiolgy-site-header,
	.taxiolgy-site-footer,
	.wp-block-taxiolgy-app-download {
		display: none !important;
	}

	.taxiolgy-page-shell--legal {
		padding: 0;
	}
}
