:root {
  --navy-950: #070f1d;
  --navy-900: #0b1730;
  --navy-800: #12223f;
  --navy-700: #1a2f55;
  --cream: #f5f1ea;
  --cream-deep: #ece6da;
  --stone: #e7e1d5;
  --mist: #dce5ea;  /* Level 2 resource landing pages: mist blue-grey, nearer the navy than the earlier teal-grey (owner, 2026-11-01) */
  --ivory: #f6f4f0;
  --sheet: #fcfcfa;
  --slate: #303b43;
  --teal-deep: #092d32;
  --teal-bright: #4cc9bd;
  --paper: #ffffff;
  --ink: #0e1a2f;
  --ink-2: #3b4558;
  --ink-3: #6a7282;
  --rule: rgba(14, 26, 47, .12);
  --rule-strong: rgba(14, 26, 47, .22);
  --on-dark: #f4f1ea;
  --on-dark-2: rgba(244, 241, 234, .76);
  --on-dark-3: rgba(244, 241, 234, .52);
  --rule-dark: rgba(244, 241, 234, .14);
  --blue-200: #a9c2e8;
  --blue-400: #5b86c6;
  --blue-600: #2c568f;
  --brand-blue: #1889b4;
  --brand-teal: #0d9b96;
  --teal-ink: #0a7470;
  --teal-soft: #e3f3f1;
  --amber: #a86c12;
  --amber-soft: #f7ead2;
  --serif: "Source Serif 4", Georgia, serif;
  --sans: "Manrope", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --wrap: 1240px;
  --gutter: clamp(20px, 4vw, 48px);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font: 400 1rem/1.6 var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-weight: 400; }
ul, ol { margin: 0; padding: 0; list-style: none; }
figure { margin: 0; }

.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: #fff; color: var(--ink); padding: 8px 14px; }
.skip:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 3px; }

/* Type */
.h2 {
  font: 390 clamp(2.25rem, 3.7vw, 3.5rem)/1.06 var(--serif);
  letter-spacing: -.02em;
  text-wrap: balance;
}
.lede { font-size: 1.0625rem; line-height: 1.7; color: var(--ink-2); }
.on-dark .lede { color: var(--on-dark-2); }
.plan-note {
  display: inline-flex; align-items: center; gap: 8px;
  font: 600 .72rem/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase;
  color: var(--teal-ink);
}
.plan-note::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--brand-teal); flex: none; }
.on-dark .plan-note { color: #6fd0c9; }

/* Buttons and links */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  height: 52px; padding: 0 24px;
  font: 600 .9375rem/1 var(--sans);
  border-radius: 3px; border: 1px solid transparent;
  transition: background-color .2s, border-color .2s, color .2s;
  white-space: nowrap;
}
.btn svg, .text-link svg { width: 14px; height: 14px; transition: transform .25s var(--ease); }
.btn:hover svg, .text-link:hover svg { transform: translateX(3px); }
.btn--light { background: #fff; color: var(--ink); }
.btn--light:hover { background: var(--cream); }
.btn--ghost-light { border-color: rgba(244, 241, 234, .38); color: var(--on-dark); }
.btn--ghost-light:hover { border-color: var(--on-dark); background: rgba(255, 255, 255, .04); }
.btn--dark { background: var(--navy-900); color: #fff; }
.btn--dark:hover { background: var(--navy-700); }
.btn--ghost-dark { border-color: rgba(14, 26, 47, .32); color: var(--ink); }
.btn--ghost-dark:hover { border-color: var(--ink); background: rgba(14, 26, 47, .03); }
.btn--sm { height: 42px; padding: 0 18px; font-size: .875rem; }
.text-link { display: inline-flex; align-items: center; gap: 10px; font: 600 .9375rem/1 var(--sans); }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }

/* Navigation */
.nav { position: absolute; inset: 0 0 auto; z-index: 10; color: var(--on-dark); }
.nav__inner { display: flex; align-items: center; height: 88px; gap: 40px; }
.nav__logo { flex-shrink: 0; }
.nav__logo img { height: 40px; width: auto; }
.nav__links { display: flex; gap: 34px; margin: 0 auto; font: 500 .9375rem/1 var(--sans); }
.nav__links > a, .nav__trigger { color: var(--on-dark-2); transition: color .2s; padding: 8px 0; }
.nav__links > a:hover, .nav__trigger:hover, .nav__trigger[aria-expanded="true"] { color: var(--on-dark); }
.nav__item { position: relative; }
.nav__trigger { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; font: inherit; cursor: pointer; }
.nav__trigger svg { width: 11px; height: 11px; transition: transform .2s var(--ease); }
.nav__trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav__panel {
  display: none; position: absolute; top: calc(100% + 16px); left: 50%; transform: translateX(-50%); z-index: 20;
  width: 360px; padding: 10px; border-radius: 6px; background: #fff; color: var(--ink);
  box-shadow: 0 30px 70px -24px rgba(7, 15, 29, .55), 0 0 0 1px rgba(14, 26, 47, .06);
}
.nav__panel::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }
.nav__panel--wide { width: 680px; }
.nav__item.is-open .nav__panel { display: block; }
.menu-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.menu-label { padding: 12px 12px 6px; font: 600 .66rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.menu-list a { display: block; padding: 10px 12px; border-radius: 4px; color: var(--ink); transition: background-color .15s; }
.menu-list a:hover, .menu-list a:focus-visible { background: var(--cream); }
.menu-list strong { display: block; font: 600 .9375rem/1.3 var(--sans); }
.menu-list span { display: block; margin-top: 3px; font-size: .8125rem; line-height: 1.45; color: var(--ink-3); }
.menu-list--plain a { font: 500 .9375rem/1.3 var(--sans); }
.menu-list a[aria-current="page"] strong { color: var(--teal-ink); }
.nav__actions { display: flex; align-items: center; gap: 26px; font: 500 .9375rem/1 var(--sans); }
.nav__actions .login { color: var(--on-dark-2); }
.nav__actions .login:hover { color: var(--on-dark); }
.nav__toggle { display: none; background: none; border: 1px solid var(--rule-dark); color: var(--on-dark); height: 40px; padding: 0 14px; border-radius: 3px; font: 600 .875rem/1 var(--sans); cursor: pointer; }

/* Hero */
.hero {
  position: relative; overflow: hidden;
  background: radial-gradient(120% 90% at 85% 40%, #12264a 0%, var(--navy-900) 55%) var(--navy-900);
  color: var(--on-dark);
  min-height: min(100svh, 1000px);
  display: flex; align-items: center;
  /* One headline size for every hero (owner, 2026-11-01): home, solutions, platform and pricing.
     Heroes don't set their own */
  --hero-title: clamp(2.75rem, 4.6vw, 4.5rem);
}
.hero__art { position: absolute; top: 0; right: 0; height: 100%; width: min(52vw, 940px); z-index: 1; pointer-events: none; }
.hero__art svg { width: 100%; height: 100%; }
.hero__inner { position: relative; z-index: 2; padding-top: 150px; padding-bottom: 120px; }
.hero__title {
  font: 380 var(--hero-title)/1.02 var(--serif);
  letter-spacing: -.02em;
  color: #fff;
}
.hero__title .l { display: block; }
.hero__lede { max-width: 39rem; margin-top: 34px; font-size: 1.1875rem; line-height: 1.65; color: var(--on-dark-2); }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 44px; }

@keyframes drift { from { transform: translateY(0); } to { transform: translateY(-16px); } }

/* Load sequence */
.motion .hero [data-load] { opacity: 0; transform: translateY(14px); animation: rise .9s var(--ease) forwards; }
.motion .hero [data-load="1"] { animation-delay: .05s; }
.motion .hero [data-load="2"] { animation-delay: .15s; }
.motion .hero [data-load="3"] { animation-delay: .25s; }
.motion .hero [data-load="4"] { animation-delay: .35s; }
.motion .hero [data-load="5"] { animation-delay: .5s; }
.motion .hero [data-load="6"] { animation-delay: .62s; }
.motion .hero__art { opacity: 0; animation: fade 1.6s ease .2s forwards; }
@keyframes rise { to { opacity: 1; transform: none; } }
@keyframes fade { to { opacity: 1; } }

/* Scroll reveal */
.motion [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.motion [data-reveal].is-in { opacity: 1; transform: none; }

/* Section rhythm */
.section { padding: clamp(80px, 10vw, 136px) 0; }
.split-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; align-items: end; margin-bottom: 60px; }
.split-head__lede { border-left: 1px solid var(--rule); padding-left: 40px; }
.on-dark .split-head__lede { border-color: var(--rule-dark); }

/* Two markets */
.cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.mcard {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 470px; padding: 46px 46px 38px;
  display: flex; flex-direction: column;
  border-radius: 4px;
}
.mcard--co { background: var(--navy-900); color: var(--on-dark); }
.mcard--firm { background: var(--stone); color: var(--ink); }
.mcard__art { position: absolute; top: 0; right: 0; height: 100%; width: 48%; z-index: -1; }
.mcard--co .mcard__title, .mcard--firm .mcard__title { max-width: none; }
.mcard__art svg { width: 100%; height: 100%; }
.mcard__title { font: 390 clamp(2rem, 2.9vw, 2.65rem)/1.08 var(--serif); letter-spacing: -.02em; max-width: 17ch; text-wrap: balance; }
.mcard__body { margin-top: 18px; max-width: 30ch; font-size: 1.0625rem; line-height: 1.6; }
.mcard--co .mcard__body { color: var(--on-dark-2); }
.mcard--firm .mcard__body { color: var(--ink-2); }
.mcard__cta { margin-top: 32px; }
.mcard__aud {
  margin-top: auto; padding-top: 44px;
  display: flex; flex-wrap: wrap; gap: 10px 0;
  font: 600 .68rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase;
}
.mcard--co .mcard__aud { color: var(--on-dark-3); }
.mcard--firm .mcard__aud { color: var(--ink-3); }
.mcard__aud li + li::before { content: "|"; margin: 0 14px; opacity: .6; }

/* Platform columns */
.platform { padding-top: 0; }
.platform__rule { border-top: 1px solid var(--rule); padding-top: clamp(80px, 10vw, 128px); }
.cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule); }
.col { padding: 44px 32px 8px; border-left: 1px solid var(--rule); display: flex; flex-direction: column; }
.col:first-child { border-left: 0; padding-left: 0; }
.col:last-child { padding-right: 0; }
.col__icon { width: 34px; height: 34px; color: var(--ink); margin-bottom: 30px; }
.col__title { font: 390 1.5rem/1.2 var(--serif); letter-spacing: -.01em; }
.col__body { margin-top: 14px; color: var(--ink-2); font-size: .9688rem; line-height: 1.65; }
.col .plan-note { margin-top: auto; padding-top: 22px; }
.col .text-link { margin-top: 26px; }

/* Transactions */
.evidence { background: var(--cream-deep); }
.checks { margin-top: 26px; display: grid; gap: 12px; }
.checks li { display: flex; gap: 12px; align-items: baseline; color: var(--ink-2); font-size: .9688rem; }
.checks li::before { content: ""; width: 14px; height: 1px; background: var(--brand-teal); flex: none; transform: translateY(-4px); }
.on-dark .checks li { color: var(--on-dark-2); }
.evidence__meta { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 18px 32px; }

