*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + var(--space-3));
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--step-1);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
}
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  margin: 0;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
h1 { font-size: var(--step-5); line-height: 1.05; letter-spacing: -0.03em; }
h2 { font-size: var(--step-3); line-height: 1.15; letter-spacing: -0.025em; }
h3 { font-size: var(--step-2); line-height: 1.25; letter-spacing: -0.015em; }
h4 { font-size: var(--step-1); line-height: 1.3; letter-spacing: -0.01em; }
p { margin: 0 0 var(--space-4); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
a { color: inherit; }
a:hover { text-decoration-color: var(--color-accent); }
img { max-width: 100%; height: auto; display: block; }
svg { display: inline-block; vertical-align: middle; }
ul, ol { margin: 0 0 var(--space-4); padding-inline-start: 1.25rem; }
ul:last-child, ol:last-child { margin-bottom: 0; }
small { font-size: var(--step-0); }
:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
}
.skip-link {
  position: absolute;
  left: var(--space-4);
  top: var(--space-4);
  z-index: 100;
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  text-decoration: none;
  font-weight: 600;
  transform: translateY(-160%);
  transition: transform 160ms ease;
}
.skip-link:focus {
  transform: translateY(0);
}
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.wrap {
  width: min(var(--max-width), calc(100% - 2rem));
  margin-inline: auto;
}
@media (min-width: 720px) {
  .wrap { width: min(var(--max-width), calc(100% - 2.5rem)); }
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: var(--tap-min);
  padding: 0.75rem 1.5rem;
  line-height: 1.2;
  white-space: nowrap;
  background: var(--color-accent);
  color: var(--color-accent-text);
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.btn:hover {
  background: color-mix(in srgb, var(--color-accent) 88%, var(--color-text));
}
.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: var(--tap-min);
  padding: 0.75rem 1.5rem;
  line-height: 1.2;
  white-space: nowrap;
  background: transparent;
  color: var(--color-text);
  text-decoration: none;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.btn-outline:hover {
  border-color: var(--color-text);
  background: color-mix(in srgb, var(--color-text) 6%, transparent);
}
.btn-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: var(--tap-min);
  white-space: nowrap;
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text);
  transition: color 180ms ease;
}
.btn-arrow::after {
  content: "→";
  transition: transform 180ms ease;
}
.btn-arrow:hover {
  color: var(--color-accent);
}
.btn-arrow:hover::after { transform: translateX(3px); }
.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: var(--tap-min);
  padding: 0.75rem 1.5rem;
  line-height: 1.2;
  white-space: nowrap;
  background: transparent;
  color: var(--color-text);
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 180ms ease, color 180ms ease, background-color 180ms ease;
}
.btn-ghost:hover {
  background: color-mix(in srgb, var(--color-text) 6%, transparent);
}
.c-cookie-banner {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 200;
  padding: var(--space-4) 0 calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
  background: var(--color-surface);
  color: var(--color-text);
  border-top: 1px solid var(--color-border);
  box-shadow: 0 -8px 24px color-mix(in srgb, var(--color-text) 8%, transparent);
}
.c-cookie-banner__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.c-cookie-banner__title {
  margin: 0 0 var(--space-2);
  font-family: var(--font-display);
  font-size: var(--step-1);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.c-cookie-banner__text {
  margin: 0;
  font-size: var(--step-0);
  color: var(--color-muted);
  max-width: 42rem;
}
.c-cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}
.c-cookie-banner__more {
  min-height: var(--tap-min);
  display: inline-flex;
  align-items: center;
  font-weight: 600;
  font-size: var(--step-0);
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  cursor: pointer;
}
.c-cookie-banner__more:hover { color: var(--color-accent); }
@media (max-width: 719px) {
  .c-cookie-banner {
    /* A delayed first-visit beacon must not insert a banner into document flow. */
    max-height: 50dvh;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
@media (min-width: 720px) {
  .c-cookie-banner__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
  }
  .c-cookie-banner__actions { flex-shrink: 0; }
}
.c-lead-ok {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-3) var(--space-4);
  margin: 0 0 var(--space-4);
  color: var(--color-text);
}
.c-lead-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.c-cookie-page {
  padding: var(--space-7) 0 var(--space-8);
}
.c-cookie-page h1 {
  margin-bottom: var(--space-3);
}
.c-cookie-page h2 {
  margin: var(--space-6) 0 var(--space-3);
}
.c-cookie-page .wrap { max-width: 42rem; }
.c-cookie-page p { color: var(--color-muted); }
.c-cookie-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
}

/* Scroll reveal — armed only after islands mark above-fold .is-in */
[data-reveal] {
  --reveal-x: 0;
  --reveal-y: var(--reveal-dist, 16px);
}
[data-reveal-strength="whisper"] {
  --reveal-dist: 8px;
  --reveal-dur: 400ms;
  --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal-strength="editorial"] {
  --reveal-dist: 16px;
  --reveal-dur: 550ms;
  --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal-strength="noticeable"] {
  --reveal-dist: 24px;
  --reveal-dur: 650ms;
  --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal-from="up"] { --reveal-x: 0; --reveal-y: var(--reveal-dist, 16px); }
[data-reveal-from="down"] { --reveal-x: 0; --reveal-y: calc(var(--reveal-dist, 16px) * -1); }
[data-reveal-from="left"] { --reveal-x: calc(var(--reveal-dist, 16px) * -1); --reveal-y: 0; }
[data-reveal-from="right"] { --reveal-x: var(--reveal-dist, 16px); --reveal-y: 0; }
[data-reveal-child][data-reveal-from="up"] {
  --reveal-child-x: 0;
  --reveal-child-y: var(--reveal-dist, 16px);
}
[data-reveal-child][data-reveal-from="down"] {
  --reveal-child-x: 0;
  --reveal-child-y: calc(var(--reveal-dist, 16px) * -1);
}
[data-reveal-child][data-reveal-from="left"] {
  --reveal-child-x: calc(var(--reveal-dist, 16px) * -1);
  --reveal-child-y: 0;
}
[data-reveal-child][data-reveal-from="right"] {
  --reveal-child-x: var(--reveal-dist, 16px);
  --reveal-child-y: 0;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}


