/* ==========================================================================
   GLOW House (/house)
   --------------------------------------------------------------------------
   Self-contained: this page does not load glow.css or the editorial chrome.
   Display face is Instrument Serif, the same CDN files /assets/fonts.css
   uses, so no new web font is added. Text is the site's system sans stack.
   Square corners, no shadows, monochrome. Warm white and stone appear only
   on the ink Location band, in fine rules and in photo placeholders.
   ========================================================================== */

@font-face {
  font-family: 'Instrument Serif';
  src: local('Instrument Serif'),
       url('https://cdn.jsdelivr.net/fontsource/fonts/instrument-serif@latest/latin-400-normal.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Instrument Serif';
  src: local('Instrument Serif Italic'),
       url('https://cdn.jsdelivr.net/fontsource/fonts/instrument-serif@latest/latin-400-italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
}

:root {
  --gh-paper: #FFFFFF;
  --gh-ink: #171717;
  --gh-ink-soft: #45423E;     /* body copy on white */
  --gh-stone: #D9D3CB;
  --gh-taupe: #8B8075;        /* large text, and small text on ink (4.7:1) */
  --gh-taupe-ink: #6B6158;    /* small text on white (6:1) */
  --gh-warm: #F6F4EF;         /* text on the ink band */
  --gh-mist: #F1EEEA;         /* photo placeholders only */
  --gh-rule: #E2DDD6;
  --gh-field: #858585;
  --gh-error: #A11B1B;

  --gh-serif: 'Instrument Serif', 'Times New Roman', Georgia, serif;
  --gh-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
    'Helvetica Neue', Helvetica, Arial, system-ui, sans-serif;

  --gh-gutter: 20px;
  --gh-max: 1440px;
  --gh-header: 68px;
  --gh-ease: cubic-bezier(.2, .7, .1, 1);
}
@media (min-width: 900px)  { :root { --gh-gutter: 40px; --gh-header: 88px; } }
@media (min-width: 1280px) { :root { --gh-gutter: 56px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--gh-header) + 8px);
}
body {
  margin: 0;
  background: var(--gh-paper);
  color: var(--gh-ink);
  font-family: var(--gh-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.gh-locked { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
p { margin: 0; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.gh-wrap { max-width: var(--gh-max); margin: 0 auto; padding: 0 var(--gh-gutter); }
.gh-sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.gh-skip {
  position: absolute; left: 12px; top: -80px; z-index: 100;
  padding: 12px 18px; background: var(--gh-ink); color: #fff;
  font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none;
}
.gh-skip:focus { top: 12px; }

/* ---------- Type ---------- */
.gh-label {
  font-size: 11px; font-weight: 500; line-height: 1.5;
  letter-spacing: .24em; text-transform: uppercase;
}
.gh-muted { color: var(--gh-taupe-ink); }
.gh-display {
  margin: 0;
  font-family: var(--gh-serif); font-weight: 400;
  text-transform: uppercase; line-height: .9; letter-spacing: -.005em;
}
.gh-display em { font-style: italic; }
.gh-lede { font-size: 18px; line-height: 1.6; color: var(--gh-ink-soft); max-width: 34em; }
@media (min-width: 900px) { .gh-lede { font-size: 20px; } }

/* ---------- Buttons and links ---------- */
.gh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 54px; padding: 0 28px;
  border: 1px solid var(--gh-ink); border-radius: 0;
  font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  text-decoration: none; cursor: pointer;
  transition: background-color .35s var(--gh-ease), color .35s var(--gh-ease);
}
.gh-btn--solid { background: var(--gh-ink); color: #fff; }
.gh-btn--solid:hover { background: #fff; color: var(--gh-ink); }
.gh-btn--solid:focus-visible { outline-color: var(--gh-ink); }
.gh-btn--line { background: transparent; color: var(--gh-ink); }
.gh-btn--line:hover { background: var(--gh-ink); color: #fff; }
.gh-btn[disabled] { opacity: .55; cursor: progress; }
.gh-arrow { display: inline-block; transition: transform .35s var(--gh-ease); }
.gh-btn:hover .gh-arrow, .gh-link:hover .gh-arrow { transform: translateX(5px); }

.gh-link {
  position: relative; justify-self: start;
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  text-decoration: none; padding-bottom: 4px;
  background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
}
.gh-link::before { content: ""; position: absolute; inset: -11px -8px; } /* 44px tap target, no layout change */

/* ---------- Header ---------- */
.gh-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, .95);
  -webkit-backdrop-filter: saturate(1.2) blur(10px);
  backdrop-filter: saturate(1.2) blur(10px);
  border-bottom: 1px solid var(--gh-rule);
}
.gh-header__bar {
  display: flex; align-items: center; justify-content: space-between;
  height: var(--gh-header);
}
.gh-header__logo { display: block; line-height: 0; }
.gh-header__logo img { height: 38px; width: auto; }
@media (min-width: 900px) { .gh-header__logo img { height: 52px; } }

.gh-nav { display: none; }
.gh-nav ul { display: flex; align-items: center; gap: 34px; margin: 0; padding: 0; list-style: none; }
.gh-nav a {
  position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0;
  font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  text-decoration: none;
}
.gh-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: currentColor; transform: scaleX(0); transform-origin: right;
  transition: transform .4s var(--gh-ease);
}
.gh-nav a::after { bottom: 12px; }
.gh-nav a:hover::after, .gh-nav a:focus-visible::after { transform-origin: left; }
.gh-nav a:hover::after, .gh-nav a:focus-visible::after, .gh-nav a[aria-current="true"]::after,
.gh-nav .gh-nav__cta::after { transform: scaleX(1); }
.gh-nav__sep { width: 1px; height: 22px; background: var(--gh-rule); }
.gh-nav__home { color: var(--gh-taupe-ink); }
@media (min-width: 900px) { .gh-nav { display: block; } }

.gh-menu-btn {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 44px; padding: 0 2px; background: none; border: 0; cursor: pointer;
  font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
}
.gh-menu-btn__lines { display: inline-grid; gap: 5px; width: 22px; }
.gh-menu-btn__lines span { display: block; height: 1px; background: currentColor; }
@media (min-width: 900px) { .gh-header .gh-menu-btn { display: none; } }

.gh-menu {
  position: fixed; inset: 0; z-index: 70;
  display: flex; flex-direction: column;
  background: #fff; padding: 0 var(--gh-gutter) 32px;
  overflow-y: auto;
}
.gh-menu[hidden] { display: none; }
.gh-menu__top {
  display: flex; align-items: center; justify-content: space-between;
  height: var(--gh-header); border-bottom: 1px solid var(--gh-rule);
}
.gh-menu { padding-bottom: calc(32px + env(safe-area-inset-bottom)); }
.gh-menu__list { list-style: none; margin: 8px 0 0; padding: 0; }
.gh-menu__list a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding: 12px 0; border-bottom: 1px solid var(--gh-rule);
  font-family: var(--gh-serif); font-size: clamp(36px, 11vw, 52px); line-height: 1;
  letter-spacing: -.005em; text-transform: uppercase; text-decoration: none;
}
.gh-menu__list a:hover, .gh-menu__list a:focus-visible { font-style: italic; }
.gh-menu__list a span {
  flex: none; font-family: var(--gh-sans); font-size: 11px; font-style: normal;
  letter-spacing: .24em; font-variant-numeric: tabular-nums; color: var(--gh-taupe-ink);
}
.gh-menu__foot { margin-top: auto; padding-top: 32px; display: grid; gap: 18px; }
@media (prefers-reduced-motion: no-preference) {
  .gh-menu:not([hidden]) { animation: gh-menu-in .3s var(--gh-ease) both; }
  .gh-menu:not([hidden]) .gh-menu__list li,
  .gh-menu:not([hidden]) .gh-menu__foot { animation: gh-row-in .55s var(--gh-ease) both; }
  .gh-menu__list li:nth-child(2) { animation-delay: .04s; }
  .gh-menu__list li:nth-child(3) { animation-delay: .08s; }
  .gh-menu__list li:nth-child(4) { animation-delay: .12s; }
  .gh-menu__list li:nth-child(5) { animation-delay: .16s; }
  .gh-menu__list li:nth-child(6) { animation-delay: .2s; }
  .gh-menu:not([hidden]) .gh-menu__foot { animation-delay: .26s; }
}
@keyframes gh-menu-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes gh-row-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Photo frames and placeholders ---------- */
.gh-shot { position: relative; margin: 0; }
.gh-shot__frame {
  position: relative; overflow: hidden;
  aspect-ratio: var(--ar, 3 / 2);
  background: var(--gh-mist);
}
.gh-shot__frame > img,
.gh-shot__frame > .gh-ph {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--gh-ease);
}
.gh-shot figcaption {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  padding-top: 14px;
}
.gh-shot figcaption .gh-muted { flex: none; white-space: nowrap; font-variant-numeric: tabular-nums; }

.gh-ph { background: var(--gh-mist); color: var(--gh-taupe-ink); }
.gh-ph::before, .gh-ph::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top right,
    transparent calc(50% - .5px), var(--gh-stone) calc(50% - .5px),
    var(--gh-stone) calc(50% + .5px), transparent calc(50% + .5px));
}
.gh-ph::after { background: linear-gradient(to bottom right,
    transparent calc(50% - .5px), var(--gh-stone) calc(50% - .5px),
    var(--gh-stone) calc(50% + .5px), transparent calc(50% + .5px)); }
