/* The cream accreditation band closes the enquiry; charcoal signs off the site. */
.site-footer {
  --footer-ink: #161918;
  --footer-green: #41c5ad;
  --footer-step: clamp(24px, 3.5vw, 52px);
  position: relative;
  z-index: 9;
  padding: 0;
  background: #f2eee5;
  color: #f2eee5;
}
.site-footer a { display: inline-flex; align-items: center; min-height: 44px; gap: 10px; }
.site-footer a:hover { color: var(--footer-green); }
.site-footer a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.site-footer-accreditation {
  display: grid;
  grid-template-columns: 5fr 6fr;
  align-items: center;
  gap: 24px 8vw;
  margin: 0 var(--gutter);
  padding: clamp(30px, 3.5vw, 52px) 0 calc(clamp(40px, 4.5vw, 68px) + var(--footer-step));
  border-top: 1px solid #c7c8bd;
  color: #20332b;
}
.site-footer-accreditation > p { font-family: var(--display); font-size: clamp(24px, 2.4vw, 36px); letter-spacing: -.035em; line-height: 1.15; max-width: 300px; }
.site-footer .site-footer-accreditation > a { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: min(100%, 290px); }
.site-footer-accreditation img { display: block; width: 100%; height: auto; }
.site-footer-accreditation a > span:not(.sr-only) { display: flex; justify-content: space-between; width: 100%; font-size: 12px; }
.site-footer-accreditation a:hover { color: #205e4e; }
.site-footer-main { position: relative; padding: clamp(42px, 5vw, 76px) var(--gutter) 20px; background: var(--footer-ink); }
.site-footer-main::before { content: ''; position: absolute; bottom: 100%; left: 0; width: calc(var(--gutter) + (100% - 2 * var(--gutter) - 8vw) * 5 / 11); height: var(--footer-step); background: var(--footer-ink); }
.site-footer-grid { display: grid; grid-template-columns: 1fr 1fr 1.05fr; gap: clamp(32px, 5vw, 76px); }
.site-footer-grid > * { min-width: 0; }
.site-footer-brand { display: block; width: min(100%, 220px); }
.site-footer-brand img { display: block; width: 100%; height: auto; }
.site-footer-intro > p { font-size: 14px; line-height: 1.7; margin-top: 24px; color: #bdc9c2; }
.site-footer h2 { font-family: var(--body); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: #afc1b7; margin: 3px 0 20px; }
.site-footer-nav { display: flex; flex-direction: column; align-items: flex-start; }
.site-footer-nav a { font-size: 14px; line-height: 1.4; padding-block: 8px; }
.site-footer-nav .site-footer-project { font-family: var(--display); font-size: clamp(21px, 1.85vw, 28px); letter-spacing: -.035em; padding-block: 6px; }
.site-footer-nav .site-footer-project + a:not(.site-footer-project) { margin-top: 12px; }
.site-footer .site-footer-social { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
.site-footer-social a { justify-content: center; width: 44px; height: 44px; border: 1px solid #45554c; border-radius: 50%; }
.site-footer-social a:hover, .site-footer-social a:focus-visible { border-color: currentColor; }
.site-footer-social svg { display: block; width: 19px; height: 19px; flex: none; }
.site-footer-contact { display: flex; flex-direction: column; align-items: flex-start; }
.site-footer-phone { font-family: var(--display); font-size: clamp(28px, 2.7vw, 44px); letter-spacing: -.04em; line-height: 1.2; }
.site-footer-email { font-size: clamp(12px, 1.12vw, 16px); overflow-wrap: anywhere; max-width: 100%; }
.site-footer .site-footer-cta { width: 100%; max-width: 350px; justify-content: space-between; border-bottom: 1px solid #41c5ad80; padding-block: 14px; margin-top: 22px; font-size: 15px; color: var(--footer-green); }
.site-footer-cta > span { font-size: 29px; transition: transform .25s ease; }
.site-footer-cta:hover > span { transform: translate(3px, -3px); }
.site-footer-word { font-family: var(--display); font-size: 18.7vw; line-height: 1; font-weight: 600; letter-spacing: -.055em; color: var(--footer-green); margin-top: clamp(44px, 5.5vw, 84px); text-align: center; }
.site-footer-bottom { border-top: 1px solid #45554c; margin-top: 24px; padding-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 8px 24px; color: #bdc9c2; font-size: 11px; line-height: 1.6; }
.site-footer-bottom nav { display: flex; flex-wrap: wrap; gap: 24px; }
.site-footer-credit { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
@media (max-width: 1000px) {
  .site-footer-grid { grid-template-columns: 1fr 1fr; gap: 38px 8vw; }
  .site-footer-intro { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 8vw; align-items: start; }
  .site-footer-intro > p { margin-top: 0; }
  .site-footer-intro .site-footer-social { margin-top: 0; }
  .site-footer-phone { font-size: clamp(27px, 4vw, 36px); }
  .site-footer-email { font-size: 14px; }
}
@media (max-width: 600px) {
  .site-footer-accreditation { grid-template-columns: 1fr; gap: 20px; }
  .site-footer .site-footer-accreditation > a { width: min(100%, 270px); }
  .site-footer-main::before { width: 42%; }
  .site-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .site-footer-intro { display: block; grid-column: auto; position: relative; padding-bottom: 28px; border-bottom: 1px solid #45554c; }
  .site-footer-brand { width: 190px; }
  .site-footer-intro > p { margin-top: 18px; padding-right: 80px; font-size: 12px; }
  .site-footer-intro .site-footer-social { position: absolute; bottom: 28px; right: 0; gap: 5px; }
  .site-footer-social a { width: 44px; }
  .site-footer h2 { margin: 0 0 10px; }
  .site-footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; align-items: start; }
  .site-footer-nav h2, .site-footer-nav .site-footer-project, .site-footer-nav a:last-child { grid-column: 1 / -1; }
  .site-footer-nav .site-footer-project { font-size: 27px; }
  .site-footer-nav .site-footer-project + a:not(.site-footer-project) { margin-top: 0; }
  .site-footer-nav a:not(.site-footer-project) { font-size: 13px; }
  .site-footer-contact { padding-top: 28px; border-top: 1px solid #45554c; }
  .site-footer-phone { font-size: 34px; }
  .site-footer-email { font-size: 13px; }
  .site-footer .site-footer-cta { margin-top: 10px; max-width: none; }
  .site-footer-word { font-size: 17.5vw; margin-top: 38px; }
  .site-footer-bottom { align-items: flex-start; flex-wrap: wrap; gap: 0 20px; margin-top: 20px; padding-top: 16px; }
  .site-footer-bottom > p:first-child { width: 100%; }
  .site-footer-bottom nav { gap: 18px; }
}
@media (max-width: 360px) {
  .site-footer-intro > p { padding-right: 0; }
  .site-footer-intro .site-footer-social { position: static; margin-top: 16px; }
  .site-footer-phone { font-size: 31px; }
}
@media (prefers-reduced-motion: reduce) { .site-footer-cta > span { transition: none; } }

/* Vector arrows keep the same shape on iOS and other platforms. */
svg.arrow-icon { display: inline-block; width: 1em; height: 1em; flex: 0 0 auto; vertical-align: -.125em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Accepted circled chevrons across every homepage arrow action. */
.homepage-build-sequence {
  --cta-chevron-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2244%22%20height%3D%2244%22%20viewBox%3D%220%200%2044%2044%22%20fill%3D%22none%22%3E%3Ccircle%20cx%3D%2222%22%20cy%3D%2222%22%20r%3D%2221%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%2F%3E%3Cpath%20d%3D%22M18.5%2015.5%2025%2022%2018.5%2028.5%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20transform%3D%22rotate%280%2022%2022%29%22%2F%3E%3C%2Fsvg%3E%0A");
  --cta-chevron-down: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2244%22%20height%3D%2244%22%20viewBox%3D%220%200%2044%2044%22%20fill%3D%22none%22%3E%3Ccircle%20cx%3D%2222%22%20cy%3D%2222%22%20r%3D%2221%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%2F%3E%3Cpath%20d%3D%22M18.5%2015.5%2025%2022%2018.5%2028.5%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20transform%3D%22rotate%2890%2022%2022%29%22%2F%3E%3C%2Fsvg%3E%0A");
}
.homepage-build-sequence svg.arrow-icon {
  display: inline-block; width: 22px; height: 22px; flex: none;
  background-color: currentColor;
  -webkit-mask: var(--cta-chevron-right) center / contain no-repeat;
  mask: var(--cta-chevron-right) center / contain no-repeat;
  vertical-align: middle;
}
.homepage-build-sequence svg.arrow-icon > * { display: none; }
.homepage-build-sequence a[href^="#"] svg.arrow-icon {
  -webkit-mask-image: var(--cta-chevron-down); mask-image: var(--cta-chevron-down);
}
.homepage-build-sequence :is(a.text-link, .site-footer-cta, .sector-links > a) {
  display: inline-flex; align-items: center; justify-content: space-between;
  width: max-content; min-width: 0; max-width: 100%; min-height: 52px;
  gap: 22px; padding-bottom: 8px; font-size: 18px; font-weight: 700; line-height: 1.4;
}
.homepage-build-sequence :is(.intro-summary > a.text-link, .service-overview-header > a.text-link) { color: #244c3e; }
.homepage-build-sequence :is(a.text-link, .site-footer-cta, .sector-links > a) > span[aria-hidden] {
  display: inline-flex; width: 42px; height: 42px; flex: 0 0 42px; transform: none;
}
.homepage-build-sequence :is(a.text-link, .site-footer-cta, .sector-links > a) svg.arrow-icon { width: 42px; height: 42px; }
.homepage-build-sequence .site-footer .site-footer-cta { width: 100%; max-width: 350px; }
.homepage-build-sequence .sector-links { flex-wrap: wrap; gap: 12px 28px; }
.homepage-build-sequence .work-arrow { border: 0; background: none; }
.homepage-build-sequence .work-arrow svg.arrow-icon { width: 100%; height: 100%; }
.homepage-build-sequence .work-card:is(:hover, :focus-within) .work-arrow { background: none; color: #167767; }
.homepage-build-sequence .scrub-mode { display: inline-flex; align-items: center; gap: 12px; font-size: 18px; font-weight: 700; }
.homepage-build-sequence .scrub-mode svg.arrow-icon { width: 32px; height: 32px; }
.homepage-build-sequence .scrub-top { flex-wrap: wrap; }
.homepage-build-sequence .contact .dmc-submit { gap: 18px; font-size: 18px; font-weight: 700; line-height: 1.4; }
.homepage-build-sequence .contact .dmc-submit::after {
  width: 36px; height: 36px;
  -webkit-mask: var(--cta-chevron-right) center / contain no-repeat;
  mask: var(--cta-chevron-right) center / contain no-repeat;
}
.homepage-build-sequence .site-footer-accreditation a > span:not(.sr-only) { align-items: center; gap: 16px; font-size: 18px; font-weight: 700; line-height: 1.4; }
.homepage-build-sequence .site-footer-accreditation svg.arrow-icon { width: 36px; height: 36px; }
.homepage-build-sequence .site-footer a[href="#main"] svg.arrow-icon { width: 22px; height: 22px; transform: rotate(180deg); }
@media (max-width: 600px) {
  .homepage-build-sequence :is(a.text-link, .site-footer-cta, .sector-links > a, .scrub-mode),
  .homepage-build-sequence .contact .dmc-submit,
  .homepage-build-sequence .site-footer-accreditation a > span:not(.sr-only) { font-size: 20px; }
  .homepage-build-sequence .sector-links > a { gap: 14px; }
  .homepage-build-sequence .scrub-bottom .aerial-progress { display: none; }
  .homepage-build-sequence .scrub-mode { max-width: 100%; text-align: left; }
}
