@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

input,
button,
textarea,
select {
  font: inherit;
}

h1,
h2,
h3,
h4,
p {
  overflow-wrap: break-word;
}

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

.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1000;
  padding: 0.75rem 1rem;
  transform: translateY(-120%);
  transition: transform 0.15s ease-out;
}
.skip-link:focus {
  transform: translateY(0);
}

.honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/poppins-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/figtree-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/figtree-latin-700-normal.woff2") format("woff2");
}
:root {
  --navy: #150c33;
  --magenta: #c81d77;
  --violet: #6710c2;
  --blue: var(--magenta);
  --cyan: var(--magenta);
  --cyan-light: #ffc3e4;
  --mist: #eddbff;
  --ice: #ffeff8;
  --grey: #f3f3f5;
  --white: #ffffff;
  --raidai: var(--magenta);
  --raidai-tint: var(--mist);
  --hero-gradient: linear-gradient(90deg, #290666 0%, #6e0847 100%);
  --colour-text: var(--navy);
  --colour-surface: var(--white);
  --colour-link: var(--magenta);
  --colour-border: rgb(21 12 51 / 15%);
  --colour-focus: var(--magenta);
  --colour-error: #b00020;
  --colour-primary: var(--magenta);
  --colour-primary-contrast: var(--white);
  --font-heading: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --text-display: clamp(2rem, 1.1rem + 3.7vw, 4.5rem);
  --text-h1: clamp(2rem, 1.25rem + 3vw, 3.5rem);
  --text-h2: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem);
  --text-h3: clamp(1.5rem, 1.25rem + 1vw, 2rem);
  --text-h4: 1.5rem;
  --text-h5: 1.25rem;
  --text-h6: 1.125rem;
  --text-body: 1rem;
  --text-lead: 1.0625rem;
  --text-small: 0.8125rem;
  --text-nav: 0.875rem;
  --text-button: 0.9375rem;
  --tracking-display: -0.04em;
  --tracking-card: -0.02em;
  --radius-button: 4px;
  --radius-card: 16px;
  --radius-panel: 1.5rem;
  --container: 91.5rem;
  --gutter: clamp(1.5rem, 4vw, 2rem);
  --section-space: clamp(4rem, 2.5rem + 5vw, 6rem);
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 2.5rem;
  --space-7: 4rem;
  --block-gap: 2rem;
  --block-gap-lg: 2rem;
  --card-pad-y: 1.5rem;
  --card-pad-x: 1rem;
  --card-pad: var(--card-pad-y) var(--card-pad-x);
  --sheet-radius: 2.5rem;
  --sheet-overlap: 2.5rem;
  --header-offset: 0rem;
}
@media (min-width: 48rem) {
  :root {
    --card-pad-y: 2rem;
    --card-pad-x: 2rem;
  }
}
@media (min-width: 64rem) {
  :root {
    --block-gap: 3rem;
    --block-gap-lg: 4rem;
    --sheet-radius: 6rem;
    --sheet-overlap: 6rem;
    --header-offset: 3rem;
  }
}

body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.4;
  color: var(--colour-text);
  background: var(--colour-surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
.h3 {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: var(--tracking-display);
  text-wrap: balance;
}

h1 {
  font-size: var(--text-h1);
}

h2 {
  font-size: var(--text-h2);
}

h3,
.h3 {
  font-size: var(--text-h3);
}

p {
  margin: 0;
}

a {
  color: var(--colour-link);
}

:focus-visible {
  outline: 3px solid var(--colour-focus);
  outline-offset: 3px;
}

.eyebrow {
  display: inline-flex;
  gap: var(--space-2);
  align-items: center;
  margin: 0 0 var(--space-3);
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  letter-spacing: 0;
  color: var(--blue);
}
.eyebrow--on-dark {
  color: var(--cyan);
}
.eyebrow--raidai {
  color: var(--raidai);
}

.prose {
  max-width: 46rem;
}
.prose > * + * {
  margin-top: var(--space-4);
}
.prose h2 {
  margin-top: var(--space-6);
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}
.prose ul,
.prose ol {
  padding-left: 1.25rem;
}
.prose li + li {
  margin-top: var(--space-2);
}

:is(h1, h2, h3) .line {
  display: block;
}

h2[id] {
  scroll-margin-top: 10rem;
}
@media (min-width: 64rem) {
  h2[id] {
    scroll-margin-top: 4rem;
  }
}

main > section,
main > article > header,
main > article > div,
.section {
  padding: var(--section-space) max(var(--gutter), (100% - var(--container)) / 2);
}

.band {
  padding-block: var(--section-space);
}

.section--light {
  background: var(--white);
}

.section--dark {
  color: var(--white);
  background: var(--navy);
}

.section--grey {
  background: var(--grey);
}

.section--ice {
  background: var(--ice);
}

.section--mist {
  background: var(--mist);
}

.section--ruled {
  position: relative;
}
.section--ruled::before {
  content: "";
  position: absolute;
  top: 0;
  right: max(var(--gutter), (100% - var(--container)) / 2);
  left: max(var(--gutter), (100% - var(--container)) / 2);
  border-top: 1px solid var(--navy);
}

.section__intro {
  max-width: 34rem;
}
.section__intro > p:not(.eyebrow) {
  margin-top: var(--space-5);
}

.section__header {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5);
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--block-gap-lg);
}

.section__split-heading {
  display: grid;
  gap: var(--space-4) 5rem;
  align-items: center;
}
@media (min-width: 64rem) {
  .section__split-heading {
    grid-template-columns: 1fr 1fr;
  }
}
.section__split-heading .eyebrow {
  margin-bottom: var(--space-3);
}

.section__intro + * {
  margin-top: var(--block-gap-lg);
}

.section__header > .section__intro + *,
.section__intro.visually-hidden + * {
  margin-top: 0;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4) var(--space-5);
  align-items: center;
}

.card-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
@media (min-width: 64rem) {
  .card-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .card-grid--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

.cards {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
}

.card {
  padding: var(--space-5) var(--space-4);
  border-radius: var(--radius-card);
  background: var(--grey);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 10.75rem;
  min-height: 3rem;
  padding: 0.75rem 2rem;
  border: 0;
  border-radius: var(--radius-button);
  font-family: var(--font-heading);
  font-size: var(--text-button);
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: filter 0.15s ease-out;
}
.button:hover {
  filter: brightness(1.06);
}
.button--primary {
  color: var(--colour-primary-contrast);
  background: var(--colour-primary);
}
.button--blue {
  color: var(--white);
  background: var(--blue);
}
.button--white {
  color: var(--navy);
  background: var(--white);
}
.button--dark {
  color: var(--white);
  background: var(--navy);
}
.button--secondary {
  color: inherit;
  background: transparent;
  box-shadow: inset 0 0 0 2px currentcolor;
}

.text-link {
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.arrow-link {
  display: inline-flex;
  gap: var(--space-2);
  align-items: center;
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--accent, var(--blue));
  text-decoration: none;
  white-space: nowrap;
}
.arrow-link .icon {
  transition: transform 0.15s ease-out;
}
.arrow-link:hover .icon {
  transform: translateX(3px);
}
.arrow-link--raidai {
  --accent: var(--raidai);
}

.icon {
  flex: none;
  display: inline-block;
  vertical-align: -0.125em;
}

@media (max-width: 39.99rem) {
  .actions > .button {
    width: 100%;
  }
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  color: var(--white);
  background: var(--navy);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

.site-header__utility {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.5rem;
  padding: 0 var(--gutter);
  font-family: var(--font-heading);
  font-size: var(--text-button);
  font-weight: 600;
  background: var(--magenta);
}
.site-header__utility a {
  color: var(--white);
  text-decoration: none;
}
@media (min-width: 64rem) {
  .site-header__utility {
    display: none;
  }
}

.site-header__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  min-height: 4.5rem;
  padding: 0.75rem var(--gutter);
}
@media (min-width: 64rem) {
  .site-header__bar {
    flex-wrap: nowrap;
    gap: var(--space-5);
    min-height: 5rem;
    padding: 1rem max(var(--gutter), (100% - var(--container)) / 2);
  }
}

@media (min-width: 64rem) {
  .site-header__logo {
    flex: 0 1 19.25rem;
  }
}

.site-header__logo img {
  display: block;
  width: auto;
  height: 2rem;
}
@media (min-width: 64rem) {
  .site-header__logo img {
    height: 2.5rem;
  }
}

.site-header__toggle {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  font-size: 1.75rem;
  color: var(--white);
  background: none;
  cursor: pointer;
  margin-right: -0.5rem;
}
.site-header__toggle[hidden] {
  display: none;
}
.site-header__toggle[aria-expanded=true] .site-header__toggle-open, .site-header__toggle[aria-expanded=false] .site-header__toggle-close {
  display: none;
}
@media (min-width: 64rem) {
  .site-header__toggle {
    display: none !important;
  }
}

.site-nav {
  flex-basis: 100%;
  padding-block: var(--space-4);
}
.has-js .site-nav {
  display: none;
}
.has-js .site-nav.is-open {
  display: block;
}
@media (min-width: 64rem) {
  .has-js .site-nav {
    display: flex;
  }
  .site-nav {
    display: flex;
    flex: 1;
    gap: var(--space-4);
    align-items: center;
    justify-content: space-between;
    padding: 0;
  }
}

.site-nav__links {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-nav__links > li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.site-nav__links > li > a,
.site-nav__links summary {
  display: flex;
  gap: var(--space-2);
  align-items: center;
  padding: 0.875rem 0;
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--white);
  text-decoration: none;
  cursor: pointer;
}
.site-nav__links > li > a[aria-current=page],
.site-nav__links > li > a:hover,
.site-nav__links summary:hover {
  text-decoration: underline;
  text-underline-offset: 0.3em;
}
@media (min-width: 64rem) {
  .site-nav__links {
    flex-direction: row;
    gap: clamp(1.25rem, 2.2vw, 2rem);
    margin-inline: auto;
  }
  .site-nav__links > li {
    border: 0;
  }
  .site-nav__links > li > a,
  .site-nav__links summary {
    padding: var(--space-2) 0;
    white-space: nowrap;
  }
}

.site-nav__menu > summary {
  list-style: none;
}
.site-nav__menu > summary::-webkit-details-marker {
  display: none;
}
.site-nav__menu > summary .icon {
  font-size: 0.75rem;
  transition: transform 0.15s ease-out;
}
.site-nav__menu[open] > summary .icon {
  transform: rotate(180deg);
}
@media (min-width: 64rem) {
  .site-nav__menu {
    position: relative;
  }
}

.services-menu {
  display: grid;
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
  padding: 0 0 0 var(--space-4);
  list-style: none;
}
.services-menu a {
  display: block;
  padding: var(--space-2) 0;
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--white);
  text-decoration: none;
}
.services-menu a:hover {
  text-decoration: underline;
}
@media (min-width: 64rem) {
  .services-menu {
    position: absolute;
    top: calc(100% + 1.25rem);
    left: -1.5rem;
    min-width: 16rem;
    margin: 0;
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-card);
    background: var(--white);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  }
  .services-menu a {
    color: var(--navy);
  }
  .services-menu a:hover {
    color: var(--magenta);
  }
}

