:root {
  --orf-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --orf-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  --orf-navy: #1e2a44;
  --orf-primary: #3b5ccc;
  --orf-accent: #4f7cff;
  --orf-page-bg: #f5f7fb;
  --orf-surface: #eef3ff;
  --orf-card: #fff;
  --orf-border: #d8deea;
  --orf-border-strong: color-mix(in srgb, var(--orf-border) 72%, var(--orf-navy));
  --orf-question-focus: color-mix(in srgb, var(--orf-surface) 90%, var(--orf-primary));
  --orf-muted: #667085;
  --orf-body: var(--orf-navy);
  --orf-heading: var(--orf-navy);
  --orf-heading-muted: var(--orf-navy);
  --orf-link: var(--orf-primary);
  --orf-key-stat: var(--orf-primary);
  --orf-card-accent: var(--orf-primary);
  --orf-shadow: 0 .12rem .45rem rgba(30, 42, 68, .055);
  --orf-shadow-hover: 0 .25rem .75rem rgba(30, 42, 68, .09);
}

[data-md-color-scheme="default"] {
  --md-default-bg-color: var(--orf-page-bg);
  --md-default-fg-color: var(--orf-body);
  --md-default-fg-color--light: var(--orf-muted);
  --md-default-fg-color--lightest: var(--orf-border);
  --md-typeset-color: var(--orf-body);
  --md-typeset-a-color: var(--orf-primary);
  --md-accent-fg-color: var(--orf-accent);
}

[data-md-color-scheme="slate"] {
  --orf-page-bg: #1e2a44;
  --orf-surface: rgba(79, 124, 255, .1);
  --orf-card: rgba(245, 247, 251, .04);
  --orf-border: rgba(216, 222, 234, .28);
  --orf-border-strong: rgba(216, 222, 234, .42);
  --orf-question-focus: rgba(79, 124, 255, .16);
  --orf-muted: #d8deea;
  --orf-body: #f5f7fb;
  --orf-heading: #f5f7fb;
  --orf-heading-muted: #eef3ff;
  --orf-link: #eef3ff;
  --orf-key-stat: #4f7cff;
  --orf-card-accent: #4f7cff;
  --orf-shadow: 0 .12rem .45rem rgba(0, 0, 0, .14);
  --orf-shadow-hover: 0 .25rem .75rem rgba(0, 0, 0, .2);
  --md-default-bg-color: var(--orf-page-bg);
  --md-default-fg-color: var(--orf-body);
  --md-default-fg-color--light: var(--orf-muted);
  --md-default-fg-color--lightest: var(--orf-border);
  --md-typeset-color: var(--orf-body);
  --md-typeset-a-color: var(--orf-link);
  --md-accent-fg-color: var(--orf-accent);
}

html,
body,
button,
input,
select,
textarea {
  font-family: var(--orf-font-sans);
}
body,
.md-main { background-color: var(--orf-page-bg); }
.md-header,
.md-tabs {
  background-color: var(--orf-card);
  color: var(--orf-heading);
}
.md-header { border-bottom: 1px solid var(--orf-border); }
.md-tabs { border-bottom: 1px solid var(--orf-border); }
.md-search__form { background-color: var(--orf-surface); }

