/*
Theme Name: Green Mark Hello Child
Theme URI: https://github.com/jianwongdesign/green-mark
Description: Tracked child theme for the Built Form commercial-property sustainability mockup.
Author: Jian Wong
Template: hello-elementor
Version: 0.6.0
Text Domain: green-mark-hello-child
*/

@font-face {
  font-family: "Geologica";
  src: url("assets/fonts/geologica-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}

@font-face {
  font-family: "Hanken Grotesk";
  src: url("assets/fonts/hanken-grotesk-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "Barlow Condensed";
  src: url("assets/fonts/barlow-condensed-600-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

:root {
  --gm-ink: #15241c;
  --gm-ink-soft: #405048;
  --gm-green: #2d6f50;
  --gm-green-deep: #0d2f23;
  --gm-paper: #f2f0e9;
  --gm-paper-clear: #fbfaf6;
  --gm-silver: #aeb8b3;
  --gm-rule: #a5ada7;
  --gm-rule-soft: #d5d8d2;
  --gm-signal: #c8f26a;
  --gm-signal-deep: #9fcf34;
  --gm-max: 1600px;
  --gm-display: "Geologica", "Arial Narrow", sans-serif;
  --gm-hero-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --gm-body: "Hanken Grotesk", "Helvetica Neue", sans-serif;
  --gm-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

:is(body.gm-home, body.gm-commerce),
:is(body.gm-home, body.gm-commerce) * {
  box-sizing: border-box;
}

html:has(:is(body.gm-home, body.gm-commerce)) {
  scroll-behavior: smooth;
  scroll-padding-top: 78px;
}

:is(body.gm-home, body.gm-commerce) {
  margin: 0;
  overflow-x: hidden;
  background: var(--gm-paper);
  color: var(--gm-ink);
  font-family: var(--gm-body);
  font-size: 18px;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
}

:is(body.gm-home, body.gm-commerce) img,
:is(body.gm-home, body.gm-commerce) svg {
  display: block;
  max-width: 100%;
}

:is(body.gm-home, body.gm-commerce) a {
  color: inherit;
  text-decoration: none;
}

:is(body.gm-home, body.gm-commerce) button,
:is(body.gm-home, body.gm-commerce) input,
:is(body.gm-home, body.gm-commerce) textarea,
:is(body.gm-home, body.gm-commerce) select {
  font: inherit;
}

:is(body.gm-home, body.gm-commerce) button,
:is(body.gm-home, body.gm-commerce) a,
:is(body.gm-home, body.gm-commerce) input,
:is(body.gm-home, body.gm-commerce) textarea,
:is(body.gm-home, body.gm-commerce) select {
  -webkit-tap-highlight-color: transparent;
}

:is(body.gm-home, body.gm-commerce) :focus-visible {
  outline: 3px solid var(--gm-signal);
  outline-offset: 4px;
}

/* selection is the one interaction state with no rule of its own, so it falls
   back to the browser's blue. Claim it for the palette. */
:is(body.gm-home, body.gm-commerce) ::selection {
  background: var(--gm-signal);
  color: var(--gm-ink);
}

.gm-skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  transform: translateY(-200%);
  opacity: 0;
  background: var(--gm-ink);
  color: var(--gm-paper-clear) !important;
}

.gm-skip-link:focus-visible {
  transform: translateY(0);
  opacity: 1;
}

.gm-site {
  width: min(100%, var(--gm-max));
  min-height: 100vh;
  margin-inline: auto;
  overflow: clip;
  border-inline: 1px solid var(--gm-rule);
  background: var(--gm-paper);
}

.gm-header {
  position: sticky;
  z-index: 40;
  top: 0;
  display: grid;
  grid-template-columns: minmax(200px, 0.72fr) minmax(560px, 2.05fr) auto;
  min-height: 76px;
  border-bottom: 1px solid var(--gm-rule);
  background: color-mix(in srgb, var(--gm-paper) 94%, transparent);
  backdrop-filter: blur(12px);
}

.gm-wordmark {
  display: flex;
  align-items: center;
  padding: 0 clamp(24px, 3vw, 48px);
  border-right: 1px solid var(--gm-rule);
  font-family: var(--gm-display);
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.gm-primary-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(108px, 1fr));
  align-items: stretch;
}

.gm-primary-nav a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 76px;
  padding: 0 14px;
  border-right: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
  font-size: 0.8rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.25;
}

.gm-primary-nav a::after {
  position: absolute;
  right: 24%;
  bottom: 19px;
  left: 24%;
  height: 1px;
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  background: var(--gm-green);
  transition: transform 420ms var(--gm-ease);
}

.gm-primary-nav a:hover::after,
.gm-primary-nav a:focus-visible::after {
  transform: scaleX(1);
}

.gm-primary-nav a[aria-current="page"] {
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-primary-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  background: var(--gm-signal);
}

.gm-primary-nav .gm-nav-consultation {
  display: none;
}

.gm-cart-link {
  gap: 10px;
}

.gm-cart-link__count {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid var(--gm-rule);
  color: var(--gm-ink);
  font-size: 0.68rem;
  line-height: 1;
}

.gm-header-action,
.gm-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 54px;
  border: 0;
  background: var(--gm-signal);
  color: var(--gm-ink) !important;
  font-size: 0.9rem;
  font-weight: 650;
  cursor: pointer;
  clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
  transition: background-color 260ms ease, transform 420ms var(--gm-ease);
}

.gm-header-action {
  align-self: stretch;
  min-width: 250px;
  min-height: 76px;
  padding: 0 30px;
}

.gm-header-action svg,
.gm-button svg {
  width: 24px;
  flex: 0 0 24px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-width: 1.6;
}

.gm-header-action:hover,
.gm-button:hover {
  transform: translateX(4px);
  background: var(--gm-signal-deep);
}

.gm-menu-toggle {
  display: none;
}

.gm-hero {
  display: grid;
  grid-template-columns: minmax(440px, 38fr) minmax(0, 62fr);
  min-height: min(735px, calc(100vh - 76px));
  border-bottom: 1px solid var(--gm-rule);
}

.gm-hero__copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(64px, 7vw, 112px) clamp(32px, 3.3vw, 52px) 50px;
  background: var(--gm-paper-clear);
}

.gm-hero h1,
.gm-performance-model h2,
.gm-advisory h2,
.gm-engagement h2,
.gm-project-brief h2 {
  margin: 0;
  font-family: var(--gm-display);
  font-weight: 540;
  letter-spacing: -0.035em;
}

.gm-hero h1 {
  max-width: none;
  font-family: var(--gm-hero-display);
  font-size: clamp(2.85rem, 3.8vw, 3.8rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 0.96;
}

.gm-hero h1 span {
  display: block;
  white-space: nowrap;
}

.gm-hero__summary {
  max-width: 43ch;
  margin: clamp(30px, 4vw, 48px) 0 0;
  padding-top: 22px;
  border-top: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
  font-size: clamp(1rem, 1.25vw, 1.13rem);
}

.gm-hero__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px 30px;
  margin-top: 34px;
}

.gm-button {
  min-width: 246px;
  padding: 15px 26px;
}

.gm-text-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid var(--gm-ink);
  font-size: 0.9rem;
  font-weight: 600;
}

.gm-text-link span {
  transition: transform 420ms var(--gm-ease);
}

.gm-text-link:hover span {
  transform: translateY(4px);
}

.gm-hero__scope {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: auto 0 0;
  padding-top: 42px;
  border: 0;
  color: var(--gm-ink-soft);
  list-style: none;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.gm-hero__scope li {
  position: relative;
  padding-left: 14px;
}

.gm-hero__scope li::before {
  position: absolute;
  top: 0.43em;
  left: 0;
  width: 6px;
  height: 6px;
  content: "";
  background: var(--gm-green);
}

.gm-facade {
  position: relative;
  min-width: 0;
  min-height: 660px;
  margin: 0;
  overflow: hidden;
  background: var(--gm-green-deep);
}

.gm-facade > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% center;
}

.gm-facade__wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, color-mix(in srgb, var(--gm-green-deep) 12%, transparent), transparent 34%, color-mix(in srgb, var(--gm-green-deep) 8%, transparent));
  pointer-events: none;
}

.gm-facade__leaders {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: var(--gm-signal);
  stroke: var(--gm-signal);
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}

.gm-facade__leaders path {
  fill: none;
}

.gm-material-tag {
  position: absolute;
  min-width: 150px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--gm-paper-clear) 48%, transparent);
  background: color-mix(in srgb, var(--gm-green-deep) 88%, transparent);
  color: var(--gm-paper-clear);
}

.gm-material-tag span,
.gm-material-tag strong {
  display: block;
}

