
:root {
  --maroon: #8b0d20;
  --maroon-dark: #630514;
  --ink: #1c1918;
  --paper: #f5f0e9;
  --white: #fffdf9;
  --ash: #d9d0c6;
  --muted: #675f59;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}

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

.site-header {
  align-items: center;
  background: rgba(255, 253, 249, 0.96);
  border-bottom: 1px solid var(--ash);
  display: flex;
  justify-content: space-between;
  min-height: 86px;
  padding: 0 4.2vw;
  position: sticky;
  top: 0;
  z-index: 20;
}

.brand {
  align-items: center;
  display: flex;
  gap: 14px;
}

.brand strong,
.brand small {
  display: block;
}

.brand strong {
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.brand small {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  margin-top: 4px;
  text-transform: uppercase;
}

.brand-mark {
  display: block;
  height: 34px;
  object-fit: contain;
  width: 34px;
}

nav {
  align-items: center;
  display: flex;
  gap: 30px;
}

nav a {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.07em;
}

.nav-cta {
  border: 1px solid var(--maroon);
  color: var(--maroon);
  padding: 13px 18px;
}

.nav-cta:hover,
.nav-cta:focus-visible {
  background: var(--maroon);
  color: white;
}

.hero {
  background: var(--white);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 30vw);
  min-height: calc(100vh - 86px);
  overflow: hidden;
  position: relative;
}

.hero-grid {
  background-image: linear-gradient(rgba(139, 13, 32, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(139, 13, 32, 0.07) 1px, transparent 1px);
  background-size: 52px 52px;
  height: 58%;
  mask-image: linear-gradient(to bottom, black, transparent);
  position: absolute;
  right: 0;
  top: 0;
  width: 50%;
}

.hero-content {
  align-self: center;
  padding: 11vh 6vw 11vh 8vw;
  position: relative;
  z-index: 1;
}

.eyebrow {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.15em;
  line-height: 1.6;
  margin: 0 0 26px;
  text-transform: uppercase;
}

h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(4.2rem, 7.2vw, 8.4rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.91;
  margin: 0;
  max-width: 860px;
}

.hero-lead {
  color: var(--muted);
  font-size: clamp(1rem, 1.25vw, 1.24rem);
  line-height: 1.7;
  margin: 40px 0 0;
  max-width: 690px;
}

.hero-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 34px;
  margin-top: 43px;
}

.button {
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  justify-content: center;
  letter-spacing: 0.09em;
  padding: 18px 23px;
  text-transform: uppercase;
}

.button-primary {
  background: var(--maroon);
  color: #fff;
}

.button-primary:hover,
.button-primary:focus-visible {
  background: var(--maroon-dark);
}

.text-link {
  border-bottom: 1px solid var(--ash);
  font-size: 12px;
  font-weight: 650;
  padding-bottom: 7px;
}

.text-link span {
  color: var(--maroon);
  margin-left: 8px;
}

.hero-panel {
  align-self: end;
  background: var(--maroon);
  color: white;
  margin: 0 4vw 6vh 0;
  min-height: 310px;
  padding: 36px;
  position: relative;
  z-index: 2;
}

.panel-index {
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
}

.hero-panel p {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 2.3vw, 2.8rem);
  line-height: 1.08;
  margin: 44px 0 34px;
}

.panel-rule {
  background: rgba(255,255,255,0.42);
  height: 1px;
  margin-bottom: 23px;
}

.hero-panel small {
  color: rgba(255,255,255,0.76);
  display: block;
  font-size: 11px;
  line-height: 1.6;
}

.advice-boundary-strip {
  align-items: center;
  background: var(--ink);
  color: rgba(255,255,255,0.78);
  display: grid;
  font-size: 11px;
  gap: 22px;
  grid-template-columns: auto 1fr;
  line-height: 1.65;
  padding: 18px 8vw;
}

.advice-boundary-strip strong {
  color: white;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.section-shell {
  padding: 120px 8vw;
}

.intro {
  background: var(--paper);
}

.section-heading {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr 2.2fr;
  margin-bottom: 70px;
}

.section-heading h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.6rem, 5vw, 5.6rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.98;
  margin: 0;
  max-width: 900px;
}

.services-grid {
  border-top: 1px solid var(--ash);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.service-card {
  border-bottom: 1px solid var(--ash);
  border-right: 1px solid var(--ash);
  min-height: 430px;
  padding: 30px 34px 38px 0;
}

.service-card + .service-card {
  padding-left: 34px;
}

.service-card:nth-child(3n) {
  border-right: 0;
}

.service-card:nth-last-child(-n + 3) {
  border-bottom: 0;
}

.service-card > span {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
}

.service-card h3 {
  font-size: 19px;
  font-weight: 600;
  margin: 62px 0 18px;
}

.service-card p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
}

.service-card .service-detail {
  border-top: 1px solid var(--ash);
  font-size: 12px;
  line-height: 1.7;
  margin-top: 28px;
  padding-top: 22px;
}

.positioning {
  background: var(--ink);
  color: var(--white);
  display: grid;
  gap: 8vw;
  grid-template-columns: 1.2fr 1fr;
}

.positioning h2,
.leadership h2,
.process h2,
.fees h2,
.partner-section h2,
.contact h2,
.notice h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.7rem, 5vw, 5.8rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.98;
  margin: 0;
}

.positioning-points {
  border-top: 1px solid rgba(255,255,255,0.2);
}

.positioning-points > div {
  border-bottom: 1px solid rgba(255,255,255,0.2);
  display: grid;
  gap: 24px;
  grid-template-columns: 34px 1fr;
  padding: 30px 0 34px;
}

.positioning-points span,
.positioning-points h3 {
  font-size: 13px;
  margin: 0;
}

.positioning-points span {
  color: #d37080;
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  padding-top: 3px;
}

.positioning-points p {
  color: rgba(255,255,255,0.62);
  font-size: 13px;
  grid-column: 2;
  line-height: 1.7;
  margin: -10px 0 0;
}

.leadership {
  background: var(--white);
}

.leadership-heading {
  margin-bottom: 72px;
}

.about-unified {
  margin: 0 auto;
  max-width: 1280px;
  text-align: center;
}

.about-photo-panel {
  align-items: end;
  background: linear-gradient(145deg, var(--paper) 0%, #e9dfd4 100%);
  border-top: 4px solid var(--maroon);
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  max-width: 760px;
  min-height: 600px;
  overflow: hidden;
  padding: 28px 28px 0;
}

.about-photo-panel img {
  display: block;
  height: auto;
  margin: auto auto 0;
  max-height: 650px;
  max-width: 100%;
  object-fit: contain;
  object-position: center bottom;
  width: auto;
}

.about-photo-panel .about-signatures {
  height: auto;
  margin: 18px auto 14px;
  max-height: none;
  max-width: 620px;
  object-fit: contain;
  width: 88%;
}

.about-photo-panel figcaption {
  background: var(--ink);
  color: rgba(255,255,255,0.78);
  font-family: monospace;
  font-size: clamp(8px, 1.2vw, 10px);
	letter-spacing: 0.08em;
  padding: 15px 18px;
  text-align: center;
  text-transform: uppercase;
	white-space: nowrap;
  width: calc(100% + 56px);
}

.about-unified-copy {
  margin: 0 auto;
  max-width: 1280px;
	padding: 0 20px;
}

.about-unified-copy h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.5rem, 4vw, 4.8rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.98;
  margin: 0 0 34px;
}

.about-unified-copy > p {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.78;
  margin: 0 auto 20px;
  max-width: 820px;
}

.about-strengths {
  border-top: 1px solid var(--ash);
  display: grid;
  grid-template-columns: 1fr 1fr;
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  text-align: left;
}

.about-strengths li {
  border-bottom: 1px solid var(--ash);
  color: var(--ink);
  font-size: 13px;
  line-height: 1.55;
  padding: 20px 24px;
}

.about-strengths li:nth-child(odd) {
  border-right: 1px solid var(--ash);
}

.leadership-triptych {
  background: var(--ash);
  display: grid;
  gap: 1px;
  grid-template-columns: 1fr 0.82fr 1fr;
  margin-top: 58px;
  text-align: left;
}

.leadership-triptych .about-photo-panel {
  height: 100%;
  margin: 0;
  max-width: none;
  min-height: 600px;
  padding: 24px 18px 0;
  width: 100%;
}

.leadership-profile {
  display: flex;
  flex-direction: column;
  min-height: 520px;
  padding: clamp(34px, 5vw, 58px);
}

.leadership-profile .profile-index {
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  font-weight: 650;
  letter-spacing: 0.12em;
  margin: 0 0 70px;
  text-transform: uppercase;
}

.leadership-profile h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem, 4vw, 4.5rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.98;
  margin: 0 0 30px;
}

.leadership-profile > p:not(.profile-index) {
  font-size: 13px;
  line-height: 1.75;
  margin: 0;
}

.massud-profile {
  background: #173a63;
  color: white;
}

.massud-profile .profile-index,
.massud-profile > p:not(.profile-index) {
  color: rgba(255,255,255,0.76);
}

.jessie-profile {
  background: #fbf7ed;
  border-top: 4px solid #b58a3a;
  color: var(--ink);
}

.jessie-profile .profile-index {
  color: #8d6b2e;
}

.jessie-profile > p:not(.profile-index) {
  color: var(--muted);
}

.speciality-map {
  border-top: 1px solid rgba(255,255,255,0.3);
  list-style: none;
  margin: 38px 0 34px;
  padding: 0;
}

.speciality-map li {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,0.3);
  display: grid;
  font-size: 12px;
  gap: 18px;
  grid-template-columns: 1fr auto 1fr;
  padding: 16px 0;
}

.speciality-map i {
  color: rgba(255,255,255,0.55);
  font-style: normal;
}

