/* Connected Planning Topic Landscape. Detail Centre renderers remain separate. */
body[data-page="topic-directory-review-candidate"] { background: #071e26; }

.ob-topic-directory {
  --directory-role-a-size: clamp(2.3rem, 2.6vw, 3rem);
  --directory-role-a-weight: 680;
  --directory-role-b-size: clamp(1.6rem, 1.75vw, 2.05rem);
  --directory-role-b-weight: 670;
  --directory-role-c-size: clamp(1.08rem, 1.18vw, 1.32rem);
  --directory-role-c-weight: 660;
  --directory-role-d-size: 1rem;
  --directory-role-d-line-height: 1.58;
  --directory-context-title-size: 1.05rem;
  --directory-context-body-size: 1rem;
  --directory-context-scroll-offset: 88px;
  --directory-landscape-height: clamp(760px, 58vw, 820px);
  background:
    radial-gradient(circle at 15% 32%, rgba(82, 154, 146, .16), transparent 31rem),
    radial-gradient(circle at 82% 58%, rgba(118, 111, 80, .12), transparent 35rem),
    linear-gradient(145deg, #0d3035 0%, #071d25 58%, #0a292d 100%);
  color: #edf6f3;
  overflow: hidden;
}
.ob-topic-directory__inner { margin: 0; width: 100%; }
.ob-topic-directory [hidden] { display: none !important; }

/* The title, territories, and context dock occupy one shared planning field. */
.ob-topic-landscape {
  --directory-context-entry-offset: 0px;
  --directory-context-flow-reserve: 0px;
  background:
    linear-gradient(105deg, rgba(15, 57, 61, .42), transparent 53%),
    #081f27;
  border-bottom: 1px solid rgba(181, 215, 206, .15);
  border-top: 1px solid rgba(181, 215, 206, .13);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .34fr);
  grid-template-rows: var(--directory-landscape-height);
  isolation: isolate;
  min-height: var(--directory-landscape-height);
  padding: 0 var(--ob-topic-page-inset) calc(clamp(72px, 7vw, 104px) + var(--directory-context-flow-reserve));
  position: relative;
}
.ob-topic-directory__masthead {
  align-self: start;
  display: grid;
  gap: 14px clamp(28px, 3.5vw, 56px);
  grid-column: 1;
  grid-row: 1;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  padding: clamp(36px, 3.8vw, 56px) clamp(32px, 3.6vw, 54px) 0;
  pointer-events: none;
  position: relative;
  z-index: 5;
}
.ob-topic-directory__eyebrow {
  color: #75d3c3;
  font-size: .75rem;
  font-weight: 800;
  grid-column: 1 / -1;
  letter-spacing: .15em;
  margin: 0;
  text-transform: uppercase;
}
.ob-topic-directory h1 {
  color: #f6f1e6;
  font-family: var(--font-heading);
  font-size: var(--directory-role-a-size);
  font-weight: var(--directory-role-a-weight);
  grid-column: 1 / -1;
  grid-row: 2;
  letter-spacing: -.038em;
  line-height: 1.08;
  margin: 0;
  max-width: none;
  text-wrap: balance;
}
.ob-topic-directory__intro {
  align-self: end;
  color: #c7d8d4;
  font-size: var(--directory-context-body-size);
  grid-column: 1;
  grid-row: 3;
  line-height: var(--directory-role-d-line-height);
  margin: 0;
  max-width: 49ch;
}
.ob-topic-directory__boundary {
  border-left: 2px solid #74cbbb;
  color: #9fb7b2;
  font-size: var(--directory-context-body-size);
  grid-column: 2;
  grid-row: 3;
  line-height: var(--directory-role-d-line-height);
  margin: 0;
  max-width: 54ch;
  padding-left: 16px;
}

.ob-topic-landscape__map {
  background:
    radial-gradient(ellipse at 23% 50%, rgba(79, 132, 127, .08), transparent 36%),
    radial-gradient(ellipse at 77% 62%, rgba(132, 111, 77, .07), transparent 38%),
    repeating-radial-gradient(ellipse at 48% 64%, transparent 0 68px, rgba(190, 218, 209, .025) 69px 70px);
  grid-column: 1;
  grid-row: 1;
  height: 100%;
  min-height: var(--directory-landscape-height);
  overflow: hidden;
  position: relative;
}
.ob-topic-landscape__map::before {
  background: linear-gradient(180deg, rgba(7, 30, 38, .9) 0, rgba(7, 30, 38, .52) 20%, transparent 34%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 3;
}
.ob-topic-landscape__spatial {
  height: 100%;
  inset: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 1;
}

/* Broad, layered passages replace graph wires. Width is qualitative, not a score. */
.ob-topic-corridor { opacity: .72; transition: opacity 180ms ease; }
.ob-topic-corridor__band,
.ob-topic-corridor__seam {
  fill: none;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}
.ob-topic-corridor__band { stroke: rgba(119, 193, 180, .13); stroke-width: 30; }
.ob-topic-corridor__seam { stroke: rgba(156, 210, 200, .52); stroke-width: 1.35; }
.ob-topic-corridor[data-topic-prominence="supporting"] .ob-topic-corridor__band { stroke: rgba(214, 183, 136, .15); }
.ob-topic-corridor[data-topic-prominence="supporting"] .ob-topic-corridor__seam { stroke: rgba(216, 185, 139, .65); stroke-dasharray: 5 8; }
.ob-topic-corridor.is-selected, .ob-topic-corridor.is-previewed { opacity: 1; }
.ob-topic-corridor.is-receded { opacity: .24; }
.ob-topic-corridor:is(.is-selected,.is-previewed) .ob-topic-corridor__band { stroke: rgba(255, 200, 87, .24); stroke-width: 32; }
.ob-topic-corridor:is(.is-selected,.is-previewed) .ob-topic-corridor__seam { stroke: rgba(255, 226, 158, .92); stroke-width: 1.8; }

/* Each Topic owns a distinct, balanced field; field area has no quantitative meaning. */
.ob-topic-territory,
.ob-topic-context__panel {
  --topic-field: #184147;
  --topic-contour: #79aca3;
}
.ob-topic-territory {
  opacity: .96;
  transition: filter 180ms ease, opacity 180ms ease;
}
.ob-topic-territory[data-topic-territory="retirement"], .ob-topic-context__panel[data-topic-context="retirement"] { --topic-field: #213e48; --topic-contour: #8ca7ad; }
.ob-topic-territory[data-topic-territory="tax"], .ob-topic-context__panel[data-topic-context="tax"] { --topic-field: #1c433e; --topic-contour: #82ada0; }
.ob-topic-territory[data-topic-territory="debt"], .ob-topic-context__panel[data-topic-context="debt"] { --topic-field: #263c43; --topic-contour: #9ca7a7; }
.ob-topic-territory[data-topic-territory="cash"], .ob-topic-context__panel[data-topic-context="cash"] { --topic-field: #194645; --topic-contour: #7eb7aa; }
.ob-topic-territory[data-topic-territory="investing"], .ob-topic-context__panel[data-topic-context="investing"] { --topic-field: #173d45; --topic-contour: #76aab0; }
.ob-topic-territory[data-topic-territory="insurance"], .ob-topic-context__panel[data-topic-context="insurance"] { --topic-field: #273c3e; --topic-contour: #aaa18d; }
.ob-topic-territory[data-topic-territory="estate"], .ob-topic-context__panel[data-topic-context="estate"] { --topic-field: #20433f; --topic-contour: #9eb09a; }
.ob-topic-territory[data-topic-territory="education"], .ob-topic-context__panel[data-topic-context="education"] { --topic-field: #1d3e49; --topic-contour: #8ca8b2; }
.ob-topic-territory__field {
  fill: var(--topic-field);
  stroke: color-mix(in srgb, var(--topic-contour) 58%, transparent);
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
}
.ob-topic-territory__contour {
  fill: none;
  opacity: .4;
  stroke: var(--topic-contour);
  stroke-linecap: round;
  stroke-width: 1.15;
  vector-effect: non-scaling-stroke;
}
.ob-topic-territory__contour--2 { opacity: .2; }
.ob-topic-territory:is(.is-selected,.is-previewed) { filter: drop-shadow(0 0 18px rgba(255, 200, 87, .2)); }
.ob-topic-territory:is(.is-selected,.is-previewed) .ob-topic-territory__field { stroke: #ffd77e; stroke-width: 2.4; }
.ob-topic-territory.is-connected .ob-topic-territory__field { stroke: #b4d8d0; stroke-width: 1.9; }
.ob-topic-territory.is-receded { opacity: .32; }

/* The semantic controls are label anchors embedded in fields, never cards. */
.ob-topic-node {
  background: transparent;
  border: 0;
  box-shadow: none;
  color: #f2f4ec;
  cursor: pointer;
  display: grid;
  gap: 3px;
  left: var(--topic-x);
  min-height: 74px;
  padding: 9px 12px 9px 26px;
  position: absolute;
  text-align: left;
  top: var(--topic-y);
  transform: translate(-50%, -50%);
  transition: opacity 160ms ease, transform 160ms ease;
  width: clamp(126px, 11.5vw, 174px);
  z-index: 4;
}
.ob-topic-node::before {
  border: 2px solid #e0cda7;
  border-radius: 50%;
  content: "";
  height: 9px;
  left: 7px;
  position: absolute;
  top: 31px;
  width: 9px;
}
.ob-topic-node:hover { transform: translate(-50%, calc(-50% - 2px)); }
.ob-topic-node:focus-visible { outline: 3px solid #ffc857; outline-offset: 3px; }
.ob-topic-node.is-selected { transform: translate(-50%, -50%); }
.ob-topic-node:is(.is-selected,.is-previewed)::before { background: #ffc857; border-color: #ffc857; box-shadow: 0 0 0 5px rgba(255, 200, 87, .16); }
.ob-topic-node.is-connected::before { border-color: #f4dfb7; }
.ob-topic-node.is-receded { opacity: .32; }
.ob-topic-node__number { color: #d3ba8e; font-family: var(--font-heading); font-size: .69rem; font-weight: 700; letter-spacing: .08em; }
.ob-topic-node__label { color: #f6f2e8; font-family: var(--font-heading); font-size: var(--directory-role-c-size); font-weight: var(--directory-role-c-weight); line-height: 1.08; text-wrap: balance; }
.ob-topic-node:is(.is-selected,.is-previewed) .ob-topic-node__label { color: #fff8e8; text-shadow: 0 2px 18px rgba(255, 216, 132, .3); }

/* The context function remains, but as a continuous recessed edge of the field. */
.ob-topic-context {
  background:
    linear-gradient(150deg, rgba(34, 77, 75, .55), transparent 45%),
    linear-gradient(180deg, #102e32, #091f27);
  border-left: 1px solid rgba(179, 212, 203, .2);
  color: #e8f1ee;
  display: flex;
  flex-direction: column;
  grid-column: 2;
  grid-row: 1;
  min-height: var(--directory-landscape-height);
  overflow: visible;
  padding: clamp(34px, 3.2vw, 54px) clamp(26px, 3.2vw, 48px);
  position: relative;
  transform: translateY(var(--directory-context-entry-offset));
  z-index: 6;
}
.ob-topic-context.is-selected { align-self: start; min-height: 0; }
.ob-topic-context__default, .ob-topic-context__panel { display: grid; gap: 17px; }
.ob-topic-context h2 { color: #f6f1e6; font-family: var(--font-heading); font-size: var(--directory-context-title-size); font-weight: var(--directory-role-c-weight); letter-spacing: -.025em; line-height: 1.12; margin: 0; }
.ob-topic-context__title-link { color: #91dfd1; display: inline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.ob-topic-context__title-link:focus-visible { outline: 3px solid #ffc857; outline-offset: 4px; }
.ob-topic-context p { color: #c3d4d0; font-size: var(--directory-context-body-size); line-height: var(--directory-role-d-line-height); margin: 0; }
.ob-topic-context__cta {
  align-items: center;
  align-self: start;
  background: color-mix(in srgb, var(--topic-contour) 20%, #071e26);
  border: 1px solid color-mix(in srgb, var(--topic-contour) 78%, #f6f1e6);
  border-radius: 7px;
  color: #f8fffd;
  display: inline-flex;
  font-family: var(--font-heading);
  font-size: .96rem;
  font-weight: 700;
  gap: .75rem;
  justify-content: space-between;
  line-height: 1.25;
  min-height: 44px;
  padding: 10px 14px;
  text-decoration: none;
}
.ob-topic-context__cta:hover { background: color-mix(in srgb, var(--topic-contour) 29%, #071e26); }
.ob-topic-context__cta:focus-visible { outline: 3px solid #ffc857; outline-offset: 4px; }
.ob-topic-context__cta > span:last-child { color: var(--topic-contour); }
.ob-topic-context__relationships-heading { color: #d8e5e1; font-family: var(--font-heading); font-size: .8rem; font-weight: 750; letter-spacing: .08em; line-height: 1.25; margin: 4px 0 -2px; text-transform: uppercase; }
.ob-topic-context__relationships { display: grid; gap: 9px; list-style: none; margin: 0; padding: 0; }
.ob-topic-context__relationships li { border-top: 1px solid rgba(182, 213, 205, .18); }
.ob-topic-context__relationship-link { border-radius: 5px; color: inherit; display: grid; gap: 4px; margin: 0 -6px; padding: 9px 6px 10px; text-decoration: none; }
.ob-topic-context__relationship-link:hover { background: rgba(205, 231, 224, .07); }
.ob-topic-context__relationship-link:focus-visible { background: rgba(205, 231, 224, .07); outline: 3px solid #ffc857; outline-offset: 2px; }
.ob-topic-context__relationship-title { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.ob-topic-context__relationships strong { color: #eef4f1; font-family: var(--font-heading); font-size: var(--directory-context-title-size); font-weight: var(--directory-role-c-weight); line-height: 1.2; }
.ob-topic-context__relationship-link strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ob-topic-context__relationship-copy { color: #a9bfba; font-size: var(--directory-context-body-size); line-height: var(--directory-role-d-line-height); }
.ob-topic-context__relationship-chevron { color: var(--topic-contour); flex: 0 0 auto; font-size: 1.25rem; line-height: 1; }
.ob-topic-context__clear { background: transparent; border: 0; color: #d8c69f; cursor: pointer; font: inherit; font-size: .84rem; margin-top: 20px; padding: 4px 0; text-align: left; text-decoration: underline; text-underline-offset: 4px; }
.ob-topic-context__clear:focus-visible { outline: 3px solid #ffc857; outline-offset: 4px; }
.ob-topic-explorer { display: none; }

.ob-topic-noscript, .ob-topic-print-directory, .ob-topic-print-explanation { display: none; }
.ob-topic-static-relationships { background: #f4edde; color: #173c38; }
.ob-topic-static-relationships h2 { font-family: var(--font-heading); font-size: 2.4rem; margin: 0 0 12px; }
.ob-topic-static-relationships > p { max-width: 68ch; }
.ob-topic-static-relationships ol { columns: 2; gap: 42px; padding-left: 1.4rem; }
.ob-topic-static-relationships li { break-inside: avoid; margin: 0 0 18px; padding-left: 6px; }
.ob-topic-static-relationships strong, .ob-topic-static-relationships span { display: block; }
.ob-topic-static-relationships span { color: #53655f; line-height: 1.5; margin-top: 5px; }
html.no-js .ob-topic-noscript,
html.no-js .ob-topic-static-relationships { background: #f4edde; color: #173c38; display: block; padding: 44px var(--ob-topic-page-inset); }
html.no-js .ob-topic-static-relationships { clip: auto; height: auto; margin: 0; overflow: visible; position: static; white-space: normal; width: auto; }
html.no-js .ob-topic-noscript h2,
html.no-js .ob-topic-static-relationships h2 { font-family: var(--font-heading); font-size: var(--directory-role-b-size); }
html.no-js .ob-topic-noscript ol { display: grid; gap: 24px; }
html.no-js .ob-topic-noscript li { break-inside: avoid; }
html.no-js .ob-topic-noscript h3,
html.no-js .ob-topic-noscript p { margin: 0 0 7px; }
html.no-js .ob-topic-explorer__toggle { display: none; }
html.no-js .ob-topic-explorer__details[hidden] { display: grid !important; }

html[lang="fr-CA"] .ob-topic-directory {
  --directory-role-a-size: clamp(1.95rem, 2.2vw, 2.55rem);
  --directory-role-a-weight: 620;
  --directory-role-b-size: clamp(1.5rem, 1.6vw, 1.85rem);
  --directory-role-b-weight: 630;
  --directory-role-c-size: clamp(1.02rem, 1.1vw, 1.24rem);
  --directory-role-c-weight: 630;
}
html[lang="fr-CA"] .ob-topic-directory__masthead {
  column-gap: clamp(24px, 2.4vw, 34px);
  grid-template-columns: minmax(300px, .66fr) minmax(430px, 1fr);
  padding-top: clamp(24px, 2vw, 30px);
  row-gap: 10px;
}
html[lang="fr-CA"] .ob-topic-directory h1 { max-width: 34ch; }
html[lang="fr-CA"] .ob-topic-directory__intro,
html[lang="fr-CA"] .ob-topic-directory__boundary { max-width: 62ch; }
html[lang="fr-CA"] .ob-topic-node__label { overflow-wrap: normal; }
html[lang="fr-CA"] .ob-topic-node[data-topic-select="housing"] { width: clamp(186px, 15vw, 216px); }
html[lang="zh-Hans"] .ob-topic-directory {
  --directory-role-a-size: clamp(1.85rem, 1.95vw, 2.25rem);
  --directory-role-a-weight: 560;
  --directory-role-b-size: clamp(1.4rem, 1.45vw, 1.68rem);
  --directory-role-b-weight: 580;
  --directory-role-c-size: clamp(1rem, 1.06vw, 1.2rem);
  --directory-role-c-weight: 580;
}
html[lang="zh-Hans"] .ob-topic-directory :is(.ob-topic-directory__eyebrow,.ob-topic-explorer__details h3) { letter-spacing: 0; }
html[lang="zh-Hans"] .ob-topic-context__relationships-heading { letter-spacing: 0; }
html[lang="zh-Hans"] .ob-topic-directory h1 { letter-spacing: 0; max-width: 12ch; }
html[lang="zh-Hans"] .ob-topic-node__label { font-weight: 600; }
html[lang="zh-Hans"] .ob-topic-context .ob-topic-context__relationships strong { font-weight: 620; }
html[lang="zh-Hans"] .ob-topic-node__label, html[lang="zh-Hans"] .ob-topic-context h2 { letter-spacing: 0; line-height: 1.18; }

/* Spatial mode is one continuous landscape plus adjacent context rail. */
@media (max-width: 1320px) and (min-width: 1090px) {
  .ob-topic-directory {
    --directory-role-c-size: clamp(.94rem, 1.12vw, 1.1rem);
    --directory-role-d-size: 1rem;
    --directory-landscape-height: 820px;
  }
  .ob-topic-landscape { grid-template-columns: minmax(0, 1fr) minmax(286px, .36fr); }
  .ob-topic-directory__masthead { gap: 12px 22px; grid-template-columns: minmax(0, .82fr) minmax(0, 1fr); padding: 28px 24px 0; }
  html[lang="fr-CA"] .ob-topic-directory__masthead { column-gap: 16px; grid-template-columns: minmax(0, .78fr) minmax(0, 1.12fr); padding-top: 22px; }
  html[lang="fr-CA"] .ob-topic-landscape__map::before {
    background: linear-gradient(180deg, rgba(7, 30, 38, .96) 0 32%, rgba(7, 30, 38, .62) 35%, transparent 39%);
  }
  .ob-topic-node { padding-left: 22px; padding-right: 6px; width: clamp(112px, 12.2vw, 150px); }
  html[lang="fr-CA"] .ob-topic-node[data-topic-select="housing"] { width: clamp(144px, 15vw, 180px); }
  .ob-topic-context { padding: 28px 22px; }
  .ob-topic-context__default, .ob-topic-context__panel { gap: 14px; }
  .ob-topic-context__relationships { gap: 7px; }
  .ob-topic-context__relationships li { padding-top: 7px; }
}

@media (max-width: 1089px) {
  .ob-topic-directory {
    --directory-role-a-size: 2.15rem;
    --directory-role-b-size: 1.34rem;
    --directory-role-c-size: 1.06rem;
    --directory-role-d-size: 1rem;
  }
  html[lang="fr-CA"] .ob-topic-directory {
    --directory-role-a-size: 2rem;
    --directory-role-b-size: 1.3rem;
    --directory-role-c-size: 1.03rem;
  }
  html[lang="zh-Hans"] .ob-topic-directory {
    --directory-role-a-size: 1.85rem;
    --directory-role-b-size: 1.25rem;
    --directory-role-c-size: 1rem;
  }
  .ob-topic-landscape { display: block; min-height: 0; padding: 0; }
  .ob-topic-directory__masthead { display: grid; gap: 14px; grid-template-columns: 1fr; padding: clamp(26px, 4vw, 38px) var(--ob-topic-page-inset) 28px; }
  html[lang="fr-CA"] .ob-topic-directory__masthead { grid-template-columns: 1fr; }
  .ob-topic-directory h1, .ob-topic-directory__intro, .ob-topic-directory__boundary { grid-column: 1; grid-row: auto; }
  .ob-topic-directory h1 { max-width: none; }
  html[lang="zh-Hans"] .ob-topic-directory h1 { max-width: 12ch; }
  .ob-topic-directory__intro, .ob-topic-directory__boundary { max-width: none; width: 100%; }
  html[lang="fr-CA"] .ob-topic-directory__intro,
  html[lang="fr-CA"] .ob-topic-directory__boundary { max-width: none; width: 100%; }
  .ob-topic-landscape__map, .ob-topic-context { display: none; }
  .ob-topic-explorer { display: block; padding: clamp(22px, 3vw, 30px) var(--ob-topic-page-inset) clamp(54px, 6vw, 72px); }
  .ob-topic-explorer > header { margin-bottom: 16px; max-width: 66ch; }
  .ob-topic-explorer h2 { font-family: var(--font-heading); font-size: var(--directory-role-b-size); font-weight: var(--directory-role-b-weight); line-height: 1.1; margin: 0 0 10px; }
  .ob-topic-explorer > header p { color: #b9cbc8; font-size: var(--directory-role-d-size); line-height: var(--directory-role-d-line-height); margin: 0; }
  .ob-topic-explorer__item { border-top: 1px solid rgba(185,203,200,.3); }
  .ob-topic-explorer__item:last-of-type { border-bottom: 1px solid rgba(185,203,200,.3); }
  .ob-topic-explorer__summary { align-items: center; display: grid; gap: 12px; grid-template-columns: minmax(0,1fr) minmax(92px,auto); padding: 14px 0 6px; }
  .ob-topic-explorer__route { align-items: center; color: inherit; display: grid; gap: 16px; grid-template-columns: 42px minmax(0,1fr); min-height: 52px; padding: 4px 8px 4px 0; text-decoration: none; }
  .ob-topic-explorer__route:focus-visible, .ob-topic-explorer__toggle:focus-visible { outline: 3px solid #ffc857; outline-offset: 4px; }
  .ob-topic-explorer__number { color: #d8b98b; font-family: var(--font-heading); font-weight: 700; }
  .ob-topic-explorer__identity strong { color: #91dfd1; display: block; font-family: var(--font-heading); font-size: var(--directory-role-c-size); font-weight: var(--directory-role-c-weight); line-height: 1.16; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
  .ob-topic-explorer__toggle { background: rgba(244,241,232,.04); border: 1px solid rgba(196,214,210,.48); color: #d7e4e1; cursor: pointer; font: inherit; min-height: 48px; min-width: 92px; padding: 10px 12px; }
  .ob-topic-explorer__toggle[aria-expanded="true"] { background: rgba(143,216,204,.12); border-color: #8fd8cc; }
  .ob-topic-explorer__control { font-size: .82rem; line-height: 1.25; text-decoration: underline; text-underline-offset: 4px; }
  .ob-topic-explorer__overview { color: #c7d8d4; display: grid; gap: 5px; margin-left: 58px; padding: 0 0 16px; }
  .ob-topic-explorer__overview p { font-size: var(--directory-role-d-size); line-height: 1.46; margin: 0; }
  .ob-topic-explorer__connections { color: #9fb7b2; }
  .ob-topic-explorer__connections strong { color: #c7d8d4; font-weight: 650; }
  .ob-topic-explorer__details { background: rgba(244,237,222,.97); color: #173c38; display: grid; gap: 9px; margin: 0 0 16px 58px; padding: clamp(20px, 3vw, 30px); }
  .ob-topic-explorer__details h3 { font-size: .78rem; letter-spacing: .08em; margin: 14px 0 0; text-transform: uppercase; }
  .ob-topic-explorer__details h3:first-child { margin-top: 0; }
  .ob-topic-explorer__details p, .ob-topic-explorer__details ul { font-size: var(--directory-role-d-size); line-height: var(--directory-role-d-line-height); margin: 0; }
  .ob-topic-explorer__relationships { display: grid; gap: 10px; list-style: none; padding: 0; }
  .ob-topic-explorer__relationships li { border-top: 1px solid #cdbfa5; display: grid; gap: 4px; padding-top: 9px; }
  .ob-topic-explorer__relationships span { color: #53655f; font-size: var(--directory-role-d-size); }
}

@media (max-width: 720px) {
  .ob-topic-directory__masthead { padding-top: 26px; }
  .ob-topic-directory h1, html[lang="fr-CA"] .ob-topic-directory h1 { max-width: none; }
  html[lang="zh-Hans"] .ob-topic-directory h1 { max-width: 12ch; }
  .ob-topic-directory__intro { font-size: 1rem; }
  .ob-topic-explorer__summary { gap: 10px; grid-template-columns: minmax(0,1fr) minmax(86px,auto); }
  .ob-topic-explorer__route { gap: 12px; grid-template-columns: 34px minmax(0,1fr); }
  .ob-topic-explorer__toggle { min-width: 86px; padding-inline: 9px; }
  .ob-topic-explorer__overview { margin-left: 46px; }
  .ob-topic-explorer__details { margin-left: 0; }
  .ob-topic-static-relationships ol { columns: 1; }
}

@media (max-width: 360px) {
  .ob-topic-explorer__summary { gap: 8px; grid-template-columns: minmax(0,1fr) 84px; }
  .ob-topic-explorer__route { gap: 10px; grid-template-columns: 32px minmax(0,1fr); }
  .ob-topic-explorer__toggle { min-width: 84px; padding-inline: 8px; }
  .ob-topic-explorer__overview { margin-left: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  .ob-topic-node, .ob-topic-territory, .ob-topic-corridor { transition: none; }
}

@media (forced-colors: active) {
  .ob-topic-territory__field { fill: Canvas; stroke: CanvasText; }
  .ob-topic-territory__contour, .ob-topic-corridor__seam { stroke: CanvasText; }
  .ob-topic-corridor__band { stroke: transparent; }
  .ob-topic-node, .ob-topic-context, .ob-topic-context :is(h2,p,strong,span,a,button) { color: CanvasText; }
  .ob-topic-node::before { border-color: CanvasText; }
}

@media print {
  body[data-page="topic-directory-review-candidate"] { background: #fff; }
  body[data-page="topic-directory-review-candidate"] :is(.site-header,.site-footer,.skip-link,.ob-topic-landscape__map,.ob-topic-context,.ob-topic-explorer,.ob-topic-noscript) { display: none !important; }
  .ob-topic-directory { background: #fff; color: #000; overflow: visible; }
  .ob-topic-landscape { background: #fff; border: 0; display: block; min-height: 0; padding: 0; }
  .ob-topic-directory__masthead { display: block; padding: 0 0 18pt; }
  .ob-topic-directory h1, .ob-topic-directory__intro, .ob-topic-directory__boundary { color: #000; margin-bottom: 8pt; }
  .ob-topic-directory__eyebrow { color: #000; margin-bottom: 8pt; }
  .ob-topic-directory__boundary { border-left-color: #000; }
  .ob-topic-print-directory { color: #000; display: block; padding: 18pt 0; }
  .ob-topic-print-directory h2 { font-family: var(--font-heading); }
  .ob-topic-print-directory ol { columns: 2; gap: 30pt; }
  .ob-topic-print-directory li { break-inside: avoid; margin-bottom: 14pt; }
  .ob-topic-print-directory h3, .ob-topic-print-directory p { margin: 0 0 5pt; }
  .ob-topic-static-relationships { background: #fff; clip: auto; color: #000; display: block !important; height: auto; margin: 0; overflow: visible; padding: 18pt 0; position: static; white-space: normal; width: auto; }
  .ob-topic-static-relationships ol { columns: 2; }
  .ob-topic-print-explanation { color: #000; display: block; margin: 12pt 0 0; }
}
