/* --------------------------------------------------------------
   Nucleus platform design tokens (enterprise navy system)
   Source of truth for hex values: Server.UI/Themes/Theme.cs (PlatformNavy*)
   Prefixed --nx-* to avoid colliding with MudBlazor / tenant vars.
   Stages 1–8: foundation through connected-twin reading skin.
   V3.5: flat navy (#304D6E), 3–4px radii, no resting shadow, overlay elevation only.
   Light ink and navy links do not apply under body.theme-dark / html.dark.
   Brief brand-* names map to --nx-brand-navy-* (no second prefix).
--------------------------------------------------------------- */

:root {
  /* Brand navy scale — V3.5 (--navy / --navy-deep / --navy-mid / --link) */
  --nx-brand-navy-950: #263F5C;
  --nx-brand-navy-900: #304D6E;
  --nx-brand-navy-800: #2A4663;
  --nx-brand-navy-700: #385C7B;
  --nx-brand-navy-600: #315F93;
  --nx-brand-navy-500: #4E7596;
  --nx-brand-navy-400: #7399B8;
  --nx-brand-navy-300: #9CBBD1;
  --nx-brand-navy-200: #D5E0E8;
  --nx-brand-navy-100: #E8EEF3;
  --nx-brand-navy-50: #F2F6F9;

  /* Neutral application surfaces — flat white canvas (light mode) */
  --nx-surface-canvas-start: #ffffff;
  --nx-surface-canvas-end: #ffffff;
  --nx-surface-page: #ffffff; /* flat fallback / Mud Background sync */
  --nx-surface-card: #FFFFFF;
  --nx-surface-primary: #ffffff;
  --nx-surface-secondary-start: #ffffff;
  --nx-surface-secondary-end: #f7f9fc;
  --nx-surface-subtle: #F8FAFC;
  --nx-surface-hover: #F8FAFC;
  --nx-surface-selected: #F2F6F9;
  /* Shared selection wash. 7% primary is a few shades lighter than the previous 12% row fill. */
  --nx-tint-selected: color-mix(in srgb, var(--mud-palette-primary) 7%, transparent);
  --nx-tint-selected-strong: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent);

  /* Typography — V3.5 ink. Dark mode remaps below. */
  --nx-text-heading: #182F45;
  --nx-text-primary: #263C51;
  --nx-text-secondary: #708394;
  --nx-text-muted: #708394;
  --nx-text-disabled: #A2ACB6;
  --nx-text-link: #315F93;

  /* Borders — V3.5 hairlines */
  --nx-border-default: #DFE7ED;
  --nx-border-subtle: #EDF1F5;
  --nx-border-muted: #E6EBEF;
  --nx-border-strong: #DFE7ED;
  --nx-border-hover: #C5D3DE;
  --nx-border-focus: #315F93;
  --nx-border-divider: #E6EBEF;

  /* Panel hierarchy (landing working panels vs side utility) */
  --nx-panel-border-primary: var(--nx-border-strong);
  --nx-panel-shadow-primary: var(--nx-shadow-panel);
  --nx-panel-border-secondary: var(--nx-border-subtle);
  --nx-panel-shadow-secondary: var(--nx-shadow-subtle);

  /* Icon tiles */
  --nx-icon-tile-bg: #E8EEF3;
  --nx-icon-tile-fg: #315F93;

  /* Semantic (status only — not decorative chrome) */
  --nx-semantic-info: #315F93;
  --nx-semantic-info-bg: #E8EEF3;
  --nx-semantic-success: #2B765E;
  --nx-semantic-success-bg: #E7F3EE;
  --nx-semantic-warning: #9B6620;
  --nx-semantic-warning-bg: #FFF2D9;
  --nx-semantic-danger: #B84444;
  --nx-semantic-danger-bg: #FBEAEA;

  /* Shape — V3.5: controls 3px, surfaces 4px. Badges use the control radius (not pills). */
  --nx-radius-panel: 4px;
  --nx-radius-card: 4px;
  --nx-radius-surface: 4px;
  --nx-radius-control: 3px;
  --nx-radius-icon: 3px;
  --nx-radius-pill: var(--nx-radius-control);
  --nx-radius-small: 3px;
  --nx-radius-medium: 4px;
  --nx-radius-large: 4px;

  /* Elevation — ordinary surfaces are flat. Overlays (dialogs, menus, popovers) use one shadow. */
  --nx-shadow-subtle: none;
  --nx-shadow-ambient: none;
  --nx-shadow-panel: none;
  --nx-shadow-hover: none;
  --nx-shadow-card: none;
  --nx-shadow-card-hover: none;
  --nx-shadow-overlay: 0 16px 40px rgba(18, 44, 65, 0.16);

  /* Brief aliases (layered surface brief) — prefer --nx-* in new CSS */
  --surface-canvas-start: var(--nx-surface-canvas-start);
  --surface-canvas-end: var(--nx-surface-canvas-end);
  --surface-primary: var(--nx-surface-primary);
  --surface-secondary-start: var(--nx-surface-secondary-start);
  --surface-secondary-end: var(--nx-surface-secondary-end);
  --border-subtle: var(--nx-border-subtle);
  --border-muted: var(--nx-border-muted);
  --radius-surface: var(--nx-radius-surface);
  --shadow-ambient: var(--nx-shadow-ambient);

  /* Spacing scale (Calibration Standard v1.0) */
  --nx-space-1: 4px;
  --nx-space-2: 8px;
  --nx-space-3: 12px;
  --nx-space-4: 16px;
  --nx-space-5: 20px;
  --nx-space-6: 24px;
  --nx-space-8: 32px;
  --nx-space-10: 40px;
  --nx-space-12: 48px;

  /* Semantic type roles — V4.7 compact grammar. rem roles vs html 16px. */
  --nx-font-micro: 10px;            /* Field labels, table headers, status badge */
  --nx-font-meta: 12px;             /* Purpose, metadata, table cells, record links */
  --nx-font-secondary: 12px;        /* Compact operational copy */
  --nx-font-desc: 11.5px;           /* Section description */
  --nx-font-body: 14px;             /* Primary Body — reading surfaces */
  --nx-font-emphasis: 0.875rem;     /* 14px — CardTitle / BodyEmphasis */
  --nx-font-section: 15px;          /* Section heading */
  --nx-font-page-title: 24px;       /* Index title */
  --nx-font-record-title: 27px;     /* Record title; 23px at <=680px */
  --nx-font-rail-heading: 12px;
  --nx-font-readiness: 23px;
  --nx-lh-body: 1.48;
  --nx-lh-tight: 1.25;
  --nx-lh-relaxed: 1.6;

  /* Control heights */
  --nx-control-height-compact: 32px;
  --nx-control-height-standard: 36px;
  --nx-control-height-comfort: 40px;

  /* Icon sizes */
  --nx-icon-sm: 16px;
  --nx-icon-md: 20px;
  --nx-icon-lg: 24px;
  --nx-icon-tile-size: 40px;

  /* Chrome — V3.5 shell (sidebar 228px, top bar 66px, page max 1660px) */
  --nx-chrome-header-height: 66px;
  --nx-nav-collapsed: 48px;
  --nx-nav-expanded: 228px;
  --nx-page-max-width: 1660px;

  /* Notion nav — same navy as primary buttons (PlatformNavy900). Dark mode remaps in menu CSS. */
  --nx-nav-logo-bg: #304D6E;
  --nx-nav-panel-bg: var(--nx-nav-logo-bg);
  --nx-nav-icon-inactive: #C5D4E0;
  --nx-nav-label-inactive: #E4ECF2;
  --nx-nav-section: #C5D4E0;
  --nx-nav-hint: #A7BED0;
  --nx-nav-active-bg: color-mix(in srgb, #ffffff 16%, #304D6E);
  --nx-nav-hover-bg: color-mix(in srgb, #ffffff 10%, #304D6E);
  --nx-nav-active-accent: #D5E4F0;
  --nx-nav-divider: rgba(255, 255, 255, 0.05);
  --nx-chrome-header-border: #E6EBEF;
  --nx-chrome-crumb-active: #263C51;
  --nx-chrome-crumb-inactive: #708394;
  --nx-chrome-icon: #708394;
  --nx-chrome-icon-hover: #263C51;

  /* One content inset for index and detail. */
  --nx-page-gutter-x: 30px;
  --nx-page-gutter-y-top: 22px;
  --nx-page-gutter-y-bottom: 72px;
  --nx-detail-column-gap: 28px;
  --nx-detail-rail-inset: 22px;

  /* Cards */
  --nx-card-padding-y: 16px;
  --nx-card-padding-x: 20px;
  --nx-card-padding-y-compact: 12px;
  --nx-card-padding-x-compact: 16px;

  /* Named drawers (Calibration Standard v1.0) */
  --nx-drawer-sm: 400px;
  --nx-drawer-md: 560px;
  --nx-drawer-lg: 720px;
  --nx-drawer-xl: 840px;

  /* Module icon tone variants (coordinated navy family) */
  --nx-icon-primary-bg: var(--nx-icon-tile-bg);
  --nx-icon-primary-fg: var(--nx-icon-tile-fg);
  --nx-icon-secondary-bg: #EEF2F5;
  --nx-icon-secondary-fg: #385C7B;
  --nx-icon-slate-bg: #EEF2F5;
  --nx-icon-slate-fg: #4B5F70;
  --nx-icon-teal-navy-bg: #E8F0F1;
  --nx-icon-teal-navy-fg: #366572;
}

/* Application canvas — structural cool white→blue-grey depth (light only) */
.nucleus-page {
  background: linear-gradient(
    180deg,
    var(--nx-surface-canvas-start) 0%,
    var(--nx-surface-canvas-end) 100%
  );
}

/* Secondary / context surface — rails, inspectors, utility panels */
.nucleus-context-panel {
  background: linear-gradient(
    180deg,
    var(--nx-surface-secondary-start) 0%,
    var(--nx-surface-secondary-end) 100%
  );
  border: 1px solid var(--nx-border-subtle);
  border-radius: var(--nx-radius-surface);
  box-shadow: var(--nx-shadow-ambient);
}

body.theme-dark .nucleus-context-panel,
html.dark .nucleus-context-panel {
  background: var(--mud-palette-surface);
  border-color: var(--mud-palette-lines-default);
  box-shadow: none;
}

body.theme-dark .nucleus-detail-side-panel--card,
html.dark .nucleus-detail-side-panel--card {
  background: var(--mud-palette-surface);
  border-color: var(--mud-palette-lines-default);
  box-shadow: none;
}

@media (max-width: 680px) {
  :root {
    --nx-font-record-title: 23px;
  }
}

@media (max-width: 760px) {
  :root {
    --nx-page-gutter-x: 16px;
    --nx-page-gutter-y-top: 14px;
    --nx-page-gutter-y-bottom: 46px;
    --nx-chrome-header-height: 56px;
  }
}

/* Page title role (replaces dual Typo.h4 + .home-greeting) */
.nx-page-title {
  font-size: var(--nx-font-page-title, 24px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em;
  color: var(--nx-text-heading, #182F45);
  margin: 0;
}

.nx-record-title {
  font-size: var(--nx-font-record-title, 27px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.65px !important;
  color: var(--nx-text-heading, #182F45);
}

/* Light navy ink and navy links are light-mode only. */
body.theme-dark,
html.dark {
  --nx-text-heading: #F3F5F7;
  --nx-text-primary: #F3F5F7;
  --nx-text-secondary: #B4BCC9;
  --nx-text-muted: #858F9F;
  --nx-text-link: #78A6FF;
  --nx-border-focus: #78A6FF;
}

/* ---------------------------------------------------------------------------
   Landing primitives only — do not wrap all operational content in cards.
   --------------------------------------------------------------------------- */

/* Hub / landing interactive tiles */
.nx-hub-card {
  background: var(--nx-surface-card);
  border: 1px solid var(--nx-border-default);
  border-radius: var(--nx-radius-card);
  box-shadow: none;
  transition:
    border-color 140ms ease,
    background-color 140ms ease;
}

.nx-hub-card.nx-hub-card--interactive {
  cursor: pointer;
}

.nx-hub-card.nx-hub-card--interactive:hover {
  border-color: var(--nx-border-hover);
  background: var(--nx-surface-hover);
  box-shadow: none;
}

.nx-hub-card.nx-hub-card--interactive:focus-visible {
  outline: 2px solid var(--nx-border-focus);
  outline-offset: 2px;
}

/* Section empty — dashed hairline. Do not use on filterable grid toolbars. */
.nx-empty-state {
  border: 1px dashed var(--nx-border-default);
  background: var(--nx-surface-subtle);
  border-radius: var(--nx-radius-panel);
  color: var(--nx-text-secondary);
  font-size: var(--nx-font-meta, 12px);
  padding: 28px 24px;
}

body.theme-dark .nx-empty-state,
html.dark .nx-empty-state {
  border-color: var(--mud-palette-divider);
  background: var(--mud-palette-background);
  color: var(--mud-palette-text-secondary);
}

@media (prefers-reduced-motion: reduce) {
  .nx-hub-card {
    transition: none;
  }
}

/* Working / utility panels (landings) */
.nx-panel {
  background: var(--nx-surface-card);
  border: 1px solid var(--nx-border-default);
  border-radius: var(--nx-radius-panel);
  box-shadow: none;
  box-sizing: border-box;
}

.nx-panel--primary {
  border-color: var(--nx-panel-border-primary);
  box-shadow: var(--nx-panel-shadow-primary);
}

.nx-panel--secondary {
  border-color: var(--nx-panel-border-secondary);
  box-shadow: var(--nx-panel-shadow-secondary);
}

/* Full-width list rows — not nested cards */
.nx-list-row {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  border: none;
  border-radius: var(--nx-radius-control);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  transition: background-color 120ms ease;
}

.nx-list-row:hover {
  background: var(--nx-surface-hover);
}

.nx-list-row:focus-visible {
  outline: 2px solid var(--nx-border-focus);
  outline-offset: 1px;
}

.nx-list-row--selected,
.nx-list-row.is-selected {
  background: var(--nx-surface-selected);
}

/* Module / list row icon tiles */
.nx-module-icon {
  width: var(--nx-icon-tile-size, 40px);
  height: var(--nx-icon-tile-size, 40px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--nx-radius-icon);
  background: var(--nx-brand-navy-100);
  color: var(--nx-brand-navy-600);
  flex-shrink: 0;
}

.nx-module-icon--sm {
  width: 2rem;
  height: 2rem;
}

.nx-module-icon--primary {
  background: var(--nx-icon-primary-bg);
  color: var(--nx-icon-primary-fg);
}

.nx-module-icon--secondary {
  background: var(--nx-icon-secondary-bg);
  color: var(--nx-icon-secondary-fg);
}

.nx-module-icon--slate {
  background: var(--nx-icon-slate-bg);
  color: var(--nx-icon-slate-fg);
}

.nx-module-icon--teal-navy {
  background: var(--nx-icon-teal-navy-bg);
  color: var(--nx-icon-teal-navy-fg);
}

.nx-module-icon--warning {
  background: var(--nx-semantic-warning-bg);
  color: var(--nx-semantic-warning);
}

.nx-module-icon--danger {
  background: var(--nx-semantic-danger-bg);
  color: var(--nx-semantic-danger);
}

/* ---------------------------------------------------------------------------
   Lists / grids — shared enterprise chrome (Stage 3)
   --------------------------------------------------------------------------- */

.mud-table-cell {
  padding-top: 11px;
  padding-bottom: 11px;
  border-bottom-color: #EAF0F5;
}

.module-datagrid .mud-table-head .mud-table-cell,
.modern-data-grid-wrapper .mud-table-head .mud-table-cell,
.mud-table-head .mud-table-cell {
  background: #F8FAFC !important;
  padding: 10px 11px;
  border-bottom-color: #EAF0F5 !important;
}

.module-datagrid .mud-table-row:hover .mud-table-cell,
.modern-data-grid-wrapper .mud-table-row:hover .mud-table-cell {
  background: var(--nx-surface-hover, var(--mud-palette-table-hover)) !important;
}

/* ---------------------------------------------------------------------------
   Entity / detail chrome (Stage 4) — token only, no layout redesign
   --------------------------------------------------------------------------- */

.entity-view-header-with-border {
  border-bottom: 1px solid var(--nx-border-subtle, var(--mud-palette-lines-default));
}

.entity-view-sidebar,
.module-aside-panel,
.nucleus-detail-side-panel {
  background: var(--nx-surface-card, var(--mud-palette-surface));
}

.nucleus-definition-section,
.entity-v2-detail-section,
.nucleus-definition-section {
  border-color: var(--nx-border-subtle, var(--mud-palette-lines-default));
}

/* Operating-model registers: one bordered table, optional category rail. */
.om-register .mud-table-container,
.om-register .mud-table-root {
  border: 1px solid var(--nx-border-default, var(--mud-palette-lines-default));
  border-radius: var(--nx-radius-surface, 4px);
  box-shadow: none;
  overflow: hidden;
}

.om-register__body {
  display: grid;
  grid-template-columns: 209px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.om-register__body:not(:has(.om-register__rail)) {
  grid-template-columns: minmax(0, 1fr);
}

.om-register__rail {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.om-register__rail-item {
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  color: var(--nx-text-primary, var(--mud-palette-text-primary));
  border-radius: var(--nx-radius-control, 3px);
  padding: 8px 10px;
  font-size: 14px;
  line-height: 1.35;
  cursor: pointer;
}

.om-register__rail-item:hover {
  background: var(--nx-surface-hover, #F8FAFC);
}

.om-register__rail-item.is-selected {
  background: var(--nx-surface-selected, #F2F6F9);
  color: var(--nx-text-heading, var(--mud-palette-text-primary));
}

.om-register__rail-item:focus-visible {
  outline: 2px solid var(--nx-border-focus, var(--mud-palette-primary));
  outline-offset: 1px;
}

.om-register__rail-fallback {
  display: none;
}

@media (max-width: 1200px) {
  .om-register__body {
    grid-template-columns: 185px minmax(0, 1fr);
  }
}

@media (max-width: 980px) {
  .om-register__body {
    grid-template-columns: minmax(0, 1fr);
  }

  .om-register__rail {
    display: none;
  }

  .om-register__rail-fallback {
    display: block;
  }
}

@media (max-width: 760px) {
  .om-register .mud-table-cell {
    white-space: normal;
  }
}

.organisation-page-shell__body:has(.business-hub-landing),
.organisation-page-shell__body:has(.om-catalogue-page) {
  padding: 0 !important;
}

.om-catalogue-host .module-index-header {
  display: none;
}

/* Record kicker — default title band and operating-model pages share one overline. */
.nx-kicker,
.om-record-kicker,
.nucleus-page-title-band__kicker {
  display: block;
  font-size: var(--nx-font-micro, 11px);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
  line-height: 1.35;
  color: var(--nx-text-secondary, #708394);
}

.nucleus-page-title-band__kicker {
  margin-bottom: 4px;
}

.nx-record-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0;
  margin-top: 0.35rem;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #708394;
}

.nx-record-meta > span {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: baseline;
  gap: 0.35rem;
  white-space: nowrap;
}

.nx-record-meta > span + span::before {
  content: "·";
  display: inline-block;
  flex: 0 0 auto;
  margin: 0 0.7rem;
  color: #9AABBA;
  font-weight: 400;
}

.nx-record-meta .mud-link {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}

.nx-rail-heading {
  display: block;
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
  color: #1B405C;
}

.nx-rail-score {
  font-size: var(--nx-font-readiness, 23px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: #244F70;
}

.nx-rail-score__denom {
  font-size: 12px;
  font-weight: 500;
  color: var(--nx-text-secondary, #708394);
}

.nx-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  border-radius: 2px;
  border: 1px solid #DFE7ED;
  background: #F4F7F9;
  color: #5E7384;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

.nx-status-badge--success {
  color: #2B765E;
  background: #EEF8F2;
  border-color: #CFE5D9;
}

.nx-status-badge--warning {
  color: #8A6230;
  background: #FBF6EE;
  border-color: #E6D7C0;
}

.nx-status-badge--danger {
  color: #8E3D3D;
  background: #FDF2F2;
  border-color: #E7D0D0;
}

.nx-text-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 2px 0;
  border: 0;
  background: none;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  color: #31658A;
  text-decoration: none;
}

.nx-text-action:hover {
  text-decoration: underline;
}

.nx-segment {
  border: 1px solid transparent;
  background: transparent;
  color: #74899A;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  padding: 5px 9px;
  border-radius: 3px;
  cursor: pointer;
}

.nx-segment.is-selected {
  background: #EDF4F8;
  border-color: #BDD2DF;
  color: #264F70;
}

.nx-drawer-title {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--nx-text-heading, #182F45);
}

.nx-record-editor .mud-input-label,
.entity-action-drawer .mud-input-label {
  font-size: 11px !important;
}

html body .nucleus-detail-rail-card__tabs:has(.nucleus-detail-edge-rail-rule),
html body .nucleus-detail-rail-card__tabs.nucleus-detail-edge-rail-header:has(.nucleus-detail-edge-rail-rule) {
  display: flex !important;
  align-items: stretch !important;
  min-height: 46px !important;
  height: 46px !important;
  max-height: 46px !important;
  padding: 0 !important;
  border-bottom: 1px solid #DFE7ED !important;
  box-sizing: border-box;
}

.nx-readiness-meter {
  height: 4px;
  margin: 8px 0 10px;
  background: #E8EEF3;
  border-radius: 2px;
  overflow: hidden;
}

.nx-readiness-meter > span {
  display: block;
  height: 100%;
  background: #3D728A;
}

.nx-record-link {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  color: #315F93;
}

.nx-field-value {
  display: block;
  margin: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--mud-palette-text-primary);
}

.nx-record-sub {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  color: #708394;
}

.nx-record-meta strong,
.nx-record-meta b {
  font-weight: 600;
  color: #36566F;
}

/* Control radius only. Type and colour come from Theme.cs. */
body:not(.theme-dark) .mud-button-root:not(.mud-icon-button) {
  border-radius: var(--nx-radius-control, 3px) !important;
  text-transform: none;
}

body:not(.theme-dark) .mud-chip {
  border-radius: 2px !important;
}

.entity-view-header .mud-chip,
.nucleus-page-title-band .mud-chip,
.nucleus-detail-header-chips .mud-chip,
.entity-view-header-status-chip {
  height: auto !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 7px !important;
  border-radius: 2px !important;
}

body:not(.theme-dark) .mud-input-outlined-border {
  border-radius: var(--nx-radius-control, 3px) !important;
}

/* Business Hub directory. Global so the grid is not trapped in a parent scope. */
.business-hub-link-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 18px;
  width: 100%;
}

.business-hub-landing__body--directory {
  display: block !important;
  grid-template-columns: none !important;
  width: 100%;
}

.business-hub-link-grid--model > :first-child {
  grid-column: 1 / -1;
}

.business-hub-group__title {
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--nx-border-divider, #E6EBEF);
  font-size: var(--nx-font-section, 0.9375rem);
  font-weight: 600;
  color: var(--nx-text-heading, #182F45);
}

.business-hub-group + .business-hub-group {
  margin-top: 22px;
}

@media (max-width: 850px) {
  .business-hub-link-grid {
    grid-template-columns: 1fr;
  }
}