.speciality-map strong {
  color: white;
  text-align: right;
}

.jessie-skill-list {
  border-top: 1px solid rgba(181,138,58,0.45);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 38px 0 34px;
  padding: 0;
}

.jessie-skill-list li {
  border-bottom: 1px solid rgba(181,138,58,0.45);
  color: #745720;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 17px 10px;
  text-align: center;
  text-transform: uppercase;
}

.jessie-skill-list li + li {
  border-left: 1px solid rgba(181,138,58,0.45);
}

.leadership-profile .profile-credentials {
  border-top: 1px solid currentColor;
  margin-top: auto;
  padding-top: 28px;
}

.massud-profile .profile-credentials {
  border-color: rgba(255,255,255,0.3);
}

.jessie-profile .profile-credentials {
  border-color: rgba(181,138,58,0.45);
}

.profile-social-link {
  align-items: center;
  display: inline-flex;
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  font-weight: 700;
  gap: 8px;
  letter-spacing: 0.1em;
  margin-top: 20px;
  text-transform: uppercase;
}

.massud-profile .profile-social-link {
  color: rgba(255,255,255,0.82);
}

.jessie-profile .profile-social-link {
  color: var(--gold);
}

@media (max-width: 860px) {
  .leadership-triptych { grid-template-columns: 1fr; }
  .leadership-profile { min-height: auto; }
  .leadership-profile .profile-credentials { margin-top: 56px; }
	.leadership-triptych .about-photo-panel { min-height: 560px; }
}

.support-network {
  background: var(--paper);
}

.support-network-heading {
  align-items: end;
  display: grid;
  gap: 26px 7vw;
  grid-template-columns: 0.7fr 1.65fr;
  margin-bottom: 64px;
}

.support-network-heading .eyebrow {
  grid-row: 1 / span 2;
}

.support-network-heading h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.9rem, 5vw, 5.9rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.98;
  margin: 0;
  max-width: 1060px;
}

.support-network-heading > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
  max-width: 820px;
}

.support-network-visual {
  background: var(--ink);
  margin: 0;
  overflow: hidden;
  position: relative;
}

.support-network-visual img {
  aspect-ratio: 3 / 1;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.support-network-visual figcaption {
  background: rgba(20,20,22,0.88);
  bottom: 0;
  color: rgba(255,255,255,0.8);
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  left: 0;
  letter-spacing: 0.1em;
  padding: 16px 22px;
  position: absolute;
  text-transform: uppercase;
}

.support-network-capabilities {
  border-bottom: 1px solid var(--ash);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.support-network-capabilities article {
  border-right: 1px solid var(--ash);
  min-height: 190px;
  padding: 30px 26px 34px 0;
}

.support-network-capabilities article + article {
  padding-left: 26px;
}

.support-network-capabilities article:last-child {
  border-right: 0;
}

.support-network-capabilities span {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
}

.support-network-capabilities h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.08;
  margin: 48px 0 0;
}

.support-network-disclosure {
  align-items: start;
  background: var(--white);
  border-left: 4px solid var(--maroon);
  display: grid;
  gap: 36px;
  grid-template-columns: 220px 1fr;
  margin-top: 44px;
  padding: 28px 32px;
}

.support-network-disclosure strong {
  color: var(--ink);
  font-size: 12px;
}

.support-network-disclosure p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 980px) {
  .support-network-heading { grid-template-columns: 1fr; }
  .support-network-heading .eyebrow { grid-row: auto; }
  .support-network-capabilities { grid-template-columns: 1fr 1fr; }
  .support-network-capabilities article:nth-child(2) { border-right: 0; }
  .support-network-capabilities article:nth-child(-n + 2) { border-bottom: 1px solid var(--ash); }
}

@media (max-width: 700px) {
  .support-network-visual img { aspect-ratio: 4 / 3; }
  .support-network-visual figcaption { position: static; }
  .support-network-capabilities { grid-template-columns: 1fr; }
  .support-network-capabilities article,
  .support-network-capabilities article + article,
  .support-network-capabilities article:nth-child(2) {
    border-bottom: 1px solid var(--ash);
    border-right: 0;
    min-height: 150px;
    padding: 26px 0 30px;
  }
  .support-network-capabilities article:last-child { border-bottom: 0; }
  .support-network-capabilities h3 { margin-top: 32px; }
  .support-network-disclosure { gap: 16px; grid-template-columns: 1fr; padding: 24px 22px; }
}

.leader-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: 1fr 1fr;
}

.leader-card {
  min-height: 630px;
  padding: clamp(34px, 5vw, 68px);
}

.massud-card {
  background: var(--maroon);
  color: white;
}

.jessie-card {
  background: var(--paper);
  color: var(--ink);
}

.leader-meta {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.leader-meta > span {
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  display: flex;
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.leader-meta small {
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.leader-card h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.6rem, 4vw, 5rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.98;
  margin: 110px 0 28px;
}

.leader-intro {
  font-size: 16px;
  line-height: 1.7;
  max-width: 580px;
}

.massud-card .leader-intro {
  color: rgba(255,255,255,0.8);
}

.jessie-card .leader-intro {
  color: var(--muted);
}

.leader-card ul {
  border-top: 1px solid currentColor;
  list-style: none;
  margin: 52px 0 0;
  padding: 0;
}

.leader-card li {
  border-bottom: 1px solid currentColor;
  font-size: 12px;
  line-height: 1.55;
  padding: 16px 0;
}

.massud-card ul {
  border-color: rgba(255,255,255,0.3);
}

.massud-card li {
  border-color: rgba(255,255,255,0.3);
}

.jessie-card ul,
.jessie-card li {
  border-color: var(--ash);
}

.process {
  background: var(--paper);
}

.compact-heading h2 {
  max-width: 900px;
}

.process-list {
  border-top: 1px solid var(--ash);
  list-style: none;
  margin: 76px 0 0;
  padding: 0;
}

.process-list li {
  align-items: start;
  border-bottom: 1px solid var(--ash);
  display: grid;
  gap: 30px;
  grid-template-columns: 8vw minmax(200px, 1fr) 1.4fr;
  padding: 32px 0;
}

.process-list span {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
}

.process-list h3 {
  font-size: 17px;
  margin: 0;
}

.process-list p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
  max-width: 640px;
}

.fees {
  background: var(--white);
}

.fees-head {
  align-items: end;
  display: grid;
  gap: 10vw;
  grid-template-columns: 1.5fr 1fr;
  margin-bottom: 76px;
}

.fees-head > p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}

.fee-list {
  border-top: 1px solid var(--ash);
}

.fee-list article {
  align-items: start;
  border-bottom: 1px solid var(--ash);
  display: grid;
  gap: 30px;
  grid-template-columns: 1.2fr 0.8fr 1.3fr;
  padding: 27px 0;
}

.fee-list h3,
.fee-list strong,
.fee-list p {
  font-size: 13px;
  margin: 0;
}

.fee-list strong {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px;
}

.fee-list p {
  color: var(--muted);
  line-height: 1.65;
}

.fee-note {
  background: var(--paper);
  display: grid;
  gap: 36px;
  grid-template-columns: 180px 1fr;
  margin-top: 42px;
  padding: 28px 32px;
}

.fee-note span {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.fee-note p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.65;
  margin: 0;
}

.partner-section {
  background: var(--maroon-dark);
  color: white;
  display: grid;
  gap: 10vw;
  grid-template-columns: 1.25fr 1fr;
}

.partner-copy p {
  color: rgba(255,255,255,0.72);
  font-size: 14px;
  line-height: 1.75;
  margin: 0 0 22px;
}

.light-link {
  border-color: rgba(255,255,255,0.35);
  display: inline-block;
  margin-top: 26px;
}

.light-link span {
  color: white;
}

.contact {
  background: var(--paper);
  display: grid;
  gap: 9vw;
  grid-template-columns: 1fr 1fr;
}

.contact-intro > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
  margin: 38px 0 0;
  max-width: 650px;
}

.direct-contact {
  border-top: 1px solid var(--ash);
  display: grid;
  gap: 14px;
  margin-top: 52px;
  padding-top: 26px;
}

.direct-contact a {
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px;
}

.direct-contact address {
  color: var(--muted);
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px;
  font-style: normal;
  line-height: 1.65;
}

.contact-form {
  background: var(--white);
  border-top: 4px solid var(--maroon);
  display: grid;
  gap: 22px;
  padding: clamp(28px, 4vw, 52px);
}

.field-row {
  display: grid;
  gap: 18px;
  grid-template-columns: 1fr 1fr;
}

.contact-form label {
  display: grid;
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  gap: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  background: transparent;
  border: 1px solid var(--ash);
  border-radius: 0;
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  letter-spacing: 0;
  padding: 14px;
  text-transform: none;
  width: 100%;
}

.contact-form textarea {
  min-height: 145px;
  resize: vertical;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: var(--maroon);
  outline: 2px solid rgba(139,13,32,0.12);
}

.form-button {
  border: 0;
  cursor: pointer;
  width: fit-content;
}

.contact-form > small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.6;
}

.contact-form .person-confirmation {
  align-items: start;
  display: flex;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1.55;
  text-transform: none;
}

.contact-form .person-confirmation input {
  flex: 0 0 auto;
  margin: 2px 9px 0 0;
  width: auto;
}

.form-privacy-notice {
  border-left: 2px solid var(--maroon);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.65;
  margin: 0;
  padding: 2px 0 2px 15px;
}