.site-nav__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: center;
  padding-top: var(--space-4);
}
.site-nav__actions .text-link {
  text-decoration: none;
}
.site-nav__actions .text-link:hover {
  text-decoration: underline;
}
@media (min-width: 64rem) {
  .site-nav__actions {
    flex-wrap: nowrap;
    padding-top: 0;
    white-space: nowrap;
  }
}

@media (max-width: 63.99rem) {
  .site-nav__actions {
    display: none;
  }
}
.site-footer {
  position: relative;
  z-index: 1;
  padding: 4rem max(var(--gutter), (100% - var(--container)) / 2) 2rem;
  border-radius: var(--sheet-radius) var(--sheet-radius) 0 0;
  color: var(--navy);
  background: var(--white);
}
@media (min-width: 64rem) {
  .site-footer {
    padding-top: 4.5rem;
  }
}
.site-footer a {
  color: inherit;
}

.site-footer__grid {
  display: grid;
  gap: var(--space-6);
}
@media (min-width: 48rem) {
  .site-footer__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 64rem) {
  .site-footer__grid {
    grid-template-columns: minmax(0, 19.375rem) repeat(3, 11.25rem);
    justify-content: space-between;
  }
  .site-footer__grid:not(:has(> nav:nth-of-type(3))) {
    grid-template-columns: minmax(0, 19.375rem) repeat(2, 11.25rem);
  }
}

.site-footer__brand {
  display: grid;
  gap: var(--space-5);
  align-content: start;
}
@media (min-width: 48rem) {
  .site-footer__brand {
    grid-column: 1/-1;
  }
}
@media (min-width: 64rem) {
  .site-footer__brand {
    grid-column: auto;
  }
}
.site-footer__brand > img {
  width: auto;
  height: 2.5rem;
}

.site-footer__contact {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-1) var(--space-3);
  align-items: baseline;
}
.site-footer__contact .icon {
  grid-row: span 2;
  font-size: 1.25rem;
  color: var(--magenta);
}
.site-footer__contact strong {
  font-family: var(--font-heading);
  font-size: var(--text-h6);
  font-weight: 600;
}
.site-footer__contact p {
  font-size: var(--text-nav);
}

.site-footer__social {
  display: inline-flex;
  gap: var(--space-2);
  align-items: center;
  justify-self: start;
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  text-decoration: none;
}
.site-footer__social .icon {
  font-size: 1.25rem;
  color: var(--magenta);
}
.site-footer__social:hover {
  text-decoration: underline;
}

.site-footer__heading {
  margin: 0 0 var(--space-4);
  font-family: var(--font-heading);
  font-size: var(--text-h6);
  font-weight: 600;
  letter-spacing: 0;
}

.site-footer nav ul,
.site-footer__legal {
  display: grid;
  gap: 0.625rem;
  margin: 0;
  padding: 0;
  font-size: var(--text-nav);
  list-style: none;
}
.site-footer nav ul a,
.site-footer__legal a {
  text-decoration: none;
}
.site-footer nav ul a:hover,
.site-footer__legal a:hover {
  text-decoration: underline;
}

.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-5);
  align-items: center;
  justify-content: space-between;
  margin-top: var(--block-gap-lg);
  padding-top: var(--space-4);
  border-top: 1px solid var(--mist);
  font-size: var(--text-small);
}
.site-footer__bottom .site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  font-size: var(--text-small);
}

@media (max-width: 47.99rem) {
  .site-footer {
    text-align: center;
  }
  .site-footer__brand,
  .site-footer nav ul {
    justify-items: center;
  }
  .site-footer__social {
    justify-self: center;
  }
  .site-footer__contact {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .site-footer__contact .icon {
    display: none;
  }
  .site-footer__bottom {
    justify-content: center;
  }
}
.form {
  display: grid;
  gap: var(--space-4);
  max-width: 36rem;
}

.form__field {
  display: grid;
  gap: var(--space-2);
}
.form__field label {
  font-weight: 700;
}
.form__field input,
.form__field select,
.form__field textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--colour-border);
  border-radius: var(--radius-button);
  color: var(--navy);
  background: #f2f2f2;
}

.form__error {
  font-size: var(--text-small);
  color: var(--colour-error);
}

.form__note {
  font-size: var(--text-small);
}

.form__summary {
  padding: var(--space-4);
  border: 2px solid var(--colour-error);
  border-radius: var(--radius-button);
}
.form__summary ul {
  margin: var(--space-2) 0 0;
  padding-left: 1.25rem;
}

.form__summary-title {
  font-size: var(--text-h6);
  letter-spacing: 0;
}

.design-pending {
  margin: var(--space-3) max(var(--gutter), (100% - var(--container)) / 2);
  padding: var(--space-2) var(--space-3);
  border: 2px dashed #c77700;
  border-radius: var(--radius-button);
  font-size: var(--text-small);
  color: #6b4000;
  background: #fff6e5;
}
.hero .design-pending, .section--dark .design-pending {
  margin-inline: 0;
}

.consent {
  position: fixed;
  inset: auto var(--space-3) var(--space-3);
  z-index: 300;
  display: grid;
  gap: var(--space-4);
  max-width: 72rem;
  margin-inline: auto;
  padding: var(--space-4);
  border-radius: var(--radius-card);
  color: var(--navy);
  background: var(--white);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
}
.consent[hidden] {
  display: none;
}
.consent h2 {
  font-size: var(--text-h5, 1.25rem);
}
.consent p {
  margin: var(--space-2) 0 0;
}
.consent a {
  color: inherit;
  text-decoration: underline;
}
@media (min-width: 48rem) {
  .consent {
    inset: auto var(--space-4) var(--space-4);
    padding: var(--space-5);
  }
}
@media (min-width: 64rem) {
  .consent {
    grid-template-columns: 1fr auto;
    gap: var(--space-5);
    align-items: center;
  }
}

html:has(.consent:not([hidden])) {
  scroll-padding-bottom: 21rem;
}
@media (min-width: 48rem) {
  html:has(.consent:not([hidden])) {
    scroll-padding-bottom: 16rem;
  }
}
@media (min-width: 64rem) {
  html:has(.consent:not([hidden])) {
    scroll-padding-bottom: 10rem;
  }
}

.consent__actions,
.consent-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.consent__actions .button,
.consent-dialog__actions .button {
  flex: 1 1 8rem;
  min-width: 0;
  padding-inline: var(--space-3);
}

@media (min-width: 64rem) {
  .consent__actions {
    flex-wrap: nowrap;
  }
  .consent__actions .button {
    flex: none;
  }
}

.consent-dialog {
  width: min(36rem, 100% - 2 * var(--space-3));
  max-height: calc(100% - 2 * var(--space-3));
  padding: var(--space-5) var(--space-4);
  border: 0;
  border-radius: var(--radius-card);
  color: var(--navy);
  background: var(--white);
}
.consent-dialog::backdrop {
  background: rgba(21, 12, 51, 0.6);
}
.consent-dialog h2 {
  font-size: var(--text-h4, 1.5rem);
}
.consent-dialog > p {
  margin: var(--space-3) 0 0;
}
@media (min-width: 48rem) {
  .consent-dialog {
    padding: var(--space-5);
  }
}

.consent-dialog__options {
  display: grid;
  gap: var(--space-4);
  margin: var(--space-5) 0 0;
  padding: 0;
  border: 0;
}

.consent-dialog__option {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-3);
  align-items: start;
}
.consent-dialog__option input {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.125rem 0 0;
  accent-color: var(--colour-primary);
}
.consent-dialog__option strong {
  display: block;
  margin-bottom: var(--space-1);
}

.consent-dialog__actions {
  margin-top: var(--space-5);
}

.consent-link {
  padding: 0;
  border: 0;
  font: inherit;
  color: inherit;
  background: none;
  cursor: pointer;
}
.consent-link:hover {
  text-decoration: underline;
}
.consent-link[hidden] {
  display: none;
}

.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--white);
  background: var(--navy);
}
@media (min-width: 64rem) {
  .hero {
    padding-top: calc(var(--header-offset) + 2.5rem) !important;
  }
}
.hero a:not(.button) {
  color: inherit;
}

.hero__inner {
  display: grid;
  gap: var(--space-6) 5rem;
  align-items: center;
}
@media (min-width: 64rem) {
  .hero--split .hero__inner {
    grid-template-columns: 1fr 1fr;
  }
}

.hero__content {
  max-width: 43.25rem;
}
.hero__content > .eyebrow {
  margin-bottom: var(--space-4);
}
.hero__content .hero__lead {
  margin-top: var(--space-4);
  font-size: 1.0625rem;
}
.hero__content .hero__body {
  margin-top: var(--space-4);
}
.hero__content .actions {
  margin-top: var(--space-6);
}

.hero__decoration {
  position: absolute;
  top: -10.7rem;
  left: 61%;
  z-index: -1;
  width: min(60rem, 50%);
  height: auto;
  pointer-events: none;
}
@media (max-width: 63.99rem) {
  .hero__decoration {
    top: auto;
    bottom: -4rem;
    left: 45%;
    width: 80%;
  }
}

.hero__side-image {
  width: 100%;
  height: clamp(15rem, 25vw, 24.75rem);
  object-fit: cover;
  border-radius: var(--radius-card);
}
.hero__side-image--illustration {
  max-width: 43.25rem;
  height: auto;
  object-fit: contain;
  border-radius: 0;
}

