:root {
  --ivory: #fbf9f5;
  --bone: #f2eee6;
  --ink: #1b1a18;
  --walnut: #5a3d32;
  --clay: #a66f51;
  --olive: #686957;
  --line: rgba(27, 26, 24, 0.18);
  --display: "Cormorant Garamond", Georgia, serif;
  --body: Manrope, Arial, sans-serif;
  --gutter: clamp(1.25rem, 4vw, 4.5rem);
  --section: clamp(5rem, 11vw, 10rem);
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

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

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

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

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  font-family: var(--display);
  font-weight: 500;
  line-height: 1.02;
}

h1 em,
h2 em {
  color: var(--clay);
  font-weight: 400;
}

::selection {
  background: var(--walnut);
  color: var(--ivory);
}

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

.screen-reader-text:focus {
  top: 1rem;
  left: 1rem;
  z-index: 10000;
  width: auto;
  height: auto;
  padding: 0.75rem 1rem;
  clip: auto;
  background: var(--ink);
  color: var(--ivory);
}

.shell,
.shell-wide,
.shell-narrow {
  width: min(100% - (2 * var(--gutter)), 1360px);
  margin-inline: auto;
}

.shell-wide {
  width: min(100% - (2 * var(--gutter)), 1520px);
}

.shell-narrow {
  width: min(100% - (2 * var(--gutter)), 780px);
}

.section {
  padding-block: var(--section);
}

.eyebrow {
  margin-bottom: 1.8rem;
  color: var(--walnut);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.19em;
  line-height: 1.3;
  text-transform: uppercase;
}

.button,
.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.9rem 1.45rem;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: var(--ink);
  color: var(--ivory);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
  transition: background 220ms var(--ease), color 220ms var(--ease);
}

.button:hover,
.wp-element-button:hover {
  background: transparent;
  color: var(--ink);
}

.text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding-bottom: 0.45rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}

.text-link::before {
  content: "";
  width: 2.5rem;
  height: 1px;
  background: currentColor;
  transform-origin: left;
  transition: transform 240ms var(--ease);
}

.text-link::after,
.section-heading::after,
.footer-intro::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  width: 2rem;
  height: 2rem;
  border-right: 1px solid currentColor;
  transform: skewX(-45deg) translateX(0.95rem);
  transform-origin: bottom right;
}

.text-link::after {
  display: none;
}

.text-link:hover::before {
  transform: scaleX(0.55);
}

.text-link--light {
  color: var(--ivory);
}

/* Header */
.site-header {
  position: relative;
  z-index: 50;
  border-bottom: 1px solid rgba(27, 26, 24, 0.12);
  background: var(--ivory);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 7.25rem;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}

.source-mark {
  position: relative;
  display: block;
  flex: 0 0 3.25rem;
  width: 3.25rem;
  height: 3.25rem;
  overflow: hidden;
  background: #171715;
}

.source-mark img {
  position: absolute;
  top: -5.91rem;
  left: -3.82rem;
  width: 10.83rem;
  max-width: none;
}

.brand__words {
  display: grid;
  gap: 0.05rem;
}

.brand__words strong {
  font-family: var(--display);
  font-size: 1.32rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1;
}