.person-confirmation a {
  color: var(--maroon);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-form .human-check input {
  max-width: 180px;
}

.form-status {
  border-left: 4px solid var(--maroon);
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
  padding: 14px 16px;
}

.form-status-success {
  background: #edf5ef;
  border-left-color: #2f6e43;
  color: #245333;
}

.form-status-error {
  background: #f8eaed;
  color: var(--maroon-dark);
}

.form-button:disabled {
  cursor: wait;
  opacity: 0.68;
}

.form-honeypot {
  height: 1px;
  left: -10000px;
  overflow: hidden;
  position: absolute;
  top: auto;
  width: 1px;
}

.notice {
  background: var(--white);
  border-top: 1px solid var(--ash);
  display: grid;
  gap: 10vw;
  grid-template-columns: 0.7fr 2fr;
}

.notice h2 {
  font-size: clamp(2.2rem, 3.6vw, 4.2rem);
  max-width: 900px;
}

.notice div p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.75;
  margin: 30px 0 0;
  max-width: 940px;
}

.site-footer {
  align-items: center;
  background: var(--ink);
  color: white;
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr auto 1fr;
  padding: 34px 4.2vw;
}

.footer-brand {
  justify-self: start;
}

.footer-mark {
  filter: brightness(0) invert(1);
}

.site-footer > p {
  color: rgba(255,255,255,0.62);
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  letter-spacing: 0.1em;
  margin: 0;
  text-align: center;
  text-transform: uppercase;
}

.site-footer > small {
  color: rgba(255,255,255,0.48);
  font-size: 9px;
  justify-self: end;
}

.footer-links {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  justify-content: center;
}

.footer-links a {
  color: rgba(255,255,255,0.66);
  font-family: var(--font-geist-mono), monospace;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.footer-links a:hover,
.footer-links a:focus-visible {
  color: white;
}

.policy-hero {
  background: var(--white);
  border-bottom: 1px solid var(--ash);
}

.policy-hero h1 {
  font-size: clamp(4rem, 10vw, 8rem);
  margin: 34px 0;
  max-width: 980px;
}

.policy-intro {
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  line-height: 1.7;
  max-width: 820px;
}

.policy-date {
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  margin: 34px 0 0;
  text-transform: uppercase;
}

.policy-summary {
  background: var(--maroon);
  color: white;
  display: grid;
  gap: 36px;
  grid-template-columns: minmax(180px, 0.6fr) 2fr;
  padding-bottom: 48px;
  padding-top: 48px;
}

.policy-summary strong {
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.policy-summary p {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.5rem, 2.8vw, 2.6rem);
  line-height: 1.18;
  margin: 0;
}

.policy-content {
  background: var(--white);
  margin: 0;
  max-width: none;
}

.policy-content > section,
.policy-content.content-entry > * {
  border-top: 1px solid var(--ash);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(250px, 0.8fr) minmax(0, 2fr);
  margin: 0;
  padding: 54px 0;
}

.policy-content > section:first-child {
  border-top: 0;
  padding-top: 0;
}

.policy-content h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 3vw, 3rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin: 0;
}

.policy-content section > p,
.policy-content section > ul,
.policy-content section > address {
  grid-column: 2;
}

.policy-content section > h2 + p,
.policy-content section > h2 + ul,
.policy-content section > h2 + address {
  grid-row: 1;
}

.policy-content p,
.policy-content li,
.policy-contact {
  color: var(--muted);
  font-size: 14px;
  font-style: normal;
  line-height: 1.75;
}

.policy-content p,
.policy-content ul {
  margin-bottom: 0;
  margin-top: 0;
}

.policy-content ul {
  padding-left: 22px;
}

.policy-content a {
  color: var(--maroon);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.policy-advice-boundary {
  background: var(--paper);
  border: 1px solid var(--maroon);
  padding-left: 32px !important;
  padding-right: 32px !important;
}

:focus-visible {
  outline: 2px solid var(--maroon);
  outline-offset: 4px;
}

@media (max-width: 980px) {
  nav a:not(.nav-cta) { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero-content { padding: 12vh 7vw 7vh; }
  .hero-panel { margin: 0 7vw 7vh; max-width: 520px; }
  .section-heading { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .service-card,
  .service-card + .service-card { border-bottom: 1px solid var(--ash); border-right: 1px solid var(--ash); padding: 30px; }
  .service-card:nth-child(2n) { border-right: 0; }
  .service-card:nth-last-child(-n + 2) { border-bottom: 0; }
  .positioning,
  .partner-section,
  .contact { gap: 70px; grid-template-columns: 1fr; }
  .fees-head { gap: 50px; grid-template-columns: 1fr; }
  .notice { gap: 40px; grid-template-columns: 1fr; }
  .about-photo-panel { min-height: 540px; }
  .site-footer { grid-template-columns: 1fr auto; }
  .footer-links { justify-content: end; }
  .policy-content > section,
  .policy-content.content-entry > * { grid-template-columns: 1fr; }
  .policy-content section > p,
  .policy-content section > ul,
  .policy-content section > address { grid-column: 1; }
  .policy-content section > h2 + p,
  .policy-content section > h2 + ul,
  .policy-content section > h2 + address { grid-row: auto; }
}

@media (max-width: 700px) {
  .site-header { min-height: 74px; padding: 0 20px; }
  .brand-mark { height: 29px; width: 29px; }
  .brand strong { font-size: 12px; }
  .brand small { font-size: 8px; }
  .nav-cta { padding: 10px 12px; }
  .hero { min-height: auto; }
  .hero-content { padding: 80px 22px 54px; }
  h1 { font-size: clamp(3.35rem, 17vw, 5.6rem); }
  .hero-panel { margin: 0 22px 46px; min-height: 260px; padding: 28px; }
  .advice-boundary-strip { align-items: start; grid-template-columns: 1fr; padding: 20px 22px; }
  .section-shell { padding: 88px 22px; }
  .services-grid { grid-template-columns: 1fr; }
  .service-card,
  .service-card + .service-card,
  .service-card:nth-last-child(-n + 2) { border-bottom: 1px solid var(--ash); border-right: 0; min-height: 330px; padding: 28px 0; }
  .service-card:last-child { border-bottom: 0; }
  .service-card h3 { margin-top: 45px; }
  .about-photo-panel { min-height: 410px; padding: 22px 14px 0; }
  .about-photo-panel figcaption { width: calc(100% + 28px); }
	.about-unified-copy { padding: 0; }
  .about-strengths { grid-template-columns: 1fr; }
  .about-strengths li:nth-child(odd) { border-right: 0; }
  .leader-card { min-height: auto; padding: 44px 28px; }
  .leader-card h3 { margin-top: 82px; }
  .process-list li { gap: 16px; grid-template-columns: 36px 1fr; }
  .process-list p { grid-column: 2; }
  .fee-list article { gap: 12px; grid-template-columns: 1fr; padding: 24px 0; }
  .fee-note { gap: 18px; grid-template-columns: 1fr; }
  .field-row { grid-template-columns: 1fr; }
  .site-footer { align-items: start; grid-template-columns: 1fr; padding: 34px 22px; }
  .footer-links { justify-content: start; }
  .site-footer > small { justify-self: start; }
  .policy-summary { grid-template-columns: 1fr; }
  .policy-content > section { padding: 38px 0; }
  .policy-advice-boundary { padding: 28px 22px !important; }
}

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


/* WordPress integration */
body.admin-bar .site-header {
  top: 32px;
}

.content-shell {
  background: var(--white);
  min-height: calc(100vh - 86px);
  padding: 100px max(8vw, 24px);
}

.content-entry {
  margin: 0 auto;
  max-width: 920px;
}

.content-entry > header h1,
.error-page h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 7vw, 6.5rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.95;
  margin: 0 0 48px;
}

.entry-content {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.75;
}

.entry-content a {
  color: var(--maroon);
  text-decoration: underline;
  text-underline-offset: 3px;
}

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

.error-page > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
  margin: 0 0 34px;
  max-width: 680px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }
}

@media screen and (max-width: 600px) {
  body.admin-bar .site-header {
    top: 0;
  }
}

/* Massud-led director support */
.director-support {
  background: var(--ink);
  color: var(--white);
}

.director-support-heading {
  display: grid;
  gap: 28px 8vw;
  grid-template-columns: 0.72fr 2fr;
  margin-bottom: 72px;
}

.director-support-heading .eyebrow {
  grid-row: 1 / span 2;
}

.director-support-heading h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.7rem, 5vw, 5.8rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.98;
  margin: 0;
  max-width: 960px;
}

.director-support-heading > p:not(.eyebrow) {
  color: rgba(255,255,255,0.68);
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
  max-width: 820px;
}

.director-support-grid {
  border-top: 1px solid rgba(255,255,255,0.2);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.director-support-grid article {
  border-bottom: 1px solid rgba(255,255,255,0.2);
  padding: 34px 42px 42px 0;
}

.director-support-grid article:nth-child(odd) {
  border-right: 1px solid rgba(255,255,255,0.2);
}

.director-support-grid article:nth-child(even) {
  padding-left: 42px;
  padding-right: 0;
}

.director-support-grid span {
  color: #d37080;
  font-family: monospace;
  font-size: 10px;
}

.director-support-grid h3 {
  font-size: 18px;
  font-weight: 600;
  margin: 42px 0 16px;
}

.director-support-grid p {
  color: rgba(255,255,255,0.62);
  font-size: 13px;
  line-height: 1.72;
  margin: 0;
  max-width: 620px;
}

.director-boundary {
  align-items: center;
  background: var(--paper);
  color: var(--ink);
  display: grid;
  gap: 42px;
  grid-template-columns: 1fr auto;
  margin-top: 54px;
  padding: 32px 36px;
}

.director-boundary p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
  margin: 0;
}

.director-boundary strong {
  color: var(--maroon);
}

/* Insights and blog */
.journal-shell,
.article-shell {
  background: var(--white);
  min-height: calc(100vh - 86px);
  padding: 110px 8vw 130px;
}