.gh-ph__tag {
  position: absolute; left: 16px; bottom: 16px; z-index: 1;
  max-width: calc(100% - 32px);
  padding: 10px 12px; background: #fff;
  font-size: 10px; line-height: 1.5; letter-spacing: .18em; text-transform: uppercase;
}
.gh-ph__tag b { display: block; font-weight: 600; color: var(--gh-ink); }

/* ---------- Reveal (only when JS is running; reduced motion opts out) ---------- */
html.gh-js .gh-rv { opacity: 0; transform: translateY(24px); }
html.gh-js .gh-rv.is-in {
  opacity: 1; transform: none;
  transition: opacity 1s var(--gh-ease), transform 1s var(--gh-ease);
}
html.gh-js .gh-wipe { clip-path: inset(0 0 100% 0); }
html.gh-js .gh-wipe.is-in { clip-path: inset(0 0 0 0); transition: clip-path 1.4s var(--gh-ease); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.gh-js .gh-rv, html.gh-js .gh-wipe { opacity: 1; transform: none; clip-path: none; }
  *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}
@media print {
  html.gh-js .gh-rv, html.gh-js .gh-wipe { opacity: 1; transform: none; clip-path: none; }
  .gh-skip, .gh-menu, .gh-menu-btn, .gh-gallery__open, .gh-header { display: none !important; }
}

/* ---------- Hero ---------- */
.gh-hero { border-bottom: 1px solid var(--gh-rule); }
.gh-hero__grid { display: grid; }
.gh-hero__text {
  display: flex; flex-direction: column; gap: 28px;
  padding: 36px var(--gh-gutter) 40px;
}
.gh-hero__title { font-size: clamp(64px, 22vw, 104px); line-height: .88; }
.gh-hero__title span { display: block; }
.gh-hero__copy { font-size: 17px; line-height: 1.6; color: var(--gh-ink-soft); max-width: 27em; }
.gh-hero__ctas { display: flex; flex-wrap: wrap; align-items: center; justify-self: start; gap: 22px 36px; }
.gh-hero__ctas .gh-btn { flex: 0 0 auto; }
.gh-hero__media { position: relative; order: 3; aspect-ratio: 4 / 5; background: var(--gh-mist); overflow: hidden; }
.gh-hero__media > img, .gh-hero__media > .gh-ph, .gh-hero__media > picture,
.gh-hero__media > picture > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gh-hero__bottom { order: 2; }

