/*
 * Tyler Deaton theme, v2.
 * One family (Archivo), width axis for display type. Navy fields bookend a paper body.
 * Display width dial: --wide. Set to 100% for a standard-width headline.
 */

/* Tokens */

:root {
	--navy: #0c1c3e;
	--crimson: #b91c4e;
	--crimson-deep: #98163f;

	--bg: #f3f4f7;
	--surface: #ffffff;
	--text: #0c1c3e;
	--text-muted: #545e74;
	--line: rgba(12, 28, 62, 0.14);
	--line-strong: rgba(12, 28, 62, 0.3);
	--accent: #b91c4e;
	--focus: #b91c4e;

	--field: #0c1c3e;
	--on-field: #eef1f7;
	--on-field-muted: #a3aec6;
	--on-field-line: rgba(238, 241, 247, 0.16);
	--on-field-accent: #ff7aa0;

	--font: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
	--wide: 116%;

	--max: 1320px;
	--pad: 40px;
	--gap: 24px;
	--header-h: 72px;
	--r-sm: 3px;
	--r-md: 6px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);

	color-scheme: light;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--bg: #0b1326;
		--surface: #101a32;
		--text: #e6eaf2;
		--text-muted: #9ba6bd;
		--line: rgba(230, 234, 242, 0.12);
		--line-strong: rgba(230, 234, 242, 0.28);
		--accent: #f2648f;
		--focus: #f2648f;
		--field: #060c1b;
		color-scheme: dark;
	}
}

:root[data-theme="dark"] {
	--bg: #0b1326;
	--surface: #101a32;
	--text: #e6eaf2;
	--text-muted: #9ba6bd;
	--line: rgba(230, 234, 242, 0.12);
	--line-strong: rgba(230, 234, 242, 0.28);
	--accent: #f2648f;
	--focus: #f2648f;
	--field: #060c1b;
	color-scheme: dark;
}

/* Base */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 16px);
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font);
	font-size: 18px;
	line-height: 1.6;
	font-kerning: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, p, figure, blockquote, dl, dd, ul, ol {
	margin: 0;
}

ul[role="list"],
ol[role="list"] {
	list-style: none;
	padding: 0;
}

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

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

::selection {
	background: var(--crimson);
	color: #fff;
}

:focus-visible {
	outline: 2px solid var(--focus);
	outline-offset: 3px;
	border-radius: 2px;
}

.hero,
.contact,
.site-header,
.site-footer,
.mobile-menu,
.case__head,
.page-head {
	--focus: var(--on-field-accent);
}

h1,
h2 {
	font-stretch: var(--wide);
	font-weight: 760;
	letter-spacing: -0.018em;
	text-wrap: balance;
}

h2 {
	font-size: 52px;
	line-height: 1.04;
}

.container {
	width: 100%;
	max-width: var(--max);
	margin-inline: auto;
	padding-inline: var(--pad);
}

/* Shared components */

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 24px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--crimson);
	color: #fff;
	font-size: 16px;
	font-weight: 620;
	font-stretch: 106%;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s var(--ease);
}

.button:hover {
	background: var(--crimson-deep);
}

.button[disabled] {
	opacity: 0.6;
	cursor: progress;
}

.text-link {
	color: var(--text);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
	transition: color 0.2s var(--ease);
}

.text-link:hover {
	color: var(--accent);
}

.text-link--quiet {
	font-weight: 500;
	text-decoration-color: var(--line-strong);
}

.text-link--on-field {
	color: var(--on-field);
	text-decoration-color: var(--on-field-accent);
}

.text-link--on-field:hover {
	color: var(--on-field-accent);
}

.wordmark {
	font-size: 19px;
	font-weight: 760;
	font-stretch: 122%;
	letter-spacing: -0.01em;
	line-height: 1;
	white-space: nowrap;
}

/* Header */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--field);
	color: var(--on-field);
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s var(--ease);
}

.site-header.scrolled {
	border-bottom-color: var(--on-field-line);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 40px;
	height: var(--header-h);
}

.site-nav {
	margin-left: auto;
}

.site-nav ul {
	display: flex;
	gap: 36px;
	margin: 0;
}

.site-nav a {
	color: var(--on-field-muted);
	font-size: 15.5px;
	font-weight: 500;
	transition: color 0.2s var(--ease);
}

.site-nav a:hover,
.site-nav .site-nav__contact {
	color: var(--on-field);
}