.ledger {
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: 6px;
  box-shadow: 0 40px 80px -48px rgba(14, 26, 47, .35), 0 2px 6px rgba(14, 26, 47, .04);
}
.ledger__head { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 30px; border-bottom: 1px solid var(--rule); }
.ledger__kicker { font: 600 .68rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.ledger__title { margin-top: 8px; font: 500 1.3rem/1.2 var(--serif); }
.ledger__body { padding: 34px 30px 30px; }
.ledger__label { font: 600 .68rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 16px; }

.pill { display: inline-flex; align-items: center; gap: 7px; height: 26px; padding: 0 10px; border-radius: 999px; font: 600 .72rem/1 var(--sans); white-space: nowrap; }
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pill--ok { background: var(--teal-soft); color: var(--teal-ink); }
.pill--info { background: #e7eef9; color: var(--blue-600); }
.pill--warn { background: var(--amber-soft); color: var(--amber); }

.chain { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; counter-reset: step; }
.node {
  position: relative;
  border: 1px solid var(--rule); border-radius: 4px;
  padding: 16px 16px 16px; background: #fff;
  display: flex; flex-direction: column; gap: 6px;
}
.chain .node::after, .chain .node::before { content: ""; position: absolute; }
.chain .node:not(:last-child)::after { top: 34px; right: -33px; width: 33px; height: 1px; background: var(--blue-400); }
.chain .node:not(:last-child)::before { top: 30px; right: -33px; border: 4.5px solid transparent; border-left: 6px solid var(--blue-400); border-right: 0; z-index: 1; }
.node__step { display: flex; align-items: center; gap: 10px; font: 600 .66rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.node__num { counter-increment: step; width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--rule-strong); display: grid; place-items: center; font-size: .66rem; letter-spacing: 0; color: var(--ink-2); }
.node__num::before { content: counter(step); }
.node__title { margin-top: 8px; font: 600 .9375rem/1.3 var(--sans); color: var(--ink); }
.node__meta { font-size: .8125rem; line-height: 1.45; color: var(--ink-3); }
.node .pill { margin-top: 10px; align-self: flex-start; }

.linked { margin-top: 34px; padding-top: 28px; border-top: 1px dashed var(--rule-strong); }
.linked__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.node--sub { flex-direction: row; align-items: center; gap: 14px; padding: 14px 16px; }
.node--sub svg { width: 22px; height: 22px; flex: none; color: var(--ink-2); }
.node--sub .node__title { margin: 0; font-size: .875rem; }
.node--sub .node__meta { font-size: .78rem; }
.node--missing { border-style: dashed; border-color: rgba(168, 108, 18, .55); background: #fffaf1; }
.node--missing svg { color: var(--amber); }
.node--missing .node__meta { color: var(--amber); }
.node--missing .node__num { border-color: rgba(168, 108, 18, .55); color: var(--amber); }

/* Structures */
.structures { background: var(--navy-900); color: var(--on-dark); position: relative; overflow: hidden; }
.structures__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; align-items: center; }
.structures .h2 { max-width: 15ch; }
.structures .lede { margin-top: 24px; }
.structures .text-link { color: var(--on-dark); }
.map { width: 100%; }
.map text { font-family: var(--sans); }
.map .n-title { font: 400 17px var(--serif); fill: #fff; }
.map .n-title--focus { font-size: 19px; }
.map .n-sub { font: 600 9.5px var(--sans); letter-spacing: .14em; fill: rgba(244, 241, 234, .55); text-transform: uppercase; }
.map .pct { font: 600 11.5px var(--sans); fill: var(--blue-200); }
.map .pct-bg { fill: var(--navy-900); }
.map .ctrl-label { font: 600 9.5px var(--sans); letter-spacing: .14em; fill: #6fd0c9; text-transform: uppercase; }
.map .edge { fill: none; stroke: rgba(169, 194, 232, .55); stroke-width: 1.25; }
.map .edge--ctrl { stroke: #3fbcb5; stroke-dasharray: 4 5; stroke-width: 1.25; }
.map .node-box { fill: rgba(255, 255, 255, .035); stroke: rgba(244, 241, 234, .18); }
.map .node-box--focus { fill: rgba(24, 137, 180, .14); stroke: var(--brand-blue); }
.map-legend { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px 28px; font: 600 .7rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-3); }
.map-legend span { display: inline-flex; align-items: center; gap: 10px; }
.map-legend i { width: 26px; height: 0; border-top: 1.5px solid rgba(169, 194, 232, .7); }
.map-legend i.ctrl { border-top: 1.5px dashed #3fbcb5; }

/* Trust */
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 48px; }
.fact { padding: 34px 0 40px; border-top: 1px solid var(--rule); }
.fact svg { width: 26px; height: 26px; color: var(--brand-teal); margin-bottom: 20px; }
.fact h3 { font: 600 1.0625rem/1.35 var(--sans); }
.fact p { margin-top: 10px; color: var(--ink-2); font-size: .9688rem; line-height: 1.65; max-width: 34ch; }
.trust__foot { margin-top: 18px; }

/* Closing */
.closing { position: relative; overflow: hidden; background: var(--teal-deep); color: var(--on-dark); }
/* The closing art is drawn in navy blues; on the dark teal its slabs and edge line take teal versions */
.closing #kA stop:first-child { stop-color: #1f6b6c; }
.closing #kB stop:first-child { stop-color: #3d978f; }
.closing .closing__art line { stroke: #8fe0d0; }
.closing__art { position: absolute; top: 0; right: 0; height: 100%; width: min(44vw, 720px); opacity: .55; pointer-events: none; }
.closing__art svg { width: 100%; height: 100%; }
.closing__inner { position: relative; z-index: 1; }
.closing .h2 { max-width: 720px; color: #fff; }
.closing .lede { margin-top: 24px; max-width: 36rem; }
.closing__ctas { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 14px; }
.closing__ctas .text-link { margin-left: 14px; color: var(--on-dark); }

/* Footer */
.footer { background: var(--navy-950); color: var(--on-dark-2); padding: 80px 0 36px; font-size: .9063rem; }
.footer__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(4, minmax(0, 1fr)); gap: 40px; }
.footer__brand img { height: 40px; width: auto; }
.footer__brand p { margin-top: 22px; max-width: 30ch; line-height: 1.7; }
.footer__brand .loc { margin-top: 14px; color: var(--on-dark-3); }
.footer h2 { font: 600 .9063rem/1 var(--sans); color: var(--on-dark); margin-bottom: 20px; }
.footer li + li { margin-top: 12px; }
.footer a:hover { color: var(--on-dark); }
.footer__bottom { margin-top: 64px; padding-top: 26px; border-top: 1px solid var(--rule-dark); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; color: var(--on-dark-3); font-size: .8438rem; }
.footer__bottom ul { display: flex; gap: 24px; }
.footer__bottom li + li { margin-top: 0; }

/* Responsive */
@media (min-width: 900px) {
  .hero__title .l { white-space: nowrap; }
}
@media (min-width: 900px) and (max-height: 820px) {
  .hero__inner { padding-top: 116px; padding-bottom: 72px; }
  .hero { --hero-title: clamp(2.75rem, min(4.6vw, 9.4vh), 4.5rem); }
  .hero__lede { margin-top: 24px; }
  .hero__ctas { margin-top: 32px; }
}
@media (max-width: 1100px) {
  .nav__inner { gap: 28px; }
  .nav__links { gap: 24px; }
  .cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .col { padding: 40px 28px 40px; }
  .col:nth-child(3) { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); }
  .col:nth-child(4) { border-top: 1px solid var(--rule); }
  .col:nth-child(2) { padding-right: 0; }
  .structures__grid { grid-template-columns: 1fr; gap: 56px; }
  .footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 960px) {
  .chain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chain .node:nth-child(2)::after, .chain .node:nth-child(2)::before { display: none; }
  .linked__grid { grid-template-columns: 1fr; }
}
/* The header needs about 960px for four menu triggers, Log in and the demo button, so the menu
   button takes over below 1000px, before the links start to squeeze */
@media (max-width: 999px) {
  .nav__links, .nav__actions .login { display: none; }
  .nav__toggle { display: inline-flex; align-items: center; }
  .nav__actions { margin-left: auto; gap: 12px; }
  .nav.is-open .nav__links {
    display: flex; flex-direction: column; gap: 0;
    position: absolute; top: 76px; left: var(--gutter); right: var(--gutter);
    background: var(--navy-800); border: 1px solid var(--rule-dark); border-radius: 4px; padding: 8px 20px;
  }
  .nav.is-open .nav__links > a, .nav.is-open .nav__trigger { padding: 14px 0; border-bottom: 1px solid var(--rule-dark); }
  .nav.is-open .nav__links > a:last-child { border-bottom: 0; }
  .nav__trigger { width: 100%; justify-content: space-between; text-align: left; }
  .nav__trigger.is-current { box-shadow: none; }
  .nav__panel { position: static; transform: none; width: auto; padding: 4px 0 10px; background: none; box-shadow: none; border-bottom: 1px solid var(--rule-dark); border-radius: 0; }
  .nav__panel::before { display: none; }
  .menu-cols { grid-template-columns: 1fr; }
  .menu-label { padding: 12px 0 6px; color: var(--on-dark-3); }
  .menu-list a { padding: 9px 0; color: var(--on-dark); }
  .menu-list a:hover, .menu-list a:focus-visible { background: none; color: #fff; }
  .menu-list span { color: var(--on-dark-3); }
  .nav.is-open .nav__links { max-height: calc(100svh - 96px); overflow-y: auto; }
}
@media (max-width: 899px) {
  .hero { min-height: 0; display: block; }
  .hero__art { width: 100%; opacity: .3; -webkit-mask-image: linear-gradient(to left, #000 15%, transparent 85%); mask-image: linear-gradient(to left, #000 15%, transparent 85%); }
  .hero__inner { padding-top: 132px; padding-bottom: 88px; }
  .split-head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 44px; }
  .split-head__lede { border-left: 0; padding-left: 0; }
  .cards { grid-template-columns: 1fr; }
  .facts { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .nav__inner { height: 76px; gap: 16px; }
  /* Full size from 363px wide; below that the logo gives way to the menu button */
  .nav__logo { flex-shrink: 1; min-width: 0; }
  .nav__actions .btn { display: none; }
  .hero__lede { font-size: 1.0625rem; }
  .map .n-title, .map .n-title--focus { font-size: 19.5px; }
  .map .n-sub { font-size: 11px; }
  .map .pct { font-size: 13.5px; }
  .map .ctrl-label { font-size: 11px; }
  .hero__ctas .btn, .closing__ctas .btn { width: 100%; }
  .closing__ctas .text-link { margin: 10px 0 0; }
  .mcard { padding: 34px 26px 30px; min-height: 420px; }
  .mcard__title { font-size: 1.75rem; }
  .mcard__art { width: 62%; opacity: .55; }
  .cols { grid-template-columns: 1fr; }
  .col, .col:nth-child(n) { border-left: 0; padding: 36px 0; border-top: 1px solid var(--rule); }
  .col:first-child { border-top: 0; }
  .ledger__head { flex-direction: column; align-items: flex-start; padding: 20px; }
  .ledger__body { padding: 26px 20px 22px; }
  .chain { grid-template-columns: 1fr; gap: 22px; }
  .chain .node:not(:last-child)::after { display: block; top: auto; bottom: -23px; right: auto; left: 27px; width: 1px; height: 23px; }
  .chain .node:not(:last-child)::before { display: block; top: auto; bottom: -23px; right: auto; left: 23px; border: 4.5px solid transparent; border-top: 6px solid var(--blue-400); border-bottom: 0; }
  .chain .node:nth-child(2)::after, .chain .node:nth-child(2)::before { display: block; }
  .facts { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}
/* ---------- Solution pages ---------- */
.nav__links > a[aria-current="page"], .nav__trigger.is-current { color: var(--on-dark); box-shadow: inset 0 -1px 0 var(--on-dark); }


.comp { position: relative; color: var(--ink); }
.comp__panel {
  background: #fff; border-radius: 6px; padding: 24px 26px 26px;
  box-shadow: 0 60px 120px -50px rgba(0, 0, 0, .7), 0 2px 8px rgba(0, 0, 0, .12);
}
.comp__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 18px; }
.comp__title { font: 500 1.15rem/1.2 var(--serif); }
.comp__meta { font: 600 .66rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.comp__list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--rule); font-size: .8125rem; }
.comp__list li:first-child { border-top: 0; padding-top: 2px; }
.comp__list strong { display: block; font-weight: 600; color: var(--ink); }
.comp__list span.sub { display: block; color: var(--ink-3); font-size: .75rem; margin-top: 2px; }

.bar { display: flex; height: 12px; border-radius: 2px; overflow: hidden; gap: 2px; }
.bar i { display: block; height: 100%; }
.c1 { background: #1a2f55; } .c2 { background: #2c568f; } .c3 { background: #5b86c6; } .c4 { background: #a9c2e8; }


/* Stage timeline */
.stages { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.stages::before { content: ""; position: absolute; top: 15px; left: 0; right: 0; height: 1px; background: var(--rule-strong); }
.stage { position: relative; display: flex; flex-direction: column; }
.stage__num { position: relative; width: 31px; height: 31px; border-radius: 50%; background: var(--navy-900); color: #fff; display: grid; place-items: center; font: 600 .78rem/1 var(--sans); box-shadow: 0 0 0 6px var(--cream); }
.stage__title { margin-top: 30px; font: 390 1.5rem/1.2 var(--serif); letter-spacing: -.01em; }
.stage__body { margin-top: 12px; color: var(--ink-2); font-size: .9688rem; line-height: 1.65; }
.stage .checks { margin-top: 18px; gap: 10px; }
.stage .checks li { font-size: .9063rem; }
.stage .plan-note { margin-top: auto; padding-top: 24px; }

/* Feature rows */
.band { background: var(--cream-deep); }
.feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 88px; align-items: center; }
.feature + .feature { margin-top: clamp(80px, 9vw, 120px); }
.feature--flip .feature__copy { order: 2; }
.feature .lede { margin-top: 22px; }
.feature .evidence__meta { margin-top: 26px; }
.feature .comp__panel { box-shadow: 0 40px 80px -48px rgba(14, 26, 47, .35), 0 2px 6px rgba(14, 26, 47, .05); border: 1px solid var(--rule); }

.scen { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.scen__col { border: 1px solid var(--rule); border-radius: 4px; padding: 16px; }
.scen__col h4 { margin: 0 0 4px; font: 600 .8125rem/1.3 var(--sans); }
.scen__col .sub { color: var(--ink-3); font-size: .75rem; }
.scen__col .bar { margin-top: 16px; height: 10px; }
.scen dl { margin: 14px 0 0; display: grid; grid-template-columns: 1fr auto; gap: 8px 10px; font-size: .78rem; }
.scen dt { color: var(--ink-3); }
.scen dd { margin: 0; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.comp__note { margin-top: 14px; font-size: .72rem; color: var(--ink-3); }

/* Group chart */
.group .n-add { fill: none; stroke: rgba(244, 241, 234, .35); stroke-dasharray: 4 5; }
.group .add-label { font: 600 10px var(--sans); letter-spacing: .14em; text-transform: uppercase; fill: rgba(244, 241, 234, .6); }

/* Plans */
.plans { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.plan { background: #fff; border: 1px solid var(--rule); border-radius: 4px; padding: 30px 26px 28px; display: flex; flex-direction: column; }
.plan__name { font: 390 1.65rem/1.1 var(--serif); }
.plan__desc { margin-top: 10px; color: var(--ink-2); font-size: .875rem; line-height: 1.55; min-height: 4.65em; }
.plan__price { margin-top: 22px; display: flex; align-items: baseline; gap: 6px; }
.plan__price b { font: 400 2.6rem/1 var(--serif); letter-spacing: -.02em; font-weight: 390; }
.plan__price span { color: var(--ink-3); font-size: .875rem; }
.plan__annual { margin-top: 6px; color: var(--ink-3); font-size: .8125rem; }
.plan__cap { margin-top: 18px; padding: 12px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font: 600 .72rem/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.plan .checks { margin-top: 20px; gap: 10px; }
.plan .checks li { font-size: .875rem; }
.plan__cta { margin-top: auto; padding-top: 28px; }
.plans__notes { margin-top: 28px; display: grid; gap: 8px; color: var(--ink-3); font-size: .8438rem; }
.plans__notes a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }

/* Firm capacity calculator */
.calc { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 36px 56px; align-items: start; background: #fff; border: 1px solid var(--rule); border-radius: 6px; padding: 40px; box-shadow: 0 40px 80px -48px rgba(14, 26, 47, .3); }
.calc__label { font: 600 .9375rem/1.3 var(--sans); }
.calc__count { display: block; margin-top: 18px; font: 390 4.5rem/1 var(--serif); letter-spacing: -.03em; }
.calc__unit { color: var(--ink-3); font-size: .9375rem; }
.calc input[type="range"] { width: 100%; margin-top: 26px; accent-color: var(--navy-900); height: 28px; }
.calc__scale { display: flex; justify-content: space-between; color: var(--ink-3); font-size: .75rem; margin-top: 2px; }
/* The plan finder asks for entities, then stakeholders */
.calc__field + .calc__field { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--rule); }
/* A plan with unlimited stakeholders switches that slider off */
.calc__field.is-off input[type="range"] { opacity: .3; cursor: not-allowed; }
.calc__field.is-off .calc__scale { visibility: hidden; }
/* What the customer needs: three choices across the top of a finder, one per feature tier, the
   chosen one outlined in navy like the pricing-model switch */
.calc__needs { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 0 0 32px; border: 0; border-bottom: 1px solid var(--rule); }
.calc__needs legend { padding: 0; }
.needs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.need { position: relative; display: block; padding: 16px 18px 16px 46px; border: 1px solid var(--rule-strong); border-radius: 6px; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.need:hover { border-color: var(--ink); }
.need input { position: absolute; left: 18px; top: 18px; width: 16px; height: 16px; margin: 0; accent-color: var(--teal-ink); cursor: pointer; }
.need:has(input:checked) { border-color: var(--navy-900); box-shadow: inset 0 0 0 1px var(--navy-900); }
.need__name { display: block; font: 600 .9375rem/1.3 var(--sans); color: var(--ink); }
.need__desc { display: block; margin-top: 4px; color: var(--ink-3); font-size: .8125rem; line-height: 1.45; }
@media (max-width: 899px) {
  .needs { grid-template-columns: 1fr; gap: 8px; }
}
.quote__total { margin-top: 18px; display: flex; align-items: baseline; gap: 6px; }
.quote__total b { font: 390 2.4rem/1 var(--serif); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.quote__total span { color: var(--ink-3); font-size: .875rem; }
.quote__detail { margin-top: 8px; color: var(--ink-3); font-size: .8125rem; min-height: 2.6em; }

/* Three-up */
.trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule); }
.trio > * { padding: 40px 36px 8px; border-left: 1px solid var(--rule); }
.trio > :first-child { border-left: 0; padding-left: 0; }
.trio > :last-child { padding-right: 0; }
.trio h3 { font: 390 1.5rem/1.2 var(--serif); letter-spacing: -.01em; }
.trio p { margin-top: 12px; color: var(--ink-2); font-size: .9688rem; line-height: 1.65; }

/* Certificate composition: the top of a real issued certificate, with its verification result
   hanging off the lower right corner, clear of the holder and share details */
.cert { position: relative; width: 100%; max-width: 600px; margin-left: auto; padding-bottom: 112px; }
.cert__doc { position: relative; background: #fff; border-radius: 3px; overflow: hidden; box-shadow: 0 60px 120px -50px rgba(0, 0, 0, .75); }
.cert__doc img { display: block; width: 100%; height: auto; }
/* The crop ends in blank paper; fading it out hides where the page was cut */
.cert__doc::after { content: ""; position: absolute; inset: auto 0 0; height: 8%; background: linear-gradient(rgba(255, 255, 255, 0), #fff); }
.cert__verify { position: absolute; right: -32px; bottom: 0; display: flex; gap: 20px; align-items: center; background: #fff; color: var(--ink); border-radius: 8px; padding: 18px 24px 18px 18px; box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .6); }
.cert__scan { flex: none; text-align: center; font: 600 .5938rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.cert__qr { display: block; width: 120px; height: 120px; margin-bottom: 8px; }
.cert__result strong { display: block; font-size: .9375rem; }
.cert__result dl { margin: 12px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 7px 18px; align-items: center; font-size: .8125rem; }
.cert__result dt { color: var(--ink-3); }
.cert__result dd { margin: 0; font-weight: 600; }

@media (max-width: 1100px) {
  .stages { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 56px; }
  .stages::before { display: none; }
  .feature { grid-template-columns: 1fr; gap: 48px; }
  .feature--flip .feature__copy { order: 0; }
  .plans { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc { grid-template-columns: 1fr; gap: 36px; }
  .cert { margin: 0; }
}
@media (max-width: 899px) {
  .trio { grid-template-columns: 1fr; }
  .trio > *, .trio > :first-child { border-left: 0; padding: 32px 0; border-top: 1px solid var(--rule); }
  .trio > :first-child { border-top: 0; }
}
@media (max-width: 640px) {
  .comp__panel { padding: 20px 18px; }
  .stages { grid-template-columns: 1fr; row-gap: 0; }
  .stages::before { display: block; top: 0; bottom: 0; left: 15px; right: auto; width: 1px; height: auto; }
  .stage { padding: 0 0 44px 56px; }
  .stage__num { position: absolute; left: 0; top: 0; }
  .stage__title { margin-top: 2px; }
  .plans { grid-template-columns: 1fr; }
  .plan__desc { min-height: 0; }
  .calc { padding: 26px 20px; }
  .quote__detail { min-height: 0; }
  .scen { grid-template-columns: 1fr; }
  .cert { padding-bottom: 0; }
  .cert__verify { position: relative; right: auto; margin-top: -12px; gap: 16px; padding: 14px 18px 14px 14px; }
  .cert__qr { width: 96px; height: 96px; }
}
.pill--muted { background: #eef0f3; color: var(--ink-3); }
.pill--muted::before { opacity: .5; }
.c5 { background: var(--brand-teal); }
.disclosure { margin-top: 20px; font-size: .8125rem; color: var(--on-dark-3); }
.group .edge--add { stroke: rgba(244, 241, 234, .35); stroke-dasharray: 4 5; }

/* Firm plan finder */
.finder { border: 1px solid var(--rule); border-radius: 4px; padding: 28px; }
.finder__lead { color: var(--ink-3); font-size: .875rem; }
.finder__name { margin-top: 6px; font: 390 2rem/1.1 var(--serif); letter-spacing: -.01em; }
.calc + .plans { margin-top: 24px; }
.plan { position: relative; }
.plan.is-match { border-color: var(--brand-teal); box-shadow: inset 0 0 0 1px var(--brand-teal); }

/* Platform menu: two areas with icons */
.nav__panel--platform { width: 580px; }
.menu-label--top { padding-bottom: 4px; }
.menu-list--icons li + li { border-top: 1px solid var(--rule); margin-top: 4px; padding-top: 4px; }
.menu-list--icons a { display: grid; grid-template-columns: 26px 1fr; gap: 14px; align-items: start; padding: 14px 12px; }
.menu-icon { width: 24px; height: 24px; color: var(--ink); }
.menu-list .menu-text { display: block; margin: 0; font-size: inherit; line-height: inherit; color: inherit; }
.menu-list--icons strong { font-size: 1rem; }

/* Solutions menu: the two management models lead, divided like the Platform areas; the
   organization links beside them are a lighter, secondary list */
.menu-cols--lead { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 0; }
.menu-cols--lead > :first-child { padding-right: 10px; border-right: 1px solid var(--rule); }
.menu-cols--lead > :last-child { padding-left: 10px; }
.menu-list--primary li + li { border-top: 1px solid var(--rule); margin-top: 4px; padding-top: 4px; }
.menu-list--primary strong { font-size: 1rem; }
.menu-cols--lead .menu-list--plain a { padding: 8px 12px; font-size: .875rem; color: var(--ink-2); }
.menu-cols--lead .menu-list--plain a:hover, .menu-cols--lead .menu-list--plain a:focus-visible { color: var(--ink); }
/* Resources menu: four guides and tools lead with one-line descriptions, undivided since there
   are more of them; reference, insights and product help stack beside them */
.menu-list + .menu-label { margin-top: 8px; }
@media (max-width: 999px) {
  .nav__panel--platform { width: auto; }
  .menu-label--top { display: none; }
  .menu-list--icons li + li, .menu-list--primary li + li { border-top-color: var(--rule-dark); }
  .menu-list--icons a { padding: 12px 0; }
  .menu-icon { color: var(--on-dark-2); }
  .menu-cols--lead { grid-template-columns: 1fr; }
  .menu-cols--lead > :first-child { padding-right: 0; border-right: 0; }
  .menu-cols--lead > :last-child { padding-left: 0; }
  .menu-cols--lead .menu-list--plain a { padding: 9px 0; color: var(--on-dark-2); }
  .menu-cols--lead .menu-list--plain a:hover, .menu-cols--lead .menu-list--plain a:focus-visible { color: #fff; }
}

/* Multi-entity plans */
.trio--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.trio--4 > * { padding-left: 28px; padding-right: 28px; }
.trio--4 > :first-child { padding-left: 0; }
.trio--4 > :last-child { padding-right: 0; }
.plan__addon { margin-top: 12px; color: var(--ink-3); font-size: .8125rem; }
.finder__lines { margin: 18px 0 0; display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; padding-top: 14px; border-top: 1px solid var(--rule); font-size: .875rem; }
.finder__lines dt { color: var(--ink-2); }
.finder__lines dd { margin: 0; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.finder .quote__detail { margin-top: 14px; min-height: 0; }
.finder__note { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rule); color: var(--ink-3); font-size: .75rem; }

/* Additional-entity rates, folded below the plan cards */
.rates { margin-top: 28px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.rates summary { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; font: 600 .9375rem/1.3 var(--sans); cursor: pointer; list-style: none; }
.rates summary::-webkit-details-marker { display: none; }
.rates summary::after { content: '+'; font: 400 1.25rem/1 var(--sans); color: var(--ink-3); }
.rates[open] summary::after { content: '\2212'; }
.rates__table { width: 100%; max-width: 720px; border-collapse: collapse; font-size: .875rem; }
.rates__table th, .rates__table td { padding: 10px 0; border-top: 1px solid var(--rule); text-align: right; font-variant-numeric: tabular-nums; }
.rates__table th:first-child { text-align: left; }
.rates__table thead th { border-top: 0; color: var(--ink-3); font-weight: 600; font-size: .8125rem; }
.rates__table tbody th { font-weight: 400; }
.rates p { margin: 12px 0 18px; max-width: 720px; color: var(--ink-3); font-size: .8438rem; }
.rates + .plans__notes { margin-top: 16px; }
@media (max-width: 1100px) {
  .trio--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trio--4 > :nth-child(3) { border-left: 0; padding-left: 0; }
  .trio--4 > :nth-child(2) { padding-right: 0; }
  .trio--4 > :nth-child(n+3) { border-top: 1px solid var(--rule); }
}
@media (max-width: 899px) {
  .trio--4 { grid-template-columns: 1fr; }
  .trio--4 > :nth-child(n) { padding-left: 0; padding-right: 0; }
}

/* Heroes with supplied artwork: the image fades into a background that matches its own
   left edge. On desktop the section sizes to its copy rather than the viewport and the image
   takes the section's height from the right, centred on the copy; below 900px it sits at the
   bottom right. --hero-art-shift pushes a wide composition further right, clear of the headline */
.hero--image { background: var(--hero-bg, var(--navy-900)); }
.hero__art--image { inset: 0; width: 100%; height: 100%; }
.hero__art--image img {
  position: absolute; right: 0; bottom: 0; width: 100%; height: auto; max-width: none;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 22%), linear-gradient(to right, transparent 30%, #000 55%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to bottom, transparent, #000 22%), linear-gradient(to right, transparent 30%, #000 55%);
  mask-composite: intersect;
}
.motion .hero__art--image img { animation: drift 28s ease-in-out infinite alternate; }
@media (min-width: 900px) {
  .hero--image { min-height: 0; }
  /* Sized for a three-line headline so image heroes share one height. A shorter headline sets
     --hero-title-lines to get its missing lines back; --hero-grow adds lines' worth of height on
     purpose (the homepage). Either way the space is split half above, half below the copy */
  .hero--image .hero__inner {
    --hero-pad: calc((3 - var(--hero-title-lines, 3) + var(--hero-grow, 0)) * .51 * var(--hero-title));
    padding-top: calc(152px + var(--hero-pad)); padding-bottom: calc(96px + var(--hero-pad));
  }
  /* 16px taller than the section so the drift never lifts the bottom edge into view */
  .hero__art--image img { top: 0; width: auto; height: calc(100% + 16px); translate: var(--hero-art-shift, 0) 0; }
}
@media (max-width: 899px) {
  .hero__art--image img { width: 220%; }
}

/* Light heroes: Multiple Entities keeps warm stone and takes the light nav */
.hero--stone { color: var(--ink); border-bottom: 1px solid var(--rule); }
.hero--stone .hero__title { color: var(--navy-900); }
.hero--stone .hero__lede { color: var(--ink-2); }
.nav--light { color: var(--ink); }
.nav--light .nav__links > a, .nav--light .nav__trigger, .nav--light .nav__actions .login { color: var(--ink-2); }
.nav--light .nav__links > a:hover, .nav--light .nav__trigger:hover, .nav--light .nav__trigger[aria-expanded="true"],
.nav--light .nav__actions .login:hover { color: var(--ink); }
.nav--light .nav__links > a[aria-current="page"], .nav--light .nav__trigger.is-current { color: var(--ink); box-shadow: inset 0 -1px 0 var(--ink); }
.nav--light .nav__toggle { border-color: var(--rule-strong); color: var(--ink); }
@media (max-width: 999px) {
  /* The open menu stays a navy panel, so its links go back to light text */
  .nav--light.is-open .nav__links > a, .nav--light.is-open .nav__trigger { color: var(--on-dark-2); }
  .nav--light.is-open .nav__trigger.is-current { color: var(--on-dark); box-shadow: none; }
}
.mcard__art img { width: 100%; height: 100%; object-fit: cover; object-position: left center;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 30%); mask-image: linear-gradient(to right, transparent, #000 30%); }

/* Colour system (owner, 2026-11-01): navy for the brand and the product, cream for the content, teal
   for the accent. Navy carries the homepage, the Platform and organization heroes, Pricing and the
   footer (charcoal retired, owner, 2026-11-01), dark teal every closing. Dark sections inside the other pages are slate; the group map was drawn
   for navy, so its label boxes and lines take slate and teal versions there */
.structures--slate { background: var(--slate); }
.structures--slate .map .pct-bg { fill: var(--slate); }
.structures--slate .map .pct { fill: #a8ddd6; }
.structures--slate .map .edge { stroke: rgba(168, 221, 214, .5); }
.structures--slate .map .node-box--focus { fill: rgba(99, 196, 190, .12); stroke: #63c4be; }

/* Pricing: the Platform pages' navy product hero (owner, 2026-11-01), taller and without a capture,
   with a network of records in the lower right; then the pricing-model switch, the plan badges, the
   every-plan list, the feature table (plan names, prices and capacity follow the switch, groups fold
   away) and the questions */
/* A navy hero with copy only (generated marketing pages): one column, the arc behind */
.hero--product.hero--copy .hero__inner { grid-template-columns: minmax(0, 1fr); padding-bottom: 112px; }
.hero--product.hero--copy .hero__copy { max-width: 48rem; }
.hero--product.hero--copy .hero__lede { max-width: 40rem; }
/* Forms carried from the live site (Contact, the Pulley demo) keep Bootstrap's markup and their
   scripts; these rules set that markup in the redesign: copy beside the form, fields on a 12-column grid */
.mk-formband { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
.mk-form { padding: 32px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; box-shadow: 0 24px 50px -36px rgba(14, 26, 47, .45); color: var(--ink); }
.mk-form .get__title + p { margin-top: 6px; font-size: .875rem; color: var(--ink-3); }
.mk-form form { margin-top: 18px; }
:is(.mk-form, .tool-shell) .row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.mk-form .row > * { grid-column: 1 / -1; }
:is(.mk-form, .tool-shell) .form-label, .mk-form label { display: block; margin-bottom: 6px; font: 600 .8125rem/1.3 var(--sans); color: var(--ink-2); }
:is(.mk-form, .tool-shell) :is(.form-control, .form-select) { width: 100%; height: 46px; padding: 0 14px; border: 1px solid var(--rule-strong); border-radius: 3px; background: #fff; color: var(--ink); font: 400 1rem/1 var(--sans); }
:is(.mk-form, .tool-shell) textarea.form-control { height: auto; padding: 12px 14px; line-height: 1.5; }
:is(.mk-form, .tool-shell) .form-check { display: flex; gap: 10px; align-items: flex-start; }
:is(.mk-form, .tool-shell) .form-check-label { font-weight: 500; line-height: 1.5; color: var(--ink-3); }
:is(.mk-form, .tool-shell) .form-check-input { flex: none; margin-top: 3px; accent-color: var(--navy-900); }
:is(.mk-form, .tool-shell) .invalid-feedback { display: none; margin-top: 6px; font-size: .8125rem; color: #b42318; }
:is(.mk-form, .tool-shell) .was-validated :invalid ~ .invalid-feedback { display: block; }
:is(.mk-form, .tool-shell) .was-validated :invalid { border-color: #b42318; }
:is(.mk-form, .tool-shell) :is(.form-text, .small, small) { font-size: .8125rem; color: var(--ink-3); }
:is(.mk-form, .tool-shell) .d-none { display: none; }
.mk-form a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.mk-form__btn { width: 100%; justify-content: center; }
@media (min-width: 576px) { .mk-form .col-sm-6, .mk-form .col-md-6 { grid-column: span 6; } }
/* A free tool keeps its own markup, script and (scoped) stylesheet; these rules give its Bootstrap
   layout and utility classes the redesign's spacing, type and colour */
.tool-shell { --text: var(--ink); --text-secondary: var(--ink-2); --muted: var(--ink-3); --border: var(--rule-strong); --border-light: var(--rule);
  --surface: var(--paper); --app-bg: var(--sheet); --accent-primary: var(--teal-ink); --accent-amber: #b97f1c; --accent-emerald: var(--teal-ink);
  --ink-900: var(--navy-900); --font-display: var(--serif); --radius-sm: 3px; --radius-md: 4px; --radius-lg: 4px; --radius-xl: 6px;
  --shadow-md: 0 24px 50px -36px rgba(14, 26, 47, .45); color: var(--ink); }
.tool-shell .container { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.tool-shell h2, .tool-shell h3 { font-weight: 600; }
.tool-shell .row { display: flex; flex-wrap: wrap; gap: 0; margin: 0 calc(var(--gx, 12px) * -1); }
.tool-shell .row > * { width: 100%; max-width: 100%; padding: 0 var(--gx, 12px); margin-top: var(--gy, 0); }
.tool-shell .g-2 { --gx: 4px; --gy: 8px; } .tool-shell .g-3 { --gx: 8px; --gy: 16px; } .tool-shell .g-4 { --gx: 12px; --gy: 24px; } .tool-shell .g-5 { --gx: 24px; --gy: 48px; }
@media (min-width: 768px) { .tool-shell .col-md-6 { width: 50%; } }
@media (min-width: 992px) { .tool-shell .col-lg-4 { width: 33.333%; } .tool-shell .col-lg-5 { width: 41.667%; } .tool-shell .col-lg-6 { width: 50%; }
  .tool-shell .col-lg-7 { width: 58.333%; } .tool-shell .col-lg-10 { width: 83.333%; } .tool-shell .text-lg-end { text-align: right; } }
.tool-shell .mt-2 { margin-top: .5rem; } .tool-shell .mt-3 { margin-top: 1rem; } .tool-shell .mb-1 { margin-bottom: .25rem; } .tool-shell .mb-2 { margin-bottom: .5rem; }
.tool-shell .mb-3 { margin-bottom: 1rem; } .tool-shell .mb-4 { margin-bottom: 1.5rem; } .tool-shell .me-1 { margin-right: .25rem; } .tool-shell .me-2 { margin-right: .5rem; }
.tool-shell .p-3 { padding: 1rem; } .tool-shell .d-block { display: block; } .tool-shell .h-100 { height: 100%; } .tool-shell .text-center { text-align: center; }
.tool-shell .fw-semibold { font-weight: 600; } .tool-shell :is(.text-secondary, .text-muted) { color: var(--ink-3); } .tool-shell .border { border: 1px solid var(--rule); }
.tool-shell .rounded { border-radius: 4px; } .tool-shell .align-items-center { align-items: center; } .tool-shell .flex-grow-1 { flex-grow: 1; }
.tool-shell .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border: 1px solid var(--navy-900); border-radius: 3px; background: var(--navy-900); color: #fff; font: 600 .9375rem/1 var(--sans); cursor: pointer; }
.tool-shell .btn-sm { min-height: 36px; padding: 0 14px; font-size: .8125rem; } .tool-shell .btn-lg { min-height: 52px; padding: 0 26px; }
.tool-shell :is(.btn-remove, .btn-add-holder) { background: #fff; color: var(--navy-900); }
.tool-shell .tool-embed-share { margin-top: 56px; margin-bottom: 24px; }
.tool-shell .tool-embed-share h2 { font: 600 1rem/1.4 var(--sans); }
.tool-shell .tool-embed-share__code { width: 100%; min-height: 96px; padding: 12px; border: 1px solid var(--rule-strong); border-radius: 3px; font: 400 .8125rem/1.5 ui-monospace, monospace; color: var(--ink-2); }
/* The spacing the live tools were written against (Bootstrap's reboot), inside their own sections only */
.tool-shell [class*="-section"] :where(p) { margin: 0 0 1rem; }
.tool-shell [class*="-section"] :where(ul, ol) { margin: 0 0 1rem; padding-left: 2rem; }
.tool-shell [class*="-section"] :where(ul) { list-style: disc; }
.tool-shell [class*="-section"] :where(ol) { list-style: decimal; }
.tool-includes { margin-top: 22px; }
.tool-shell .site-section__title { margin: 0 0 12px; font: 390 2rem/1.2 var(--serif); color: var(--navy-900); }
.tool-shell .site-section__subtitle { max-width: 40rem; color: var(--ink-2); }
.tool-shell .mx-auto { margin-left: auto; margin-right: auto; }
.is-embed :is(.nav, .footer, .lib-head .crumbs, .tool-embed-share, .tool-after) { display: none !important; }
@media (max-width: 899px) { .mk-formband { grid-template-columns: 1fr; gap: 32px; } .mk-form { padding: 24px; } }
/* Text, tables and forms set in a marketing section under its split head */
.mk-prose { max-width: 46rem; margin-top: 28px; }
.mk-prose > :first-child { margin-top: 0; }
.mk-table { margin-top: 32px; }
.trio .checks { margin-top: 14px; gap: 8px; }
.trio .checks li { font-size: .9063rem; }
.trio .text-link { margin-top: 16px; }
.hero--product.hero--net { display: flex; align-items: center; min-height: 660px; }
.hero--product.hero--net .hero__inner { grid-template-columns: minmax(0, 1fr); }
.hero__art--net { top: auto; bottom: 0; height: auto; width: min(56vw, 860px); aspect-ratio: 1150 / 667; }
@media (max-width: 899px) {
  .hero--product.hero--net { min-height: 0; }
  .hero--product.hero--net .hero__inner { padding-bottom: 88px; }
  /* Behind the copy on small screens. On the svg, since the art's fade-in ends at full opacity */
  .hero__art--net svg { opacity: .35; }
}
/* The model switch: two large options, each saying how it is priced, with a radio-style marker. The
   chosen one stays light, outlined in navy with a teal marker, so it doesn't echo the dark hero */
.pricing { padding-top: clamp(64px, 8vw, 104px); }
.pricing__title { margin-bottom: 36px; }
.aud { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; gap: 14px; margin-bottom: 44px; }
.aud__tab { position: relative; display: block; padding: 24px 28px 24px 62px; border: 1px solid var(--rule-strong); border-radius: 6px; background: rgba(255, 255, 255, .55); color: var(--ink); text-align: left; cursor: pointer; transition: background-color .2s, border-color .2s, box-shadow .2s; }
.aud__tab::before { content: ""; position: absolute; left: 26px; top: 29px; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--ink-3); background: #fff; }
.aud__tab:hover { border-color: var(--ink); }
.aud__tab[aria-selected="true"] { background: #fff; border-color: var(--navy-900); box-shadow: inset 0 0 0 1px var(--navy-900), 0 22px 44px -30px rgba(14, 26, 47, .45); }
.aud__tab[aria-selected="true"]::before { border-color: var(--teal-ink); background: var(--teal-ink); box-shadow: inset 0 0 0 4px #fff; }
.aud__name { display: block; font: 390 1.6rem/1.15 var(--serif); letter-spacing: -.01em; }
.aud__desc { display: block; margin-top: 8px; font: 400 .9375rem/1.55 var(--sans); color: var(--ink-2); }
.aud__panel > :first-child { margin-top: 12px; }

/* Badges sit on the card's top edge so every card keeps the same layout below them */
.plan__badge { position: absolute; top: -11px; left: 25px; padding: 0 10px; border-radius: 3px; background: var(--navy-900); color: #fff; font: 600 .66rem/22px var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.plan__badge--fit { background: var(--teal-ink); }
.plan--pick { border-color: var(--navy-900); box-shadow: inset 0 0 0 1px var(--navy-900); }
.finder__cta { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.finder__cta .text-link { font-size: .875rem; }

.checks--grid { margin-top: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 48px; }
.every__addon { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--rule); color: var(--ink-3); font-size: .9063rem; }

.cmp__bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; margin-bottom: 12px; }
.cmp__model { color: var(--ink-2); font-size: .9375rem; }
.cmp__model strong { color: var(--ink); font-weight: 600; }
.cmp__switch { margin-left: 6px; padding: 0; border: 0; background: none; color: var(--ink); font: 600 .9375rem/1.3 var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cmp { width: 100%; border-collapse: collapse; font-size: .9063rem; }
.cmp th, .cmp td { text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); }
/* A shadow, not the border, draws the header's rule, since a stuck cell leaves its border behind */
.cmp thead th { position: sticky; top: 0; z-index: 1; background: var(--cream); padding: 20px 16px 16px; vertical-align: bottom; border-bottom: 0; box-shadow: inset 0 -1px 0 var(--rule-strong); }
.cmp thead th:first-child { padding-left: 16px; }
.cmp thead b { display: block; font: 390 1.5rem/1.1 var(--serif); letter-spacing: -.01em; }
.cmp thead span { display: block; margin-top: 5px; color: var(--ink-3); font-size: .8125rem; font-weight: 500; }
.cmp thead th:first-child b { font: 600 .8125rem/1.3 var(--sans); letter-spacing: 0; color: var(--ink-2); }
.cmp tbody th { width: 40%; padding: 13px 16px; font-weight: 400; color: var(--ink-2); }
.cmp td { width: 20%; padding: 13px 16px; color: var(--ink); }
.cmp .cmp__group th { padding: 0; background: var(--cream-deep); border-bottom: 0; }
.cmp tbody + tbody .cmp__group th { border-top: 20px solid var(--cream); }
.cmp__toggle { display: block; width: 100%; padding: 15px 16px; border: 0; background: none; color: var(--ink); font: 390 1.3rem/1.2 var(--serif); letter-spacing: -.01em; text-align: left; cursor: pointer; }
.cmp__gin { display: flex; align-items: baseline; gap: 16px; }
.cmp__count { display: flex; align-items: baseline; gap: 14px; margin-left: auto; color: var(--ink-3); font: 500 .8125rem/1.3 var(--sans); letter-spacing: 0; }
.cmp__count::after { content: '\2212'; width: 14px; text-align: center; font: 400 1.25rem/1 var(--sans); color: var(--ink-2); }
.cmp__toggle[aria-expanded="false"] .cmp__count::after { content: '+'; }
.cmp__toggle:hover .cmp__gin > :first-child { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.cmp tbody.is-collapsed tr:not(.cmp__group) { display: none; }
/* Ticks and dashes stand in for the words, which stay for screen readers */
.cmp td.y, .cmp td.n { font-size: 0; }
.cmp td.y::before { content: ""; display: inline-block; width: 13px; height: 7px; margin-top: 6px; border-left: 2px solid var(--brand-teal); border-bottom: 2px solid var(--brand-teal); transform: rotate(-45deg); }
.cmp td.n::before { content: ""; display: inline-block; width: 12px; height: 1px; margin-top: 11px; background: var(--ink-3); opacity: .55; }
.cmp__note { margin-top: 20px; color: var(--ink-3); font-size: .8438rem; }

.faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 64px; align-items: start; }
.faq__lede { margin-top: 20px; }
/* The questions take their style from the list, so a list set under a section head (generated pages) matches */
.faq__list { border-top: 1px solid var(--rule); }
.faq__list details { border-bottom: 1px solid var(--rule); }
.faq__list summary { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 22px 0; font: 600 1.0313rem/1.45 var(--sans); cursor: pointer; list-style: none; }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary::after { content: '+'; flex: none; font: 400 1.375rem/1 var(--sans); color: var(--ink-3); }
.faq__list details[open] summary::after { content: '\2212'; }
.faq__list details p { max-width: 44rem; padding-bottom: 24px; color: var(--ink-2); line-height: 1.7; }
.faq__list details p a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1100px) {
  .checks--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  .faq { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 760px) {
  /* The table scrolls sideways inside the page, with the feature names pinned */
  .cmp__scroll { overflow-x: auto; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); }
  .cmp { min-width: 600px; }
  .cmp thead th { position: static; }
  .cmp tbody th, .cmp thead th:first-child { position: sticky; left: 0; z-index: 2; background: var(--cream); }
  .cmp tbody th { width: 34%; }
  /* A group row spans the table, so its label and count are pinned inside it instead */
  .cmp .cmp__group th { position: static; }
  .cmp__gin { display: inline-flex; position: sticky; left: 0; }
  .cmp__count { margin-left: 0; }
}
@media (max-width: 640px) {
  .checks--grid { grid-template-columns: 1fr; }
  .aud { grid-template-columns: 1fr; gap: 10px; }
  .aud__tab { padding: 18px 20px 18px 54px; }
  .aud__tab::before { left: 20px; top: 23px; }
  .aud__name { font-size: 1.35rem; }
}
/* Solutions menu links land on these cards; on desktop the section heading stays in view above them */
.trio > [id] { scroll-margin-top: 200px; }
@media (max-width: 899px) {
  .trio > [id] { scroll-margin-top: 40px; }
}

/* ---------- Platform pages ---------- */
/* Product hero: the copy on the left and a real app capture on the right that runs off the right
   and bottom edges. The homepage navy (owner, 2026-11-01, was charcoal), lifting slightly behind the
   capture so it stands out, with teal kept for the small icons and one faint arc. The capture sits
   outside the flow, so the copy alone sets the hero's height */
.hero--product {
  min-height: 0; display: block;
  background: radial-gradient(60% 85% at 76% 58%, #12264a, var(--navy-900) 72%) var(--navy-900);
}
.hero__art--ribbons { width: 74%; }
.hero--product .hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; padding-top: 156px; padding-bottom: 104px; }
.hero--product .hero__lede { margin-top: 26px; max-width: 34rem; font-size: 1.125rem; }
.hero--product .hero__ctas { margin-top: 38px; }
.hero__points { margin-top: 56px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hero__points li { display: flex; flex-direction: column; gap: 12px; padding: 2px 18px; border-left: 1px solid var(--rule-dark); font-size: .875rem; line-height: 1.4; color: var(--on-dark-2); }
.hero__points li:first-child { padding-left: 0; border-left: 0; }
.hero__points svg { flex: none; width: 24px; height: 24px; color: var(--accent, var(--teal-bright)); }
.hero__visual { position: relative; }
.shot { margin: 0; background: #fff; border-radius: 8px; overflow: hidden; }
.shot img { display: block; width: 100%; height: auto; }
.shot--hero {
  position: absolute; top: 4px; left: 0; width: max(100%, 1080px);
  border-radius: 10px 0 0 0;
  box-shadow: 0 60px 120px -40px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .12);
}
.shot--panel { border: 1px solid var(--rule); box-shadow: 0 40px 80px -48px rgba(14, 26, 47, .35), 0 2px 6px rgba(14, 26, 47, .05); }
.shot--dark { box-shadow: 0 60px 120px -50px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .08); }

/* Overview: a centred heading over four columns with icon tiles */
.h2--center { max-width: 30ch; margin: 0 auto clamp(48px, 6vw, 72px); text-align: center; }
.pillar__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 26px; border-radius: 10px; background: var(--teal-soft); color: var(--teal-ink); }
.pillar__icon svg { width: 28px; height: 28px; }
.trio .plan-note { margin-top: 20px; color: var(--teal-ink); font-size: .72rem; line-height: 1.3; }
.trio + .plans__notes { margin-top: 48px; }

/* Pages with a product hero (Platform and organization pages, Pricing): a navy hero, with the teal
   --accent on its small icons and the current nav state */
.has-product-hero { --accent: var(--teal-bright); }
@media (min-width: 1000px) {
  .has-product-hero .nav__links > a[aria-current="page"], .has-product-hero .nav__trigger.is-current { box-shadow: inset 0 -1px 0 var(--accent); }
}

/* Organization pages: the audience's guides and tools from the live library, as a list of links */
.res { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 48px; border-top: 1px solid var(--rule); }
.res a { display: block; padding: 22px 0 24px; border-bottom: 1px solid var(--rule); }
.res strong { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font: 600 1rem/1.4 var(--sans); color: var(--ink); }
.res strong svg { flex: none; width: 14px; height: 14px; color: var(--ink-3); transition: transform .25s var(--ease), color .25s; }
.res a:hover strong svg { transform: translateX(3px); color: var(--ink); }
.res span { display: block; margin-top: 6px; color: var(--ink-3); font-size: .9063rem; line-height: 1.55; }
.res__name { display: inline-flex; align-items: baseline; gap: 9px; font: inherit; }  /* a free tool's related links: the live icon before a tool's name */
.res__name i { color: var(--teal-ink); font-size: .9375rem; }
.trio .text-link { margin-top: 20px; }
@media (max-width: 899px) {
  .res { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .hero--product .hero__inner { gap: 48px; }
  .hero__points { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
  .hero__points li:nth-child(odd) { padding-left: 0; border-left: 0; }
}
@media (max-width: 899px) {
  /* The capture follows the copy and runs off the right edge and the hero's bottom */
  .hero--product .hero__inner { grid-template-columns: 1fr; gap: 48px; padding-bottom: 0; }
  .hero__art--ribbons { width: 100%; }
  .hero__visual { height: clamp(240px, 64vw, 440px); }
  .shot--hero { top: 0; width: max(170%, 640px); }
}

/* Final refinement (owner review, 2026-11-01) */
[hidden] { display: none !important; }
/* A stage marker's ring matches the section behind it */
.band .stage__num { box-shadow: 0 0 0 6px var(--cream-deep); }
/* Capability grids on slate, where screenshots and the certificate used to be */
.on-dark .trio, .on-dark .trio > * { border-color: var(--rule-dark); }
.on-dark .trio h3 { color: #fff; }
.on-dark .trio p { color: var(--on-dark-2); }
.on-dark .trio .plan-note { color: #6fd0c9; }
.structures .split-head .h2 { max-width: none; }
.structures .split-head__lede { margin-top: 0; }
.trio + .evidence__meta { margin-top: 40px; }
/* Pricing cards: billing, then included capacity, then what sets the plan apart */
.plan__annual strong { color: var(--ink); font-weight: 600; }
.plan__fit { margin-top: 10px; color: var(--teal-ink); font: 600 .8125rem/1.3 var(--sans); }
/* The finder's note keeps its line on every card, so the cards stay aligned whichever one it marks */
.plan__fit[hidden] { display: block !important; visibility: hidden; }
.plan__caps { margin: 20px 0 0; border-top: 1px solid var(--rule); font-size: .8438rem; }
.plan__caps div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--rule); }
.plan__caps dt { color: var(--ink-3); }
.plan__caps dd { margin: 0; color: var(--ink); font-weight: 600; text-align: right; white-space: nowrap; }
.plan__lead { margin-top: 22px; color: var(--ink); font: 600 .8125rem/1.3 var(--sans); }
.plan__lead + .checks { margin-top: 12px; }
@media (max-width: 760px) {
  .cmp tbody th, .cmp thead th:first-child { padding-left: 12px; }
}

/* Resource library (started 2026-11-01, Templates first). Quieter than the marketing pages:
   cream throughout with the light nav, a compact head with a breadcrumb and no artwork, white
   cards on cream, teal only on links and actions, and one product note in place of a closing */
.lib-head { padding: 128px 0 48px; border-bottom: 1px solid var(--rule); }
.crumbs ol { display: flex; flex-wrap: wrap; font: 500 .8125rem/1.5 var(--sans); color: var(--ink-3); }
.crumbs li + li::before { content: "/"; margin: 0 10px; color: var(--rule-strong); }
.crumbs a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.crumbs [aria-current] { color: var(--ink-2); }
.lib-head__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; align-items: end; margin-top: 28px; }
.lib-title { font: 380 clamp(2.5rem, 4vw, 3.75rem)/1.05 var(--serif); letter-spacing: -.02em; color: var(--navy-900); text-wrap: balance; }
.lib-lede { max-width: 40rem; margin-top: 20px; font-size: 1.125rem; line-height: 1.65; color: var(--ink-2); }
.lib-facts { display: flex; flex-wrap: wrap; row-gap: 16px; margin: 32px 0 0; }
.lib-facts > div { padding: 0 28px; border-left: 1px solid var(--rule); }
.lib-facts > div:first-child { padding-left: 0; border-left: 0; }
.lib-facts dt { font-size: .8125rem; color: var(--ink-3); }
.lib-facts dd { margin: 4px 0 0; font: 600 .9375rem/1.45 var(--sans); color: var(--ink); }
.lib-facts--doc { display: grid; grid-template-columns: minmax(0, 2.2fr) repeat(3, minmax(0, 1fr)); margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--rule); }
.lib-section { padding: clamp(56px, 7vw, 88px) 0; }
.lib-section--rule { border-top: 1px solid var(--rule); }
.lib-section--tight { padding-top: 0; }
.wrap.lib-section { padding-left: var(--gutter); padding-right: var(--gutter); }  /* the blog grids: keep the wrap's gutters, which .lib-section's padding would drop */
.lib-h2 { margin-bottom: 32px; font: 390 clamp(1.75rem, 2.6vw, 2.25rem)/1.15 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.motion .lib-head [data-load] { opacity: 0; transform: translateY(14px); animation: rise .9s var(--ease) forwards; }
.motion .lib-head [data-load="2"] { animation-delay: .1s; }
.motion .lib-head [data-load="4"] { animation-delay: .2s; }
.motion .lib-head [data-load="5"] { animation-delay: .3s; }

/* Jurisdiction picker: a native select, styled to match the inputs */
.juris { padding: 22px 24px 20px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; }
.juris__label { display: block; font: 600 .875rem/1.3 var(--sans); color: var(--ink); }
.juris__select { position: relative; margin-top: 10px; }
.juris__select select {
  width: 100%; height: 48px; padding: 0 40px 0 14px; appearance: none; -webkit-appearance: none;
  border: 1px solid var(--rule-strong); border-radius: 3px; background: #fff; color: var(--ink);
  font: 500 1rem/1 var(--sans); cursor: pointer;
}
.juris__select select:hover { border-color: var(--ink-3); }
.juris__select svg { position: absolute; right: 15px; top: 50%; width: 12px; height: 12px; margin-top: -6px; pointer-events: none; color: var(--ink-2); }
.juris__note { margin-top: 10px; font-size: .8125rem; line-height: 1.5; color: var(--ink-3); }

/* Templates catalogue: a group heading that stays in view beside its documents */
.cat { padding-top: 24px; }
.cat__group { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; padding: 48px 0; }
.cat__group + .cat__group { border-top: 1px solid var(--rule); }
.cat__head { position: sticky; top: 32px; align-self: start; }
.cat__title { font: 390 1.625rem/1.2 var(--serif); color: var(--navy-900); }
.cat__head p { margin-top: 10px; font-size: .9375rem; line-height: 1.6; color: var(--ink-3); }
.cat__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.tpl { display: flex; flex-direction: column; padding: 26px 26px 20px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; transition: border-color .2s, box-shadow .25s; }
.tpl:hover { border-color: var(--rule-strong); box-shadow: 0 18px 40px -28px rgba(14, 26, 47, .45); }
.tpl__glyph { width: 26px; height: 32px; color: var(--ink-3); }
.tpl__name { margin-top: 20px; font: 600 1.0625rem/1.3 var(--sans); color: var(--ink); }
.tpl__desc { flex: 1; margin-top: 8px; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.tpl__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--rule); font-size: .8125rem; }
.tpl__meta { color: var(--ink-3); }
.tpl__go { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--teal-ink); text-align: right; }
.tpl__go svg { flex: none; width: 13px; height: 13px; transition: transform .25s var(--ease); }
.tpl:hover .tpl__go svg { transform: translateX(3px); }

/* Numbered steps and the drafting-aid caveat */
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); counter-reset: step; border-top: 1px solid var(--rule); }
.steps li { counter-increment: step; padding: 28px 32px 0 0; }
.steps li + li { padding-left: 32px; border-left: 1px solid var(--rule); }
.steps li::before { content: counter(step, decimal-leading-zero); display: block; font: 600 .8125rem/1 var(--sans); letter-spacing: .04em; color: var(--teal-ink); }
.steps strong { display: block; margin-top: 14px; font: 600 1.0625rem/1.3 var(--sans); }
.steps span { display: block; margin-top: 8px; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.caveat { margin-top: 40px; font-size: .875rem; color: var(--ink-3); }

/* The product note: one white panel, not a closing band */
.lib-note { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: center; padding: 40px 44px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; }
.lib-note__title { font: 390 1.75rem/1.2 var(--serif); color: var(--navy-900); }
.lib-note p:not(.plan-note) { max-width: 44rem; margin-top: 12px; font-size: .9688rem; line-height: 1.65; color: var(--ink-2); }
.lib-note .plan-note { margin-top: 18px; }
.lib-note__ctas { display: flex; align-items: center; gap: 24px; }

/* Template page: the document and its notes at reading width, the download panel beside them */
.doc__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; align-items: start; }
.doc__main { max-width: 720px; }
.doc__aside { position: sticky; top: 32px; }

/* The PDF's first page, set in HTML from the generator's own markup (11pt body on a Letter page
   comes out at 13px here; assets/tpl-paper.css, generated by gen.py, styles the document itself),
   fading out before the signature blocks. The share register prints landscape, so its sheet is wider
   than it is tall */
.paper__sheet { position: relative; height: 720px; overflow: hidden; padding: 0 56px; background: #fff; border: 1px solid var(--rule); border-radius: 3px; box-shadow: 0 30px 60px -42px rgba(14, 26, 47, .5); color: #0b1220; }
.paper__sheet::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 170px; background: linear-gradient(rgba(255, 255, 255, 0), #fff 85%); }
.paper__sheet--wide { height: 540px; padding: 0 40px; }
.paper__head { display: flex; justify-content: space-between; align-items: center; padding: 34px 0 14px; border-bottom: 1px solid #e2e8f0; }
.paper__head img { width: auto; height: 22px; }
.paper__body { padding-top: 26px; font: 400 13px/1.5 var(--serif); }
/* A wide table in the PDF must not widen the page on a phone: the sheet clips it */
.paper { min-width: 0; }
.paper figcaption { margin-top: 14px; font-size: .8125rem; line-height: 1.55; color: var(--ink-3); }

.prose { margin-top: 56px; }
.prose h2 { font: 390 1.75rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.prose h2:not(:first-child) { margin-top: 48px; }
.prose p { margin-top: 14px; font-size: 1.0313rem; line-height: 1.7; color: var(--ink-2); }
.prose .checks { margin-top: 18px; }
.prose .text-link { margin-top: 22px; color: var(--teal-ink); }

/* Download panel */
.get { padding: 28px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; box-shadow: 0 24px 50px -36px rgba(14, 26, 47, .45); }
.get__title { font: 390 1.5rem/1.2 var(--serif); color: var(--navy-900); }
.get__sub { margin-top: 6px; font-size: .875rem; color: var(--ink-3); }
.get__form { display: grid; gap: 6px; margin-top: 18px; }
.get__form label { margin-top: 8px; font: 600 .8125rem/1.3 var(--sans); color: var(--ink-2); }
.get__form input[type="text"], .get__form input[type="email"] { height: 46px; padding: 0 14px; border: 1px solid var(--rule-strong); border-radius: 3px; background: #fff; color: var(--ink); font: 400 1rem/1 var(--sans); }
.get__form input:focus-visible { outline-offset: 1px; }
.get__form .get__check { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; font-weight: 500; line-height: 1.5; color: var(--ink-3); }
.get__check input { flex: none; margin: 3px 0 0; accent-color: var(--navy-900); }
.get__check a { text-decoration: underline; text-underline-offset: 3px; }
.get__btn { width: 100%; margin-top: 14px; }
.get__fine { margin-top: 10px; font-size: .78rem; line-height: 1.5; color: var(--ink-3); }
.get__done { margin-top: 10px; padding: 10px 12px; border-radius: 3px; background: var(--teal-soft); color: var(--teal-ink); font-size: .8125rem; }
.more { margin-top: 28px; }
.more__title { font: 600 .875rem/1.3 var(--sans); color: var(--ink); }
.more ul { margin-top: 8px; }
.more a { display: block; padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: .9063rem; color: var(--ink-2); transition: color .15s; }
.more a:hover { color: var(--teal-ink); }

@media (max-width: 1100px) {
  .cat__group { grid-template-columns: 1fr; gap: 24px; }
  .cat__head { position: static; }
  .doc__grid { grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; }
}
@media (max-width: 899px) {
  .lib-head { padding: 116px 0 40px; }
  .lib-head__grid { grid-template-columns: 1fr; gap: 32px; }
  .lib-facts--doc { grid-template-columns: 1fr 1fr; row-gap: 20px; }
  .lib-facts--doc > div:nth-child(3) { padding-left: 0; border-left: 0; }
  /* One column: the document, then the download panel, then the notes */
  .doc__grid { grid-template-columns: 1fr; gap: 0; }
  .doc__main { display: contents; }
  .paper { order: 1; }
  .doc__aside { order: 2; position: static; margin-top: 40px; }
  .prose { order: 3; }
  .steps { grid-template-columns: 1fr; }
  .steps li { padding-right: 0; }
  .steps li + li { margin-top: 28px; padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .lib-note { grid-template-columns: 1fr; gap: 24px; padding: 32px 28px; }
  .lib-note__ctas { flex-wrap: wrap; }
}
@media (max-width: 640px) {
  .cat__items { grid-template-columns: 1fr; }
  .lib-facts { display: grid; grid-template-columns: 1fr 1fr; }
  .lib-facts > div { padding: 0 0 0 18px; }
  .lib-facts > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .paper__sheet { height: 460px; padding: 0 22px; }
  .paper__head { padding-top: 22px; }
}

/* Three hero levels (owner, 2026-11-01): navy for the brand, solution and platform pages (Pricing
   too, owner's later call); a soft teal-grey for the resource indexes; ivory with a compact head for
   articles, template pages and documentation. Level 2 sits between the dark heroes and the cream
   content: navy serif type, the light nav, a light replica of the closing's slabs on the right
   (owner, 2026-11-01), and a clear change of background where the content starts */
.hero--mist, .lib-head--mist { background: var(--mist); }
.hero--mist { min-height: 0; display: block; color: var(--ink); }
.hero--mist .hero__inner { padding-top: 152px; padding-bottom: 88px; }
.hero--mist .hero__title { color: var(--navy-900); }
.hero--mist .hero__lede { max-width: 36rem; margin-top: 26px; font-size: 1.125rem; color: var(--ink-2); }
.lib-head--mist { position: relative; overflow: hidden; padding-bottom: 0; border-bottom: 0; }
.lib-head--mist .wrap { position: relative; z-index: 2; }
.lib-head--mist .lib-head__grid { align-items: center; gap: 72px; }
/* The picker sits in the hero behind a divider rather than in a card of its own */
.lib-head--mist .juris { padding: 6px 0 6px 40px; background: none; border: 0; border-left: 1px solid rgba(14, 26, 47, .14); border-radius: 0; }
.lib-head--mist .juris__note { color: var(--ink-2); }
/* Statistics: value over label, in a ruled row along the foot of the hero */
.lib-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 52px 0 0; border-top: 1px solid rgba(14, 26, 47, .14); }
.lib-stats > * { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 24px 28px 30px; border-left: 1px solid rgba(14, 26, 47, .14); }
.lib-stats > *:first-child { padding-left: 0; border-left: 0; }
.lib-stats dd { margin: 0; font: 390 2rem/1 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.lib-stats dt { margin-top: 10px; font-size: .875rem; color: var(--ink-2); }
.lib-head--mist + .cat { padding-top: 40px; }
/* The blog lists' header in the product heroes' navy, with their arc (owner, 2026-11-01) */
.lib-head--navy { background: radial-gradient(60% 85% at 76% 58%, #12264a, var(--navy-900) 72%) var(--navy-900); }
.lib-head--navy .crumbs ol { color: var(--on-dark-2); }
.lib-head--navy .crumbs a:hover, .lib-head--navy .crumbs [aria-current] { color: #fff; }
.lib-head--navy .crumbs li + li::before { color: var(--rule-dark); }
.lib-head--navy .lib-title { color: #fff; }
.lib-head--navy .lib-lede { color: var(--on-dark-2); }
.lib-head--navy .juris { border-left-color: var(--rule-dark); }
.lib-head--navy .juris__label { color: #fff; }
.lib-head--navy .juris__note { color: var(--on-dark-2); }
.lib-head--navy .gl-search__field input { border-color: transparent; }
.lib-head--navy .lib-stats, .lib-head--navy .lib-stats > * { border-color: var(--rule-dark); }
.lib-head--navy .lib-stats dd { color: #fff; }
.lib-head--navy .lib-stats dt { color: var(--on-dark-2); }
/* Author pages in the live layout (owner, 2026-11-01): the photo beside the name, role and icon links */
.author-head.author-head--hero { gap: 40px; margin: 28px 0 72px; }
.author-head.author-head--hero img { width: 160px; height: 160px; }
.author-head--hero .lib-lede { margin-top: 14px; }
.author-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 22px; font: 600 .875rem/1 var(--sans); }
.author-links a { color: #fff; transition: color .15s; }
.author-links a:hover { color: var(--teal-bright); }
.author-links i { font-size: 1.25rem; }
@media (max-width: 640px) { .author-head.author-head--hero { gap: 24px; margin-bottom: 56px; } .author-head.author-head--hero img { width: 112px; height: 112px; } }
/* Numbered pages under a list of articles, in the chips' style: the current page filled navy */
.pager { display: flex; align-items: center; justify-content: center; gap: 28px; margin-top: 72px; }
.pager ol { display: flex; gap: 8px; }
.pager ol a { display: grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid var(--rule-strong); border-radius: 999px; background: #fff; color: var(--ink-2); font: 500 .875rem/1 var(--sans); transition: border-color .15s, color .15s; }
.pager ol a:hover { border-color: var(--ink); color: var(--ink); }
.pager ol a[aria-current="page"] { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.pager__step { display: inline-flex; align-items: center; gap: 10px; font: 600 .875rem/1 var(--sans); color: var(--ink); }
.pager__step svg { width: 14px; height: 14px; transition: transform .25s var(--ease); }
.pager__step--prev svg { transform: scaleX(-1); }
a.pager__step--next:hover svg { transform: translateX(3px); }
a.pager__step--prev:hover svg { transform: scaleX(-1) translateX(3px); }
.pager__step.is-off { visibility: hidden; }
@media (max-width: 640px) {
  .pager { gap: 14px; margin-top: 56px; }
  .pager__word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 899px) {
  .hero--mist .hero__inner { padding-top: 124px; padding-bottom: 72px; }
  .lib-head--mist .lib-head__grid { gap: 32px; }
  .lib-head--mist .juris { padding: 0; border-left: 0; }
}
@media (max-width: 640px) {
  .lib-stats { grid-template-columns: 1fr 1fr; margin-top: 40px; }
  .lib-stats > * { padding: 20px 0 22px 20px; }
  .lib-stats > *:nth-child(3) { padding-left: 0; border-left: 0; }
  .lib-stats > *:nth-child(n+3) { border-top: 1px solid rgba(14, 26, 47, .14); }
  .lib-stats dd { font-size: 1.75rem; }
}
/* Template family page: the jurisdiction directory (each country's list runs down two columns),
   drafting notes, and the shared document preview at a smaller scale beside them */
.prose--first { margin-top: 0; }
.dir { margin-top: 28px; }
.dir__group + .dir__group { margin-top: 40px; }
.dir__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--rule-strong); }
.dir__head h3 { font: 600 1rem/1.3 var(--sans); color: var(--ink); }
.dir__head span { font-size: .8125rem; color: var(--ink-3); }
.dir__list { columns: 2; column-gap: 36px; }
.dir__list li { break-inside: avoid; }
.dir__list a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--rule); }
.dir__name { font: 500 .9688rem/1.35 var(--sans); color: var(--ink); transition: color .15s; }
.dir__cite { font-size: .8125rem; line-height: 1.35; color: var(--ink-3); text-align: right; }
.dir__list a:hover .dir__name { color: var(--teal-ink); }
.juris__last { margin-top: 12px; font: 600 .875rem/1.4 var(--sans); }
.juris__last a { color: var(--teal-ink); }
.juris__last a:hover { text-decoration: underline; text-underline-offset: 4px; }
.notes { display: grid; gap: 22px; margin-top: 18px; }
.notes dt { font: 600 1rem/1.4 var(--sans); color: var(--ink); }
.notes dd { margin: 6px 0 0; font-size: 1rem; line-height: 1.7; color: var(--ink-2); }
.paper figcaption a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.paper--mini .paper__frame { height: 360px; overflow: hidden; }
.paper--mini .paper__sheet { width: 720px; transform: scale(.5); transform-origin: 0 0; }
.paper--mini .paper__frame:has(.paper__sheet--wide) { height: 270px; }
@media (max-width: 1100px) {
  .paper--mini .paper__frame { height: 320px; }
  .paper--mini .paper__sheet { transform: scale(.4444); }
}
@media (max-width: 899px) {
  .doc__grid--family .doc__main { display: block; }
  .paper--mini { display: none; }
}
@media (max-width: 640px) {
  .dir__list { columns: 1; }
}

/* Learning Center: a topic jump list set into the head like the Templates picker, linked counts,
   the guides (the lead one shows its chapters), and topic rows that gather each topic's
   procedures, references, tools and templates from across the library */
.lib-jump { padding: 6px 0 6px 40px; border-left: 1px solid rgba(14, 26, 47, .14); }
.lib-jump p { font: 600 .875rem/1.3 var(--sans); color: var(--ink); }
.lib-jump ol { margin-top: 8px; }
.lib-jump a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(14, 26, 47, .1); font-size: .9375rem; color: var(--ink-2); transition: color .15s; }
.lib-jump li:last-child a { border-bottom: 0; }
.lib-jump a:hover { color: var(--teal-ink); }
.lib-jump svg { flex: none; width: 12px; height: 12px; transform: rotate(90deg); }
.lib-stats--links > li { display: block; }
.lib-stats a { display: block; }
.lib-stats b { display: block; font: 390 2rem/1 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.lib-stats a span { display: block; margin-top: 10px; font-size: .875rem; color: var(--ink-2); transition: color .15s; }
.lib-stats a:hover span { color: var(--teal-ink); }
.guide { display: flex; flex-direction: column; padding: 30px 30px 24px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; transition: border-color .2s, box-shadow .25s; }
.guide:hover { border-color: var(--rule-strong); box-shadow: 0 18px 40px -28px rgba(14, 26, 47, .45); }
.guide__main { display: flex; flex-direction: column; }
.guide__title { font: 390 1.5rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.guide__desc { flex: 1; margin-top: 12px; font-size: .9688rem; line-height: 1.6; color: var(--ink-2); }
.guide__meta { margin-top: 18px; font-size: .8125rem; color: var(--ink-3); }
.guide__go { display: flex; align-items: center; gap: 8px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--rule); font: 600 .875rem/1 var(--sans); color: var(--teal-ink); }
.guide__go svg { width: 13px; height: 13px; transition: transform .25s var(--ease); }
.guide:hover .guide__go svg { transform: translateX(3px); }
.guide--lead { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; padding: 40px 44px; }
.guide--lead .guide__title { font-size: clamp(1.75rem, 2.6vw, 2.25rem); line-height: 1.12; }
.guide--lead .guide__desc { flex: none; font-size: 1.0313rem; }
.guide--lead .guide__go { align-self: flex-start; border-top: 0; padding-top: 0; margin-top: 26px; }
.guide__toc { padding-left: 44px; border-left: 1px solid var(--rule); }
.guide__toc-title { display: block; font: 600 .875rem/1.3 var(--sans); color: var(--ink); }
.guide__toc ol { margin-top: 12px; columns: 2; column-gap: 28px; counter-reset: toc; }
.guide__toc li { display: flex; gap: 10px; padding: 7px 0; break-inside: avoid; counter-increment: toc; font-size: .875rem; line-height: 1.45; color: var(--ink-2); }
.guide__toc li::before { content: counter(toc, decimal-leading-zero); flex: none; padding-top: 2px; font: 600 .72rem/1.45 var(--sans); color: var(--teal-ink); }
.guides__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 20px; }
.topics .lib-h2 { margin-bottom: 8px; }
.topic { scroll-margin-top: 24px; }
.topic__guides { display: grid; gap: 10px; margin-top: 18px; }
.topic__guides a { display: block; font: 600 .875rem/1.4 var(--sans); color: var(--teal-ink); }
.topic__guides a:hover { text-decoration: underline; text-underline-offset: 4px; }
.topic__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 36px; align-content: start; }
.topic__col h4 { margin: 0; padding-bottom: 10px; border-bottom: 1px solid var(--rule-strong); font: 600 .875rem/1.3 var(--sans); color: var(--ink); }
.topic__col a { display: block; padding: 10px 0; border-bottom: 1px solid var(--rule); font-size: .9375rem; line-height: 1.4; color: var(--ink-2); transition: color .15s; }
.topic__col a:hover { color: var(--teal-ink); }
@media (max-width: 1100px) {
  .guide--lead { grid-template-columns: 1fr; gap: 32px; }
  .guide__toc { padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--rule); }
}
@media (max-width: 899px) {
  .lib-jump { padding: 0; border-left: 0; }
  .guides__grid, .topic__cols { grid-template-columns: 1fr; }
  .guide--lead { padding: 30px 28px; }
}
@media (max-width: 640px) {
  .guide__toc ol { columns: 1; }
}

/* Level 3 pages (template pages now; articles and documentation later): the head keeps a soft ivory
   and the content below sits on near-white, so the two read apart without a dividing rule
   (owner mockup, 2026-11-01) */
.lib-paper { background: var(--sheet); }
.lib-paper .lib-head { background: var(--ivory); border-bottom: 0; }
/* A facts row with no long statute name to make room for (template family pages) */
@media (min-width: 900px) {
  .lib-facts--even { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Glossary: the search set into the head, an A to Z strip along its foot (only letters with terms
   are links), a topic bar that stays in view, and the entries grouped by letter, two to a row */
.gl-search__field { position: relative; margin-top: 10px; }
.gl-search__field svg { position: absolute; left: 14px; top: 50%; width: 16px; height: 16px; margin-top: -8px; color: var(--ink-3); pointer-events: none; }
.gl-search__field input { width: 100%; height: 48px; padding: 0 14px 0 40px; border: 1px solid var(--rule-strong); border-radius: 3px; background: #fff; color: var(--ink); font: 500 1rem/1 var(--sans); }
.gl-search__field input::placeholder { color: var(--ink-3); font-weight: 400; }
.az { display: grid; grid-template-columns: repeat(27, minmax(0, 1fr)); margin-top: 52px; border-top: 1px solid rgba(14, 26, 47, .14); }
.az a, .az span { display: flex; align-items: center; justify-content: center; height: 64px; font: 390 1.25rem/1 var(--serif); }
.az a { color: var(--navy-900); transition: background-color .15s, color .15s; }
.az a:hover { background: rgba(255, 255, 255, .45); color: var(--teal-ink); }
.az span, .az a[aria-disabled="true"] { color: rgba(14, 26, 47, .25); pointer-events: none; }
.gl-bar { position: sticky; top: 0; z-index: 5; background: var(--cream); border-bottom: 1px solid var(--rule); }
.gl-bar__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.gl-chips { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; padding: 16px 0; }
.gl-chip { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 13px; border: 1px solid var(--rule-strong); border-radius: 999px; background: #fff; color: var(--ink-2); font: 500 .8438rem/1 var(--sans); white-space: nowrap; cursor: pointer; transition: border-color .15s, background-color .15s, color .15s; }
.gl-chip span { font-size: .75rem; color: var(--ink-3); }
.gl-chip:hover { border-color: var(--ink-3); color: var(--ink); }
.gl-chip[aria-pressed="true"] { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.gl-chip[aria-pressed="true"] span { color: var(--on-dark-3); }
.gl-count { flex: none; font-size: .875rem; color: var(--ink-3); }
.gl { padding-bottom: clamp(32px, 4vw, 56px); }
.gl-group { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 40px; padding: 44px 0; scroll-margin-top: 80px; }
.gl-group + .gl-group { border-top: 1px solid var(--rule); }
.gl-group__letter { position: sticky; top: 104px; align-self: start; font: 380 3.25rem/1 var(--serif); color: var(--navy-900); }
.gl-group__terms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; align-content: start; }
.gl-term { display: flex; flex-direction: column; padding: 18px 0 20px; border-bottom: 1px solid var(--rule); }
.gl-term__name { font: 600 1.0625rem/1.35 var(--sans); color: var(--ink); transition: color .15s; }
.gl-term:hover .gl-term__name { color: var(--teal-ink); }
.gl-term__alias { margin-top: 3px; font-size: .8125rem; line-height: 1.45; color: var(--ink-3); }
.gl-term__def { margin-top: 10px; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.gl-term__topic { margin-top: 10px; font: 600 .75rem/1.3 var(--sans); color: var(--teal-ink); }
.gl-empty { padding: 72px 0 40px; text-align: center; }
.gl-empty p { font: 390 1.5rem/1.3 var(--serif); color: var(--navy-900); }
.gl-empty .text-link { margin-top: 16px; padding: 0; background: none; border: 0; color: var(--teal-ink); cursor: pointer; }

/* Glossary term page: the definition leads, the name each country uses runs below it */
.term-head { max-width: 50rem; margin-top: 28px; }
.term-aka { margin-top: 14px; font-size: 1rem; color: var(--ink-3); }
.term-def { margin-top: 22px; font: 400 1.3125rem/1.6 var(--serif); color: var(--ink); }
.prose p a, .prose li a { color: var(--teal-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.more--first { margin-top: 0; }
.more a span { display: block; margin-top: 2px; font-size: .8125rem; color: var(--ink-3); }
.term-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding: 26px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.term-nav span { display: block; font-size: .8125rem; color: var(--ink-3); }
.term-nav strong { display: block; margin-top: 4px; font: 390 1.25rem/1.3 var(--serif); color: var(--navy-900); transition: color .15s; }
.term-nav a:hover strong { color: var(--teal-ink); }
.term-nav__next { text-align: right; }
.term-nav__all { font: 600 .875rem/1 var(--sans); color: var(--teal-ink); }
@media (min-width: 900px) {
  .lib-facts--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  .gl-group { grid-template-columns: 1fr; gap: 8px; padding: 32px 0; }
  .gl-group__letter { position: static; font-size: 2.5rem; }
  .gl-group__terms { grid-template-columns: 1fr; }
  .gl-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .gl-chips::-webkit-scrollbar { display: none; }
  .term-nav { grid-template-columns: 1fr 1fr; }
  .term-nav__all { grid-column: 1 / -1; order: 3; text-align: center; }
}
@media (max-width: 640px) {
  .az { grid-template-columns: repeat(9, minmax(0, 1fr)); margin-top: 40px; }
  .az a, .az span { height: 44px; font-size: 1.125rem; }
  .gl-count { display: none; }
}
/* In running text a list item can hold a link, so it flows as text with the marker set beside it
   (the flex layout used in plan cards would split the item at the link) */
/* A figure in an article (Learning Center diagrams, research charts), and a data table inside prose */
.prose figure { margin-top: 28px; }
.prose figure img { width: 100%; height: auto; border: 1px solid var(--rule); border-radius: 4px; background: #fff; }
.prose figcaption { margin-top: 10px; font-size: .8125rem; line-height: 1.55; color: var(--ink-3); }
.prose .table-scroll { margin-top: 18px; }
.prose .table-scroll .data-table { margin-top: 0; }
/* A numbered list in an article: a procedure or an order of priority, numbered in the accent */
.prose .numbered { display: grid; gap: 12px; margin-top: 18px; counter-reset: num; }
.prose .numbered > li { position: relative; padding-left: 28px; color: var(--ink-2); font-size: .9688rem; line-height: 1.65; counter-increment: num; }
.prose .numbered > li::before { content: counter(num) "."; position: absolute; left: 0; top: 0; font: 600 .9375rem/1.65 var(--sans); color: var(--teal-ink); }
.prose .checks li { display: block; position: relative; padding-left: 26px; }
.prose .checks li::before { position: absolute; left: 0; top: .78em; transform: none; }

/* How-to: procedure cards are the template cards without the document glyph; a procedure page sets
   its steps as a numbered sequence joined by a rule, with an on-this-page list in the aside */
.tpl--plain .tpl__name { margin-top: 0; }
.proc { margin-top: 24px; counter-reset: proc; }
.proc > li { position: relative; padding: 0 0 30px 56px; counter-increment: proc; }
.proc > li::before { content: counter(proc); position: absolute; left: 0; top: -2px; width: 34px; height: 34px; border-radius: 50%; background: var(--navy-900); color: #fff; display: grid; place-items: center; font: 600 .875rem/1 var(--sans); }
.proc > li::after { content: ""; position: absolute; left: 16.5px; top: 40px; bottom: 6px; width: 1px; background: var(--rule-strong); }
.proc > li:last-child { padding-bottom: 0; }
.proc > li:last-child::after { display: none; }
.proc h3 { font: 600 1.0938rem/1.4 var(--sans); color: var(--ink); }
.proc p { margin-top: 8px; }
.notes--juris dd a { display: inline-block; margin-left: 4px; font-weight: 600; color: var(--teal-ink); text-decoration: none; }
.notes--juris dd a:hover { text-decoration: underline; text-underline-offset: 3px; }
.prose { scroll-margin-top: 24px; }
.toc a { font-weight: 500; color: var(--ink); }

/* Jurisdictions: each country's guides as statute cards, three to a row, filtered by the head's
   search and the country bar; a jurisdiction page lists its seven topic guides as cards */
.jur-list { padding-top: 8px; }
.jur-group { padding: 40px 0 8px; }
.jur-group .dir__head h2 { font: 600 1rem/1.3 var(--sans); color: var(--ink); }
.jur-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.jur { display: flex; flex-direction: column; padding: 18px 20px 20px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; transition: border-color .2s, box-shadow .25s; }
.jur:hover { border-color: var(--rule-strong); box-shadow: 0 14px 32px -24px rgba(14, 26, 47, .45); }
.jur__name { font: 600 1rem/1.35 var(--sans); color: var(--ink); transition: color .15s; }
.jur:hover .jur__name { color: var(--teal-ink); }
.jur__short { margin-top: 4px; font: 600 .8125rem/1.3 var(--sans); color: var(--teal-ink); }
.jur__statute { margin-top: 8px; font-size: .8125rem; line-height: 1.5; color: var(--ink-3); }
.lib-intro { max-width: 44rem; margin: -18px 0 28px; font-size: 1rem; line-height: 1.65; color: var(--ink-2); }
.lib-updated { margin-top: 18px; font-size: .8125rem; color: var(--ink-3); }
.topic-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
@media (max-width: 1100px) {
  .jur-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .jur-grid, .topic-cards { grid-template-columns: 1fr; }
}
/* A three-column facts strip can run to a second row; each row starts flush, like the first */
@media (min-width: 900px) {
  .lib-facts--three { row-gap: 22px; }
  .lib-facts--three > div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
}
@media (max-width: 899px) {
  .lib-facts--three > div:nth-child(odd) { padding-left: 0; border-left: 0; }
}

/* Research: editorial standards set into the head, publications as rows with their metadata and
   evidence basis beside them (a caution colour where the basis is limited), and on a report page a
   citation card, the tiers as a ruled list, the dimensions numbered and a data table */
.lib-standards ul { margin-top: 10px; }
.lib-standards li { position: relative; padding: 8px 0 8px 22px; border-bottom: 1px solid rgba(14, 26, 47, .1); font-size: .9063rem; line-height: 1.45; color: var(--ink-2); }
.lib-standards li:last-child { border-bottom: 0; }
.lib-standards li::before { content: ""; position: absolute; left: 0; top: 16px; width: 12px; height: 1px; background: var(--teal-ink); }
.pubs { display: grid; gap: 16px; }
.pub { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 48px; padding: 32px 36px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; transition: border-color .2s, box-shadow .25s; }
.pub:hover { border-color: var(--rule-strong); box-shadow: 0 18px 40px -28px rgba(14, 26, 47, .45); }
.pub__main { display: flex; flex-direction: column; }
.pub__title { font: 390 1.625rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.pub--lead .pub__title { font-size: clamp(1.75rem, 2.6vw, 2.25rem); }
.pub__desc { flex: 1; margin-top: 12px; font-size: .9688rem; line-height: 1.65; color: var(--ink-2); }
.pub__go { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; font: 600 .875rem/1 var(--sans); color: var(--teal-ink); }
.pub__go svg { width: 13px; height: 13px; transition: transform .25s var(--ease); }
.pub:hover .pub__go svg { transform: translateX(3px); }
.pub__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; margin: 0; padding-left: 36px; border-left: 1px solid var(--rule); align-content: start; }
.pub__meta dt { font-size: .78rem; color: var(--ink-3); }
.pub__meta dd { margin: 3px 0 0; font: 600 .875rem/1.45 var(--sans); color: var(--ink); }
.pub__basis { grid-column: 1 / -1; padding-top: 14px; border-top: 1px solid var(--rule); }
.pub__basis dd { font-weight: 500; color: var(--ink-2); }
.pub__basis--caution dd { color: var(--amber); }
.cite { max-width: 52rem; margin-top: 40px; padding: 22px 26px; border-left: 2px solid var(--teal-ink); background: var(--paper); }
.cite__title { font: 600 .875rem/1.3 var(--sans); color: var(--ink); }
.cite p + p { margin-top: 8px; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.cite-card__text { margin-top: 10px; font-size: .875rem; line-height: 1.6; color: var(--ink-2); overflow-wrap: anywhere; }
.cite-card__copy { margin-top: 14px; padding: 0; background: none; border: 0; color: var(--teal-ink); cursor: pointer; }
.tiers { margin-top: 24px; border-top: 1px solid var(--rule); }
.tiers li { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 28px; padding: 20px 0; border-bottom: 1px solid var(--rule); }
.tiers__head strong { display: block; font: 390 1.375rem/1.2 var(--serif); color: var(--navy-900); }
.tiers__head span { display: block; margin-top: 6px; font: 600 .8125rem/1.4 var(--sans); color: var(--teal-ink); }
.prose .tiers p { margin-top: 0; font-size: .9688rem; }
.prose .aside-note { margin-top: 24px; padding: 16px 20px; background: var(--paper); border: 1px solid var(--rule); border-radius: 3px; font-size: .9688rem; }
.aside-note strong { color: var(--ink); }
.dims { margin-top: 24px; counter-reset: dim; }
.dims > li { position: relative; padding: 22px 0 22px 52px; border-top: 1px solid var(--rule); counter-increment: dim; }
.dims > li::before { content: counter(dim); position: absolute; left: 0; top: 20px; font: 390 1.75rem/1 var(--serif); color: var(--teal-ink); }
.dims h3 { font: 600 1.0625rem/1.4 var(--sans); color: var(--ink); }
.dims .checks { margin-top: 12px; gap: 8px; }
/* A research report's numbered entries (stages, failure modes): title, lede, then each part labelled */
.dims__lede { margin-top: 8px; font-size: 1rem; line-height: 1.7; color: var(--ink-2); }
.dims .keyfacts { margin-top: 16px; }
.dims .keyfacts .checks { margin-top: 0; }
.keyfacts dd > p:first-child { margin-top: 0; }
/* A callout inside an article: a reference or a methodology notice (amber where the evidence is limited) */
.callout { margin-top: 24px; padding: 18px 22px; border-left: 3px solid var(--brand-teal); background: var(--paper); }
.callout__label { font: 600 .8125rem/1.3 var(--sans); color: var(--teal-ink); }
.prose .callout p { margin-top: 6px; font-size: .9688rem; }
.callout--caution { border-left-color: #c58a1b; background: #fdf7ea; }
.callout--caution .callout__label { color: #8a5c10; }
/* Headline figures in a report: value over label, with a line of context */
.stat-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: 24px; border-top: 1px solid var(--rule); }
.stat-row > div { padding: 18px 20px 18px 0; border-bottom: 1px solid var(--rule); }
.stat-row dt { font-size: .8125rem; color: var(--ink-3); }
.stat-row dd { margin: 6px 0 0; }
.stat-row strong { display: block; font: 390 2rem/1.1 var(--serif); color: var(--navy-900); }
.stat-row span { display: block; margin-top: 6px; font-size: .875rem; line-height: 1.5; color: var(--ink-2); }
.dist-bar { height: 8px; border-radius: 4px; background: var(--rule); overflow: hidden; }
.dist-bar__fill { height: 100%; background: var(--brand-teal); }
.prose__h3 { margin-top: 28px; font: 600 1.0625rem/1.4 var(--sans); color: var(--ink); }
.data-table { width: 100%; margin-top: 18px; border-collapse: collapse; font-size: .9375rem; }
.data-table th { padding: 10px 14px 10px 0; border-bottom: 1px solid var(--rule-strong); font: 600 .8125rem/1.3 var(--sans); color: var(--ink); text-align: left; }
.data-table td { padding: 12px 14px 12px 0; border-bottom: 1px solid var(--rule); color: var(--ink-2); vertical-align: top; line-height: 1.5; }
.data-table td:first-child { font: 390 1.25rem/1.2 var(--serif); color: var(--navy-900); }
/* A comparison across jurisdictions: names at text size, and a sideways scroll on a narrow screen
   rather than squeezed columns */
.table-scroll { overflow-x: auto; }
.prose, .doc__grid > * { min-width: 0; }  /* so a scrolling table, not the page, takes the overflow on a phone */
.data-table--compare { min-width: 640px; font-size: .875rem; }
.data-table--compare td:first-child { font: 600 .875rem/1.45 var(--sans); color: var(--ink); }
.data-table--compare td:first-child a:hover { color: var(--teal-ink); }
@media (max-width: 899px) {
  .lib-standards { padding: 0; border-left: 0; }
  .pub { grid-template-columns: 1fr; gap: 24px; padding: 26px 24px; }
  .pub__meta { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--rule); }
  .tiers li { grid-template-columns: 1fr; gap: 8px; }
}

/* Documentation: a Level 3 compact head, then the docs shell: a sticky sidebar with a filter, the
   content at reading width, and an on-this-page list on wide screens. No product pitch in the docs */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lib-head--compact { padding-bottom: 40px; }
.docs-start { display: grid; gap: 12px; }
.docs-start a { display: block; padding: 16px 18px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; transition: border-color .2s; }
.docs-start a:hover { border-color: var(--rule-strong); }
.docs-start strong { display: flex; align-items: center; gap: 8px; font: 600 .9375rem/1.3 var(--sans); color: var(--ink); }
.docs-start strong svg { width: 12px; height: 12px; color: var(--teal-ink); }
.docs-start span { display: block; margin-top: 4px; font-size: .8438rem; color: var(--ink-3); }
.docs { padding-top: 48px; }
.docs__grid { display: grid; grid-template-columns: 230px minmax(0, 1fr) 190px; gap: 56px; align-items: start; }
.docs__grid--index { grid-template-columns: 230px minmax(0, 1fr); }
.docs__side { position: sticky; top: 24px; max-height: calc(100vh - 48px); overflow-y: auto; padding: 2px 6px 24px 2px; scrollbar-width: thin; scrollbar-color: var(--rule-strong) transparent; }
.docs__main { min-width: 0; max-width: 720px; }
.docs__grid--index .docs__main { max-width: none; }
.docs-nav__search input { width: 100%; height: 40px; padding: 0 12px; border: 1px solid var(--rule-strong); border-radius: 3px; background: #fff; color: var(--ink); font: 400 .9063rem/1 var(--sans); }
.docs-nav__group { margin-top: 22px; }
.docs-nav__group p { font: 600 .78rem/1.3 var(--sans); color: var(--ink); }
.docs-nav__group ul { margin-top: 6px; }
.docs-nav__group a { display: block; margin-left: -10px; padding: 6px 10px; border-radius: 3px; font-size: .875rem; line-height: 1.4; color: var(--ink-2); transition: background-color .15s, color .15s; }
.docs-nav__group a:hover { background: rgba(14, 26, 47, .04); color: var(--ink); }
.docs-nav__group a[aria-current="page"] { background: var(--ivory); box-shadow: inset 2px 0 0 var(--teal-ink); color: var(--navy-900); font-weight: 600; }
.docs-nav__empty { margin-top: 16px; font-size: .875rem; color: var(--ink-3); }
.docs-nav__help { display: inline-block; margin-top: 26px; font: 600 .8125rem/1.4 var(--sans); color: var(--teal-ink); }
.docs-sec + .docs-sec { margin-top: 40px; }
.docs-sec__title { font: 390 1.375rem/1.2 var(--serif); color: var(--navy-900); }
.docs-sec__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.doc-card { padding: 20px 22px; }
.doc-card .tpl__desc { flex: none; }
.doc-card .plan-note { margin-top: 12px; }
.docs-empty { font-size: 1rem; color: var(--ink-3); }
.docs__main > .term-nav { margin-top: 56px; }
.docs__toc { position: sticky; top: 24px; }
.docs__toc > p { font: 600 .8125rem/1.3 var(--sans); color: var(--ink); }
.docs__toc .toc { margin-top: 10px; border-left: 1px solid var(--rule); }
.docs__toc .toc a { display: block; padding: 6px 0 6px 14px; font-size: .8438rem; font-weight: 400; line-height: 1.4; color: var(--ink-3); }
.docs__toc .toc a:hover { color: var(--teal-ink); }
.prose b { font-weight: 600; color: var(--ink); }
@media (max-width: 1100px) {
  .docs__grid { grid-template-columns: 220px minmax(0, 1fr); gap: 48px; }
  .docs__toc { display: none; }
}
@media (max-width: 899px) {
  .docs__grid, .docs__grid--index { grid-template-columns: 1fr; gap: 32px; }
  /* On an article the sidebar follows the content as "more in the docs"; on the index the cards
     already list every page, so only the filter stays */
  .docs__side { position: static; order: 2; max-height: none; overflow: visible; padding: 32px 0 0; border-top: 1px solid var(--rule); }
  .docs__grid--index .docs__side { order: 0; padding-top: 0; border-top: 0; }
  .docs__grid--index .docs-nav__group, .docs__grid--index .docs-nav__help { display: none; }
  .docs-sec__cards { grid-template-columns: 1fr; }
}
.proc .checks { margin-top: 12px; }

/* Releases and Changelog: share the docs shell. A release is an editorial row (when, story, tags,
   links to its changelog months); a changelog entry collapses to date, title and area */
@media (min-width: 900px) {
  .docs__grid--wide { grid-template-columns: 230px minmax(0, 1fr); }
}
.docs__grid--wide .docs__main { max-width: 820px; }
.lede-link { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.rel { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 32px; padding: 32px 0; border-top: 1px solid var(--rule); scroll-margin-top: 24px; }
.rel:first-child { padding-top: 0; border-top: 0; }
.rel__when strong { display: block; font: 390 1.25rem/1.2 var(--serif); color: var(--navy-900); }
.rel__when span { display: block; margin-top: 6px; font-size: .8125rem; line-height: 1.45; color: var(--ink-3); }
.rel__title { font: 390 1.625rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.rel__title a { transition: color .15s; }
.rel__title a:hover { color: var(--teal-ink); }
.rel__body > p { margin-top: 12px; font-size: .9688rem; line-height: 1.65; color: var(--ink-2); }
.rel__body > .rel__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.rel__tags span { padding: 3px 10px; border: 1px solid var(--rule-strong); border-radius: 999px; font: 500 .75rem/1.4 var(--sans); color: var(--ink-2); }
.rel__body > .rel__links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; margin-top: 18px; }
.rel__links .text-link { font-size: .875rem; color: var(--teal-ink); }
.rel__links span { font-size: .8438rem; color: var(--ink-3); }
.rel__links span a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.rels__more { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--rule); font-size: .9375rem; color: var(--ink-2); }
.rels__more a { margin-left: 4px; font-weight: 600; color: var(--teal-ink); }
.cl-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--rule); }
.cl-bar .gl-chips { padding: 0; }
.cl-expand { flex: none; margin-top: 9px; padding: 0; background: none; border: 0; font: 600 .875rem/1 var(--sans); color: var(--teal-ink); cursor: pointer; }
.cl-month { padding-top: 36px; scroll-margin-top: 24px; }
.cl-month__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; padding-bottom: 10px; border-bottom: 1px solid var(--rule-strong); }
.cl-month__head h2 { font: 390 1.5rem/1.2 var(--serif); color: var(--navy-900); }
.cl-month__head > span { font-size: .8125rem; color: var(--ink-3); }
.cl-month__rel a { color: var(--teal-ink); }
.cl { border-bottom: 1px solid var(--rule); }
.cl summary { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 16px; align-items: baseline; padding: 14px 0; list-style: none; cursor: pointer; }
.cl summary::-webkit-details-marker { display: none; }
.cl__date { font-size: .8125rem; color: var(--ink-3); }
.cl__title { font: 600 .9688rem/1.45 var(--sans); color: var(--ink); transition: color .15s; }
.cl summary:hover .cl__title { color: var(--teal-ink); }
.cl__title::after { content: "+"; margin-left: 8px; font-weight: 400; color: var(--ink-3); }
.cl[open] .cl__title::after { content: "\2212"; }
.cl__tags { display: flex; gap: 6px; }
.cl-tag { padding: 2px 8px; border-radius: 999px; background: rgba(14, 26, 47, .05); font: 500 .72rem/1.5 var(--sans); color: var(--ink-2); white-space: nowrap; }
.cl__body { padding: 0 0 18px 80px; font-size: .9375rem; line-height: 1.7; color: var(--ink-2); }
.cl__body p + p { margin-top: 10px; }
.cl__body a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
  .rel { grid-template-columns: 1fr; gap: 10px; }
  .cl-bar { flex-direction: column; }
  .cl-bar .gl-chips { flex-wrap: wrap; }
  .cl summary { grid-template-columns: 1fr; gap: 4px; }
  .cl__body { padding-left: 0; }
}

/* Free tools: the Templates catalogue under a sticky topic bar, so the group heads stay in view
   below the bar rather than behind it */
.ft-list { padding-top: 8px; }
.ft-list .cat__head { top: 96px; }

/* How-to version pages: a statute's key sections, or the facts beyond the head's four, as a ruled
   two-column list; links inside notes read as links, as they do in running text */
.keyfacts { margin-top: 18px; border-top: 1px solid var(--rule); }
.keyfacts > div { display: grid; grid-template-columns: minmax(0, 13rem) minmax(0, 1fr); gap: 24px; padding: 12px 0; border-bottom: 1px solid var(--rule); }
.keyfacts dt { font: 600 .9375rem/1.55 var(--sans); color: var(--ink); }
.keyfacts dd { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.notes:not(.notes--juris) dd a { color: var(--teal-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
@media (max-width: 640px) {
  .keyfacts > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Blog: image cards for the index, topic and author pages and related posts (the latest post leads,
   across the grid), the post's lead image above its text, and the author's note after it. The topic
   sits in the card's meta line and the post's facts, not above the title (no eyebrows) */
.posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; }
.post-card { display: flex; flex-direction: column; }
.post-card__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; background: var(--rule); }
.post-card__title { display: block; margin-top: 18px; font: 390 1.375rem/1.25 var(--serif); color: var(--navy-900); transition: color .15s; }
.post-card:hover .post-card__title { color: var(--teal-ink); }
.post-card__excerpt { margin-top: 10px; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.post-card__meta { margin-top: 14px; font-size: .8125rem; color: var(--ink-3); }
.post-card--lead { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: center; padding-bottom: 48px; border-bottom: 1px solid var(--rule); }
.post-card--lead .post-card__title { margin-top: 0; font-size: clamp(1.75rem, 2.4vw, 2.25rem); }
.post-card--lead .post-card__excerpt { font-size: 1.0313rem; }
.post-lead-img { margin-bottom: 8px; }
.post-lead-img img { width: 100%; height: auto; border-radius: 4px; }
.byline { display: flex; gap: 20px; align-items: flex-start; margin-top: 56px; padding: 26px 28px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; }
.byline img { flex: none; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.byline__name { font: 600 1rem/1.4 var(--sans); color: var(--ink); }
.byline__role { margin-top: 2px; font-size: .8125rem; color: var(--ink-3); }
.byline p:not(.byline__role) { margin-top: 10px; font-size: .9375rem; line-height: 1.65; color: var(--ink-2); }
.byline__links { display: flex; gap: 18px; margin-top: 12px; }
.byline__links a { font: 600 .8125rem/1.3 var(--sans); color: var(--teal-ink); }
.author-head { display: flex; gap: 28px; align-items: center; }
.author-head img { flex: none; width: 112px; height: 112px; border-radius: 50%; object-fit: cover; }
@media (max-width: 1100px) { .posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 899px) { .post-card--lead { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 640px) { .posts { grid-template-columns: 1fr; } .author-head { flex-direction: column; align-items: flex-start; } .byline { flex-direction: column; } }

/* Security (owner, 2026-11-01: keep the live page's structure): the trust summary beside the hero
   copy, the storage regions as a panel of rows, and the policies in their three groups */
.hero--trust .hero__inner { align-items: center; }
.hero__note { margin-top: 22px; font-size: .875rem; line-height: 1.6; color: var(--on-dark-2); }
.hero__note a { color: #fff; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .4); text-underline-offset: 3px; }
.trust-panel { padding: 28px 32px 8px; border: 1px solid var(--rule-dark); border-radius: 12px; background: rgba(255, 255, 255, .045); }
.trust-panel__title { font: 600 .8125rem/1 var(--sans); color: var(--on-dark-2); }
.trust-panel ul { margin-top: 8px; }
.trust-panel li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-top: 1px solid var(--rule-dark); }
.trust-panel li:first-child { border-top: 0; }
.trust-panel__icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 8px; background: rgba(76, 201, 189, .12); color: var(--teal-bright); }
.trust-panel__icon svg { width: 20px; height: 20px; }
.trust-panel__icon i { font-size: 1.125rem; line-height: 1; }  /* a converted page's panel keeps the live icons */
.trust-panel h2 { font: 600 .9688rem/1.4 var(--sans); color: #fff; }
.trust-panel p { margin-top: 4px; font-size: .875rem; line-height: 1.6; color: var(--on-dark-2); }
.on-dark .pillar__icon { background: rgba(76, 201, 189, .12); color: var(--teal-bright); }
.residency { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 72px; align-items: start; }
.residency__copy .lede { margin-top: 24px; }
.residency__panel { padding: 6px 36px 32px; border: 1px solid var(--rule); border-radius: 12px; background: var(--paper); box-shadow: 0 30px 60px -44px rgba(14, 26, 47, .3); }
.residency__panel li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--rule); }
.residency__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; background: var(--teal-soft); color: var(--teal-ink); }
.residency__icon svg { width: 20px; height: 20px; }
.residency__icon--app { background: var(--cream-deep); color: var(--ink-2); }  /* not a document region */
.residency__panel h3 { font: 600 1rem/1.4 var(--sans); color: var(--ink); }
.residency__panel p { margin-top: 4px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.residency__panel .residency__note { margin-top: 24px; padding: 18px 20px; border-radius: 8px; background: var(--cream); font-size: .875rem; line-height: 1.65; }
.policies { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.policies__head { display: flex; align-items: center; gap: 12px; padding-bottom: 20px; font: 390 1.375rem/1.2 var(--serif); letter-spacing: -.01em; }
.policies__head svg { flex: none; width: 22px; height: 22px; color: var(--teal-ink); }
.res--stack { grid-template-columns: 1fr; }
@media (max-width: 899px) {
  .hero--trust .hero__inner { padding-bottom: 80px; }
  .trust-panel { padding: 22px 22px 4px; }
  .residency { grid-template-columns: 1fr; gap: 40px; }
  .residency__panel { padding: 2px 22px 22px; }
  .policies { grid-template-columns: 1fr; }
}

/* Integrations (owner, 2026-11-01): the live hero's picture of records going in and out of
   Octelligence, the migration sources as rows in the storage panel's style, and a short requirements section */
.flow { display: grid; grid-template-columns: minmax(0, 1fr) 16px minmax(0, .78fr) 16px minmax(0, 1fr); gap: 10px; align-items: center; padding: 24px 20px; border: 1px solid var(--rule-dark); border-radius: 12px; background: rgba(255, 255, 255, .045); }
.flow__group { display: grid; gap: 10px; }
.flow__label { margin-bottom: 2px; font: 600 .75rem/1.3 var(--sans); color: var(--on-dark-2); }
.flow__node { display: flex; align-items: center; gap: 9px; padding: 11px 10px; border: 1px solid var(--rule-dark); border-radius: 8px; background: rgba(255, 255, 255, .04); font: 600 .8125rem/1.3 var(--sans); color: #fff; }
.flow__node svg { flex: none; width: 18px; height: 18px; color: var(--teal-bright); }
.flow__arrow { width: 16px; height: 16px; color: var(--on-dark-2); }
.flow__core { padding: 24px 12px; border: 1px solid rgba(76, 201, 189, .4); border-radius: 10px; background: rgba(76, 201, 189, .1); text-align: center; }
.flow__core img { display: block; width: 40px; height: 40px; margin: 0 auto 14px; }
.flow__name { font: 600 1rem/1.3 var(--sans); color: #fff; }
.flow__desc { margin-top: 6px; font-size: .8125rem; line-height: 1.5; color: var(--on-dark-2); }
.sources__steps { margin-top: 20px; color: var(--ink-2); font-size: .9688rem; line-height: 1.65; }
.sources__links { display: flex; flex-wrap: wrap; gap: 14px 32px; margin-top: 30px; }
.sources li { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px; align-items: baseline; padding: 20px 0; }
.sources li p { margin-top: 0; }
.int-req .split-head { margin-bottom: 0; align-items: center; }
.int-req .btn { margin-top: 28px; }
@media (max-width: 640px) {
  .flow { grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .flow__arrow { justify-self: center; transform: rotate(90deg); }
  .sources li { grid-template-columns: 1fr; gap: 4px; }
}

/* Converted comparison and platform pages (owner, 2026-11-01): copy beside a panel of dotted points, a grid
   of criteria with checks, a dark section's cards, and the Octelligence column of a comparison tinted */
.points li { grid-template-columns: 8px minmax(0, 1fr); gap: 18px; padding: 22px 0; }
.points li:last-child { border-bottom: 0; padding-bottom: 4px; }
.points__dot { width: 8px; height: 8px; margin-top: 8px; border-radius: 50%; background: var(--brand-teal); }
.mk-copy { margin-top: 16px; color: var(--ink-2); font-size: .9688rem; line-height: 1.7; }
#comparison { scroll-margin-top: 24px; }
.residency__copy .checks { margin-top: 20px; }
.criteria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }  /* criteria as cards, each with its topic's icon (owner, 2026-11-01) */
.criteria li { padding: 28px 28px 32px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.criteria__icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 22px; border-radius: 10px; background: var(--teal-soft); color: var(--teal-ink); }
.criteria__icon svg { width: 24px; height: 24px; }
.criteria h3 { font: 700 1.3125rem/1.3 var(--sans); color: var(--ink); }
.criteria p { margin-top: 10px; color: var(--ink-2); font-size: 1rem; line-height: 1.6; }
.mk-more { display: flex; flex-wrap: wrap; gap: 14px 32px; margin-top: 44px; }
.vcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.vcard { padding: 28px 28px 30px; border: 1px solid var(--rule-dark); border-radius: 12px; background: rgba(255, 255, 255, .04); }
.vcard .trust-panel__icon { margin-bottom: 18px; }
.vcard h3 { font: 390 1.375rem/1.25 var(--serif); color: #fff; }
.vcard p { margin-top: 10px; color: var(--on-dark-2); font-size: .9375rem; line-height: 1.65; }
.on-dark .mk-more .text-link { color: var(--on-dark); }
.mark { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: 7px; vertical-align: -4px; border-radius: 50%; }
.mark svg { width: 12px; height: 12px; }
.mark--yes { background: var(--teal-soft); color: var(--teal-ink); }
.mark--no { background: var(--cream-deep); color: var(--ink-3); }
.mark--part { background: var(--teal-soft); color: var(--teal-ink); }
@media (max-width: 1100px) { .criteria, .vcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .criteria, .vcards { grid-template-columns: 1fr; } }

/* The comparison card (owner, 2026-11-01): a white card with a navy header row, Octelligence's column headed in
   teal with its mark and tinted below, an icon beside each capability, and outlined marks of support */
.vs { position: relative; margin-top: 8px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 28px 56px -32px rgba(14, 26, 47, .32); overflow: hidden; }
.vs__table { width: 100%; min-width: 640px; border-collapse: separate; border-spacing: 0; font-size: .9375rem; }
.vs__table--multi { min-width: 880px; }  /* three vendors or more */
.vs__table thead th { padding: 18px 24px; background: var(--navy-800); color: #fff; font: 600 1rem/1.3 var(--sans); text-align: left; vertical-align: middle; }
.vs__table thead th:first-child { background: var(--navy-900); }
.vs__table thead th[data-ours] { background: var(--teal-ink); }
.vs__table thead th img { display: inline-block; width: 20px; height: 20px; margin-right: 10px; vertical-align: -4px; }
.vs__sub { display: block; margin-top: 5px; font: 500 .8125rem/1.3 var(--sans); color: var(--on-dark-2); }  /* a vendor's status under its name */
.vs-foot { max-width: 920px; margin-top: 24px; color: var(--ink-3); font-size: .875rem; line-height: 1.6; }  /* which plans a capability needs, and where vendor facts come from */
.vs__table tbody th, .vs__table td { padding: 14px 24px; border-top: 1px solid var(--rule); text-align: left; vertical-align: middle; }
.vs__table tbody tr:first-child > * { border-top: 0; }
.vs__table tbody th { font: 600 .9375rem/1.35 var(--sans); color: var(--ink); }
.vs__label { display: flex; align-items: center; gap: 14px; }
.vs__icon { flex: none; display: grid; place-items: center; width: 22px; height: 22px; color: var(--navy-700); }
.vs__icon svg { width: 20px; height: 20px; }
.vs__table td { color: var(--ink-2); line-height: 1.5; }
.vs__table td[data-ours] { background: rgba(76, 201, 189, .09); }
.vs__cell { display: flex; align-items: flex-start; gap: 12px; }
.vs .mark { flex: none; width: 22px; height: 22px; margin: 0; vertical-align: -6px; background: none; border: 1.6px solid currentColor; }
.vs .mark svg { width: 12px; height: 12px; }
.vs .mark--yes, .vs .mark--part { color: var(--brand-teal); }
.vs .mark--no, .vs .mark--verify, .vs .mark--info { color: var(--ink-3); }
.mark--verify, .mark--info { background: var(--cream-deep); color: var(--ink-3); }
@media (max-width: 640px) { .vs__table thead th, .vs__table tbody th, .vs__table td { padding: 12px 16px; } }
/* A table wider than its card (v2.js): a hint above it, a shadow on the edge that has more columns, and the
   capability column pinned while the rest scrolls, narrower on a phone */
.vs-hint { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin: -32px 0 12px; font: 600 .8125rem/1.3 var(--sans); color: var(--ink-3); }
.vs-hint[hidden] { display: none; }
.vs-hint svg { width: 14px; height: 14px; }
.vs::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 36px; background: linear-gradient(to left, rgba(14, 26, 47, .16), rgba(14, 26, 47, 0)); opacity: 0; transition: opacity .2s; pointer-events: none; }
.vs.is-scrollable:not(.is-end)::after { opacity: 1; }
.vs.is-scrollable .vs__table thead th:first-child, .vs.is-scrollable .vs__table tbody th { position: sticky; left: 0; z-index: 1; }
.vs.is-scrollable .vs__table tbody th { background: #fff; }
.vs.is-scrollable:not(.is-start) .vs__table thead th:first-child, .vs.is-scrollable:not(.is-start) .vs__table tbody th { box-shadow: 8px 0 10px -8px rgba(14, 26, 47, .22); }
@media (max-width: 640px) {
  .vs.is-scrollable .vs__table tbody th { width: 132px; min-width: 132px; }
  .vs.is-scrollable .vs__icon { display: none; }
}

/* Alternatives as cards of one shape (owner, 2026-11-01): the vendor named with its mark, who it's for, when it's the
   right pick, three points and a link at the foot; Octelligence's named in teal and outlined, an ending service flagged */
#alternatives { scroll-margin-top: 24px; }
.alts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.alt-card { display: flex; flex-direction: column; padding: 32px 32px 34px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.alt-card--ours { box-shadow: 0 0 0 1px rgba(10, 116, 112, .35), 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.alt-card__name { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-height: 28px; font: 700 .9375rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.alt-card--ours .alt-card__name { color: var(--teal-ink); }
.alt-card__name img { width: 28px; height: 28px; }
.alt-card__logo { display: grid; color: var(--navy-700); }
.alt-card__logo svg { width: 28px; height: 28px; }
.alt-card__name .pill { margin-left: auto; letter-spacing: 0; text-transform: none; }
.alt-card h3 { margin-top: 24px; font: 390 1.625rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.alt-card__best { margin-top: 14px; color: var(--ink-2); font-size: 1rem; line-height: 1.6; }
.alt-card__best strong { font-weight: 600; color: var(--ink); }
.alt-card .checks { align-content: start; margin: 24px 0 28px; padding-top: 24px; border-top: 1px solid var(--rule); gap: 10px; }
.alt-card .checks li { font-size: .9375rem; line-height: 1.5; }
.alt-card .text-link { align-self: flex-start; margin-top: auto; }
.alts__more { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 40px; color: var(--ink-2); }
@media (max-width: 1000px) { .alts { grid-template-columns: minmax(0, 1fr); max-width: 640px; } }
@media (min-width: 1001px) {  /* side by side, each part of a card lines up with the same part of the others */
  @supports (grid-template-rows: subgrid) { .alt-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; } }
}
@media (max-width: 640px) { .alt-card { padding: 26px 24px 28px; } .alt-card h3 { font-size: 1.4375rem; } }
@media (min-width: 1001px) { .alts--four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }  /* four alternatives, two by two (Pulley) */

/* Dates that ask for action, as a row of cards (Pulley alternatives, owner 2026-11-02): the date in the serif, what
   happens and what it means, and the source under them */
.dates { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dates li { padding: 26px 26px 28px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.dates__when { display: block; font: 390 1.75rem/1.15 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.dates h3 { margin-top: 14px; font: 600 1rem/1.4 var(--sans); color: var(--teal-ink); }
.dates p { margin-top: 8px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.dates__source { margin-top: 28px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
@media (max-width: 900px) { .dates { grid-template-columns: minmax(0, 1fr); } }

/* Migrate from Pulley (owner, 2026-11-02): Pulley's dates in the hero panel, dimmed once they pass, with their source
   under them; the reconciliation beside what usually needs a person; the real cap table screenshot beside four
   differentiators; the live form on the dark teal closing, with its optional fields folded away */
.trust-panel li.is-past { opacity: .5; }
.trust-panel__foot { margin: 0 -32px; padding: 16px 32px 12px; border-top: 1px solid var(--rule-dark); font-size: .8125rem; line-height: 1.55; color: var(--on-dark-2); }
.trust-panel__foot a, .consult__more a { color: #fff; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .4); text-underline-offset: 3px; }
.recon { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 56px; }
.recon__card { padding: 28px 28px 30px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.recon__card h3 { font: 700 1.125rem/1.3 var(--sans); color: var(--ink); }
.recon__card .checks { margin-top: 18px; }
.recon__note { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--rule); color: var(--teal-ink); font: 600 .9375rem/1.5 var(--sans); }
.why { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.why__list { display: grid; gap: 30px; }
.why__list li { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 18px; }
.why__list .criteria__icon { grid-row: span 2; margin: 0; }
.why__list h3 { font: 700 1.125rem/1.3 var(--sans); color: var(--ink); }
.why__list p { margin-top: 6px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
.consult .mk-formband { align-items: center; }
.consult .mk-form { position: relative; z-index: 1; }
.consult__steps { display: grid; gap: 16px; max-width: 34rem; margin-top: 32px; counter-reset: step; }
.consult__steps li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; color: var(--on-dark-2); line-height: 1.6; }
.consult__steps li::before { counter-increment: step; content: counter(step); display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(143, 224, 208, .45); border-radius: 50%; color: #8fe0d0; font: 600 .8125rem/1 var(--sans); }
.consult__steps strong { color: #fff; font-weight: 600; }
.consult__more { max-width: 34rem; margin-top: 28px; color: var(--on-dark-2); font-size: .9375rem; line-height: 1.6; }
.mk-form__more { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.mk-form__more summary { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; font: 600 .875rem/1.3 var(--sans); color: var(--ink-2); cursor: pointer; list-style: none; }
.mk-form__more summary::-webkit-details-marker { display: none; }
.mk-form__more summary::after { content: '+'; font: 400 1.25rem/1 var(--sans); color: var(--ink-3); }
.mk-form__more[open] summary::after { content: '\2212'; }
.mk-form__more-fields { display: grid; gap: 16px; padding-bottom: 18px; }
.mk-form__privacy { margin-top: 12px; color: var(--ink-3); font-size: .8125rem; text-align: center; }
.mk-form__success .get__title + p { margin-top: 8px; color: var(--ink-2); line-height: 1.6; }
@media (max-width: 1000px) { .why { grid-template-columns: minmax(0, 1fr); gap: 40px; } }
@media (max-width: 760px) { .recon { grid-template-columns: minmax(0, 1fr); margin-top: 40px; } .recon__card { padding: 24px 22px 26px; } }
@media (max-width: 640px) { .trust-panel__foot { margin: 0 -22px; padding: 14px 22px 10px; } }

/* Pulley shutdown guide (owner, 2026-11-02): an "In this guide" panel in the hero, the three deadlines dimmed once
   they pass, two notes under them, the export checklist as four groups whose items open to Pulley's instructions,
   and six questions for any provider */
.trust-panel--toc h2 a { color: #fff; }
.trust-panel--toc h2 a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(255, 255, 255, .45); }
.dates li.is-past { opacity: .55; }
.psd-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 36px; }
.psd-notes .callout { margin: 0; border-radius: 0 10px 10px 0; }
.psd-notes .callout p:not(.callout__label) { margin-top: 6px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
.psd-notes .callout a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.alt-card__logo i { font-size: 1.5rem; line-height: 1; }
.xcheck { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.xcheck__group { padding: 28px 28px 14px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.xcheck__head { display: flex; align-items: center; gap: 16px; margin-bottom: 10px; }
.xcheck__head .criteria__icon { margin: 0; }
.xcheck__head h3 { font: 700 1.3125rem/1.3 var(--sans); color: var(--ink); }
.xcheck details { border-top: 1px solid var(--rule); }
.xcheck summary { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px 0; font: 600 1rem/1.4 var(--sans); color: var(--ink); cursor: pointer; list-style: none; }
.xcheck summary::-webkit-details-marker { display: none; }
.xcheck summary::before { content: ""; width: 18px; height: 18px; border: 1.5px solid var(--teal-ink); border-radius: 50%; }
.xcheck summary::after { content: '+'; font: 400 1.375rem/1 var(--sans); color: var(--ink-3); }
.xcheck details[open] summary::after { content: '\2212'; }
.xcheck details p { padding: 0 0 18px 34px; color: var(--ink-2); font-size: .9688rem; line-height: 1.65; }
.xcheck details p a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.asks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 48px; counter-reset: ask; }
.asks li { padding-top: 22px; border-top: 1px solid var(--rule-strong); }
.asks li::before { counter-increment: ask; content: counter(ask, decimal-leading-zero); display: block; margin-bottom: 14px; font: 600 .75rem/1 var(--sans); letter-spacing: .12em; color: var(--teal-ink); }
.asks h3 { font: 390 1.375rem/1.25 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.asks p { margin-top: 10px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
@media (max-width: 1000px) { .asks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .psd-notes, .xcheck { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .asks { grid-template-columns: minmax(0, 1fr); gap: 32px; } .xcheck__group { padding: 22px 20px 10px; } }

/* A shared drive's folder as it usually looks (Shared drives, owner 2026-11-02): the window, its path, folders and
   files, and a card over its corner of what stays manual, marked neutrally rather than as failures */
.drive { position: relative; padding-bottom: 56px; }
.drive__window { width: 88%; border: 1px solid var(--rule); border-radius: 12px; background: #fff; overflow: hidden; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 30px 60px -40px rgba(14, 26, 47, .32); }
.drive__bar { display: flex; gap: 6px; padding: 12px 16px; border-bottom: 1px solid var(--rule); background: var(--paper); }
.drive__bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--rule-strong); }
.drive__path { display: flex; align-items: center; gap: 8px; padding: 16px 20px 10px; font: 600 .875rem/1.3 var(--sans); color: var(--ink); }
.drive__path svg, .drive__list svg { width: 18px; height: 18px; flex: none; color: var(--ink-3); }
.drive__list li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 20px; border-top: 1px solid var(--rule); color: var(--ink-2); font-size: .9063rem; }
.drive__list .is-folder svg { color: #c9a24a; }
.drive__when { color: var(--ink-3); font-size: .8125rem; }
.drive__note { position: absolute; right: 0; bottom: 0; width: min(300px, 62%); padding: 20px 22px 22px; border: 1px solid var(--rule); border-radius: 12px; background: var(--paper); box-shadow: 0 30px 60px -36px rgba(14, 26, 47, .4); }
.drive__note p { font: 600 .8125rem/1.3 var(--sans); color: var(--teal-ink); }
.drive__note ul { display: grid; gap: 9px; margin-top: 12px; }
.drive__note li { display: flex; align-items: baseline; gap: 10px; color: var(--ink-2); font-size: .875rem; line-height: 1.45; }
.drive__note li::before { content: ""; flex: none; width: 12px; height: 1px; background: var(--ink-3); transform: translateY(-4px); }
/* The same window around a spreadsheet cap table (Spreadsheets, owner 2026-11-02): a formula bar, then a grid with
   column letters and row numbers, built of divs so vs_body doesn't take it for a comparison table */
.drive--sheet { padding-bottom: 132px; }  /* the note clears the figures, overlapping only the window's foot */
.sheet__formula { display: flex; gap: 14px; padding: 10px 16px; border-bottom: 1px solid var(--rule); font: 500 .8125rem/1.3 var(--sans); color: var(--ink-2); }
.sheet__formula i { font-weight: 600; color: var(--ink-3); }
.sheet__grid { display: grid; grid-template-columns: 30px minmax(0, 1.5fr) minmax(0, .9fr) minmax(0, 1fr) minmax(0, .8fr); font-size: .8438rem; }
.sheet__grid span { padding: 9px 10px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sheet__grid .is-axis { background: var(--paper); color: var(--ink-3); font-size: .75rem; text-align: center; }
.sheet__grid .is-head { font-weight: 600; color: var(--ink); }
.sheet__grid .is-num { text-align: right; font-variant-numeric: tabular-nums; }
.sheet__grid .is-total { font-weight: 600; color: var(--ink); }
@media (min-width: 1200px) {  /* five challenges in one row (Spreadsheets) */
  .criteria--five { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
  .criteria--five li { padding: 24px 22px 28px; }
  .criteria--five h3 { font-size: 1.125rem; }
  .criteria--five p { font-size: .9375rem; }
}
@media (max-width: 640px) {
  .drive { padding-bottom: 0; }
  .sheet__grid { grid-template-columns: 26px minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, .8fr); font-size: .8125rem; }
  .sheet__grid span:nth-child(5n+3) { display: none; }  /* the Class column, so the figures fit */
  .sheet__grid span { padding: 9px 8px; }
  .drive__window { width: 100%; }
  .drive__note { position: static; width: auto; margin: 12px 16px 0; }
  .drive__when { display: none; }
}

/* Two products in sequence (Octelligence vs. Clerky, owner 2026-11-01): copy beside a card for each product, an arrow
   between them naming what passes from one to the other; stacked, with the arrow turned down, on a phone */
.handoff-split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; align-items: center; }
.handoff-split .lede { margin-top: 24px; }
.handoff { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 14px; }
.handoff__card { padding: 28px 26px 30px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.handoff__card--ours { box-shadow: 0 0 0 1px rgba(10, 116, 112, .35), 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.handoff__card .criteria__icon { margin-bottom: 20px; }
.handoff__card h3 { font: 390 1.625rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.handoff__role { margin-top: 6px; color: var(--ink-2); font-size: 1rem; line-height: 1.5; }
.handoff__card ul { display: grid; gap: 10px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--rule); }
.handoff__card li { display: flex; align-items: baseline; gap: 12px; color: var(--ink-2); font-size: .9375rem; line-height: 1.5; }
.handoff__card li::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--brand-teal); transform: translateY(-2px); }
.handoff__step { display: grid; align-content: center; justify-items: center; gap: 10px; max-width: 76px; color: var(--teal-ink); font: 600 .75rem/1.35 var(--sans); text-align: center; }
.handoff__arrow { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--teal-soft); }
.handoff__arrow svg { width: 18px; height: 18px; }
/* Two products side by side, no handoff between them (Octelligence vs. MinuteBox, owner 2026-11-02) */
.handoff--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.handoff__card .criteria__icon img { width: 26px; height: 26px; }
@media (max-width: 1100px) { .handoff-split { grid-template-columns: minmax(0, 1fr); gap: 48px; } }
@media (max-width: 640px) {
  .handoff { grid-template-columns: minmax(0, 1fr); }
  .handoff__step { grid-auto-flow: column; justify-content: center; align-items: center; max-width: none; }
  .handoff__arrow svg { transform: rotate(90deg); }
}

/* Athennian's pricing comparison (owner, 2026-11-01): a card for each vendor, Octelligence's named in teal with
   its mark, then a footer line with the plans button */
.vs-price { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.vs-price__card { padding: 36px 36px 38px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.vs-price__name { display: flex; align-items: center; gap: 12px; font: 700 .9375rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.vs-price__card--ours .vs-price__name { color: var(--teal-ink); }
.vs-price__name img { width: 28px; height: 28px; }
.vs-price__logo { display: grid; color: var(--navy-700); }
.vs-price__logo svg { width: 28px; height: 28px; }
.vs-price__card h3 { margin-top: 22px; font: 390 clamp(1.625rem, 2.4vw, 2rem)/1.15 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.vs-price__card > p:not([class]) { margin-top: 16px; color: var(--ink-2); font-size: 1.0625rem; line-height: 1.6; }
.vs-price__note { display: flex; align-items: flex-start; gap: 14px; margin-top: 28px; color: var(--ink-2); font-size: 1rem; line-height: 1.55; }
.vs-price__check { flex: none; display: grid; place-items: center; width: 30px; height: 30px; margin-top: -3px; border-radius: 50%; background: var(--cream-deep); color: var(--ink-2); }
.vs-price__card--ours .vs-price__check { background: var(--teal-soft); color: var(--teal-ink); }
.vs-price__check svg { width: 16px; height: 16px; }
.vs-price__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--rule-strong); }
.vs-price__foot p { color: var(--ink-2); font-size: 1.0625rem; }
@media (max-width: 899px) { .vs-price { grid-template-columns: 1fr; } .vs-price__card { padding: 28px 24px 30px; } }

/* Valuations (owner's mockup, 2026-11-02): an illustrated valuation request in the hero (not an app screen: the app
   has no Valuations screen yet), the record beside the real cap table capture in a laptop, and three steps with arrows */
.val-art { position: relative; justify-self: end; width: min(100%, 470px); padding: 40px 0 48px 44px; }
.val-art::before, .val-art::after { content: ""; position: absolute; border-radius: 20px; border: 1px solid rgba(143, 224, 208, .14); background: linear-gradient(150deg, rgba(76, 201, 189, .3), rgba(31, 107, 108, .12)); }
.val-art::before { top: 0; left: 72px; right: 36px; height: 60%; }
.val-art::after { bottom: 0; left: 0; width: 76%; height: 72%; }
.val-card { position: relative; z-index: 1; padding: 22px 24px 26px; border-radius: 14px; background: #fff; color: var(--ink); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); }
.val-card__head { display: flex; align-items: center; gap: 12px; }
.val-card__icon { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; background: var(--teal-soft); color: var(--teal-ink); }
.val-card__icon svg { width: 20px; height: 20px; }
.val-card__title { font: 700 1.0625rem/1.2 var(--sans); }
.val-card__head .pill { margin-left: auto; }
.val-card__body { display: grid; grid-template-columns: minmax(0, 1fr) 132px; gap: 20px; align-items: center; margin-top: 24px; }
.val-track { display: grid; gap: 20px; }
.val-track li { position: relative; display: flex; align-items: center; gap: 14px; min-height: 22px; font: 500 .875rem/1.3 var(--sans); color: var(--ink-2); }
.val-track li::before { content: ""; flex: none; box-sizing: border-box; width: 22px; height: 22px; border-radius: 50%; background: #e6e9ee; }
.val-track li.is-done::before { background: var(--teal-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.6 6.2 2.2 2.2 4.6-4.8'/%3E%3C/svg%3E") center / 12px no-repeat; }
.val-track li.is-current::before { border: 2px solid var(--teal-ink); background: radial-gradient(circle, var(--teal-ink) 0 4px, #fff 4.5px); }
.val-track li.is-current { color: var(--ink); font-weight: 600; }
.val-track li:not(:last-child)::after { content: ""; position: absolute; left: 10.5px; top: 24px; height: 16px; border-left: 1px dashed var(--rule-strong); }
.val-report { display: grid; gap: 8px; padding: 14px 14px 12px; border: 1px solid var(--rule); border-radius: 10px; background: #fff; box-shadow: 0 16px 32px -18px rgba(14, 26, 47, .35); }
.val-report__line { height: 6px; border-radius: 3px; background: #e6e9ee; }
.val-report__line--short { width: 60%; }
.val-report__title { font: 700 .75rem/1.2 var(--sans); color: var(--ink); }
.val-report__bars { display: flex; align-items: flex-end; gap: 6px; height: 48px; margin-top: 4px; border-bottom: 1px solid var(--rule); }
.val-report__bars i { flex: 1; border-radius: 2px 2px 0 0; background: var(--teal-bright); }
.val-report__bars i:nth-child(1) { height: 20%; opacity: .45; }
.val-report__bars i:nth-child(2) { height: 36%; opacity: .6; }
.val-report__bars i:nth-child(3) { height: 60%; opacity: .8; }
.val-report__bars i:nth-child(4) { height: 100%; }
.val-record { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, .9fr) minmax(0, 1.4fr); gap: 48px; align-items: center; }
.val-record__copy .lede { margin-top: 24px; }
.val-record__list { gap: 28px; padding-left: 40px; border-left: 1px solid var(--rule-strong); }
.val-record__list h3 { font-size: 1.0625rem; }
.val-record__list p { font-size: .9375rem; }
.laptop { margin: 0; padding: 0 5%; }
.laptop__screen { padding: 2.4% 2.4% 3%; border-radius: 14px 14px 0 0; background: #11161d; box-shadow: 0 0 0 1px rgba(14, 26, 47, .3), 0 50px 80px -40px rgba(14, 26, 47, .55); }
.laptop__screen img { display: block; width: 100%; height: auto; border-radius: 3px; }
.laptop__base { position: relative; height: 16px; margin: 0 -5.5%; border-radius: 2px 2px 14px 14px; background: linear-gradient(#e4e7eb, #b9bfc6 70%, #9ca3ab); box-shadow: 0 18px 30px -16px rgba(14, 26, 47, .5); }
.laptop__base::before { content: ""; position: absolute; top: 0; left: 50%; width: 15%; height: 6px; transform: translateX(-50%); border-radius: 0 0 8px 8px; background: #a3aab2; }
.val-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px; counter-reset: step; }
.val-steps li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 18px; padding: 30px 32px 34px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.val-steps li:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: -44px; width: 32px; height: 32px; margin-top: -16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e1a2f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13.5 6.5 19 12l-5.5 5.5'/%3E%3C/svg%3E") center / 24px no-repeat; }
.val-steps__num { counter-increment: step; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--teal-soft); color: var(--ink); font: 700 1.125rem/1 var(--sans); }
.val-steps__num::before { content: counter(step); }
.val-steps .criteria__icon { width: auto; height: auto; margin: 0; justify-self: start; background: none; }
.val-steps .criteria__icon svg { width: 36px; height: 36px; }
.val-steps h3 { grid-column: 1 / -1; margin-top: 24px; font: 700 1.3125rem/1.3 var(--sans); color: var(--ink); }
.val-steps p { grid-column: 1 / -1; margin-top: 8px; color: var(--ink-2); font-size: 1rem; line-height: 1.6; }
@media (max-width: 1100px) {
  .val-record { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .laptop { grid-column: 1 / -1; justify-self: center; width: min(100%, 760px); }
}
@media (max-width: 899px) {
  .val-art { justify-self: start; }
  .val-steps { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .val-steps li:not(:last-child)::after { top: auto; right: auto; bottom: -42px; left: 50%; margin: 0 0 0 -16px; transform: rotate(90deg); }
}
@media (max-width: 760px) {
  .val-record { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .val-record__list { padding: 32px 0 0; border-left: 0; border-top: 1px solid var(--rule-strong); }
}
@media (max-width: 480px) {
  .val-art { padding: 24px 0 30px 20px; }
  .val-art::before { left: 44px; right: 20px; }
  .val-card { padding: 18px 18px 22px; }
  .val-card__body { grid-template-columns: minmax(0, 1fr); }
  .val-report { display: none; }
  .val-steps li { padding: 26px 24px 28px; }
}

/* International (owner's review, 2026-11-02): one platform beside an illustrative group structure, three capabilities
   over a plain coverage table and a storage note, and the entity types as tiles */
.intl-one { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 72px; align-items: center; }
.intl-one .lede { margin-top: 24px; }
.intl-one .why__list { margin-top: 36px; gap: 0; }
.intl-one .why__list li { padding: 24px 0; border-top: 1px solid var(--rule); }
.intl-one .why__list li:last-child { padding-bottom: 0; }
.intl-one .why__list .text-link { grid-column: 2; justify-self: start; margin-top: 12px; font-size: .9375rem; }
.group-map { margin: 0; padding: 28px 28px 24px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.group-map__label { font: 600 .8125rem/1 var(--sans); color: var(--ink-3); }
.group-map__node { position: relative; display: grid; align-content: start; justify-items: center; gap: 5px; padding: 20px 14px 18px; border: 1px solid var(--rule-strong); border-radius: 10px; background: #fff; text-align: center; }
.group-map__node svg { width: 22px; height: 22px; margin-bottom: 4px; color: var(--teal-ink); }
.group-map__node strong { font: 600 1rem/1.3 var(--sans); color: var(--ink); }
.group-map__node span:not(.group-map__pct) { font-size: .8438rem; line-height: 1.4; color: var(--ink-3); }
.group-map__node--parent { width: min(100%, 280px); margin: 28px auto 0; border-color: rgba(10, 116, 112, .45); background: var(--teal-soft); }
.group-map__node--parent::after { content: ""; position: absolute; top: 100%; left: 50%; height: 26px; border-left: 1px solid var(--rule-strong); }
.group-map__subs { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 26px; padding-top: 34px; }
.group-map__subs::before { content: ""; position: absolute; top: 0; left: calc((100% - 32px) / 6); right: calc((100% - 32px) / 6); border-top: 1px solid var(--rule-strong); }
.group-map__subs .group-map__node::before { content: ""; position: absolute; bottom: 100%; left: 50%; height: 34px; border-left: 1px solid var(--rule-strong); }
.group-map__pct { position: absolute; top: -27px; left: 50%; transform: translateX(-50%); padding: 2px 7px; border-radius: 999px; background: #fff; font: 600 .72rem/1.2 var(--sans); color: var(--teal-ink); box-shadow: 0 0 0 1px var(--rule); }
.group-map figcaption { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--rule); font-size: .875rem; line-height: 1.5; color: var(--ink-2); text-align: center; }
.cov { margin-top: 40px; padding: 8px 32px 12px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.cov .data-table { margin-top: 0; }
.cov .data-table th, .cov .data-table td { padding-top: 16px; padding-bottom: 16px; }
.cov .data-table tr:last-child td { border-bottom: 0; }
.cov .data-table td:nth-child(2) { white-space: nowrap; }
.cov .data-table td:nth-child(2)::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 9px 1px 0; border-radius: 50%; background: var(--teal-ink); }
.cov__note { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 16px; align-items: start; max-width: 860px; margin-top: 28px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.cov__note .criteria__icon { width: 36px; height: 36px; margin: 0; border-radius: 8px; }
.cov__note .criteria__icon svg { width: 20px; height: 20px; }
.cov__note a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.forms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.forms li { padding: 24px 26px 26px; border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 16px 36px -28px rgba(14, 26, 47, .3); }
.forms__abbr { display: block; font: 390 1.875rem/1.1 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.forms__name { display: block; margin-top: 10px; font-size: .9063rem; line-height: 1.45; color: var(--ink-2); }
.forms__where { display: block; margin-top: 12px; font: 600 .78rem/1.2 var(--sans); color: var(--teal-ink); }
.forms__more { margin-top: 28px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.forms__more a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1000px) {
  .intl-one { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 760px) {
  .forms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cov { padding: 4px 20px 8px; }
}
@media (max-width: 560px) {
  .group-map { padding: 22px 18px 18px; }
  .group-map__node--parent { width: 100%; margin-top: 20px; }
  .group-map__node--parent::after { left: 21px; height: 18px; }
  .group-map__subs { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 18px; padding: 0 0 0 44px; }
  .group-map__subs::before { display: none; }
  .group-map__subs .group-map__node::before { top: -13px; bottom: auto; left: -23px; width: 22px; height: calc(50% + 13px); border-left: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); }
  .group-map__subs .group-map__node:not(:last-child)::after { content: ""; position: absolute; top: 50%; bottom: -13px; left: -23px; border-left: 1px solid var(--rule-strong); }
  .group-map__pct { position: static; transform: none; order: 3; margin-top: 4px; }
  .forms { grid-template-columns: minmax(0, 1fr); }
}
.cov__note .criteria__icon i { font-size: 1.125rem; line-height: 1; }

/* About (owner's review and mockup, 2026-11-02): the company's story, editorial columns instead of cards, the founder
   beside a compact advisor list (the full bio opens in a dialog), and headquarters with platform availability */
.hero--product .hero__lede + .hero__lede { margin-top: 14px; }
.story { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr); gap: 72px; align-items: start; }
.story__body { padding-left: 48px; border-left: 1px solid var(--rule); }
.story__body p { color: var(--ink-2); font-size: 1.0625rem; line-height: 1.7; }
.story__body p + p { margin-top: 18px; }
.story__body .story__aside { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--rule); font-size: .9375rem; color: var(--ink-3); }
.story__aside a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.tenets-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr); gap: 56px; align-items: start; }
.tenets-row .h2 { font-size: clamp(2rem, 2.7vw, 2.625rem); }
.tenets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tenets li { padding: 0 24px; border-left: 1px solid var(--rule-strong); }
.tenets .criteria__icon { width: auto; height: auto; margin: 0 0 18px; justify-content: start; background: none; }
.tenets .criteria__icon svg { width: 30px; height: 30px; }
.tenets h3 { font: 700 1.0625rem/1.3 var(--sans); color: var(--ink); }
.tenets p { margin-top: 10px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.aud2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 44px; }
.aud2__card { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 22px; align-content: start; padding: 32px 34px 34px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.aud2__card .criteria__icon { grid-row: span 3; margin: 0; }
.aud2__card h3 { font: 390 1.625rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.aud2__card p { margin-top: 12px; color: var(--ink-2); font-size: 1rem; line-height: 1.6; }
.aud2__card .text-link { justify-self: start; margin-top: 18px; }
.people { display: grid; grid-template-columns: 200px minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: stretch; }
.people__photo { display: block; align-self: center; justify-self: center; width: 165px; height: 165px; object-fit: cover; border-radius: 50%; box-shadow: 0 24px 48px -30px rgba(14, 26, 47, .5); }
.people__founder, .people__advisors { padding-left: 40px; border-left: 1px solid var(--rule-strong); }
.people__name { margin-top: 28px; font: 700 1.1875rem/1.3 var(--sans); color: var(--ink); }
.people__role { display: block; margin-top: 4px; font-size: .9063rem; color: var(--ink-3); }
.people__founder > p:not(.people__role) { margin-top: 16px; color: var(--ink-2); font-size: 1rem; line-height: 1.65; }
.people__more { margin-top: 18px; padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }
.people__label { font: 600 .75rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.people__advisors ul { display: grid; gap: 32px; margin-top: 24px; }
.people__advisors li { display: grid; grid-template-columns: 104px minmax(0, 1fr); column-gap: 26px; align-items: center; }
.people__advisors img { width: 104px; height: 104px; object-fit: cover; border-radius: 50%; }
.people__advisors strong { display: block; font: 700 1.0625rem/1.3 var(--sans); color: var(--ink); }
.people__advisors li p { margin-top: 8px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.bio { width: min(100% - 32px, 720px); max-height: min(86vh, 860px); padding: 0; border: 0; border-radius: 14px; background: #fff; color: var(--ink); box-shadow: 0 40px 100px -30px rgba(11, 23, 48, .6); }
.bio::backdrop { background: rgba(11, 23, 48, .55); }
.bio__head { position: sticky; top: 0; display: flex; align-items: center; gap: 16px; padding: 22px 28px; border-bottom: 1px solid var(--rule); background: #fff; }
.bio__head img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.bio__head h2 { font: 390 1.5rem/1.2 var(--serif); color: var(--navy-900); }
.bio__head .people__role { margin-top: 2px; }
.bio__close { display: grid; place-items: center; width: 38px; height: 38px; margin-left: auto; border: 1px solid var(--rule); border-radius: 50%; background: #fff; color: var(--ink-2); cursor: pointer; }
.bio__close:hover { color: var(--ink); border-color: var(--rule-strong); }
.bio__close svg { width: 16px; height: 16px; }
.bio__body { padding: 8px 28px 32px; }
.bio__body p { margin-top: 18px; color: var(--ink-2); font-size: .9688rem; line-height: 1.7; }
.bio__body a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.hq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .9fr); gap: 48px; align-items: center; }
.hq__copy { padding-left: 40px; border-left: 1px solid var(--rule-strong); color: var(--ink-2); font-size: 1rem; line-height: 1.7; }
.hq__card { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 16px; padding: 24px 26px; border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 16px 36px -28px rgba(14, 26, 47, .3); }
.hq__icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 8px; background: var(--teal-soft); color: var(--teal-ink); font-size: 1.125rem; }
.hq__card h3 { font: 700 1rem/1.3 var(--sans); color: var(--ink); }
.hq__card p { margin-top: 6px; color: var(--ink-2); font-size: .9063rem; line-height: 1.6; }
@media (max-width: 1100px) {
  .tenets-row { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .people { grid-template-columns: 200px minmax(0, 1fr); }
  .people__founder { align-self: center; }
  .people__advisors { grid-column: 1 / -1; padding: 32px 0 0; border-left: 0; border-top: 1px solid var(--rule-strong); }
  .people__advisors ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .hq { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .hq__card { grid-column: 1 / -1; max-width: 560px; }
}
@media (max-width: 899px) {
  .story { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .story__body { padding-left: 0; border-left: 0; }
  .tenets { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
  .tenets li:nth-child(odd) { padding-left: 0; border-left: 0; }
  .aud2 { grid-template-columns: minmax(0, 1fr); }
  .hq { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .hq__copy { padding-left: 0; border-left: 0; }
}
@media (max-width: 640px) {
  .tenets { grid-template-columns: minmax(0, 1fr); }
  .tenets li { padding: 0; border-left: 0; }
  .aud2__card { grid-template-columns: minmax(0, 1fr); padding: 26px 24px 28px; }
  .aud2__card .criteria__icon { grid-row: auto; margin-bottom: 18px; }
  .people { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .people__photo { justify-self: start; width: 140px; height: 140px; }
  .people__advisors li { grid-template-columns: 80px minmax(0, 1fr); column-gap: 20px; }
  .people__advisors img { width: 80px; height: 80px; }
  .people__founder { padding-left: 0; border-left: 0; }
  .people__advisors ul { grid-template-columns: minmax(0, 1fr); }
  .bio__head { padding: 18px 20px; }
  .bio__body { padding: 4px 20px 26px; }
}

/* Careers (owner's review, 2026-11-02): the open role as one prominent panel, future roles as three editorial
   columns, a slim "Don't see your role?" strip */
.trio--rows > :nth-child(3n+1) { padding-left: 0; border-left: 0; }
.trio--rows > :nth-child(3n) { padding-right: 0; }
.trio--rows > :nth-child(n+4) { border-top: 1px solid var(--rule); }
.role__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.role__area { font: 600 .8125rem/1 var(--sans); color: var(--ink-3); }
.role__meta { margin-top: 10px; font: 600 .875rem/1.4 var(--sans); color: var(--teal-ink); }
.role-open { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 56px; padding: 44px 48px 46px; border-radius: 16px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 30px 60px -36px rgba(14, 26, 47, .32); }
.role-open h3 { margin-top: 22px; font: 390 clamp(1.875rem, 3vw, 2.5rem)/1.12 var(--serif); letter-spacing: -.015em; color: var(--navy-900); }
.role-open h3 span { display: block; margin-top: 8px; font-size: .6em; color: var(--ink-2); }
.role-open__body { padding-left: 48px; border-left: 1px solid var(--rule); }
.role-open__body p { color: var(--ink-2); font-size: 1.0625rem; line-height: 1.7; }
.role-open__body p + p { margin-top: 16px; }
.role-open__body .btn { margin-top: 30px; }
.role__lang { display: flex; align-items: flex-start; gap: 10px; line-height: 1.55; margin-top: 24px; color: var(--ink-3); font-size: .9375rem; }
.role__lang i { margin-top: 1px; color: var(--teal-ink); }
.roles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.roles li { display: flex; flex-direction: column; padding: 0 32px; border-left: 1px solid var(--rule-strong); }
.roles li:first-child { padding-left: 0; border-left: 0; }
.roles h3 { margin-top: 18px; font: 390 1.5rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.roles li > p:not([class]) { margin-top: 14px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
.roles .text-link { margin-top: auto; padding-top: 20px; align-self: flex-start; }
.role-strip { display: flex; align-items: center; justify-content: space-between; gap: 24px 48px; margin-top: 64px; padding: 28px 32px; border-radius: 14px; background: #fff; }
.role-strip h3 { font: 700 1.125rem/1.3 var(--sans); color: var(--ink); }
.role-strip p { max-width: 46rem; margin-top: 6px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
.role-strip .btn { flex: none; }
@media (max-width: 1000px) {
  .role-open { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 34px 32px 36px; }
  .role-open__body { padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--rule); }
  .roles { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .roles li { padding: 36px 0 0; border-left: 0; border-top: 1px solid var(--rule-strong); }
  .roles li:first-child { padding-top: 0; border-top: 0; }
  .role-strip { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
  .role-open { padding: 26px 22px 28px; }
  .role-strip { padding: 24px 22px; }
  .role-strip .btn { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}

/* Contact and its success page (owner's mockups, 2026-11-02): the live form in a rounded card, and a slim navy band over
   a centred confirmation */
.contact-form { padding: 32px 34px 30px; border: 0; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 30px 60px -36px rgba(14, 26, 47, .32); }
.contact-form form { margin-top: 0; }
.contact-form :is(.form-control, .form-select) { border-radius: 8px; }
.contact-form .form-label span { color: var(--ink-3); }
.contact-form .mk-form__btn { height: 50px; border-radius: 8px; }
.contact-form__privacy { margin-top: 12px; color: var(--ink-3); font-size: .8125rem; }
.contact-inline-alert { margin-bottom: 18px; padding: 12px 14px; border-radius: 8px; font-size: .9063rem; line-height: 1.5; }
.contact-inline-alert--success { background: var(--teal-soft); color: var(--teal-ink); }
.contact-inline-alert--error { background: #fdecea; color: #b42318; }
.hero--slim { min-height: 0; height: 148px; }
.sent { padding-top: clamp(72px, 9vw, 112px); padding-bottom: clamp(88px, 11vw, 140px); }
.sent__inner { display: flex; flex-direction: column; align-items: center; max-width: 760px; text-align: center; }
.sent__icon { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-ink); }
.sent__icon svg { width: 28px; height: 28px; }
.sent__status { margin-top: 28px; font: 600 .8125rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--teal-ink); }
.sent__title { margin-top: 18px; font: 390 clamp(2.5rem, 5vw, 3.5rem)/1.08 var(--serif); letter-spacing: -.02em; color: var(--navy-900); }
.sent__lede { margin-top: 24px; color: var(--ink-2); font-size: 1.125rem; line-height: 1.65; }
.sent__lede + .sent__lede { margin-top: 16px; }
.sent__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 40px; }
@media (max-width: 640px) {
  .contact-form { padding: 24px 20px 22px; }
  .hero--slim { height: 104px; }
}
/* Contact, owner's second mockup (2026-11-02): the ways to reach us beside the form card, and a compact closing row */
.contact-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 64px; align-items: start; }
.contact-grid .contact-form { grid-column: 2; grid-row: 1; padding: 38px 40px 34px; }
.contact-grid .contact-ways { grid-column: 1; grid-row: 1; }
.contact-form__title { font: 390 clamp(1.875rem, 3vw, 2.375rem)/1.15 var(--serif); letter-spacing: -.015em; color: var(--navy-900); }
.contact-form__lede { margin: 8px 0 26px; color: var(--ink-2); font-size: 1rem; }
.contact-ways__lede { margin-top: 10px; color: var(--ink-2); font-size: 1.0625rem; }
.contact-ways__list { margin-top: 28px; border-top: 1px solid var(--rule); }
.contact-ways__list li { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 22px; padding: 22px 0; border-bottom: 1px solid var(--rule); }
.contact-ways__list li:last-child { border-bottom: 0; }
.contact-ways__list .criteria__icon { grid-row: span 2; width: 44px; height: 44px; margin: 0; }
.contact-ways__list .criteria__icon svg { width: 22px; height: 22px; }
.contact-ways__list h3 { font: 700 1.0625rem/1.3 var(--sans); color: var(--ink); }
.contact-ways__list li > div { margin-top: 4px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
.contact-ways__list li > div a:not(.text-link) { font-weight: 700; color: var(--ink); }
.contact-ways__list li > div a:not(.text-link):hover { color: var(--teal-ink); }
.contact-ways__list .text-link { margin-top: 8px; }
.contact-ways__list .contact-ways__note { margin-top: 4px; color: var(--ink-3); font-size: .875rem; }
.closing--row { padding-top: clamp(48px, 6vw, 72px); padding-bottom: clamp(48px, 6vw, 72px); }
.closing--row .closing__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px 48px; }
.closing--row .h2 { font-size: clamp(1.875rem, 3vw, 2.5rem); }
.closing--row .lede { max-width: 46rem; margin-top: 12px; }
.closing--row .closing__ctas { margin-top: 0; }
@media (max-width: 1000px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 56px; }
  .contact-grid .contact-form, .contact-grid .contact-ways { grid-column: 1; grid-row: auto; }
}
@media (max-width: 640px) {
  .contact-grid .contact-form { padding: 26px 20px 24px; }
}

/* Alternatives hub (owner's mockup, 2026-11-02): a jump list in the hero, the honest-guide promise beside a check card,
   the comparison table, platforms as editorial columns, comparison cards, a dark teal "which one" band and four links */
.trust-panel--jump ul { margin-top: 10px; }
.trust-panel--jump li { grid-template-columns: 36px minmax(0, 1fr); align-items: center; padding: 14px 0; }
.trust-panel--jump li a { display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 600 .9688rem/1.4 var(--sans); color: #fff; }
.trust-panel--jump li a::after { content: ""; flex: none; width: 7px; height: 7px; margin-right: 4px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); opacity: .7; }
.trust-panel--jump li a:hover { color: var(--teal-bright); }
.honest { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.honest .lede { margin-top: 24px; }
.honest__card { display: grid; gap: 22px; padding: 30px 32px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 24px 48px -32px rgba(14, 26, 47, .28); }
.honest__card li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 16px; align-items: start; }
.honest__check { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-ink); font-size: 1rem; }
.honest__card h3 { font: 700 1rem/1.35 var(--sans); color: var(--ink); }
.honest__card p { margin-top: 4px; color: var(--ink-2); font-size: .9375rem; line-height: 1.55; }
.hub-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.hub-head .lede { margin-top: 14px; }
.hub-head__date { flex: none; color: var(--ink-3); font: 600 .8125rem/1.3 var(--sans); }
.vs-foot a { color: var(--teal-ink); text-decoration: underline; text-underline-offset: 3px; }
.plat { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 44px; border-top: 1px solid var(--rule); }
.plat li { display: flex; flex-direction: column; align-items: flex-start; padding: 32px 32px 36px; border-left: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.plat li:nth-child(3n+1) { padding-left: 0; border-left: 0; }
.plat li:nth-child(3n) { padding-right: 0; }
.plat li:nth-last-child(-n+3) { border-bottom: 0; }
.plat h3 { font: 390 1.5rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--navy-900); }
.plat p { margin-top: 12px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
.plat .plat__best strong { color: var(--ink); }
.plat .text-link { margin-top: auto; padding-top: 20px; }
.vcomp { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.vcomp li { display: flex; flex-direction: column; align-items: flex-start; padding: 26px 28px 28px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .06), 0 20px 40px -30px rgba(14, 26, 47, .28); }
.vcomp .criteria__icon { width: 40px; height: 40px; margin-bottom: 18px; }
.vcomp .criteria__icon svg { width: 21px; height: 21px; }
.vcomp h3 { font: 700 1.125rem/1.3 var(--sans); color: var(--ink); }
.vcomp p { margin-top: 8px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.vcomp .text-link { margin-top: auto; padding-top: 16px; }
.vcomp__links { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: auto; padding-top: 16px; }
.vcomp__links .text-link { padding-top: 0; }
.pick { background: var(--teal-deep); color: var(--on-dark); }
.pick .h2 { color: #fff; }
.pick .split-head__lede { border-color: var(--rule-dark); color: var(--on-dark-2); }
.pick .vcard .trust-panel__icon { margin-bottom: 18px; }
.more4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 40px; }
.more4 li { display: flex; flex-direction: column; align-items: flex-start; padding: 0 28px; border-left: 1px solid var(--rule-strong); }
.more4 li:first-child { padding-left: 0; border-left: 0; }
.more4 h3 { font: 700 1.0625rem/1.3 var(--sans); color: var(--ink); }
.more4 p { margin-top: 8px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.more4 .text-link { margin-top: auto; padding-top: 16px; }
@media (max-width: 1100px) {
  .more4 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
  .more4 li:nth-child(odd) { padding-left: 0; border-left: 0; }
}
@media (max-width: 1000px) {
  .honest { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .plat, .vcomp { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plat li, .plat li:nth-child(3n+1), .plat li:nth-child(3n), .plat li:nth-last-child(-n+3) { padding: 30px 28px 32px; border-left: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
  .plat li:nth-child(odd) { padding-left: 0; border-left: 0; }
  .plat li:nth-child(even) { padding-right: 0; }
  .plat li:nth-last-child(-n+2) { border-bottom: 0; }
}
@media (max-width: 760px) {
  .hub-head { flex-direction: column; align-items: flex-start; }
  .plat, .vcomp { grid-template-columns: minmax(0, 1fr); }
  .plat li, .plat li:nth-child(odd), .plat li:nth-child(even) { padding: 28px 0; border-left: 0; border-bottom: 1px solid var(--rule); }
  .plat li:last-child { border-bottom: 0; }
  .more4 { grid-template-columns: minmax(0, 1fr); }
  .more4 li, .more4 li:nth-child(odd) { padding: 0; border-left: 0; }
}

/* Products (owner's mockup, 2026-11-02): a compact navy hero with an illustrated workspace window (not an app screen),
   the two products as white cards, how they work together, the integration timeline and a row closing */
.prod-hero .hero__inner { padding-top: 140px; padding-bottom: 88px; }
.prod-art { justify-self: end; width: min(100%, 540px); }
.prod-win { border: 1px solid rgba(143, 224, 208, .22); border-radius: 14px; background: rgba(255, 255, 255, .035); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .65); overflow: hidden; }
.prod-win__bar { padding: 16px 20px; border-bottom: 1px solid var(--rule-dark); }
.prod-win__bar img { display: block; width: auto; height: 18px; }
.prod-win__body { display: grid; grid-template-columns: 158px minmax(0, 1fr); }
.prod-win__nav { display: grid; align-content: start; gap: 4px; padding: 14px 10px; border-right: 1px solid var(--rule-dark); }
.prod-win__nav li { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 7px; font: 500 .8125rem/1 var(--sans); color: var(--on-dark-2); }
.prod-win__nav li.is-current { background: rgba(255, 255, 255, .08); color: #fff; }
.prod-win__nav svg { flex: none; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.prod-win__rows { display: grid; align-content: start; gap: 8px; padding: 14px; }
.prod-row { display: flex; align-items: center; gap: 14px; height: 38px; padding: 0 14px; border-radius: 7px; background: rgba(255, 255, 255, .05); }
.prod-row i { height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .16); }
.prod-row i:first-child { width: 30%; background: rgba(255, 255, 255, .34); }
.prod-row i:nth-child(2) { width: 16%; margin-left: auto; }
.prod-row i:nth-child(3) { width: 16%; }
.prod-row b { flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--teal-bright) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23092d32' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.8 6.2 2.1 2.1 4.3-4.6'/%3E%3C/svg%3E") center / 11px no-repeat; }
.prod-row--head { background: none; }
.prod-row--head i:first-child { width: 22%; }
.prod-row--head i:nth-child(2) { width: 8%; }
.prod-sec { padding: clamp(56px, 7vw, 96px) 0; }
.prod-sec--cards { padding-top: clamp(40px, 4.5vw, 64px); padding-bottom: clamp(40px, 4.5vw, 64px); }
.prod-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.prod-card { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; padding: 44px 44px 46px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(14, 26, 47, .05), 0 30px 60px -40px rgba(14, 26, 47, .3); }
.prod-card::before, .prod-card::after { content: ""; position: absolute; right: 0; bottom: 0; pointer-events: none; background: linear-gradient(170deg, rgba(76, 201, 189, .2), rgba(76, 201, 189, .05)); }
.prod-card::before { width: 34%; height: 62%; clip-path: polygon(62% 0, 100% 0, 100% 100%, 0 100%); }
.prod-card::after { width: 20%; height: 40%; opacity: .7; clip-path: polygon(70% 0, 100% 0, 100% 100%, 0 100%); }
.prod-card > * { position: relative; z-index: 1; }
.prod-card__logo { display: block; width: auto; height: 44px; }
.prod-card__title { margin-top: 30px; font: 390 1.5rem/1.25 var(--serif); letter-spacing: -.01em; color: var(--ink); }
.prod-card__text { margin-top: 18px; color: var(--ink-2); font-size: 1rem; line-height: 1.65; }
.prod-card__list { display: grid; gap: 14px; margin-top: 28px; }
.prod-card__list li { display: flex; align-items: center; gap: 14px; color: var(--ink); font-size: .9688rem; line-height: 1.4; }
.prod-card__list li::before { content: ""; flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--teal-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%230a7470' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.8 6.2 2.1 2.1 4.3-4.6'/%3E%3C/svg%3E") center / 11px no-repeat; }
.prod-card__link { margin-top: auto; padding-top: 34px; font-size: 1rem; font-weight: 700; color: var(--ink); }
.prod-together { background: var(--sheet); }
.prod-sec .h2 { font-size: clamp(2rem, 3.2vw, 2.875rem); }
.prod-together__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.6fr); gap: 48px; align-items: center; }
.prod-together__copy .lede { margin-top: 20px; max-width: 30rem; }
.prod-together__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prod-together__list li { padding: 4px 24px 8px 32px; border-left: 1px solid var(--rule-strong); }
.prod-together__list .criteria__icon { width: auto; height: auto; margin-bottom: 16px; justify-content: start; background: none; color: var(--teal-ink); }
.prod-together__list .criteria__icon svg { width: 30px; height: 30px; }
.prod-together__list h3 { font: 700 1rem/1.35 var(--sans); color: var(--ink); }
.prod-together__list p { margin-top: 8px; color: var(--ink-2); font-size: .9063rem; line-height: 1.55; }
.prod-history__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 72px; align-items: center; }
.prod-history__copy .lede { margin-top: 24px; max-width: 30rem; }
.prod-history__link { margin-top: 30px; color: var(--ink); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.prod-timeline { position: relative; display: grid; gap: 30px; }
.prod-timeline li:not(:last-child)::after { content: ""; position: absolute; top: 18px; bottom: -34px; left: 6px; border-left: 2px solid rgba(76, 201, 189, .55); }
.prod-timeline li { position: relative; padding-left: 44px; }
.prod-timeline li::before { content: ""; position: absolute; top: 4px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--teal-bright); box-shadow: 0 0 0 5px var(--cream); }
.prod-timeline time, .prod-timeline strong { display: block; font: 700 1rem/1.3 var(--sans); color: var(--ink); }
.prod-timeline p { margin-top: 6px; color: var(--ink-2); font-size: .9688rem; line-height: 1.6; }
@media (max-width: 1100px) {
  .prod-together__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .prod-together__list li:first-child { padding-left: 0; border-left: 0; }
}
@media (max-width: 899px) {
  .prod-hero .hero__inner { padding-bottom: 72px; }
  .prod-art { justify-self: start; }
  .prod-cards { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .prod-card { padding: 32px 26px 34px; }
  .prod-history__grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 640px) {
  .prod-win__body { grid-template-columns: 128px minmax(0, 1fr); }
  .prod-win__nav li { padding: 8px; gap: 8px; font-size: .75rem; }
  .prod-row { gap: 10px; padding: 0 10px; }
  .prod-together__list { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .prod-together__list li, .prod-together__list li:first-child { padding: 0; border-left: 0; }
}

/* Solutions index (owner's mockup, 2026-11-02): the four areas as a link panel in the hero, the areas and audiences as
   ruled columns, a dark teal "in action" card with an illustrated records window, and the library as four columns.
   Shares the Products page's section rhythm (.prod-sec), window (.prod-win) and check list */
.sol-paths { justify-self: end; width: min(100%, 470px); border: 1px solid rgba(143, 224, 208, .22); border-radius: 12px; background: rgba(255, 255, 255, .035); overflow: hidden; }
.sol-paths a { display: flex; align-items: center; gap: 16px; padding: 20px 22px; border-top: 1px solid var(--rule-dark); font: 600 .9375rem/1.3 var(--sans); color: #fff; transition: background .2s; }
.sol-paths a:first-child { border-top: 0; }
.sol-paths a:hover { background: rgba(255, 255, 255, .05); }
.sol-paths svg { flex: none; width: 22px; height: 22px; fill: none; stroke: var(--on-dark-2); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.sol-paths a::after { content: ""; flex: none; width: 8px; height: 8px; margin: 0 4px 0 auto; border: solid var(--on-dark-2); border-width: 1.6px 1.6px 0 0; transform: rotate(45deg); transition: transform .2s; }
.sol-paths a:hover::after { transform: translateX(3px) rotate(45deg); }
.sol-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 56px; align-items: center; margin-bottom: clamp(48px, 5vw, 64px); }
.sol-head .lede { padding-left: 32px; border-left: 1px solid var(--rule-strong); }
.sol-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sol-cols li { display: flex; flex-direction: column; align-items: flex-start; padding: 4px 28px 8px; border-left: 1px solid var(--rule-strong); }
.sol-cols li:first-child { padding-left: 0; border-left: 0; }
.sol-cols .criteria__icon { width: 42px; height: 42px; margin-bottom: 20px; border-radius: 9px; }
.sol-cols .criteria__icon svg { width: 22px; height: 22px; }
.sol-cols--people .criteria__icon { width: auto; height: auto; justify-content: start; background: none; }
.sol-cols--people .criteria__icon svg { width: 30px; height: 30px; }
.sol-cols h3 { font: 700 1rem/1.35 var(--sans); color: var(--ink); }
.sol-cols h3 a:hover { color: var(--teal-ink); }
.sol-cols p { margin-top: 10px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.sol-cols .text-link { margin-top: auto; padding-top: 28px; font-weight: 700; color: var(--ink); }
.sol-action-sec { padding-top: 0; }
.sol-action { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: 64px; align-items: center; padding: clamp(40px, 5vw, 64px); border-radius: 16px; background: radial-gradient(70% 90% at 80% 40%, #0f4247, var(--teal-deep) 70%) var(--teal-deep); box-shadow: 0 40px 80px -48px rgba(9, 45, 50, .7); }
.sol-action .h2 { color: #fff; }
.sol-action__copy .lede { margin-top: 20px; max-width: 30rem; }
.sol-action__list { margin: 28px 0 36px; }
.sol-action__list li { color: #fff; }
.sol-action__list li::before { background-color: var(--teal-bright); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23092d32' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.8 6.2 2.1 2.1 4.3-4.6'/%3E%3C/svg%3E"); }
.sol-win { background: rgba(14, 26, 47, .45); }
.sol-win__main { gap: 10px; padding: 18px; }
.sol-win__title { margin-bottom: 6px; font: 600 1rem/1.2 var(--sans); color: #fff; }
.sol-row { height: 58px; gap: 16px; }
.sol-row > svg { flex: none; width: 22px; height: 22px; fill: none; stroke: var(--on-dark-2); stroke-width: 1.5; stroke-linejoin: round; }
.sol-row > span { display: grid; gap: 8px; flex: 1; }
.sol-row > span i:first-child { width: 46%; }
.sol-row > span i:nth-child(2) { width: 78%; margin: 0; background: rgba(255, 255, 255, .12); }
.sol-deeper__title { margin-bottom: clamp(40px, 5vw, 56px); }
@media (max-width: 1100px) {
  .sol-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
  .sol-cols li:nth-child(odd) { padding-left: 0; border-left: 0; }
  .sol-action { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 899px) {
  .sol-paths { justify-self: start; }
  .sol-head { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .sol-head .lede { padding-left: 0; border-left: 0; }
}
@media (max-width: 640px) {
  .sol-cols { grid-template-columns: minmax(0, 1fr); }
  .sol-cols li { padding: 0; border-left: 0; }
  .sol-action { padding: 32px 22px; }
}

/* Solution capability pages (owner's mockup, 2026-11-02): Corporate Records, Share Certificates, Historical
   Ownership and Entity Relationships. A real capture in a window frame under the hero and six capabilities in
   three ruled columns (the mockup's FAQs were removed, owner 2026-11-02) */
.solx-shot-sec { padding-top: clamp(40px, 5vw, 72px); }
.sol-head .lede a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.sol-head .lede a:hover { color: var(--teal-ink); }
.solx-shot { max-width: 1120px; margin: 0 auto; border-radius: 12px; }
.solx-shot__bar { display: flex; gap: 7px; padding: 12px 16px; border-bottom: 1px solid var(--rule); background: var(--ivory); }
.solx-shot__bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--rule-strong); }
.solx-shot img { aspect-ratio: 16 / 9; object-fit: cover; object-position: left top; }
/* Click to enlarge (v2.js): a button over the capture, its icon at the right of the window bar, opens the whole
   capture, uncropped, in a dialog. Escape, the close button or a click anywhere closes it */
.solx-shot[data-zoom] { position: relative; }
.solx-shot__zoom { position: absolute; inset: 0; width: 100%; padding: 0; border: 0; border-radius: inherit; background: none; cursor: zoom-in; }
.solx-shot__zoom:focus-visible { outline-offset: -2px; }
.solx-shot__zoom svg { position: absolute; top: 9px; right: 14px; width: 16px; height: 16px; color: var(--ink-3); transition: color .15s; }
.solx-shot__zoom:hover svg, .solx-shot__zoom:focus-visible svg { color: var(--ink); }
.zoom { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 64px clamp(16px, 4vw, 64px); border: 0; background: none; cursor: zoom-out; }
.zoom[open] { display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; }
.zoom::backdrop { background: rgba(7, 15, 29, .88); }
.zoom img { width: auto; height: auto; max-height: calc(100vh - 128px); max-height: calc(100dvh - 128px); border-radius: 10px; background: #fff; box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .7); }
.zoom__close { position: fixed; top: 14px; right: 14px; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255, 255, 255, .24); border-radius: 50%; background: rgba(255, 255, 255, .08); color: #fff; cursor: pointer; }
.zoom__close:hover { background: rgba(255, 255, 255, .18); }
.zoom__close svg { width: 16px; height: 16px; }
html:has(.zoom[open]) { overflow: hidden; }
.motion .zoom[open] img { animation: zoom-in .22s ease-out; }
@keyframes zoom-in { from { opacity: 0; transform: scale(.97); } }
@media (min-width: 1101px) {
  .sol-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 56px; }
  .sol-cols--3 li:nth-child(3n + 1) { padding-left: 0; border-left: 0; }
}
@media (max-width: 640px) {
  .solx-shot img { aspect-ratio: 4 / 3; }
}

/* Governance & Evidence and Cap Tables (owner's mockup, 2026-11-02): an illustration beside the hero copy,
   copy and checklist beside the real capture, then four capabilities */
.gte-flow { justify-self: end; width: min(100%, 520px); }
.gte-flow svg { display: block; width: 100%; height: auto; overflow: visible; }
.gte-flow__node rect { fill: rgba(255, 255, 255, .04); stroke: rgba(143, 224, 208, .3); }
.gte-flow__icon { fill: none; stroke: var(--teal-bright); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.gte-flow__node text { font: 600 13px var(--sans); fill: var(--on-dark); }
.gte-flow__lines path { fill: none; stroke: rgba(143, 224, 208, .55); stroke-width: 1.5; }
.cap-panel { justify-self: end; width: min(100%, 480px); display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 32px; align-items: center; padding: 28px 32px; border: 1px solid rgba(143, 224, 208, .22); border-radius: 12px; background: rgba(255, 255, 255, .035); }
.cap-panel__ring { position: relative; }
.cap-panel__ring svg { display: block; width: 100%; height: auto; transform: rotate(-90deg); }
.cap-panel__ring circle { fill: none; stroke-width: 12; }
.cap-panel__ring circle:nth-of-type(2) { stroke: var(--teal-bright); }
.cap-panel__ring circle:nth-of-type(3) { stroke: #5b8def; }
.cap-panel__ring circle:nth-of-type(4) { stroke: #b4a3ef; }
.cap-panel__ring circle:nth-of-type(5) { stroke: rgba(244, 241, 234, .8); }
.cap-panel__track { stroke: rgba(255, 255, 255, .06); }
.cap-panel__ring p { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.cap-panel__ring span { font: 500 .75rem/1.3 var(--sans); color: var(--on-dark-2); }
.cap-panel__ring b { font: 700 1.0625rem/1.3 var(--sans); color: var(--on-dark); }
.cap-panel__legend li { display: flex; align-items: center; gap: 10px; padding: 9px 0; font: 500 .9375rem/1.3 var(--sans); color: var(--on-dark-2); }
.cap-panel__legend li + li { border-top: 1px solid rgba(255, 255, 255, .07); }
.cap-panel__legend i { flex: none; width: 12px; height: 12px; border-radius: 3px; }
.cap-panel__legend li:nth-child(1) i { background: var(--teal-bright); }
.cap-panel__legend li:nth-child(2) i { background: #5b8def; }
.cap-panel__legend li:nth-child(3) i { background: #b4a3ef; }
.cap-panel__legend li:nth-child(4) i { background: rgba(244, 241, 234, .8); }
.cap-panel__legend b { margin-left: auto; font-weight: 600; color: var(--on-dark); }
.solx-split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.25fr); gap: clamp(40px, 5vw, 72px); align-items: center; }
.solx-split .solx-shot { max-width: none; margin: 0; }
.solx-split .solx-shot img { aspect-ratio: 16 / 10; }
.solx-split__copy .lede { margin-top: 20px; }
.solx-split__list { margin-top: 28px; }
@media (max-width: 899px) {
  .solx-split { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .cap-panel { grid-template-columns: minmax(0, 1fr); justify-items: center; padding: 24px; }
  .cap-panel__ring { width: 170px; }
  .cap-panel__legend { width: 100%; }
}

/* For pages (owner's mockup, 2026-11-02): year-end checklist, onboarding checklist, governance calendar and
   portfolio playbook. A real capture in the hero, the four stages at a glance (linking to their sections), then
   the full checklist in two columns of tick boxes */
.for-strip h3 { font: 400 1.375rem/1.25 var(--serif); letter-spacing: -.01em; }
.for-strip h3 a { color: inherit; }
.for-strip__note { display: block; font-size: 1.0625rem; }
.for-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.for-steps li { position: relative; padding: 34px 32px 0 0; border-top: 2px solid rgba(10, 116, 112, .3); }
.for-steps li::before { content: ""; position: absolute; top: -8px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--teal-ink); box-shadow: 0 0 0 4px var(--teal-soft); }
.for-steps h3 { font: 400 1.5rem/1.2 var(--serif); letter-spacing: -.01em; color: var(--ink); }
.for-steps h3 a { color: inherit; }
.for-steps h3 a:hover, .for-strip h3 a:hover { color: var(--teal-ink); }
.for-steps__title { margin-top: 6px; font: 700 1rem/1.35 var(--sans); color: var(--ink); }
.for-steps p:not(.for-steps__title) { margin-top: 10px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.for-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 64px; }
.for-group { scroll-margin-top: 96px; }
.for-group h3 { padding-bottom: 14px; border-bottom: 1px solid var(--rule-strong); font: 700 1.0625rem/1.35 var(--sans); color: var(--ink); }
.for-group .checks { margin-top: 18px; gap: 14px; }
.for-group .checks li { align-items: flex-start; line-height: 1.55; }
.for-group .checks li::before { width: 13px; height: 13px; margin-top: .3em; border: 1.5px solid var(--teal-ink); border-radius: 3px; background: none; transform: none; }
.for-group .checks a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.for-next { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--rule); color: var(--ink-2); }
.for-next a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.for-next a:hover, .for-group .checks a:hover { color: var(--teal-ink); }
@media (max-width: 1100px) {
  .for-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }
}
@media (max-width: 899px) {
  .for-groups { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .for-steps { grid-template-columns: minmax(0, 1fr); }
}

/* Error pages (owner's mockup, 2026-11-03): 404 and 500, a status pill, the code as a large numeral and a
   two-line headline with its contrast phrase, then four ways to carry on */
.err-hero .hero__inner { padding-bottom: 96px; }
.err__pill { display: inline-flex; align-items: center; gap: 9px; padding: 6px 14px; border: 1px solid rgba(76, 201, 189, .55); border-radius: 999px; font: 500 .875rem/1.2 var(--sans); color: var(--on-dark); }
.err__pill i { width: 8px; height: 8px; border-radius: 50%; background: var(--teal-bright); }
.err__pill--alert { border-color: rgba(240, 104, 104, .65); }
.err__pill--alert i { background: #f06868; }
.err__code { margin-top: 28px; font: 400 clamp(5rem, 9vw, 7.5rem)/.95 var(--serif); letter-spacing: -.03em; color: #fff; }
.err-hero .hero__title { margin-top: 14px; }
.err-hero .hero__title em { display: block; font-style: italic; color: var(--teal-bright); }
.err-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.err-cards li { display: flex; flex-direction: column; align-items: flex-start; padding: 24px; border: 1px solid var(--rule); border-radius: 12px; background: var(--sheet); }
.err-cards .criteria__icon { width: 42px; height: 42px; margin-bottom: 18px; border-radius: 9px; }
.err-cards .criteria__icon svg { width: 22px; height: 22px; }
.err-cards h3 { font: 400 1.375rem/1.25 var(--serif); letter-spacing: -.01em; color: var(--ink); }
.err-cards p { margin-top: 10px; color: var(--ink-2); font-size: .9375rem; line-height: 1.6; }
.err-cards .text-link { margin-top: auto; padding-top: 24px; font-weight: 700; color: var(--ink); }
@media (max-width: 1100px) {
  .err-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .err-cards { grid-template-columns: minmax(0, 1fr); }
}

/* For hubs (owner's mockup, 2026-11-03): founders, accountants, paralegals and holdco owners. Four points in a
   panel beside the hero copy, the capabilities strip, then the hub's resources as three reading lists */
.hero__ctas .text-link { padding: 0 10px; color: var(--on-dark); }
@media (min-width: 900px) {
  .hub-hero .hero__inner { grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr); gap: 56px; }
}
.hub-points { justify-self: end; width: min(100%, 470px); padding: 8px 28px; border: 1px solid rgba(143, 224, 208, .22); border-radius: 12px; background: rgba(255, 255, 255, .035); }
.hub-points li { display: flex; align-items: center; gap: 14px; padding: 15px 0; font: 500 .9688rem/1.4 var(--sans); color: var(--on-dark); }
.hub-points li + li { border-top: 1px solid rgba(255, 255, 255, .07); }
.hub-points svg { flex: none; width: 24px; height: 24px; fill: none; stroke: var(--teal-bright); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.hub-res { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 56px; }
.hub-res h3 { padding-bottom: 14px; border-bottom: 1px solid var(--rule-strong); font: 700 1.0625rem/1.35 var(--sans); color: var(--ink); }
.hub-res ul { display: grid; gap: 14px; margin-top: 18px; }
.hub-res a { color: var(--ink); line-height: 1.5; text-decoration: underline; text-decoration-color: var(--rule-strong); text-underline-offset: 4px; }
.hub-res a:hover { color: var(--teal-ink); text-decoration-color: currentColor; }
@media (max-width: 899px) {
  .hub-points { justify-self: start; }
  .hub-res { grid-template-columns: minmax(0, 1fr); }
}
