/* =========================================================
   ORSM — Editorial Theme v2
   Operational Resilience Security Model
   ========================================================= */

/* ---------------------------------------------------------
   Core palette
   --------------------------------------------------------- */

:root > * {
  --orsm-graphite: #20252b;
  --orsm-black: #111417;
  --orsm-red: #9f2f35;
  --orsm-grey: #d8dbde;
  --orsm-grey-dark: #687078;
  --orsm-offwhite: #f7f6f4;
  --orsm-white: #ffffff;

  --md-primary-fg-color: var(--orsm-graphite);
  --md-primary-fg-color--light: #3b434b;
  --md-primary-fg-color--dark: var(--orsm-black);

  --md-accent-fg-color: var(--orsm-red);
  --md-typeset-a-color: var(--orsm-red);

  --md-text-font: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --md-code-font: "Liberation Mono", "Courier New", monospace;
}

/* ---------------------------------------------------------
   Overall page feel
   --------------------------------------------------------- */

body {
  letter-spacing: -0.005em;
}

.md-grid {
  max-width: 1480px;
}

.md-main__inner {
  margin-top: 0;
}

.md-content__inner {
  padding-top: 2.5rem;
  padding-bottom: 5rem;
}

/* ---------------------------------------------------------
   Header
   --------------------------------------------------------- */

.md-header {
  background: var(--orsm-white);
  color: var(--orsm-graphite);
  box-shadow: none;
  border-bottom: 1px solid var(--orsm-grey);
}

.md-header__title {
  font-weight: 700;
  letter-spacing: -0.02em;
}

.md-header__button {
  color: var(--orsm-graphite);
}

.md-header__button.md-logo img,
.md-header__button.md-logo svg {
  height: 2rem;
}

/* ---------------------------------------------------------
   Tabs / nav
   --------------------------------------------------------- */

.md-tabs {
  background: var(--orsm-white);
  color: var(--orsm-graphite);
  border-bottom: 1px solid var(--orsm-grey);
}

.md-tabs__link {
  font-weight: 600;
  opacity: 0.75;
}

.md-tabs__link--active,
.md-tabs__link:hover {
  opacity: 1;
  color: var(--orsm-red);
}

.md-nav__title {
  font-weight: 700;
}

.md-nav__link {
  font-size: 0.92rem;
}

.md-nav__link--active {
  color: var(--orsm-red);
  font-weight: 700;
}

/* ---------------------------------------------------------
   Typography
   --------------------------------------------------------- */

.md-typeset {
  font-size: 0.79rem;
  line-height: 1.65;
}

.md-typeset h1 {
  font-size: clamp(2.4rem, 5vw, 4.7rem);
  line-height: 0.98;
  font-weight: 750;
  letter-spacing: -0.045em;
  color: var(--orsm-graphite);
  margin-bottom: 1.5rem;
}

.md-typeset h2 {
  font-size: clamp(1.55rem, 2.5vw, 2.35rem);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--orsm-graphite);
  margin-top: 4rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--orsm-grey);
}

.md-typeset h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--orsm-graphite);
  margin-top: 2.5rem;
}

.md-typeset p {
  max-width: 860px;
}

.md-typeset strong {
  color: var(--orsm-graphite);
}

/* ---------------------------------------------------------
   Links
   --------------------------------------------------------- */

.md-typeset a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

/* ---------------------------------------------------------
   Blockquotes / ORSM governing statements
   --------------------------------------------------------- */

.md-typeset blockquote {
  border-left: 0;
  border-top: 1px solid var(--orsm-grey);
  border-bottom: 1px solid var(--orsm-grey);
  margin: 3rem 0;
  padding: 1.6rem 0;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1.35;
  font-weight: 650;
  color: var(--orsm-graphite);
}

.orsm-statement {
  margin: 4rem 0;
  padding: 2.2rem 0;
  border-top: 3px solid var(--orsm-red);
  border-bottom: 1px solid var(--orsm-grey);
  font-size: clamp(1.35rem, 2.3vw, 2rem);
  line-height: 1.3;
  font-weight: 700;
  max-width: 1000px;
}

/* ---------------------------------------------------------
   Homepage
   --------------------------------------------------------- */

.orsm-hero {
  padding: 3rem 0 5rem 0;
  border-bottom: 1px solid var(--orsm-grey);
}

.orsm-kicker {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orsm-red);
  margin-bottom: 1.25rem;
}