.site-nav .site-nav__contact {
	text-decoration: underline;
	text-decoration-color: var(--on-field-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 7px;
}

.site-header__tools {
	display: flex;
	align-items: center;
	gap: 8px;
}

.theme-toggle {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin-right: -10px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--on-field-muted);
	cursor: pointer;
	transition: color 0.2s var(--ease);
}

.theme-toggle:hover {
	color: var(--on-field);
}

.theme-toggle__sun {
	display: none;
}

:root[data-theme="dark"] .theme-toggle__sun {
	display: block;
}

:root[data-theme="dark"] .theme-toggle__moon {
	display: none;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .theme-toggle__sun {
		display: block;
	}

	:root:not([data-theme="light"]) .theme-toggle__moon {
		display: none;
	}
}

.menu-button {
	display: none;
	height: 38px;
	padding: 0 14px;
	border: 1px solid var(--on-field-line);
	border-radius: var(--r-sm);
	background: none;
	color: var(--on-field);
	font-size: 15px;
	font-weight: 550;
	cursor: pointer;
}

.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 100;
	overflow-y: auto;
	background: var(--field);
	color: var(--on-field);
}

.mobile-menu[hidden] {
	display: none;
}

.mobile-menu__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--header-h);
}

.mobile-menu__top .menu-button {
	display: inline-block;
}

.mobile-menu__links {
	margin-top: 32px;
	border-top: 1px solid var(--on-field-line);
}

.mobile-menu__links a {
	display: block;
	padding: 14px 0;
	border-bottom: 1px solid var(--on-field-line);
	font-size: 40px;
	font-weight: 740;
	font-stretch: var(--wide);
	line-height: 1.1;
	letter-spacing: -0.015em;
}

.mobile-menu__email {
	margin-top: 36px;
	padding-bottom: 48px;
	color: var(--on-field-muted);
}

/* Hero */

.hero {
	background: var(--field);
	color: var(--on-field);
	padding: 88px 0 72px;
}

.hero__title {
	max-width: 1180px;
	font-size: 88px;
	line-height: 0.98;
	letter-spacing: -0.022em;
}

.hero__foot {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	row-gap: 40px;
	margin-top: 64px;
	padding-top: 32px;
	border-top: 1px solid var(--on-field-line);
}

.hero__intro {
	grid-column: 1 / span 6;
	max-width: 38em;
	color: var(--on-field);
	font-size: 20px;
	line-height: 1.55;
}

.hero__actions {
	grid-column: 8 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: start;
	gap: 18px 32px;
}

.hero__note {
	flex-basis: 100%;
	color: var(--on-field-muted);
	font-size: 15px;
	line-height: 1.5;
}

.hero__note time {
	color: var(--on-field);
	font-variant-numeric: tabular-nums;
}

@keyframes td-rise {
	from {
		opacity: 0;
		transform: translateY(18px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.hero__title,
.hero__intro,
.hero__actions {
	animation: td-rise 0.9s var(--ease) both;
}

.hero__intro {
	animation-delay: 0.14s;
}

.hero__actions {
	animation-delay: 0.24s;
}

/* Work */

.work {
	padding: 96px 0 128px;
}

.work__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 48px;
	margin-bottom: 56px;
}

.filters {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 26px;
}

.filter {
	padding: 6px 0;
	border: 0;
	border-bottom: 2px solid transparent;
	background: none;
	color: var(--text-muted);
	font-size: 15.5px;
	font-weight: 520;
	cursor: pointer;
	transition: color 0.2s var(--ease), border-color 0.2s var(--ease);
}

.filter:hover {
	color: var(--text);
}

.filter.is-active {
	color: var(--text);
	border-bottom-color: var(--accent);
}

.filter__count {
	margin-left: 4px;
	font-size: 11.5px;
	font-variant-numeric: tabular-nums;
	vertical-align: 0.55em;
	color: var(--text-muted);
}

.work__grid {
	--stagger: 168px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 56px;
	row-gap: 96px;
}

.work__grid:not(.is-filtered):has(> .project:nth-child(2n + 3):last-child),
.work__grid.ends-offset {
	padding-bottom: var(--stagger);
}

.work__grid:not(.is-filtered) .project:nth-child(2n + 3),
.work__grid.is-filtered .project.is-offset {
	translate: 0 var(--stagger);
}

.work__empty {
	color: var(--text-muted);
}

.project {
	display: flex;
	flex-direction: column;
	gap: 22px;
	min-width: 0;
}

.project[hidden] {
	display: none;
}

.project__media {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--surface);
}

.project__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	transition: transform 0.7s var(--ease);
}

