.main-nav-list {
  display: flex;
  align-items: center;
  gap: clamp(22px, 3vw, 48px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.main-nav-list li { margin: 0; }
.brand .custom-logo,
.brand .brand-logo { width: 42px; height: 42px; object-fit: contain; }
.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.empty-state { grid-column: 1 / -1; font-size: 18px; }

.content-page {
  min-height: 75svh;
  padding: 142px var(--gutter) clamp(90px, 10vw, 150px);
}

.content-shell {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.content-shell > h1 {
  max-width: 1050px;
  margin: 0 0 60px;
  font-size: clamp(58px, 9vw, 136px);
  font-weight: 900;
  line-height: .86;
  text-transform: uppercase;
}

.entry-content { max-width: 820px; font-size: 18px; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }
.entry-content h2 { margin-top: 2em; font-size: clamp(32px, 4vw, 58px); line-height: 1; text-transform: uppercase; }
.entry-content h3 { margin-top: 1.8em; font-size: 28px; }
.entry-content .alignwide { width: min(1200px, calc(100vw - (2 * var(--gutter)))); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.post-summary { padding: 34px 0; border-top: 1px solid var(--line); }
.post-summary h2 { margin: 0; font-size: clamp(30px, 4vw, 58px); text-transform: uppercase; }
.post-summary p { max-width: 680px; }
.archive-description { max-width: 720px; margin: -34px 0 54px; font-size: 20px; }
.archive-results { margin-top: 52px; }
.search-form { max-width: 760px; margin: 46px 0 58px; }
.search-form > label { display: block; margin-bottom: 10px; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.search-form-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-bottom: 2px solid var(--ink); }
.search-form input { min-width: 0; padding: 14px 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 20px; }
.search-form button { padding: 14px 18px; border: 0; background: var(--ink); color: var(--white); font-weight: 800; text-transform: uppercase; cursor: pointer; }
.error-page .content-shell > p:not(.page-kicker) { max-width: 680px; font-size: 20px; }
.error-actions { display: flex; flex-wrap: wrap; gap: 22px 36px; margin-top: 42px; }

/* Reusable WordPress pages */
.styled-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, .5fr);
  gap: 48px;
  align-items: end;
  padding-bottom: 52px;
  border-bottom: 1px solid var(--line);
}

.styled-page-header .page-kicker { grid-column: 1 / -1; margin-bottom: 0; }
.content-shell .styled-page-header h1 {
  max-width: 880px;
  margin: 0;
  font-size: 108px;
  font-weight: 900;
  line-height: .86;
  text-transform: uppercase;
}
.styled-page-lead { margin: 0; font-size: 23px; font-weight: 600; line-height: 1.3; }
.styled-page-image { margin: 56px 0 0; }
.styled-page-image img { width: 100%; max-height: 680px; object-fit: cover; }
.styled-page-content { margin-top: 68px; margin-left: auto; margin-right: 8%; }

/* Homepage journal */
.home-journal { background: var(--paper-deep); border-top: 1px solid var(--line); }
.home-journal-list { border-top: 1px solid var(--line); }
.home-journal-item { border-bottom: 1px solid var(--line); }
.home-journal-item a {
  min-height: 150px;
  display: grid;
  grid-template-columns: minmax(150px, .3fr) minmax(0, 1.7fr) 32px;
  gap: 28px;
  align-items: center;
  padding: 30px 0;
}
.home-journal-item span { font-size: 11px; font-weight: 800; text-transform: uppercase; }
.home-journal-item h3 { max-width: 900px; margin: 0; font-size: 38px; line-height: 1.05; text-transform: uppercase; }
.home-journal-item i { font-size: 28px; font-style: normal; transition: transform 180ms ease; }
.home-journal-item a:hover i { transform: translate(5px, -5px); }
.approach-cta { display: flex; justify-content: flex-end; padding-top: 42px; }

/* Testimonials */
.home-testimonials { background: var(--ink); color: var(--white); }
.testimonial-heading { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 50px; align-items: end; margin-bottom: 68px; }
.testimonial-heading h2 { max-width: 980px; margin: 0; font-size: 76px; font-weight: 900; line-height: .92; text-transform: uppercase; }
.testimonial-heading h2 em { color: var(--coral); font-family: Georgia, serif; font-weight: 400; text-transform: none; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.25); }
.testimonial-item { min-width: 0; margin: 0; padding: 42px 34px 12px 0; }
.testimonial-item + .testimonial-item { padding-left: 34px; border-left: 1px solid rgba(255,255,255,.25); }
.testimonial-item blockquote { margin: 0; font-family: Georgia, serif; font-size: 25px; font-style: italic; line-height: 1.3; }
.testimonial-item blockquote p { margin-top: 0; }
.testimonial-item figcaption { display: flex; gap: 14px; align-items: center; margin-top: 40px; }
.testimonial-item figcaption img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.testimonial-item figcaption span { display: flex; min-width: 0; flex-direction: column; }
.testimonial-item figcaption strong { font-size: 12px; text-transform: uppercase; }
.testimonial-item figcaption small { color: #bdb8b0; font-size: 10px; text-transform: uppercase; }

/* Services */
.services-page { min-height: 75svh; padding-top: 118px; }
.services-hero { padding: 64px var(--gutter) 76px; background: var(--paper-deep); border-bottom: 1px solid var(--line); }
.services-hero-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .5fr); gap: 54px; align-items: end; }
.services-hero h1 { margin: 0; font-size: 128px; font-weight: 900; line-height: .8; text-transform: uppercase; }
.services-hero-grid p { max-width: 440px; margin: 0; font-size: 22px; font-weight: 600; line-height: 1.3; }
.services-intro { max-width: 880px; margin: 0 auto; padding: 86px var(--gutter); font-size: 25px; font-weight: 600; line-height: 1.4; }
.services-list { padding: 0 var(--gutter) 100px; }
.service-row { border-top: 1px solid var(--line); }
.service-row:last-child { border-bottom: 1px solid var(--line); }
.service-row a { display: grid; grid-template-columns: 70px minmax(0, 1fr) 40px; gap: 28px; align-items: start; padding: 46px 0 50px; }
.service-row > a > span { padding-top: 10px; font-size: 11px; font-weight: 800; }
.service-row h2 { margin: 0; font-size: 54px; line-height: .95; text-transform: uppercase; }
.service-row p { max-width: 720px; margin: 18px 0 0; font-size: 17px; }
.service-row i { padding-top: 10px; font-size: 30px; font-style: normal; transition: transform 180ms ease; }
.service-row a:hover i { transform: translate(5px, -5px); }
.services-cta { padding: 88px var(--gutter); background: var(--coral); }
.services-cta > p { margin: 0 0 16px; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.services-cta h2 { max-width: 1050px; margin: 0 0 38px; font-size: 64px; line-height: .94; text-transform: uppercase; }
.service-page-cta { display: flex; justify-content: space-between; gap: 40px; align-items: flex-end; margin-top: 90px; padding: 52px; background: var(--coral); }
.service-page-cta > a { align-self: flex-start; border-bottom: 1px solid currentColor; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.service-page-cta > div { max-width: 650px; }
.service-page-cta span { font-size: 11px; font-weight: 800; text-transform: uppercase; }
.service-page-cta h2 { margin: 12px 0 28px; font-size: 52px; line-height: .95; text-transform: uppercase; }
.service-page-cta .text-link { text-decoration: none; }
.service-page-cta .text-link i { font-style: normal; }

/* Insertable TopFloor editor patterns */
.styled-page-content .topfloor-pattern,
.article-content .topfloor-pattern {
  width: min(1100px, calc(100vw - (2 * var(--gutter))));
  max-width: none;
  margin: 72px 0 72px 50%;
  padding: 54px;
  transform: translateX(-50%);
}
.topfloor-pattern .pattern-kicker { margin: 0 0 24px; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.topfloor-pattern-intro { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.topfloor-pattern-intro h2 { margin: 0; font-size: 54px; }
.topfloor-pattern-intro .wp-block-columns { gap: 54px; }
.topfloor-pattern-quote { background: var(--lime); }
.topfloor-pattern-quote blockquote { margin: 0; border: 0; }
.topfloor-pattern-quote blockquote p { margin: 0; font-family: Georgia, serif; font-size: 46px; font-style: italic; line-height: 1.08; }
.topfloor-pattern-cta { background: var(--ink); color: var(--white); }
.topfloor-pattern-cta h2 { max-width: 850px; margin: 0 0 34px; font-size: 58px; color: var(--white); }
.topfloor-pattern-cta .wp-block-button__link { display: inline-flex; padding: 9px 0 5px; border: 0; border-bottom: 2px solid currentColor; border-radius: 0; background: transparent; color: var(--lime); font-size: 12px; font-weight: 800; text-transform: uppercase; }

/* Blog archive */
.blog-page { min-height: 75svh; padding-top: 118px; }
.blog-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, .5fr);
  gap: 50px;
  align-items: end;
  padding: 64px var(--gutter) 70px;
  border-bottom: 1px solid var(--line);
}
.blog-hero h1 { margin: 0; font-size: 132px; font-weight: 900; line-height: .78; text-transform: uppercase; }
.blog-hero-intro { max-width: 440px; margin: 0; font-size: 22px; font-weight: 600; line-height: 1.32; }
.blog-list { padding: 0 var(--gutter) 90px; }
.blog-card { border-bottom: 1px solid var(--line); }
.blog-card-link {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) 44px;
  gap: 30px;
  align-items: start;
  padding: 48px 0 54px;
}
.blog-card-index { font-size: 12px; font-weight: 800; }
.blog-card-copy { max-width: 1050px; }
.blog-card-meta { display: block; margin-bottom: 16px; color: var(--taupe); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.blog-card h2 { margin: 0; font-size: 48px; line-height: 1; text-transform: uppercase; }
.blog-card p { max-width: 720px; margin: 18px 0 0; font-size: 17px; }
.blog-card-arrow { padding-top: 12px; font-size: 32px; transition: transform 180ms ease; }
.blog-card-link:hover .blog-card-arrow { transform: translate(5px, -5px); }
.navigation.pagination { margin-top: 44px; }
.nav-links { display: flex; gap: 8px; align-items: center; }
.nav-links .page-numbers { display: grid; min-width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); font-size: 13px; font-weight: 800; }
.nav-links .current { background: var(--ink); color: var(--paper); }
.blog-cta {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: end;
  padding: 80px var(--gutter);
  background: var(--coral);
}
.blog-cta p { margin: 0 0 10px; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.blog-cta h2 { max-width: 900px; margin: 0; font-size: 52px; line-height: .95; text-transform: uppercase; }

/* Single article */
.journal-article { padding-top: 118px; }
.article-hero { padding: 64px var(--gutter) 72px; background: var(--paper-deep); border-bottom: 1px solid var(--line); }
.article-hero h1 { max-width: 1240px; margin: 22px 0 38px; font-size: 92px; font-weight: 900; line-height: .9; text-transform: uppercase; }
.article-meta { display: flex; flex-wrap: wrap; gap: 10px 30px; color: var(--taupe); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.article-meta a { border-bottom: 1px solid currentColor; }
.article-featured { max-width: 1200px; margin: 56px 0 0; }
.article-featured img { width: 100%; max-height: 720px; object-fit: cover; }
.article-layout {
  display: grid;
  grid-template-columns: minmax(150px, .35fr) minmax(0, 1.65fr);
  gap: 80px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 92px var(--gutter) 110px;
}
.article-aside { position: sticky; top: 120px; align-self: start; display: flex; flex-direction: column; gap: 5px; font-size: 12px; text-transform: uppercase; }
.article-aside span { color: var(--taupe); }
.article-aside a { width: fit-content; margin-top: 12px; border-bottom: 1px solid currentColor; font-weight: 800; }
.article-content { max-width: 760px; font-size: 19px; line-height: 1.72; }
.article-content .article-lead { font-size: 25px; font-weight: 600; line-height: 1.4; }
.article-content h2 { margin: 2.2em 0 .6em; font-size: 46px; }
.article-content h3 { margin: 1.8em 0 .4em; font-size: 27px; line-height: 1.15; }
.article-content blockquote { margin: 56px 0; padding: 34px 38px; background: var(--lime); font-size: 28px; font-weight: 800; line-height: 1.25; }
.article-content blockquote p { margin: 0; }
.article-content li { margin-bottom: 8px; }
.article-footer { display: flex; justify-content: space-between; gap: 30px; padding: 42px var(--gutter) 82px; border-top: 1px solid var(--line); }
.related-posts { padding: 72px var(--gutter) 92px; background: var(--paper-deep); }
.related-posts > h2 { max-width: 900px; margin: 0 0 42px; font-size: 52px; line-height: .95; text-transform: uppercase; }
.related-posts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.related-post { border-bottom: 1px solid var(--line); }
.related-post + .related-post { border-left: 1px solid var(--line); }
.related-post a { display: grid; min-height: 230px; padding: 28px; grid-template-columns: minmax(0, 1fr) auto; align-content: space-between; gap: 20px; }
.related-post span { grid-column: 1 / -1; color: var(--taupe); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.related-post h3 { margin: 0; font-size: 28px; line-height: 1; text-transform: uppercase; }
.related-post i { font-size: 24px; font-style: normal; }

@media (max-width: 900px) {
  .page-header,
  .case-header { min-height: 72px; padding-top: 14px; padding-bottom: 14px; }
  .main-nav-list { flex-direction: column; align-items: flex-start; gap: 8px; }
  .page-header .main-nav,
  .case-header .main-nav { gap: 8px; }
  .page-header .main-nav a,
  .case-header .main-nav a { font-size: clamp(42px, 10vw, 70px); line-height: 1.05; }
  .page-header .main-nav .nav-contact,
  .case-header .main-nav .nav-contact { margin-top: 28px; font-size: 14px; }
  .styled-page-header,
  .blog-hero { grid-template-columns: 1fr; }
  .services-hero-grid,
  .testimonial-heading { grid-template-columns: 1fr; }
  .testimonial-grid { grid-template-columns: 1fr; }
  .testimonial-item,
  .testimonial-item + .testimonial-item { padding: 34px 0; border-left: 0; border-bottom: 1px solid rgba(255,255,255,.25); }
  .services-hero h1 { font-size: 88px; }
  .content-shell .styled-page-header h1 { font-size: 78px; }
  .blog-hero h1 { font-size: 92px; }
  .article-hero h1 { font-size: 68px; }
	.article-layout { grid-template-columns: 1fr; gap: 42px; }
	.article-aside { position: static; }
	.related-posts-grid { grid-template-columns: 1fr; }
	.related-post + .related-post { border-left: 0; }
}

@media (max-width: 650px) {
  .brand > span { display: none; }
  .content-page { padding-top: 115px; }
  .content-shell > h1 { margin-bottom: 40px; }
  .content-shell .styled-page-header h1 { font-size: 54px; }
  .styled-page-header { gap: 30px; padding-bottom: 36px; }
  .styled-page-lead { font-size: 20px; }
  .styled-page-content { margin: 48px 0 0; }
  .home-journal-item a { grid-template-columns: 1fr 28px; gap: 12px; min-height: 0; padding: 26px 0; }
  .home-journal-item span { grid-column: 1 / -1; }
  .home-journal-item h3 { font-size: 28px; }
  .testimonial-heading h2 { font-size: 48px; }
  .testimonial-item blockquote { font-size: 22px; }
  .services-page { padding-top: 90px; }
  .services-hero { padding-top: 44px; padding-bottom: 50px; }
  .services-hero h1 { font-size: 58px; }
  .services-hero-grid p { font-size: 19px; }
  .services-intro { padding-top: 58px; padding-bottom: 58px; font-size: 21px; }
  .service-row a { grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 32px 0 36px; }
  .service-row i { display: none; }
  .service-row h2 { font-size: 32px; }
  .service-row p { font-size: 15px; }
  .services-cta { padding-top: 58px; padding-bottom: 58px; }
  .services-cta h2 { font-size: 39px; }
  .service-page-cta { align-items: flex-start; flex-direction: column; margin-top: 60px; padding: 32px 24px; }
  .service-page-cta h2 { font-size: 36px; }
  .styled-page-content .topfloor-pattern,
  .article-content .topfloor-pattern { margin-top: 48px; margin-bottom: 48px; padding: 32px 24px; }
  .topfloor-pattern-intro h2 { font-size: 36px; }
  .topfloor-pattern-quote blockquote p { font-size: 30px; }
  .topfloor-pattern-cta h2 { font-size: 38px; }
  .blog-page,
  .journal-article { padding-top: 90px; }
  .blog-hero { padding-top: 44px; padding-bottom: 48px; }
  .blog-hero h1 { font-size: 64px; }
  .blog-hero-intro { font-size: 19px; }
  .blog-card-link { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 34px 0 38px; }
  .blog-card-arrow { display: none; }
  .blog-card h2 { font-size: 31px; }
  .blog-card p { font-size: 15px; }
  .blog-cta { align-items: flex-start; flex-direction: column; padding-top: 58px; padding-bottom: 58px; }
  .blog-cta h2 { font-size: 38px; }
  .article-hero { padding-top: 44px; padding-bottom: 50px; }
  .article-hero h1 { margin-top: 16px; font-size: 48px; }
  .article-layout { padding-top: 58px; padding-bottom: 72px; }
  .article-content { font-size: 17px; }
  .article-content .article-lead { font-size: 21px; }
  .article-content h2 { font-size: 34px; }
  .article-content h3 { font-size: 24px; }
  .article-content blockquote { margin: 40px 0; padding: 26px; font-size: 23px; }
  .article-footer { align-items: flex-start; flex-direction: column; }
}