@media (min-width: 64rem) {
  .hero--photo {
    min-height: 46.25rem;
    padding-top: calc(var(--header-offset) + var(--section-space)) !important;
    padding-bottom: 6.5rem !important;
  }
}
.hero--photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(21, 12, 51, 0.8) 0%, rgba(21, 12, 51, 0) 100%);
  mix-blend-mode: multiply;
}
@media (max-width: 63.99rem) {
  .hero--photo::after {
    background: rgba(21, 12, 51, 0.65);
  }
}
.hero--photo .hero__content {
  max-width: 34rem;
}

.hero__image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 60% 30%;
}

.hero > h1,
.hero > header > h1 {
  max-width: 43.25rem;
}

.hero__eyebrow,
.hero__meta {
  margin-bottom: var(--space-3);
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--cyan);
}

.hero__meta {
  margin: var(--space-4) 0 0;
  color: inherit;
}

.hero__note {
  margin-top: var(--space-5);
  font-family: var(--font-heading);
  font-size: var(--text-button);
  font-weight: 600;
}
.hero__note a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.hero__video {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.6s ease-out;
}
.hero__video.is-playing {
  opacity: 1;
}

.contact-form-section__grid {
  display: grid;
  gap: var(--space-6) 5rem;
  align-items: center;
}
@media (min-width: 64rem) {
  .contact-form-section__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.contact-form-section__intro {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
.contact-form-section__intro .eyebrow {
  margin-bottom: var(--space-3);
}

.contact-details {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  font-family: var(--font-heading);
  font-size: var(--text-h6);
  font-weight: 600;
  line-height: 1.45;
}
.contact-details address {
  font-style: normal;
}

.contact-details__phone {
  color: var(--navy);
  text-decoration: none;
}

.contact-details__label {
  margin-bottom: 0;
}

.form-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-5);
  border-radius: var(--radius-card);
  background: var(--white);
}
.form-card h3 {
  font-size: var(--text-h3);
}
.form-card .button {
  align-self: flex-start;
}

.form-card__note {
  font-size: var(--text-small);
  letter-spacing: 0.01em;
}

.form-card__row {
  display: grid;
  gap: var(--space-4);
}
@media (min-width: 40rem) {
  .form-card__row {
    grid-template-columns: 1fr 1fr;
  }
}

.field {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.field label {
  font-size: var(--text-nav);
  font-weight: 700;
}
.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(21, 12, 51, 0.2);
  border-radius: 8px;
  font-size: var(--text-body);
  color: var(--navy);
  background: rgba(21, 12, 51, 0.05);
}
.field input::placeholder,
.field select::placeholder,
.field textarea::placeholder {
  color: rgba(21, 12, 51, 0.6);
}
.field input[aria-invalid=true],
.field select[aria-invalid=true],
.field textarea[aria-invalid=true] {
  border-color: var(--colour-error);
}
.field textarea {
  min-height: 8rem;
  resize: vertical;
}

.field__error {
  font-size: var(--text-small);
  font-weight: 700;
  color: var(--colour-error);
}

.hero--product {
  color: var(--navy);
  background: var(--tint-1);
}
@media (min-width: 64rem) {
  .hero--product .hero__inner {
    grid-template-columns: 1fr 1fr;
  }
}
.hero--product a:not(.button) {
  color: var(--navy);
}

.hero__mark {
  position: absolute;
  top: 0;
  left: 67%;
  z-index: -1;
  width: auto;
  height: 112%;
  pointer-events: none;
}
.theme-formulate .hero__mark {
  left: 69%;
  height: 100%;
}
.theme-raidai .hero__mark {
  top: -10%;
  height: 120%;
}
@media (max-width: 63.99rem) {
  .hero__mark {
    display: none;
  }
}

.hero__logo {
  width: auto;
  height: 2.5rem;
  margin-bottom: var(--space-6);
}

.hero__ticks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin: var(--space-6) 0 0;
  padding: 0;
  list-style: none;
  font-size: var(--text-small);
}
.hero__ticks li {
  display: inline-flex;
  gap: var(--space-2);
  align-items: center;
}

.icon-cards {
  display: grid;
  gap: var(--space-4);
  margin: var(--block-gap) 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.icon-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--card-pad);
  border-radius: var(--radius-card);
  background: var(--tint-1);
}
.icon-card:nth-child(3n+2) {
  background: var(--tint-2);
}
.icon-card:nth-child(3n+3) {
  background: var(--tint-3);
}
.icon-card h3 {
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.icon-card__icon {
  font-size: 1.5rem;
  color: var(--accent-ink);
}

.icon-card.icon-card--white {
  background: var(--white);
}

.icon-card.icon-card--ice {
  background: var(--tint-1);
}

.icon-card.icon-card--mist {
  background: var(--tint-2);
}

.icon-card.icon-card--cyan {
  background: var(--tint-3);
}

.icon-card > .eyebrow {
  margin: 0 0 calc(var(--space-2) - var(--space-4));
}

.icon-card__action {
  margin-top: auto;
}
.icon-card__action.button {
  width: 100%;
}

.icon-card.icon-card--photo {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 17.875rem;
  color: var(--white);
  background: var(--navy);
}
.icon-card.icon-card--photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(21, 12, 51, 0.8) 0%, rgba(21, 12, 51, 0) 100%);
}
.icon-card.icon-card--photo .arrow-link {
  color: var(--white);
}

.icon-card__image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.icon-cards-section.section--dark .icon-card {
  color: var(--navy);
}
.icon-cards-section.section--dark .icon-card h3 {
  font-size: 1.25rem;
}