.gm-material-tag span {
  color: var(--gm-signal);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.gm-material-tag strong {
  margin-top: 3px;
  font-size: 0.78rem;
  font-weight: 500;
}

.gm-material-tag--glass {
  top: 8.5%;
  left: 5%;
}

.gm-material-tag--systems {
  top: 32%;
  right: 4%;
}

.gm-material-tag--operations {
  bottom: 8%;
  left: 8%;
}

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

.gm-property-types {
  display: grid;
  grid-template-columns: minmax(220px, 0.75fr) minmax(0, 3.25fr);
  min-height: 64px;
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-property-types > p {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 16px clamp(24px, 3vw, 48px);
  border-right: 1px solid var(--gm-rule);
  font-size: 0.71rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gm-property-types ul {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-property-types li {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 12px 16px;
  border-right: 1px solid var(--gm-rule-soft);
  color: var(--gm-ink-soft);
  font-size: 0.76rem;
  font-weight: 600;
  text-align: center;
}

.gm-property-types li:last-child {
  border-right: 0;
}

.gm-performance-model {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
  min-height: 720px;
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-green-deep);
}

.gm-performance-model__visual {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: clamp(58px, 7vw, 112px);
  overflow: hidden;
}

.gm-performance-orbit {
  position: relative;
  width: min(100%, 590px);
  aspect-ratio: 1;
  color: var(--gm-paper-clear);
}

.gm-performance-orbit svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: color-mix(in srgb, var(--gm-paper-clear) 32%, transparent);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.gm-performance-orbit .gm-orbit-ring--outer {
  stroke: color-mix(in srgb, var(--gm-signal) 62%, transparent);
}

.gm-performance-orbit .gm-orbit-core {
  fill: color-mix(in srgb, var(--gm-signal) 12%, transparent);
  stroke: var(--gm-signal);
}

.gm-performance-orbit .gm-orbit-node {
  fill: var(--gm-signal);
  stroke: var(--gm-green-deep);
  stroke-width: 4;
}

.gm-performance-orbit > strong {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 110px;
  transform: translate(-50%, -50%);
  color: var(--gm-paper-clear);
  font-family: var(--gm-display);
  font-size: 1.08rem;
  font-weight: 560;
  line-height: 1.08;
  text-align: center;
}

.gm-orbit-label {
  position: absolute;
  padding: 6px 9px;
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.gm-orbit-label--energy {
  top: 1%;
  left: 50%;
  transform: translateX(-50%);
}

.gm-orbit-label--carbon {
  top: 20%;
  right: 0;
}

.gm-orbit-label--water {
  right: -1%;
  bottom: 20%;
}

.gm-orbit-label--health {
  bottom: 1%;
  left: 50%;
  transform: translateX(-50%);
}

.gm-orbit-label--resilience {
  bottom: 20%;
  left: -2%;
}

.gm-orbit-label--data {
  top: 20%;
  left: 0;
}

.gm-performance-model__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(68px, 7vw, 112px) clamp(34px, 6vw, 96px);
  border-left: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-performance-model h2 {
  max-width: 11ch;
  color: var(--gm-ink);
  font-size: clamp(2.8rem, 4.6vw, 5.35rem);
  line-height: 0.98;
}

.gm-model-intro {
  max-width: 56ch;
  margin: clamp(32px, 4vw, 50px) 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
}

.gm-model-outcomes {
  margin: clamp(38px, 5vw, 64px) 0 0;
  border-top: 1px solid var(--gm-rule);
}

.gm-model-outcomes > div {
  display: grid;
  grid-template-columns: minmax(90px, 0.55fr) minmax(0, 1.45fr);
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid var(--gm-rule-soft);
}

.gm-model-outcomes dt,
.gm-model-outcomes dd {
  margin: 0;
}

.gm-model-outcomes dt {
  color: var(--gm-green);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.gm-model-outcomes dd {
  color: var(--gm-ink);
  font-size: 0.86rem;
  font-weight: 580;
}

.gm-advisory {
  background: var(--gm-paper);
}

.gm-advisory__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.8fr);
  gap: 0 clamp(36px, 8vw, 130px);
  align-items: end;
  padding: clamp(72px, 7vw, 112px) clamp(28px, 5vw, 80px) clamp(56px, 5vw, 80px);
  border-bottom: 1px solid var(--gm-rule);
}

.gm-scope-status {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 26px 0 0;
  padding: 7px 10px;
  border: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.gm-scope-status::before {
  width: 7px;
  height: 7px;
  content: "";
  background: var(--gm-signal);
}

.gm-advisory h2,
.gm-project-brief h2 {
  max-width: 12ch;
  font-size: clamp(2.6rem, 4.4vw, 5.2rem);
  line-height: 1.02;
}

.gm-advisory__summary > p {
  max-width: 42ch;
  margin: 0;
  padding-top: 24px;
  border-top: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
}

.gm-decision-path {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: clamp(44px, 5vw, 72px) 0 0;
  padding: 0;
  border-block: 1px solid var(--gm-rule);
  list-style: none;
}

.gm-decision-path li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  min-width: 0;
  padding: 28px clamp(18px, 2.6vw, 40px);
  border-right: 1px solid var(--gm-rule);
}

.gm-decision-path li:last-child {
  border-right: 0;
}

.gm-decision-path > li > span {
  padding-top: 3px;
  color: var(--gm-green);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.gm-decision-path h3 {
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  font-weight: 560;
  letter-spacing: -0.015em;
  line-height: 1.15;
}

.gm-decision-path p {
  margin: 8px 0 0;
  color: var(--gm-ink-soft);
  font-size: 0.82rem;
}

.gm-ledger {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-bottom: 1px solid var(--gm-rule);
}

.gm-workstream {
  min-width: 0;
  padding: clamp(36px, 4.2vw, 66px);
  border-right: 1px solid var(--gm-rule);
}

.gm-workstream:nth-child(2n) {
  border-right: 0;
}

.gm-workstream:nth-child(-n + 2) {
  border-bottom: 1px solid var(--gm-rule);
}

.gm-workstream__diagram {
  display: grid;
  place-items: center;
  min-height: 320px;
  margin: calc(clamp(36px, 4.2vw, 66px) * -1) calc(clamp(36px, 4.2vw, 66px) * -1) 36px;
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

/* the four vignettes differ in proportion, so they are normalised by height
   rather than width and read at a consistent size across the ledger */
.gm-workstream__diagram img {
  width: auto;
  max-width: min(92%, 560px);
  height: auto;
  max-height: 260px;
}

.gm-workstream__diagram svg {
  width: min(54%, 220px);
  fill: none;
  stroke: var(--gm-ink);
  stroke-width: 1.3;
  vector-effect: non-scaling-stroke;
}

.gm-workstream__diagram .accent {
  stroke: var(--gm-green);
  stroke-width: 2.2;
}

.gm-workstream h3 {
  max-width: 24ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(1.55rem, 2.2vw, 2.45rem);
  font-weight: 540;
  letter-spacing: -0.025em;
  line-height: 1.05;
}

.gm-workstream > p {
  max-width: 52ch;
  min-height: 4.6em;
  margin: 24px 0 30px;
  color: var(--gm-ink-soft);
}

.gm-workstream ul {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--gm-rule);
  list-style: none;
}

.gm-workstream li {
  position: relative;
  padding: 13px 30px 13px 0;
  border-bottom: 1px solid var(--gm-rule-soft);
  font-size: 0.8rem;
  font-weight: 600;
}

.gm-workstream li::after {
  position: absolute;
  top: 50%;
  right: 3px;
  width: 15px;
  height: 1px;
  content: "";
  background: var(--gm-green);
}

.gm-engagement {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(420px, 0.88fr);
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-engagement__triggers,
.gm-engagement__outputs {
  min-width: 0;
  padding: clamp(66px, 7vw, 112px) clamp(30px, 5vw, 80px);
}

.gm-engagement__triggers h2 {
  max-width: 13ch;
  font-size: clamp(2.6rem, 4.2vw, 4.9rem);
  line-height: 1;
}

.gm-engagement__triggers ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: clamp(44px, 5vw, 70px) 0 0;
  padding: 0;
  border-top: 1px solid var(--gm-rule);
  list-style: none;
}

.gm-engagement__triggers li {
  min-width: 0;
  padding: 28px clamp(18px, 3vw, 44px) 28px 0;
  border-bottom: 1px solid var(--gm-rule-soft);
}

.gm-engagement__triggers li:nth-child(odd) {
  padding-right: clamp(20px, 4vw, 58px);
  border-right: 1px solid var(--gm-rule-soft);
}

.gm-engagement__triggers li:nth-child(even) {
  padding-left: clamp(20px, 4vw, 58px);
}

.gm-engagement__triggers strong,
.gm-engagement__triggers span {
  display: block;
}

.gm-engagement__triggers strong {
  max-width: 27ch;
  font-family: var(--gm-display);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 560;
  line-height: 1.15;
}

.gm-engagement__triggers span {
  max-width: 38ch;
  margin-top: 12px;
  color: var(--gm-ink-soft);
  font-size: 0.84rem;
}

.gm-engagement__outputs {
  border-left: 1px solid var(--gm-rule);
  background: var(--gm-ink);
  color: var(--gm-paper-clear);
}

.gm-engagement__outputs h2 {
  max-width: 12ch;
  color: var(--gm-paper-clear);
  font-size: clamp(2.2rem, 3.2vw, 3.7rem);
  line-height: 1.02;
}

.gm-engagement__outputs ul {
  margin: clamp(38px, 5vw, 60px) 0 0;
  padding: 0;
  border-top: 1px solid color-mix(in srgb, var(--gm-paper-clear) 32%, transparent);
  list-style: none;
}

.gm-engagement__outputs li {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
}

.gm-engagement__outputs li span {
  width: 8px;
  height: 8px;
  background: var(--gm-signal);
}

.gm-engagement__outputs li strong {
  color: var(--gm-paper-clear);
  font-size: 0.9rem;
  font-weight: 580;
}

.gm-engagement__outputs > p {
  max-width: 46ch;
  margin: 32px 0 0;
  color: color-mix(in srgb, var(--gm-paper-clear) 68%, var(--gm-green));
  font-size: 0.8rem;
}

.gm-project-brief {
  display: grid;
  grid-template-columns: minmax(320px, 0.85fr) minmax(0, 1.15fr);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-project-brief__copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 600px;
  padding: clamp(60px, 5.2vw, 84px) clamp(30px, 5vw, 80px);
  border-right: 1px solid color-mix(in srgb, var(--gm-paper) 26%, transparent);
}

.gm-project-brief h2 {
  color: var(--gm-paper-clear);
}

.gm-project-brief__copy p {
  max-width: 44ch;
  margin: 38px 0 0;
  padding-top: 22px;
  border-top: 1px solid color-mix(in srgb, var(--gm-paper) 34%, transparent);
  color: color-mix(in srgb, var(--gm-paper-clear) 75%, var(--gm-green));
}

.gm-project-guide {
  margin-top: clamp(38px, 5vw, 64px);
}

.gm-project-guide h3 {
  margin: 0;
  color: var(--gm-paper-clear);
  font-family: var(--gm-display);
  font-size: 1.05rem;
  font-weight: 560;
  letter-spacing: -0.015em;
}

.gm-project-guide dl {
  margin: 18px 0 0;
  border-top: 1px solid color-mix(in srgb, var(--gm-paper) 34%, transparent);
}

.gm-project-guide dl > div {
  display: grid;
  grid-template-columns: minmax(110px, 0.75fr) minmax(0, 1.25fr);
  gap: 18px;
  padding: 12px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper) 20%, transparent);
}

.gm-project-guide dt,
.gm-project-guide dd {
  margin: 0;
  font-size: 0.76rem;
}

.gm-project-guide dt {
  color: var(--gm-paper-clear);
  font-weight: 650;
}

.gm-project-guide dd {
  color: color-mix(in srgb, var(--gm-paper-clear) 72%, var(--gm-green));
}

.gm-project-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
  gap: 30px;
  padding: clamp(60px, 7vw, 112px) clamp(30px, 5vw, 80px);
}

.gm-form-row {
  min-width: 0;
}

.gm-form-row--wide {
  grid-column: 1 / -1;
}

.gm-form-row label {
  display: block;
  margin-bottom: 9px;
  color: color-mix(in srgb, var(--gm-paper-clear) 72%, var(--gm-green));
  font-size: 0.78rem;
  font-weight: 600;
}

.gm-form-row input,
.gm-form-row textarea,
.gm-form-row select {
  width: 100%;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper) 46%, transparent);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--gm-paper-clear);
  font-family: inherit;
}

.gm-form-row input,
.gm-form-row select {
  min-height: 48px;
}

.gm-form-row select {
  padding: 0 34px 0 0;
  color-scheme: dark;
}

.gm-form-row select:invalid {
  color: color-mix(in srgb, var(--gm-paper-clear) 56%, var(--gm-green));
}

.gm-form-row option {
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-form-row textarea {
  min-height: 96px;
  resize: vertical;
}

.gm-form-row input:focus,
.gm-form-row textarea:focus,
.gm-form-row select:focus {
  border-bottom-color: var(--gm-signal);
}

.gm-form-row textarea::placeholder {
  color: color-mix(in srgb, var(--gm-paper-clear) 56%, var(--gm-green));
  opacity: 1;
}

.gm-project-form__footer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  margin-top: 14px;
}

.gm-form-status {
  margin: 0;
  color: var(--gm-signal);
  font-size: 0.8rem;
}

.gm-footer {
  display: flex;
  justify-content: space-between;
  gap: 28px;
  padding: 24px clamp(24px, 4vw, 64px);
  border-top: 1px solid color-mix(in srgb, var(--gm-paper) 26%, transparent);
  background: var(--gm-green-deep);
  color: color-mix(in srgb, var(--gm-paper-clear) 68%, var(--gm-green));
  font-size: 0.72rem;
}

.gm-footer p {
  margin: 0;
}

.gm-footer nav {
  display: flex;
  gap: 22px;
}

.gm-footer a {
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 36%, transparent);
  color: var(--gm-paper-clear);
}

.gm-enhanced [data-reveal="copy"] > *,
.gm-enhanced [data-reveal="facade"] {
  opacity: 0.01;
}

.gm-enhanced [data-reveal="copy"] > * {
  transform: translateY(24px);
  filter: blur(8px);
}

.gm-enhanced [data-reveal="facade"] {
  clip-path: inset(0 0 0 100%);
}

.gm-enhanced .gm-home-ready [data-reveal="copy"] > *,
.gm-enhanced .gm-home-ready [data-reveal="facade"] {
  opacity: 1;
}

.gm-enhanced .gm-home-ready [data-reveal="copy"] > * {
  transform: translateY(0);
  filter: blur(0);
  transition: opacity 900ms var(--gm-ease), transform 900ms var(--gm-ease), filter 900ms var(--gm-ease);
}

.gm-enhanced .gm-home-ready [data-reveal="copy"] > :nth-child(2) {
  transition-delay: 90ms;
}

.gm-enhanced .gm-home-ready [data-reveal="copy"] > :nth-child(3) {
  transition-delay: 160ms;
}

.gm-enhanced .gm-home-ready [data-reveal="copy"] > :nth-child(4) {
  transition-delay: 210ms;
}

.gm-enhanced .gm-home-ready [data-reveal="facade"] {
  clip-path: inset(0);
  transition: opacity 700ms ease, clip-path 1200ms var(--gm-ease);
}