.journal-header,
.article-header {
  margin: 0 0 78px;
  max-width: 980px;
}

.journal-header h1,
.article-header h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.6rem, 7vw, 7.5rem);
  font-weight: 400;
  letter-spacing: -0.052em;
  line-height: 0.93;
  margin: 0;
}

.journal-header > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
  margin: 34px 0 0;
  max-width: 760px;
}

.compact-journal-header {
  margin-bottom: 58px;
}

.compact-journal-header h1 {
  font-size: clamp(3rem, 6vw, 6rem);
}

.archive-description {
  color: var(--muted);
  line-height: 1.7;
  margin-top: 28px;
}

.post-grid {
  border-top: 1px solid var(--ash);
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.post-card {
  border-bottom: 1px solid var(--ash);
  min-width: 0;
  padding: 42px 42px 54px 0;
}

.post-card:nth-child(odd) {
  border-right: 1px solid var(--ash);
}

.post-card:nth-child(even) {
  padding-left: 42px;
  padding-right: 0;
}

.post-card-image {
  align-items: center;
  aspect-ratio: 16 / 9;
  background: var(--paper);
  display: flex;
  justify-content: center;
  margin-bottom: 34px;
  overflow: hidden;
}

.post-card-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.post-card-image span {
  color: var(--maroon);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 54px;
}

.post-meta {
  color: var(--maroon);
  font-family: monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  line-height: 1.6;
  margin: 0 0 18px;
  text-transform: uppercase;
}

.post-meta a {
  color: inherit;
}

.post-card h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 3vw, 3.7rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.02;
  margin: 0 0 24px;
}

.post-card-copy > p:not(.post-meta) {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
  margin: 0 0 28px;
}

.compact-post-grid .post-card {
  min-height: 310px;
}

.navigation.pagination {
  border-top: 1px solid var(--ash);
  margin-top: 54px;
  padding-top: 30px;
}

.nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.page-numbers {
  border: 1px solid var(--ash);
  font-size: 12px;
  padding: 10px 13px;
}

.page-numbers.current {
  background: var(--maroon);
  border-color: var(--maroon);
  color: white;
}

.empty-journal {
  color: var(--muted);
  font-size: 17px;
}

.article-entry {
  margin: 0 auto;
  max-width: 980px;
}

.article-header {
  margin-left: auto;
  margin-right: auto;
}

.article-header .post-meta {
  margin-top: 30px;
}

.article-featured-image {
  margin: 0 auto 70px;
  max-width: 1180px;
}

.article-featured-image img {
  display: block;
  height: auto;
  width: 100%;
}

.article-content {
  font-size: 17px;
  margin: 0 auto;
  max-width: 780px;
}

.article-content h2,
.article-content h3 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.08;
  margin: 2em 0 0.6em;
}

.article-content h2 {
  font-size: clamp(2rem, 4vw, 3.5rem);
}

.article-content h3 {
  font-size: clamp(1.6rem, 3vw, 2.5rem);
}

.article-content blockquote {
  border-left: 4px solid var(--maroon);
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45em;
  margin: 2em 0;
  padding: 0.4em 0 0.4em 1.2em;
}

.article-footer,
.article-navigation,
.comments-area {
  border-top: 1px solid var(--ash);
  margin: 64px auto 0;
  max-width: 780px;
  padding-top: 24px;
}

.article-footer {
  color: var(--maroon);
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 22px;
}

.article-navigation {
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr 1fr;
}

.article-navigation div:last-child {
  text-align: right;
}

.article-navigation a {
  color: var(--maroon);
  font-size: 13px;
  line-height: 1.5;
}

.comments-area h2,
.comment-reply-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  font-weight: 400;
}

.comment-list {
  margin: 30px 0;
  padding-left: 24px;
}

.comment-list li {
  line-height: 1.7;
  margin-bottom: 28px;
}

.comment-form label {
  display: block;
  font-size: 12px;
  margin-bottom: 8px;
}

.comment-form input,
.comment-form textarea,
.search-form input {
  border: 1px solid var(--ash);
  font: inherit;
  padding: 13px;
  width: 100%;
}

.comment-form .submit,
.search-form .search-submit {
  background: var(--maroon);
  border: 0;
  color: white;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 15px 20px;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .director-support-heading { grid-template-columns: 1fr; }
  .director-support-heading .eyebrow { grid-row: auto; }
  .director-boundary { align-items: start; grid-template-columns: 1fr; }
  .post-grid { grid-template-columns: 1fr; }
  .post-card,
  .post-card:nth-child(even) { border-right: 0; padding-left: 0; padding-right: 0; }
}

@media (max-width: 700px) {
  .director-support-grid { grid-template-columns: 1fr; }
  .director-support-grid article,
  .director-support-grid article:nth-child(even) { border-right: 0; padding: 30px 0 36px; }
  .director-boundary { padding: 26px 22px; }
  .journal-shell,
  .article-shell { padding: 88px 22px 100px; }
  .article-navigation { grid-template-columns: 1fr; }
  .article-navigation div:last-child { text-align: left; }
}

/* Eight-service grid border correction */
.services-grid-six .service-card:nth-last-child(-n + 3) {
  border-bottom: 1px solid var(--ash);
}

.services-grid-six .service-card:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.services-grid-six .service-card:last-child {
  border-right: 0;
}

@media (max-width: 980px) {
  .services-grid-six .service-card:nth-last-child(-n + 2) {
    border-bottom: 0;
  }
}

@media (max-width: 700px) {
  .services-grid-six .service-card:nth-last-child(-n + 2) {
    border-bottom: 1px solid var(--ash);
  }

  .services-grid-six .service-card:last-child {
    border-bottom: 0;
  }
}

/* Independent forensic engineering */
.forensic-engineering {
  background: var(--paper);
}

.forensic-engineering-head {
  display: grid;
  gap: 28px 8vw;
  grid-template-columns: 0.72fr 2fr;
  margin-bottom: 72px;
}

.forensic-engineering-head .eyebrow {
  grid-row: 1 / span 2;
}

.forensic-engineering-head h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.7rem, 5vw, 5.8rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.98;
  margin: 0;
  max-width: 980px;
}

.forensic-engineering-head > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
  max-width: 820px;
}

.engineering-grid {
  border-top: 1px solid var(--ash);
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.engineering-grid article {
  border-bottom: 1px solid var(--ash);
  padding: 38px 46px 48px 0;
}

.engineering-grid article + article {
  border-left: 1px solid var(--ash);
  padding-left: 46px;
  padding-right: 0;
}

.engineering-grid span,
.engineering-capacity span {
  color: var(--maroon);
  font-family: monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.engineering-grid h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 3vw, 3.6rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.02;
  margin: 48px 0 24px;
}

.engineering-grid p,
.engineering-capacity p,
.engineering-boundary {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.75;
  margin: 0;
}

.engineering-capacity {
  align-items: center;
  background: var(--maroon);
  color: white;
  display: grid;
  gap: 60px;
  grid-template-columns: 0.7fr 1.3fr;
  margin-top: 48px;
  padding: 38px 42px;
}

.engineering-capacity span {
  color: rgba(255,255,255,0.7);
  display: block;
  margin-bottom: 12px;
}

.engineering-capacity strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 4vw, 4rem);
  font-weight: 400;
}

.engineering-capacity p {
  color: rgba(255,255,255,0.78);
}

.engineering-boundary {
  border-left: 4px solid var(--maroon);
  margin-top: 30px;
  padding: 4px 0 4px 22px;
}

.engineering-boundary strong {
  color: var(--ink);
}

@media (max-width: 980px) {
  .forensic-engineering-head { grid-template-columns: 1fr; }
  .forensic-engineering-head .eyebrow { grid-row: auto; }
}

@media (max-width: 700px) {
  .engineering-grid,
  .engineering-capacity { grid-template-columns: 1fr; }
  .engineering-grid article,
  .engineering-grid article + article { border-left: 0; padding: 32px 0 38px; }
  .engineering-capacity { gap: 28px; padding: 30px 24px; }
}

/* =====================================================================
   Connect Australia 2.0 — multi-page, mobile-first layer
   ---------------------------------------------------------------------
   Everything below is authored mobile first: the base rules describe the
   phone, and min-width queries add the tablet and desktop treatments.
   It is appended after the original sheet so it wins on equal specificity.
   ===================================================================== */

:root {
  /* The original sheet references this variable but never defines it, so
     eyebrows and captions fell back to the browser's default monospace.  */
  --font-geist-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
    "Liberation Mono", "Courier New", monospace;
  --header-height: 74px;
  --shell-gutter: 22px;
}

@media (min-width: 701px) {
  :root { --header-height: 86px; --shell-gutter: max(8vw, 24px); }
}

img { max-width: 100%; }

/* ---------------------------------------------------------------------
   Accessibility utilities
   ------------------------------------------------------------------ */

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

.skip-link:focus,
.screen-reader-text:focus {
  background: var(--white);
  border: 2px solid var(--maroon);
  clip: auto;
  clip-path: none;
  color: var(--maroon);
  font-size: 14px;
  font-weight: 700;
  height: auto;
  left: 12px;
  margin: 0;
  padding: 14px 20px;
  top: 12px;
  width: auto;
  z-index: 200;
}

/* ---------------------------------------------------------------------
   Header and navigation — panel on mobile, bar on desktop
   ------------------------------------------------------------------ */

.site-header {
  gap: 14px;
  padding: 0 var(--shell-gutter);
}

body.nav-is-open { overflow: hidden; }

.nav-toggle {
  align-items: center;
  background: transparent;
  border: 1px solid var(--ash);
  color: var(--ink);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  gap: 9px;
  letter-spacing: 0.14em;
  margin-left: auto;
  min-height: 44px;
  padding: 0 14px;
  text-transform: uppercase;
}