.icon-cards-panel {
  padding: var(--space-7) var(--gutter);
  border-radius: 2.5rem;
  background: var(--violet, #6710c2);
}
@media (max-width: 47.99rem) {
  .icon-cards-panel {
    margin-inline: calc(-1 * var(--gutter));
  }
}
@media (min-width: 64rem) {
  .icon-cards-panel {
    padding: 4rem;
    border-radius: 3rem;
  }
}
.icon-cards-panel > .section__intro {
  margin-inline: auto;
  text-align: center;
}
.icon-cards-panel .icon-cards {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}

.process-section__grid {
  display: grid;
  gap: var(--block-gap) 5rem;
  align-items: center;
}
@media (min-width: 64rem) {
  .process-section__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.process-section__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  align-items: flex-start;
}
.process-section__copy .eyebrow {
  margin-bottom: var(--space-3);
}

.process-steps {
  display: grid;
  gap: var(--space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.process-step {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
  padding: var(--card-pad);
  border-radius: var(--radius-card);
  color: var(--navy);
  background: var(--white);
}
@media (min-width: 48rem) {
  .process-step {
    flex-direction: row;
    gap: var(--space-5);
    align-items: center;
  }
}
.process-step h3 {
  margin-bottom: 0.75rem;
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.process-step__number {
  flex: none;
  min-width: 3.25rem;
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: var(--tracking-display);
  color: var(--accent-ink);
}
@media (min-width: 48rem) {
  .process-step__number {
    font-size: 2.5rem;
  }
}

.feature-grid {
  display: grid;
  gap: var(--space-4);
  margin: var(--block-gap) 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
}
@media (min-width: 64rem) {
  .feature-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.feature-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--card-pad);
  border-radius: var(--radius-card);
  background: var(--white);
}
.feature-card h3 {
  font-size: 1.25rem;
  letter-spacing: var(--tracking-card);
}

.feature-card__icon {
  font-size: 1.5rem;
  color: var(--accent-ink);
}

.feature-card__action {
  width: 100%;
  margin-top: auto;
}

.faq-split__grid {
  display: grid;
  gap: var(--block-gap) 5rem;
}
@media (min-width: 64rem) {
  .faq-split__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.faq-split__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.faq-split__intro .eyebrow {
  margin-bottom: var(--space-3);
}

.faq-split__action {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5);
  align-items: center;
}

.avatars {
  display: inline-flex;
}
.avatars img {
  width: 2.5rem;
  height: 2.5rem;
  border: 2px solid var(--navy);
  border-radius: 50%;
  object-fit: cover;
}
.avatars img + img {
  margin-left: -0.75rem;
}

.faq-cards {
  display: grid;
  gap: var(--space-2);
}

.faq-card {
  border-radius: 12px;
  color: var(--navy);
  background: var(--tint-1);
}
.faq-card[open] {
  background: var(--white);
}
.faq-card summary {
  display: flex;
  gap: var(--space-4);
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4);
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  list-style: none;
  cursor: pointer;
}
.faq-card summary::-webkit-details-marker {
  display: none;
}
.faq-card p {
  padding: 0 var(--space-4) var(--space-4);
}

.faq-card__toggle::before {
  content: "+";
  font-size: 1.25rem;
}

.faq-card[open] .faq-card__toggle::before {
  content: "−";
}

.contact-form-section__lead {
  margin-top: var(--space-5);
}

.next-steps {
  display: grid;
  gap: var(--space-3);
  margin: var(--space-5) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: step;
}
.next-steps li {
  display: flex;
  gap: var(--space-2);
  align-items: baseline;
  counter-increment: step;
}
.next-steps li::before {
  content: counter(step, decimal-leading-zero);
  font-family: var(--font-heading);
  font-size: var(--text-h6);
  font-weight: 600;
  color: var(--accent-ink);
}

.contact-details--compact {
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 400;
}
.contact-details--compact .contact-details__phone {
  font-family: var(--font-heading);
  font-size: var(--text-h4);
  font-weight: 600;
}

.contact-details__prompt {
  font-size: var(--text-button);
  font-weight: 700;
  color: var(--accent-ink);
}

[class*=theme-] .field :is(input, select, textarea) {
  background: var(--tint-1);
}

[class*=theme-] .form-card .button--primary {
  color: var(--accent-text);
  background: var(--accent);
}

.two-column {
  display: flex;
  flex-direction: column;
  gap: 4.5rem;
}
@media (min-width: 64rem) {
  .two-column {
    padding-top: 4rem !important;
  }
}
.two-column .stats {
  margin: 0;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
}

.two-column__grid {
  display: grid;
  gap: var(--space-6) 5rem;
}
@media (min-width: 64rem) {
  .two-column__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.two-column__main > p:not(.eyebrow) {
  margin-top: 2.5rem;
}

.two-column__aside {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.ticks {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ticks li {
  display: flex;
  gap: var(--space-2);
  align-items: center;
}
.ticks .icon {
  color: var(--cyan);
}

.split {
  display: grid;
  gap: var(--space-6) 5rem;
  align-items: center;
}
@media (min-width: 64rem) {
  .split {
    grid-template-columns: 1fr 1fr;
  }
  .split--image-right > .split__media {
    order: 1;
  }
}

.split__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.split__text > .eyebrow {
  margin-bottom: calc(var(--space-3) - var(--space-5));
}
.split__text > p:not(.eyebrow) + p {
  margin-top: calc(0.625rem - var(--space-5));
}
.split__text .actions {
  margin-top: var(--space-2);
}

.split__media {
  position: relative;
}

.split__image {
  width: 100%;
  height: clamp(16rem, 30vw, 31.25rem);
  object-fit: cover;
  border-radius: var(--radius-card);
}
.split__image--illustration {
  max-width: 43.25rem;
  height: auto;
  object-fit: contain;
  border-radius: 0;
}

.split__badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  width: 10.2rem;
  height: 2.55rem;
  object-fit: cover;
  border-radius: 8px;
}

.split__ticks-heading {
  margin-bottom: calc(var(--space-3) - var(--space-5));
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.split__closing {
  font-size: 1.0625rem;
}

.banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 13rem;
  padding: var(--space-5) var(--space-3);
  border-radius: var(--radius-card);
  color: var(--white);
  background: var(--violet, #6710c2);
}
@media (min-width: 48rem) {
  .banner {
    padding: 3rem 2.5rem;
  }
}

.banner__text {
  display: grid;
  gap: var(--space-5);
  justify-items: start;
  max-width: 57.8rem;
}
.banner__text h2 {
  font-size: var(--text-h2);
}
.banner__text p {
  font-size: 1.0625rem;
}
.banner__text .arrow-link {
  color: var(--white);
}

.banner__mark {
  position: absolute;
  top: 50%;
  right: -4rem;
  z-index: -1;
  width: 17rem;
  height: auto;
  opacity: 0.35;
  transform: translateY(-50%);
  pointer-events: none;
}
@media (min-width: 64rem) {
  .banner__mark {
    right: -5rem;
    width: 31rem;
    opacity: 1;
  }
}

.split-list__rows {
  display: grid;
  gap: var(--space-7);
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 64rem) {
  .split-list__rows {
    gap: 4.5rem;
  }
}
.section__intro + .split-list__rows {
  margin-top: var(--block-gap-lg);
}

.split-list h2 {
  font-size: var(--text-h2);
}
.split-list h3 {
  font-size: var(--text-h3);
  letter-spacing: var(--tracking-display);
}
.split-list .split__image {
  border-radius: 1.5rem;
}

.split-list__card--inset {
  padding: var(--space-3) var(--space-3) var(--space-5);
  border-radius: 2rem;
}
@media (min-width: 64rem) {
  .split-list__card--inset {
    padding: 1.5rem;
    border-radius: 2.5rem;
  }
}

.split-list__card--white {
  background: var(--white);
}

.split-list__card--ice {
  background: var(--tint-1);
}

.split-list__card--mist {
  background: var(--tint-2);
}

.split-list__card--cyan {
  background: var(--tint-3);
}

.split-list__tagline {
  font-size: var(--text-button);
  font-weight: 700;
  color: var(--accent-ink);
}
.split-list__card--cyan .split-list__tagline {
  color: var(--navy);
}

.split-list__number {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: var(--space-3);
  border-radius: 50%;
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--white);
  background: var(--accent);
}

@media (min-width: 64rem) {
  .split-list--numbered .split-list__row {
    position: relative;
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: 2.5rem;
    align-items: start;
  }
  .split-list__number {
    width: 4rem;
    height: 4rem;
    margin: 0;
    font-size: var(--text-h4);
  }
  .split-list--numbered .split-list__row:not(:last-child)::before {
    content: "";
    position: absolute;
    top: 5.25rem;
    bottom: 0;
    left: calc(2rem - 1px);
    width: 2px;
    background: var(--tint-2);
  }
}
.split-list--numbered .split__text {
  gap: var(--space-4);
}
.split-list--numbered .split__text > p:not(.eyebrow) + p,
.split-list--numbered .split__text .actions {
  margin-top: 0;
}
.split-list--numbered .split-list__number {
  font-size: var(--text-h4);
}
@media (min-width: 64rem) {
  .split-list--numbered .split-list__rows {
    gap: 2.5rem;
  }
  .split-list--numbered .split__image {
    height: 23.75rem;
  }
  .split-list--numbered .split-list__card--inset {
    padding: 1.5rem 2rem 1.5rem 1.5rem;
  }
  .split-list--numbered .split-list__card--inset:has(> .split--image-right) {
    padding: 1.5rem 1.5rem 1.5rem 2rem;
  }
}
@media (max-width: 63.99rem) {
  .split-list--numbered .split-list__rows {
    gap: var(--space-4);
  }
  .split-list--numbered .split-list__row {
    position: relative;
  }
  .split-list--numbered .split-list__number {
    position: absolute;
    top: var(--space-4);
    left: var(--space-4);
    margin: 0;
  }
  .split-list--numbered .split-list__card--inset {
    padding: 6.125rem 0.5rem 0.5rem;
  }
  .split-list--numbered .split {
    row-gap: 2.25rem;
  }
  .split-list--numbered .split__media {
    order: 1;
  }
  .split-list--numbered .split__text {
    padding-inline: var(--space-3);
  }
  .split-list--numbered .split__image {
    height: 12.125rem;
  }
}

.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: var(--space-3);
  margin: var(--block-gap-lg) 0 0;
}

.stat {
  display: flex;
  flex-direction: column-reverse;
  justify-content: space-between;
  min-height: 8.75rem;
  padding: var(--card-pad-y) var(--space-4);
  border-radius: var(--radius-card);
  color: var(--navy);
}
.stat dd small {
  margin-left: 0.25rem;
  font-family: var(--font-body);
  font-size: var(--text-button);
  font-weight: 700;
  letter-spacing: 0;
}
.stat dd {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: var(--tracking-display);
}
.stat dt {
  font-size: var(--text-small);
  letter-spacing: 0.01em;
}
.stat--white {
  background: var(--white);
}
.stat--ice {
  background: var(--ice);
}
.stat--mist {
  background: var(--mist);
}
.stat--cyan {
  background: var(--cyan-light);
}

.steps {
  display: grid;
  gap: var(--space-4);
  margin: var(--block-gap) 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}

.step {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--card-pad);
  border-radius: var(--radius-card);
  background: var(--white);
}
.step h3 {
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.step__number {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: var(--tracking-display);
  color: var(--blue);
}

.step--white {
  background: var(--white);
}

.step--ice {
  background: var(--tint-1);
}

.step--mist {
  background: var(--tint-2);
}

.step--cyan {
  background: var(--tint-3);
}

@media (min-width: 64rem) {
  .section__split-heading > .actions {
    justify-content: flex-end;
  }
}

.step:has(.step__link) {
  position: relative;
}
.step:has(.step__link):focus-within {
  outline: 3px solid var(--colour-focus);
  outline-offset: 3px;
}

.step__link {
  color: inherit;
  text-decoration: none;
}
.step__link::after {
  content: "";
  position: absolute;
  inset: 0;
}
.step__link:hover {
  text-decoration: underline;
}
.step__link:focus-visible {
  outline: none;
}

.team {
  display: grid;
  gap: var(--space-4);
  margin: var(--block-gap) 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.team-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--card-pad);
  border-radius: var(--radius-card);
}
.team-card h3 {
  margin-top: var(--space-2);
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}
.team-card--ice {
  background: var(--ice);
}
.team-card--mist {
  background: var(--mist);
}
.team-card--cyan {
  background: var(--cyan-light);
}
.team-card--white {
  background: var(--white);
}

.team-card__avatar {
  display: grid;
  place-items: center;
  width: 5rem;
  height: 5rem;
  overflow: hidden;
  border: 1px solid var(--mist);
  border-radius: 50%;
  background: var(--white);
}
.team-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.team-card__avatar .team-card__mark {
  width: 3.4rem;
  height: auto;
  object-fit: contain;
}

.team-card__role {
  font-size: var(--text-button);
  font-weight: 700;
  color: var(--blue);
}
.team-card--mist .team-card__role, .team-card--cyan .team-card__role {
  color: var(--navy);
}

.team-card__action {
  margin-top: auto;
}

.team-card__linkedin {
  display: inline-flex;
  gap: var(--space-2);
  align-items: center;
  justify-self: start;
  align-self: start;
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--navy);
  text-decoration: none;
}
.team-card__linkedin .icon {
  font-size: 1.125rem;
}
.team-card__linkedin:hover {
  text-decoration: underline;
}

.industry-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
  padding: var(--card-pad-y) var(--space-4);
  border-radius: var(--radius-card);
}
.industry-card h3 {
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}
.industry-card--cyan {
  background: var(--cyan-light);
}
.industry-card--mist {
  background: var(--mist);
}
.industry-card--ice {
  background: var(--ice);
}

.industry-card__icon {
  font-size: 1.5rem;
  color: var(--blue);
}

.section__intro--wide {
  max-width: none;
}
.section__intro--wide > p:not(.eyebrow) {
  margin-top: var(--space-5);
  font-size: 1.0625rem;
}

.industry-photos {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--block-gap);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
}
@media (min-width: 64rem) {
  .industry-photos {
    margin-top: 3.5rem;
    grid-template-columns: repeat(3, 1fr);
  }
}

.industry-photo {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 3.5rem;
  min-height: 37.5rem;
  padding: 2.5rem;
  overflow: hidden;
  border-radius: var(--radius-card);
  color: var(--white);
  background: var(--navy);
  scroll-margin-top: 8rem;
}
@media (min-width: 64rem) {
  .industry-photo {
    scroll-margin-top: 2rem;
  }
}
.industry-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(21, 12, 51, 0) 0%, rgb(21, 12, 51) 100%), rgba(21, 12, 51, 0.45);
}
.industry-photo h3 {
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}
.industry-photo p {
  margin-top: var(--space-5);
  font-size: 1.0625rem;
}
.industry-photo--cyan {
  --accent: var(--cyan-light);
}
.industry-photo--mist {
  --accent: var(--mist);
}