.project:hover .project__media img {
	transform: scale(1.025);
}

.project__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	padding: 24px;
	color: var(--text-muted);
	font-size: 22px;
	font-weight: 650;
	text-align: center;
}

.project__title {
	font-size: 26px;
	font-weight: 680;
	font-stretch: 108%;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.project__title a {
	transition: color 0.2s var(--ease);
}

.project__title a:hover,
.project:hover .project__title a {
	color: var(--accent);
}

.project__meta {
	margin-top: 6px;
	color: var(--text-muted);
	font-size: 15px;
}

.project__flag {
	margin-left: 12px;
	color: var(--accent);
	font-weight: 600;
}

.project__desc {
	max-width: 36em;
	font-size: 17px;
	line-height: 1.6;
}

.project__tech {
	color: var(--text-muted);
	font-size: 14.5px;
	line-height: 1.5;
}

.project__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.project__body .project__meta {
	margin-top: -6px;
}

.project--featured {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	align-items: end;
	gap: 48px;
}

.project--featured .project__title {
	font-size: 40px;
	font-weight: 740;
	font-stretch: var(--wide);
	line-height: 1.04;
	letter-spacing: -0.018em;
}

.project--featured .project__desc {
	font-size: 18px;
}

.project__links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	margin-top: 8px;
	font-size: 16px;
}

/* Services */

.services {
	padding: 128px 0;
	background: var(--surface);
	border-block: 1px solid var(--line);
}

.services__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-items: start;
}

.services__head {
	grid-column: 1 / span 4;
	position: sticky;
	top: calc(var(--header-h) + 40px);
}

.services__head > p {
	margin-top: 20px;
	color: var(--text-muted);
}

.services__agency {
	margin-top: 48px;
	padding-top: 20px;
	border-top: 2px solid var(--accent);
}

.services__agency h3 {
	font-size: 18px;
	font-weight: 680;
	line-height: 1.3;
}

.services__agency p {
	margin-top: 8px;
	color: var(--text-muted);
	font-size: 16px;
	line-height: 1.6;
}

.services__list {
	grid-column: 6 / -1;
	border-bottom: 1px solid var(--line);
}

.service {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	column-gap: 32px;
	row-gap: 8px;
	padding: 30px 0 32px;
	border-top: 1px solid var(--line);
}

.service__title {
	font-size: 22px;
	font-weight: 680;
	font-stretch: 106%;
	line-height: 1.25;
	letter-spacing: -0.008em;
}

.service__desc {
	color: var(--text-muted);
	font-size: 17px;
	line-height: 1.6;
}

/* About */

.about {
	padding: 136px 0 72px;
}

.about__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	align-items: start;
}

.about__photo {
	grid-column: 1 / span 5;
}

.about__photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 30%;
	border-radius: var(--r-md);
}

.about__body {
	grid-column: 7 / -1;
	padding-top: 8px;
}

.about__body > p {
	max-width: 34em;
	margin-top: 20px;
	color: var(--text-muted);
}

.about__body > .about__lede {
	margin-top: 32px;
	color: var(--text);
	font-size: 24px;
	font-weight: 480;
	line-height: 1.42;
	letter-spacing: -0.006em;
}

.about__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 32px;
	max-width: 34em;
	margin-top: 48px;
}

.about__facts div {
	padding-top: 14px;
	border-top: 1px solid var(--line);
}

.about__facts dt {
	color: var(--text-muted);
	font-size: 14px;
}

.about__facts dd {
	margin-top: 4px;
	font-size: 17px;
	font-weight: 560;
	line-height: 1.4;
}

/* Testimonials */

.testimonials {
	padding: 72px 0 144px;
}

.quote {
	margin: 0;
}

.quote blockquote p {
	text-wrap: pretty;
}

.quote blockquote p::before {
	content: "\201C";
}

.quote blockquote p::after {
	content: "\201D";
}

.quote--lead {
	max-width: 1080px;
	margin-top: 56px;
}

.quote--lead blockquote p {
	font-size: 34px;
	font-weight: 440;
	line-height: 1.32;
	letter-spacing: -0.012em;
	text-indent: -0.42em;
}

