/* Page frame: nav, mobile menu, mobile bar, footer, page header, content column. */

/* ---------- Nav ---------- */

.site-nav {
	position: sticky;
	top: 0;
	z-index: 10;
	display: grid;
	grid-template-columns: 220px 1fr auto;
	align-items: center;
	height: var(--nav-h);
	padding-inline: var(--pad-x);
	background: var(--paper);
	border-bottom: 1px solid var(--rule);
}

.admin-bar .site-nav {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.site-nav__wordmark {
	font-family: var(--font-serif);
	font-size: 25px;
	letter-spacing: 0.01em;
	line-height: 1;
	white-space: nowrap;
}

.site-nav__links ul {
	display: flex;
	gap: 30px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.site-nav__links a {
	display: inline-block;
	padding-block: 6px;
	border-bottom: 1px solid transparent;
}

.site-nav__links a[aria-current="page"] {
	border-bottom-color: var(--ink);
}

.site-nav__contact-fallback {
	display: none;
}

.site-nav__contact {
	padding: 10px 18px;
	font-size: 11px;
	letter-spacing: 0.13em;
}

.site-nav__toggle {
	display: none;
	align-items: center;
	justify-content: flex-end;
	width: 48px;
	height: var(--nav-h);
	margin-right: -12px;
	padding: 0 12px;
	background: none;
	border: 0;
}

.site-nav__bars {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.site-nav__bars span {
	display: block;
	width: 22px;
	height: 1px;
	background: var(--ink);
}

@media (max-width: 899.98px) {
	.site-nav {
		grid-template-columns: 1fr auto;
	}

	.site-nav__wordmark {
		font-size: 22px;
	}

	/* Scoped so .button's display (components.css loads later) can't win. */
	.site-nav .site-nav__links,
	.site-nav .site-nav__contact {
		display: none;
	}

	.js .site-nav__toggle {
		display: flex;
	}

	/* Without JS there's no menu panel: wrap the links in a row under the wordmark. */
	.no-js .site-nav {
		height: auto;
		padding-top: 16px;
		row-gap: 6px;
	}

	.no-js .site-nav .site-nav__links {
		display: block;
		grid-column: 1 / -1;
	}

	.no-js .site-nav__links ul {
		flex-wrap: wrap;
		gap: 0 20px;
	}

	.no-js .site-nav__links a {
		padding-block: 14px;
	}

	.no-js .site-nav__contact-fallback {
		display: list-item;
	}
}

/* ---------- Mobile menu panel ---------- */

.mobile-menu {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0 0 env(safe-area-inset-bottom, 0px);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--ink);
	color: var(--ink-inverse);
	border: 0;
}

.mobile-menu[open] {
	animation: mk-fade-in var(--dur) var(--ease);
}

.mobile-menu::backdrop {
	background: var(--ink);
}

.mobile-menu a {
	color: var(--ink-inverse);
}

.mobile-menu a:hover {
	color: var(--ink-text-2);
}

.mobile-menu__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--nav-h);
	padding-inline: var(--gutter);
	border-bottom: 1px solid var(--ink-rule);
}

.mobile-menu__wordmark {
	font-family: var(--font-serif);
	font-size: 22px;
	line-height: 1;
}

.mobile-menu__close {
	min-height: 44px;
	margin-right: -12px;
	padding: 0 12px;
	background: none;
	border: 0;
	color: var(--ink-text-2);
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.mobile-menu__close:hover {
	color: var(--ink-inverse);
}

.mobile-menu__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	min-height: var(--tap);
	padding: 22px var(--gutter);
	border-bottom: 1px solid var(--ink-rule);
}

.mobile-menu__label {
	font-family: var(--font-serif);
	font-size: 36px;
	line-height: 1;
}

.mobile-menu__item[aria-current="page"] .mobile-menu__label {
	font-style: italic;
}

.mobile-menu__note {
	font-family: var(--font-mono);
	font-size: 9.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ink-text-2);
	white-space: nowrap;
}