.brand__words small {
  font-size: 0.51rem;
  font-weight: 600;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.custom-logo-link,
.custom-logo {
  display: block;
}

.custom-logo {
  width: auto;
  max-width: 15rem;
  max-height: 4rem;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(2rem, 4vw, 4rem);
}

.site-nav__list {
  display: flex;
  gap: clamp(1.25rem, 2.5vw, 2.7rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-nav__list a,
.header-enquire {
  position: relative;
  padding-block: 0.5rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.site-nav__list a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0.25rem;
  left: 0;
  height: 1px;
  background: var(--clay);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 240ms var(--ease);
}

.site-nav__list a:hover::after,
.site-nav__list .current-menu-item a::after {
  transform: scaleX(1);
  transform-origin: left;
}

.header-enquire {
  padding: 0.9rem 1.05rem;
  border: 1px solid var(--ink);
  transition: background 180ms, color 180ms;
}

.header-enquire:hover {
  background: var(--ink);
  color: var(--ivory);
}

.nav-toggle {
  display: none;
  align-items: center;
  gap: 0.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.nav-toggle i,
.nav-toggle i::before {
  display: block;
  width: 1.5rem;
  height: 1px;
  background: currentColor;
  transition: transform 180ms;
}

.nav-toggle i {
  position: relative;
}

.nav-toggle i::before {
  content: "";
  position: absolute;
  top: -0.4rem;
}

/* Hero */
.home-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
  min-height: min(820px, calc(100vh - 7.25rem));
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}

.home-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 52.4%;
  z-index: 2;
  width: 1px;
  height: 11rem;
  background: rgba(251, 249, 245, 0.45);
  transform: rotate(45deg);
  transform-origin: top;
}

.home-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(4rem, 8vw, 9rem) clamp(2rem, 7vw, 8rem) clamp(4rem, 8vw, 8rem) var(--gutter);
}

.home-hero__copy h1 {
  max-width: 13ch;
  margin-bottom: 2rem;
  font-size: clamp(3.7rem, 6.5vw, 7.5rem);
  letter-spacing: -0.045em;
}

.home-hero__copy > p:not(.eyebrow) {
  max-width: 34rem;
  margin-bottom: 2.6rem;
  color: rgba(27, 26, 24, 0.72);
  font-size: clamp(0.95rem, 1.1vw, 1.08rem);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.75rem;
}

.home-hero__visual {
  position: relative;
  min-height: 640px;
  overflow: hidden;
  background: var(--bone);
}

.home-hero__visual.has-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(27, 26, 24, 0.04), transparent 25%), linear-gradient(0deg, rgba(27, 26, 24, 0.08), transparent 32%);
  pointer-events: none;
}

.hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.material-study {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: linear-gradient(120deg, #d7d0c4, #efe9df 48%, #c9b8a6);
}

.material-study__stone {
  position: absolute;
  inset: 8% 23% 12% 10%;
  background:
    radial-gradient(circle at 22% 26%, rgba(255,255,255,.64), transparent 20%),
    linear-gradient(115deg, transparent 35%, rgba(94,74,62,.2) 36%, transparent 37%),
    linear-gradient(12deg, transparent 62%, rgba(94,74,62,.12) 63%, transparent 64%),
    #d6d0c5;
  box-shadow: 0 1.8rem 4rem rgba(31, 24, 19, 0.16);
}

.material-study__walnut {
  position: absolute;
  top: 0;
  right: 0;
  width: 31%;
  height: 74%;
  background: repeating-linear-gradient(93deg, #5b3c30 0, #5b3c30 1.4rem, #68473a 1.5rem, #51362d 3.1rem);
}

.material-study__linen {
  position: absolute;
  right: 8%;
  bottom: 0;
  width: 43%;
  height: 42%;
  background: repeating-linear-gradient(0deg, rgba(83,77,67,.08) 0, rgba(83,77,67,.08) 1px, transparent 1px, transparent 4px), #e7dfd1;
  box-shadow: -1.6rem -1.6rem 3rem rgba(31, 24, 19, 0.09);
}

.material-study__line {
  position: absolute;
  top: 15%;
  left: 10%;
  width: 54%;
  height: 54%;
  border-top: 1px solid rgba(27,26,24,.38);
  border-left: 1px solid rgba(27,26,24,.38);
}

.material-study__line::after {
  content: "";
  position: absolute;
  right: -4.2rem;
  bottom: -1px;
  width: 7rem;
  height: 1px;
  background: rgba(27,26,24,.38);
  transform: rotate(-45deg);
  transform-origin: left;
}

.home-hero__index {
  position: absolute;
  right: calc(var(--gutter) * 0.5);
  bottom: 0;
  z-index: 3;
  margin: 0;
  color: rgba(251, 249, 245, 0.7);
  font-family: var(--display);
  font-size: clamp(7rem, 13vw, 14rem);
  line-height: 0.65;
}

.facts-line {
  border-bottom: 1px solid var(--line);
}

.facts-line__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.facts-line p {
  display: grid;
  gap: 0.25rem;
  margin: 0;
  padding: 1.7rem 1.8rem;
  border-left: 1px solid var(--line);
}

.facts-line p:last-child {
  border-right: 1px solid var(--line);
}

.facts-line strong {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.facts-line span {
  color: rgba(27,26,24,.68);
  font-size: 0.82rem;
}

/* Shared sections */
.section-heading {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr);
  align-items: end;
  gap: 3rem;
  margin-bottom: clamp(3.5rem, 7vw, 7rem);
  padding-bottom: 2.5rem;
  border-bottom: 1px solid var(--line);
}

.section-heading h2,
.philosophy__copy h2,
.footer-intro h2 {
  margin: 0;
  font-size: clamp(3.2rem, 6vw, 6.5rem);
  letter-spacing: -0.04em;
}

.section-heading > p {
  max-width: 28rem;
  margin: 0;
  color: rgba(27,26,24,.68);
}

.project-grid,
.archive-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(1.6rem, 3vw, 3.5rem);
}

.project-card {
  grid-column: span 4;
}

.project-card:nth-child(2) {
  padding-top: clamp(3rem, 7vw, 7rem);
}

.project-card__image {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--bone);
}