.quote--lead .quote__who {
	margin-top: 32px;
}

.testimonials__rest {
	columns: 2;
	column-gap: 72px;
	margin-top: 96px;
}

.testimonials__rest .quote {
	break-inside: avoid;
	padding: 24px 0 56px;
	border-top: 1px solid var(--line);
}

.testimonials__rest blockquote p {
	font-size: 18px;
	line-height: 1.6;
}

.quote__who {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 20px;
}

.quote__photo {
	flex: none;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
}

.quote__name {
	display: block;
	font-size: 15.5px;
	font-weight: 640;
	line-height: 1.3;
}

.quote__role {
	display: block;
	color: var(--text-muted);
	font-size: 14px;
	line-height: 1.4;
}

/* Contact */

.contact {
	padding: 128px 0 120px;
	background: var(--field);
	color: var(--on-field);
}

.contact__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gap);
	row-gap: 64px;
	align-items: start;
}

.contact__intro {
	grid-column: 1 / span 5;
}

.contact__intro > p:not(.contact__email-wrap) {
	max-width: 30em;
	margin-top: 24px;
	color: var(--on-field-muted);
}

.contact__email-wrap {
	margin-top: 48px;
}

.contact__email-label {
	display: block;
	margin-bottom: 6px;
	color: var(--on-field-muted);
	font-size: 15px;
}

.contact__email {
	font-size: 26px;
	font-weight: 680;
	font-stretch: 110%;
	letter-spacing: -0.01em;
	overflow-wrap: anywhere;
	text-decoration: underline;
	text-decoration-color: var(--on-field-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 7px;
	transition: color 0.2s var(--ease);
}

.contact__email:hover {
	color: var(--on-field-accent);
}

.contact__form {
	grid-column: 7 / -1;
}

.form__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.field {
	margin-bottom: 22px;
}

.field label {
	display: block;
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 560;
}

.field input,
.field select,
.field textarea,
.contact .wpcf7 input:not([type="submit"]),
.contact .wpcf7 select,
.contact .wpcf7 textarea {
	display: block;
	width: 100%;
	padding: 13px 14px;
	border: 1px solid rgba(238, 241, 247, 0.24);
	border-radius: var(--r-sm);
	background: rgba(238, 241, 247, 0.05);
	color: var(--on-field);
	font-size: 17px;
	line-height: 1.4;
	transition: border-color 0.2s var(--ease), background-color 0.2s var(--ease);
}

.field input:hover,
.field select:hover,
.field textarea:hover {
	border-color: rgba(238, 241, 247, 0.4);
}

.field input:focus,
.field select:focus,
.field textarea:focus {
	border-color: var(--on-field-accent);
	background: rgba(238, 241, 247, 0.08);
	outline: none;
}

.field input:focus-visible,
.field select:focus-visible,
.field textarea:focus-visible {
	outline: 1px solid var(--on-field-accent);
	outline-offset: 0;
}

.field textarea {
	min-height: 168px;
	resize: vertical;
}

.field select {
	appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath stroke='%23a3aec6' stroke-width='1.6' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}

.field select option {
	color: #0c1c3e;
	background: #fff;
}

.field [aria-invalid="true"] {
	border-color: #ff9bb6;
}

.field__hint {
	display: block;
	margin-top: 8px;
	color: var(--on-field-muted);
	font-size: 14px;
	line-height: 1.45;
}

.form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.form__submit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	margin-top: 8px;
}

.form__status {
	font-size: 15.5px;
	line-height: 1.45;
}

.form__status--success {
	color: #9be5bb;
}

.form__status--error {
	color: #ffb3c7;
}

/* Footer */

.site-footer {
	background: var(--field);
	color: var(--on-field-muted);
	font-size: 15px;
}

.site-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 12px 40px;
	padding-block: 36px 44px;
	border-top: 1px solid var(--on-field-line);
}

.site-footer .wordmark {
	color: var(--on-field);
	font-size: 17px;
}

.site-footer__copy {
	margin-left: auto;
	font-variant-numeric: tabular-nums;
}

/* Single project */

.case__head {
	padding: 56px 0 200px;
	background: var(--field);
	color: var(--on-field);
}

.case:not(:has(.case__shot)) .case__head {
	padding-bottom: 72px;
}

.case__back {
	color: var(--on-field-muted);
	font-size: 15px;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--on-field-line);
	text-underline-offset: 5px;
	transition: color 0.2s var(--ease);
}