.nav-toggle-icon {
  display: grid;
  gap: 4px;
  width: 17px;
}

.nav-toggle-icon span {
  background: var(--maroon);
  display: block;
  height: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
  width: 100%;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.site-nav {
  background: var(--white);
  border-bottom: 1px solid var(--ash);
  display: block;
  left: 0;
  max-height: calc(100dvh - var(--header-height));
  overflow-y: auto;
  padding: 8px var(--shell-gutter) 26px;
  position: absolute;
  top: 100%;
  visibility: hidden;
  width: 100%;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}

body.nav-is-open .site-nav {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}

.site-nav .menu {
  display: block;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-nav .menu-item {
  border-bottom: 1px solid var(--ash);
  position: relative;
}

.site-nav .menu-item > a {
  display: block;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 15px 44px 15px 0;
}

.site-nav .sub-menu {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0 0 10px 14px;
}

.site-nav .menu-item.submenu-open > .sub-menu { display: block; }

.site-nav .sub-menu .menu-item { border-bottom: 0; }

.site-nav .sub-menu a {
  color: var(--muted);
  display: block;
  font-size: 14px;
  font-weight: 500;
  padding: 11px 0;
}

.site-nav .sub-menu a:hover,
.site-nav .sub-menu a:focus-visible { color: var(--maroon); }

.submenu-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--maroon);
  cursor: pointer;
  display: flex;
  font-size: 20px;
  height: 46px;
  justify-content: center;
  position: absolute;
  right: 0;
  top: 2px;
  width: 44px;
}

.submenu-open > .submenu-toggle span[aria-hidden] { transform: rotate(45deg); }

.site-nav .nav-cta {
  display: block;
  margin-top: 22px;
  text-align: center;
}

@media (min-width: 981px) {
  .nav-toggle { display: none; }

  .site-nav {
    align-items: center;
    background: transparent;
    border-bottom: 0;
    display: flex;
    gap: 26px;
    margin-left: auto;
    max-height: none;
    opacity: 1;
    overflow: visible;
    padding: 0;
    position: static;
    transform: none;
    visibility: visible;
    width: auto;
  }

  .site-nav .menu {
    align-items: center;
    display: flex;
    gap: 26px;
  }

  .site-nav .menu-item { border-bottom: 0; }

  /* Overrides the original sheet, which hid every link below 980px. */
  .site-nav .menu-item > a {
    display: block;
    font-size: 12px;
    letter-spacing: 0.07em;
    padding: 32px 0;
    text-transform: none;
  }

  .site-nav .menu-item-has-children > a { padding-right: 16px; }

  .submenu-toggle {
    height: 100%;
    pointer-events: none;
    right: -2px;
    top: 0;
    width: 14px;
  }

  .submenu-toggle span[aria-hidden] { font-size: 11px; }

  .site-nav .sub-menu {
    background: var(--white);
    border: 1px solid var(--ash);
    border-top: 2px solid var(--maroon);
    display: block;
    left: -18px;
    min-width: 262px;
    opacity: 0;
    padding: 10px 0;
    position: absolute;
    top: 100%;
    transition: opacity 0.16s ease, visibility 0.16s;
    visibility: hidden;
    z-index: 30;
  }

  .site-nav .menu-item-has-children:hover > .sub-menu,
  .site-nav .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
  }

  .site-nav .sub-menu a { padding: 11px 20px; }
  .site-nav .sub-menu a:hover { background: var(--paper); }

  .site-nav .nav-cta { margin-top: 0; }
}

/* ---------------------------------------------------------------------
   Breadcrumbs
   ------------------------------------------------------------------ */

.breadcrumbs {
  display: block;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  margin: 0 0 30px;
  text-transform: uppercase;
}

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.breadcrumbs li { align-items: center; color: var(--muted); display: flex; gap: 8px; }
.breadcrumbs li + li::before { color: var(--ash); content: "/"; }
.breadcrumbs a { color: var(--maroon); }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs [aria-current] { color: var(--muted); }

/* ---------------------------------------------------------------------
   Page hero used by every interior page
   ------------------------------------------------------------------ */

.page-hero {
  background: var(--white);
  border-bottom: 1px solid var(--ash);
  padding: 40px var(--shell-gutter) 54px;
}

.page-hero-inner { margin: 0 auto; max-width: 1180px; }

.page-hero h1 {
  font-size: clamp(2.6rem, 10vw, 4rem);
  letter-spacing: -0.04em;
  line-height: 1.0;
  margin: 0 0 20px;
  max-width: 18ch;
}

.page-hero .page-hero-lead {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.65;
  margin: 0;
  max-width: 62ch;
}

.page-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

@media (min-width: 701px) {
  .page-hero { padding: 48px var(--shell-gutter) 72px; }
  .page-hero h1 { font-size: clamp(3rem, 6.4vw, 5.4rem); }
  .page-hero .page-hero-lead { font-size: 19px; }
}

/* ---------------------------------------------------------------------
   Interior content shell and block-editor output
   ------------------------------------------------------------------ */

.content-shell {
  min-height: 0;
  padding: 54px var(--shell-gutter) 72px;
}

@media (min-width: 701px) {
  .content-shell { padding: 80px var(--shell-gutter) 110px; }
}

.content-entry > header h1 { margin-bottom: 30px; }

.entry-content { font-size: 16.5px; }

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

.entry-content h2 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 5.4vw, 2.5rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin-top: 1.9em;
}

.entry-content h3 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.3rem, 4.4vw, 1.65rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  margin-top: 1.7em;
}

.entry-content h4 {
  color: var(--ink);
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  margin-top: 1.8em;
  text-transform: uppercase;
}

.entry-content ul,
.entry-content ol { padding-left: 20px; }
.entry-content li + li { margin-top: 0.5em; }
.entry-content li::marker { color: var(--maroon); }

.entry-content strong { color: var(--ink); }

.entry-content blockquote {
  border-left: 3px solid var(--maroon);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25em;
  line-height: 1.45;
  margin-left: 0;
  padding: 4px 0 4px 22px;
}

.entry-content figure { margin-left: 0; margin-right: 0; }

.entry-content table {
  border-collapse: collapse;
  font-size: 15px;
  width: 100%;
}

.entry-content th,
.entry-content td {
  border-bottom: 1px solid var(--ash);
  padding: 12px 14px 12px 0;
  text-align: left;
  vertical-align: top;
}

.entry-content th { color: var(--ink); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; }

/* Any table wide enough to overflow scrolls inside itself rather than
   pushing the page sideways on a phone. */
.entry-content .wp-block-table { overflow-x: auto; }

.entry-content .wp-block-separator {
  background: var(--ash);
  border: 0;
  height: 1px;
  margin: 2.4em 0;
  opacity: 1;
}

/* FAQ built from core Details blocks. */
.entry-content .wp-block-details {
  border-bottom: 1px solid var(--ash);
  padding: 4px 0;
}

.entry-content .wp-block-details summary {
  color: var(--ink);
  cursor: pointer;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15em;
  line-height: 1.35;
  list-style: none;
  padding: 18px 34px 18px 0;
  position: relative;
}

.entry-content .wp-block-details summary::-webkit-details-marker { display: none; }

.entry-content .wp-block-details summary::after {
  color: var(--maroon);
  content: "+";
  font-family: var(--font-geist-mono), monospace;
  font-size: 20px;
  position: absolute;
  right: 4px;
  top: 15px;
}

.entry-content .wp-block-details[open] summary::after { content: "–"; }
.entry-content .wp-block-details > *:not(summary) { margin-bottom: 18px; }

/* ---------------------------------------------------------------------
   Reusable page components
   ------------------------------------------------------------------ */

.section-band {
  background: var(--white);
  border-top: 1px solid var(--ash);
  padding: 54px var(--shell-gutter);
}

.section-band-inner { margin: 0 auto; max-width: 1180px; }

.section-band h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.9rem, 6vw, 2.7rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.1;
  margin: 0 0 14px;
  max-width: 22ch;
}

.section-band > .section-band-inner > p {
  color: var(--muted);
  line-height: 1.7;
  margin: 0 0 30px;
  max-width: 66ch;
}

@media (min-width: 701px) {
  .section-band { padding: 84px var(--shell-gutter); }
}

.card-grid {
  display: grid;
  gap: 1px;
  background: var(--ash);
  border: 1px solid var(--ash);
  grid-template-columns: 1fr;
}

.card-grid > * {
  background: var(--white);
  display: block;
  padding: 26px 22px 30px;
}

.card-grid a.card-item:hover,
.card-grid a.card-item:focus-visible { background: var(--paper); }

.card-item span.card-index {
  color: var(--maroon);
  display: block;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  margin-bottom: 16px;
}

.card-item h3 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 10px;
}

.card-item p {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
}

.card-item .card-more {
  color: var(--maroon);
  display: inline-block;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  margin-top: 16px;
  text-transform: uppercase;
}

@media (min-width: 701px) {
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .card-grid > * { padding: 34px 30px 38px; }
}

@media (min-width: 981px) {
  .card-grid-3 { grid-template-columns: repeat(3, 1fr); }
}

/* Call to action band */
.cta-band {
  background: var(--ink);
  color: var(--white);
  padding: 48px var(--shell-gutter);
}

.cta-band-inner {
  display: grid;
  gap: 24px;
  margin: 0 auto;
  max-width: 1180px;
}