/* Phones and tablets: headline, copy and buttons first, then the photograph */
@media (max-width: 899px) {
  .gh-hero__text { display: contents; }
  .gh-hero__intro { order: 1; padding: 28px var(--gh-gutter) 0; display: grid; gap: 16px; }
  .gh-hero__bottom { padding: 18px var(--gh-gutter) 32px; display: grid; gap: 22px; }
  .gh-hero__ctas { justify-self: stretch; }
}
@media (max-width: 599px) {
  .gh-hero__ctas .gh-btn { flex: 1 1 100%; }
}
@media (min-width: 600px) and (max-width: 899px) {
  .gh-hero__media { aspect-ratio: 4 / 3; }
  .gh-hero__ctas { justify-self: start; }
  .gh-hero__title { font-size: clamp(96px, 15vw, 128px); }
}
@media (min-width: 900px) {
  .gh-hero__grid {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    min-height: clamp(560px, calc(100svh - var(--gh-header) - 58px), 920px);
  }
  .gh-hero__text {
    justify-content: space-between;
    padding: 56px 40px 56px max(var(--gh-gutter), calc((100vw - var(--gh-max)) / 2 + var(--gh-gutter)));
  }
  .gh-hero__intro { display: grid; gap: 36px; }
  /* Sized from the real text column (5/12 of the viewport minus its padding) so BUILT FOR always holds one line */
  .gh-hero__title {
    font-size: min(calc((100vw * 5 / 12 - max(var(--gh-gutter), calc((100vw - var(--gh-max)) / 2 + var(--gh-gutter))) - 40px) / 3.75), 156px);
    line-height: .86; letter-spacing: -.012em;
  }
  .gh-hero__bottom { display: grid; gap: 30px; }
  .gh-hero__copy { max-width: 28em; padding-top: 26px; border-top: 1px solid var(--gh-rule); }
  @media (prefers-reduced-motion: no-preference) {
    html.gh-js .gh-hero__title span { animation: gh-hero-line 1.1s var(--gh-ease) both; }
    html.gh-js .gh-hero__title span + span { animation-delay: .09s; }
  }
  .gh-hero__media { order: 0; aspect-ratio: auto; min-height: 100%; }
}
@keyframes gh-hero-line {
  from { transform: translateY(.32em); clip-path: inset(0 -.2em 100% -.2em); }
  to { transform: none; clip-path: inset(-.3em -.2em -.3em -.2em); }
}

.gh-strip { border-bottom: 1px solid var(--gh-rule); }
.gh-strip__row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 10px 24px; min-height: 58px; padding-top: 14px; padding-bottom: 14px;
}
.gh-strip__list { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; padding: 0; list-style: none; }
.gh-strip__list { color: var(--gh-ink); }
.gh-strip__list li { display: inline-flex; align-items: center; }
.gh-strip__list li + li::before {
  content: ""; display: inline-block; width: 1px; height: 10px; margin-right: 14px;
  background: var(--gh-ink-soft); opacity: .35;
}
.gh-strip__row > p { text-wrap: balance; color: var(--gh-ink-soft); }
@media (max-width: 899px) {
  .gh-strip__row { flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; padding-top: 16px; padding-bottom: 16px; }
  .gh-strip__list { gap: 6px 12px; letter-spacing: .16em; }
  .gh-strip__list li + li::before { margin-right: 12px; }
  .gh-strip__row > p { letter-spacing: .16em; }
}

/* ---------- Sections ---------- */
.gh-section { padding: 96px 0; }
@media (min-width: 900px) { .gh-section { padding: 168px 0; } }
.gh-kicker { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; }
.gh-kicker__rule { width: 48px; height: 1px; background: currentColor; opacity: .4; }
.gh-head { display: grid; gap: 28px; margin-bottom: 56px; }
.gh-h2 { font-size: clamp(46px, 12.4vw, 72px); }
@media (min-width: 900px) {
  .gh-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; gap: 56px; margin-bottom: 96px; }
  .gh-h2 { font-size: clamp(72px, 7.2vw, 124px); }
  .gh-loc .gh-h2 { font-size: clamp(64px, 6.2vw, 104px); }
}