/* —— Layout —— */
.section {
  padding-block: var(--section-y);
}
.section--tight { padding-block: var(--space-6); }
.section--roomy { padding-block: calc(var(--section-y) + var(--space-5)); }
.section--surface { background: var(--color-surface); }
.section--muted { background: var(--color-surface-2); }
.section--dark,
[data-scheme="dark"] {
  --color-bg: #141210;
  --color-text: #F7F4EF;
  --color-muted: #B8B0A4;
  --color-surface: #1E1B18;
  --color-surface-2: #2A2622;
  --color-border: #3A342E;
  background: var(--color-bg);
  color: var(--color-text);
}
.section__head {
  display: grid;
  gap: var(--space-3);
  margin-bottom: var(--space-7);
  max-width: 42rem;
}
.section__head--center {
  margin-inline: auto;
  text-align: center;
  justify-items: center;
}
.section__head--row {
  max-width: none;
  grid-template-columns: minmax(0, 42rem);
  align-items: end;
  justify-content: space-between;
}
@media (min-width: 720px) {
  .section__head--row { grid-template-columns: minmax(0, 42rem) auto; }
}
.section__head--row > .btn-group { justify-self: end; }
/* Editorial split head: short label column, heading + lede column. */
.section__head--split { max-width: none; }
@media (min-width: 720px) {
  .section__head--split {
    grid-template-columns: minmax(0, 14rem) minmax(0, 42rem);
    gap: var(--space-5) var(--space-7);
    align-items: start;
  }
  .section__head--split > .eyebrow { padding-top: 0.45em; }
  .section__head--split > :not(.eyebrow) { grid-column: 2; }
}
.sticky-col { align-self: start; }
@media (min-width: 1080px) {
  .sticky-col { position: sticky; top: calc(var(--header-h, 4rem) + var(--space-5)); }
}
.section__head .lede,
.lede {
  margin: 0;
  color: var(--color-muted);
  font-size: var(--step-1);
  line-height: 1.55;
  max-width: 38rem;
}
.lede--lg { font-size: var(--step-2); line-height: 1.45; }
.eyebrow {
  margin: 0;
  font-size: var(--step-0);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.eyebrow--accent { color: var(--color-accent); }
.grid {
  display: grid;
  gap: var(--gap, var(--space-5));
}
.grid--2 { grid-template-columns: 1fr; }
.grid--3 { grid-template-columns: 1fr; }
.grid--4 { grid-template-columns: 1fr; }
@media (min-width: 720px) {
  .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1080px) {
  .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.split {
  display: grid;
  gap: var(--space-6);
  align-items: center;
}
.split--top { align-items: start; }
@media (min-width: 720px) {
  .split { grid-template-columns: 1fr 1fr; gap: var(--space-7); }
  .split--reverse > :first-child { order: 2; }
}
@media (min-width: 1080px) {
  .split { gap: var(--space-8); }
}
.bento {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.bento__wide, .bento__full { grid-column: span 2; }
@media (min-width: 720px) {
  .bento {
    gap: var(--space-4);
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-rows: minmax(9rem, auto);
    grid-auto-flow: dense;
  }
  .bento > * { grid-column: span 3; }
  .bento__wide { grid-column: span 4; }
  .bento__tall { grid-row: span 2; }
  .bento__full { grid-column: span 6; }
  .bento__narrow { grid-column: span 2; }
}
.stack { display: grid; gap: var(--space-4); }
.stack--tight { gap: var(--space-2); }
.stack--loose { gap: var(--space-6); }
.row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}
.row--between { justify-content: space-between; }

/* —— Surfaces —— */
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.card--bordered { box-shadow: none; }
.card--elevated { box-shadow: var(--shadow-2); border-color: transparent; }
.card--flat {
  box-shadow: none;
  border-color: transparent;
  background: var(--color-surface-2);
}
.card--accent { border-color: var(--color-accent); box-shadow: 0 0 0 1px var(--color-accent); }
.card--interactive {
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.card--interactive:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-2);
}
.card__media {
  position: relative;
  overflow: hidden;
  background: var(--color-surface-2);
  border-radius: 0;
}
.card__media img,
.card__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 400ms ease;
}
.card--interactive:hover .card__media img { transform: scale(1.03); }
.card__body {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-5);
  flex: 1;
  align-content: start;
}
.card__body > h3,
.card__body > h4 {
  font-size: var(--step-2);
  line-height: 1.25;
}
.card__body > p { margin: 0; color: var(--color-muted); font-size: var(--step-1); }
.card__body > .btn-group,
.card__body > .btn,
.card__body > .btn-outline,
.card__body > .btn-arrow {
  margin-top: var(--space-2);
  justify-self: start;
}
.card__body > .btn-arrow { align-self: end; margin-top: auto; padding-top: var(--space-3); }
/* Photo tile with a bottom scrim and light text (services tiles, project grids, step panels). */
.photo-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--color-surface-2);
  color: #fff;
  text-decoration: none;
}
.photo-card > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}
.photo-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 30%, rgba(0, 0, 0, 0.72) 100%);
}
.photo-card__body {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-5);
}
.photo-card__body h2,
.photo-card__body h3,
.photo-card__body strong { color: #fff; }
.photo-card__body p { margin: 0; color: rgba(255, 255, 255, 0.82); }
.photo-card__body .eyebrow { color: rgba(255, 255, 255, 0.72); }
a.photo-card:hover > img,
a.photo-card:focus-visible > img { transform: scale(1.04); }
a.photo-card:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.card__footer {
  margin-top: auto;
  padding: var(--space-4) var(--space-5);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.hairline {
  border: 0;
  border-top: 1px solid var(--color-border);
  margin: var(--space-6) 0;
}
.frame {
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--color-surface-2);
  box-shadow: var(--shadow-2);
}
.frame > img,
.frame > video { width: 100%; height: 100%; object-fit: cover; }
.ratio-16x9,
.ratio-4x3,
.ratio-3x2,
.ratio-1x1,
.ratio-3x4,
.ratio-21x9 {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--color-surface-2);
}
.ratio-16x9 { aspect-ratio: 16 / 9; }
.ratio-4x3 { aspect-ratio: 4 / 3; }
.ratio-3x2 { aspect-ratio: 3 / 2; }
.ratio-1x1 { aspect-ratio: 1 / 1; }
.ratio-3x4 { aspect-ratio: 3 / 4; }
.ratio-21x9 { aspect-ratio: 21 / 9; }
.card__media[class*="ratio-"] { border-radius: 0; }
.ratio-16x9 > img,
.ratio-4x3 > img,
.ratio-3x2 > img,
.ratio-1x1 > img,
.ratio-3x4 > img,
.ratio-21x9 > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.icon-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--color-accent) 12%, transparent);
  color: var(--color-accent);
  flex-shrink: 0;
}
.icon-tile .icon { width: 1.35rem; height: 1.35rem; }
.icon-tile--round { border-radius: var(--radius-pill); }
.icon-tile--muted { background: var(--color-surface-2); color: var(--color-text); }