.industry-photo__image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.industry-photo__text {
  max-width: 16.5rem;
}

.industry-photo__icon {
  display: block;
  margin-bottom: 3rem;
  font-size: 1.5rem;
  color: var(--accent);
}

.industry-photo__name {
  display: block;
  margin-bottom: var(--space-3);
  font-size: var(--text-button);
  letter-spacing: 0;
}

.industry-photo__button {
  width: 100%;
  color: var(--navy);
  background: var(--accent);
}

.industry-cta {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-5);
  min-height: 37.5rem;
  padding: 5.5rem 3.5rem 3.5rem;
  border-radius: var(--radius-card);
  color: var(--navy);
  background: var(--cyan);
}
@media (min-width: 64rem) {
  .industry-cta--span-2 {
    grid-column: span 2;
  }
  .industry-cta--span-3 {
    grid-column: 1/-1;
  }
}
.industry-cta h3 {
  max-width: 24.5rem;
  font-size: var(--text-h1);
  letter-spacing: var(--tracking-display);
}
.industry-cta h3 span {
  display: block;
  margin-top: 2.5rem;
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.industry-cta__mark {
  width: 3.4rem;
  height: auto;
}

.industry-cta__footer {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  max-width: 24.5rem;
  font-size: 1.0625rem;
}
.industry-cta__footer .button {
  min-height: 3.5rem;
}

.client-logos-section__heading {
  margin-bottom: 4rem;
  text-align: center;
}

.industry-photo__tag {
  display: inline-block;
  margin: 0 0 var(--space-3);
}

.insight-card {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--radius-card);
  background: rgba(21, 12, 51, 0.05);
}
.insight-card h3 {
  font-size: var(--text-h6);
  letter-spacing: 0;
}
.insight-card h3 a {
  color: inherit;
  text-decoration: none;
}
.insight-card h3 a::after {
  content: "";
  position: absolute;
  inset: 0;
}
.insight-card:hover h3 a {
  text-decoration: underline;
}
.insight-card:focus-within {
  outline: 3px solid var(--colour-focus);
  outline-offset: 3px;
}
.insight-card h3 a:focus-visible {
  outline: none;
}

.insight-card__image {
  width: 100%;
  height: 13.25rem;
  object-fit: cover;
}

.insight-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--card-pad-y) var(--space-4);
}
.insight-card__body p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
}
.insight-card__body .arrow-link {
  margin-top: auto;
}

.insights-section--dark .section__header {
  justify-content: center;
  text-align: center;
}
.insights-section--dark .section__intro {
  margin-inline: auto;
}
.insights-section--dark .insight-card {
  color: var(--navy);
  background: none;
}
.insights-section--dark .insight-card__body {
  background: var(--white);
}
.insights-section--dark .insights-section__more {
  justify-content: center;
  margin-top: var(--block-gap-lg);
}

.faq-list {
  margin-top: var(--block-gap);
  border-top: 1px solid var(--colour-border);
}

.faq {
  border-bottom: 1px solid var(--colour-border);
}
.faq summary {
  display: flex;
  gap: var(--space-4);
  align-items: center;
  justify-content: space-between;
  padding-block: var(--space-4);
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  list-style: none;
  cursor: pointer;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary .icon {
  flex: none;
  transition: transform 0.15s ease-out;
}
.faq[open] summary .icon {
  transform: rotate(180deg);
}
.faq p {
  max-width: 48rem;
  padding-bottom: var(--space-4);
}
.section--dark .faq {
  border-color: rgba(255, 255, 255, 0.2);
}

.faq__answer :is(ul, ol) {
  max-width: 48rem;
  margin: 0 0 var(--space-4);
  padding-left: 1.25rem;
}
.faq__answer a {
  color: inherit;
  text-decoration: underline;
}
.faq-card .faq__answer :is(ul, ol) {
  margin-inline: var(--space-4);
}

.testimonials-section__heading {
  text-align: center;
}

.testimonials {
  display: grid;
  gap: var(--space-5);
  margin: 4rem 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
}

.testimonial {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--card-pad-y) var(--space-4);
  border-radius: var(--radius-card);
  text-align: center;
  background: var(--white);
}
.testimonial blockquote {
  margin: 0;
  quotes: "“" "”";
}
.testimonial blockquote p::before {
  content: open-quote;
}
.testimonial blockquote p::after {
  content: close-quote;
}

.testimonial__source {
  font-size: var(--text-nav);
  font-weight: 700;
}

.testimonial-feature {
  display: flex;
  flex-direction: column;
  gap: var(--block-gap-lg);
  align-items: center;
  text-align: center;
}

.testimonial-feature__quote {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  align-items: center;
}
.testimonial-feature__quote figcaption {
  margin-top: calc(var(--space-3) - var(--space-5));
}
.testimonial-feature__quote {
  max-width: 60rem;
  margin: 0;
}
.testimonial-feature__quote blockquote {
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(1.25rem, 1rem + 1vw, 2rem);
  line-height: 1.4;
  letter-spacing: -0.02em;
  quotes: "“" "”";
}
.testimonial-feature__quote blockquote p::before {
  content: open-quote;
}
.testimonial-feature__quote blockquote p::after {
  content: close-quote;
}
.testimonial-feature__quote figcaption {
  font-size: var(--text-nav);
  font-weight: 700;
}

.client-logos {
  width: 100%;
}

.client-logos__viewport {
  width: 100%;
}

.client-logos__track {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5) 3rem;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.client-logos__track li {
  flex: none;
}
.client-logos__track img {
  width: auto;
  max-width: 8.75rem;
  height: 2.75rem;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.85;
  transition: filter 0.2s ease-out, opacity 0.2s ease-out;
}
@media (min-width: 48rem) {
  .client-logos__track img {
    max-width: 11.25rem;
    height: 3.5rem;
  }
}
.client-logos__track li:hover img {
  filter: none;
  opacity: 1;
}

.client-logos.is-scrolling .client-logos__viewport {
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}
.client-logos.is-scrolling .client-logos__track {
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: max-content;
  animation: client-logos-scroll 48s linear infinite;
}

@keyframes client-logos-scroll {
  to {
    transform: translateX(calc(-50% - 1.5rem));
  }
}
.testimonial-quote {
  text-align: center;
}
.testimonial-quote > .eyebrow {
  margin-bottom: var(--space-4);
  font-size: var(--text-button);
}

.testimonial-quote__figure {
  max-width: 60rem;
  margin: 0 auto;
}
.testimonial-quote__figure blockquote {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.4;
}
@media (min-width: 64rem) {
  .testimonial-quote__figure blockquote {
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: -0.02em;
  }
}
.testimonial-quote__figure figcaption {
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  align-items: center;
  justify-content: center;
  margin-top: var(--space-5);
  font-size: var(--text-small);
}
.testimonial-quote__figure img {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  object-fit: cover;
  background: #eeebe6;
  box-shadow: 0 0 0 1px rgba(103, 16, 194, 0.5);
}

.testimonial-quote__name {
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
}

.testimonial-quote__role {
  padding-left: var(--space-3);
  border-left: 1px solid rgba(255, 255, 255, 0.5);
}

.tag {
  align-self: flex-start;
  margin: var(--space-5) var(--space-4) 0;
  padding: 0.25rem 0.5rem;
  border-radius: var(--radius-button);
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--navy);
  background: var(--cyan);
}

.insight-card__image + .tag {
  position: absolute;
  top: calc(13.25rem - 13px);
  left: var(--space-4);
  z-index: 1;
  margin: 0;
}
.insight-card__image + .tag + .insight-card__body {
  padding-top: 2.75rem;
}

.content-list__more {
  display: flex;
  justify-content: center;
  margin-top: 4rem;
}

.article__band {
  padding-block: 4.5rem !important;
}

.article__column {
  max-width: 60rem;
  margin-inline: auto;
}

.article__callout {
  margin: 0 0 var(--block-gap);
  padding: 1.25rem 1.5rem 1.5rem;
  border-left: 4px solid var(--accent, var(--blue));
  border-radius: 0 var(--radius-card) var(--radius-card) 0;
  font-family: var(--font-heading);
  font-size: var(--text-h5, 1.25rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.01em;
  background: var(--white);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}
.article__callout strong {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--text-small, 0.875rem);
  letter-spacing: 0;
  color: var(--accent-ink, var(--blue));
}

.article__image {
  display: block;
  width: 100%;
  height: auto;
  margin-top: var(--block-gap);
  border-radius: var(--radius-card);
}

.article__picture {
  display: block;
}
@media (max-width: 39.99rem) {
  .article__picture .article__image {
    max-width: 27.5rem;
    margin-inline: auto;
  }
}

.article__overview-title {
  margin-bottom: 2.5rem;
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.article__lead {
  font-size: 1.0625rem;
}

.prose .article__part-title {
  display: block;
  margin: 0 0 var(--space-4);
  font-size: var(--text-nav);
  letter-spacing: 0;
}

.hero--article {
  display: flex;
  align-items: flex-end;
  min-height: 32.6rem;
}
.hero--article::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(21, 12, 51, 0) 0%, rgb(21, 12, 51) 100%), rgba(21, 12, 51, 0.35);
}
.hero--article .hero__inner {
  width: 100%;
}
.hero--article .hero__content {
  max-width: 45.75rem;
}

.hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: var(--space-5) 0 0;
  padding: 0;
  list-style: none;
}
.hero__tags li {
  padding: 0.4rem 0.75rem;
  border-radius: var(--radius-button);
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--navy);
  background: var(--cyan-light);
}
.hero__tags li:first-child {
  background: var(--cyan);
}

.document__column {
  max-width: 60rem;
  margin-inline: auto;
}
.document__column h2 {
  margin-top: 2.5rem;
}
.document__column table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-nav);
}
@media (max-width: 47.99rem) {
  .document__column table {
    display: block;
    overflow-x: auto;
  }
}
.document__column th,
.document__column td {
  padding: 0.75rem;
  border-bottom: 1px solid var(--colour-border);
  text-align: left;
  vertical-align: top;
}
.document__column th {
  font-weight: 700;
}

.termly-policy {
  display: block;
  width: 100%;
  min-height: 75vh;
  border: 0;
}
.termly-policy.is-sized {
  min-height: 0;
}