.case__back:hover {
	color: var(--on-field);
}

.case__title {
	max-width: 1100px;
	margin: 36px 0 44px;
	font-size: 76px;
	line-height: 1;
	letter-spacing: -0.022em;
}

.case__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 56px;
	padding-top: 24px;
	border-top: 1px solid var(--on-field-line);
}

.case__facts dt {
	color: var(--on-field-muted);
	font-size: 14px;
}

.case__facts dd {
	margin-top: 4px;
	font-size: 17px;
	font-weight: 560;
}

.case__facts a {
	text-decoration: underline;
	text-decoration-color: var(--on-field-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

.case__shot {
	margin-top: -136px;
}

.case__shot img {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	box-shadow: 0 40px 80px -40px rgba(6, 12, 27, 0.45);
}

.case__body {
	padding-block: 80px 96px;
}

.case__body > * {
	max-width: 44rem;
}

.case__lede {
	font-size: 25px;
	font-weight: 470;
	line-height: 1.42;
	letter-spacing: -0.008em;
}

.case__body .entry-content {
	margin-top: 40px;
}

.case__tech {
	margin-top: 56px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
}

.case__tech h2 {
	color: var(--text-muted);
	font-size: 15px;
	font-weight: 550;
	font-stretch: 100%;
	letter-spacing: 0;
}

.case__tech ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 28px;
	margin-top: 10px;
	font-size: 18px;
	font-weight: 560;
}

.case__pager {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	padding-bottom: 120px;
}

.case__pager-link {
	display: block;
	padding-top: 24px;
	border-top: 1px solid var(--line-strong);
}

.case__pager-link--next {
	grid-column: 2;
	text-align: right;
}

.case__pager-label {
	display: block;
	color: var(--text-muted);
	font-size: 14.5px;
}

.case__pager-title {
	display: block;
	margin-top: 6px;
	font-size: 30px;
	font-weight: 740;
	font-stretch: 112%;
	line-height: 1.1;
	letter-spacing: -0.015em;
	transition: color 0.2s var(--ease);
}

.case__pager-link:hover .case__pager-title {
	color: var(--accent);
}

/* Generic pages */

.page-head {
	padding: 96px 0 88px;
	background: var(--field);
	color: var(--on-field);
}

.page-head__title {
	max-width: 1000px;
	font-size: 64px;
	line-height: 1.02;
}

.page-head__lede {
	max-width: 34em;
	margin: 24px 0 36px;
	color: var(--on-field-muted);
	font-size: 20px;
}

.page-head--404 {
	padding-bottom: 140px;
}

.page-body {
	padding-block: 72px 120px;
}

.entry + .entry {
	margin-top: 48px;
	padding-top: 40px;
	border-top: 1px solid var(--line);
}

.entry__title {
	font-size: 32px;
	margin-bottom: 12px;
}

.entry-content {
	max-width: 44rem;
}

.entry-content > * + * {
	margin-top: 1.1em;
}

.entry-content h2 {
	margin-top: 1.8em;
	font-size: 32px;
	line-height: 1.12;
}

.entry-content h3 {
	margin-top: 1.6em;
	font-size: 22px;
	font-weight: 680;
	line-height: 1.25;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.2em;
}

.entry-content li + li {
	margin-top: 0.4em;
}

.entry-content a {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 4px;
}

.entry-content img {
	border-radius: var(--r-md);
}

.entry-content blockquote {
	padding-left: 20px;
	border-left: 2px solid var(--accent);
	font-size: 21px;
}

.entry-content figcaption {
	margin-top: 10px;
	color: var(--text-muted);
	font-size: 14.5px;
}

/* WordPress */

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed !important;
	top: 12px;
	left: 12px;
	z-index: 200;
	width: auto;
	height: auto;
	margin: 0;
	padding: 12px 18px;
	clip: auto;
	background: var(--surface);
	color: var(--text);
	font-weight: 600;
}

.alignleft {
	float: left;
	margin: 0 1.5em 1em 0;
}

.alignright {
	float: right;
	margin: 0 0 1em 1.5em;
}

.aligncenter {
	margin-inline: auto;
}

.wp-caption-text {
	color: var(--text-muted);
	font-size: 14.5px;
}

.nav-links {
	display: flex;
	gap: 16px;
	margin-top: 56px;
}

/* Responsive */