.cta-band h2 {
  color: var(--white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 6vw, 2.6rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.1;
  margin: 0;
  max-width: 20ch;
}

.cta-band p {
  color: rgba(255, 253, 249, 0.76);
  line-height: 1.7;
  margin: 0;
  max-width: 58ch;
}

.cta-band .button-primary {
  background: var(--white);
  border-color: var(--white);
  color: var(--ink);
}

.cta-band .button-primary:hover,
.cta-band .button-primary:focus-visible {
  background: var(--maroon);
  border-color: var(--maroon);
  color: var(--white);
}

.cta-actions { display: flex; flex-wrap: wrap; gap: 14px; }

@media (min-width: 981px) {
  .cta-band { padding: 76px var(--shell-gutter); }
  .cta-band-inner { align-items: center; grid-template-columns: 1.2fr 1fr; gap: 46px; }
}

/* Related services */
.related-services { border-top: 1px solid var(--ash); margin-top: 54px; padding-top: 34px; }

.related-services h2 {
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.15em;
  margin: 0 0 20px;
  text-transform: uppercase;
}

.related-services ul { display: grid; gap: 1px; list-style: none; margin: 0; padding: 0; }

.related-services a {
  background: var(--white);
  border: 1px solid var(--ash);
  display: block;
  padding: 18px 20px;
}

.related-services a:hover,
.related-services a:focus-visible { background: var(--paper); }

.related-services strong {
  color: var(--ink);
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 400;
  letter-spacing: -0.015em;
}

.related-services span { color: var(--muted); display: block; font-size: 14px; line-height: 1.55; margin-top: 6px; }

@media (min-width: 701px) {
  .related-services ul { grid-template-columns: repeat(3, 1fr); }
}

/* At-a-glance strip on service pages */
.service-facts {
  border: 1px solid var(--ash);
  border-top: 3px solid var(--maroon);
  display: grid;
  gap: 1px;
  background: var(--ash);
  margin: 0 0 40px;
}

.service-facts div { background: var(--white); padding: 20px 22px; }

.service-facts dt {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  margin: 0 0 8px;
  text-transform: uppercase;
}

.service-facts dd { color: var(--ink); font-size: 15px; line-height: 1.6; margin: 0; }

@media (min-width: 701px) {
  .service-facts { grid-template-columns: repeat(3, 1fr); }
}

/* ---------------------------------------------------------------------
   Contact page
   ------------------------------------------------------------------ */

.contact-layout {
  display: grid;
  gap: 44px;
  margin: 0 auto;
  max-width: 1180px;
}

.contact-panel h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 5.6vw, 2.3rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  margin: 0 0 16px;
}

.contact-panel p { color: var(--muted); line-height: 1.7; }

.contact-detail-list { display: grid; gap: 18px; list-style: none; margin: 26px 0 0; padding: 0; }

.contact-detail-list li { border-top: 1px solid var(--ash); padding-top: 16px; }

.contact-detail-list strong {
  color: var(--maroon);
  display: block;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  margin-bottom: 7px;
  text-transform: uppercase;
}

.contact-detail-list a { color: var(--ink); font-size: 17px; }
.contact-detail-list a:hover { color: var(--maroon); }

@media (min-width: 981px) {
  .contact-layout { grid-template-columns: 0.85fr 1.15fr; gap: 70px; }
}

/* ---------------------------------------------------------------------
   Enquiry form — mobile corrections
   ------------------------------------------------------------------ */

.contact-form label > span {
  display: block;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-form label { font-size: inherit; gap: 9px; letter-spacing: normal; text-transform: none; }

.contact-form abbr { border: 0; color: var(--maroon); text-decoration: none; }

/* 16px is the threshold below which iOS Safari zooms the page on focus. */
.contact-form input,
.contact-form select,
.contact-form textarea {
  font-size: 16px;
  min-height: 48px;
  padding: 13px 14px;
}

.contact-form textarea { min-height: 150px; }

.contact-form input[aria-invalid="true"],
.contact-form select[aria-invalid="true"] { border-color: var(--maroon); border-width: 2px; }

.contact-form .form-button {
  min-height: 52px;
  width: 100%;
}

.person-confirmation {
  align-items: start;
  display: grid;
  gap: 12px;
  grid-template-columns: 22px 1fr;
}

.person-confirmation input[type="checkbox"] {
  height: 22px;
  margin: 0;
  min-height: 0;
  width: 22px;
}

.person-confirmation > span {
  color: var(--muted);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  letter-spacing: normal;
  line-height: 1.55;
  text-transform: none;
}

.person-confirmation a { color: var(--maroon); text-decoration: underline; }

.human-check input { max-width: 140px; }

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

.form-status { font-size: 15px; line-height: 1.6; padding: 16px 18px; }

@media (min-width: 701px) {
  .contact-form .form-button { width: fit-content; }
}

/* ---------------------------------------------------------------------
   Insights: article furniture
   ------------------------------------------------------------------ */

.journal-shell,
.article-shell { padding: 44px var(--shell-gutter) 72px; }

@media (min-width: 701px) {
  .journal-shell,
  .article-shell { padding: 72px var(--shell-gutter) 110px; }
}

.article-meta-list {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  gap: 8px 16px;
  letter-spacing: 0.12em;
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  text-transform: uppercase;
}

.article-share {
  align-items: center;
  border-top: 1px solid var(--ash);
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 40px;
  padding-top: 22px;
}

.article-share span {
  color: var(--muted);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.article-share a {
  border: 1px solid var(--ash);
  color: var(--ink);
  font-size: 13px;
  min-height: 44px;
  padding: 11px 16px;
  display: inline-flex;
  align-items: center;
}

.article-share a:hover,
.article-share a:focus-visible { background: var(--paper); border-color: var(--maroon); color: var(--maroon); }

.author-box {
  background: var(--paper);
  border-top: 3px solid var(--maroon);
  margin-top: 46px;
  padding: 26px 24px;
}

.author-box h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.3rem;
  font-weight: 400;
  margin: 0 0 10px;
}

.author-box p { color: var(--muted); font-size: 15px; line-height: 1.65; margin: 0; }

.related-posts { border-top: 1px solid var(--ash); margin-top: 50px; padding-top: 34px; }

.related-posts h2 {
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  margin: 0 0 20px;
  text-transform: uppercase;
}

.related-posts ul { display: grid; gap: 20px; list-style: none; margin: 0; padding: 0; }

.related-posts a {
  color: var(--ink);
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.2rem;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.related-posts a:hover { color: var(--maroon); }
.related-posts time { color: var(--muted); display: block; font-size: 13px; margin-top: 7px; }

@media (min-width: 701px) {
  .related-posts ul { grid-template-columns: repeat(3, 1fr); gap: 30px; }
}

/* Sitemap page */
.sitemap-columns { display: grid; gap: 34px; }

.sitemap-columns h2 {
  border-bottom: 1px solid var(--ash);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  margin: 0 0 16px;
  padding-bottom: 12px;
  text-transform: uppercase;
}

.sitemap-columns ul { list-style: none; margin: 0; padding: 0; }
.sitemap-columns li + li { margin-top: 10px; }
.sitemap-columns a { color: var(--maroon); font-size: 15px; }
.sitemap-columns a:hover { text-decoration: underline; }

@media (min-width: 701px) {
  .sitemap-columns { grid-template-columns: repeat(2, 1fr); gap: 44px; }
}

@media (min-width: 981px) {
  .sitemap-columns { grid-template-columns: repeat(3, 1fr); }
}

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

.site-footer {
  display: block;
  padding: 44px var(--shell-gutter) 30px;
}

.footer-primary { display: grid; gap: 36px; }

.footer-address {
  color: var(--muted);
  font-size: 15px;
  font-style: normal;
  line-height: 1.75;
  margin-top: 20px;
}

.footer-address a { color: var(--muted); }
.footer-address a:hover { color: var(--maroon); }

.footer-social { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; }

.footer-social a {
  color: var(--maroon);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-column h2 {
  color: var(--ink);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.15em;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.footer-column-list { list-style: none; margin: 0; padding: 0; }
.footer-column-list li + li { margin-top: 11px; }

.footer-column-list a {
  color: var(--muted);
  display: inline-block;
  font-size: 14.5px;
  line-height: 1.5;
  padding: 3px 0;
}

.footer-column-list a:hover,
.footer-column-list a:focus-visible { color: var(--maroon); }

.footer-boundary {
  border-top: 1px solid var(--ash);
  margin-top: 38px;
  padding-top: 24px;
}

.footer-boundary p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
  max-width: 92ch;
}

.footer-boundary strong { color: var(--ink); }

.footer-legal {
  align-items: start;
  border-top: 1px solid var(--ash);
  display: grid;
  gap: 16px;
  margin-top: 24px;
  padding-top: 22px;
}

.footer-legal small { color: var(--muted); font-size: 12px; line-height: 1.6; }

.site-footer .footer-links { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: flex-start; }

.site-footer .footer-links ul,
.site-footer .footer-links .footer-column-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
}

.site-footer .footer-links li { margin: 0; }

.site-footer .footer-links a {
  color: var(--muted);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  padding: 4px 0;
  text-transform: uppercase;
}

.site-footer .footer-links a:hover { color: var(--maroon); }

@media (min-width: 701px) {
  .site-footer { padding: 64px var(--shell-gutter) 34px; }
  .footer-primary { grid-template-columns: 1.4fr 1fr 1fr; gap: 44px; }
  .footer-legal { align-items: center; grid-template-columns: 1fr auto; }
  .site-footer .footer-links { justify-content: flex-end; }
}

/* ---------------------------------------------------------------------
   Corrections to the original sheet for small screens
   ------------------------------------------------------------------ */

@media (max-width: 980px) {
  /* The hero used 100vh, which on iOS is taller than the visible area and
     pushed the call to action under the browser chrome. */
  .hero { min-height: auto; }
  .hero-content { padding: 64px var(--shell-gutter) 48px; }
  .hero-panel { margin: 0 var(--shell-gutter) 44px; }
}

@media (max-width: 700px) {
  /* 17vw put the headline at ~66px on a 390px phone and broke long words. */
  h1 { font-size: clamp(2.6rem, 12.5vw, 4.4rem); overflow-wrap: break-word; }
  .hero-lead { font-size: 16.5px; }
  .button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
  .hero-actions { display: grid; gap: 12px; }
  .hero-actions .button { width: 100%; }
  .service-card { min-height: 0 !important; }
  .service-card h3 { margin-top: 18px !important; }
  .fee-list article { padding: 22px 0; }
}

/* Anything anchored under the sticky header needs the offset, otherwise the
   heading lands behind it when following an in-page link. */
:target { scroll-margin-top: calc(var(--header-height) + 16px); }
[id] { scroll-margin-top: calc(var(--header-height) + 16px); }

@media (prefers-reduced-motion: reduce) {
  .site-nav,
  .nav-toggle-icon span,
  .site-nav .sub-menu { transition: none; }
}

/* ---------------------------------------------------------------------
   Components introduced with the multi-page structure
   ------------------------------------------------------------------ */

.service-card h3 a { color: inherit; }
.service-card h3 a:hover,
.service-card h3 a:focus-visible { color: var(--maroon); }

.service-card-link {
  color: var(--maroon);
  display: inline-block;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  margin-top: 18px;
  min-height: 24px;
  text-transform: uppercase;
}

.service-card-link:hover,
.service-card-link:focus-visible { text-decoration: underline; }

.services-grid-footer { margin: 34px 0 0; }
.about-more { margin-top: 30px; }

.entry-content .page-lead {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.2rem, 4.6vw, 1.5rem);
  line-height: 1.4;
  margin-bottom: 1.5em;
}

.entry-content .advice-notice {
  background: var(--paper);
  border-left: 3px solid var(--maroon);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  margin: 1.6em 0;
  padding: 22px 24px;
}

.entry-content .advice-notice p { margin: 0; }
.entry-content .advice-notice p + p { margin-top: 0.9em; }

.page-links {
  border-top: 1px solid var(--ash);
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 40px;
  padding-top: 20px;
}

.topic-filter {
  align-items: baseline;
  border-bottom: 1px solid var(--ash);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-bottom: 40px;
  padding-bottom: 18px;
}

.topic-filter span {
  color: var(--muted);
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.topic-filter ul { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 0; padding: 0; }

.topic-filter a {
  color: var(--maroon);
  display: inline-block;
  font-size: 14px;
  padding: 4px 0;
}

.topic-filter a:hover { text-decoration: underline; }

.error-page .error-links { margin: 40px 0; }
.error-page .search-form { margin-bottom: 10px; max-width: 520px; }
.error-page > p:last-of-type { display: flex; flex-wrap: wrap; gap: 12px; }

.error-page .button { min-height: 48px; display: inline-flex; align-items: center; }

/* ---------------------------------------------------------------------
   Signature artwork framing
   ---------------------------------------------------------------------
   The supplied MZ/JZ artwork is neon lettering on an opaque black field.
   Dropped straight onto the cream About panel it reads as a stray black
   bar, so it is bled to the panel edges and sits directly above the dark
   caption bar, which makes it read as an intentional signature plate.
   The artwork itself is untouched. Delete this block to revert.
   ------------------------------------------------------------------ */

.about-photo-panel .about-signatures {
  background: #000;
  margin: 20px -28px 0;
  max-width: none;
  width: calc(100% + 56px);
}

@media (max-width: 700px) {
  .about-photo-panel .about-signatures {
    margin: 16px -14px 0;
    width: calc(100% + 28px);
  }
}

/* =====================================================================
   Layout QA corrections — 2026-08-12
   Found by screenshotting every page at 390 / 820 / 1440 and auditing the
   rendered DOM rather than by reading the stylesheet.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. The original sheet hides EVERY nav link below 980px:
        @media (max-width: 980px) { nav a:not(.nav-cta) { display: none } }
      That was written for a one-page site with one <nav>. On a multi-page
      site it silently deleted breadcrumbs, related services, related
      articles, prev/next, blog pagination and the topic filter from every
      phone — and mobile-first indexing means that is what Google sees.
   ------------------------------------------------------------------ */

@media (max-width: 980px) {
  .breadcrumbs a { display: inline; }
  .related-services a,
  .related-posts a,
  .article-navigation a { display: block; }
  .navigation.pagination a,
  .topic-filter a,
  .article-share a { display: inline-flex; }
  .site-footer nav a { display: inline-block; }
}

/* ---------------------------------------------------------------------
   2. Card grid: draw real cell borders instead of letting an ash
      background show through the gaps. With ten services in a three-column
      grid the two empty cells in the last row rendered as a solid block.
   ------------------------------------------------------------------ */

.card-grid {
  background: none;
  border: 0;
  border-top: 1px solid var(--ash);
  border-left: 1px solid var(--ash);
  gap: 0;
}

.card-grid > * {
  border-bottom: 1px solid var(--ash);
  border-right: 1px solid var(--ash);
}

/* ---------------------------------------------------------------------
   3. .entry-content underlines every link, which was underlining whole
      paragraphs inside the service cards.
   ------------------------------------------------------------------ */

.entry-content .card-grid a,
.entry-content .card-grid a *,
.entry-content .related-services a,
.entry-content .contact-detail-list a,
.entry-content .wp-block-button__link,
.entry-content .sitemap-columns a { text-decoration: none; }

.entry-content .sitemap-columns a:hover,
.entry-content .contact-detail-list a:hover { text-decoration: underline; }

.card-item h2 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 10px;
}

/* ---------------------------------------------------------------------
   4. Core button blocks arrived unstyled: rounded, dark, and low contrast
      against the theme's square maroon buttons.
   ------------------------------------------------------------------ */

.wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.wp-block-button__link {
  align-items: center;
  background: var(--maroon);
  border: 1px solid var(--maroon);
  border-radius: 0;
  color: var(--white);
  display: inline-flex;
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px;
  font-weight: 600;
  justify-content: center;
  letter-spacing: 0.09em;
  line-height: 1.2;
  min-height: 48px;
  padding: 16px 23px;
  text-transform: uppercase;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible {
  background: var(--maroon-dark);
  border-color: var(--maroon-dark);
  color: var(--white);
}

.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--maroon);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--maroon);
  color: var(--white);
}