.orsm-hero-title {
  max-width: 980px;
  font-size: clamp(3.2rem, 7vw, 6.7rem);
  line-height: 0.93;
  letter-spacing: -0.055em;
  font-weight: 760;
  color: var(--orsm-graphite);
  margin: 0 0 2rem 0;
}

.orsm-hero-copy {
  max-width: 760px;
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  line-height: 1.5;
  color: #505860;
}

.orsm-hero-rule {
  width: 115px;
  height: 4px;
  background: var(--orsm-red);
  margin: 2.5rem 0 0 0;
}

/* ---------------------------------------------------------
   Editorial split sections
   --------------------------------------------------------- */

.orsm-split {
  display: grid;
  grid-template-columns: minmax(170px, 0.7fr) minmax(0, 2.3fr);
  gap: 3rem;
  padding: 3.5rem 0;
  border-top: 1px solid var(--orsm-grey);
}

.orsm-split-label {
  font-size: 0.77rem;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--orsm-red);
}

.orsm-split-content {
  max-width: 900px;
}

/* ---------------------------------------------------------
   Domain grid
   --------------------------------------------------------- */

.orsm-domain-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--orsm-grey);
  border-left: 1px solid var(--orsm-grey);
  margin: 2rem 0 4rem 0;
}

.orsm-domain {
  padding: 1.8rem;
  border-right: 1px solid var(--orsm-grey);
  border-bottom: 1px solid var(--orsm-grey);
  background: var(--orsm-white);
}

.orsm-domain-number {
  display: block;
  color: var(--orsm-red);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
}

.orsm-domain-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--orsm-graphite);
  margin-bottom: 0.35rem;
}

.orsm-domain-copy {
  color: #5c646b;
  font-size: 0.9rem;
}

/* ---------------------------------------------------------
   Cards
   --------------------------------------------------------- */

.orsm-card {
  border: none;
  border-top: 3px solid var(--orsm-red);
  border-bottom: 1px solid var(--orsm-grey);
  border-radius: 0;
  padding: 1.5rem 0;
  margin: 2rem 0;
  background: transparent;
}

/* ---------------------------------------------------------
   Tables
   --------------------------------------------------------- */

.md-typeset table:not([class]) {
  border: 0;
  border-top: 2px solid var(--orsm-graphite);
  box-shadow: none;
}

.md-typeset table:not([class]) th {
  background: transparent;
  color: var(--orsm-graphite);
  font-weight: 700;
  border-bottom: 1px solid var(--orsm-grey);
}

.md-typeset table:not([class]) td {
  border-bottom: 1px solid #e7e8e9;
}

/* ---------------------------------------------------------
   Diagrams
   --------------------------------------------------------- */

.orsm-diagram {
  display: block;
  width: 100%;
  max-width: 1120px;
  margin: 3rem auto 4rem auto;
}

/* ---------------------------------------------------------
   Homepage logo treatment
   --------------------------------------------------------- */

.orsm-logo-home {
  display: none;
}

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */

.md-footer {
  background: var(--orsm-graphite);
  border-top: 4px solid var(--orsm-red);
}

.md-footer-meta {
  background: var(--orsm-black);
}

/* ---------------------------------------------------------
   Responsive layout
   --------------------------------------------------------- */