@media (max-width: 1180px) {
	:root {
		--pad: 32px;
	}

	h2 {
		font-size: 44px;
	}

	.hero__title {
		font-size: 72px;
	}

	.hero__intro {
		grid-column: 1 / span 7;
	}

	.hero__actions {
		grid-column: 9 / -1;
	}

	.services__head {
		grid-column: 1 / span 5;
	}

	.services__list {
		grid-column: 6 / -1;
	}

	.service {
		grid-template-columns: 1fr;
	}

	.case__title {
		font-size: 64px;
	}
}

@media (max-width: 900px) {
	:root {
		--pad: 24px;
		--header-h: 64px;
	}

	body {
		font-size: 17px;
	}

	h2 {
		font-size: 36px;
	}

	.site-nav {
		display: none;
	}

	.site-header__tools {
		margin-left: auto;
	}

	.menu-button {
		display: inline-block;
	}

	.hero {
		padding: 72px 0 72px;
	}

	.hero__title {
		font-size: 54px;
	}

	.hero__foot {
		margin-top: 56px;
	}

	.hero__intro,
	.hero__actions {
		grid-column: 1 / -1;
	}

	.work {
		padding: 80px 0 96px;
	}

	.work__head {
		margin-bottom: 40px;
	}

	.work__grid,
	.work__grid.ends-offset,
	.work__grid:not(.is-filtered):has(> .project:nth-child(2n + 3):last-child) {
		grid-template-columns: 1fr;
		row-gap: 64px;
		padding-bottom: 0;
	}

	.work__grid:not(.is-filtered) .project:nth-child(2n + 3),
	.work__grid.is-filtered .project.is-offset {
		translate: none;
	}

	.project--featured {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.project--featured .project__title {
		font-size: 32px;
	}

	.services {
		padding: 88px 0;
	}

	.services__head,
	.services__list {
		grid-column: 1 / -1;
	}

	.services__head {
		position: static;
		margin-bottom: 48px;
	}

	.about {
		padding: 88px 0 48px;
	}

	.about__photo {
		grid-column: 1 / span 8;
		margin-bottom: 40px;
	}

	.about__body {
		grid-column: 1 / -1;
	}

	.about__body > .about__lede {
		font-size: 21px;
	}

	.testimonials {
		padding: 56px 0 96px;
	}

	.quote--lead blockquote p {
		font-size: 26px;
	}

	.testimonials__rest {
		columns: 1;
		margin-top: 64px;
	}

	.contact {
		padding: 88px 0 80px;
	}

	.contact__intro,
	.contact__form {
		grid-column: 1 / -1;
	}

	.case__head {
		padding: 40px 0 120px;
	}

	.case__title {
		font-size: 48px;
	}

	.case__shot {
		margin-top: -80px;
	}

	.case__body {
		padding-block: 56px 72px;
	}

	.case__lede {
		font-size: 21px;
	}

	.case__pager-title {
		font-size: 22px;
	}

	.page-head__title {
		font-size: 44px;
	}
}

@media (max-width: 560px) {
	:root {
		--pad: 20px;
	}

	h2 {
		font-size: 30px;
	}

	.hero__title {
		font-size: 40px;
		line-height: 1.02;
	}

	.hero__intro {
		font-size: 18px;
	}

	.project__title {
		font-size: 23px;
	}

	.project--featured .project__title {
		font-size: 28px;
	}

	.about__photo {
		grid-column: 1 / -1;
	}

	.about__facts {
		grid-template-columns: 1fr;
	}

	.quote--lead blockquote p {
		font-size: 22px;
	}

	.form__row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.contact__email {
		font-size: 21px;
	}

	.mobile-menu__links a {
		font-size: 34px;
	}

	.case__title {
		font-size: 38px;
	}

	.case__facts {
		gap: 16px 32px;
	}

	.case__pager {
		grid-template-columns: 1fr;
	}

	.case__pager-link--next {
		grid-column: 1;
		text-align: left;
	}

	.site-footer__copy {
		margin-left: 0;
	}
}

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

	*,
	*::before,
	*::after {
		animation: none !important;
		transition-duration: 0.01ms !important;
	}

	.project:hover .project__media img {
		transform: none;
	}
}

@media print {
	.site-header,
	.mobile-menu,
	.contact__form,
	.filters {
		display: none;
	}

	.hero,
	.contact,
	.site-footer,
	.case__head,
	.page-head {
		background: none;
		color: #000;
	}
}