@media (max-width: 1220px) {
  .gm-header {
    grid-template-columns: minmax(175px, 0.62fr) minmax(500px, 1.95fr) auto;
  }

  .gm-header-action {
    min-width: 210px;
    padding-inline: 24px;
  }

  .gm-hero {
    grid-template-columns: minmax(410px, 44fr) minmax(0, 56fr);
  }

  .gm-property-types {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .gm-property-types ul {
    grid-template-columns: repeat(3, 1fr);
  }

  .gm-property-types li:nth-child(-n + 3) {
    border-bottom: 1px solid var(--gm-rule-soft);
  }

  .gm-performance-model {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gm-performance-model__visual {
    padding: 58px;
  }

  .gm-performance-model__copy {
    padding: 68px 54px;
  }

  .gm-workstream {
    padding: 42px;
  }

  .gm-workstream__diagram {
    margin: -42px -42px 34px;
  }

  .gm-engagement {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gm-engagement__triggers,
  .gm-engagement__outputs {
    padding: 68px 50px;
  }
}

@media (max-width: 980px) {
  html:has(body.gm-home) {
    scroll-padding-top: 70px;
  }

  .gm-header {
    grid-template-columns: 1fr auto;
    min-height: 70px;
  }

  .gm-wordmark {
    min-height: 70px;
    border-right: 0;
  }

  .gm-menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    min-width: 118px;
    min-height: 70px;
    padding: 0 24px;
    border: 0;
    border-left: 1px solid var(--gm-rule);
    background: transparent;
    color: var(--gm-ink);
    cursor: pointer;
  }

  .gm-menu-toggle__label {
    font-size: 0.78rem;
    font-weight: 700;
  }

  .gm-menu-toggle__icon {
    position: relative;
    width: 22px;
    height: 12px;
  }

  .gm-menu-toggle__icon i {
    position: absolute;
    left: 0;
    width: 22px;
    height: 1px;
    background: currentColor;
    transition: transform 320ms var(--gm-ease), top 320ms var(--gm-ease);
  }

  .gm-menu-toggle__icon i:first-child {
    top: 2px;
  }

  .gm-menu-toggle__icon i:last-child {
    top: 10px;
  }

  .gm-menu-toggle[aria-expanded="true"] .gm-menu-toggle__icon i:first-child {
    top: 6px;
    transform: rotate(45deg);
  }

  .gm-menu-toggle[aria-expanded="true"] .gm-menu-toggle__icon i:last-child {
    top: 6px;
    transform: rotate(-45deg);
  }

  .gm-primary-nav {
    position: absolute;
    top: 70px;
    right: 0;
    left: 0;
    display: grid;
    grid-template-columns: 1fr;
    transform: translateY(-14px);
    visibility: hidden;
    opacity: 0;
    background: var(--gm-paper-clear);
    box-shadow: 0 24px 42px -28px rgb(13 47 35 / 44%);
    transition: opacity 250ms ease, transform 450ms var(--gm-ease), visibility 0s linear 450ms;
  }

  .gm-primary-nav.is-open {
    transform: translateY(0);
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
  }

  .gm-primary-nav a {
    justify-content: flex-start;
    min-height: 62px;
    padding-inline: 28px;
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule-soft);
  }

  .gm-primary-nav a::after {
    display: none;
  }

  .gm-primary-nav .gm-nav-consultation {
    display: flex;
  }

  .gm-header-action {
    display: none;
  }

  .gm-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .gm-hero__copy {
    min-height: 620px;
    padding: 84px clamp(28px, 7vw, 64px) 44px;
  }

  .gm-hero h1 {
    max-width: none;
    font-size: clamp(3.6rem, 8vw, 4.8rem);
  }

  .gm-facade {
    min-height: 520px;
    border-top: 1px solid var(--gm-rule);
  }

  .gm-facade > img {
    object-position: 50% 52%;
  }

  .gm-property-types {
    grid-template-columns: 1fr;
  }

  .gm-property-types > p {
    min-height: 58px;
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule);
  }

  .gm-performance-model {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .gm-performance-model__visual {
    min-height: 570px;
    padding: 60px;
  }

  .gm-performance-model__copy {
    min-height: 620px;
    padding: 78px clamp(36px, 8vw, 72px);
    border-top: 1px solid var(--gm-rule);
    border-left: 0;
  }

  .gm-decision-path {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gm-decision-path li:nth-child(2n) {
    border-right: 0;
  }

  .gm-decision-path li:nth-child(-n + 2) {
    border-bottom: 1px solid var(--gm-rule-soft);
  }

  .gm-ledger {
    grid-template-columns: 1fr;
  }

  .gm-workstream {
    display: grid;
    grid-template-columns: minmax(180px, 0.65fr) minmax(0, 1.35fr);
    gap: 0 36px;
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule);
  }

  .gm-workstream__diagram {
    grid-row: 1 / span 4;
    min-height: 100%;
    margin: -42px 0 -42px -42px;
    border-right: 1px solid var(--gm-rule);
    border-bottom: 0;
  }

  .gm-workstream > p {
    min-height: 0;
  }

  .gm-engagement {
    grid-template-columns: 1fr;
  }

  .gm-engagement__triggers,
  .gm-engagement__outputs {
    padding: 78px clamp(36px, 8vw, 72px);
  }

  .gm-engagement__outputs {
    border-top: 1px solid var(--gm-rule);
    border-left: 0;
  }

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

  .gm-project-brief__copy {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--gm-paper) 26%, transparent);
  }

  .gm-project-form {
    gap: 22px;
    padding: 56px clamp(28px, 7vw, 56px);
  }

  .gm-form-row input,
  .gm-form-row select {
    min-height: 44px;
  }

  .gm-form-row textarea {
    min-height: 84px;
  }
}

@media (max-width: 700px) {
  body.gm-home {
    font-size: 16px;
  }

  .gm-site {
    border-inline: 0;
  }

  .gm-wordmark {
    padding-inline: 20px;
    font-size: 0.88rem;
  }

  .gm-menu-toggle {
    min-width: 66px;
    padding: 0 20px;
  }

  .gm-menu-toggle__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .gm-hero__copy {
    min-height: 0;
    padding: 52px 22px 30px;
  }

  .gm-hero h1 {
    max-width: none;
    font-size: clamp(2rem, 10vw, 2.65rem);
    letter-spacing: -0.015em;
  }

  .gm-hero__summary {
    max-width: 38ch;
    margin-top: 26px;
    padding-top: 18px;
  }

  .gm-hero__actions {
    align-items: stretch;
    flex-direction: column;
    gap: 18px;
    margin-top: 26px;
  }

  .gm-button {
    width: 100%;
    min-width: 0;
  }

  .gm-text-link {
    align-self: flex-start;
  }

  .gm-hero__scope {
    padding-top: 28px;
  }

  .gm-facade {
    min-height: 410px;
  }

  .gm-facade > img {
    object-position: 60% center;
  }

  .gm-material-tag {
    min-width: 124px;
    padding: 9px 10px;
  }

  .gm-material-tag--glass {
    top: 5%;
    left: 4%;
  }

  .gm-material-tag--systems {
    top: auto;
    right: 4%;
    bottom: 6%;
  }

  .gm-material-tag--operations {
    display: none;
  }

  .gm-facade__leaders path:nth-of-type(3),
  .gm-facade__leaders circle:nth-of-type(3) {
    display: none;
  }

  .gm-property-types ul {
    grid-template-columns: repeat(2, 1fr);
  }

  .gm-property-types li:nth-child(-n + 4) {
    border-bottom: 1px solid var(--gm-rule-soft);
  }

  .gm-property-types li:nth-child(even) {
    border-right: 0;
  }

  .gm-performance-model__visual {
    min-height: 420px;
    padding: 34px 20px;
  }

  .gm-performance-orbit {
    width: min(100%, 360px);
  }

  .gm-performance-orbit > strong {
    width: 88px;
    font-size: 0.88rem;
  }

  .gm-orbit-label {
    padding: 5px 7px;
    font-size: 0.6rem;
  }

  .gm-performance-model__copy {
    min-height: 0;
    padding: 60px 22px;
  }

  .gm-performance-model h2 {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }

  .gm-model-outcomes > div {
    grid-template-columns: 94px minmax(0, 1fr);
    gap: 14px;
  }

  .gm-advisory__intro {
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 64px 22px 46px;
  }

  .gm-decision-path {
    grid-column: auto;
    grid-template-columns: 1fr;
    margin-top: 4px;
  }

  .gm-decision-path li {
    padding: 21px 0;
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule-soft);
  }

  .gm-decision-path li:last-child {
    border-bottom: 0;
  }

  .gm-performance-model h2,
  .gm-advisory h2,
  .gm-engagement h2,
  .gm-project-brief h2 {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }

  .gm-workstream {
    display: block;
    padding: 36px 22px 42px;
  }

  .gm-workstream__diagram {
    min-height: 148px;
    margin: -36px -22px 30px;
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule);
  }

  .gm-workstream > p {
    margin-bottom: 24px;
  }

  .gm-engagement__triggers,
  .gm-engagement__outputs {
    padding: 60px 22px;
  }

  .gm-engagement__triggers ul {
    grid-template-columns: 1fr;
    margin-top: 38px;
  }

  .gm-engagement__triggers li,
  .gm-engagement__triggers li:nth-child(odd),
  .gm-engagement__triggers li:nth-child(even) {
    padding: 23px 0;
    border-right: 0;
  }

  .gm-engagement__outputs ul {
    margin-top: 34px;
  }

  .gm-project-brief__copy,
  .gm-project-form {
    padding: 56px 22px;
  }

  .gm-project-guide dl > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .gm-project-form {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .gm-form-row--wide {
    grid-column: auto;
  }

  .gm-project-form__footer {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 6px;
  }

  .gm-form-row label {
    margin-bottom: 6px;
  }

  .gm-form-row input,
  .gm-form-row select {
    min-height: 42px;
  }

  .gm-form-row textarea {
    min-height: 78px;
  }

  .gm-footer {
    align-items: flex-start;
    flex-direction: column;
    padding: 24px 22px;
  }
}