/* —— Marks —— */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 1.85rem;
  padding: 0.25rem 0.75rem;
  border-radius: var(--radius-pill);
  font-size: var(--step-0);
  font-weight: 600;
  line-height: 1.2;
  background: var(--color-surface-2);
  color: var(--color-text);
  border: 1px solid transparent;
  white-space: nowrap;
}
.badge .icon { width: 1rem; height: 1rem; }
.badge--accent {
  background: color-mix(in srgb, var(--color-accent) 14%, transparent);
  color: var(--color-accent);
}
.badge--muted { color: var(--color-muted); }
.badge--outline {
  background: transparent;
  border-color: var(--color-border);
}
.stat { display: grid; gap: var(--space-1); align-content: start; }
.stat__value {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--step-4);
  font-weight: 600;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  line-height: 1.05;
}
.stat__label {
  margin: 0;
  color: var(--color-muted);
  font-size: var(--step-0);
}
.stat--sm .stat__value { font-size: var(--step-3); }
.rating {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  color: var(--color-accent);
  letter-spacing: 0.05em;
  line-height: 1;
}
.rating .icon { width: 1.05rem; height: 1.05rem; fill: currentColor; stroke: none; }
.price {
  display: flex;
  align-items: baseline;
  gap: 0.3rem;
  margin: 0;
}
.price__amount {
  font-family: var(--font-display);
  font-size: var(--step-4);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.price__period { color: var(--color-muted); font-size: var(--step-0); }
.prose {
  max-width: 65ch;
}
.prose > * + * { margin-top: var(--space-4); }
.list-check,
.list-plain {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}
.list-check li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  line-height: 1.5;
}
.list-check li > .icon {
  margin-top: 0.2em;
  color: var(--color-accent);
}
.table-wrap { overflow-x: auto; }
.table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
.table th,
.table td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  vertical-align: top;
}
.table th {
  font-size: var(--step-0);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.table td:not(:first-child),
.table th:not(:first-child) { text-align: right; }
.table--plain th,
.table--plain td { padding-inline: 0; }

/* —— People / proof —— */
.avatar {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--radius-pill);
  object-fit: cover;
  background: var(--color-surface-2);
  border: 2px solid var(--color-surface);
  flex-shrink: 0;
}
.avatar--sm { width: 2rem; height: 2rem; }
.avatar--lg { width: 4rem; height: 4rem; }
.avatar-group {
  display: inline-flex;
  align-items: center;
}
.avatar-group .avatar { margin-inline-start: -0.55rem; box-shadow: 0 0 0 2px var(--color-bg); }
.avatar-group .avatar:first-child { margin-inline-start: 0; }
/* —— Chips (radio / checkbox pills) —— */
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  border: 0;
}
.chips > legend,
.chips__label {
  display: block;
  width: 100%;
  margin-bottom: var(--space-2);
  font-size: var(--step-0);
  font-weight: 600;
  color: var(--color-text);
}
.chips label { position: relative; display: inline-flex; }
.chips input {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.chips span {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: 0.35rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  font-size: var(--step-0);
  font-weight: 500;
  color: var(--color-text);
  background: var(--color-surface);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.chips label:hover span { border-color: var(--color-text); }
.chips input:checked + span {
  background: var(--color-text);
  border-color: var(--color-text);
  color: var(--color-bg);
}
.chips input:focus-visible + span { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.byline {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--step-0);
}
.byline strong { display: block; font-weight: 600; color: var(--color-text); }
.byline span { color: var(--color-muted); }
.logo-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-5) var(--space-7);
  opacity: 0.65;
}
.logo-row img {
  max-height: 1.75rem;
  width: auto;
  filter: grayscale(1);
}
.quote {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--step-2);
  line-height: 1.4;
  letter-spacing: -0.015em;
  text-wrap: pretty;
}
.quote--lg { font-size: var(--step-3); line-height: 1.3; letter-spacing: -0.02em; }
.quote cite,
.quote footer {
  display: block;
  margin-top: var(--space-4);
  font-style: normal;
  font-family: var(--font-body);
  font-size: var(--step-0);
  letter-spacing: 0;
  color: var(--color-muted);
}
.quote--card {
  font-family: var(--font-body);
  font-size: var(--step-1);
  line-height: 1.6;
  letter-spacing: 0;
}

/* —— Controls —— */
.btn-lg { padding: 0.9rem 1.75rem; min-height: 3rem; font-size: var(--step-1); }
.btn-sm { padding: 0.45rem 1rem; min-height: 2.25rem; font-size: var(--step-0); }
.btn-icon {
  width: var(--tap-min);
  height: var(--tap-min);
  padding: 0;
  border-radius: var(--radius-pill);
}
.btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
}
.field {
  display: grid;
  gap: var(--space-2);
}
.field label {
  font-weight: 600;
  font-size: var(--step-0);
}
.field + .field { margin-top: var(--space-4); }
.form-grid {
  display: grid;
  gap: var(--space-4);
}
.form-grid .field + .field { margin-top: 0; }
@media (min-width: 720px) {
  .form-grid--2 { grid-template-columns: 1fr 1fr; }
  .form-grid .field--full { grid-column: 1 / -1; }
}
.input,
.textarea,
.select {
  width: 100%;
  min-height: var(--tap-min);
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  line-height: 1.4;
}
.textarea { min-height: 7rem; resize: vertical; }
.input:focus-visible,
.textarea:focus-visible,
.select:focus-visible {
  outline: none;
  box-shadow: var(--ring);
  border-color: var(--color-focus);
}
.input-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.input-row .input { flex: 1 1 14rem; }
.checkbox {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: var(--color-accent);
}
.accordion {
  border-top: 1px solid var(--color-border);
}
.accordion details {
  border-bottom: 1px solid var(--color-border);
}
.accordion summary {
  list-style: none;
  cursor: pointer;
  min-height: var(--tap-min);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) 0;
  font-weight: 600;
  font-size: var(--step-1);
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after {
  content: "+";
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  display: inline-grid;
  place-items: center;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  font-weight: 500;
  color: var(--color-muted);
  transition: transform 180ms ease;
}
.accordion details[open] summary::after { content: "–"; }
.accordion details > *:not(summary) {
  margin: 0;
  padding-bottom: var(--space-4);
  max-width: 60ch;
  color: var(--color-muted);
}
.tabs {
  display: grid;
  gap: var(--space-5);
}
.tabs__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  border-bottom: 1px solid var(--color-border);
}
.tabs__list--pill {
  border-bottom: 0;
  gap: var(--space-1);
  padding: var(--space-1);
  background: var(--color-surface-2);
  border-radius: var(--radius-pill);
  width: fit-content;
}
.tabs__tab {
  appearance: none;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  padding: var(--space-3) var(--space-4);
  min-height: var(--tap-min);
  font: inherit;
  font-weight: 600;
  color: var(--color-muted);
  cursor: pointer;
  transition: color 160ms ease;
}
.tabs__tab:hover { color: var(--color-text); }
.tabs__tab[aria-selected="true"] {
  color: var(--color-text);
  border-bottom-color: var(--color-accent);
}
.tabs__list--pill .tabs__tab {
  border: 0;
  margin: 0;
  min-height: 2.5rem;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-pill);
}
.tabs__list--pill .tabs__tab[aria-selected="true"] {
  background: var(--color-surface);
  box-shadow: var(--shadow-1);
}
.tabs__panel[hidden] { display: none; }
.announcement {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-2) var(--space-4);
  padding: var(--space-3) var(--space-4);
  background: var(--color-surface-2);
  border-bottom: 1px solid var(--color-border);
  font-size: var(--step-0);
  text-align: center;
}
.announcement a { font-weight: 600; color: inherit; }