@media screen and (max-width: 900px) {
  .orsm-split {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .orsm-domain-grid {
    grid-template-columns: 1fr;
  }

  .orsm-hero {
    padding-top: 1rem;
  }
}

/* ---------------------------------------------------------
   Dark mode
   --------------------------------------------------------- */

[data-md-color-scheme="slate"] {
  --md-default-bg-color: #171a1e;
  --md-default-fg-color: #e6e8ea;
}

[data-md-color-scheme="slate"] .md-header,
[data-md-color-scheme="slate"] .md-tabs {
  background: #171a1e;
  color: #f1f1f1;
}

[data-md-color-scheme="slate"] .md-typeset h1,
[data-md-color-scheme="slate"] .md-typeset h2,
[data-md-color-scheme="slate"] .md-typeset h3,
[data-md-color-scheme="slate"] .orsm-domain-title,
[data-md-color-scheme="slate"] .orsm-hero-title {
  color: #f1f1f1;
}

[data-md-color-scheme="slate"] .orsm-domain {
  background: transparent;
}

/* =========================================================
   ORSM Typography & Contrast Fix
   ========================================================= */

/* Primary typography */

:root {
  --md-text-font: "Ubuntu Sans", "Ubuntu", "Roboto", "Segoe UI", Arial, sans-serif;
  --md-code-font: "Ubuntu Mono", "Roboto Mono", "Liberation Mono", monospace;
}

/* LIGHT MODE */

[data-md-color-scheme="default"] {
  --md-default-bg-color: #ffffff;
  --md-default-fg-color: #20252b;
  --md-default-fg-color--light: #505860;
  --md-default-fg-color--lighter: #687078;
}

[data-md-color-scheme="default"] .md-typeset,
[data-md-color-scheme="default"] .md-typeset p,
[data-md-color-scheme="default"] .md-typeset li {
  color: #30363c;
}

[data-md-color-scheme="default"] .md-typeset h1,
[data-md-color-scheme="default"] .md-typeset h2,
[data-md-color-scheme="default"] .md-typeset h3,
[data-md-color-scheme="default"] .md-typeset h4 {
  color: #20252b;
}

[data-md-color-scheme="default"] .orsm-hero-title,
[data-md-color-scheme="default"] .orsm-domain-title {
  color: #20252b;
}

[data-md-color-scheme="default"] .orsm-hero-copy,
[data-md-color-scheme="default"] .orsm-domain-copy {
  color: #505860;
}


/* DARK MODE */

[data-md-color-scheme="slate"] {
  --md-default-bg-color: #171a1e;
  --md-default-fg-color: #f1f2f3;
  --md-default-fg-color--light: #d3d6d8;
  --md-default-fg-color--lighter: #aeb4b9;
}

[data-md-color-scheme="slate"] .md-typeset,
[data-md-color-scheme="slate"] .md-typeset p,
[data-md-color-scheme="slate"] .md-typeset li {
  color: #e1e3e5;
}

[data-md-color-scheme="slate"] .md-typeset h1,
[data-md-color-scheme="slate"] .md-typeset h2,
[data-md-color-scheme="slate"] .md-typeset h3,
[data-md-color-scheme="slate"] .md-typeset h4,
[data-md-color-scheme="slate"] .orsm-hero-title,
[data-md-color-scheme="slate"] .orsm-domain-title {
  color: #ffffff;
}

[data-md-color-scheme="slate"] .orsm-hero-copy,
[data-md-color-scheme="slate"] .orsm-domain-copy {
  color: #d0d4d7;
}

[data-md-color-scheme="slate"] strong {
  color: #ffffff;
}


/* ORSM TYPOGRAPHIC CHARACTER */

.md-typeset h1,
.orsm-hero-title {
  font-family: "Ubuntu Sans", "Ubuntu", "Roboto", sans-serif;
  font-weight: 700;
}

.md-typeset h2,
.md-typeset h3,
.orsm-domain-title {
  font-family: "Ubuntu Sans", "Ubuntu", "Roboto", sans-serif;
  font-weight: 600;
}

body {
  font-family: "Ubuntu Sans", "Ubuntu", "Roboto", sans-serif;
}


/* =========================================================
   ORSM Typography & Contrast Fix
   ========================================================= */

/* Primary typography */

:root {
  --md-text-font: "Ubuntu Sans", "Ubuntu", "Roboto", "Segoe UI", Arial, sans-serif;
  --md-code-font: "Ubuntu Mono", "Roboto Mono", "Liberation Mono", monospace;
}

/* LIGHT MODE */

[data-md-color-scheme="default"] {
  --md-default-bg-color: #ffffff;
  --md-default-fg-color: #20252b;
  --md-default-fg-color--light: #505860;
  --md-default-fg-color--lighter: #687078;
}

[data-md-color-scheme="default"] .md-typeset,
[data-md-color-scheme="default"] .md-typeset p,
[data-md-color-scheme="default"] .md-typeset li {
  color: #30363c;
}

[data-md-color-scheme="default"] .md-typeset h1,
[data-md-color-scheme="default"] .md-typeset h2,
[data-md-color-scheme="default"] .md-typeset h3,
[data-md-color-scheme="default"] .md-typeset h4 {
  color: #20252b;
}

[data-md-color-scheme="default"] .orsm-hero-title,
[data-md-color-scheme="default"] .orsm-domain-title {
  color: #20252b;
}

[data-md-color-scheme="default"] .orsm-hero-copy,
[data-md-color-scheme="default"] .orsm-domain-copy {
  color: #505860;
}


/* DARK MODE */

[data-md-color-scheme="slate"] {
  --md-default-bg-color: #171a1e;
  --md-default-fg-color: #f1f2f3;
  --md-default-fg-color--light: #d3d6d8;
  --md-default-fg-color--lighter: #aeb4b9;
}

[data-md-color-scheme="slate"] .md-typeset,
[data-md-color-scheme="slate"] .md-typeset p,
[data-md-color-scheme="slate"] .md-typeset li {
  color: #e1e3e5;
}

[data-md-color-scheme="slate"] .md-typeset h1,
[data-md-color-scheme="slate"] .md-typeset h2,
[data-md-color-scheme="slate"] .md-typeset h3,
[data-md-color-scheme="slate"] .md-typeset h4,
[data-md-color-scheme="slate"] .orsm-hero-title,
[data-md-color-scheme="slate"] .orsm-domain-title {
  color: #ffffff;
}

[data-md-color-scheme="slate"] .orsm-hero-copy,
[data-md-color-scheme="slate"] .orsm-domain-copy {
  color: #d0d4d7;
}

[data-md-color-scheme="slate"] strong {
  color: #ffffff;
}


/* ORSM TYPOGRAPHIC CHARACTER */

.md-typeset h1,
.orsm-hero-title {
  font-family: "Ubuntu Sans", "Ubuntu", "Roboto", sans-serif;
  font-weight: 700;
}

.md-typeset h2,
.md-typeset h3,
.orsm-domain-title {
  font-family: "Ubuntu Sans", "Ubuntu", "Roboto", sans-serif;
  font-weight: 600;
}

body {
  font-family: "Ubuntu Sans", "Ubuntu", "Roboto", sans-serif;
}


/* =========================================================
   ORSM Hero refinement — quieter editorial treatment
   ========================================================= */

.orsm-hero {
  padding: 2.5rem 0 3.5rem 0;
}

.orsm-hero-title {
  max-width: 900px;

  /* Deliberately restrained editorial scale */
  font-size: clamp(2.4rem, 4.2vw, 4.1rem);

  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: 650;

  margin: 0 0 1.6rem 0;
}

.orsm-hero-copy {
  max-width: 720px;
  font-size: clamp(1rem, 1.35vw, 1.22rem);
  line-height: 1.55;
}

.orsm-kicker {
  font-size: 0.72rem;
  letter-spacing: 0.11em;
  margin-bottom: 1rem;
}

.orsm-hero-rule {
  width: 80px;
  height: 3px;
  margin-top: 2rem;
}

@media screen and (max-width: 700px) {
  .orsm-hero-title {
    font-size: 2.25rem;
    line-height: 1.05;
  }
}

/* =========================================================
   ORSM Table refinement
   ========================================================= */

/* Light mode tables */

[data-md-color-scheme="default"] .md-typeset table:not([class]) {
  border-top: 2px solid #20252b;
  background: #ffffff;
}

[data-md-color-scheme="default"] .md-typeset table:not([class]) th {
  background: #f3f4f4;
  color: #30363c;
  border-bottom: 1px solid #d9dcde;
  font-weight: 600;
}

[data-md-color-scheme="default"] .md-typeset table:not([class]) td {
  color: #596168;
  border-bottom: 1px solid #e6e8e9;
  background: #ffffff;
}

/* Very subtle alternating rows */

[data-md-color-scheme="default"] .md-typeset table:not([class]) tbody tr:nth-child(even) td {
  background: #fafafa;
}

/* Dark mode tables */

[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
  background: #252a2f;
  color: #f1f2f3;
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) td {
  color: #d7dade;
  background: #1b1f23;
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) tbody tr:nth-child(even) td {
  background: #20252a;
}



/* =========================================================
   ORSM Refined Editorial Typography
   ========================================================= */

/* Main page titles */

.md-typeset h1 {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: clamp(2rem, 3.2vw, 3.1rem);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

/* Homepage statement */

.orsm-hero-title {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: clamp(2.2rem, 3.6vw, 3.5rem);
  font-weight: 300;
  line-height: 1.06;
  letter-spacing: -0.03em;
  max-width: 850px;
}

/* Section headings */

.md-typeset h2 {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  font-weight: 500;
  letter-spacing: -0.015em;
}

/* Subheadings */

.md-typeset h3 {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
}

/* Small editorial labels */

.orsm-kicker,
.orsm-split-label {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-weight: 600;
  letter-spacing: 0.10em;
}

/* Mobile */

@media screen and (max-width: 700px) {

  .orsm-hero-title {
    font-size: 2rem;
  }

  .md-typeset h1 {
    font-size: 1.9rem;
  }

}

/* =========================================================
   ORSM Refined Content Spacing
   ========================================================= */

/* Normal paragraph rhythm */

.md-typeset p {
  margin-top: 0.65em;
  margin-bottom: 0.85em;
}

/* Lists should remain connected to surrounding text */

.md-typeset ul,
.md-typeset ol {
  margin-top: 0.6em;
  margin-bottom: 1em;
}

/* Reduce oversized gaps before major sections */

.md-typeset h2 {
  margin-top: 2.5rem;
  margin-bottom: 0.9rem;
  padding-top: 0.9rem;
}

/* Tighter H3 relationship with following content */

.md-typeset h3 {
  margin-top: 1.8rem;
  margin-bottom: 0.6rem;
}

/* Editorial homepage sections */

.orsm-split {
  padding-top: 2.4rem;
  padding-bottom: 2.4rem;
}

/* Keep hero spacious without wasting screen space */

.orsm-hero {
  padding-top: 2rem;
  padding-bottom: 2.75rem;
}

.orsm-hero-copy {
  margin-top: 1rem;
}

/* Governing statements */

.md-typeset blockquote {
  margin-top: 2rem;
  margin-bottom: 2rem;
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
}

/* Tables */

.md-typeset table:not([class]) {
  margin-top: 1.25rem;
  margin-bottom: 2rem;
}

/* Diagrams */

.orsm-diagram {
  margin-top: 2rem;
  margin-bottom: 2.5rem;
}

/* Less empty space at bottom of pages */

.md-content__inner {
  padding-bottom: 3rem;
}


/* =========================================================
   ORSM Refined Editorial Typography
   ========================================================= */

/* Main page titles */

.md-typeset h1 {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: clamp(2rem, 3.2vw, 3.1rem);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

/* Homepage statement */

.orsm-hero-title {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: clamp(2.2rem, 3.6vw, 3.5rem);
  font-weight: 300;
  line-height: 1.06;
  letter-spacing: -0.03em;
  max-width: 850px;
}

/* Section headings */

.md-typeset h2 {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  font-weight: 500;
  letter-spacing: -0.015em;
}

/* Subheadings */

.md-typeset h3 {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
}

/* Small editorial labels */

.orsm-kicker,
.orsm-split-label {
  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-weight: 600;
  letter-spacing: 0.10em;
}

/* Mobile */

@media screen and (max-width: 700px) {

  .orsm-hero-title {
    font-size: 2rem;
  }

  .md-typeset h1 {
    font-size: 1.9rem;
  }

}


/* =========================================================
   ORSM Homepage Actions
   Restrained editorial navigation
   ========================================================= */

.orsm-home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;

  margin-top: 1.6rem;
  margin-bottom: 0.8rem;
}


/* Shared button treatment */

.orsm-action {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;

  min-width: 170px;

  padding: 0.68rem 1rem;

  font-family: "Ubuntu Sans", "Ubuntu", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;

  letter-spacing: 0.01em;

  border-radius: 3px;

  text-decoration: none !important;

  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}


/* Arrow */

.orsm-action span {
  margin-left: 1rem;
  font-size: 1rem;
}


/* Primary */

.orsm-action-primary {
  background: #9f2f35;
  border: 1px solid #9f2f35;

  color: #ffffff !important;
}

.orsm-action-primary:hover {
  background: #84272c;
  border-color: #84272c;
}


/* Secondary */

.orsm-action-secondary {
  background: transparent;

  border: 1px solid #c9cdd0;

  color: #30363c !important;
}

.orsm-action-secondary:hover {
  border-color: #9f2f35;
  color: #9f2f35 !important;
}


/* Quiet In Practice route */

.orsm-practice-link {
  margin-top: 0.5rem !important;

  font-size: 0.86rem;
  color: #697077;
}

.orsm-practice-link a {
  font-weight: 600;
  color: #9f2f35;
  text-decoration: none;
}

.orsm-practice-link a:hover {
  text-decoration: underline;
}


/* Dark mode */

[data-md-color-scheme="slate"] .orsm-action-secondary {
  border-color: #555d64;
  color: #eceeef !important;
}

[data-md-color-scheme="slate"] .orsm-action-secondary:hover {
  border-color: #c85a60;
  color: #e07378 !important;
}

[data-md-color-scheme="slate"] .orsm-practice-link {
  color: #aeb4b9;
}


/* Mobile */

@media screen and (max-width: 600px) {

  .orsm-home-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .orsm-action {
    width: 100%;
  }

}

