:root {
  --paper: #f2f0ea;
  --paper-deep: #e9e7e1;
  --ink: #191917;
  --muted: #575750;
  --line: #c5c4bc;
  --line-soft: #d8d6cf;
  --acid: #deded6;
  --font: Arial, Helvetica, sans-serif;
  --gutter: clamp(1.25rem, 4vw, 4.5rem);
  --section-space: clamp(4rem, 7vw, 7rem);
  --header-height: 5rem;
  --display: clamp(2.4rem, 4vw, 4rem);
  --heading: clamp(1.55rem, 2.4vw, 2.5rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--paper); scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 1rem/1.6 var(--font); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
figure, p, h1, h2, h3 { margin: 0; }
h1, h2, h3 { font-weight: 400; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { color: inherit; font: inherit; }
button { border: 0; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: calc(var(--header-height) + 1rem); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
a:hover { text-decoration: underline; text-underline-offset: .3em; }
::selection { background: var(--line); }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 100; padding: .75rem; background: var(--ink); color: var(--paper); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.site-header { position: fixed; inset: 0 0 auto; z-index: 50; display: flex; height: var(--header-height); align-items: center; justify-content: space-between; padding: .5rem var(--gutter); background: var(--paper); border-bottom: 1px solid var(--line-soft); }
.wordmark { position: relative; z-index: 52; width: 2.65rem; flex-shrink: 0; }
.site-nav__links { display: flex; gap: clamp(1rem, 2.3vw, 2.4rem); align-items: center; }
.site-nav a { font-size: .875rem; padding-block: .5rem; }
.site-nav a[aria-current=page] { text-decoration: underline; text-underline-offset: .35em; }
.site-nav__meta, .menu-toggle { display: none; }
.utility, .eyebrow, .media-caption, .hero-utility { font-size: .875rem; line-height: 1.5; letter-spacing: 0; text-transform: none; }
.eyebrow { color: var(--muted); }
.shell { padding-inline: var(--gutter); }
.text-link { display: inline-block; width: fit-content; padding-block: .5rem; border-bottom: 1px solid var(--ink); font-size: .875rem; line-height: 1.5; }
.text-link:hover { text-decoration: none; border-bottom-color: var(--muted); }
.media-frame img { width: 100%; }
.media-caption { display: flex; justify-content: space-between; gap: 1rem; padding-top: .75rem; color: var(--muted); font-size: .8125rem; }
.section-rule { display: grid; grid-template-columns: 1fr 3fr; gap: 2rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.section-rule h2 { font-size: var(--heading); line-height: 1.25; letter-spacing: -.025em; max-width: 28ch; }
.section-rule__aside { display: none; }
/* A single, quiet image and identity composition. */
.home-hero { display: grid; grid-template-columns: 40% 60%; grid-template-rows: auto 1fr auto; min-height: min(850px, 100svh); padding: calc(var(--header-height) + 2rem) var(--gutter) 2rem; column-gap: 0; }
.hero-utility { grid-column: 1; display: flex; flex-direction: column; gap: .15rem; color: var(--muted); }
.home-hero__mark { grid-column: 1; grid-row: 2; align-self: center; padding-block: 2rem; }
.home-hero__mark img { width: clamp(8rem, 15vw, 15rem); }
.home-hero__statement { grid-column: 1; grid-row: 3; width: min(27ch, 90%); font-size: 1rem; }
.home-hero__statement .text-link { display: block; margin-top: 1rem; }
.home-hero__image { grid-column: 2; grid-row: 1 / 4; min-height: 400px; }
.home-hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: 54% center; }
.home-intro, .project-finder, .space-editor, .location-section { padding-top: var(--section-space); }
.home-intro__layout { display: grid; grid-template-columns: 1fr 1.45fr; gap: clamp(2rem, 8vw, 9rem); margin-top: 3rem; margin-left: 25%; }
.home-intro__layout h2 { font-size: var(--heading); line-height: 1.3; letter-spacing: -.025em; }
.home-intro__copy { max-width: 42rem; }
.home-intro__copy .text-link { margin-top: 1.5rem; }
.project-finder__layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); margin-top: 3rem; margin-left: 25%; }
.project-option { display: grid; width: 100%; grid-template-columns: 1fr auto; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; }
.project-option__number { display: none; }
.project-option__label { font-size: 1rem; }
.project-option__mark { width: .4rem; height: .4rem; border: 1px solid var(--muted); border-radius: 50%; }
.project-option[aria-selected=true] .project-option__mark { background: var(--ink); }
.project-option[aria-selected=true] .project-option__label { text-decoration: underline; text-underline-offset: .3em; }
.project-result { display: flex; flex-direction: column; padding-top: 1rem; }
.project-result > .utility { display: none; }
.project-result__title { font-size: 1.5rem; line-height: 1.35; letter-spacing: -.02em; max-width: 25ch; margin-bottom: 1.5rem; }
.project-result__footer p { max-width: 40ch; }
.project-result .text-link { margin-top: 1.5rem; }
.space-editor__intro { margin: 2rem 0 0 25%; max-width: 40rem; }
.space-tabs { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 2.5rem; border-bottom: 1px solid var(--line); }
.space-tab { min-height: 3rem; padding: .5rem 0; background: transparent; border-bottom: 2px solid transparent; cursor: pointer; font-size: .875rem; }
.space-tab[aria-selected=true] { border-bottom-color: var(--ink); }
.space-panel { display: grid; grid-template-columns: 2fr 1fr; gap: clamp(2rem, 5vw, 5rem); padding-top: 2rem; }
.space-panel figure img { aspect-ratio: 4 / 3; object-fit: cover; }
.space-panel__copy { align-self: center; max-width: 28rem; }
.space-panel__copy h3 { font-size: var(--heading); line-height: 1.25; margin-top: 1rem; }
.space-panel__copy > p:not(.eyebrow) { margin-top: 1.5rem; }
.space-panel__copy .text-link { margin-top: 1.5rem; }
.location-section { padding-bottom: var(--section-space); }
.location-section__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin: 3rem 0 0 25%; }
.location-section__grid h2 { font-size: var(--heading); line-height: 1.3; letter-spacing: -.025em; }
.location-section__meta .text-link { margin-top: 1.5rem; }
/* Shared page rhythm. */
.page-main { padding-top: var(--header-height); }
.page-hero { display: grid; grid-template-columns: 1fr 3fr; gap: 2rem; padding: var(--section-space) var(--gutter) 3rem; }
.page-hero > .eyebrow { grid-column: 1; }
.page-title { grid-column: 2; font-size: var(--display); line-height: 1.15; letter-spacing: -.035em; }
.page-hero__lede { grid-column: 2; max-width: 42rem; font-size: 1.125rem; }
.page-hero__index { display: none; }
.page-title--logo-lockup { display: flex; align-items: center; gap: 1.5rem; }
.page-title__logo { display: block; width: 5rem; flex-shrink: 0; }
.hero-image { padding-inline: var(--gutter); }
.hero-image figure { width: 100%; }
.hero-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.editorial-section { padding: var(--section-space) var(--gutter) 0; }
.editorial-section--last { padding-bottom: var(--section-space); }
.copy-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(2rem, 6vw, 6rem); margin: 3rem 0 0 25%; }
.copy-grid__lead { font-size: 1.25rem; line-height: 1.5; max-width: 35ch; }
.copy-grid__body { max-width: 44rem; }
.copy-grid__body p + p { margin-top: 1.25rem; }
.copy-grid__body .text-link { margin-top: 1.5rem; }
.image-object-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 2rem; align-items: start; padding: 3rem var(--gutter) 0; }
.image-object-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.image-object-grid__small { margin: 0; }
.index-list, .capability-list, .spec-layout { width: 75%; margin: 3rem 0 0 auto; }
.index-row { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.index-row > span { display: none; }
.index-row h3, .index-row > p:first-of-type { font-size: 1.125rem; line-height: 1.5; }
.index-row__detail { color: var(--muted); }
.capability-list details { border-bottom: 1px solid var(--line); }
.capability-list summary { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1.25rem 0; cursor: pointer; list-style: none; }
.capability-list summary::-webkit-details-marker { display: none; }
.capability-list summary span:first-child { display: none; }
.capability-list summary h3 { font-size: 1.125rem; }
.capability-list summary::after { content: '+'; font-size: 1.25rem; }
.capability-list details[open] summary::after { content: '−'; }
.capability-list__body { padding: 0 0 1.5rem; max-width: 48rem; }
.capability-list__body p { color: var(--muted); }
.capability-services { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem 2rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.spec-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(2rem, 6vw, 6rem); }
.spec-list { margin: 0; }
.spec-list div { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: .875rem; }
.spec-list dt, .spec-list dd { margin: 0; }
.spec-list dd { color: var(--muted); }
.notice { display: grid; grid-template-columns: 1fr 3fr; gap: 2rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.notice p:last-child { max-width: 50rem; }
.closing-panel { display: grid; grid-template-columns: 1fr 1.5fr 1.5fr; gap: 2rem; margin-top: var(--section-space); padding: 3rem var(--gutter); border-top: 1px solid var(--line); }
.closing-panel h2 { font-size: var(--heading); letter-spacing: -.025em; line-height: 1.3; }
.closing-panel__meta .text-link { margin-top: 1rem; }
.contact-hero { padding: var(--section-space) var(--gutter) 3rem; }
.contact-hero h1 { font-size: var(--display); line-height: 1.25; letter-spacing: -.035em; margin: 1.5rem 0 0 25%; }
.contact-hero__lede { max-width: 35rem; margin: 2rem 0 0 25%; }
.contact-directory { display: grid; grid-template-columns: 1fr 3fr; gap: 2rem; margin-inline: var(--gutter); padding: 2rem 0 var(--section-space); border-top: 1px solid var(--line); }
.contact-directory__address img { display: none; }
.contact-directory__links { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.contact-directory h2 { font-size: .875rem; color: var(--muted); margin-bottom: .5rem; }
.contact-directory a { text-decoration: underline; text-underline-offset: .25em; overflow-wrap: anywhere; }
.enquiry { display: grid; grid-template-columns: 1fr 3fr; gap: 2rem; padding: 3rem var(--gutter) var(--section-space); border-top: 1px solid var(--line); }
.enquiry__heading h2 { font-size: 1.125rem; margin-top: 1rem; line-height: 1.5; }
.enquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2rem; max-width: 55rem; }
.field { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.field--wide { grid-column: 1 / -1; }
.field label { font-size: .875rem; }
.field input, .field textarea, .field select { width: 100%; padding: .65rem; border: 1px solid var(--line); border-radius: 0; background: transparent; }
.field textarea { min-height: 9rem; resize: vertical; }
.enquiry-form__footer { grid-column: 1 / -1; display: flex; align-items: center; gap: 2rem; justify-content: space-between; }
.form-submit { padding: .75rem 0; border-bottom: 1px solid var(--ink); background: none; cursor: pointer; white-space: nowrap; }
.form-status { max-width: 27rem; font-size: .875rem; color: var(--muted); }
.site-footer { display: grid; grid-template-columns: 1fr 1fr 1.5fr 1fr; gap: 2rem; padding: 2rem var(--gutter); border-top: 1px solid var(--line); font-size: .875rem; }
.site-footer__mark { width: 3rem; }
.site-footer__col, .site-footer__end { display: flex; flex-direction: column; gap: .35rem; min-width: 0; overflow-wrap: anywhere; }
.site-footer__col .eyebrow { margin-bottom: .5rem; }
.site-footer__end { text-align: right; gap: 1rem; }
@media (max-width: 800px) {
  :root { --header-height: 4.5rem; }
  .js .menu-toggle { position: relative; z-index: 52; display: flex; align-items: center; min-height: 44px; padding: .5rem 0; background: none; cursor: pointer; font-size: .875rem; }
  .menu-toggle__mark { display: none; }
  .js .site-nav { position: fixed; inset: var(--header-height) 0 0; z-index: 51; visibility: hidden; padding: 2rem var(--gutter); background: var(--paper); overflow-y: auto; }
  .js .site-nav.is-open { visibility: visible; }
  .js .site-nav__links { align-items: start; flex-direction: column; gap: .5rem; }
  .js .site-nav a { font-size: 1.75rem; }
  .js .site-nav__meta { display: block; margin-top: 2rem; }
  .site-nav__meta span + span { margin-left: 1rem; }
  .menu-open { overflow: hidden; }
  html:not(.js) .site-header { position: relative; height: auto; flex-wrap: wrap; gap: 1rem; }
  html:not(.js) .site-nav__links { flex-wrap: wrap; gap: .5rem 1rem; }
  .home-hero { min-height: 0; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto; gap: 1.5rem; padding-top: calc(var(--header-height) + 2rem); }
  .hero-utility { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; }
  .home-hero__mark { grid-column: 1; grid-row: 2; padding: 0; }
  .home-hero__mark img { width: min(25vw, 9rem); }
  .home-hero__statement { grid-column: 2; grid-row: 2; width: 100%; align-self: center; }
  .home-hero__image { grid-column: 1 / -1; grid-row: 3; min-height: 0; }
  .home-hero__image img { aspect-ratio: 4 / 3; height: auto; }
  .section-rule, .page-hero, .notice { grid-template-columns: 1fr; gap: 1rem; }
  .section-rule h2 { display: block; }
  .home-intro__layout, .project-finder__layout, .location-section__grid, .copy-grid { margin-left: 0; grid-template-columns: 1fr; gap: 2rem; margin-top: 2rem; }
  .space-editor__intro { margin-left: 0; }
  .space-tabs { gap: 1.25rem; }
  .space-panel { grid-template-columns: 1fr; gap: 2rem; }
  .page-title, .page-hero__lede { grid-column: 1; }
  .page-hero { padding-top: 3rem; }
  .image-object-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .media-caption { flex-direction: column; gap: .25rem; }
  .index-list, .capability-list, .spec-layout { width: 100%; margin-top: 2rem; }
  .spec-layout { grid-template-columns: 1fr; gap: 2rem; }
  .closing-panel { grid-template-columns: 1fr; }
  .contact-hero h1, .contact-hero__lede { margin-left: 0; }
  .contact-directory, .enquiry { grid-template-columns: 1fr; gap: 2rem; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .site-footer__mark { grid-column: 1 / -1; }
  .site-footer__end { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; text-align: left; }
}
@media (max-width: 430px) {
  .hero-utility { font-size: .8125rem; }
  .home-hero__statement { font-size: .875rem; }
  .space-tabs { gap: 1rem; }
  .space-tab { font-size: .875rem; }
  .index-row, .contact-directory__links, .enquiry-form, .image-object-grid { grid-template-columns: 1fr; gap: 1rem; }
  .capability-services { grid-template-columns: 1fr; }
  .enquiry-form__footer { align-items: start; flex-direction: column; gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