.document__fallback {
  margin-top: var(--space-5);
  font-size: var(--text-small);
}

.document__updated {
  font-size: var(--text-small);
  color: rgba(21, 12, 51, 0.7);
}

.chip-band {
  padding-block: 3.5rem !important;
}
.chip-band p {
  margin-top: 1.25rem;
  font-size: 1.0625rem;
}

.chip-band__heading {
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}

.chip {
  display: inline-flex;
  align-items: center;
  min-height: 2.625rem;
  padding: 0 1rem;
  border-radius: 8px;
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--navy);
  text-decoration: none;
  background: var(--white);
}
.chip:hover {
  color: var(--blue);
}
.chip[aria-current=true] {
  color: var(--white);
  background: var(--navy);
}

.text-section .section__intro > p:not(.eyebrow) + p {
  margin-top: var(--space-4);
}
.text-section .actions {
  margin-top: var(--space-6);
}

.text-section__body {
  max-width: 48rem;
  margin-top: var(--space-5);
}
.text-section__body p + p {
  margin-top: var(--space-4);
}

.text-section--statement {
  text-align: center;
}
.text-section--statement .section__intro {
  max-width: none;
}
.text-section--statement h2 {
  font-size: var(--text-display, var(--text-h1));
  letter-spacing: var(--tracking-display);
}
.text-section--statement h2 .line:first-child {
  color: var(--accent);
}

.cta-band {
  position: relative;
  isolation: isolate;
  padding: var(--section-space) max(var(--gutter), (100% - var(--container)) / 2);
  background: var(--navy);
}
@media (max-width: 63.99rem) {
  .cta-band {
    padding-bottom: 8rem;
  }
}
main:has(> .section--dark:last-child) + .cta-band {
  padding-top: 0;
}

.cta-band__art {
  position: absolute;
  inset: -8rem 0 -12rem;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.cta-band__mark {
  position: absolute;
  top: calc(50% - 2rem);
  left: 50%;
  width: 41.7rem;
  max-width: none;
  height: auto;
  transform: translate(-50%, -50%);
}
@media (min-width: 64rem) {
  .cta-band__mark {
    top: 6.0625rem;
    left: calc(50% + 8.875rem);
    width: 65.5625rem;
    transform: none;
  }
}

.cta-band__card {
  display: grid;
  gap: var(--space-6);
  justify-items: center;
  padding: var(--space-7) var(--space-4);
  border-radius: var(--radius-panel);
  text-align: center;
  background: var(--mist);
}
@media (min-width: 48rem) {
  .cta-band__card {
    padding: var(--space-7);
  }
}
.cta-band__card .eyebrow {
  margin: 0 0 calc(var(--space-3) - var(--space-6));
  color: var(--accent-ink);
}
.cta-band__card h2 {
  font-size: max(2rem, var(--text-h2));
}
.cta-band__card p:not(.eyebrow) {
  max-width: 50rem;
}
.cta-band__card .actions {
  justify-content: center;
  margin-top: 0;
}
@media (max-width: 39.99rem) {
  .cta-band__card .button {
    padding-inline: var(--space-3);
  }
}

.enquiry {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.enquiry__mark {
  position: absolute;
  top: 1rem;
  right: -6rem;
  z-index: -1;
  width: 24rem;
  height: auto;
  opacity: 0.3;
  pointer-events: none;
}
@media (max-width: 63.99rem) {
  .enquiry__mark {
    display: none;
  }
}
@media (min-width: 64rem) {
  .enquiry__mark {
    top: calc(50% - 3.5rem);
    right: auto;
    left: calc(50% + 26rem);
    width: 100rem;
    opacity: 0.18;
    transform: translateY(-50%);
  }
}

.enquiry .contact-form-section__intro {
  gap: var(--space-6);
}
.enquiry .contact-form-section__lead,
.enquiry .next-steps {
  margin-top: var(--space-4);
}
@media (min-width: 64rem) {
  .enquiry .contact-form-section__lead,
  .enquiry .next-steps {
    margin-top: var(--space-6);
  }
}
.enquiry .next-steps {
  gap: var(--space-3);
}
.enquiry .next-steps li {
  display: block;
  font-size: var(--text-button);
  font-weight: 700;
}
.enquiry .next-steps li::before {
  margin-right: var(--space-2);
}
.enquiry .contact-details--compact {
  gap: var(--space-3);
}
@supports (text-box: trim-both cap alphabetic) {
  .enquiry .next-steps li,
  .enquiry .contact-details__phone {
    text-box: trim-both cap alphabetic;
  }
}
@media (max-width: 47.99rem) {
  .enquiry .form-card {
    gap: var(--space-3);
    padding: var(--space-5) var(--space-3);
  }
  .enquiry .form-card h3 {
    font-size: var(--text-h5);
  }
  .enquiry .form-card .button {
    align-self: stretch;
  }
  .enquiry .form-card__row {
    row-gap: var(--space-3);
  }
}

.form-page__grid {
  display: grid;
  gap: var(--space-6);
  max-width: 64rem;
  margin-inline: auto;
}
@media (min-width: 64rem) {
  .form-page__grid {
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
}

.form-page__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
@media (min-width: 64rem) {
  .form-page__form {
    padding-right: 4rem;
  }
}
.form-page__form .button {
  align-self: flex-start;
}

.form-page__heading {
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}

.form-page__aside {
  display: grid;
  gap: 3rem;
  align-content: start;
  padding-top: var(--space-6);
  border-top: 1px solid var(--mist);
}
@media (min-width: 64rem) {
  .form-page__aside {
    padding: 0 0 0 4rem;
    border-top: 0;
    border-left: 1px solid var(--mist);
  }
}

.form-page__option h2 {
  margin-bottom: var(--space-2);
  font-size: var(--text-h6);
  letter-spacing: 0;
  color: var(--accent-ink);
}
.form-page__option .button {
  margin-top: var(--space-5);
}

@media (max-width: 63.99rem) {
  main > .form-page {
    padding-block: 2.5rem;
  }
  .form-page__form {
    gap: var(--space-3);
  }
  .form-page__aside {
    gap: var(--space-5);
  }
  .form-page__option .button {
    margin-top: var(--space-6);
  }
}
@media (max-width: 39.99rem) {
  .form-page .button {
    align-self: stretch;
    width: 100%;
  }
}
.assessment {
  display: grid;
  gap: var(--space-6);
  max-width: 50rem;
  margin-inline: auto;
}
.assessment fieldset {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  border: 0;
}
.assessment legend {
  margin-bottom: var(--space-3);
  font-size: var(--text-nav);
  font-weight: 700;
}

@media (min-width: 64rem) {
  .assessment {
    gap: 3.5rem;
  }
}

.assessment__step {
  display: grid;
  gap: var(--space-3);
}
@media (min-width: 48rem) {
  .assessment__step {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
  }
  .assessment__step > :not(.form__field--half) {
    grid-column: 1/-1;
  }
}
.assessment__step > h2 {
  font-size: var(--text-h3);
}
.assessment__step > .form__hint {
  margin: 0 0 var(--space-5);
  font-size: var(--text-lead);
}

.assessment .form__error:empty {
  display: none;
}

@media (max-width: 63.99rem) {
  main > .assessment-section {
    padding-block: 2.5rem;
  }
}
.assessment .form__field {
  display: grid;
  gap: 0.75rem;
}
.assessment .form__field label {
  font-size: var(--text-nav);
  font-weight: 700;
}
.assessment .form__field input:not([type=checkbox], [type=radio], [type=range]),
.assessment .form__field select,
.assessment .form__field textarea {
  width: 100%;
  min-height: 3.25rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(21, 12, 51, 0.2);
  border-radius: 8px;
  font-size: var(--text-body);
  color: var(--navy);
  background: var(--tint-1);
}
.assessment .form__field textarea {
  min-height: 8rem;
  resize: vertical;
}
.assessment .form__field input[type=range] {
  width: 100%;
  accent-color: var(--accent);
}
.assessment .form__field output {
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: 600;
  color: var(--accent-ink);
}

.form__hint {
  font-size: var(--text-small);
}

.form__option {
  display: flex;
  gap: var(--space-3);
  align-items: center;
}
.form__option input {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--accent);
}

.assessment__nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: flex-end;
}
@media (max-width: 39.99rem) {
  .assessment__nav > .button {
    width: 100%;
  }
}

.assessment__stepper {
  display: flex;
  justify-content: space-between;
  margin: 0;
  padding: 0;
  list-style: none;
}
.assessment__stepper li {
  position: relative;
  display: flex;
  flex: 1;
  justify-content: center;
}
.assessment__stepper li::before, .assessment__stepper li::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  height: 2px;
  background: var(--tint-2);
}
.assessment__stepper li::before {
  left: 0;
  right: calc(50% + 1.75rem);
}
.assessment__stepper li::after {
  left: calc(50% + 1.75rem);
  right: 0;
}
.assessment__stepper li.is-done::before, .assessment__stepper li.is-done::after, .assessment__stepper li[aria-current=step]::before {
  background: var(--accent);
}
@media (max-width: 47.99rem) {
  .assessment__stepper li:first-child::before, .assessment__stepper li:last-child::after {
    display: none;
  }
}

.assessment__stepper-number {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--accent);
  border-radius: 50%;
  font-family: var(--font-heading);
  font-size: var(--text-h6);
  font-weight: 600;
  color: var(--accent-ink);
  background: var(--white);
}
.is-done .assessment__stepper-number, [aria-current=step] .assessment__stepper-number {
  color: var(--white);
  background: var(--accent);
}

:root {
  --accent: var(--cyan);
  --accent-text: var(--colour-primary-contrast);
  --accent-ink: var(--blue);
  --accent-on-dark: var(--cyan);
  --tint-1: var(--ice);
  --tint-2: var(--mist);
  --tint-3: var(--cyan-light);
}

.theme-tailored {
  --accent: #ff930f;
  --accent-text: var(--navy);
  --accent-ink: #a65400;
  --accent-on-dark: #ff930f;
  --tint-1: #fff5e8;
  --tint-2: #ffe8c8;
  --tint-3: #ffd39a;
}

.theme-formulate {
  --accent: #00c5cd;
  --accent-text: var(--navy);
  --accent-ink: #00767b;
  --accent-on-dark: #00c5cd;
  --tint-1: #ecfaf9;
  --tint-2: #d9f5f3;
  --tint-3: #bdefee;
}