/* —— Chrome —— */
.header--sticky {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--color-bg) 86%, transparent);
  backdrop-filter: blur(var(--blur-header));
  -webkit-backdrop-filter: blur(var(--blur-header));
  border-bottom: 1px solid transparent;
  transition: border-color 180ms ease, background-color 180ms ease;
}
.header--sticky.is-scrolled {
  border-bottom-color: var(--color-border);
  background: color-mix(in srgb, var(--color-bg) 92%, transparent);
}
.nav-links {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.nav-links a {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: 0 var(--space-3);
  border-radius: var(--radius-pill);
  font-size: var(--step-0);
  font-weight: 500;
  color: var(--color-muted);
  text-decoration: none;
  transition: color 160ms ease, background-color 160ms ease;
}
.nav-links a:hover,
.nav-links a[aria-current="page"] {
  color: var(--color-text);
  background: color-mix(in srgb, var(--color-text) 5%, transparent);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--step-2);
  letter-spacing: -0.02em;
  color: var(--color-text);
  text-decoration: none;
  white-space: nowrap;
}
.brand img { height: 2rem; width: auto; }
.nav-drawer {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: color-mix(in srgb, var(--color-text) 40%, transparent);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 180ms ease, visibility 180ms ease;
}
.nav-drawer.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.nav-drawer__panel {
  position: absolute;
  inset-block: 0;
  inset-inline-end: 0;
  width: min(20rem, 88vw);
  background: var(--color-surface);
  color: var(--color-text);
  padding: calc(var(--header-h) + var(--space-2)) var(--space-5) var(--space-5);
  box-shadow: var(--shadow-3);
  transform: translateX(100%);
  transition: transform 200ms ease;
  display: grid;
  align-content: start;
  gap: var(--space-5);
}
.nav-drawer.is-open .nav-drawer__panel { transform: none; }
.nav-drawer__panel nav {
  display: grid;
}
.nav-drawer__panel nav a {
  display: block;
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text);
}
.nav-drawer__panel .btn-group > * { flex: 1; }