/* Use one clear, restrained type hierarchy throughout the playbook. */
.md-header,
.md-tabs,
.md-nav,
.md-typeset {
  font-family: var(--orf-font-sans);
}
.md-header__title {
  font-size: .95rem;
  font-weight: 650;
  letter-spacing: -.01em;
}
.md-tabs__link {
  border-bottom: 2px solid transparent;
  font-size: .72rem;
  font-weight: 550;
  letter-spacing: .005em;
  opacity: .72;
}
.md-tabs__link:hover,
.md-tabs__link:focus { color: var(--orf-link); opacity: 1; }
.md-tabs__link--active {
  border-bottom-color: var(--orf-primary);
  color: var(--orf-link);
  opacity: 1;
}
.md-nav__title { font-weight: 650; }
.md-nav__link { line-height: 1.45; }
.md-nav__link--active {
  border-left: 2px solid var(--orf-primary);
  background-color: var(--orf-surface);
  color: var(--orf-link);
  font-weight: 600;
  padding-left: .5rem;
}
.md-typeset {
  color: var(--orf-body);
  font-size: .82rem;
  line-height: 1.65;
}
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  color: var(--orf-heading);
  font-weight: 650;
  letter-spacing: -.015em;
}
.md-typeset h1 {
  color: var(--orf-heading-muted);
  margin: 0 0 1.1rem;
  font-size: 1.8rem;
  line-height: 1.2;
}
.md-typeset h2 {
  margin: 1.8rem 0 .7rem;
  font-size: 1.35rem;
  line-height: 1.3;
}
.md-typeset h3 {
  margin: 1.4rem 0 .5rem;
  font-size: 1.05rem;
  line-height: 1.4;
}
.md-typeset h4 {
  margin: 1.1rem 0 .4rem;
  font-size: .9rem;
  line-height: 1.45;
}
.md-typeset .md-button {
  border-color: var(--orf-primary);
  color: var(--orf-link);
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: 0;
}
.md-typeset .md-button:hover,
.md-typeset .md-button:focus {
  border-color: var(--orf-accent);
  color: var(--orf-link);
}
.md-typeset .md-button--primary {
  border-color: var(--orf-primary);
  background-color: var(--orf-primary);
  color: #fff;
}
.md-typeset .md-button--primary:hover,
.md-typeset .md-button--primary:focus {
  border-color: var(--orf-accent);
  background-color: var(--orf-primary);
  color: #fff;
  box-shadow: 0 0 0 3px var(--orf-surface);
}
.md-typeset table:not([class]) {
  font-size: .76rem;
  line-height: 1.5;
}
.md-typeset table:not([class]) th {
  font-weight: 650;
}
.md-typeset figcaption,
.md-typeset .caption {
  color: var(--md-default-fg-color--light);
  font-size: .72rem;
  line-height: 1.5;
}
.md-typeset code,
.md-typeset kbd,
.md-typeset pre {
  font-family: var(--orf-font-mono);
}
.md-typeset .admonition-title,
.md-typeset summary {
  font-weight: 650;
}
.md-footer { font-family: var(--orf-font-sans); }