.theme-raidai {
  --accent: #c81d77;
  --accent-text: var(--white);
  --accent-ink: #b01868;
  --accent-on-dark: #ff6eb4;
  --tint-1: #ffeff8;
  --tint-2: #eddbff;
  --tint-3: #ffc4e4;
}

.section--tint {
  background: var(--tint-1);
}

.section--tintstrong {
  background: var(--tint-2);
}

.eyebrow--accent {
  color: var(--accent-ink);
}

.eyebrow--accent-on-dark {
  color: var(--accent-on-dark);
}

.button--accent {
  color: var(--accent-text);
  background: var(--accent);
}

.ticks--accent .icon {
  color: var(--accent-on-dark);
}

main[class*=theme-] .eyebrow:not(.eyebrow--on-dark, .eyebrow--accent-on-dark) {
  color: var(--accent-ink);
}
main[class*=theme-] .ticks .icon {
  color: var(--accent-ink);
}
main[class*=theme-] .section--dark .ticks .icon {
  color: var(--accent-on-dark);
}
main[class*=theme-] .team-card--ice {
  background: var(--tint-1);
}
main[class*=theme-] .team-card--mist {
  background: var(--tint-2);
}
main[class*=theme-] .team-card--cyan {
  background: var(--tint-3);
}
main[class*=theme-] .team-card__role {
  color: var(--accent-ink);
}
main[class*=theme-] .team-card--mist .team-card__role,
main[class*=theme-] .team-card--cyan .team-card__role {
  color: var(--navy);
}

body {
  background: var(--navy);
}

main > section {
  background: var(--white);
}

:where(main > section) {
  display: flow-root;
}

main > section:not(.section--dark, .hero) {
  position: relative;
  border-radius: var(--sheet-radius);
}