/* —— Island widgets —— */
.carousel {
  display: grid;
  gap: var(--space-5);
}
.carousel__track {
  display: flex;
  gap: var(--space-4);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: var(--space-2);
  scrollbar-width: none;
}
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__track > * {
  flex: 0 0 min(100%, 22rem);
  scroll-snap-align: start;
}
.carousel__nav {
  display: flex;
  gap: var(--space-2);
}
.carousel__nav > button {
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  min-height: 0;
  padding: 0;
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.carousel__nav > button:hover { border-color: var(--color-text); }
.carousel__nav > button:disabled { opacity: 0.4; cursor: default; }
.before-after {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--color-surface-2);
  user-select: none;
  touch-action: none;
}
.before-after__before,
.before-after__after {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.before-after__after {
  position: absolute;
  inset: 0;
  clip-path: inset(0 0 0 50%);
}
.before-after__handle {
  position: absolute;
  inset-block: 0;
  left: 50%;
  width: 2px;
  background: var(--color-surface);
  transform: translateX(-50%);
  cursor: ew-resize;
}
.before-after__handle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radius-pill);
  border: 2px solid var(--color-surface);
  background: color-mix(in srgb, var(--color-text) 70%, transparent);
  box-shadow: var(--shadow-2);
  transform: translate(-50%, -50%);
}
.before-after__label {
  position: absolute;
  top: var(--space-3);
  padding: 0.2rem 0.6rem;
  border-radius: var(--radius-pill);
  font-size: var(--step-0);
  font-weight: 600;
  background: color-mix(in srgb, var(--color-bg) 80%, transparent);
  color: var(--color-text);
  pointer-events: none;
}
.before-after__label--before { left: var(--space-3); }
.before-after__label--after { right: var(--space-3); }
.icon {
  width: 1.25rem;
  height: 1.25rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.icon--lg { width: 1.75rem; height: 1.75rem; }
.icon--sm { width: 1rem; height: 1rem; }

@font-face{font-family:Urbanist;src:url("/assets/immutable/f0d4a6411cef35364afe51867e388e68c12b5dac3088b7fa0dcca4350d5be44b.woff2") format("woff2");font-weight:100 900;font-display:swap;}
@font-face{font-family:Geist;src:url("/assets/immutable/cdf78101fd1dfa0a1d9b1f6c0d1fa11594f08ecc57565ebb7057a419826f04df.woff2") format("woff2");font-weight:100 900;font-display:swap;}

.c-pb-site{--pb-burgundy:#B3131B;--pb-dark:#000000;--pb-light:#FFFFFF;--pb-muted-light:#D5D5D5;color:var(--color-text);background:var(--color-bg);font-family:var(--font-body);font-size:16px;line-height:1.65;overflow:clip}
.c-pb-site *, .c-pb-site *::before,.c-pb-site *::after{box-sizing:border-box}.c-pb-site h1,.c-pb-site h2,.c-pb-site h3{font-family:var(--font-display);font-weight:400;line-height:1.08;letter-spacing:-.045em;text-wrap:balance}.c-pb-site h1{font-size:clamp(36px,3.5vw,50px);margin:14px 0 20px}.c-pb-site h2{font-size:clamp(30px,3vw,44px);margin:16px 0 22px}.c-pb-site h3{font-size:26px;margin:8px 0 16px}.c-pb-site p{margin:0 0 20px}.c-pb-site img{display:block;width:100%;height:100%;object-fit:cover}.c-pb-site a{color:inherit}.c-pb-site button,.c-pb-site input,.c-pb-site select,.c-pb-site textarea{font:inherit}.c-pb-site button{cursor:pointer}.c-pb-site a:focus-visible,.c-pb-site button:focus-visible,.c-pb-site summary:focus-visible,.c-pb-site [tabindex]:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}.c-pb-site [hidden]{display:none!important}.c-pb-site .pb-container{width:min(100% - 120px,1200px);margin-inline:auto}.c-pb-site .pb-section{padding-block:130px}.c-pb-site .accent-text{color:var(--color-accent)}.c-pb-site .eyebrow{display:inline-block;width:fit-content;color:var(--color-accent);font-size:11px;font-weight:500;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;border:1px solid color-mix(in srgb,var(--color-accent) 45%,transparent);border-radius:999px;padding:5px 11px;margin-bottom:9px}.c-pb-site .pill{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:7px 7px 7px 22px;min-height:46px;color:var(--color-bg);background:var(--color-text);border-radius:999px;text-decoration:none;font-size:13px;border:1px solid transparent;line-height:1.3;transition:background-color .2s}.c-pb-site .pill.light{color:var(--color-text);background:var(--color-bg)}.c-pb-site .pill:hover{background:var(--pb-burgundy);color:var(--color-bg)}.c-pb-site .pill .disk{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--color-accent);color:var(--color-accent-text);border-radius:50%;font-size:23px;line-height:1}.c-pb-site .round{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid transparent;background:var(--color-accent);color:var(--color-accent-text);font-size:22px;padding:0}.c-pb-site .text-link{text-decoration:none;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:5px}.c-pb-site .architectural-rule{display:block;max-width:100%;height:10px;margin:10px 0 18px;color:var(--color-accent)}
.c-pb-site .site-header{position:absolute;z-index:20;top:0;left:0;width:100%;padding:24px 60px;display:flex;align-items:center;justify-content:space-between;color:var(--color-bg);gap:30px}.c-pb-site:has(.gallery-intro) .site-header{color:var(--color-text)}.c-pb-site .brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex-shrink:0;font-family:var(--font-display);font-size:24px;font-weight:500;line-height:1.15;letter-spacing:-.03em}.c-pb-site .brand .brand-mark{height:52px;width:52px;object-fit:contain;border-radius:2px}.c-pb-site .brand small{display:block;font-family:var(--font-body);font-size:9px;letter-spacing:.12em;margin-top:5px;font-weight:400}.c-pb-site .desktop-nav{display:flex;gap:32px;font-size:14px}.c-pb-site nav a{text-decoration:none}.c-pb-site nav a:hover{text-decoration:underline;text-underline-offset:6px}.c-pb-site .menu-toggle{display:none;width:44px;height:44px;background:transparent;color:inherit;border:0;font-size:23px}.c-pb-site dialog::backdrop{background:color-mix(in srgb,var(--pb-dark) 55%,transparent)}.c-pb-site .navigation-panel{position:fixed;inset:0 0 0 auto;width:min(460px,100%);height:100dvh;max-height:100dvh;border:0;margin:0;padding:30px;background:var(--pb-light);color:var(--color-text)}.c-pb-site .drawer-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:70px;font-family:var(--font-display);font-size:26px}.c-pb-site .navigation-panel nav{display:grid;gap:24px;font-family:var(--font-display);font-size:32px;margin-bottom:60px}
.c-pb-site .hero{position:relative;height:100svh;min-height:680px;max-height:1100px;color:var(--color-bg)}.c-pb-site .hero-image,.c-pb-site .photo-shade,.c-pb-site .banner>img{position:absolute;inset:0}.c-pb-site .hero-image{object-position:50% 55%}.c-pb-site .photo-shade{background:linear-gradient(180deg,color-mix(in srgb,var(--pb-dark) 48%,transparent),transparent 30%,color-mix(in srgb,var(--pb-dark) 82%,transparent));pointer-events:none}.c-pb-site .hero-copy{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding-bottom:110px;z-index:1}.c-pb-site .hero-copy .eyebrow{color:var(--pb-light);border-color:color-mix(in srgb,var(--pb-light) 65%,transparent)}.c-pb-site .hero-copy p:not(.eyebrow){max-width:470px;font-size:16px;line-height:1.6}.c-pb-site .hero-copy h1{max-width:640px}.c-pb-site .regional-caption{position:absolute;right:60px;bottom:26px;font-size:11px;letter-spacing:.04em;z-index:1;color:var(--pb-light)}.c-pb-site .hero-scroll{position:absolute;left:60px;bottom:25px;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--pb-light) 70%,transparent);border-radius:50%;display:grid;place-items:center;text-decoration:none;font-size:23px;z-index:1}.c-pb-site .about{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.c-pb-site .collage{display:grid;grid-template-columns:1fr .75fr;grid-template-rows:1fr 1fr;gap:16px;height:490px}.c-pb-site figure{margin:0;overflow:hidden;border-radius:10px;position:relative}.c-pb-site .collage-tall{grid-row:span 2}.c-pb-site .collage figcaption{position:absolute;bottom:0;left:0;right:0;padding:28px 15px 15px;font-size:10px;line-height:1.4;color:var(--color-bg);background:linear-gradient(transparent,color-mix(in srgb,var(--pb-dark) 85%,transparent))}.c-pb-site .about-copy>p:not(.eyebrow){color:var(--color-muted);max-width:58ch}.c-pb-site .team-signature{display:flex;flex-direction:column;gap:5px;margin:28px 0}.c-pb-site .team-signature>span{font-family:var(--font-display);font-size:28px;letter-spacing:-.04em}.c-pb-site .team-signature small{font-size:10px;letter-spacing:.1em;color:var(--color-muted)}
.c-pb-site .textured{background-color:var(--color-surface-2);background-image:radial-gradient(color-mix(in srgb,var(--color-text) 10%,transparent) .6px,transparent .6px);background-size:5px 5px}.c-pb-site .services{height:calc(100svh + 200px);min-height:1050px;position:relative}.c-pb-site .services-sticky{position:sticky;top:0;min-height:850px;height:100svh;padding:80px 0 55px;display:flex;flex-direction:column;justify-content:center}.c-pb-site .services-head{display:grid;grid-template-columns:1fr .65fr;gap:100px;align-items:center;margin-bottom:38px}.c-pb-site .services-head p:not(.eyebrow){max-width:40ch;font-size:14px;color:var(--color-muted)}.c-pb-site .services-head h2{margin-bottom:5px}.c-pb-site .services-window{overflow:hidden;width:100%}.c-pb-site .services-track{display:flex;gap:24px;padding:0 60px;width:max-content;will-change:transform}.c-pb-site .service-card{position:relative;display:block;width:360px;height:400px;border-radius:10px;overflow:hidden;color:var(--color-bg);text-decoration:none;flex-shrink:0}.c-pb-site .service-shade{position:absolute;inset:0;background:linear-gradient(transparent 20%,color-mix(in srgb,var(--pb-dark) 95%,transparent))}.c-pb-site .service-copy{position:absolute;bottom:24px;left:24px;right:24px;display:block}.c-pb-site .service-copy h3{font-size:26px}.c-pb-site .service-copy p{font-size:13px;line-height:1.5;margin-bottom:16px}.c-pb-site .service-link{font-size:11px}.c-pb-site .service-link span{float:right;font-size:23px}.c-pb-site .service-controls{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:22px}.c-pb-site .service-controls>div{display:flex;gap:10px}.c-pb-site .content-gap{font-size:12px;color:var(--color-muted);line-height:1.6;padding-left:12px;border-left:2px solid var(--color-accent);margin:15px 0}.c-pb-site .service-controls .content-gap{margin:0}
.c-pb-site .section-center{text-align:center;max-width:760px}.c-pb-site .section-center .eyebrow{margin-inline:auto}.c-pb-site .section-center>p:not(.eyebrow){color:var(--color-muted);font-size:14px;max-width:60ch;margin-inline:auto}.c-pb-site .section-center .architectural-rule{margin-inline:auto}.c-pb-site .featured-window{overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-top:60px;outline-offset:-6px}.c-pb-site .featured-window::-webkit-scrollbar{display:none}.c-pb-site .featured-track{display:flex;gap:32px;padding:0 max(60px,calc((100vw - 900px)/2))}.c-pb-site .featured-card{position:relative;border-radius:10px;overflow:hidden;width:900px;height:530px;flex-shrink:0;scroll-snap-align:center;color:var(--color-bg)}.c-pb-site .featured-copy{position:absolute;bottom:35px;left:40px;right:40px;max-width:680px}.c-pb-site .featured-copy h3{font-size:36px}.c-pb-site .featured-copy p{font-size:14px;line-height:1.5;max-width:58ch}.c-pb-site .featured-copy .pill{font-size:12px}.c-pb-site .featured-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:26px}.c-pb-site .feature-position{margin:0;color:var(--color-muted);font-size:12px}.c-pb-site .banner{position:relative;min-height:500px;display:flex;align-items:center;justify-content:center;color:var(--color-bg);padding:100px 0}.c-pb-site .banner>.photo-shade{background:color-mix(in srgb,var(--pb-dark) 72%,transparent)}.c-pb-site .banner .pb-container{position:relative;z-index:1}.c-pb-site .banner .eyebrow{background:var(--color-bg)}.c-pb-site .banner p:not(.eyebrow){color:var(--pb-light)}.c-pb-site .faq-list{max-width:800px;margin:50px auto 0;display:grid;gap:14px}.c-pb-site .faq-list details{background:var(--color-bg);border-radius:10px;padding:22px 26px}.c-pb-site .faq-list summary{cursor:pointer;font-size:15px;list-style:none;display:flex;gap:24px;justify-content:space-between;align-items:center;min-height:28px}.c-pb-site .faq-list summary::-webkit-details-marker{display:none}.c-pb-site .faq-list summary span{font-size:22px;color:var(--color-accent)}.c-pb-site .faq-list details[open] summary span{transform:rotate(45deg)}.c-pb-site .faq-list details p{color:var(--color-muted);font-size:14px;line-height:1.7;margin:20px 0 0;max-width:72ch}.c-pb-site .faq .content-gap{max-width:800px;margin:22px auto 0}
.c-pb-site .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.c-pb-site .contact-grid>div>p:not(.eyebrow){max-width:42ch}.c-pb-site .enquiry-form{padding:32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px}.c-pb-site .enquiry-form fieldset{border:0;padding:0;margin:0;min-width:0}.c-pb-site .enquiry-form legend{font-size:13px;font-weight:500;margin-bottom:20px}.c-pb-site .enquiry-form label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--color-text);margin-bottom:18px}.c-pb-site .enquiry-form label span{font-size:11px;display:inline}.c-pb-site .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.c-pb-site input,.c-pb-site select,.c-pb-site textarea{width:100%;min-width:0;max-width:100%;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:var(--color-muted);padding:11px;font-size:13px;opacity:1}.c-pb-site input::placeholder,.c-pb-site textarea::placeholder{color:var(--color-muted);opacity:1}.c-pb-site .enquiry-form button:disabled{cursor:not-allowed;background:var(--color-text);color:var(--color-bg);padding:14px 22px;opacity:.8}.c-pb-site .enquiry-form>p{font-size:12px;color:var(--color-muted);margin:22px 0 0}
.c-pb-site .site-footer{background:var(--pb-dark);background-image:radial-gradient(color-mix(in srgb,var(--pb-light) 9%,transparent) .5px,transparent .5px);background-size:4px 4px;color:var(--pb-light);padding:90px 0 18px}.c-pb-site .footer-grid{display:grid;grid-template-columns:1.4fr .5fr .7fr;gap:65px;margin-bottom:65px}.c-pb-site .footer-grid h2{font-size:29px;max-width:350px;margin:0 0 28px}.c-pb-site .footer-grid h3{font-family:var(--font-body);font-size:13px;letter-spacing:0;font-weight:500;margin:0 0 22px}.c-pb-site .footer-grid nav{display:flex;flex-direction:column;gap:12px;align-items:flex-start;font-size:13px}.c-pb-site .footer-grid p{font-size:13px;color:var(--pb-muted-light)}.c-pb-site .instagram-handle{display:block;width:fit-content;margin-top:18px;font-size:13px}.c-pb-site .site-footer .content-gap{color:var(--pb-muted-light)}.c-pb-site .site-footer .architectural-rule{width:100%;margin-bottom:28px}.c-pb-site .footer-bottom{display:flex;justify-content:space-between;gap:40px;font-size:11px;color:var(--pb-muted-light)}.c-pb-site .credits{max-width:550px;text-align:right}.c-pb-site .credits summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px}.c-pb-site .credits p{margin-top:18px;line-height:1.8}.c-pb-site .footer-wordmark{font-family:var(--font-display);font-weight:300;font-size:clamp(44px,12vw,170px);line-height:1.2;letter-spacing:-.065em;white-space:nowrap;margin-top:35px;color:color-mix(in srgb,var(--pb-light) 25%,var(--pb-dark));user-select:none}
.c-pb-site .gallery-intro{padding-top:190px;padding-bottom:70px}.c-pb-site .gallery-content{padding-bottom:110px}.c-pb-site .project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.c-pb-site .project-card{position:relative;display:block;height:410px;min-width:0;overflow:hidden;border-radius:10px;color:var(--color-bg);text-decoration:none}.c-pb-site .project-card img{transition:transform .45s}.c-pb-site .project-card:hover img{transform:scale(1.025)}.c-pb-site .project-card-shade{position:absolute;inset:0;background:linear-gradient(transparent 30%,color-mix(in srgb,var(--pb-dark) 95%,transparent))}.c-pb-site .project-category{position:absolute;top:18px;right:18px;padding:6px 10px;background:var(--color-accent);border-radius:999px;font-size:10px;font-weight:500;line-height:1.4}.c-pb-site .project-card-copy{position:absolute;left:24px;right:24px;bottom:24px;display:grid;gap:10px}.c-pb-site .project-card-copy strong{font-family:var(--font-display);font-weight:400;font-size:27px;line-height:1.1;letter-spacing:-.035em}.c-pb-site .project-card-copy>span{font-size:12px;line-height:1.4}.c-pb-site .project-card-copy>span>span{float:right}.c-pb-site .load-more-row{text-align:center;margin-top:46px}
.c-pb-site .project-hero{position:relative;min-height:600px;display:flex;align-items:flex-end;color:var(--color-bg);padding:180px 0 75px}.c-pb-site .project-hero .photo-shade{background:linear-gradient(180deg,color-mix(in srgb,var(--pb-dark) 70%,transparent),color-mix(in srgb,var(--pb-dark) 35%,transparent) 30%,color-mix(in srgb,var(--pb-dark) 86%,transparent))}.c-pb-site .project-hero-content{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr 1fr;gap:90px;align-items:end}.c-pb-site .project-hero-content .eyebrow{color:var(--pb-light);border-color:color-mix(in srgb,var(--pb-light) 70%,transparent)}.c-pb-site .project-hero-content>div>p:not(.eyebrow){max-width:58ch;line-height:1.55}.c-pb-site .project-facts{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:0}.c-pb-site .project-facts dt{font-size:12px;color:var(--pb-light);margin-bottom:8px}.c-pb-site .project-facts dd{margin:0;text-transform:uppercase;font-size:13px;color:var(--pb-light);line-height:1.4}.c-pb-site .project-facts .content-gap{grid-column:span 2;color:var(--pb-light);margin:0;font-size:11px}.c-pb-site .photo-section-head{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-bottom:36px}.c-pb-site .photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.c-pb-site .photo-tile{position:relative;aspect-ratio:1;border:0;padding:0;border-radius:20px;overflow:hidden;background:var(--color-surface-2)}.c-pb-site .photo-enlarge{position:absolute;right:14px;bottom:14px;background:var(--color-bg);color:var(--color-text);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:20px}.c-pb-site .photo-placeholder{aspect-ratio:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;padding:26px;display:flex;flex-direction:column;justify-content:center}.c-pb-site .photo-placeholder>p:not(.content-gap){font-size:13px;color:var(--color-muted);line-height:1.5}.c-pb-site .next-project{border-top:1px solid var(--color-border);padding:55px 0 100px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.c-pb-site .next-project-link{text-align:right;text-decoration:none}.c-pb-site .next-project-link .eyebrow{border:0;padding:0;color:var(--color-muted)}.c-pb-site .next-project-link h2{font-size:28px;margin:4px 0 0}.c-pb-site .photo-dialog{border:0;background:var(--pb-dark);color:var(--pb-light);padding:30px;max-width:min(95vw,1200px);max-height:95dvh;overflow:auto;border-radius:10px}.c-pb-site .photo-dialog>img{height:70dvh;width:auto;max-width:100%;object-fit:contain;margin:auto}.c-pb-site .photo-close{position:absolute;right:15px;top:15px;z-index:1}.c-pb-site .photo-caption{text-align:center;margin:20px 0 0;font-size:14px}
@media(min-width:1500px){.c-pb-site .service-card{width:440px;height:460px}.c-pb-site .services-track{padding-inline:max(60px,calc((100vw - 1200px)/2))}}
@media(max-width:1199px){.c-pb-site .desktop-nav{display:none}.c-pb-site .menu-toggle{display:block}.c-pb-site .pb-container{width:calc(100% - 80px)}.c-pb-site .site-header{padding-inline:40px}.c-pb-site .hero-scroll{left:40px}.c-pb-site .regional-caption{right:40px}.c-pb-site .about{gap:50px}.c-pb-site .contact-grid{gap:50px}.c-pb-site .services-head{gap:50px}.c-pb-site .services-track{padding-inline:40px}.c-pb-site .featured-card{width:80vw}.c-pb-site .featured-track{padding-inline:10vw}.c-pb-site .project-hero-content{gap:50px}}
@media(max-width:999px){.c-pb-site .services{height:auto;min-height:0}.c-pb-site .services-sticky{position:relative;height:auto;min-height:0;padding:70px 0}.c-pb-site .services-window{overflow:auto;scroll-snap-type:x mandatory}.c-pb-site .services-track{transform:none!important;will-change:auto}.c-pb-site .service-card{scroll-snap-align:center;width:330px;height:410px}.c-pb-site .services-head{grid-template-columns:1fr;gap:15px}.c-pb-site .services-head h2 br{display:none}.c-pb-site .about{grid-template-columns:1fr;gap:50px}.c-pb-site .collage{height:530px;max-width:650px}.c-pb-site .about-copy{max-width:650px}.c-pb-site .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.c-pb-site .footer-grid{grid-template-columns:1.2fr .5fr .8fr;gap:30px}.c-pb-site .project-hero-content{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:809px){.c-pb-site .pb-container{width:calc(100% - 40px)}.c-pb-site .pb-section{padding-block:60px}.c-pb-site .site-header{padding:20px}.c-pb-site .brand{font-size:21px;gap:10px}.c-pb-site .brand .brand-mark{width:44px;height:44px}.c-pb-site .brand small{font-size:8px}.c-pb-site .hero{min-height:700px}.c-pb-site .hero-copy{padding-bottom:140px}.c-pb-site .hero-copy h1{font-size:36px}.c-pb-site .hero-copy .eyebrow{font-size:10px}.c-pb-site .hero-copy p:not(.eyebrow){max-width:34ch;font-size:14px}.c-pb-site .hero-scroll{left:20px;bottom:58px}.c-pb-site .regional-caption{left:20px;right:20px;bottom:15px;font-size:10px;text-align:left}.c-pb-site .hero-image{object-position:59% 50%}.c-pb-site .about{gap:35px}.c-pb-site .collage{height:390px;gap:10px}.c-pb-site .about-copy h2 br{display:none}.c-pb-site .about-copy p:not(.eyebrow){font-size:15px}.c-pb-site .services-head{margin-bottom:26px}.c-pb-site .services-track{padding-inline:20px;gap:15px}.c-pb-site .service-card{width:calc(100vw - 55px);max-width:380px;height:430px}.c-pb-site .service-controls{gap:14px;align-items:flex-start}.c-pb-site .service-controls .content-gap{max-width:190px;font-size:11px}.c-pb-site .service-controls>div{gap:8px}.c-pb-site .featured-window{margin-top:35px}.c-pb-site .featured-track{padding-inline:20px;gap:20px}.c-pb-site .featured-card{width:calc(100vw - 40px);height:520px}.c-pb-site .featured-copy{bottom:28px;left:24px;right:24px}.c-pb-site .featured-copy h3{font-size:29px}.c-pb-site .featured-copy p{font-size:13px}.c-pb-site .banner{min-height:450px;padding:70px 0}.c-pb-site .faq-list{margin-top:32px;gap:12px}.c-pb-site .faq-list details{padding:18px}.c-pb-site .faq-list summary{font-size:14px}.c-pb-site .contact-grid{grid-template-columns:1fr;gap:35px}.c-pb-site .enquiry-form{padding:22px}.c-pb-site .site-footer{padding-top:60px}.c-pb-site .footer-grid{grid-template-columns:1fr;gap:35px;margin-bottom:35px}.c-pb-site .footer-grid h2{max-width:300px}.c-pb-site .footer-grid nav{gap:15px}.c-pb-site .footer-bottom{flex-direction:column;gap:10px}.c-pb-site .credits{text-align:left}.c-pb-site .gallery-intro{padding-top:145px;padding-bottom:45px}.c-pb-site .gallery-content{padding-bottom:60px}.c-pb-site .project-grid{grid-template-columns:1fr;gap:22px}.c-pb-site .project-card{height:440px}.c-pb-site .project-card-copy strong{font-size:28px}.c-pb-site .project-hero{min-height:780px;padding:150px 0 55px}.c-pb-site .project-hero-content{grid-template-columns:1fr;gap:25px}.c-pb-site .project-hero-content>div>p:not(.eyebrow){font-size:14px}.c-pb-site .project-facts{gap:20px}.c-pb-site .project-facts dt{font-size:11px;margin-bottom:5px}.c-pb-site .project-facts dd{font-size:12px}.c-pb-site .photo-section-head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:30px}.c-pb-site .photo-section-head h2{margin-bottom:10px}.c-pb-site .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.c-pb-site .photo-placeholder{padding:16px}.c-pb-site .photo-placeholder .content-gap{font-size:11px;line-height:1.5}.c-pb-site .photo-placeholder>p:not(.content-gap){font-size:10px;line-height:1.5}.c-pb-site .next-project{padding:35px 0 60px;gap:25px}.c-pb-site .next-project-link h2{font-size:22px}.c-pb-site .next-project .text-link{font-size:12px}.c-pb-site .photo-dialog{padding:16px}.c-pb-site .navigation-panel{padding:24px}}
@media(prefers-reduced-motion:reduce){.c-pb-site .services{height:auto;min-height:0}.c-pb-site .services-sticky{position:relative;height:auto;min-height:0;padding:70px 0}.c-pb-site .services-window{overflow:auto}.c-pb-site .services-track{transform:none!important;will-change:auto}.c-pb-site .project-card img{transition:none}.c-pb-site .featured-window,.c-pb-site .services-window{scroll-behavior:auto}.c-pb-site .pill{transition:none}}

.c-pb-site .project-meta .content-gap{color:var(--pb-light);font-size:11px;margin:14px 0 0}.c-pb-site .credits p{font-size:12px}

/* Shared navigation: photo overlay, scrolled glass pill, and mobile bottom bar. */
.c-pb-site .site-header{position:fixed;z-index:50;inset:0 auto auto 50%;transform:translateX(-50%);width:100%;padding:24px 60px;border:1px solid transparent;isolation:isolate;transition:width .25s ease,top .25s ease,padding .25s ease,border-radius .25s ease,background-color .25s ease,box-shadow .25s ease}
.c-pb-site .site-header::before{content:"";position:absolute;z-index:-1;inset:0 0 -45px;background:linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.15) 55%,transparent);pointer-events:none;transition:opacity .25s ease}
.c-pb-site:has(.gallery-intro) .site-header::before{opacity:0}
.c-pb-site .site-header.is-scrolled{top:16px;width:min(calc(100% - 48px),1080px);padding:10px 24px;border-radius:999px;border-color:rgba(255,255,255,.2);background:rgba(16,16,16,.78);color:#fff;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:0 8px 32px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08)}
.c-pb-site .site-header.is-scrolled::before{opacity:0}
.c-pb-site .site-header .desktop-nav a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
.c-pb-site [id]{scroll-margin-top:110px}
.c-pb-site .site-header.is-scrolled .brand-mark{width:44px;height:44px}
.c-pb-site .c-pb-project-story .site-header.is-scrolled .official-story-logo{width:64px;height:auto;object-fit:contain}
@media(min-width:810px){.c-pb-site .site-header .desktop-nav{display:flex;gap:clamp(18px,2.3vw,32px)}.c-pb-site .site-header .menu-toggle{display:none}}
@media(min-width:810px) and (max-width:1199px){.c-pb-site .site-header{padding-inline:40px}.c-pb-site .site-header .brand{font-size:22px}}
@media(max-width:809px){
 .c-pb-site::after{content:"";display:block;height:calc(76px + env(safe-area-inset-bottom,0px));background:#000}
 .c-pb-site .site-header,.c-pb-site .site-header.is-scrolled{inset:auto 0 0;transform:none;width:100%;padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:12px;border:1px solid rgba(255,255,255,.2);border-bottom:0;border-radius:20px 20px 0 0;background:rgba(16,16,16,.86);color:#fff;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:0 -6px 28px rgba(0,0,0,.16);transition:none}
 .c-pb-site:has(.gallery-intro) .site-header{color:#fff}
 .c-pb-site .site-header::before{display:none}
 .c-pb-site .site-header .brand{width:44px;min-height:44px;flex:0 0 44px;justify-content:center}
 .c-pb-site .site-header .brand>span{display:none}
 .c-pb-site .site-header .brand .brand-mark{width:40px;height:40px}
 .c-pb-site .c-pb-project-story .site-header .official-story-logo,.c-pb-site .c-pb-project-story .site-header.is-scrolled .official-story-logo{width:44px;height:auto;max-height:44px;object-fit:contain}
 .c-pb-site .site-header .desktop-nav{display:flex;flex:1;justify-content:space-between;gap:2px;font-size:clamp(10px,2.95vw,13px);line-height:1.25}
 .c-pb-site .site-header .desktop-nav a{justify-content:center;padding:0 3px;min-height:44px}
 .c-pb-site .site-header .menu-toggle{display:none}
 .c-pb-site [id]{scroll-margin-top:24px;scroll-margin-bottom:100px}
 .c-pb-site .gallery-intro{padding-top:70px}
 .c-pb-site #hero .hero-copy{padding-bottom:calc(155px + env(safe-area-inset-bottom,0px))}
 .c-pb-site #hero .hero-image{object-position:31% 50%}
 .c-pb-site #hero .hero-scroll{bottom:calc(105px + env(safe-area-inset-bottom,0px))}
 .c-pb-site #hero .regional-caption{bottom:calc(72px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){.c-pb-site .site-header,.c-pb-site .site-header::before{transition:none}}

@media(min-width:810px){.c-pb-site .site-header:not([data-scroll-nav]){top:16px;width:min(calc(100% - 48px),1080px);padding:10px 24px;border-radius:999px;border-color:rgba(255,255,255,.2);background:rgba(16,16,16,.88);color:#fff;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.c-pb-site .site-header:not([data-scroll-nav])::before{opacity:0}.c-pb-site .site-header:not([data-scroll-nav]) .brand-mark{width:44px;height:44px}.c-pb-site .c-pb-project-story .site-header:not([data-scroll-nav]) .official-story-logo{width:64px;height:auto}}

@media(max-width:809px){html:has(.c-pb-site){scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}}