@media (max-width: 700px) {
  .wp-block-buttons { display: grid; gap: 12px; }
  .wp-block-button,
  .wp-block-button__link { width: 100%; }
}

/* ---------------------------------------------------------------------
   5. Text that was too small to read, and tap targets under 44px.
   ------------------------------------------------------------------ */

.brand small { font-size: 10px; }
.nav-toggle { font-size: 11px; }

@media (max-width: 700px) {
  .brand small { font-size: 10px; }
  .brand strong { font-size: 12.5px; }

  .footer-column-list a {
    align-items: center;
    display: flex;
    min-height: 44px;
    padding: 4px 0;
  }

  .footer-address a {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
  }

  .footer-social a,
  .site-footer .footer-links a {
    align-items: center;
    display: inline-flex;
    font-size: 11px;
    min-height: 44px;
  }

  .breadcrumbs a {
    display: inline-block;
    padding: 4px 0;
  }
}

/* ---------------------------------------------------------------------
   Layout QA, round two
   ------------------------------------------------------------------ */

/* The consent text was rendering as 10.5px uppercase mono. `.contact-form
   label > span` (0,1,2) was beating `.person-confirmation > span` (0,1,1),
   so the two checkbox labels inherited the field-label styling. Consent
   wording is the last thing that should be hard to read. */
.contact-form .person-confirmation > span {
  color: var(--muted);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14.5px;
  letter-spacing: normal;
  line-height: 1.55;
  text-transform: none;
}

.contact-form .person-confirmation a {
  color: var(--maroon);
  display: inline-block;
  padding: 3px 0;
  text-decoration: underline;
}

.contact-form label > span { font-size: 11px; }
.contact-form > small { font-size: 11.5px; }

.person-confirmation input[type="checkbox"] {
  height: 24px;
  width: 24px;
}

.person-confirmation { grid-template-columns: 24px 1fr; }

.card-item .card-more { font-size: 11px; }
.site-footer .footer-links a { font-size: 11px; }

/* Touch targets apply to tablets too, not just phones. */
@media (max-width: 980px) {
  .footer-column-list a,
  .footer-address a,
  .footer-social a,
  .site-footer .footer-links a,
  .contact-detail-list a {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
  }

  .footer-column-list a { display: flex; padding: 4px 0; }

  .service-card-link,
  .card-item .card-more,
  .text-link,
  .profile-social-link {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
  }

  .service-card h3 a,
  .related-services a strong { display: inline-block; padding: 5px 0; }

  .breadcrumbs a { display: inline-block; padding: 4px 0; }
}

/* ---------------------------------------------------------------------
   Layout QA, round three
   ------------------------------------------------------------------ */

/* `.entry-content a` (0,1,1) was beating `.wp-block-button__link` (0,1,0),
   so every button block rendered maroon text on a maroon fill — invisible.
   Contrast failures that come from specificity are the easy ones to ship. */
.entry-content .wp-block-button__link,
.entry-content .wp-block-button__link:hover,
.entry-content .wp-block-button__link:focus-visible {
  color: var(--white);
}

.entry-content .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--maroon);
}

.entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover,
.entry-content .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  color: var(--white);
}

/* Inline contact links were 17px tall, under the 24px minimum target size. */
.footer-address a,
.contact-detail-list a,
.sitemap-columns a {
  display: inline-block;
  padding: 4px 0;
}

@media (max-width: 980px) {
  .sitemap-columns a {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
  }
}

/* ---------------------------------------------------------------------
   Layout QA, round four
   ------------------------------------------------------------------ */