main > section:not(.section--dark, .hero, .enquiry) + section:not(.section--dark, .hero, .enquiry) {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

main > section:not(.section--dark, .hero, .enquiry, .section--tint, .section--tintstrong, .section--ice, .section--mist, .section--grey) + section:not(.section--dark, .hero, .enquiry, .section--tint, .section--tintstrong, .section--ice, .section--mist, .section--grey) {
  padding-top: 0;
}

main > section:not(.section--dark, .hero) + .banner-section {
  margin-top: calc(var(--space-3) - var(--section-space));
}
@media (min-width: 64rem) {
  main > section:not(.section--dark, .hero) + .banner-section {
    margin-top: calc(var(--space-6) - var(--section-space));
  }
}

main > section:not(.section--dark, .hero, .enquiry):has(+ section:not(.section--dark, .hero, .enquiry)) {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

main > section:not(.section--dark, .hero) + .enquiry {
  margin-top: var(--space-7);
}

main > .hero:has(+ section:not(.section--dark, .hero)) {
  padding-bottom: calc(var(--section-space) + var(--sheet-overlap)) !important;
}

main > .hero + section:not(.section--dark, .hero) {
  margin-top: calc(-1 * var(--sheet-overlap));
}

main + .site-footer {
  margin-top: var(--space-7);
}

main > .enquiry:last-child {
  padding-bottom: calc(var(--section-space) + var(--sheet-radius) + 1rem);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

main:has(> .enquiry:last-child) + .site-footer {
  margin-top: calc(-1 * var(--sheet-radius));
}

main > .article {
  position: relative;
  overflow: hidden;
  border-radius: var(--sheet-radius);
}

main > .hero:has(+ .article) {
  padding-bottom: calc(var(--section-space) + var(--sheet-overlap)) !important;
}

main > .hero + .article {
  margin-top: calc(-1 * var(--sheet-overlap));
}

main > section:not(.section--dark, .hero, .enquiry):has(+ .article),
main > .article:has(+ section:not(.section--dark, .hero, .enquiry)) {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

main > section:not(.section--dark, .hero, .enquiry) + .article,
main > .article + section:not(.section--dark, .hero, .enquiry) {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

[hidden] {
  display: none !important;
}

.eyebrow {
  display: block;
}

@supports (text-box: trim-both cap alphabetic) {
  :is(h1, h2, h3, h4, .eyebrow, label, legend, p, blockquote, figcaption):not(.design-pending, .insight-card__body p) {
    text-box: trim-both cap alphabetic;
  }
}
.hero {
  background: var(--hero-gradient);
}

.hero__decoration {
  top: 50%;
  right: 4%;
  left: auto;
  width: min(49rem, 46%);
  transform: translateY(calc(-50% + 1.875rem));
}
@media (max-width: 63.99rem) {
  .hero__decoration {
    top: 1.5rem;
    right: auto;
    bottom: auto;
    left: 0;
    width: 100%;
    max-width: 24.375rem;
    opacity: 0.35;
    transform: none;
  }
}

@media (min-width: 64rem) {
  .hero--plain .hero__content,
  .hero--photo .hero__content {
    max-width: 55rem;
  }
}

@media (min-width: 64rem) {
  .hero--photo:has(.hero__mark--photo) .hero__content {
    max-width: 46rem;
  }
}

@media (max-width: 63.99rem) {
  .hero__content > .eyebrow {
    margin-bottom: var(--space-3);
  }
}
.hero__content .hero__lead {
  margin-top: var(--space-6);
}
@media (max-width: 63.99rem) {
  .hero__content .actions {
    margin-top: var(--space-5);
  }
}

@media (max-width: 39.99rem) {
  .hero .actions,
  .split .actions {
    justify-content: center;
  }
}
@media (min-width: 64rem) {
  .hero--photo {
    min-height: 40rem;
  }
}
.hero--photo::after {
  background: linear-gradient(90deg, #290666 0%, rgba(41, 6, 102, 0) 100%);
  mix-blend-mode: normal;
}
@media (max-width: 63.99rem) {
  .hero--photo::after {
    background: rgba(41, 6, 102, 0.7);
  }
}

@media (min-width: 64rem) {
  .hero--photo:not(:has(.hero__mark--photo)) {
    padding-top: 7.75rem !important;
  }
}

.hero__lead:has(+ .hero__body) {
  font-weight: 700;
}

.hero--photo:has(.hero__mark--photo)::after {
  content: none;
}

.hero__image:has(+ .hero__mark--photo) {
  object-position: 50% 50%;
}

.theme-raidai .hero__mark--photo {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  display: block;
  width: 49rem;
  height: auto;
  opacity: 1;
  mix-blend-mode: color;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
@media (max-width: 63.99rem) {
  .theme-raidai .hero__mark--photo {
    width: 24.4375rem;
  }
}

.steps .step h3 {
  font-size: clamp(1.25rem, 0.75rem + 0.75vw, 1.5rem);
  overflow-wrap: normal;
}

.industries-section h2.h3 {
  font-size: var(--text-h2);
}
@media (min-width: 64rem) {
  .industries-section .card-grid--3 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.eyebrow--on-dark,
main[class*=theme-] .section--dark .eyebrow {
  color: var(--accent-on-dark);
}

.hero .button--text,
.hero .text-link {
  color: var(--white);
}

.industry-photo:nth-child(4n+1) {
  --accent: var(--tint-1);
}

.industry-photo__name {
  color: var(--white);
}

.industry-photo:nth-child(4n+3) .industry-photo__name {
  color: var(--accent);
}

.industry-photo::after {
  background: linear-gradient(90deg, var(--navy) 0%, rgba(21, 12, 51, 0) 100%);
}
@media (max-width: 47.99rem) {
  .industry-photo::after {
    background: linear-gradient(90deg, var(--navy) 0%, rgba(21, 12, 51, 0.24) 100%);
  }
}

@media (max-width: 47.99rem) {
  .industry-photos {
    gap: var(--space-3);
  }
  .industry-photo {
    min-height: 0;
    gap: var(--space-5);
    padding: var(--card-pad);
  }
  .industry-photo h3 {
    font-size: var(--text-h5);
  }
  .industry-photo__text {
    max-width: none;
  }
  .industry-photo__icon {
    margin-bottom: var(--space-4);
    font-size: 1.25rem;
  }
}
.industry-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--white);
  background: var(--violet);
}
@media (max-width: 63.99rem) {
  .industry-cta {
    min-height: 0;
    padding: var(--space-5) var(--space-4);
  }
}

.industry-cta__mark {
  position: absolute;
  top: -5.75rem;
  right: -9.625rem;
  z-index: -1;
  width: 49rem;
}
@media (max-width: 63.99rem) {
  .industry-cta__mark {
    top: 2.5rem;
    right: auto;
    left: 0;
    width: 100%;
    opacity: 0.35;
  }
}

.tag {
  color: var(--white);
}

.industry-photo .industry-photo__tag {
  margin: 0 0 var(--space-3);
}

.insight-card__image + .tag + .insight-card__body {
  padding-top: var(--space-5);
}

.industry-card--mist .arrow-link {
  color: var(--accent-ink);
}

.industry-card--cyan .arrow-link {
  color: var(--navy);
}

@media (max-width: 63.99rem) {
  .insights-section--dark .section__header {
    justify-content: flex-start;
    text-align: left;
  }
  .insights-section--dark .section__intro {
    margin-inline: 0;
  }
}

main > .chip-band {
  padding-top: var(--section-space) !important;
  padding-bottom: 0 !important;
  background: var(--white);
}
main > .chip-band p,
main > .chip-band .chips {
  margin-top: var(--space-4);
}

main > .chip-band .chip:not([aria-current=true]) {
  background: var(--tint-1);
}

main > .chip-band + .content-list {
  padding-top: var(--block-gap-lg);
}

.hero__tags {
  margin-top: var(--space-6);
}
.hero__tags li,
.hero__tags li:first-child {
  padding: 0.6875rem 1rem;
  border-radius: 8px;
  color: var(--navy);
  background: var(--tint-1);
}
@media (max-width: 63.99rem) {
  .hero__tags {
    margin-top: var(--space-5);
  }
}

.hero--article::after {
  background: linear-gradient(90deg, rgba(21, 12, 51, 0.8) 0%, rgba(21, 12, 51, 0) 100%);
}
@media (max-width: 63.99rem) {
  .hero--article::after {
    background: rgba(21, 12, 51, 0.6);
  }
}
@media (max-width: 63.99rem) {
  .hero--article {
    min-height: 0;
  }
}

@media (max-width: 47.99rem) {
  .article__band {
    padding-block: 3rem !important;
  }
}

.article .prose > p + p,
.article .prose > p + ul,
.article .prose > ul + p {
  margin-top: 0.625rem;
}

main > .article > .article__band:last-child:nth-child(n+3) {
  background: var(--tint-2);
}

.field :is(input, select),
.assessment .form__field :is(input, select) {
  min-height: 3.25rem;
}

.ticks {
  gap: 0.625rem;
}
.ticks li {
  gap: 0.875rem;
  align-items: flex-start;
  font-size: var(--text-button);
  font-weight: 700;
}
.ticks li > .icon {
  margin-top: 0.1875rem;
}

@media (min-width: 64rem) {
  .split__image:not(.split__image--illustration) {
    border-radius: var(--radius-panel);
  }
}

@media (min-width: 64rem) {
  .split--image-right {
    column-gap: 6.5rem;
  }
}

.split__text .actions {
  margin-top: 0;
}
.split__text .actions .text-link {
  font-size: var(--text-button);
  color: var(--magenta);
}

.heading-accent {
  color: var(--accent);
}

@media (min-width: 64rem) {
  .split:has(.split__ticks-heading) {
    align-items: start;
  }
}
.split:has(.split__ticks-heading) .split__ticks-heading {
  margin: var(--space-5) 0 0;
}
.split:has(.split__ticks-heading) .actions {
  margin-top: var(--space-5);
}

@media (max-width: 63.99rem) {
  main > section > .split,
  .split-list__card:not(.split-list__card--inset) > .split {
    row-gap: var(--section-space);
  }
  main > section > .split .split__image:not(.split__image--illustration),
  .split-list__card:not(.split-list__card--inset) .split__image {
    width: calc(100% + 2 * var(--gutter));
    max-width: none;
    height: 25rem;
    margin-inline: calc(-1 * var(--gutter));
    border-radius: 0;
  }
}
main > section.steps-section + section.split-list {
  padding-top: var(--space-5);
}

.text-section__body {
  margin-top: var(--space-6);
}

@media (max-width: 63.99rem) {
  main > .section--dark {
    padding-block: 6rem;
  }
}

@media (min-width: 64rem) {
  .text-section--statement,
  .testimonial-quote {
    padding-block: 7.5rem;
  }
}

.testimonial-quote > .eyebrow {
  margin-bottom: var(--space-3);
}

@media (min-width: 64rem) {
  .steps-section:has(.section__split-heading > .actions) h2 {
    font-size: var(--text-h1);
  }
}
@media (min-width: 64rem) {
  .steps-section:has(.section__split-heading > .actions) .section__split-heading {
    align-items: end;
  }
}
@media (max-width: 63.99rem) {
  .steps-section:has(.section__split-heading > .actions) {
    display: flex;
    flex-direction: column;
  }
  .steps-section:has(.section__split-heading > .actions) .section__split-heading {
    display: contents;
  }
  .steps-section:has(.section__split-heading > .actions) .section__split-heading > .actions {
    order: 1;
    margin-top: var(--space-5);
  }
  .steps-section:has(.section__split-heading > .actions) .steps {
    gap: var(--space-3);
  }
  .steps-section:has(.section__split-heading > .actions) .actions .button {
    width: 100%;
  }
}

.step__number {
  line-height: 1;
}

.steps-section--compact .section__split-heading {
  grid-template-columns: none;
  row-gap: var(--space-4);
}
.steps-section--compact .section__split-heading > p {
  font-size: var(--text-lead);
}
@media (min-width: 64rem) {
  .steps-section--compact .section__split-heading {
    row-gap: var(--space-6);
  }
}
.steps-section--compact .steps {
  gap: var(--space-2);
  margin-top: var(--space-4);
}
@media (min-width: 64rem) {
  .steps-section--compact .steps {
    gap: var(--space-4);
    margin-top: var(--space-6);
  }
}
.steps-section--compact .step {
  gap: 1.25rem;
  padding: 2rem 1.5rem;
  border-radius: 0.75rem;
}
@media (min-width: 48rem) {
  .steps-section--compact .step {
    padding: 2rem;
  }
}
.steps-section--compact .step__number {
  font-size: var(--text-h4);
  letter-spacing: var(--tracking-card);
}
.steps-section--compact .step h3 {
  font-size: var(--text-h4);
}

.icon-card__icon {
  display: flex;
  line-height: 1;
}

.icon-card:has(> .icon-card__icon) h3 {
  font-size: var(--text-h5);
}

@media (min-width: 64rem) {
  .icon-cards-section.section--dark:not(.icon-cards-section--panel) .icon-cards {
    margin-top: var(--space-6);
  }
}

@media (max-width: 47.99rem) {
  .icon-cards {
    gap: var(--space-2);
  }
  .icon-card:has(> .icon-card__icon) {
    padding: var(--space-5) var(--space-4);
  }
}
.icon-cards-section--panel {
  padding-top: 6rem;
}
@media (min-width: 64rem) {
  .icon-cards-section--panel {
    padding-top: 7.5rem;
  }
}
.icon-cards-section--panel .icon-cards-panel h2 {
  font-size: max(2rem, var(--text-h2));
}

.icon-cards-section:has(.icon-card--photo) .icon-cards {
  gap: var(--space-3);
}
@media (min-width: 64rem) {
  .icon-cards-section:has(.icon-card--photo) .icon-cards {
    gap: var(--space-6);
    margin-top: 4.5rem;
  }
}
.icon-cards-section:has(.icon-card--photo) .icon-card {
  gap: var(--space-6);
}
@media (min-width: 64rem) {
  .icon-cards-section:has(.icon-card--photo) .icon-card {
    min-height: 24rem;
    padding: var(--space-6);
  }
  .icon-cards-section:has(.icon-card--photo) .icon-card h3 {
    font-size: var(--text-h3);
    letter-spacing: var(--tracking-display);
  }
}
.icon-cards-section:has(.icon-card--photo) .icon-card > .eyebrow {
  margin-bottom: calc(var(--space-3) - var(--space-6));
}
@media (min-width: 64rem) {
  .icon-cards-section:has(.icon-card--photo) .icon-card:not(:has(> .eyebrow)) {
    padding-top: 4.125rem;
    padding-bottom: 3.625rem;
  }
}
.icon-cards-section:has(.icon-card--photo) .icon-card:not(.icon-card--photo) .arrow-link {
  color: var(--navy);
}
@media (max-width: 39.99rem) {
  .icon-cards-section:has(.icon-card--photo) .icon-card__action.button {
    padding-inline: var(--space-3);
  }
}

@media (min-width: 64rem) {
  .banner__mark {
    right: -2.875rem;
  }
}
@media (max-width: 63.99rem) {
  .banner__mark {
    top: auto;
    right: -3.75rem;
    bottom: -4.5rem;
    width: 17.125rem;
    opacity: 1;
    transform: none;
  }
}

.industry-card__icon {
  line-height: 1;
}

@media (max-width: 63.99rem) {
  .industries-section {
    display: flex;
    flex-direction: column;
  }
  .industries-section .section__header {
    display: contents;
  }
  .industries-section .section__header > .actions {
    order: 1;
    flex-direction: column-reverse;
    align-items: stretch;
    margin-top: var(--space-5);
    text-align: center;
  }
  .industries-section .industry-card {
    padding: var(--space-4) var(--space-3);
  }
  .industries-section .industry-card h3 {
    font-size: var(--text-h6);
  }
}

@media (max-width: 47.99rem) {
  .insight-card__body {
    padding: var(--space-4) var(--space-3);
  }
}

@media (min-width: 64rem) {
  .faq-split__grid {
    align-items: center;
  }
}

.faq-split__intro {
  gap: var(--space-6);
}
.faq-split__intro .eyebrow {
  margin-bottom: var(--space-3);
}

.faq-split__action {
  margin-top: var(--space-2);
}

.faq-card summary {
  padding: 1.25rem 1.5rem;
  line-height: 1.2;
}
.faq-card[open] summary {
  padding-bottom: var(--space-3);
}
.faq-card p {
  padding: 0 1.5rem 1.5rem;
}
@media (max-width: 63.99rem) {
  .faq-card summary {
    font-family: var(--font-body);
    font-size: var(--text-button);
    font-weight: 700;
  }
  .faq-card summary,
  .faq-card p {
    padding-inline: var(--space-3);
  }
}

@media (max-width: 39.99rem) {
  .faq-split__action .button {
    width: 100%;
  }
}
.team-section .section__intro {
  max-width: 50rem;
}

.team-card {
  gap: var(--space-3);
}
.team-card > p:has(+ .team-card__action) {
  margin-bottom: var(--space-2);
}

.team-card__avatar img:not(.team-card__mark) {
  aspect-ratio: 1;
}

@media (max-width: 47.99rem) {
  .team {
    gap: var(--space-2);
  }
  .team-card {
    display: grid;
    grid-template-columns: 5rem 1fr;
    column-gap: var(--space-4);
    row-gap: var(--space-3);
    align-items: center;
  }
  .team-card > * {
    grid-column: 1/-1;
  }
  .team-card > .team-card__avatar {
    grid-column: 1;
    grid-row: 1/span 2;
  }
  .team-card > h3 {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    margin-top: 0;
  }
  .team-card > .team-card__role {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
  }
}
.document__column > :first-child {
  margin-top: 0;
}
.document__column h2 {
  margin-top: var(--space-5);
}
@media (min-width: 64rem) {
  .document__column h2 {
    margin-top: var(--space-7);
  }
}
.document__column h2 + * {
  margin-top: var(--space-6);
}

@media (max-width: 63.99rem) {
  main > .document {
    padding-block: 3rem;
  }
}
.hero__lead + .hero__note,
.hero__note {
  margin-top: 0.625rem;
  font-family: var(--font-body);
  font-size: var(--text-lead);
  font-weight: 400;
}
.hero__lead + .hero__note a,
.hero__note a {
  font-family: var(--font-heading);
  font-size: var(--text-button);
  font-weight: 600;
}

main > .hero:last-child {
  padding-bottom: calc(var(--section-space) + var(--sheet-radius)) !important;
}

main:has(> .hero:last-child) + .site-footer {
  margin-top: calc(-1 * var(--sheet-radius));
}