.project-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--ease);
}

.project-card:hover .project-card__image img {
  transform: scale(1.025);
}

.project-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #d7d0c5, #eee9e0 60%, #bda998);
}

.project-card__meta {
  position: relative;
  padding: 1.4rem 2rem 0 0;
}

.project-card__meta::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 2.4rem;
  height: 1px;
  background: var(--ink);
  transform: rotate(-45deg);
  transform-origin: right;
}

.project-card__meta p,
.project-card__meta span {
  margin: 0;
  color: var(--walnut);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.project-card__meta h2,
.project-card__meta h3 {
  margin: 0.25rem 0 0.35rem;
  font-size: clamp(1.75rem, 2.5vw, 2.6rem);
}

.project-card__meta h2 a,
.project-card__meta h3 a {
  transition: color 180ms;
}

.project-card:hover .project-card__meta h2 a,
.project-card:hover .project-card__meta h3 a {
  color: var(--clay);
}

.section-end {
  margin-top: 4rem;
  text-align: right;
}

.editor-note {
  padding: 1.25rem 1.5rem;
  border: 1px dashed var(--clay);
  background: rgba(166,111,81,.07);
  font-size: 0.85rem;
}

/* Philosophy */
.philosophy {
  overflow: hidden;
  background: var(--bone);
}

.philosophy__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
  align-items: center;
  gap: clamp(4rem, 9vw, 10rem);
}

.philosophy__art {
  position: relative;
  min-height: 680px;
}

.art-card {
  position: absolute;
  box-shadow: 0 2rem 5rem rgba(39,28,22,.13);
}

.art-card--one {
  inset: 0 25% 18% 0;
  background:
    linear-gradient(100deg, transparent 0 70%, rgba(52,41,33,.35) 71% 72%, transparent 73%),
    radial-gradient(circle at 35% 31%, rgba(255,255,255,.45), transparent 25%),
    #b5a797;
}