/* A. The House: asymmetric set on one 24px rhythm unit; the opener bleeds off the left edge */
#space { overflow-x: clip; }
.gh-set { display: grid; gap: 36px; }
@media (max-width: 599px) {
  #space .gh-head { gap: 20px; margin-bottom: 40px; }
  .gh-set > :nth-child(1) { margin-inline: calc(-1 * var(--gh-gutter)); }
  .gh-set > :nth-child(1) figcaption { padding-inline: var(--gh-gutter); }
  .gh-set > :nth-child(2) { margin-left: 18%; }
  .gh-set > :nth-child(3) { margin-right: 30%; }
}
@media (min-width: 600px) and (max-width: 899px) {
  .gh-set { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; align-items: start; }
}
@media (min-width: 900px) {
  #space .gh-head { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; margin-bottom: 72px; }
  #space .gh-head > :first-child { grid-column: 1 / span 7; }
  #space .gh-lede {
    grid-column: 8 / -1; font-size: 17px; line-height: 1.6; max-width: 26em;
    padding-top: 18px; border-top: 1px solid var(--gh-ink);
  }
  .gh-set {
    --gh-u: 24px;
    --gh-bleed: calc(max(0px, (100vw - var(--gh-max)) / 2) + var(--gh-gutter));
    grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 0; align-items: start;
  }
  .gh-set > :nth-child(1) { grid-column: 1 / span 8; margin-left: calc(-1 * var(--gh-bleed)); }
  .gh-set > :nth-child(1) figcaption { padding-left: var(--gh-bleed); }
  .gh-set > :nth-child(2) { grid-column: 9 / span 4; margin-top: calc(var(--gh-u) * 7); }
  .gh-set > :nth-child(3) { grid-column: 1 / span 4; margin-top: calc(var(--gh-u) * 4); }
  .gh-set > :nth-child(4) { grid-column: 6 / span 7; margin-top: calc(var(--gh-u) * 4); }
}
@media (min-width: 1200px) { #space .gh-lede { grid-column: 9 / -1; } }
@media screen and (min-width: 900px) and (prefers-reduced-motion: no-preference) {
  html.gh-js .gh-set > :nth-child(even) .gh-wipe.is-in { transition-delay: .14s; }
  html.gh-js .gh-set .gh-wipe > * { transform: scale(1.06); }
  html.gh-js .gh-set .gh-wipe.is-in > * { transform: none; }
}

/* B. For brands: typographic rows */
.gh-uses { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--gh-ink); }
.gh-use { border-bottom: 1px solid var(--gh-rule); }
.gh-use a {
  display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px 16px;
  align-items: baseline; padding: 28px 0; text-decoration: none;
}
.gh-use__num { font-size: 12px; letter-spacing: .2em; color: var(--gh-ink-soft); font-variant-numeric: tabular-nums; }
.gh-use__title {
  font-family: var(--gh-serif); font-size: clamp(38px, 12vw, 72px);
  line-height: .95; text-transform: uppercase; overflow-wrap: anywhere;
  letter-spacing: -.01em; font-synthesis: none;
  position: relative; z-index: 41; /* type sits above the floating photo (z 40) and below the nav (z 50) */
  transition: opacity .35s var(--gh-ease);
}
.gh-use__desc { grid-column: 2; font-size: 16px; color: var(--gh-ink-soft); max-width: 26em; text-wrap: pretty; }
.gh-use__num, .gh-use__desc, .gh-use__go { transition: opacity .35s var(--gh-ease), color .35s var(--gh-ease); }
.gh-use__go span { transition: transform .4s var(--gh-ease); }
.gh-use a:hover .gh-use__go span, .gh-use a:focus-visible .gh-use__go span { transform: translateX(4px); }
.gh-use__go {
  grid-column: 2; justify-self: start;
  display: inline-flex; gap: 10px;
  font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
}
.gh-use a:hover .gh-use__title, .gh-use a:focus-visible .gh-use__title { font-style: italic; }
@media (min-width: 900px) and (max-width: 1279px) {
  .gh-use a { grid-template-columns: 96px minmax(0, 1fr); padding: 34px 0; }
  .gh-use__title { font-size: clamp(72px, 8vw, 96px); }
}
@media (min-width: 1280px) {
  .gh-use a { grid-template-columns: 96px minmax(0, 1fr) 320px 120px; gap: 32px; padding: 36px 0; align-items: center; }
  .gh-use__title { font-size: clamp(72px, 7.6vw, 132px); }
  /* Lede shares the description column's left edge: 320 + 32 + 120 = 472px from the right */
  #brands .gh-head--stack { margin-bottom: 56px; }
  #brands .gh-head--stack .gh-lede { width: calc(320px + 32px + 120px); max-width: none; }
  .gh-use__desc, .gh-use__go { grid-column: auto; }
  .gh-use__go { justify-self: end; }
}
@media (min-width: 1280px) and (hover: hover) {
  .gh-use__go { color: var(--gh-taupe-ink); }
  .gh-use a:hover .gh-use__go, .gh-use a:focus-visible .gh-use__go { color: var(--gh-ink); }
}

/* C. Location: the one ink band */
.gh-location { background: var(--gh-ink); color: var(--gh-warm); }
.gh-location .gh-muted { color: var(--gh-taupe); }
.gh-location .gh-lede { color: var(--gh-stone); text-wrap: pretty; }
.gh-loc { display: grid; gap: 56px; }
.gh-loc .gh-h2 em { display: block; }
/* Below 1000px the map follows the lede, so tapping a row changes a map that is already on screen */
@media (max-width: 999px) {
  .gh-loc { gap: 0; }
  .gh-loc > div { display: contents; }
  .gh-loc .gh-map { order: 1; margin-top: 48px; }
  .gh-loc .gh-dist, .gh-loc .gh-dist__foot, .gh-loc .gh-loc__cta { order: 2; }
}
@media (min-width: 1000px) { .gh-loc { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; align-items: start; } }