@media (max-width: 370px) {
  .gm-hero__copy {
    padding-top: 46px;
  }

  .gm-hero__summary {
    margin-top: 26px;
  }

  .gm-material-tag strong {
    font-size: 0.7rem;
  }

  .gm-performance-model__visual {
    min-height: 360px;
  }

  .gm-orbit-label {
    font-size: 0.55rem;
  }

  .gm-property-types li {
    padding-inline: 8px;
    font-size: 0.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html:has(:is(body.gm-home, body.gm-commerce)) {
    scroll-behavior: auto;
  }

  .gm-enhanced [data-reveal="copy"] > *,
  .gm-enhanced [data-reveal="facade"],
  .gm-primary-nav,
  .gm-header-action,
  .gm-button,
  .gm-text-link span {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    transition: none !important;
  }
}

/* Service commerce: the WooCommerce journey reads as a measured scope register. */
.gm-commerce-entry {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-commerce-entry__copy {
  padding: clamp(68px, 7vw, 112px) clamp(36px, 6vw, 92px);
}

.gm-commerce-entry h2 {
  max-width: 15ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.6rem, 4.2vw, 4.9rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
}

.gm-commerce-entry__copy > p {
  max-width: 55ch;
  margin: 32px 0;
  color: var(--gm-ink-soft);
}

.gm-commerce-entry__register,
.gm-scope-register {
  display: grid;
  grid-template-rows: repeat(4, minmax(94px, 1fr));
  border-left: 1px solid var(--gm-rule);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-commerce-entry__register > div,
.gm-scope-register > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  align-items: center;
  padding: 20px clamp(28px, 4vw, 56px);
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
}

.gm-commerce-entry__register > div:last-child,
.gm-scope-register > div:last-child {
  border-bottom: 0;
}

.gm-commerce-entry__register span,
.gm-scope-register span {
  color: var(--gm-signal);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.gm-commerce-entry__register strong,
.gm-scope-register strong {
  font-family: var(--gm-display);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 540;
  line-height: 1.2;
}

body.gm-commerce {
  background: var(--gm-paper);
}

.gm-commerce-main {
  min-height: 72vh;
}

.gm-commerce-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(410px, 0.82fr);
  min-height: 520px;
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-commerce-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(70px, 7vw, 112px) clamp(38px, 6vw, 92px);
}

.gm-commerce-hero h1 {
  max-width: 15ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.8rem, 4.6vw, 5.35rem);
  font-weight: 540;
  letter-spacing: -0.04em;
  line-height: 0.98;
}

.gm-commerce-hero__copy > p {
  max-width: 60ch;
  margin: 34px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
  font-size: 1.06rem;
}

.gm-commerce-hero__copy .gm-text-link {
  align-self: flex-start;
  margin-top: 28px;
}

.gm-commerce-register {
  display: grid;
  align-content: end;
  margin: 0;
  padding: clamp(58px, 6vw, 88px) clamp(34px, 5vw, 72px);
  border-left: 1px solid var(--gm-rule);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-commerce-register > div {
  display: grid;
  grid-template-columns: minmax(120px, 0.8fr) minmax(0, 1.2fr);
  gap: 22px;
  padding: 22px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

.gm-commerce-register > div:first-child {
  border-top: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

.gm-commerce-register dt,
.gm-commerce-register dd {
  margin: 0;
}

.gm-commerce-register dt {
  color: color-mix(in srgb, var(--gm-paper-clear) 62%, var(--gm-green));
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.gm-commerce-register dd {
  font-family: var(--gm-display);
  font-size: 1rem;
  font-weight: 540;
  line-height: 1.3;
}

/* How we work: an image-led field-to-decision sequence. */
.gm-how-main {
  background: var(--gm-paper-clear);
}

.gm-how-hero {
  display: grid;
  grid-template-columns: minmax(390px, 45fr) minmax(0, 55fr);
  min-height: min(680px, calc(100vh - 76px));
  border-bottom: 1px solid var(--gm-rule);
}

.gm-how-hero__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(66px, 6.5vw, 104px) clamp(38px, 5.4vw, 86px);
  background: var(--gm-paper-clear);
}

.gm-how-hero h1 {
  max-width: 12ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(3rem, 4.9vw, 5.45rem);
  font-weight: 540;
  letter-spacing: -0.04em;
  line-height: 0.98;
}

.gm-how-hero__copy > p {
  max-width: 54ch;
  margin: 36px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
  font-size: 1.04rem;
}

.gm-how-hero__copy .gm-text-link {
  align-self: flex-start;
  margin-top: 28px;
}

.gm-how-hero__image,
.gm-how-evidence__image,
.gm-service-options-hero__image {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--gm-green-deep);
}

.gm-how-hero__image > img,
.gm-how-evidence__image > img,
.gm-service-options-hero__image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gm-how-hero__image > img {
  object-position: 52% center;
}

.gm-how-hero__image figcaption,
.gm-how-evidence__image figcaption,
.gm-service-options-hero__image figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 11px 16px;
  background: color-mix(in srgb, var(--gm-green-deep) 92%, transparent);
  color: var(--gm-paper-clear);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.05em;
}

.gm-how-process {
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-how-process ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-how-process li {
  min-height: 244px;
  padding: clamp(30px, 3.5vw, 54px);
  border-right: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
}

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

.gm-how-process span {
  color: var(--gm-signal);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.gm-how-process h3 {
  margin: 40px 0 14px;
  font-family: var(--gm-display);
  font-size: clamp(1.45rem, 2vw, 2.15rem);
  font-weight: 540;
  letter-spacing: -0.025em;
  line-height: 1.05;
}

.gm-how-process p {
  max-width: 30ch;
  margin: 0;
  color: color-mix(in srgb, var(--gm-paper-clear) 72%, var(--gm-green));
  font-size: 0.88rem;
}

.gm-how-evidence {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
  min-height: 650px;
  border-bottom: 1px solid var(--gm-rule);
}

.gm-how-evidence__image {
  border-right: 1px solid var(--gm-rule);
}

.gm-how-evidence__image > img {
  object-position: center;
}

.gm-how-evidence__ledger {
  align-self: center;
  padding: clamp(58px, 6vw, 92px) clamp(38px, 5.5vw, 82px);
}

.gm-how-evidence__ledger > h2 {
  max-width: 12ch;
  margin: 0 0 48px;
  font-family: var(--gm-display);
  font-size: clamp(2.5rem, 4vw, 4.65rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
}

.gm-how-evidence__ledger section {
  display: grid;
  grid-template-columns: minmax(145px, 0.6fr) minmax(0, 1.4fr);
  gap: 28px;
  padding: 25px 0;
  border-top: 1px solid var(--gm-rule);
}

.gm-how-evidence__ledger section:last-child {
  border-bottom: 1px solid var(--gm-rule);
}

.gm-how-evidence__ledger h3 {
  margin: 0;
  color: var(--gm-green);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.gm-how-evidence__ledger ul {
  margin: 0;
  padding: 0;
  color: var(--gm-ink-soft);
  list-style: none;
}

.gm-how-evidence__ledger li + li {
  margin-top: 9px;
}

.gm-how-evidence__ledger li::before {
  margin-right: 10px;
  color: var(--gm-green);
  content: "—";
}

.gm-how-close {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 52px;
  align-items: end;
  padding: clamp(62px, 7vw, 104px) clamp(38px, 6vw, 92px);
  background: var(--gm-paper);
}

.gm-how-close h2 {
  max-width: 19ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.4rem, 3.8vw, 4.5rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
}

/* Service options: one decision at a time, with detail available on demand. */
.gm-service-options-hero {
  grid-template-columns: minmax(0, 0.94fr) minmax(460px, 1.06fr);
  min-height: 570px;
}

.gm-service-options-hero__image {
  border-left: 1px solid var(--gm-rule);
}

.gm-service-options-hero__image > img {
  object-position: center;
}

.gm-service-choice {
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-service-choice__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
  gap: clamp(46px, 8vw, 128px);
  align-items: end;
  padding: clamp(58px, 6vw, 92px) clamp(36px, 6vw, 92px);
  border-bottom: 1px solid var(--gm-rule);
}

.gm-service-choice__intro h2 {
  max-width: 14ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.5rem, 4vw, 4.65rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
}

.gm-service-choice__intro p {
  max-width: 54ch;
  margin: 0;
  color: var(--gm-ink-soft);
}

.gm-service-selector {
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(390px, 0.58fr);
  align-items: start;
}

.gm-service-options {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.gm-service-option {
  display: grid;
  grid-template-columns: 22px 74px minmax(0, 1fr) auto;
  gap: clamp(18px, 2.4vw, 36px);
  align-items: center;
  min-height: 132px;
  padding: 25px clamp(28px, 4.5vw, 68px);
  border-bottom: 1px solid var(--gm-rule);
  cursor: pointer;
  transition: background-color 220ms ease;
}

.gm-service-option:last-child {
  border-bottom: 0;
}

.gm-service-option:hover,
.gm-service-option:has(input:checked) {
  background: var(--gm-paper);
}

.gm-service-option input {
  appearance: none;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1px solid var(--gm-ink);
  border-radius: 0;
  background: var(--gm-paper-clear);
  cursor: pointer;
}

.gm-service-option input:checked {
  border-color: var(--gm-green-deep);
  background: var(--gm-signal);
  box-shadow: inset 0 0 0 5px var(--gm-green-deep);
}

.gm-service-option__code {
  color: var(--gm-green);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
}

.gm-service-option__copy {
  display: grid;
  gap: 8px;
}

.gm-service-option__copy strong {
  font-family: var(--gm-display);
  font-size: clamp(1.35rem, 1.8vw, 1.95rem);
  font-weight: 540;
  letter-spacing: -0.02em;
  line-height: 1.08;
}

.gm-service-option__copy small {
  max-width: 58ch;
  color: var(--gm-ink-soft);
  font-size: 0.82rem;
}

.gm-service-option__action {
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  font-size: 0.74rem;
  font-weight: 650;
}

.gm-service-selection {
  position: sticky;
  top: 76px;
  min-height: 528px;
  padding: clamp(40px, 4.4vw, 68px);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-service-selection h2 {
  max-width: 13ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.2rem, 3vw, 3.5rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
}

.gm-service-selection > p {
  max-width: 46ch;
  margin: 26px 0 36px;
  color: color-mix(in srgb, var(--gm-paper-clear) 72%, var(--gm-green));
}

.gm-service-selection dl {
  margin: 0 0 34px;
}

.gm-service-selection dl > div {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 18px;
  padding: 17px 0;
  border-top: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

.gm-service-selection dl > div:last-child {
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

.gm-service-selection dt,
.gm-service-selection dd {
  margin: 0;
}

.gm-service-selection dt {
  color: var(--gm-signal);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.gm-service-selection dd {
  font-size: 0.84rem;
}

.gm-service-selection .gm-button {
  width: 100%;
}

.gm-service-selection .gm-text-link {
  margin-top: 26px;
  border-color: color-mix(in srgb, var(--gm-paper-clear) 55%, transparent);
  color: var(--gm-paper-clear);
  font-size: 0.78rem;
}

.gm-register-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(56px, 8vw, 128px);
  padding: clamp(72px, 8vw, 120px) clamp(36px, 6vw, 92px);
  border-bottom: 1px solid var(--gm-rule);
}

.gm-register-intro h2 {
  max-width: 15ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.6rem, 4.2vw, 4.9rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
}

.gm-register-intro > div {
  max-width: 62ch;
  color: var(--gm-ink-soft);
}

.gm-register-intro p {
  margin: 0;
}

.gm-register-intro p + p {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--gm-rule-soft);
}

.gm-commerce-content {
  padding: clamp(58px, 6vw, 96px) clamp(32px, 5vw, 76px);
  background: var(--gm-paper-clear);
}

.gm-commerce-content--catalogue {
  padding: 0;
  background: var(--gm-paper);
}

.gm-commerce-content--catalogue > .woocommerce {
  width: 100%;
}

.gm-commerce-content .woocommerce-notices-wrapper:empty {
  display: none;
}

.gm-commerce-content .woocommerce-message,
.gm-commerce-content .woocommerce-info,
.gm-commerce-content .woocommerce-error {
  margin: 0 0 30px;
  padding: 20px 24px;
  border: 1px solid var(--gm-rule);
  border-top: 1px solid var(--gm-rule);
  border-radius: 0;
  background: var(--gm-paper);
  color: var(--gm-ink);
}

.gm-commerce-content .woocommerce-message::before,
.gm-commerce-content .woocommerce-info::before,
.gm-commerce-content .woocommerce-error::before {
  color: var(--gm-green);
}

.gm-commerce-content .woocommerce-message .button,
.gm-commerce-content .woocommerce-info .button {
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--gm-ink);
}

body.gm-commerce .woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--gm-rule);
}

body.gm-commerce .woocommerce ul.products::before,
body.gm-commerce .woocommerce ul.products::after {
  display: none;
}

body.gm-commerce .woocommerce ul.products li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  width: auto !important;
  min-height: 520px;
  margin: 0 !important;
  padding: clamp(42px, 5vw, 72px);
  border-right: 1px solid var(--gm-rule);
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

body.gm-commerce .woocommerce ul.products li.product:nth-child(2n) {
  border-right: 0;
}

body.gm-commerce .woocommerce ul.products li.product::after {
  position: absolute;
  top: 30px;
  right: 30px;
  color: var(--gm-green);
  font-family: var(--gm-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

body.gm-commerce .woocommerce ul.products li.product:nth-child(1)::after {
  content: "BF–01";
}

body.gm-commerce .woocommerce ul.products li.product:nth-child(2)::after {
  content: "BF–02";
}

body.gm-commerce .woocommerce ul.products li.product:nth-child(3)::after {
  content: "BF–03";
}

body.gm-commerce .woocommerce ul.products li.product:nth-child(4)::after {
  content: "BF–04";
}

body.gm-commerce .woocommerce ul.products li.product .woocommerce-LoopProduct-link {
  display: flex;
  flex: 1;
  flex-direction: column;
}

body.gm-commerce .woocommerce ul.products li.product .woocommerce-loop-product__title {
  max-width: 16ch;
  margin: 40px 0 0;
  padding: 0;
  color: var(--gm-ink);
  font-family: var(--gm-display);
  font-size: clamp(2.2rem, 3.2vw, 3.7rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.gm-loop-scope-summary {
  max-width: 58ch;
  margin-top: 28px;
  color: var(--gm-ink-soft);
}

.gm-loop-scope-summary p {
  margin: 0;
}

.gm-loop-scope-summary p + p {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--gm-rule-soft);
  font-size: 0.84rem;
}

body.gm-commerce .woocommerce ul.products li.product .price {
  display: block;
  margin: auto 0 0;
  padding-top: 34px;
  color: var(--gm-ink);
}

.gm-scope-fee {
  display: block;
  font-family: var(--gm-display);
  font-size: 1.05rem;
  font-weight: 560;
}

.gm-scope-fee-note {
  display: block;
  margin-top: 4px;
  color: var(--gm-ink-soft);
  font-size: 0.75rem;
}

.gm-loop-scope-note {
  margin: 12px 0 0;
  color: var(--gm-green);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

body.gm-commerce .woocommerce ul.products li.product .button {
  align-self: flex-start;
  margin: 26px 0 0;
  padding: 10px 0 8px;
  border-bottom: 1px solid var(--gm-ink);
  border-radius: 0;
  background: transparent;
  color: var(--gm-ink);
  font-size: 0.86rem;
  font-weight: 650;
  line-height: 1.4;
}

body.gm-commerce .woocommerce ul.products li.product .button::after {
  margin-left: 16px;
  content: "→";
}

body.gm-commerce .woocommerce nav.woocommerce-pagination {
  padding: 40px;
}

body.gm-commerce .woocommerce nav.woocommerce-pagination ul {
  border: 0;
}

body.gm-commerce .woocommerce nav.woocommerce-pagination ul li {
  border: 0;
}

body.gm-commerce .woocommerce nav.woocommerce-pagination ul li a,
body.gm-commerce .woocommerce nav.woocommerce-pagination ul li span {
  min-width: 42px;
  min-height: 42px;
  padding: 11px;
  border: 1px solid var(--gm-rule);
  background: transparent;
  color: var(--gm-ink);
}

body.gm-commerce .woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-commerce-content--product {
  padding: 0;
}

body.gm-commerce.single-product .product {
  margin: 0;
}

body.gm-commerce.single-product .product .summary {
  float: none;
  width: 100%;
  margin: 0;
  padding: clamp(58px, 7vw, 106px) clamp(36px, 8vw, 126px);
  border-bottom: 1px solid var(--gm-rule);
}

body.gm-commerce.single-product .product .summary .price {
  margin: 0;
  color: var(--gm-ink);
}

body.gm-commerce.single-product .woocommerce-product-details__short-description {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  gap: clamp(40px, 7vw, 104px);
  max-width: 1180px;
  margin-top: 36px;
  color: var(--gm-ink-soft);
}

body.gm-commerce.single-product .woocommerce-product-details__short-description p {
  margin: 0;
}

body.gm-commerce.single-product .woocommerce-product-details__short-description p + p {
  padding: 24px 0 0;
  border-top: 1px solid var(--gm-rule-soft);
}

.gm-single-scope-actions {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 30px;
  align-items: center;
  max-width: 920px;
  margin-top: 38px;
}

.gm-single-scope-actions p {
  max-width: 52ch;
  margin: 0;
  color: var(--gm-ink-soft);
  font-size: 0.82rem;
}

.gm-single-scope-description {
  clear: both;
  width: 100%;
}

.gm-service-description__decision {
  display: grid;
  grid-template-columns: minmax(230px, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(46px, 8vw, 118px);
  align-items: end;
  padding: clamp(58px, 7vw, 96px) clamp(36px, 8vw, 126px);
  background: var(--gm-paper-clear);
}

.gm-service-description__decision h2,
.gm-service-description__decision p {
  margin: 0;
}

.gm-service-description__decision p {
  max-width: 38ch;
  font-family: var(--gm-display);
  font-size: clamp(2rem, 3vw, 3.45rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.gm-service-description__outline {
  border-top: 1px solid var(--gm-rule);
  background: var(--gm-paper);
}

.gm-service-description__outline > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 82px;
  padding: 22px clamp(36px, 8vw, 126px);
  color: var(--gm-ink);
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.gm-service-description__outline > summary::-webkit-details-marker {
  display: none;
}

.gm-service-description__outline > summary::after {
  color: var(--gm-green);
  font-family: var(--gm-display);
  font-size: 1.5rem;
  font-weight: 400;
  content: "+";
}

.gm-service-description__outline[open] > summary {
  border-bottom: 1px solid var(--gm-rule);
}

.gm-service-description__outline[open] > summary::after {
  content: "−";
}

.gm-service-description__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-block: 1px solid var(--gm-rule);
}

.gm-service-description__grid section,
.gm-service-description__fit,
.gm-service-description__boundary {
  padding: clamp(42px, 5vw, 70px) clamp(36px, 6vw, 92px);
}

.gm-service-description__grid section + section {
  border-left: 1px solid var(--gm-rule);
}

.gm-service-description h2 {
  margin: 0 0 30px;
  font-family: var(--gm-display);
  font-size: clamp(1.55rem, 2.2vw, 2.45rem);
  font-weight: 540;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.gm-service-description ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-service-description li {
  position: relative;
  padding: 16px 0 16px 22px;
  border-bottom: 1px solid var(--gm-rule-soft);
}

.gm-service-description li:first-child {
  border-top: 1px solid var(--gm-rule-soft);
}

.gm-service-description li::before {
  position: absolute;
  top: 25px;
  left: 0;
  width: 7px;
  height: 7px;
  content: "";
  background: var(--gm-green);
}

.gm-service-description__fit {
  display: grid;
  grid-template-columns: minmax(230px, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(46px, 8vw, 118px);
  border-top: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-service-description__fit p,
.gm-service-description__boundary p {
  max-width: 66ch;
  margin: 0;
  color: var(--gm-ink-soft);
}

.gm-service-description__boundary {
  display: grid;
  grid-template-columns: minmax(230px, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(46px, 8vw, 118px);
  border-top: 1px solid var(--gm-rule);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-service-description__boundary p {
  color: color-mix(in srgb, var(--gm-paper-clear) 72%, var(--gm-green));
}

/* Consultation: a project decision presented as a commissioning docket. */
.gm-consultation-hero {
  display: grid;
  grid-template-columns: minmax(430px, 42fr) minmax(0, 58fr);
  min-height: 760px;
  border-bottom: 1px solid var(--gm-rule);
}

.gm-consultation-intro {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(56px, 6vw, 92px) clamp(36px, 5.5vw, 84px);
  background: var(--gm-paper);
}

.gm-consultation-kicker {
  margin: 0 0 28px;
  color: var(--gm-green);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gm-consultation-intro h1 {
  max-width: 10ch;
  margin: 0;
  font-family: var(--gm-hero-display);
  font-size: clamp(3.55rem, 5.4vw, 6.25rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 0.92;
  text-transform: uppercase;
}

.gm-consultation-lede {
  max-width: 46ch;
  margin: 34px 0 0;
  padding-top: 22px;
  border-top: 1px solid var(--gm-rule);
  color: var(--gm-ink-soft);
}

.gm-consultation-prep {
  margin-top: auto;
  padding-top: 44px;
}

.gm-consultation-prep > div {
  display: grid;
  grid-template-columns: minmax(150px, 0.75fr) minmax(0, 1.25fr);
  gap: 24px;
  align-items: end;
  padding: 18px 0;
  border-top: 1px solid var(--gm-rule);
}

.gm-consultation-prep h2,
.gm-consultation-prep p {
  margin: 0;
}

.gm-consultation-prep h2 {
  font-family: var(--gm-display);
  font-size: 1rem;
  font-weight: 560;
  line-height: 1.15;
}

.gm-consultation-prep p {
  color: var(--gm-ink-soft);
  font-size: 0.75rem;
}

.gm-consultation-prep ul {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--gm-rule);
  list-style: none;
}

.gm-consultation-prep li {
  position: relative;
  padding: 11px 0 11px 23px;
  border-top: 1px solid var(--gm-rule-soft);
  color: var(--gm-ink-soft);
  font-size: 0.8rem;
}

.gm-consultation-prep li::before {
  position: absolute;
  top: 17px;
  left: 2px;
  width: 8px;
  height: 8px;
  border: 1px solid var(--gm-green);
  content: "";
}

.gm-consultation-form {
  min-width: 0;
  padding: clamp(52px, 5vw, 78px) clamp(36px, 5vw, 78px);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-consultation-form__header {
  display: grid;
  grid-template-columns: minmax(110px, 0.38fr) minmax(0, 1.62fr);
  gap: 14px clamp(24px, 3vw, 46px);
  align-items: end;
  margin-bottom: 42px;
  padding-bottom: 30px;
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 24%, transparent);
}

.gm-consultation-form__header > span {
  grid-row: 1 / span 2;
  align-self: start;
  color: var(--gm-signal);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gm-consultation-form__header h2,
.gm-consultation-form__header p {
  grid-column: 2;
  margin: 0;
}

.gm-consultation-form__header h2 {
  font-family: var(--gm-display);
  font-size: clamp(2.4rem, 3.7vw, 4.4rem);
  font-weight: 540;
  letter-spacing: -0.04em;
  line-height: 0.98;
}

.gm-consultation-form__header p {
  max-width: 52ch;
  color: color-mix(in srgb, var(--gm-paper-clear) 72%, var(--gm-green));
  font-size: 0.82rem;
}

.gm-consultation-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.gm-consultation-form label {
  display: grid;
  min-width: 0;
  gap: 9px;
}

.gm-consultation-form label > span {
  color: color-mix(in srgb, var(--gm-paper-clear) 76%, var(--gm-green));
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
}

.gm-consultation-field--wide {
  grid-column: 1 / -1;
}

.gm-consultation-form input,
.gm-consultation-form select,
.gm-consultation-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--gm-paper-clear) 44%, transparent);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--gm-paper-clear);
}

.gm-consultation-form input,
.gm-consultation-form select {
  min-height: 52px;
  padding: 10px 14px;
}

.gm-consultation-form select {
  color-scheme: dark;
}

.gm-consultation-form select:invalid {
  color: color-mix(in srgb, var(--gm-paper-clear) 56%, var(--gm-green));
}

.gm-consultation-form option {
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-consultation-form textarea {
  min-height: 118px;
  padding: 14px;
  resize: vertical;
}

.gm-consultation-form input::placeholder,
.gm-consultation-form textarea::placeholder {
  color: color-mix(in srgb, var(--gm-paper-clear) 52%, var(--gm-green));
  opacity: 1;
}

.gm-consultation-form input:focus,
.gm-consultation-form select:focus,
.gm-consultation-form textarea:focus {
  border-color: var(--gm-signal);
}

.gm-consultation-form__footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  margin-top: 30px;
}

.gm-consultation-form__footer > p {
  margin: 0;
  color: color-mix(in srgb, var(--gm-paper-clear) 62%, var(--gm-green));
  font-size: 0.68rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.gm-consultation-form__footer .gm-button {
  min-width: 296px;
}

.gm-consultation-form > .gm-form-status {
  min-height: 20px;
  margin-top: 18px;
}

.gm-consultation-form .gm-button:disabled {
  transform: none;
  background: var(--gm-rule-soft);
  opacity: 0.72;
}

.gm-consultation-next {
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-consultation-next > header {
  display: grid;
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1.58fr);
  gap: clamp(38px, 7vw, 112px);
  align-items: end;
  padding: clamp(48px, 5vw, 74px) clamp(36px, 6vw, 92px);
  border-bottom: 1px solid var(--gm-rule);
}

.gm-consultation-next > header p,
.gm-consultation-next > header h2 {
  margin: 0;
}

.gm-consultation-next > header p {
  color: var(--gm-green);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gm-consultation-next > header h2 {
  font-family: var(--gm-display);
  font-size: clamp(2.4rem, 4vw, 4.65rem);
  font-weight: 540;
  letter-spacing: -0.04em;
  line-height: 0.98;
}

.gm-consultation-next ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-consultation-next li {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 24px;
  min-height: 220px;
  padding: clamp(34px, 4vw, 58px);
  border-right: 1px solid var(--gm-rule);
}

.gm-consultation-next li:last-child {
  border-right: 0;
}

.gm-consultation-next li > span {
  color: var(--gm-green);
  font-family: var(--gm-hero-display);
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 0.9;
}

.gm-consultation-next h3 {
  margin: 0 0 14px;
  font-family: var(--gm-display);
  font-size: clamp(1.25rem, 1.8vw, 1.85rem);
  font-weight: 540;
  letter-spacing: -0.025em;
  line-height: 1.05;
}

.gm-consultation-next li p {
  max-width: 36ch;
  margin: 0;
  color: var(--gm-ink-soft);
  font-size: 0.84rem;
}

.gm-checkout-proof {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(430px, 1.12fr);
  align-items: stretch;
  border-top: 1px solid var(--gm-rule);
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper);
}

.gm-checkout-proof__intro {
  align-self: center;
  padding: clamp(62px, 7vw, 104px) clamp(36px, 6vw, 92px);
}

.gm-checkout-proof h2 {
  max-width: 18ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.2rem, 3.2vw, 3.7rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1.02;
}

.gm-checkout-proof p {
  max-width: 64ch;
  margin: 24px 0 0;
  color: var(--gm-ink-soft);
}

.gm-cart-demo {
  min-width: 0;
  padding: clamp(44px, 5vw, 72px);
  border-left: 1px solid var(--gm-rule);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

.gm-cart-demo header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

.gm-cart-demo header span {
  color: var(--gm-signal);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.gm-cart-demo header strong {
  font-family: var(--gm-display);
  font-size: 1.1rem;
  font-weight: 540;
}

.gm-cart-demo h3 {
  max-width: 16ch;
  margin: 42px 0 0;
  font-family: var(--gm-display);
  font-size: clamp(2rem, 3vw, 3.45rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
}

.gm-cart-demo > p {
  max-width: 50ch;
  margin-top: 22px;
  color: color-mix(in srgb, var(--gm-paper-clear) 72%, var(--gm-green));
}

.gm-cart-demo dl {
  margin: 34px 0;
}

.gm-cart-demo dl > div {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 22px;
  padding: 16px 0;
  border-top: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

.gm-cart-demo dl > div:last-child {
  border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

.gm-cart-demo dt,
.gm-cart-demo dd {
  margin: 0;
}

.gm-cart-demo dt {
  color: var(--gm-signal);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.gm-cart-demo dd {
  font-size: 0.84rem;
}

.gm-cart-demo .gm-button {
  width: 100%;
}

.gm-cart-demo .gm-cart-demo__unavailable {
  margin: 0;
  padding: 18px 0;
  border-block: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
  color: var(--gm-paper-clear);
}

.gm-local-commerce-note {
  display: grid;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1.65fr);
  gap: 28px;
  padding: 18px clamp(32px, 5vw, 76px);
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-signal);
  color: var(--gm-ink);
  font-size: 0.8rem;
}

.gm-local-commerce-note strong {
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

body.gm-commerce .gm-commerce-content > .wp-block-woocommerce-cart,
body.gm-commerce .gm-commerce-content > .wp-block-woocommerce-checkout {
  max-width: 1280px;
  margin-inline: auto;
}

body.gm-commerce .wc-block-cart,
body.gm-commerce .wc-block-checkout {
  color: var(--gm-ink);
  font-family: var(--gm-body);
  font-size: 16px;
}

body.gm-commerce .wc-block-cart__main,
body.gm-commerce .wc-block-checkout__main {
  padding-right: clamp(28px, 5vw, 66px);
}

body.gm-commerce .wc-block-cart__sidebar,
body.gm-commerce .wc-block-checkout__sidebar {
  padding: clamp(26px, 3vw, 42px);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
}

body.gm-commerce .wc-block-components-sidebar-layout .wc-block-components-main {
  width: 62%;
}

body.gm-commerce .wc-block-components-sidebar-layout .wc-block-components-sidebar {
  width: 38%;
}

body.gm-commerce .wc-block-components-title,
body.gm-commerce .wc-block-components-checkout-step__title,
body.gm-commerce .wc-block-cart-items__header,
body.gm-commerce .wc-block-components-order-summary__button-text,
body.gm-commerce .wc-block-components-totals-wrapper,
body.gm-commerce .wc-block-components-totals-item__label,
body.gm-commerce .wc-block-components-totals-item__value {
  font-family: var(--gm-body);
}

body.gm-commerce .wc-block-components-checkout-step__title,
body.gm-commerce .wc-block-cart__totals-title {
  font-family: var(--gm-display);
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  font-weight: 540;
  letter-spacing: -0.02em;
}

body.gm-commerce .wc-block-components-checkout-step {
  margin: 0;
  padding: 30px 0;
  border-bottom: 1px solid var(--gm-rule-soft);
}

body.gm-commerce .wc-block-components-checkout-step:first-child {
  border-top: 1px solid var(--gm-rule-soft);
}

body.gm-commerce .wc-block-components-text-input input,
body.gm-commerce .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
body.gm-commerce .wc-block-components-address-form__country .wc-blocks-components-select__select,
body.gm-commerce .wc-blocks-components-select .wc-blocks-components-select__select,
body.gm-commerce .woocommerce form .form-row input.input-text,
body.gm-commerce .woocommerce form .form-row textarea {
  min-height: 54px;
  border: 1px solid var(--gm-rule);
  border-radius: 0;
  background: var(--gm-paper-clear);
  color: var(--gm-ink);
  box-shadow: none;
}

body.gm-commerce .wc-block-components-text-input label,
body.gm-commerce .wc-block-components-combobox label,
body.gm-commerce .wc-blocks-components-select .wc-blocks-components-select__label {
  color: var(--gm-ink-soft);
}

body.gm-commerce .wc-block-components-text-input input:focus,
body.gm-commerce .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus,
body.gm-commerce .wc-blocks-components-select .wc-blocks-components-select__select:focus {
  border-color: var(--gm-green);
  box-shadow: 0 0 0 1px var(--gm-green);
}

body.gm-commerce .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
  border-radius: 0;
}

body.gm-commerce .wc-block-components-button,
body.gm-commerce .wp-element-button,
body.gm-commerce .woocommerce button.button,
body.gm-commerce .woocommerce a.button,
body.gm-commerce .woocommerce input.button {
  min-height: 54px;
  padding: 15px 28px;
  border: 0;
  border-radius: 0;
  background: var(--gm-signal);
  color: var(--gm-ink);
  font-family: var(--gm-body);
  font-size: 0.9rem;
  font-weight: 700;
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%);
}

body.gm-commerce .wc-block-components-button:hover,
body.gm-commerce .wp-element-button:hover,
body.gm-commerce .woocommerce button.button:hover,
body.gm-commerce .woocommerce a.button:hover,
body.gm-commerce .woocommerce input.button:hover {
  background: var(--gm-signal-deep);
  color: var(--gm-ink);
}

body.gm-commerce .wc-block-components-button:not(.is-link),
body.gm-commerce .wc-block-components-button:not(.is-link) .wc-block-components-button__text {
  color: var(--gm-ink) !important;
}

body.gm-commerce .wc-block-components-button:disabled,
body.gm-commerce .woocommerce button.button:disabled {
  background: var(--gm-rule-soft);
  color: var(--gm-ink-soft);
  opacity: 0.7;
}

body.gm-commerce .wc-block-cart__submit-button {
  margin-top: 26px;
}

body.gm-commerce .wc-block-cart-items,
body.gm-commerce .wc-block-cart-items th,
body.gm-commerce .wc-block-cart-items td {
  border-color: var(--gm-rule-soft);
}

body.gm-commerce .wc-block-components-order-summary-item__image {
  display: none;
}

body.gm-commerce .wc-block-cart-item__image {
  position: relative;
  display: table-cell;
  width: 80px;
  padding-right: 18px;
}

body.gm-commerce .wc-block-cart-item__image img {
  display: none;
}

body.gm-commerce .wc-block-cart-item__image::before {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  content: "BF";
  background: var(--gm-green-deep);
  color: var(--gm-signal);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

body.gm-commerce .wc-block-cart-item__product,
body.gm-commerce .wc-block-components-order-summary-item__description {
  padding-left: 0;
}

body.gm-commerce .wc-block-components-product-name {
  color: inherit;
  font-family: var(--gm-display);
  font-size: 1.08rem;
  font-weight: 540;
}

body.gm-commerce .wc-block-cart__sidebar *,
body.gm-commerce .wc-block-checkout__sidebar * {
  border-color: color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
}

body.gm-commerce .wc-block-cart__sidebar a,
body.gm-commerce .wc-block-checkout__sidebar a,
body.gm-commerce .wc-block-cart__sidebar .wc-block-components-product-name,
body.gm-commerce .wc-block-checkout__sidebar .wc-block-components-product-name,
body.gm-commerce .wc-block-cart__sidebar .wc-block-components-totals-item__label,
body.gm-commerce .wc-block-cart__sidebar .wc-block-components-totals-item__value,
body.gm-commerce .wc-block-checkout__sidebar .wc-block-components-totals-item__label,
body.gm-commerce .wc-block-checkout__sidebar .wc-block-components-totals-item__value {
  color: var(--gm-paper-clear);
}

body.gm-commerce .wc-block-cart__sidebar .wc-block-components-panel__button,
body.gm-commerce .wc-block-checkout__sidebar .wc-block-components-panel__button {
  color: var(--gm-paper-clear);
}

body.gm-commerce .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
  border-radius: 0;
  background: var(--gm-signal);
  color: var(--gm-ink);
}

body.gm-commerce .wc-block-components-radio-control-accordion-option,
body.gm-commerce .wc-block-components-radio-control__option {
  border-radius: 0;
  background: var(--gm-paper);
}

body.gm-commerce .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.gm-commerce .wc-block-components-radio-control__option--checked-option-highlighted {
  box-shadow: inset 0 0 0 1px var(--gm-green);
}

body.gm-commerce .wp-block-woocommerce-empty-cart-block {
  padding: clamp(48px, 8vw, 110px) 20px;
  text-align: left;
}

body.gm-commerce .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
  max-width: 16ch;
  margin: 0;
  font-family: var(--gm-display);
  font-size: clamp(2.6rem, 4.2vw, 4.9rem);
  font-weight: 540;
  letter-spacing: -0.035em;
  line-height: 1;
  text-align: left;
}

body.gm-commerce .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before,
body.gm-commerce .wp-block-woocommerce-empty-cart-block > .wp-block-separator,
body.gm-commerce .wp-block-woocommerce-empty-cart-block > h2:not(:first-child),
body.gm-commerce .wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
body.gm-commerce .wp-block-woocommerce-cart .wp-block-woocommerce-product-collection {
  display: none;
}

body.gm-commerce .woocommerce-order {
  max-width: 960px;
  margin-inline: auto;
}

body.gm-commerce .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 34px 0;
  padding: 0;
  border-top: 1px solid var(--gm-rule);
}

body.gm-commerce .woocommerce-order-overview li {
  float: none;
  margin: 0;
  padding: 20px;
  border-right: 1px solid var(--gm-rule);
  border-bottom: 1px solid var(--gm-rule);
}

body.gm-commerce .woocommerce-order-overview li:nth-child(2n) {
  border-right: 0;
}

body.gm-commerce .woocommerce table.shop_table {
  border: 1px solid var(--gm-rule);
  border-radius: 0;
}

body.gm-commerce .woocommerce table.shop_table th,
body.gm-commerce .woocommerce table.shop_table td {
  padding: 18px;
  border-color: var(--gm-rule-soft);
}

@media (max-width: 1220px) {
  .gm-commerce-entry,
  .gm-commerce-hero {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.76fr);
  }

  .gm-how-hero {
    grid-template-columns: minmax(390px, 0.86fr) minmax(0, 1.14fr);
  }

  .gm-how-evidence {
    grid-template-columns: minmax(0, 1fr) minmax(390px, 0.85fr);
  }

  .gm-service-options-hero {
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  }

  .gm-service-selector {
    grid-template-columns: minmax(0, 1.28fr) minmax(360px, 0.72fr);
  }

  .gm-consultation-hero {
    grid-template-columns: minmax(390px, 0.9fr) minmax(0, 1.1fr);
  }

  .gm-consultation-form {
    padding-inline: 48px;
  }

  body.gm-commerce .woocommerce ul.products li.product {
    padding: 48px;
  }
}

@media (max-width: 980px) {
  html:has(body.gm-commerce) {
    scroll-padding-top: 70px;
  }

  .gm-commerce-entry,
  .gm-commerce-hero {
    grid-template-columns: 1fr;
  }

  .gm-how-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .gm-how-hero__copy {
    min-height: 500px;
  }

  .gm-how-hero__image {
    min-height: 560px;
    border-top: 1px solid var(--gm-rule);
  }

  .gm-how-process ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gm-how-process li:nth-child(-n + 2) {
    border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
  }

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

  .gm-how-evidence {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .gm-how-evidence__image {
    min-height: 560px;
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule);
  }

  .gm-service-options-hero__image {
    min-height: 520px;
    border-top: 1px solid var(--gm-rule);
    border-left: 0;
  }

  .gm-service-choice__intro {
    grid-template-columns: 1fr;
    gap: 32px;
  }

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

  .gm-service-selection {
    position: static;
    min-height: 0;
  }

  .gm-consultation-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .gm-consultation-intro {
    min-height: 690px;
  }

  .gm-consultation-form {
    border-top: 1px solid var(--gm-rule);
  }

  .gm-consultation-next li {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 18px;
    padding: 38px 30px;
  }

  .gm-checkout-proof {
    grid-template-columns: 1fr;
  }

  .gm-cart-demo {
    border-top: 1px solid var(--gm-rule);
    border-left: 0;
  }

  .gm-commerce-entry__register,
  .gm-scope-register {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: 1fr;
    border-top: 1px solid var(--gm-rule);
    border-left: 0;
  }

  .gm-commerce-entry__register > div,
  .gm-scope-register > div {
    grid-template-columns: 1fr;
    gap: 10px;
    min-height: 126px;
    padding: 24px;
    border-right: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
    border-bottom: 0;
  }

  .gm-commerce-entry__register > div:last-child,
  .gm-scope-register > div:last-child {
    border-right: 0;
  }

  .gm-commerce-hero {
    min-height: 0;
  }

  .gm-commerce-hero__copy {
    min-height: 470px;
  }

  .gm-commerce-register {
    min-height: 360px;
    border-top: 1px solid var(--gm-rule);
    border-left: 0;
  }

  .gm-register-intro {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  body.gm-commerce .wc-block-components-sidebar-layout {
    display: block;
  }

  body.gm-commerce .wc-block-components-sidebar-layout .wc-block-components-main,
  body.gm-commerce .wc-block-components-sidebar-layout .wc-block-components-sidebar {
    width: 100%;
  }

  body.gm-commerce .wc-block-cart__main,
  body.gm-commerce .wc-block-checkout__main {
    padding-right: 0;
  }

  body.gm-commerce .wc-block-cart__sidebar,
  body.gm-commerce .wc-block-checkout__sidebar {
    margin-top: 42px;
  }
}

@media (max-width: 700px) {
  body.gm-commerce {
    font-size: 16px;
  }

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

  .gm-commerce-entry__copy,
  .gm-commerce-hero__copy,
  .gm-commerce-register,
  .gm-register-intro,
  .gm-commerce-content {
    padding: 56px 22px;
  }

  .gm-how-hero__copy,
  .gm-how-evidence__ledger,
  .gm-how-close,
  .gm-service-choice__intro,
  .gm-service-selection,
  .gm-consultation-intro,
  .gm-consultation-form,
  .gm-consultation-next > header {
    padding: 52px 22px;
  }

  .gm-consultation-intro {
    min-height: 0;
  }

  .gm-consultation-intro h1 {
    max-width: 11ch;
    font-size: clamp(3.1rem, 17vw, 4.5rem);
  }

  .gm-consultation-prep {
    margin-top: 58px;
    padding-top: 0;
  }

  .gm-consultation-prep > div,
  .gm-consultation-form__header,
  .gm-consultation-next > header {
    grid-template-columns: 1fr;
  }

  .gm-consultation-form__header {
    gap: 10px;
    margin-bottom: 34px;
  }

  .gm-consultation-form__header > span {
    grid-row: auto;
  }

  .gm-consultation-form__header h2,
  .gm-consultation-form__header p {
    grid-column: auto;
  }

  .gm-consultation-form__header h2 {
    font-size: clamp(2.35rem, 12vw, 3.5rem);
  }

  .gm-consultation-form__grid,
  .gm-consultation-form__footer,
  .gm-consultation-next ol {
    grid-template-columns: 1fr;
  }

  .gm-consultation-field--wide {
    grid-column: auto;
  }

  .gm-consultation-form__footer {
    gap: 18px;
  }

  .gm-consultation-form__footer .gm-button {
    width: 100%;
    min-width: 0;
  }

  .gm-consultation-next > header {
    gap: 14px;
  }

  .gm-consultation-next li,
  .gm-consultation-next li:last-child {
    min-height: 0;
    padding: 34px 22px;
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule);
  }

  .gm-consultation-next li:last-child {
    border-bottom: 0;
  }

  .gm-how-hero__copy {
    min-height: 0;
  }

  .gm-how-hero h1,
  .gm-how-evidence__ledger > h2,
  .gm-how-close h2,
  .gm-service-choice__intro h2 {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }

  .gm-how-hero__image,
  .gm-how-evidence__image,
  .gm-service-options-hero__image {
    min-height: 390px;
  }

  .gm-how-hero__image > img {
    object-position: 58% center;
  }

  .gm-how-hero__image figcaption,
  .gm-how-evidence__image figcaption,
  .gm-service-options-hero__image figcaption {
    right: auto;
    left: 0;
    max-width: calc(100% - 18px);
    font-size: 0.6rem;
  }

  .gm-how-process li {
    min-height: 190px;
    padding: 26px 22px;
  }

  .gm-how-process h3 {
    margin-top: 28px;
    font-size: 1.45rem;
  }

  .gm-how-evidence__ledger > h2 {
    margin-bottom: 38px;
  }

  .gm-how-evidence__ledger section {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .gm-how-close {
    grid-template-columns: 1fr;
    gap: 34px;
    align-items: start;
  }

  .gm-service-option {
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 16px 18px;
    min-height: 0;
    padding: 25px 22px;
  }

  .gm-service-option__code {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
  }

  .gm-service-option input {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
  }

  .gm-service-option__copy {
    grid-column: 2;
    grid-row: 2;
  }

  .gm-service-option__action {
    display: none;
  }

  .gm-service-selection h2 {
    font-size: clamp(2.2rem, 10vw, 3.1rem);
  }

  .gm-commerce-entry h2,
  .gm-register-intro h2 {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }

  .gm-commerce-hero__copy {
    min-height: 0;
  }

  .gm-commerce-hero h1 {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }

  .gm-commerce-entry__register,
  .gm-scope-register {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gm-commerce-entry__register > div,
  .gm-scope-register > div {
    min-height: 112px;
    padding: 20px 22px;
    border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
  }

  .gm-commerce-entry__register > div:nth-child(2n),
  .gm-scope-register > div:nth-child(2n) {
    border-right: 0;
  }

  .gm-commerce-entry__register > div:nth-last-child(-n + 2),
  .gm-scope-register > div:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .gm-commerce-register {
    min-height: 0;
  }

  .gm-commerce-register > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .gm-register-intro {
    gap: 30px;
  }

  .gm-commerce-content--catalogue,
  .gm-commerce-content--product {
    padding: 0;
  }

  body.gm-commerce .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

  body.gm-commerce .woocommerce ul.products li.product,
  body.gm-commerce .woocommerce ul.products li.product:nth-child(2n) {
    min-height: 0;
    padding: 46px 22px;
    border-right: 0;
  }

  body.gm-commerce .woocommerce ul.products li.product::after {
    top: 22px;
    right: 22px;
  }

  body.gm-commerce .woocommerce ul.products li.product .woocommerce-loop-product__title {
    max-width: 13ch;
    font-size: clamp(2rem, 10vw, 2.65rem);
  }

  body.gm-commerce.single-product .product .summary,
  .gm-service-description__decision,
  .gm-service-description__grid section,
  .gm-service-description__fit,
  .gm-service-description__boundary {
    padding: 52px 22px;
  }

  body.gm-commerce.single-product .woocommerce-product-details__short-description,
  .gm-single-scope-actions,
  .gm-service-description__decision,
  .gm-service-description__grid,
  .gm-service-description__fit,
  .gm-service-description__boundary,
  .gm-checkout-proof,
  .gm-local-commerce-note {
    grid-template-columns: 1fr;
  }

  .gm-single-scope-actions {
    align-items: start;
  }

  .gm-service-description__grid section + section {
    border-top: 1px solid var(--gm-rule);
    border-left: 0;
  }

  .gm-service-description__fit,
  .gm-service-description__boundary {
    gap: 24px;
  }

  .gm-service-description__decision {
    gap: 24px;
  }

  .gm-service-description__decision p {
    font-size: clamp(1.8rem, 9vw, 2.65rem);
  }

  .gm-service-description__outline > summary {
    min-height: 72px;
    padding: 18px 22px;
  }

  .gm-checkout-proof__intro,
  .gm-cart-demo {
    padding: 52px 22px;
  }

  .gm-cart-demo h3 {
    font-size: clamp(2rem, 10vw, 2.8rem);
  }

  .gm-local-commerce-note {
    gap: 5px;
    padding: 16px 22px;
  }

  body.gm-commerce .gm-commerce-content > .wp-block-woocommerce-cart,
  body.gm-commerce .gm-commerce-content > .wp-block-woocommerce-checkout {
    margin: 0;
  }

  body.gm-commerce .wc-block-cart__sidebar,
  body.gm-commerce .wc-block-checkout__sidebar {
    padding: 26px 20px;
  }

  body.gm-commerce .wc-block-checkout__sidebar {
    display: none;
  }

  body.gm-commerce .wc-block-cart__submit-container--sticky {
    position: static !important;
    inset: auto !important;
    margin-top: 26px;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.gm-commerce .wc-block-cart__submit-container--sticky::before {
    display: none !important;
    box-shadow: none !important;
  }

  body.gm-commerce .wc-block-components-checkout-step {
    padding: 26px 0;
  }

  body.gm-commerce .wc-block-components-button,
  body.gm-commerce .wp-element-button,
  body.gm-commerce .woocommerce button.button,
  body.gm-commerce .woocommerce a.button,
  body.gm-commerce .woocommerce input.button {
    width: 100%;
  }

  body.gm-commerce .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }

  body.gm-commerce .woocommerce-order-overview li,
  body.gm-commerce .woocommerce-order-overview li:nth-child(2n) {
    border-right: 0;
  }
}

@media (max-width: 370px) {
  .gm-how-process ol {
    grid-template-columns: 1fr;
  }

  .gm-how-process li,
  .gm-how-process li:nth-child(-n + 2),
  .gm-how-process li:nth-child(2n) {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
  }

  .gm-how-process li:last-child {
    border-bottom: 0;
  }

  .gm-commerce-entry__register strong,
  .gm-scope-register strong {
    font-size: 0.92rem;
  }

}

/* Shophouse sequence: a scrubbed survey drawing, one aspect at a time. */

.gm-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.gm-plot-main {
  border-top: 1px solid var(--gm-rule);
}

.gm-plot {
  position: relative;
  height: 1040vh;
}

.gm-plot__stage {
  position: sticky;
  top: var(--gm-head, 76px);
  height: calc(100vh - var(--gm-head, 76px));
  height: calc(100svh - var(--gm-head, 76px));
  overflow: hidden;
  background: var(--gm-green-deep);
  border-bottom: 1px solid var(--gm-rule);
}

/* the photograph sits under the canvas and is driven by transforms */
.gm-plot__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  transform-origin: center 46%;
  will-change: transform, filter, opacity;
}

.gm-plot__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

/* frames used only as canvas sources */
.gm-plot__src {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* ---------- panels ---------- */

.gm-plot-panel {
  position: absolute;
  top: 0;
  bottom: 52px;
  width: clamp(350px, 33vw, 478px);
  padding: clamp(28px, 2.6vw, 52px);
  display: flex;
  flex-direction: column;
  opacity: 0;
  will-change: opacity;
  pointer-events: none;
}

/* without scripting the photograph and the opening panel still read */
.gm-plot-panel[data-step="0"] {
  opacity: 1;
}

.gm-plot-panel[data-side="left"] {
  left: 0;
  border-right: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
}

.gm-plot-panel[data-side="right"] {
  right: 0;
  border-left: 1px solid color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
}

.gm-plot-panel[data-tone="dark"] {
  background: color-mix(in srgb, var(--gm-green-deep) 90%, transparent);
  color: var(--gm-paper-clear);
  backdrop-filter: blur(3px);
}

.gm-plot-panel[data-tone="light"] {
  background: var(--gm-paper);
  color: var(--gm-ink);
}

.gm-plot-panel[data-tone="light"][data-side="left"] {
  border-right-color: var(--gm-rule);
}

.gm-plot-panel[data-tone="light"][data-side="right"] {
  border-left-color: var(--gm-rule);
}

/* the plane settles first, then the copy arrives on top of it. Top rule,
   centred statement and check list span the full height so the plane never
   reads as a small block floating in dead space. */
.gm-plot-panel__inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(20px, 2vw, 34px);
  will-change: opacity, transform;
}

.gm-plot-panel__mid {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(15px, 1.6vw, 22px);
}

.gm-plot-panel__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--gm-rule);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}

.gm-plot-panel[data-tone="dark"] .gm-plot-panel__top {
  border-color: color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
  color: color-mix(in srgb, var(--gm-paper-clear) 62%, transparent);
}

.gm-plot-panel[data-tone="light"] .gm-plot-panel__top {
  color: var(--gm-ink-soft);
}

/* the hierarchy stage is the argument, so it carries the signal */
.gm-plot-panel__stage {
  color: var(--gm-green);
}

.gm-plot-panel[data-tone="dark"] .gm-plot-panel__stage {
  color: var(--gm-signal);
}

.gm-plot-panel__kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 10px;
}

.gm-plot-panel[data-tone="dark"] .gm-plot-panel__kicker {
  color: var(--gm-signal);
}

.gm-plot-panel[data-tone="light"] .gm-plot-panel__kicker {
  color: var(--gm-green);
}

.gm-plot-panel__kicker::before {
  content: "";
  width: 9px;
  height: 9px;
  background: currentColor;
  flex: none;
}

.gm-plot-panel__title {
  margin: 0;
  font-family: var(--gm-hero-display);
  font-weight: 600;
  font-size: clamp(2rem, 2.7vw, 3rem);
  line-height: 0.98;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.gm-plot-panel__body {
  margin: 0;
  max-width: 44ch;
  font-size: 0.95rem;
  line-height: 1.55;
}

.gm-plot-panel[data-tone="dark"] .gm-plot-panel__body {
  color: color-mix(in srgb, var(--gm-paper-clear) 82%, transparent);
}

.gm-plot-panel[data-tone="light"] .gm-plot-panel__body {
  color: var(--gm-ink-soft);
}

.gm-plot-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--gm-rule);
}

.gm-plot-panel[data-tone="dark"] .gm-plot-checks {
  border-color: color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
}

.gm-plot-checks li {
  border-bottom: 1px solid var(--gm-rule);
  padding: 10px 0;
  font-size: 0.81rem;
  font-weight: 580;
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.gm-plot-panel[data-tone="dark"] .gm-plot-checks li {
  border-color: color-mix(in srgb, var(--gm-paper-clear) 20%, transparent);
}

.gm-plot-checks li::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: none;
  transform: translateY(-1px);
  background: var(--gm-signal);
}

.gm-plot-panel[data-tone="light"] .gm-plot-checks li::before {
  background: var(--gm-green);
}

/* the composite legend: each aspect lifts in turn so five systems drawn at
   once stay readable without introducing a second colour. Hovering or
   focusing a row holds it. */
.gm-plot-legend li {
  transition: opacity 320ms ease;
  opacity: 0.4;
  padding: 0;
}

.gm-plot-legend li.is-live {
  opacity: 1;
}

.gm-plot-legend li::before {
  background: var(--gm-rule);
  margin: 11px 0;
}

.gm-plot-panel[data-tone="light"] .gm-plot-legend li::before {
  background: var(--gm-rule);
}

.gm-plot-legend li.is-live::before {
  background: var(--gm-signal);
}

.gm-plot-panel[data-tone="light"] .gm-plot-legend li.is-live::before {
  background: var(--gm-green);
}

.gm-plot-legend button {
  flex: 1;
  appearance: none;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  text-align: left;
  padding: 10px 0;
  cursor: pointer;
}

/* the stage ignores pointers; the legend is the one thing you can touch */
.gm-plot-panel[data-step="7"] {
  pointer-events: none;
}

.gm-plot-panel[data-step="7"] .gm-plot-legend {
  pointer-events: auto;
}

/* ---------- step navigation ---------- */

/* The rail is the sequence's table of contents: it names every beat, shows how
   far through the current one you are, and lets you jump to any of them. */
.gm-plot-nav {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  height: 52px;
  border-top: 1px solid color-mix(in srgb, var(--gm-paper-clear) 22%, transparent);
  background: color-mix(in srgb, var(--gm-green-deep) 88%, transparent);
  backdrop-filter: blur(6px);
}

.gm-plot-nav ol {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  height: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-plot-nav button {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  height: 100%;
  padding: 0 clamp(10px, 1.2vw, 18px);
  appearance: none;
  background: none;
  border: 0;
  border-right: 1px solid color-mix(in srgb, var(--gm-paper-clear) 14%, transparent);
  color: color-mix(in srgb, var(--gm-paper-clear) 58%, transparent);
  font: inherit;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
  transition: color 260ms ease, background 260ms ease;
}

/* an explicit pressed state, so a real click never falls to a UA default */
.gm-plot-nav button:active {
  background: color-mix(in srgb, var(--gm-signal) 16%, transparent);
}

.gm-plot-nav button:focus-visible {
  outline: 3px solid var(--gm-signal);
  outline-offset: -3px;
}

.gm-plot-nav li:last-child button {
  border-right: 0;
}

.gm-plot-nav button:hover {
  color: var(--gm-paper-clear);
}

/* the beat you are on is a filled tab, deeper than the rail it sits in */
.gm-plot-nav button.is-live {
  background: color-mix(in srgb, var(--gm-green-deep) 52%, var(--gm-ink));
  color: var(--gm-paper-clear);
}

.gm-plot-nav__idx {
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--gm-signal) 70%, transparent);
}

.gm-plot-nav button.is-live .gm-plot-nav__idx {
  color: var(--gm-signal);
}

.gm-plot-nav__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* the fill is the time remaining before the next frame */
.gm-plot-nav__bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: color-mix(in srgb, var(--gm-paper-clear) 14%, transparent);
  overflow: hidden;
}

.gm-plot-nav__bar i {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--gm-signal);
  transform: scaleX(0);
  transform-origin: left;
}

/* ---------- retrofit position ---------- */

/* the statement and its qualification sit side by side so the band is used
   rather than leaving two thirds of it empty; each column then runs to its own
   edge before wrapping */
.gm-retrofit {
  padding: clamp(52px, 5.6vw, 104px) clamp(22px, 3vw, 48px);
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  column-gap: clamp(32px, 5vw, 88px);
  row-gap: 18px;
  align-items: start;
}

.gm-retrofit__kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gm-signal);
  grid-column: 1;
}

.gm-retrofit__title {
  grid-column: 1;
  margin: 0;
  font-family: var(--gm-hero-display);
  font-weight: 600;
  font-size: clamp(2.4rem, 4.4vw, 4.4rem);
  line-height: 0.98;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.gm-retrofit__body {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  margin: 0;
  font-size: 1rem;
  color: color-mix(in srgb, var(--gm-paper-clear) 80%, transparent);
}

/* ---------- register ---------- */

.gm-register {
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-register__head {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  border-bottom: 1px solid var(--gm-rule);
}

.gm-register__intro {
  padding: clamp(44px, 4.6vw, 80px) clamp(22px, 3vw, 48px);
  border-right: 1px solid var(--gm-rule);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
}

.gm-register__kicker,
.gm-stewardship__kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gm-green);
}

.gm-register__title,
.gm-stewardship__title {
  margin: 0;
  font-family: var(--gm-display);
  font-weight: 540;
  font-size: clamp(2rem, 2.9vw, 3.2rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.gm-register__body,
.gm-stewardship__body {
  margin: 0;
  max-width: 46ch;
  color: var(--gm-ink-soft);
  font-size: 0.95rem;
}

.gm-register__note {
  padding: clamp(44px, 4.6vw, 80px) clamp(22px, 3vw, 48px);
  display: flex;
  align-items: center;
  font-size: 0.88rem;
  color: var(--gm-ink-soft);
}

.gm-register__note p {
  margin: 0;
  max-width: 52ch;
}

/* six zones, so an explicit 3x2 rather than an auto-fill that leaves a dead
   cell on the last row */
.gm-register__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.gm-register__legend {
  grid-column: 1 / -1;
  padding: 18px clamp(22px, 3vw, 48px);
  font-size: 0.72rem;
  color: var(--gm-ink-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 26px;
  align-items: center;
  border-bottom: 1px solid var(--gm-rule-soft);
  background: var(--gm-paper);
}

.gm-register__legend span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.gm-register__legend i {
  width: 6px;
  height: 6px;
  background: var(--gm-green);
}

.gm-register__legend i.is-open {
  background: transparent;
  border: 1px solid var(--gm-green);
}

.gm-zone {
  border-right: 1px solid var(--gm-rule-soft);
  border-bottom: 1px solid var(--gm-rule-soft);
  padding: clamp(26px, 2.4vw, 36px) clamp(22px, 3vw, 48px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.gm-zone__name {
  margin: 0;
  font-family: var(--gm-display);
  font-weight: 560;
  font-size: 1.06rem;
  letter-spacing: -0.02em;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.gm-zone__count {
  font-family: var(--gm-body);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gm-ink-soft);
  font-variant-numeric: tabular-nums;
}

.gm-zone__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.gm-zone__list li {
  border-top: 1px solid var(--gm-rule-soft);
  padding: 9px 0 9px 18px;
  font-size: 0.85rem;
  position: relative;
}

.gm-zone__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 6px;
  height: 6px;
  background: var(--gm-green);
}

/* items whose value is invisible are marked, because that is the point */
.gm-zone__list li[data-hidden]::before {
  background: transparent;
  border: 1px solid var(--gm-green);
}

/* ---------- stewardship ---------- */

.gm-stewardship {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
}

.gm-stewardship__copy {
  padding: clamp(48px, 5vw, 92px) clamp(22px, 3vw, 48px);
  border-right: 1px solid var(--gm-rule);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
}

.gm-stewardship__list {
  margin: 0;
  padding: 0;
  display: grid;
  align-content: center;
}

.gm-stewardship__item {
  padding: clamp(24px, 2.6vw, 40px) clamp(22px, 3vw, 48px);
  border-bottom: 1px solid var(--gm-rule-soft);
  display: grid;
  grid-template-columns: 128px 1fr;
  gap: clamp(16px, 2vw, 32px);
  align-items: start;
}

.gm-stewardship__item:last-child {
  border-bottom: 0;
}

.gm-stewardship__term {
  margin: 0;
  font-family: var(--gm-display);
  font-weight: 560;
  font-size: 1.02rem;
  letter-spacing: -0.02em;
}

.gm-stewardship__desc {
  margin: 0;
  font-size: 0.89rem;
  color: var(--gm-ink-soft);
}

/* ---------- action ---------- */

.gm-plot-action {
  background: var(--gm-green-deep);
  color: var(--gm-paper-clear);
  padding: clamp(44px, 4.6vw, 78px) clamp(22px, 3vw, 48px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border-bottom: 1px solid var(--gm-rule);
}

.gm-plot-action__lead {
  margin: 0;
  font-family: var(--gm-display);
  font-weight: 540;
  font-size: clamp(1.5rem, 2.3vw, 2.3rem);
  line-height: 1.06;
  letter-spacing: -0.03em;
  max-width: 22ch;
  text-wrap: balance;
}

.gm-plot-action__side {
  display: grid;
  gap: 12px;
  justify-items: start;
}

.gm-plot-action__note {
  margin: 0;
  font-size: 0.72rem;
  color: color-mix(in srgb, var(--gm-paper-clear) 62%, transparent);
  max-width: 40ch;
}

/* ---------- responsive ---------- */

@media (max-width: 1220px) {
  .gm-plot-panel {
    width: clamp(330px, 38vw, 440px);
  }
}

@media (max-width: 980px) {
  .gm-retrofit {
    grid-template-columns: 1fr;
  }

  .gm-retrofit__kicker,
  .gm-retrofit__title,
  .gm-retrofit__body {
    grid-column: 1;
    grid-row: auto;
  }

  .gm-plot-panel {
    width: clamp(320px, 42vw, 420px);
  }

  .gm-register__head,
  .gm-stewardship {
    grid-template-columns: 1fr;
  }

  .gm-register__intro,
  .gm-stewardship__copy {
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule);
  }

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

@media (max-width: 760px) {
  .gm-plot {
    height: 920vh;
  }

  .gm-plot__stage {
    --gm-head: 70px;
  }

  .gm-plot__photo {
    object-position: center 40%;
  }

  .gm-plot-panel {
    top: auto;
    left: 0;
    right: 0;
    bottom: 44px;
    width: auto;
    height: 50svh;
    overflow-y: auto;
    border: 0;
    border-top: 1px solid var(--gm-rule);
  }

  .gm-plot-panel[data-side="left"],
  .gm-plot-panel[data-side="right"] {
    border-inline: 0;
  }

  .gm-plot-panel[data-tone="dark"] {
    background: color-mix(in srgb, var(--gm-green-deep) 94%, transparent);
  }

  .gm-plot-panel__inner {
    gap: 16px;
    display: block;
  }

  .gm-plot-panel__mid {
    gap: 12px;
    margin: 14px 0;
  }

  .gm-plot-panel__title {
    font-size: clamp(1.85rem, 7.6vw, 2.45rem);
  }

  .gm-plot-panel__body {
    font-size: 0.89rem;
    max-width: none;
  }

  .gm-plot-checks li {
    padding: 8px 0;
  }

  .gm-plot-nav {
    height: 44px;
  }

  .gm-plot-nav button {
    justify-content: center;
    padding: 0 4px;
    font-size: 0.6rem;
  }

  /* only the index survives; eight labels will not fit a phone */
  .gm-plot-nav__label {
    display: none;
  }

  .gm-register__grid {
    grid-template-columns: 1fr;
  }

  .gm-zone {
    border-right: 0;
  }

  .gm-stewardship__item {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .gm-plot-action {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  /* the systems check does not run, so no row is ever lifted */
  .gm-plot-legend li {
    opacity: 1;
    transition: none;
  }

  .gm-plot-legend li::before {
    background: var(--gm-signal);
  }

  .gm-plot-panel[data-tone="light"] .gm-plot-legend li::before {
    background: var(--gm-green);
  }
}

/* ---------------------------------------------------------------------------
   Third-party colour quarantine.

   Elementor, WooCommerce and the block library each ship their own palette and
   leak it through preset classes, global custom properties and hardcoded
   accents. None of those colours belong to this design system. Everything below
   maps them onto the Built Form tokens so no plugin default can surface.
   --------------------------------------------------------------------------- */

:root,
body,
.elementor-kit-4,
.elementor-widget,
.woocommerce {
  /* Elementor global kit */
  --e-global-color-primary: var(--gm-green-deep) !important;
  --e-global-color-secondary: var(--gm-ink-soft) !important;
  --e-global-color-text: var(--gm-ink) !important;
  --e-global-color-accent: var(--gm-green) !important;

  /* WooCommerce, whose default accent is a mauve-pink */
  --wc-primary: var(--gm-green-deep) !important;
  --wc-primary-text: var(--gm-paper-clear) !important;
  --wc-secondary: var(--gm-paper) !important;
  --wc-secondary-text: var(--gm-ink) !important;
  --wc-highlight: var(--gm-green) !important;
  --wc-highlight-text: var(--gm-paper-clear) !important;
  --wc-content-bg: var(--gm-paper-clear) !important;
  --wc-subtext: var(--gm-ink-soft) !important;
  --wc-red: var(--gm-green-deep) !important;
  --wc-green: var(--gm-green) !important;
  --wc-orange: var(--gm-signal-deep) !important;

  /* block-library presets, which include several pinks and magentas */
  --wp--preset--color--pale-pink: var(--gm-paper) !important;
  --wp--preset--color--vivid-red: var(--gm-green-deep) !important;
  --wp--preset--color--luminous-vivid-orange: var(--gm-signal-deep) !important;
  --wp--preset--color--luminous-vivid-amber: var(--gm-signal) !important;
  --wp--preset--color--light-green-cyan: var(--gm-green) !important;
  --wp--preset--color--vivid-green-cyan: var(--gm-green) !important;
  --wp--preset--color--pale-cyan-blue: var(--gm-paper) !important;
  --wp--preset--color--vivid-cyan-blue: var(--gm-green-deep) !important;
  --wp--preset--color--vivid-purple: var(--gm-green-deep) !important;
  --wp--preset--color--cyan-bluish-gray: var(--gm-rule-soft) !important;
}

/* selection, unscoped, so no surface anywhere falls back to the browser blue */
::selection {
  background: var(--gm-signal);
  color: var(--gm-ink);
}

::-moz-selection {
  background: var(--gm-signal);
  color: var(--gm-ink);
}

/* WooCommerce accents that are painted rather than tokenised */
.woocommerce .required,
.woocommerce abbr.required,
.woocommerce-page .required,
abbr[title="required"] {
  color: var(--gm-green) !important;
  border: 0 !important;
  text-decoration: none !important;
}

.woocommerce .star-rating span::before,
.woocommerce .star-rating::before,
.woocommerce p.stars a::before {
  color: var(--gm-green) !important;
}

.woocommerce span.onsale,
.woocommerce .onsale {
  background: var(--gm-signal) !important;
  color: var(--gm-ink) !important;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
  border-top-color: var(--gm-green) !important;
  background: var(--gm-paper) !important;
  color: var(--gm-ink) !important;
}

.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
  color: var(--gm-green) !important;
}

/* Elementor buttons, if any Elementor markup is ever rendered */
.elementor-button,
.elementor-button-link {
  background-color: var(--gm-signal) !important;
  color: var(--gm-ink) !important;
}

/* browser invalid-state defaults */
input:invalid,
select:invalid,
textarea:invalid {
  box-shadow: none;
  outline-color: var(--gm-signal);
}

/* ---------- not found ---------- */

.gm-lost {
  display: grid;
  grid-template-columns: 0.86fr 1.14fr;
  border-bottom: 1px solid var(--gm-rule);
  background: var(--gm-paper-clear);
  min-height: 72vh;
}

.gm-lost__copy {
  padding: clamp(48px, 5vw, 96px) clamp(22px, 3vw, 48px);
  border-right: 1px solid var(--gm-rule);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(18px, 2vw, 26px);
}

.gm-lost__code {
  margin: 0;
  font-family: var(--gm-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--gm-green);
  font-variant-numeric: tabular-nums;
}

.gm-lost__title {
  margin: 0;
  font-family: var(--gm-hero-display);
  font-weight: 600;
  font-size: clamp(2.4rem, 4vw, 3.9rem);
  line-height: 0.98;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.gm-lost__body {
  margin: 0;
  max-width: 46ch;
  color: var(--gm-ink-soft);
  font-size: 0.97rem;
}

.gm-lost__routes {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--gm-rule);
}

.gm-lost__routes li {
  border-bottom: 1px solid var(--gm-rule);
}

.gm-lost__routes a {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 4px 16px;
  padding: 14px 0;
  color: inherit;
}

.gm-lost__label {
  font-family: var(--gm-display);
  font-weight: 560;
  font-size: 1rem;
  letter-spacing: -0.02em;
}

.gm-lost__note {
  grid-column: 1;
  font-size: 0.79rem;
  color: var(--gm-ink-soft);
}

.gm-lost__routes svg {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: var(--gm-green);
  stroke-width: 1.6;
  transition: transform 240ms var(--gm-ease);
}

.gm-lost__routes a:hover svg,
.gm-lost__routes a:focus-visible svg {
  transform: translateX(5px);
}

.gm-lost__figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--gm-green-deep);
}

.gm-lost__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
}

.gm-lost__figure figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 8px 14px;
  background: color-mix(in srgb, var(--gm-green-deep) 82%, transparent);
  color: color-mix(in srgb, var(--gm-paper-clear) 78%, transparent);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.06em;
}

@media (max-width: 980px) {
  .gm-lost {
    grid-template-columns: 1fr;
  }

  .gm-lost__copy {
    border-right: 0;
    border-bottom: 1px solid var(--gm-rule);
  }

  .gm-lost__figure {
    min-height: 320px;
  }
}