.art-card--two {
  right: 0;
  bottom: 0;
  width: 54%;
  height: 48%;
  border: 0.85rem solid var(--bone);
  background: repeating-linear-gradient(90deg, #60443a 0, #60443a 2.5rem, #735248 2.55rem, #553b34 5rem);
}

.philosophy__art > span {
  position: absolute;
  right: 9%;
  top: 14%;
  z-index: 2;
  color: var(--ivory);
  font-family: var(--display);
  font-size: clamp(3.6rem, 7vw, 7rem);
  font-style: italic;
  line-height: .78;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.philosophy__copy h2 {
  margin-bottom: 2.6rem;
}

.philosophy__copy > p:not(.eyebrow) {
  max-width: 37rem;
  color: rgba(27,26,24,.72);
}

.philosophy__copy .text-link {
  margin-top: 1.4rem;
}

/* Services */
.services {
  background: var(--ink);
  color: var(--ivory);
}

.services .eyebrow,
.section-heading--light h2 em {
  color: #d9a586;
}

.section-heading--light {
  border-color: rgba(251,249,245,.2);
}

.section-heading--light > p {
  color: rgba(251,249,245,.65);
}

.service-list {
  border-top: 1px solid rgba(251,249,245,.2);
}

.service-row {
  display: grid;
  grid-template-columns: 5rem minmax(15rem, 0.72fr) minmax(20rem, 1fr);
  align-items: center;
  gap: 2rem;
  padding-block: 2rem;
  border-bottom: 1px solid rgba(251,249,245,.2);
  transition: padding 260ms var(--ease), background 260ms;
}

.service-row:hover {
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  background: rgba(251,249,245,.045);
}

.service-row > span {
  color: #d9a586;
  font-family: var(--display);
  font-size: 1.2rem;
}

.service-row h3 {
  margin: 0;
  font-size: clamp(2rem, 3.4vw, 3.6rem);
}

.service-row p {
  max-width: 36rem;
  margin: 0;
  color: rgba(251,249,245,.63);
}

/* Process */
.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
  counter-reset: process;
}

.process-grid li {
  position: relative;
  min-height: 21rem;
  padding: 2rem 2rem 2rem 0;
  border-right: 1px solid var(--line);
}

.process-grid li + li {
  padding-left: 2rem;
}

.process-grid li:last-child {
  border-right: 0;
}

.process-grid li::after {
  content: "";
  position: absolute;
  right: -1px;
  bottom: 0;
  width: 3rem;
  height: 3rem;
  border-right: 1px solid var(--clay);
  transform: skewX(-45deg) translateX(1.4rem);
  transform-origin: bottom;
}

.process-grid li:last-child::after {
  display: none;
}

.process-grid span {
  color: var(--clay);
  font-family: var(--display);
  font-size: 1.35rem;
}

.process-grid h3 {
  margin: 3rem 0 1rem;
  font-size: 2.5rem;
}

.process-grid p {
  margin: 0;
  color: rgba(27,26,24,.68);
  font-size: .9rem;
}

/* Founder */
.founder {
  padding-top: 0;
}

.founder__grid {
  position: relative;
  display: grid;
  grid-template-columns: .35fr 1.1fr .75fr;
  align-items: center;
  gap: clamp(2rem, 5vw, 6rem);
  padding: clamp(3rem, 6vw, 6rem);
  overflow: hidden;
  background: var(--walnut);
  color: var(--ivory);
}

.founder__grid::before {
  content: "";
  position: absolute;
  top: -4rem;
  right: 28%;
  width: 1px;
  height: 12rem;
  background: rgba(251,249,245,.35);
  transform: rotate(45deg);
}

.founder__initial {
  margin: 0;
  color: rgba(251,249,245,.18);
  font-family: var(--display);
  font-size: clamp(8rem, 15vw, 15rem);
  font-style: italic;
  line-height: .6;
}

.founder h2 {
  margin: 0;
  font-size: clamp(2.7rem, 4.6vw, 5rem);
}

.founder h2 em,
.founder .eyebrow {
  color: #e0af92;
}

.founder__grid > p:last-child {
  margin: 0;
  color: rgba(251,249,245,.72);
}

/* Footer */
.site-footer {
  overflow: hidden;
  background: var(--ink);
  color: var(--ivory);
}

.footer-intro {
  position: relative;
  padding: clamp(5rem, 10vw, 9rem) 0 clamp(4rem, 8vw, 7rem);
  border-bottom: 1px solid rgba(251,249,245,.2);
}

.footer-intro::after {
  color: rgba(251,249,245,.4);
}

.footer-intro .eyebrow {
  color: #d9a586;
}

.footer-intro h2 {
  max-width: 13ch;
  margin-bottom: 3rem;
}

.footer-base {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  min-height: 7rem;
  color: rgba(251,249,245,.55);
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.footer-base p {
  margin: 0;
}

.footer-nav {
  display: flex;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-nav a:hover {
  color: var(--ivory);
}

/* Inner pages */
.page-main,
.archive-main,
.single-project {
  min-height: 60vh;
}

.page-hero {
  padding-block: clamp(5rem, 10vw, 10rem) clamp(3rem, 7vw, 7rem);
}

.page-hero h1,
.project-hero h1 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(4rem, 9vw, 9rem);
  letter-spacing: -.045em;
}

.page-hero > p:last-child {
  max-width: 42rem;
  margin: 2rem 0 0 auto;
  color: rgba(27,26,24,.68);
}

.archive-tools {
  padding-bottom: 3rem;
}

.filter-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.8rem;
  padding-block: 1.25rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.filter-nav a {
  color: rgba(27,26,24,.55);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.filter-nav a:hover,
.filter-nav .is-active {
  color: var(--clay);
}

.archive-grid {
  padding-bottom: var(--section);
}

.archive-grid .project-card {
  margin-bottom: 3rem;
}

.archive-grid .project-card:nth-child(2) {
  padding-top: 5rem;
}

.archive-grid .project-card:nth-child(3n + 2) {
  padding-top: 5rem;
}

.archive-grid .project-card:nth-child(3n + 1),
.archive-grid .project-card:nth-child(3n + 3) {
  padding-top: 0;
}

.empty-state {
  grid-column: 1 / -1;
  padding: 6rem 0 10rem;
}

.empty-state h2 {
  font-size: clamp(2.8rem, 6vw, 5.5rem);
}

.pagination {
  grid-column: 1 / -1;
  margin-top: 3rem;
}

.nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}

.page-numbers {
  min-width: 2.7rem;
  padding: .55rem .8rem;
  border: 1px solid var(--line);
  text-align: center;
  font-size: .72rem;
}

.page-numbers.current,
.page-numbers:hover {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--ivory);
}

.project-hero {
  padding-block: clamp(5rem, 9vw, 9rem) 0;
}

.project-hero__title {
  position: relative;
  z-index: 2;
  max-width: 70rem;
  padding-bottom: clamp(3rem, 7vw, 6rem);
}

.project-hero__title > p:last-child {
  max-width: 38rem;
  margin: 2rem 0 0 auto;
  color: rgba(27,26,24,.68);
}

.project-hero__image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.project-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project-body {
  display: grid;
  grid-template-columns: minmax(13rem, .45fr) minmax(0, 1fr);
  gap: clamp(3rem, 9vw, 10rem);
  padding-block: var(--section);
}

.project-facts {
  margin: 0;
}

.project-facts div {
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}

.project-facts dt {
  margin-bottom: .3rem;
  color: var(--walnut);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.project-facts dd {
  margin: 0;
  font-family: var(--display);
  font-size: 1.4rem;
}

.entry-content {
  font-size: clamp(1rem, 1.2vw, 1.1rem);
}

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

.entry-content h2 {
  margin-top: 1.7em;
  font-size: clamp(2.7rem, 5vw, 5rem);
}

.entry-content h3 {
  margin-top: 1.8em;
  font-size: clamp(2rem, 3vw, 3rem);
}

.entry-content p,
.entry-content li {
  color: rgba(27,26,24,.76);
}

.entry-content blockquote {
  margin: 3rem 0;
  padding: 2rem 0 2rem 2rem;
  border-left: 1px solid var(--clay);
  font-family: var(--display);
  font-size: clamp(1.8rem, 3.5vw, 3.2rem);
  font-style: italic;
  line-height: 1.2;
}

.entry-content .wp-block-image,
.entry-content .wp-block-gallery {
  margin-block: 3rem;
}

.entry-content a:not(.wp-element-button) {
  border-bottom: 1px solid var(--clay);
}

.page-feature {
  margin-bottom: clamp(4rem, 8vw, 8rem);
}

.page-feature img {
  width: 100%;
  max-height: 72vh;
  object-fit: cover;
}

.page-main > .entry-content {
  padding-bottom: var(--section);
}

.project-pagination {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding-block: 3rem var(--section);
  border-top: 1px solid var(--line);
}

.project-pagination > div:last-child {
  text-align: right;
}

.project-pagination a {
  font-family: var(--display);
  font-size: 1.8rem;
}

.project-pagination span {
  display: block;
  margin-bottom: .3rem;
  color: var(--clay);
  font-family: var(--body);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.post-list {
  padding-bottom: var(--section);
}

.post-list__item {
  padding-block: 3rem;
  border-top: 1px solid var(--line);
}

.post-list__item h2 {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
}

.not-found {
  padding-block: clamp(7rem, 15vw, 14rem);
}

.not-found h1 {
  font-size: clamp(3.5rem, 8vw, 7rem);
}

.not-found .button {
  margin-top: 2rem;
}

/* Progressive reveal */
.js .reveal {
  opacity: 0;
  transform: translateY(1.4rem);
  transition: opacity 700ms var(--ease), transform 700ms var(--ease);
}

.js .reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 1080px) {
  .site-nav {
    gap: 1.5rem;
  }

  .header-enquire {
    display: none;
  }

  .home-hero {
    grid-template-columns: 1fr 1fr;
  }

  .home-hero__copy {
    padding-right: 3rem;
  }

  .service-row {
    grid-template-columns: 3rem minmax(13rem, .8fr) 1fr;
  }

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

  .process-grid li:nth-child(2) {
    border-right: 0;
  }

  .process-grid li:nth-child(2)::after {
    display: none;
  }

  .process-grid li:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }

  .founder__grid {
    grid-template-columns: .3fr 1fr;
  }

  .founder__grid > p:last-child {
    grid-column: 2;
  }
}

@media (max-width: 820px) {
  :root {
    --section: clamp(4.5rem, 16vw, 7rem);
  }

  .site-header__inner {
    min-height: 5.5rem;
  }

  .source-mark {
    flex-basis: 2.7rem;
    width: 2.7rem;
    height: 2.7rem;
  }

  .source-mark img {
    top: -4.91rem;
    left: -3.17rem;
    width: 9rem;
  }

  .nav-toggle {
    display: flex;
    z-index: 2;
  }

  .site-nav {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: var(--gutter);
    background: var(--bone);
    opacity: 0;
    visibility: hidden;
    transition: opacity 220ms, visibility 220ms;
  }

  .menu-open .site-nav {
    opacity: 1;
    visibility: visible;
  }

  .site-nav__list {
    flex-direction: column;
    gap: .65rem;
  }

  .site-nav__list a {
    font-family: var(--display);
    font-size: clamp(2.7rem, 10vw, 5rem);
    font-weight: 500;
    letter-spacing: -.025em;
    text-transform: none;
  }

  .menu-open .nav-toggle i {
    transform: rotate(45deg);
  }

  .menu-open .nav-toggle i::before {
    top: 0;
    transform: rotate(90deg);
  }

  .home-hero {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .home-hero::before {
    display: none;
  }

  .home-hero__copy {
    padding: 5rem var(--gutter);
  }

  .home-hero__copy h1 {
    font-size: clamp(3.5rem, 13vw, 6.8rem);
  }

  .home-hero__visual {
    min-height: 74vh;
  }

  .home-hero__index {
    bottom: 0;
  }

  .facts-line__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .facts-line p:nth-child(3) {
    border-top: 1px solid var(--line);
  }

  .facts-line p:nth-child(4) {
    border-top: 1px solid var(--line);
  }

  .section-heading {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .project-card,
  .project-card:nth-child(2),
  .archive-grid .project-card,
  .archive-grid .project-card:nth-child(n) {
    grid-column: span 6;
    padding-top: 0;
  }

  .project-card:nth-child(even) {
    padding-top: 4rem;
  }

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

  .philosophy__art {
    min-height: 600px;
  }

  .service-row {
    grid-template-columns: 2.2rem 1fr;
    align-items: start;
  }

  .service-row p {
    grid-column: 2;
  }

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

  .founder__initial {
    position: absolute;
    right: 1rem;
    bottom: 0;
  }

  .founder__grid > p:last-child {
    grid-column: 1;
    max-width: 34rem;
  }

  .project-body {
    grid-template-columns: 1fr;
  }

  .project-facts {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 2rem;
  }

  .footer-base {
    align-items: flex-start;
    flex-direction: column;
    padding-block: 2rem;
  }
}

@media (max-width: 560px) {
  .brand__words small {
    display: none;
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .home-hero__visual {
    min-height: 62vh;
  }

  .facts-line p {
    padding: 1.2rem .9rem;
  }

  .section-heading h2,
  .philosophy__copy h2,
  .footer-intro h2 {
    font-size: clamp(2.8rem, 14vw, 4.4rem);
  }

  .project-card,
  .project-card:nth-child(even),
  .archive-grid .project-card,
  .archive-grid .project-card:nth-child(n) {
    grid-column: 1 / -1;
    padding-top: 0;
  }

  .project-card:nth-child(even) {
    margin-left: 12%;
  }

  .philosophy__art {
    min-height: 440px;
  }

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

  .process-grid li,
  .process-grid li + li {
    min-height: 0;
    padding: 2rem 0;
    border-top: 1px solid var(--line);
    border-right: 0;
  }

  .process-grid li::after {
    display: none;
  }

  .process-grid h3 {
    margin: 1rem 0;
  }

  .founder__grid {
    padding: 3rem 1.5rem;
  }

  .project-hero__image {
    width: calc(100% + (2 * var(--gutter)));
    margin-left: calc(-1 * var(--gutter));
    aspect-ratio: 4 / 5;
  }

  .project-facts,
  .project-pagination {
    grid-template-columns: 1fr;
  }

  .project-pagination {
    gap: 2rem;
  }

  .project-pagination > div:last-child {
    text-align: left;
  }

  .footer-nav {
    flex-wrap: wrap;
  }
}

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

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

  .js .reveal {
    opacity: 1;
    transform: none;
  }
}



/* 1.1 premium interim experience */
:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--clay);
  outline-offset: 4px;
}
.site-header__inner { min-height: 6rem; }
.site-nav__list a, .header-enquire, .button, .text-link { font-size: .75rem; }
.brand__words small { font-size: .62rem; }
.eyebrow { font-size: .75rem; }
.home-hero { min-height: min(790px, calc(100vh - 6rem)); }
.home-hero__copy h1 { max-width: 11ch; font-size: clamp(3.5rem, 5.8vw, 6.7rem); }
.home-hero__visual { min-height: 620px; }
.material-atlas { position:absolute; inset:0; overflow:hidden; background:#d7d0c4; }
.atlas-swatch { position:absolute; display:flex; flex-direction:column; justify-content:space-between; padding:1rem; box-shadow:0 2rem 5rem rgba(31,24,19,.15); }
.atlas-swatch span, .atlas-swatch small, .material-atlas>p { font:700 .65rem/1.2 var(--body); letter-spacing:.14em; text-transform:uppercase; }
.atlas-swatch--stone { inset:8% 28% 17% 8%; background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.7),transparent 24%),linear-gradient(125deg,transparent 45%,rgba(91,75,64,.18) 46%,transparent 47%),#d8d2c7; color:#4b443d; }
.atlas-swatch--walnut { top:0; right:0; width:31%; height:72%; background:repeating-linear-gradient(94deg,#54392f 0,#54392f 1.5rem,#67483b 1.55rem,#4c342c 3rem); color:var(--ivory); }
.atlas-swatch--linen { right:7%; bottom:0; width:46%; height:37%; background:repeating-linear-gradient(0deg,rgba(83,77,67,.08) 0,rgba(83,77,67,.08) 1px,transparent 1px,transparent 4px),#e9e1d3; }
.atlas-plan { position:absolute; left:13%; top:18%; width:42%; height:42%; border:1px solid rgba(27,26,24,.34); border-right:0; }
.atlas-plan:before,.atlas-plan:after { content:""; position:absolute; background:rgba(27,26,24,.34); }
.atlas-plan:before { left:43%; top:0; width:1px; height:57%; }
.atlas-plan:after { left:0; top:57%; width:70%; height:1px; }
.material-atlas>p { position:absolute; left:8%; bottom:4%; display:flex; gap:1rem; color:rgba(27,26,24,.65); }
.material-atlas>p strong { color:var(--ink); }
.dossier-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,3vw,3rem); }
.dossier { display:block; }
.dossier__art { position:relative; aspect-ratio:4/5; overflow:hidden; margin-bottom:1.5rem; background:var(--bone); }
.dossier__art:after { content:""; position:absolute; inset:9%; border:1px solid rgba(27,26,24,.25); }
.dossier__art b { position:absolute; z-index:2; left:1.4rem; bottom:1.4rem; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; }
.dossier__shape { position:absolute; transition:transform 600ms var(--ease); }
.dossier:hover .dossier__shape { transform:scale(1.04) rotate(-1deg); }
.dossier--residential .dossier__art { background:#c8b8a7; }
.dossier--residential .dossier__shape { inset:18% 17% 9% 30%; background:linear-gradient(135deg,#e9e1d3 62%,#a66f51 62%); }
.dossier--corporate .dossier__art { background:#707161; }
.dossier--corporate .dossier__shape { inset:10% 30% 24% 10%; background:repeating-linear-gradient(90deg,#d9d2c7 0,#d9d2c7 2rem,#272724 2.05rem,#272724 2.15rem); }
.dossier--commercial .dossier__art { background:#553b32; color:var(--ivory); }
.dossier--commercial .dossier__shape { width:67%; height:67%; right:-7%; top:9%; border-radius:50%; background:#b67b58; }
.dossier>p { margin:0; color:var(--clay); font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.dossier h3 { margin:.4rem 0 1rem; font-size:clamp(2rem,3vw,3.2rem); }
.dossier__link { font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid var(--line); }
.service-row { grid-template-columns:4rem minmax(15rem,.72fr) minmax(18rem,1fr) 2rem; }
.service-row i { font-style:normal; font-size:1.1rem; }
.page-band { background:var(--bone); }
.content-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(20rem,.7fr); gap:clamp(3rem,8vw,9rem); align-items:start; }
.content-split h2,.contact-aside h2 { font-size:clamp(3rem,5vw,5.6rem); margin:0; letter-spacing:-.035em; }
.prose { font-size:1.05rem; }
.prose p { color:rgba(27,26,24,.72); }
.prose .button { margin-top:1.5rem; }
.service-index .shell { border-top:1px solid var(--line); }
.service-index a { display:grid; grid-template-columns:5rem 1fr auto; gap:2rem; align-items:center; padding:2.4rem 0; border-bottom:1px solid var(--line); }
.service-index a>span { color:var(--clay); font-family:var(--display); font-size:1.3rem; }
.service-index p { margin:0; color:var(--walnut); font-size:.66rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.service-index h2 { margin:.25rem 0 0; font-size:clamp(2.3rem,4vw,4rem); }
.service-index b,.location-grid b { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.process-story article { display:grid; grid-template-columns:5rem 1fr minmax(15rem,.5fr); gap:clamp(2rem,6vw,6rem); padding:3rem 0; border-top:1px solid var(--line); }
.process-story article>span { color:var(--clay); font-family:var(--display); font-size:1.4rem; }
.process-story h2 { max-width:16ch; font-size:clamp(2.3rem,4vw,4rem); }
.process-story aside { color:rgba(27,26,24,.6); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; }
.location-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.location-grid a { min-height:28rem; padding:3rem; background:var(--ivory); display:flex; flex-direction:column; }
.location-grid a span { color:var(--clay); font-family:var(--display); font-size:1.4rem; }
.location-grid a p { margin:auto 0 0; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; }
.location-grid h2 { font-size:clamp(4rem,7vw,7rem); margin:.2rem 0 1rem; }
.location-services { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.location-services a { padding:1.5rem 0; border-bottom:1px solid var(--line); font-family:var(--display); font-size:1.7rem; }
.scope-list { margin:0; padding:0; list-style:none; counter-reset:scope; }
.scope-list li { counter-increment:scope; padding:1.15rem 0; border-bottom:1px solid var(--line); font-size:1rem; }
.scope-list li:before { content:"0" counter(scope); margin-right:2rem; color:var(--clay); font-family:var(--display); }
.contact-layout { display:grid; grid-template-columns:minmax(17rem,.55fr) minmax(0,1fr); gap:clamp(4rem,9vw,10rem); align-items:start; }
.contact-aside { position:sticky; top:3rem; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem 2rem; }
.enquiry-form label { display:grid; gap:.45rem; }
.enquiry-form label>span { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; padding:.9rem 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); }
.enquiry-form textarea { resize:vertical; }
.field-wide,.consent { margin-top:1.8rem; }
.enquiry-form .consent { display:flex; align-items:flex-start; gap:.8rem; }
.enquiry-form .consent input { width:auto; margin-top:.25rem; }
.enquiry-form .consent span { font-size:.7rem; letter-spacing:0; line-height:1.5; text-transform:none; }
.consent a { text-decoration:underline; }
.form-help { color:rgba(27,26,24,.6); font-size:.75rem; }
.form-trap { position:absolute; left:-9999px; }
.form-notice { margin-bottom:2rem; padding:1rem 1.2rem; border-left:3px solid var(--clay); background:var(--bone); }
.form-notice--success { border-color:var(--olive); }
@media(max-width:820px){
  .dossier-grid{grid-template-columns:1fr 1fr}.dossier:last-child{grid-column:1/-1;width:calc(50% - .75rem)}
  .content-split,.contact-layout{grid-template-columns:1fr}.contact-aside{position:static}
  .process-story article{grid-template-columns:3rem 1fr}.process-story aside{grid-column:2}
}
@media(max-width:560px){
  .dossier-grid{grid-template-columns:1fr}.dossier:last-child{grid-column:auto;width:auto}
  .service-row{grid-template-columns:2.2rem 1fr 1.2rem}.service-row p{grid-column:2}.service-row i{grid-column:3;grid-row:1}
  .service-index a{grid-template-columns:2.5rem 1fr}.service-index a>b{grid-column:2}
  .location-grid,.location-services,.field-grid{grid-template-columns:1fr}
  .location-grid a{min-height:20rem;padding:2rem}
  .process-story article{grid-template-columns:1fr}.process-story article>div,.process-story aside{grid-column:1}
}

/* 1.2 expanded primary navigation */
.site-nav { gap: clamp(1.25rem, 2.5vw, 3rem); }
.site-nav__list { gap: clamp(1rem, 1.8vw, 2rem); }
@media (max-width: 1180px) { .site-nav__list { gap: 1.1rem; } .site-nav { gap: 1.25rem; } }