.mobile-menu__contact {
	padding: 26px var(--gutter) 30px;
}

.mobile-menu__eyebrow {
	margin: 0 0 10px;
	font-size: 10px;
	color: var(--ink-text-2);
}

.mobile-menu__email {
	font-size: 17px;
	padding-bottom: 3px;
	border-bottom: 1px solid var(--ink-underline);
}

.mobile-menu__links {
	margin-top: 22px;
	font-family: var(--font-mono);
	font-size: 9.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 2;
	color: var(--ink-text-2);
}

.mobile-menu__links a {
	color: var(--ink-text-2);
}

html.has-open-menu {
	overflow: hidden;
}

@keyframes mk-fade-in {
	from {
		opacity: 0;
	}
}

/* ---------- Mobile contact bar ---------- */

.mobile-bar {
	display: none;
}

@media (max-width: 899.98px) {
	.mobile-bar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 9;
		display: grid;
		grid-template-columns: 1fr 1fr;
		padding-bottom: env(safe-area-inset-bottom, 0px);
		background: var(--paper-2);
		border-top: 1px solid var(--rule);
	}

	.mobile-bar a {
		display: flex;
		align-items: center;
		justify-content: center;
		height: var(--bar-h);
		font-family: var(--font-mono);
		font-size: 10.5px;
		letter-spacing: 0.13em;
		text-transform: uppercase;
	}

	.mobile-bar__email {
		color: var(--text-2);
	}

	.mobile-bar .mobile-bar__inquire {
		background: var(--ink);
		color: var(--ink-inverse);
	}

	.mobile-bar a:focus-visible {
		outline-offset: -4px;
	}

	.mobile-bar__inquire:focus-visible {
		outline-color: var(--ink-inverse);
	}
}

/* ---------- Footer ---------- */

.site-footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	padding: 52px var(--pad-x) 60px;
	border-top: 1px solid var(--rule);
}

.site-footer__heading {
	margin-bottom: 10px;
	font-family: var(--font-serif);
	font-size: var(--fs-footer-heading);
	line-height: 1.1;
	text-wrap: balance;
}

.site-footer__email {
	font-size: 16px;
	padding-bottom: 2px;
	border-bottom: 1px solid var(--accent);
}

.site-footer__meta {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 2;
	color: var(--text-5);
	text-align: right;
}

.site-footer__meta a {
	color: var(--text-5);
}

.site-footer__meta a:hover {
	color: var(--ink);
}

@media (max-width: 899.98px) {
	.site-footer {
		flex-direction: column;
		align-items: flex-start;
		padding-block: 40px 44px;
	}

	.site-footer__meta {
		text-align: left;
	}
}

/* ---------- Page header ---------- */

.page-header {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 80px;
	align-items: end;
	padding: 60px var(--pad-x) 40px;
	border-bottom: 1px solid var(--rule);
}

.page-header--solo {
	grid-template-columns: minmax(0, 900px);
}

.page-title {
	font-size: var(--fs-page-title);
	line-height: 1.04;
	letter-spacing: -0.015em;
}

.page-header__intro {
	font-size: var(--fs-body);
	line-height: 1.72;
	color: var(--text-2);
}

@media (max-width: 899.98px) {
	.page-header {
		grid-template-columns: 1fr;
		gap: 16px;
		padding-block: 30px 26px;
	}

	.page-header .eyebrow {
		margin-bottom: 14px;
	}
}

/* ---------- Content column ---------- */

.entry-content {
	max-width: calc(var(--measure) + 2 * var(--gutter));
	margin-inline: auto;
	padding: 56px var(--gutter) 88px;
	font-size: var(--fs-article);
	line-height: var(--lh-article);
	color: var(--text-1);
}

.page-actions {
	padding: 48px var(--pad-x) 72px;
}

@media (max-width: 899.98px) {
	.entry-content {
		padding-block: 32px 56px;
	}

	.page-actions {
		padding-block: 28px 44px;
	}
}