.gh-dist { list-style: none; margin: 44px 0 0; padding: 0; border-top: 1px solid rgba(246, 244, 239, .2); }
.gh-dist button {
  display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: 2px 20px;
  width: 100%; padding: 20px 0; text-align: left; cursor: pointer;
  background: none; border: 0; border-bottom: 1px solid rgba(246, 244, 239, .2);
  color: inherit;
}
.gh-dist__fig {
  grid-row: span 2; align-self: center;
  font-family: var(--gh-serif); font-size: 36px; line-height: 1; letter-spacing: -.01em; white-space: nowrap;
  font-variant-numeric: lining-nums; color: var(--gh-warm);
  transition: opacity .4s var(--gh-ease);
}
.gh-dist__name { font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.gh-dist__name::after { content: "  \2192" / ""; opacity: 0; transition: opacity .4s var(--gh-ease); }
.gh-dist__note { font-size: 15px; line-height: 1.45; color: #A8A29A; }
.gh-dist button:hover .gh-dist__fig { opacity: .8; }
.gh-dist button[aria-pressed="true"] .gh-dist__fig { font-style: italic; opacity: 1; }
.gh-dist button[aria-pressed="true"] .gh-dist__name::after { opacity: 1; }
.gh-dist__foot { margin-top: 24px; font-size: 14px; color: #A8A29A; }
.gh-loc__cta {
  display: inline-flex; align-items: center; gap: 10px; justify-self: start;
  min-height: 44px; margin-top: 32px; border-bottom: 1px solid currentColor;
  color: var(--gh-warm); text-decoration: none;
}

.gh-map { position: relative; margin: 0; }
/* Portrait plate on phones and desktop; the SVG is cropped with slice, so x 200 to 800 of the 1000 wide drawing stays visible */
.gh-map__box { position: relative; aspect-ratio: 4 / 5; border: 1px solid rgba(246, 244, 239, .18); overflow: hidden; }
@media (min-width: 600px) and (max-width: 999px) { .gh-map__box { aspect-ratio: 1000 / 750; } }
.gh-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.gh-map__svg path, .gh-map__svg line { fill: none; vector-effect: non-scaling-stroke; transition: stroke .4s, stroke-width .4s, fill .4s, opacity .4s; }
.gh-map__park path { fill: rgba(246, 244, 239, .05); stroke: none; }
.gh-map__res path { stroke: #3A3936; stroke-width: 1; }
.gh-map__ter path { stroke: #56534E; stroke-width: 1.3; }
.gh-map__pri path, .gh-map__clar path { stroke: #9A958D; stroke-width: 2; }
.gh-map__tram path { stroke: var(--gh-taupe); stroke-width: 1.4; stroke-dasharray: 2 4; }
.gh-map__market path { fill: rgba(246, 244, 239, .24); stroke: var(--gh-warm); stroke-width: 1; }
.gh-map__route { stroke: var(--gh-warm); stroke-width: 1.4; stroke-dasharray: 3 5; opacity: 0; }
.gh-map__arrow { fill: var(--gh-warm) !important; stroke: none !important; }
.gh-map__house circle { fill: rgba(246, 244, 239, .12); stroke: var(--gh-warm); stroke-width: 1.5; stroke-dasharray: 3 4; }
.gh-map__house .gh-map__dot { fill: var(--gh-warm); stroke: none; }
.gh-map[data-active] .gh-map__res path { stroke: #2E2D2B; }
.gh-map[data-active="market"] .gh-map__market path { fill: rgba(246, 244, 239, .42); }
.gh-map[data-active="market"] .gh-map__market .gh-map__route,
.gh-map[data-active="clarendon"] .gh-map__clar .gh-map__route,
.gh-map[data-active="cbd"] .gh-map__cbd .gh-map__route { opacity: 1; }
.gh-map[data-active="clarendon"] .gh-map__clar path { stroke: var(--gh-warm); stroke-width: 3; }
.gh-map[data-active="trams"] .gh-map__tram path { stroke: var(--gh-warm); stroke-width: 2.2; }

.gh-map__tag {
  position: absolute; transform: translate(-50%, -100%);
  /* --x is the tag's position across the 1000 wide drawing; remapped to the 200 to 800 window of the 4:5 crop */
  left: calc((var(--x) - 20%) * 5 / 3);
  padding: 3px 6px; white-space: nowrap; pointer-events: none;
  font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gh-warm); background: var(--gh-ink);
}
@media (min-width: 600px) and (max-width: 999px) { .gh-map__tag { left: var(--x); } }
.gh-map__tag--house { transform: translate(6px, -50%); background: var(--gh-warm); color: var(--gh-ink); }
.gh-map__tag--left { transform: translate(8px, -50%); }
.gh-map__tag--end { transform: translate(calc(-100% - 8px), -50%); }
.gh-map__tag--below { transform: translate(-50%, 6px); }
@media (max-width: 599px) {
  .gh-map__tag--end { left: auto !important; right: 4px; transform: translateY(-50%); }
  .gh-map__tag--left { transform: translate(calc(-100% - 10px), -50%); }
}
.gh-map figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 12px; font-size: 13px; color: #A8A29A; }
.gh-map figcaption a { color: #A8A29A; text-decoration-thickness: 1px; text-underline-offset: 3px; }
@media (max-width: 599px) { .gh-map figcaption { flex-direction: column; gap: 6px; } }

/* D. Gallery: on the page grid, with the opening panorama running edge to edge */
#gallery { overflow-x: clip; }
.gh-gallery { display: grid; gap: 40px 16px; padding: 0 var(--gh-gutter); max-width: var(--gh-max); margin: 0 auto; }
.gh-gallery > :first-child { margin-inline: calc(50% - 50vw); }
.gh-gallery > :first-child figcaption { max-width: var(--gh-max); margin: 0 auto; padding-inline: var(--gh-gutter); }
@media (min-width: 600px) and (max-width: 899px) {
  .gh-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
  .gh-gallery > :first-child { grid-column: 1 / -1; }
}
@media (min-width: 900px) {
  .gh-gallery { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(64px, 6vw, 96px) 20px; align-items: end; }
  .gh-gallery > * { grid-column: var(--col, auto / span 12); }
}
.gh-gallery__open {
  position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%;
  background: none; border: 0; padding: 0; cursor: zoom-in;
}
.gh-gallery__open:focus-visible { outline: 2px solid var(--gh-ink); outline-offset: 4px; }
.gh-gallery > :first-child .gh-gallery__open:focus-visible { outline-color: #fff; outline-offset: -8px; box-shadow: inset 0 0 0 6px var(--gh-ink); }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .gh-gallery .gh-shot:hover .gh-shot__frame > * { transform: scale(1.015); }
}
#gallery .gh-h2 em { white-space: nowrap; }
.gh-gallery figcaption .gh-label { letter-spacing: .16em; }
.gh-gallery figcaption .gh-muted { color: #5C5C5C; letter-spacing: .12em; }
@media (max-width: 599px) {
  .gh-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 12px; align-items: end; }
  .gh-gallery > * { grid-column: 1 / -1; }
  .gh-gallery > [data-slot="gallery-6"],
  .gh-gallery > [data-slot="gallery-7"] { grid-column: auto / span 1; }
  .gh-gallery > [data-slot="gallery-6"] figcaption,
  .gh-gallery > [data-slot="gallery-7"] figcaption { flex-direction: column; gap: 2px; }
}
.gh-gallery__hint { margin-top: 18px; }

.gh-lightbox {
  width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none;
  margin: 0; padding: 0; border: 0; background: #fff; color: var(--gh-ink);
}
.gh-lightbox::backdrop { background: rgba(255, 255, 255, .96); }
.gh-lightbox[open] { animation: gh-fade .35s var(--gh-ease); }
@keyframes gh-fade { from { opacity: 0; } to { opacity: 1; } }
.gh-lightbox__inner { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; grid-template-columns: minmax(0, 1fr); height: 100%; }
.gh-lightbox__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: max(16px, env(safe-area-inset-top)) var(--gh-gutter) 16px; }
.gh-lightbox__actions { display: flex; align-items: center; gap: 8px; }
.gh-lightbox [data-lb-count] { font-variant-numeric: tabular-nums; }
.gh-lightbox__stage { display: flex; align-items: center; justify-content: center; padding: 0 var(--gh-gutter); min-height: 0; min-width: 0; }
.gh-lightbox__frame { position: relative; overflow: hidden; }
.gh-lightbox__frame > img, .gh-lightbox__frame > .gh-ph { position: absolute; inset: 0; width: 100%; height: 100%; animation: gh-fade .4s var(--gh-ease); }
.gh-lightbox__frame > img { object-fit: contain; }
.gh-lightbox__foot {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin: 0 var(--gh-gutter); padding: 16px 0 max(20px, env(safe-area-inset-bottom));
  border-top: 1px solid var(--gh-rule);
}
.gh-lightbox button {
  min-width: 44px; min-height: 44px; padding: 0 6px; background: none; border: 0; cursor: pointer;
  color: var(--gh-ink); font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
}
.gh-lightbox button, .gh-lightbox__actions a {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap;
  transition: opacity .25s var(--gh-ease);
}
.gh-lightbox__actions a {
  min-height: 44px; padding: 0 6px; color: var(--gh-ink); text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: 6px;
  font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
}
.gh-lightbox button:hover, .gh-lightbox__actions a:hover { opacity: .6; }
.gh-lightbox button:focus-visible, .gh-lightbox__actions a:focus-visible { outline: 2px solid var(--gh-ink); outline-offset: 4px; }
.gh-lightbox__nav { display: flex; gap: 8px; flex-shrink: 0; }
@media (max-width: 640px) {
  .gh-lightbox__stage { padding: 0; }
  .gh-lightbox__foot { flex-direction: column; align-items: stretch; gap: 6px; padding-top: 14px; }
  .gh-lightbox [data-lb-caption] { letter-spacing: .18em; max-width: 34ch; }
  .gh-lightbox__nav { justify-content: space-between; }
  .gh-lightbox__nav button { padding: 0; }
}

/* E. Hire: full-bleed photo plate beside the headline, hire options as rows */
.gh-hirebox { display: grid; gap: 44px; }
/* Under 1000px the plate runs edge to edge and is cropped shorter (lose the ceiling, keep the table) */
.gh-hirebox__media { margin-inline: calc(-1 * var(--gh-gutter)); }
.gh-hirebox__media .gh-shot__frame { aspect-ratio: 4 / 3; }
.gh-hirebox__media img { object-position: 50% 62%; }
.gh-hirebox__body .gh-lede { margin-top: 28px; }
@media (min-width: 1000px) {
  .gh-hirebox { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 88px; align-items: start; }
  /* Bleed to the left viewport edge (same formula as the hero), never taller than the viewport */
  .gh-hirebox__media {
    position: sticky; top: calc(var(--gh-header) + 32px);
    margin-inline: calc(-1 * max(var(--gh-gutter), (100vw - var(--gh-max)) / 2 + var(--gh-gutter))) 0;
  }
  .gh-hirebox__media .gh-shot__frame { aspect-ratio: var(--ar, 4 / 5); max-height: calc(100svh - var(--gh-header) - 64px); }
}
.gh-hire { display: grid; margin-top: 48px; border-top: 1px solid var(--gh-ink); }
.gh-option { display: grid; gap: 10px 32px; padding: 28px 0; border-bottom: 1px solid var(--gh-rule); }
.gh-option__name {
  font-family: var(--gh-serif); font-size: clamp(40px, 4.6vw, 64px); line-height: .95; letter-spacing: -.005em;
  text-transform: uppercase; margin: 0; font-weight: 400; overflow-wrap: anywhere; hyphens: none;
  transition: transform .6s var(--gh-ease);
}
.gh-option__desc { color: var(--gh-ink-soft); max-width: 24em; }
.gh-option__rate, .gh-note { color: var(--gh-ink-soft); }
.gh-option .gh-link { margin-top: 4px; }
/* Same row language as section B: name sets italic and steps in */
.gh-option:focus-within .gh-option__name { font-style: italic; transform: translateX(10px); }
.gh-option:focus-within .gh-arrow { transform: translateX(5px); }
@media (hover: hover) and (pointer: fine) {
  .gh-option:hover .gh-option__name { font-style: italic; transform: translateX(10px); }
  .gh-option:hover .gh-arrow { transform: translateX(5px); }
}
.gh-hire .gh-option:nth-child(2).is-in { transition-delay: .09s; }
.gh-hire .gh-option:nth-child(3).is-in { transition-delay: .18s; }
@media (min-width: 700px) {
  .gh-option { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); grid-template-areas: "name desc" "name rate" "name link"; align-items: start; }
  .gh-option__name { grid-area: name; }
  .gh-option__desc { grid-area: desc; }
  .gh-option__rate { grid-area: rate; }
  .gh-option .gh-link { grid-area: link; }
}
.gh-note { margin-top: 28px; }
.gh-indep {
  display: grid; gap: 10px; margin-top: 48px; padding-top: 24px;
  border-top: 1px solid var(--gh-rule); font-size: 15px; line-height: 1.6; color: var(--gh-ink-soft);
}
.gh-indep a { color: var(--gh-ink); text-underline-offset: 3px; }
@media (min-width: 900px) { .gh-indep { margin-top: 56px; grid-template-columns: 240px minmax(0, 46em); gap: 40px; } }
/* Lock the note to the hirebox 5/7 grid: label under the photo, text on the hire-row edge */
@media (min-width: 1000px) {
  .gh-indep { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 88px; }
  .gh-indep > p:last-child { max-width: 40em; }
}

/* F. Enquire */
.gh-enq { display: grid; gap: 48px; }
@media (min-width: 1000px) {
  .gh-enq { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 88px; align-items: start; }
  .gh-enq__side { position: sticky; top: calc(var(--gh-header) + 32px); }
  .gh-form { padding-top: 28px; border-top: 1px solid var(--gh-ink); }
}
.gh-enq__side { display: grid; gap: 28px; align-content: start; }

.gh-form { display: grid; gap: 32px 24px; align-items: start; }
@media (min-width: 700px) { .gh-form { grid-template-columns: 1fr 1fr; } }
.gh-field { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.gh-field--full, .gh-form__foot, .gh-form__status, .gh-choice { grid-column: 1 / -1; }
@media (min-width: 700px) { .gh-choice { grid-column: auto; } }
.gh-form [data-turnstile]:empty { display: none; }
.gh-field > label, .gh-choice legend {
  font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
}
.gh-req { color: var(--gh-ink); }
.gh-field input, .gh-field select, .gh-field textarea {
  width: 100%; min-height: 48px; padding: 10px 0;
  font: inherit; font-size: 17px; color: var(--gh-ink);
  background: transparent; border: 0; border-bottom: 1px solid var(--gh-field); border-radius: 0;
  -webkit-appearance: none; appearance: none;
  transition: border-color .25s, box-shadow .25s;
}
.gh-field input:not([type=radio]), .gh-field select { height: 48px; }
.gh-field textarea { min-height: 150px; padding: 14px; border: 1px solid var(--gh-field); resize: vertical; line-height: 1.55; }
.gh-field select {
  padding-right: 28px; cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23171717' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right 4px center;
}
.gh-field input:focus, .gh-field select:focus { outline: none; border-bottom-color: var(--gh-ink); box-shadow: 0 1px 0 0 var(--gh-ink); }
.gh-field textarea:focus { outline: none; border-color: var(--gh-ink); box-shadow: inset 0 0 0 1px var(--gh-ink); }
.gh-field input::placeholder, .gh-field textarea::placeholder { color: #707070; }
.gh-hint { font-size: 13px; color: var(--gh-taupe-ink); }
.gh-err { font-size: 13px; color: var(--gh-error); min-height: 0; }
.gh-err:empty { display: none; }
.gh-field.is-invalid input, .gh-field.is-invalid select { border-bottom-color: var(--gh-error); }
.gh-field.is-invalid textarea, .gh-choice.is-invalid .gh-choice__opts { border-color: var(--gh-error); }

.gh-choice { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 12px; }
.gh-choice legend { padding: 0; margin-bottom: 10px; }
.gh-choice__opts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--gh-ink); border-left: 0; border-right: 0; }
.gh-choice__opts label { position: relative; display: block; cursor: pointer; }
.gh-choice__opts label + label { border-left: 1px solid var(--gh-ink); }
.gh-choice__opts input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gh-choice__opts span {
  display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px;
  font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; text-align: center;
  transition: background-color .25s, color .25s;
}
.gh-choice__opts input:checked + span { background: var(--gh-ink); color: #fff; }
.gh-choice__opts input:focus-visible + span { outline: 2px solid var(--gh-ink); outline-offset: 3px; }
@media (hover: hover) { .gh-choice__opts label:hover input:not(:checked) + span { background: #F4F4F4; } }

.gh-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.gh-form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid var(--gh-ink); }
.gh-form__note { flex: 1 1 18em; max-width: 34em; font-size: 13px; line-height: 1.6; color: var(--gh-taupe-ink); text-wrap: pretty; }
.gh-form__note a { color: var(--gh-ink); text-underline-offset: 2px; }
@media (max-width: 699px) {
  .gh-form__foot .gh-btn { width: 100%; min-height: 56px; justify-content: space-between; }
}
.gh-form__status:empty { display: none; }
.gh-alert { padding: 14px 18px; border-left: 2px solid var(--gh-error); background: #FBF6F6; font-size: 15px; }
.gh-alert--ok { border-left-color: var(--gh-ink); background: #fff; }
.gh-done { display: grid; gap: 20px; padding-top: 32px; border-top: 1px solid var(--gh-ink); }
.gh-done__title { font-size: clamp(48px, 6vw, 80px); }
.gh-done:focus { outline: none; }

/* Stacked section head: headline across the page, lede tucked under the right side */
@media (min-width: 900px) {
  .gh-head--stack { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .gh-head--stack .gh-lede { justify-self: end; max-width: 26em; }
}

/* B. For Brands: a photograph follows the cursor over the rows (fine pointers only) */
.gh-use__media { display: none; }
/* Touch and small screens: no hover, so each row carries its own small 4:5 plate */
@media (max-width: 899px), (max-width: 1279px) and (hover: none) {
  .gh-use a { grid-template-columns: 40px minmax(0, 1fr) 64px; }
  .gh-use__num { grid-row: 1; }
  .gh-use__title { grid-column: 2 / -1; grid-row: 1; }
  .gh-use__desc { grid-row: 2; }
  .gh-use__go { grid-row: 3; }
  .gh-use__media {
    display: block; position: relative; overflow: hidden;
    grid-column: 3; grid-row: 2 / span 2; align-self: start;
    width: 64px; aspect-ratio: 4 / 5; background: var(--gh-mist);
  }
  .gh-use__media > img, .gh-use__media > .gh-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .gh-use__media .gh-ph__tag { display: none; }
}
@media (min-width: 900px) and (max-width: 1279px) and (hover: none) {
  .gh-use a { grid-template-columns: 96px minmax(0, 1fr) 88px; }
  .gh-use__media { width: 88px; }
}
.gh-cursor {
  position: fixed; left: 0; top: 0; z-index: 40; pointer-events: none;
  width: clamp(200px, 16vw, 270px); aspect-ratio: 4 / 5; overflow: hidden;
  background: var(--gh-mist); opacity: 0;
  clip-path: inset(100% 0 0 0);
  transform: translate3d(var(--x, -999px), var(--y, -999px), 0) translate(36px, calc(-100% - 56px));
  transition: opacity .35s var(--gh-ease), clip-path .6s var(--gh-ease);
}
.gh-cursor.is-on { opacity: 1; clip-path: inset(0); }
.gh-cursor > img, .gh-cursor > .gh-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .35s var(--gh-ease); }
.gh-cursor > .is-entering { opacity: 0; }
.gh-uses.is-previewing .gh-use a:not(:hover) .gh-use__title { opacity: .3; }
.gh-uses.is-previewing .gh-use a:not(:hover) .gh-use__num,
.gh-uses.is-previewing .gh-use a:not(:hover) .gh-use__desc,
.gh-uses.is-previewing .gh-use a:not(:hover) .gh-use__go { opacity: .7; }

/* Interlude: one full-bleed photograph between For Brands and Location */
.gh-interlude__frame { position: relative; margin: 0; height: clamp(440px, 78vh, 860px); overflow: hidden; background: var(--gh-mist); }
.gh-interlude__frame > img, .gh-interlude__frame > picture, .gh-interlude__frame > picture > img,
.gh-interlude__frame > .gh-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gh-interlude__frame img { object-position: var(--gh-interlude-pos, 50% 45%); transform: scale(1.03); transition: transform 2s var(--gh-ease); }
.gh-interlude.is-in .gh-interlude__frame img { transform: none; }
.gh-interlude__frame::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 48%; pointer-events: none;
  background: linear-gradient(to top, rgba(10, 10, 10, .52), rgba(10, 10, 10, .2) 50%, rgba(10, 10, 10, 0));
}
.gh-interlude__cap {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
  max-width: var(--gh-max); margin: 0 auto; color: #fff;
  padding: 0 max(var(--gh-gutter), env(safe-area-inset-right)) max(clamp(32px, 4.5vw, 64px), env(safe-area-inset-bottom)) max(var(--gh-gutter), env(safe-area-inset-left));
}
.gh-interlude__cap .gh-display {
  display: block; font-size: clamp(38px, 7.2vw, 112px); line-height: .92; letter-spacing: -.012em;
  margin-left: -.04em; text-shadow: 0 1px 24px rgba(10, 10, 10, .28);
}
@media (min-width: 900px) { .gh-interlude__cap .gh-display em { padding-left: .9em; } }
.gh-interlude__kicker { display: block; margin-bottom: 18px; color: inherit; }

/* Hero: a quiet contents list fills the column on tall desktop screens */
.gh-hero__index { display: none; }
@media (min-width: 900px) and (min-height: 820px) {
  .gh-hero__index { display: block; margin-top: 28px; }
  .gh-hero__index ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 2px 26px; }
  .gh-hero__index a { display: inline-flex; align-items: center; gap: 10px; min-height: 28px; font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; text-decoration: none; }
  .gh-hero__index a span { color: var(--gh-taupe-ink); font-variant-numeric: tabular-nums; }
  .gh-hero__index a:hover { text-decoration: underline; text-underline-offset: 6px; }
}
.gh-interlude__frame:has(.gh-ph)::after { display: none; }
.gh-interlude__frame:has(.gh-ph) .gh-interlude__cap { color: var(--gh-ink); }
.gh-interlude__frame:has(.gh-ph) .gh-interlude__cap .gh-display { text-shadow: none; }
@media (max-width: 899px) {
  .gh-interlude__frame { height: clamp(460px, 72svh, 640px); }
}
.gh-interlude .gh-ph__tag { top: 16px; bottom: auto; }
@media (prefers-reduced-motion: reduce) { .gh-interlude__frame img { transform: none; } }

/* ---------- Footer ---------- */
.gh-footer { border-top: 1px solid var(--gh-ink); padding: 56px 0 calc(32px + env(safe-area-inset-bottom)); }
@media (min-width: 900px) { .gh-footer { padding-top: 72px; } }

/* Sign-off: the owner's enquiry line, repeated as a link back to the form */
.gh-footer__sign {
  display: inline-block; margin: 0 0 48px;
  font-family: var(--gh-serif); font-weight: 400; font-size: clamp(48px, 10vw, 152px);
  line-height: .9; letter-spacing: -.005em; text-transform: uppercase; text-decoration: none;
}
.gh-footer__sign em { font-style: italic; }
.gh-footer__sign .gh-arrow { font-family: var(--gh-sans); font-size: .32em; vertical-align: .55em; margin-left: .2em; }
.gh-footer__sign:hover .gh-arrow, .gh-footer__sign:focus-visible .gh-arrow { transform: translateX(8px); }
.gh-footer__sign:focus-visible { outline-offset: 8px; }
@media (min-width: 900px) { .gh-footer__sign { margin-bottom: 88px; } }

/* Grid: true 12 columns, empty column 5 for air, one shared top line */
.gh-footer__grid { display: grid; gap: 44px; align-items: start; padding-top: 32px; border-top: 1px solid var(--gh-rule); }
@media (min-width: 900px) {
  .gh-footer__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gh-gutter); padding-top: 40px; }
  .gh-footer__brand { grid-column: 1 / span 4; }
  .gh-footer__grid > nav { grid-column: 6 / span 3; }
  .gh-footer__part { grid-column: 9 / span 4; }
}
.gh-footer__brand { display: grid; gap: 22px; align-content: start; }
.gh-footer__brand img { width: 150px; height: auto; }
.gh-footer__brand p { color: var(--gh-ink-soft); max-width: 24em; }

/* Nav as a numbered contents list; line box matches the PART OF GLOW label so first lines align */
.gh-footer ul {
  list-style: none; margin: -13px 0 0; padding: 0; display: grid;
  font-size: 11px; line-height: 1.5;
}
@media (max-width: 899px) {
  .gh-footer ul { grid-template-rows: repeat(3, auto); grid-auto-flow: column; column-gap: var(--gh-gutter); }
}
.gh-footer ul a {
  display: inline-flex; align-items: baseline; gap: 14px; padding: 13px 0;
  font-weight: 500; letter-spacing: .24em; text-transform: uppercase; text-decoration: none;
}
.gh-footer__n { color: var(--gh-taupe-ink); font-variant-numeric: tabular-nums; }
.gh-footer ul a > span:last-child {
  padding-bottom: 2px;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
  transition: background-size .4s var(--gh-ease);
}
.gh-footer ul a:hover > span:last-child, .gh-footer ul a:focus-visible > span:last-child { background-size: 100% 1px; }
.gh-footer__part { display: grid; gap: 14px; align-content: start; font-size: 14px; color: var(--gh-ink-soft); }
.gh-footer__part p:not(.gh-label) { max-width: 34em; }

/* Colophon: neutral dark text, not warm taupe; 44px-tall legal targets */
.gh-footer__base {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 24px;
  margin-top: 48px; padding-top: 12px; border-top: 1px solid var(--gh-rule);
  font-size: 13px; color: var(--gh-ink-soft);
}
@media (min-width: 900px) { .gh-footer__base { margin-top: 72px; } }
.gh-footer__base nav { display: flex; flex-wrap: wrap; gap: 0 24px; }
.gh-footer__base a {
  display: inline-flex; align-items: center; min-height: 44px;
  color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px;
}
.gh-footer__base a:hover { color: var(--gh-ink); }

.gh-credit { margin-top: 32px; }