/* Round one tried to re-show the non-header nav links with `.breadcrumbs a`
   (0,1,1), which loses to the original `nav a:not(.nav-cta)` (0,1,2). Undo
   the blanket rule at equal specificity instead. Nothing is exposed by this
   that should stay hidden: the mobile menu panel is hidden as a panel
   (visibility + opacity), not by hiding the links inside it. */
@media (max-width: 980px) {
  nav a:not(.nav-cta) { display: revert; }

  .site-nav .menu-item > a { display: block; }
  .related-services a,
  .related-posts a,
  .article-navigation a { display: block; }
  .footer-column-list a { display: flex; }
  .navigation.pagination a,
  .topic-filter a,
  .article-share a,
  .sitemap-columns a { display: inline-flex; }
  .breadcrumbs a { display: inline-block; }
}

/* The brand kicker is maroon, which is fine on paper and unreadable on the
   near-black footer. */
.site-footer .brand small,
.footer-brand small { color: rgba(255, 253, 249, 0.62); }

/* Insights empty state — reads as deliberate rather than broken. */
.empty-journal {
  border-top: 3px solid var(--maroon);
  background: var(--white);
  margin: 0 auto;
  max-width: 720px;
  padding: 40px 28px 44px;
}

.empty-journal h2 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 5.5vw, 2.2rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin: 0 0 18px;
}

.empty-journal p {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 16px;
}

.empty-journal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}

@media (max-width: 700px) {
  .empty-journal { padding: 32px 22px 36px; }
  .empty-journal-actions { display: grid; }
  .empty-journal-actions .button { width: 100%; }
}

/* Final pass: inline links that were 18-22px tall, under the 24x24 minimum
   target size, at every width rather than only on touch screens. */
.service-card h3 a,
.direct-contact a {
  display: inline-block;
  padding: 5px 0;
}

.text-link { padding: 4px 0; }

/* Breadcrumb and standalone CTA links are navigation, not prose, so the
   WCAG 2.5.8 "inline in a sentence" exception does not cover them. Links
   sitting inside body copy are left alone deliberately — padding those would
   make wrapped lines overlap for no compliance gain. */
.breadcrumbs a { display: inline-block; padding: 5px 0; }
.text-link { padding: 6px 0; }

/* A bare .button (no .button-primary) rendered as unadorned uppercase text
   with no border or fill, so secondary actions did not read as buttons at
   all. Given an outline to match the header's enquiry control. */
.button:not(.button-primary) {
  align-items: center;
  border: 1px solid var(--maroon);
  color: var(--maroon);
  display: inline-flex;
  justify-content: center;
}

.button:not(.button-primary):hover,
.button:not(.button-primary):focus-visible {
  background: var(--maroon);
  color: var(--white);
}

.cta-band .button:not(.button-primary) {
  border-color: rgba(255, 253, 249, 0.55);
  color: var(--white);
}

/* =====================================================================
   Readability pass — measured, not eyeballed
   ---------------------------------------------------------------------
   The v2 footer was written with --ink and --muted on a background that is
   itself --ink: the "Services" and "Company" headings were rendering at a
   contrast ratio of 1:1, i.e. invisible, and the address, legal links and
   copyright line at 2.79:1 against a 4.5:1 requirement. The brand eyebrow
   is maroon, which is correct on paper and unreadable on the dark sections.
   ===================================================================== */

:root {
  --on-dark: #fffdf9;
  --on-dark-muted: rgba(255, 253, 249, 0.80);
  --maroon-on-dark: #e0a0a9;
}

.footer-column h2,
.footer-boundary strong,
.site-footer .brand strong { color: var(--on-dark); }

.site-footer .brand small,
.footer-social a { color: var(--maroon-on-dark); }

.footer-address,
.footer-address a,
.footer-column-list a,
.footer-boundary p,
.footer-legal small,
.site-footer .footer-links a { color: var(--on-dark-muted); }

.footer-address a:hover,
.footer-address a:focus-visible,
.footer-column-list a:hover,
.footer-column-list a:focus-visible,
.footer-social a:hover,
.footer-social a:focus-visible,
.site-footer .footer-links a:hover,
.site-footer .footer-links a:focus-visible { color: var(--on-dark); }

/* Eyebrows and index numerals that sit on the dark and deep-maroon bands. */
.positioning .eyebrow,
.director-support .eyebrow,
.partner-section .eyebrow,
.cta-band .eyebrow,
.positioning-points div > span,
.director-support-grid article > span { color: var(--maroon-on-dark); }

/* Centred body copy needs a shorter measure than ranged-left copy; 820px at
   15px runs past 100 characters a line. */
.about-unified-copy > p { max-width: 680px; }

/* ---------------------------------------------------------------------
   Tables on small screens
   ---------------------------------------------------------------------
   Three columns squeezed into 390px gave one word per line: "ACNC /
   registration / support" beside "From / $6,500 + / GST". Each row becomes
   a block instead — name, then price, then what it covers. The column
   headings are dropped because the stacked content says the same thing
   without them, and a horizontal scrollbar on a price list is worse.
   ------------------------------------------------------------------ */

@media (max-width: 700px) {
  .entry-content .wp-block-table table,
  .entry-content .wp-block-table tbody,
  .entry-content .wp-block-table tr,
  .entry-content .wp-block-table td { display: block; width: auto; }

  .entry-content .wp-block-table thead { display: none; }

  .entry-content .wp-block-table tr {
    border-bottom: 1px solid var(--ash);
    padding: 20px 0 18px;
  }

  .entry-content .wp-block-table tr:last-child { border-bottom: 0; }

  .entry-content .wp-block-table td {
    border: 0;
    padding: 0 0 10px;
  }

  .entry-content .wp-block-table td:last-child { padding-bottom: 0; }

  .entry-content .wp-block-table td:first-child {
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
    letter-spacing: -0.015em;
    line-height: 1.25;
  }

  .entry-content .wp-block-table td:nth-child(2) {
    color: var(--maroon);
    font-family: var(--font-geist-mono), monospace;
    font-size: 12px;
    letter-spacing: 0.08em;
  }

  /* Striping reads as banding once rows are blocks, so drop it and let the
     rules do the separating. */
  .entry-content .wp-block-table.is-style-stripes tbody tr { background: transparent; }
}

/* =====================================================================
   Found by driving a real browser, not by capturing full-page images
   ---------------------------------------------------------------------
   Full-page screenshot capture never scrolls, so it cannot show what a
   sticky header looks like over moving content. In a real browser it was
   obvious: the header background is rgba(255,253,249,0.96), and 4% of the
   distance between near-black display type and cream is plainly visible.
   Headings ghosted straight through the navigation on every scroll.
   ===================================================================== */

.site-header { background: var(--white); }

body.admin-bar .site-header,
.site-header { background-color: #fffdf9; }

/* The decorative hero grid was inset to a rectangle covering only the
   top-right quadrant, so it ended in two hard edges partway across the
   page and read as a rendering fault. Same placement, faded out. */
.hero-grid {
  inset: 0;
  -webkit-mask-image: radial-gradient(125% 105% at 100% 0%, #000 28%, transparent 74%);
  mask-image: radial-gradient(125% 105% at 100% 0%, #000 28%, transparent 74%);
}

/* The About panel is stretched to the height of the taller leadership column,
   and the photograph was pinned to the bottom of it (margin: auto auto 0), so
   roughly 210px of empty cream sat above the picture and read as a gap in the
   middle of the triptych. Auto margins top and bottom instead: the photograph
   centres in the space above the signature artwork, which stays pinned to the
   bottom with the caption. The artwork itself is untouched. */
.about-photo-panel > img:first-of-type {
  margin-top: auto;
  margin-bottom: auto;
}

.about-photo-panel .about-signatures { margin-top: 0; }

/* =====================================================================
   One alignment axis
   ---------------------------------------------------------------------
   Measured across the homepage at 1912px: every content block starts at
   x=153, but the section headings landed at 153, 329, 609, 664, 687 and
   721 — six different left edges. Each heading block used its own column
   ratio and its own vw-based gap, and the About block was a centred
   1280px container inside a full-width section, so nothing shared an
   edge with anything.

   Headings now stack under their eyebrow on the same left edge as the
   content beneath them, matching the two sections that already did this
   (positioning and fees) and looked right. To restore the offset
   treatment, delete this block.
   ===================================================================== */

@media (min-width: 981px) {
  .section-heading,
  .support-network-heading,
  .director-support-heading,
  .forensic-engineering-head {
    display: block;
  }

  .section-heading > .eyebrow,
  .support-network-heading > .eyebrow,
  .director-support-heading > .eyebrow,
  .forensic-engineering-head > .eyebrow {
    margin-bottom: 20px;
  }

  .section-heading h2,
  .support-network-heading h2,
  .director-support-heading h2,
  .forensic-engineering-head h2 {
    max-width: 21ch;
  }

  .compact-heading h2 { max-width: 24ch; }

  .support-network-heading > p,
  .director-support-heading > p,
  .forensic-engineering-head > p {
    margin-top: 26px;
    max-width: 70ch;
  }
}

/* The About block was a centred 1280px container inside a full-width
   section, which put its heading at 329 and its paragraphs at 609 while
   its own strengths list and leadership panels sat at 329. Same edge as
   every other section now, and ranged left so the heading, the copy, the
   strengths list and the panels below all share it. */
.about-unified {
  margin: 0;
  max-width: none;
  text-align: left;
}

.about-unified-copy {
  margin: 0;
  max-width: none;
  padding: 0;
}

.about-unified-copy h3 { max-width: 20ch; }

.about-unified-copy > p {
  margin-left: 0;
  margin-right: 0;
  max-width: 70ch;
}