.md-typeset a:hover { color: var(--orf-link); text-decoration-color: var(--orf-accent); }
.md-typeset .grid.cards > ul > li { border-color: var(--orf-border); border-radius: 12px; border-top: 3px solid var(--orf-card-accent); background: var(--orf-card); box-shadow: var(--orf-shadow); }
.md-typeset .grid.cards > ul > li:hover { border-color: var(--orf-accent); box-shadow: var(--orf-shadow-hover); }
.orf-home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(22rem, .65fr);
  grid-template-areas:
    "title title"
    "lead stats"
    "copy actions";
  column-gap: 2.5rem;
  row-gap: .8rem;
  margin: .5rem 0 1.5rem;
  padding: 1.35rem 1.75rem;
  border: 1px solid var(--orf-border);
  border-radius: 16px;
  background: var(--orf-surface);
}
.orf-home-hero > * { min-width: 0; }
.orf-home-hero h1 {
  grid-area: title;
  margin: 0 0 .15rem;
  font-weight: 650;
  letter-spacing: -.02em;
}
.orf-home-lead {
  grid-area: lead;
  max-width: 52rem;
  margin: 0;
  font-size: 1.12rem;
  font-weight: 500;
  line-height: 1.45;
}
.orf-home-hero > p:not(.orf-home-lead) { grid-area: copy; margin: 0; }
.orf-home-stats {
  grid-area: stats;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
  margin: 0;
  align-self: end;
}
.orf-home-stats div { display: flex; align-items: baseline; gap: .45rem; }
.orf-home-stats strong { color: var(--orf-key-stat); font-size: 1.35rem; }
.orf-home-stats span { color: var(--md-default-fg-color--light); font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.orf-hero-actions { grid-area: actions; margin: 0; align-self: start; }
.orf-hero-actions > p { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.orf-hero-actions .md-button { min-width: 0; margin: 0; padding: .55em 1em; }

/* Align this introduction with card content without changing the card grid. */
.orf-home-hero + h2,
.orf-home-hero + h2 + p {
  padding-inline: 1rem;
}

/* Keep the homepage compact and centred while retaining the navigation tabs. */
body:has(.orf-home-hero) .md-sidebar--primary { display: none; }
body:has(.orf-home-hero) .md-main__inner {
  width: 100%;
  max-width: 64rem;
  margin-inline: auto;
}

/* Keep the repository action compact in the header, like the other controls. */
.md-header__source { width: auto; max-width: none; }
.md-header__source .md-source { width: auto; }
.md-header__source .md-source__repository { display: none; }
.md-header__source .md-source__icon { margin-inline-end: 0; }
.md-logo { width: auto; padding: 0 .35rem; }
.orf-govtech-logo-frame { display: block; position: relative; width: 5.7rem; height: 2.35rem; overflow: hidden; }
.orf-govtech-logo-frame--dark { display: none; }
.md-logo .orf-govtech-logo-frame img.orf-govtech-logo {
  display: block !important;
  position: absolute;
  top: -.47rem;
  left: -.43rem;
  width: 6.2rem;
  max-width: none;
  height: auto;
}
.md-logo .orf-govtech-logo-frame img.orf-govtech-logo--static {
  display: none !important;
}
.md-logo .orf-govtech-logo-frame img.orf-govtech-logo--animated {
  display: block !important;
}
@media (prefers-reduced-motion: reduce) {
  .md-logo .orf-govtech-logo-frame img.orf-govtech-logo--static { display: block !important; }
  .md-logo .orf-govtech-logo-frame img.orf-govtech-logo--animated { display: none !important; }
}
body[data-md-color-scheme="slate"] .orf-govtech-logo-frame--light { display: none; }
body[data-md-color-scheme="slate"] .orf-govtech-logo-frame--dark { display: block; }
/* Place the theme control immediately after the GitHub control. */
.md-header__inner > .md-header__source { order: 5; }
.md-header__inner > form[data-md-component="palette"] { order: 6; }

/* Keep the compact GitHub and theme actions visible on tablet-sized headers. */
@media screen and (min-width: 40em) {
  .md-header__inner > .md-header__source {
    display: block;
    width: auto;
    max-width: none;
    margin-inline-start: .25rem;
  }
  .md-header__inner > form[data-md-component="palette"] {
    display: flex;
    max-width: 100%;
    opacity: 1;
  }
}

.md-typeset .orf-journey-grid > ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.md-typeset .orf-journey-grid > ul > li {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 13rem;
  box-sizing: border-box;
  padding: 1rem;
  border: 1px solid var(--orf-border);
  border-top: 3px solid var(--orf-card-accent);
  border-radius: 12px;
  background: var(--orf-card);
  box-shadow: var(--orf-shadow);
  transition: border-color 125ms, box-shadow 125ms;
}
.md-typeset .orf-journey-grid > ul > li:hover {
  border-color: var(--orf-accent);
  box-shadow: var(--orf-shadow-hover);
}
.md-typeset .orf-journey-grid > ul > li > p { margin: .55rem 0 0; }
.md-typeset .orf-journey-grid > ul > li > p:last-child { margin-top: auto; padding-top: .7rem; }
.orf-journey-grid .md-button { padding: .55em .8em; }

.orf-home-lower {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
  gap: 1rem;
  margin: 2rem 0 1rem;
}
.orf-home-panel {
  padding: 1.2rem 1.35rem;
  border: 1px solid var(--orf-border);
  border-radius: 12px;
  background: var(--orf-card);
  box-shadow: var(--orf-shadow);
}
.orf-home-panel h2 {
  margin: 0 0 .65rem;
  font-size: 1.15rem;
}
.orf-outcomes {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
.orf-outcomes li {
  display: grid;
  gap: .1rem;
  margin: 0 !important;
  padding: .65rem 0;
  border-bottom: 1px solid var(--orf-border);
}
.orf-outcomes li:last-child { border-bottom: 0; }
.orf-outcomes span,
.orf-quick-links span {
  color: var(--md-default-fg-color--light);
  font-size: .78rem;
  line-height: 1.45;
}
.orf-quick-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}
.orf-quick-links a {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  min-width: 0;
  padding: .75rem .85rem;
  border: 1px solid var(--orf-border);
  border-radius: 9px;
  color: var(--md-default-fg-color);
  transition: border-color 125ms, background-color 125ms, transform 125ms;
}
.orf-quick-links a:hover {
  border-color: var(--orf-accent);
  background: var(--orf-surface);
  transform: translateY(-1px);
}
.orf-home-note {
  margin: 1rem 0 0 !important;
  padding: .8rem 1rem;
  border-left: 3px solid var(--orf-primary);
  background: var(--orf-surface);
  color: var(--md-default-fg-color--light);
  font-size: .82rem;
}
.md-typeset .md-typeset__table {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
}
.md-content,
.md-content__inner,
.md-typeset { min-width: 0; }
.md-main__inner {
  width: 100%;
  max-width: 61rem;
  margin-inline: auto;
}
.md-content { max-width: 100%; }
.md-content { overflow-x: hidden; }
.md-typeset h1,
.md-typeset h2 { overflow-wrap: anywhere; }
.md-typeset .md-typeset__scrollwrap {
  max-width: 100%;
  overflow-x: auto;
}
.md-typeset table:not([class]) {
  display: table;
  width: 100%;
  min-width: 100%;
  border: 1px solid var(--orf-border);
  overflow: visible;
}
.md-typeset table:not([class]) th {
  background: var(--orf-surface);
  white-space: normal;
  overflow-wrap: anywhere;
}
.md-typeset .orf-stage-table table th:first-child,
.md-typeset .orf-stage-table table td:first-child { white-space: nowrap; }
.md-typeset table:not([class]) td { vertical-align: top; }
.md-typeset table:not([class]) th,
.md-typeset table:not([class]) td { border-bottom-color: var(--orf-border); }
.md-typeset table:not([class]) td strong:first-child { line-height: 1.35; }
.md-typeset img[src*="assets/diagrams/"] { display: block; width: 100%; margin: 1.5rem auto; border: 1px solid var(--orf-border); border-radius: 14px; background: var(--orf-card); box-shadow: var(--orf-shadow); }

.md-typeset .admonition.info,
.md-typeset details.info { border-color: var(--orf-primary); }
.md-typeset .info > .admonition-title,
.md-typeset .info > summary { background-color: var(--orf-surface); }
.md-typeset .info > .admonition-title::before,
.md-typeset .info > summary::before { background-color: var(--orf-primary); }

/* FAQ / question admonitions */
.md-typeset .admonition.question,
.md-typeset details.question {
  border: 1px solid var(--orf-border);
  border-radius: 12px;
  background: var(--orf-card);
  box-shadow: var(--orf-shadow);
}

.md-typeset .question > .admonition-title,
.md-typeset .question > summary {
  background: var(--orf-surface);
  color: var(--orf-heading);
  font-weight: 650;
}

.md-typeset .question > .admonition-title::before,
.md-typeset .question > summary::before {
  background-color: var(--orf-primary);
}

.md-typeset .question > summary::after {
  color: var(--orf-primary);
}

.md-typeset .admonition.question:hover,
.md-typeset details.question:hover {
  border-color: var(--orf-border-strong);
  box-shadow: var(--orf-shadow-hover);
}

.md-typeset .admonition.question:focus-within,
.md-typeset details.question:focus-within {
  border-color: var(--orf-border);
  box-shadow: 0 0 0 .12rem var(--orf-question-focus), var(--orf-shadow);
}

.orf-faq-contact {
  margin: 1.5rem 0 0;
  padding-top: .75rem;
  border-top: 1px solid var(--orf-border);
  color: var(--orf-muted);
  font-size: .75rem;
  line-height: 1.5;
}
.md-typeset .orf-faq-contact h3 {
  margin: 0 0 .2rem;
  color: var(--orf-heading);
  font-size: .88rem;
  line-height: 1.4;
}
.orf-faq-contact p { margin: 0; }

:focus-visible { outline: 3px solid var(--orf-accent); outline-offset: 2px; }

@media screen and (max-width: 54em) {
  .orf-home-hero {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "lead" "copy" "stats" "actions";
  }
  .orf-home-lower { grid-template-columns: 1fr; }
}

@media screen and (max-width: 60em) {
  .md-typeset .orf-journey-grid > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md-typeset .orf-journey-grid > ul > li { height: auto; min-height: 13rem; }
}

@media screen and (max-width: 44.984375em) {
  .md-typeset { font-size: .8rem; }
  .md-typeset h1 { font-size: 1.55rem; }
  .md-typeset h2 { font-size: 1.2rem; }
  .md-typeset h3 { font-size: 1rem; }
  .orf-home-hero + h2,
  .orf-home-hero + h2 + p { padding-inline: 0; }
  .orf-home-hero { padding: 1.25rem; border-radius: 12px; }
  .orf-home-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem 1rem; }
  .md-typeset .orf-journey-grid > ul,
  .orf-quick-links { grid-template-columns: 1fr; }
  .md-typeset .orf-journey-grid > ul > li { min-height: 0; }
  .orf-home-panel { padding: 1rem; }
}

@media screen and (max-width: 30em) {
  .orf-home-stats { grid-template-columns: 1fr; }
  .orf-hero-actions > p { display: grid; grid-template-columns: 1fr; }
  .orf-hero-actions .md-button { box-sizing: border-box; width: 100%; text-align: center; }
}

/* Limit line length and prevent the homepage from stretching on wide displays. */
.md-content__inner:has(.orf-home-hero) {
  width: auto;
  max-width: 60rem;
  margin-inline: auto;
}
