:root {
  --navy-950: #071323;
  --navy-900: #0b1b2f;
  --navy-800: #112844;
  --navy-700: #1b3657;
  --paper: #f3f6f9;
  --paper-2: #ffffff;
  --ink: #142238;
  --muted: #5d6d82;
  --line: rgba(18, 32, 51, .12);
  --gold: #c9973f;
  --gold-light: #e9bd68;
  --blue: #2f6feb;
  --green: #1c9b63;
  --red: #d9534f;
  --amber: #d98c20;
  --radius: 12px;
  --shadow: 0 16px 42px rgba(7, 19, 35, .09);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;

  /* Surface and content tokens. Every light-surface colour below is redefined
     in the dark block, so no rule may hardcode one of these values. */
  --surface: #ffffff;
  --surface-2: #f0f3f6;
  --surface-3: #fbfcfe;
  --surface-hover: #f7faff;
  --body-text: #40536a;
  --meta-text: #61738a;
  --th-text: #52657b;
  --link: #1f5fcf;
  --input-border: #b8c4d3;
  --notice-bg: #edf4ff;
  --notice-text: #344c6c;
  --tag-bg: #e8f0f8;
  --tag-text: #31516f;
  --chip-bg: #eaf2ff;
  --chip-text: #38516f;
  --chip-text-hover: #174da8;
  --rail: #d9e2ed;
  --rail-ring: #b8c9de;
  --rail-text: #5e7086;
  --sticky-bg: rgba(255, 255, 255, .96);
  --card-shadow: 0 7px 20px rgba(7, 19, 35, .035);
  --card-shadow-hover: 0 10px 26px rgba(7, 19, 35, .07);
  --focus-ring: #b8781a;
  --ok-text: #0e6f45;   --ok-bg: #dff5e9;
  --bad-text: #9f302d;  --bad-bg: #fde8e7;
  --warn-text: #885513; --warn-bg: #fff0d6;
  --speed: 140ms;
}

/* Dark theme. Only tokens are redefined — layout and structure are shared. */
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #0a1524;
    --paper-2: #101f33;
    --ink: #e8eef6;
    --muted: #9dafc4;
    --line: rgba(150, 180, 215, .18);
    --blue: #5a8ef5;
    --gold-light: #efc87e;

    --surface: #101f33;
    --surface-2: #16273e;
    --surface-3: #0d1b2d;
    --surface-hover: #17293f;
    --body-text: #c3d1e2;
    --meta-text: #92a5bb;
    --th-text: #9db1c8;
    --link: #8ab4ff;
    --input-border: #354b66;
    --notice-bg: #13253c;
    --notice-text: #bcd0e8;
    --tag-bg: #1a2d47;
    --tag-text: #a8c2e0;
    --chip-bg: #1a2d47;
    --chip-text: #a8c2e0;
    --chip-text-hover: #d5e5fb;
    --rail: #2a3d55;
    --rail-ring: #38506d;
    --rail-text: #94a8be;
    --sticky-bg: rgba(16, 31, 51, .96);
    --shadow: 0 16px 42px rgba(0, 0, 0, .45);
    --card-shadow: 0 7px 20px rgba(0, 0, 0, .28);
    --card-shadow-hover: 0 10px 26px rgba(0, 0, 0, .4);
    --focus-ring: #f0b84c;
    --ok-text: #7fdcae;   --ok-bg: rgba(28, 155, 99, .18);
    --bad-text: #ff9d99;  --bad-bg: rgba(217, 83, 79, .18);
    --warn-text: #f0c274; --warn-bg: rgba(217, 140, 32, .18);
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

/* Hover and focus states were instantaneous; these are the only animated
   properties on the site, and all of them are disabled below for users who
   ask for reduced motion. */
.nav-links a, .coverage-inner a, .button, .card, .metric, .pagination a,
.profile-nav a, .card-link, .cookie-actions button, .directory-search input {
  transition: background-color var(--speed) ease, border-color var(--speed) ease,
              color var(--speed) ease, box-shadow var(--speed) ease,
              transform var(--speed) ease, filter var(--speed) ease;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .button:hover { transform: none; }
}
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.6; }
a { color: inherit; }
img { max-width: 100%; }
button, input, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--surface); color: var(--ink); padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { left: 12px; }
.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(255,255,255,.1); background: rgba(7,19,35,.96); color: white; backdrop-filter: blur(16px); }
.nav { width: min(1180px, calc(100% - 32px)); min-height: 56px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 10px; text-decoration: none; font-family: var(--sans); font-size: 18px; font-weight: 820; letter-spacing: -.02em; }
.brand-mark { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: linear-gradient(145deg, #4185ff, #174bb9); box-shadow: 0 6px 20px rgba(50,117,239,.35); }
.brand-mark::after { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #ff5b45; box-shadow: 0 0 0 5px rgba(255,91,69,.16); }
/* Both strips scroll horizontally on narrow screens. The mask fades the
   overflowing edge so it reads as "more to the right" rather than a hard cut. */
.nav-links, .coverage-inner, .profile-nav { scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.nav-links > *, .coverage-inner > *, .profile-nav > * { scroll-snap-align: start; }
.nav-links { min-width: 0; display: flex; align-items: center; gap: 3px; overflow-x: auto; scrollbar-width: none; }
.nav-links::-webkit-scrollbar, .coverage-inner::-webkit-scrollbar { display: none; }
.nav-links a { flex: 0 0 auto; padding: 7px 10px; border-radius: 8px; text-decoration: none; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 700; white-space: nowrap; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: white; background: rgba(255,255,255,.08); }
.nav-cta { color: #10213a !important; background: #dce9ff !important; }
.coverage-nav { border-top: 1px solid rgba(255,255,255,.08); background: rgba(17,40,68,.72); }
.coverage-inner { width: min(1180px, calc(100% - 32px)); min-height: 34px; margin: auto; display: flex; align-items: stretch; justify-content: center; overflow-x: auto; scrollbar-width: none; }
.coverage-inner a { min-width: 0; flex: 1 0 auto; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 6px 18px; border-right: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.61); text-decoration: none; font: 650 10px/1.2 var(--mono); white-space: nowrap; }
.coverage-inner a:first-child { border-left: 1px solid rgba(255,255,255,.08); }
.coverage-inner a:hover { color: white; background: rgba(255,255,255,.05); }
.coverage-inner strong { color: #91baff; font-size: 11px; }
.hero { position: relative; overflow: hidden; color: white; background-color: var(--navy-950); background-image: linear-gradient(rgba(88,137,207,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(88,137,207,.08) 1px, transparent 1px), linear-gradient(130deg, #071323 0%, #0d2139 58%, #132d4c 100%); background-size: 36px 36px, 36px 36px, auto; }
.hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 78% 44%, rgba(47,111,235,.22), transparent 29rem); }
.hero-inner { position: relative; z-index: 1; width: min(1180px, calc(100% - 32px)); min-height: 465px; margin: auto; padding: 40px 0 50px; display: grid; grid-template-columns: 1.06fr .94fr; align-items: center; gap: 42px; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 13px; color: #9fc4ff; font: 750 10px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .11em; }
.eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 2px; background: currentColor; }
h1, h2, h3 { font-family: var(--sans); font-weight: 790; line-height: 1.08; letter-spacing: -.035em; }
h1 { max-width: 740px; margin: 0 0 15px; font-size: clamp(40px, 4.4vw, 57px); }
h1 em, h2 em { color: var(--gold-light); font-style: italic; }
.lede { max-width: 690px; margin: 0 0 21px; color: rgba(255,255,255,.7); font-size: clamp(15px, 1.55vw, 17px); }
.search-panel { padding: 9px; border: 1px solid rgba(143,183,244,.26); border-radius: 12px; background: rgba(3,12,25,.48); box-shadow: 0 18px 50px rgba(0,0,0,.22); }
/* The hero is dark in both themes, so this input stays explicitly light —
   tokenising it would sink the field into the hero background. */
.search-form { display: flex; gap: 8px; padding: 6px; border-radius: 8px; background: #ffffff; }
.search-form input { min-width: 0; flex: 1; border: 0; outline: 0; padding: 14px 13px; background: transparent; color: #142238; font: 600 16px var(--sans); }
.search-form input::placeholder { color: #6b7c92; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 8px; padding: 13px 18px; background: var(--blue); color: white; text-decoration: none; font: 800 14px var(--sans); cursor: pointer; }
.button:hover { filter: brightness(1.07); transform: translateY(-1px); }
.button.gold { background: var(--gold-light); color: var(--navy-950); }
.search-note { margin: 9px 8px 2px; color: rgba(255,255,255,.5); font: 500 10px var(--mono); }
.search-note strong { color: #a9c8ff; }
.hero-shortcuts { display: flex; flex-wrap: wrap; gap: 6px; margin: 9px 5px 1px; }
.hero-shortcuts a { padding: 5px 8px; border: 1px solid rgba(255,255,255,.11); border-radius: 6px; color: rgba(255,255,255,.7); background: rgba(255,255,255,.035); font: 700 9px var(--mono); text-decoration: none; }
.hero-shortcuts a::after { content: " →"; color: #8eb8ff; }
.hero-shortcuts a:hover { color: white; border-color: rgba(142,184,255,.42); }
.hero-card { padding: 20px; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.04)); }
.signal { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.signal:last-child { border-bottom: 0; }
.signal-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(28,155,99,.13); }
.signal small { display: block; color: rgba(255,255,255,.45); }
.signal strong { color: var(--gold-light); font: 800 13px var(--mono); }
.monitor-card { border: 1px solid rgba(147,184,238,.24); border-radius: 12px; background: rgba(5,17,32,.78); box-shadow: 0 24px 60px rgba(0,0,0,.25); backdrop-filter: blur(10px); overflow: hidden; }
.monitor-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px 13px; border-bottom: 1px solid rgba(255,255,255,.09); }
.monitor-head span, .monitor-meta span { display: block; color: rgba(255,255,255,.48); font: 700 9px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.monitor-head strong { display: block; margin-top: 3px; color: white; font-size: 19px; letter-spacing: -.02em; }
.monitor-head b { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 6px 8px; border: 1px solid rgba(44,184,124,.25); border-radius: 6px; color: #7addad; background: rgba(44,184,124,.08); font: 750 9px var(--mono); }
.monitor-head i { width: 6px; height: 6px; border-radius: 50%; background: #35c985; box-shadow: 0 0 0 4px rgba(53,201,133,.11); }
.monitor-source { margin: 0; padding: 10px 18px; color: rgba(255,255,255,.55); background: rgba(72,124,197,.08); font: 600 10px var(--mono); }
.monitor-rows { padding: 8px 18px 11px; }
.monitor-row { display: grid; grid-template-columns: 1fr 42px; gap: 6px 12px; padding: 8px 0; }
.monitor-label { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; color: rgba(255,255,255,.73); font-size: 12px; }
.monitor-label strong { color: white; font: 780 12px var(--mono); }
.monitor-swatch { width: 7px; height: 7px; border-radius: 2px; }
.monitor-swatch.active, .monitor-track .active { background: #36c987; }
.monitor-swatch.closed, .monitor-track .closed { background: #f16d68; }
.monitor-swatch.risk, .monitor-track .risk { background: #e4ac48; }
.monitor-track { height: 5px; overflow: hidden; border-radius: 3px; background: rgba(255,255,255,.08); }
.monitor-track span { display: block; width: var(--size); height: 100%; border-radius: inherit; }
.monitor-row small { color: rgba(255,255,255,.5); font: 650 9px var(--mono); text-align: right; }
.monitor-meta { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,255,255,.09); border-bottom: 1px solid rgba(255,255,255,.09); }
.monitor-meta a { padding: 12px 18px; color: inherit; text-decoration: none; }
.monitor-meta a + a { border-left: 1px solid rgba(255,255,255,.09); }
.monitor-meta strong { display: block; margin-top: 4px; color: #b9d1f7; font: 730 11px var(--mono); }
.monitor-foot { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 10px 18px; color: rgba(255,255,255,.42); font-size: 9px; }
.monitor-foot a { color: #9fc0f5; font-weight: 750; text-decoration: none; white-space: nowrap; }
.metrics { width: min(1180px, calc(100% - 32px)); margin: -23px auto 0; position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.metric { padding: 16px 21px; border-right: 1px solid var(--line); text-decoration: none; }
.metric:last-child { border-right: 0; }
.metric:hover { background: var(--surface-hover); }
.metric b { display: block; margin-top: 3px; font: 800 clamp(23px, 2.5vw, 31px)/1 var(--sans); letter-spacing: -.04em; }
.metric span { display: block; color: var(--muted); font: 750 9px var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.metric small { display: block; margin-top: 6px; color: var(--meta-text); font-size: 10px; }
.section { width: min(1180px, calc(100% - 32px)); margin: auto; padding: 88px 0; }
.section.tight { padding-top: 48px; padding-bottom: 48px; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 32px; }
.section h2 { max-width: 720px; margin: 0; font-size: clamp(31px, 3.8vw, 46px); }
.section-copy { max-width: 650px; color: var(--muted); font-size: 16px; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.grid.two { grid-template-columns: repeat(2, 1fr); }
.card { min-width: 0; padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-2); box-shadow: var(--card-shadow); }
.card:hover { border-color: rgba(47,111,235,.32); box-shadow: var(--card-shadow-hover); }
.card h3 { margin: 7px 0 9px; font-size: 21px; }
.card p { margin: 0 0 16px; color: var(--muted); }
.card-link { color: var(--link); font-weight: 800; text-decoration: none; }
.tag { display: inline-flex; border-radius: 5px; padding: 4px 7px; color: var(--tag-text); background: var(--tag-bg); font: 700 9px var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.data-band { background: var(--navy-900); color: white; }
.data-band .section-copy, .data-band .card p { color: rgba(255,255,255,.62); }
.data-band .card { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.045); }
.data-band .card-link { color: var(--gold-light); }
.breadcrumb { margin: 0 0 18px; color: var(--muted); font-size: 12px; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.breadcrumb li { display: flex; align-items: center; gap: 8px; }
.breadcrumb a { color: inherit; }
.page-hero { padding: 30px 0 25px; color: white; background-color: var(--navy-950); background-image: linear-gradient(rgba(88,137,207,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(88,137,207,.07) 1px, transparent 1px), linear-gradient(130deg, #071323, #112844); background-size: 36px 36px, 36px 36px, auto; }
.page-hero .wrap, .wrap { width: min(1120px, calc(100% - 32px)); margin: auto; }
.page-hero h1 { max-width: 900px; margin-bottom: 10px; font-size: clamp(33px, 4.1vw, 47px); }
/* Fund heroes pair a name with a count. Setting the count on its own line stops
   the two running together as one sentence ("Jenson Funding Partners 40
   companies tracked"). */
.page-hero h1 em { display: block; margin-top: 9px; font-size: .56em; font-style: normal; letter-spacing: -.02em; }
.page-hero p { max-width: 820px; margin: 0; color: rgba(255,255,255,.68); font-size: 16px; }
.profile-hero code { color: #c9ddff; }
.content { width: min(1120px, calc(100% - 32px)); margin: auto; padding: 32px 0 84px; }
.content.narrow { max-width: 780px; }
.content h2 { margin: 52px 0 15px; font-size: 35px; }
.content h3 { margin: 30px 0 10px; font-size: 24px; }
.content p, .content li { color: var(--body-text); }
.content a { color: var(--link); }
.notice { padding: 18px 20px; border-left: 4px solid var(--blue); border-radius: 0 9px 9px 0; background: var(--notice-bg); color: var(--notice-text); }
.directory-search { margin: 0 0 24px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--card-shadow); }
.directory-search label { display: block; }
.directory-search label strong { display: block; color: var(--ink); font-size: 17px; }
.directory-search label span { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; }
.directory-search > div { display: flex; gap: 9px; margin-top: 9px; }
.directory-search input { flex: 1; min-width: 0; border: 1px solid var(--input-border); border-radius: 9px; padding: 12px 14px; color: var(--ink); background: var(--surface-3); font: 500 15px var(--sans); }
.directory-search input:focus { outline: 3px solid rgba(47,111,235,.18); border-color: var(--blue); }
.filter-status { min-height: 1.5em; margin: 9px 0 0; color: var(--meta-text) !important; font: 700 11px var(--mono); }
.product-journey { padding-top: 74px; padding-bottom: 74px; }
.commercial-card { border-color: rgba(201,151,63,.42); background: linear-gradient(145deg, var(--paper-2), var(--notice-bg)); }
.company-search-tool { margin: 26px 0 12px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--card-shadow); }
.company-search-tool label { display: block; margin-bottom: 10px; }
.company-search-tool label strong, .company-search-tool label span { display: block; }
.company-search-tool label strong { color: var(--ink); font-size: 18px; }
.company-search-tool label span { margin-top: 3px; color: var(--muted); font-size: 13px; }
.company-search-tool > div { display: flex; gap: 9px; }
.company-search-tool input { min-width: 0; flex: 1; border: 1px solid var(--input-border); border-radius: 9px; padding: 13px 14px; color: var(--ink); background: var(--surface-3); font: 600 16px var(--sans); }
.company-search-tool input:focus { outline: 3px solid rgba(47,111,235,.18); border-color: var(--blue); }
.company-search-tool button:disabled { opacity: .65; cursor: wait; }
.search-results-status { min-height: 1.6em; margin: 16px 2px; color: var(--meta-text) !important; font: 700 11px var(--mono); }
.company-search-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.company-result-card { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); box-shadow: var(--card-shadow); }
.company-result-card h2 { margin: 0 0 10px; font-size: 20px; }
.company-result-card h2 a { color: var(--ink); text-decoration: none; }
.company-result-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 13px; color: var(--muted); font: 700 10px var(--mono); }
.company-result-facts span { padding: 3px 7px; border-radius: 999px; background: var(--surface-2); text-transform: capitalize; }
.company-result-facts .status { color: var(--chip-text); background: var(--chip-bg); }
.search-next { margin-top: 58px; padding-top: 1px; border-top: 1px solid var(--line); }
.commercial-intro, .commercial-cta { display: flex; align-items: center; justify-content: space-between; gap: 34px; margin: 30px 0; padding: 28px; border: 1px solid rgba(201,151,63,.38); border-radius: 15px; background: linear-gradient(135deg, var(--surface), var(--notice-bg)); }
.commercial-intro h2, .commercial-cta h2 { margin: 9px 0; font-size: clamp(27px, 3vw, 38px); }
.commercial-intro p, .commercial-cta p { max-width: 760px; margin: 0; }
.commercial-intro .button, .commercial-cta .button { flex: 0 0 auto; }
.service-grid { margin: 24px 0 50px; }
.service-grid .card ul { padding-left: 20px; }
.service-grid .card li { margin-bottom: 7px; font-size: 14px; }
.commercial-cta { margin-top: 42px; color: white; background: linear-gradient(135deg, var(--navy-900), var(--navy-700)); }
.commercial-cta p { color: rgba(255,255,255,.7); }
.insight-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 26px 0; }
.insight { padding: 21px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--card-shadow); }
.insight h2 { margin: 9px 0; font-size: 23px; }
.insight p { margin: 0 0 13px; font-size: 14px; }
.fund-directory { margin-bottom: 42px; }
.guide-toc { margin: 24px 0 38px; padding: 19px 21px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.guide-toc > strong { color: var(--ink); font-size: 15px; }
.guide-toc ol { columns: 2; gap: 32px; margin: 10px 0 0; padding-left: 21px; }
.guide-toc li { break-inside: avoid; margin: 6px 0; font-size: 13px; }
.guide-section { scroll-margin-top: 150px; }
.guide-section + .guide-section { margin-top: 44px; padding-top: 1px; }
.guide-section h2 { margin-top: 0; }
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 13px 15px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--th-text); background: var(--surface-2); font: 750 10px var(--mono); text-transform: uppercase; letter-spacing: .07em; }
td { font-size: 14px; }
tr:last-child td { border-bottom: 0; }
.source-use { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.source-summary { margin: 14px 2px 34px; }
.rights-answer { display: inline-flex; min-width: 42px; justify-content: center; border-radius: 999px; padding: 4px 9px; color: var(--ok-text); background: var(--ok-bg); font: 800 11px var(--mono); text-transform: uppercase; }
.status { display: inline-flex; border-radius: 999px; padding: 4px 9px; font: 800 10px var(--mono); text-transform: uppercase; }
.status.active, .status.registered, .status.open { color: var(--ok-text); background: var(--ok-bg); }
.status.dissolved, .status.liquidation, .status.closed, .status.removed { color: var(--bad-text); background: var(--bad-bg); }
.status.administration, .status.unknown, .status.insolvency { color: var(--warn-text); background: var(--warn-bg); }
.fact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 26px 0; }
.fact { padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.fact span { display: block; color: var(--muted); font: 700 10px var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.fact b { display: block; margin-top: 7px; font-size: 17px; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 28px; }
.pagination a { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); text-decoration: none; }
.profile-nav { position: sticky; top: 91px; z-index: 20; display: flex; gap: 6px; margin: 0 0 20px; padding: 8px; overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; background: var(--sticky-bg); box-shadow: var(--card-shadow-hover); scrollbar-width: none; }
.profile-nav::-webkit-scrollbar { display: none; }
.profile-nav a { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; padding: 8px 11px; border-radius: 7px; color: var(--chip-text); font: 750 11px var(--mono); text-decoration: none; white-space: nowrap; }
.profile-nav a:hover { color: var(--chip-text-hover); background: var(--chip-bg); }
.identity-facts { margin-bottom: 16px; }
.provenance-notice { margin-bottom: 34px; }
.profile-section { scroll-margin-top: 155px; padding-top: 8px; }
.profile-section + .profile-section { margin-top: 54px; padding-top: 36px; border-top: 1px solid var(--line); }
.profile-section h2 { margin-top: 0; }
.profile-wide-card { margin-top: 18px; }
.identity-ledger { margin-top: 28px; }
.profile-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.profile-actions a { font-weight: 750; }
.section-title-row { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.section-title-row h2 { margin: 7px 0 0; }
.section-title-row > a { flex: 0 0 auto; font-weight: 750; }
.evidence-timeline, .compact-timeline { margin: 22px 0 0; padding: 0; list-style: none; }
.evidence-timeline { position: relative; }
.evidence-timeline::before { content: ""; position: absolute; top: 9px; bottom: 9px; left: 118px; width: 2px; background: var(--rail); }
.evidence-timeline li { position: relative; display: grid; grid-template-columns: 104px 1fr; gap: 30px; padding: 0 0 22px; }
.evidence-timeline li::before { content: ""; position: absolute; top: 7px; left: 113px; width: 10px; height: 10px; border: 3px solid var(--paper); border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 1px var(--rail-ring); }
.evidence-timeline time { color: var(--rail-text); font: 700 11px var(--mono); text-align: right; }
.evidence-timeline strong, .compact-timeline strong { display: block; color: var(--ink); }
.evidence-timeline span, .compact-timeline span, .compact-timeline small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.compact-timeline li { padding: 12px 0; border-bottom: 1px solid var(--line); }
.compact-timeline li:last-child { border-bottom: 0; }
.profile-subgrid { align-items: start; margin-top: 18px; }
.relationship-map { display: grid; grid-template-columns: minmax(180px, .7fr) 2fr; gap: 18px; margin-top: 22px; align-items: stretch; }
.relationship-hub { display: flex; flex-direction: column; justify-content: center; gap: 7px; min-height: 180px; padding: 24px; border: 1px solid var(--blue); border-radius: 12px; background: var(--notice-bg); }
.relationship-hub span, .relationship-edges article > span { color: var(--muted); font: 750 10px var(--mono); text-transform: uppercase; letter-spacing: .05em; }
.relationship-hub strong { color: var(--ink); font-size: clamp(18px, 2vw, 25px); line-height: 1.15; }
.relationship-hub code { align-self: flex-start; }
.relationship-edges { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.relationship-edges article { position: relative; padding: 17px 18px 17px 22px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.relationship-edges article::before { content: ""; position: absolute; left: -19px; top: 50%; width: 18px; border-top: 1px solid var(--rail); }
.relationship-edges article > strong { float: right; color: var(--blue); font: 800 17px var(--mono); }
.relationship-edges p { clear: both; margin: 9px 0 5px; line-height: 1.55; }
.relationship-edges small { color: var(--muted); }
.cross-source-timeline a { font-weight: 750; }
.site-footer { padding: 45px 0; color: rgba(255,255,255,.6); background: var(--navy-950); }
.footer-inner { width: min(1180px, calc(100% - 32px)); margin: auto; display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 34px; }
.footer-title { margin: 0 0 10px; color: white; font-size: 20px; font-weight: 800; }
.footer-label { margin: 0 0 10px; color: white; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.footer-inner a { display: block; margin: 7px 0; color: inherit; text-decoration: none; font-size: 13px; }
.legal { width: min(1180px, calc(100% - 32px)); margin: 30px auto 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); font-size: 11px; }
.cookie-banner { position: fixed; z-index: 999; right: 18px; bottom: 18px; width: min(440px, calc(100% - 36px)); padding: 20px; color: white; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; background: var(--navy-900); box-shadow: 0 20px 70px rgba(0,0,0,.35); }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 5px 0 14px; color: rgba(255,255,255,.65); font-size: 13px; }
.cookie-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cookie-actions button { border: 1px solid rgba(255,255,255,.16); border-radius: 8px; padding: 9px 12px; color: white; background: rgba(255,255,255,.08); cursor: pointer; }
.cookie-actions .accept { color: var(--navy-950); background: var(--gold-light); border-color: transparent; font-weight: 800; }

@media (max-width: 900px) {
  .hero-inner { grid-template-columns: 1fr; min-height: auto; padding: 42px 0 52px; }
  /* .hero-card is decorative; .monitor-card carries the coverage numbers and
     stays visible — it is the only proof of the dataset above the fold. */
  .hero-card { display: none; }
  .monitor-card { margin-top: 26px; }
  .metrics { grid-template-columns: repeat(2, 1fr); }
  .metric:nth-child(2) { border-right: 0; }
  .metric:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .grid, .grid.two { grid-template-columns: 1fr 1fr; }
  .insight-grid { grid-template-columns: 1fr 1fr; }
  .fact-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .company-search-results { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .nav { width: calc(100% - 20px); min-height: 52px; gap: 8px; }
  .brand { font-size: 15px; gap: 7px; }
  .brand-mark { width: 28px; height: 28px; border-radius: 9px; }
  .nav-links a { padding: 7px 8px; font-size: 11px; }
  .nav-cta { order: -1; }
  /* Only below this width does the link strip actually overflow, so the
     "more to the right" fade is applied here and nowhere else. */
  .nav-links { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent); }
  .coverage-inner { width: 100%; justify-content: flex-start; }
  .coverage-inner a { padding: 6px 13px; }
  .hero-inner { width: min(100% - 24px, 1180px); padding: 38px 0 46px; }
  h1 { font-size: 36px; }
  .search-form { flex-direction: column; }
  .directory-search > div { flex-direction: column; }
  .company-search-tool > div { flex-direction: column; }
  .metrics { width: calc(100% - 24px); }
  .metric { padding: 16px; }
  .metric small { font-size: 9px; }
  .section { width: calc(100% - 24px); padding-top: 60px; padding-bottom: 60px; }
  .content { width: calc(100% - 24px); padding-top: 28px; padding-bottom: 60px; }
  .profile-nav { top: 86px; margin-left: -4px; margin-right: -4px; }
  .page-hero { padding: 25px 0 21px; }
  .page-hero h1 { font-size: 35px; }
  .page-hero p { font-size: 15px; }
  .section-head { display: block; }
  .grid, .grid.two, .fact-grid { grid-template-columns: 1fr; }
  .insight-grid { grid-template-columns: 1fr; }
  .guide-toc ol { columns: 1; }
  .section-title-row { display: block; }
  .section-title-row > a { display: inline-flex; min-height: 44px; align-items: center; }
  .relationship-map { grid-template-columns: 1fr; }
  .relationship-hub { min-height: 0; }
  .relationship-edges { grid-template-columns: 1fr; }
  .relationship-edges article::before { display: none; }
  .evidence-timeline::before { left: 7px; }
  .evidence-timeline li { grid-template-columns: 1fr; gap: 4px; padding: 0 0 24px 28px; }
  .evidence-timeline li::before { left: 2px; }
  .evidence-timeline time { text-align: left; }
  .responsive-table { min-width: 0; }
  .responsive-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .responsive-table tbody, .responsive-table tr, .responsive-table td { display: block; width: 100%; }
  .responsive-table tr { padding: 8px 0; border-bottom: 1px solid var(--line); }
  .responsive-table tr:last-child { border-bottom: 0; }
  .responsive-table td { display: grid; grid-template-columns: minmax(92px, 34%) 1fr; gap: 12px; padding: 8px 12px; border: 0; }
  .responsive-table td::before { content: attr(data-label); color: var(--meta-text); font: 750 9px var(--mono); text-transform: uppercase; letter-spacing: .06em; }
  .footer-inner { grid-template-columns: 1fr; }
  .commercial-intro, .commercial-cta { display: block; padding: 22px; }
  .commercial-intro .button, .commercial-cta .button { margin-top: 18px; }
  th, td { padding: 11px 10px; }
}

/* ---------------------------------------------------------------------------
   Dark-theme component corrections.

   The header, hero, data band and footer are dark in BOTH themes. Against a
   light page they read as distinct bands; against a dark page they collapse
   into the background. These rules restore the separation. They live at the
   end of the file because they must win over the component rules above.
   --------------------------------------------------------------------------- */
@media (prefers-color-scheme: dark) {
  .site-header { background: rgba(6, 15, 27, .94); border-bottom-color: rgba(150, 180, 215, .16); }
  .hero { background-image:
      linear-gradient(rgba(88,137,207,.07) 1px, transparent 1px),
      linear-gradient(90deg, rgba(88,137,207,.07) 1px, transparent 1px),
      linear-gradient(130deg, #060f1c 0%, #0c1c31 58%, #102743 100%); }
  .page-hero { background-image:
      linear-gradient(rgba(88,137,207,.06) 1px, transparent 1px),
      linear-gradient(90deg, rgba(88,137,207,.06) 1px, transparent 1px),
      linear-gradient(130deg, #060f1c, #0f2540); }
  /* A hair lighter than the page, with rules top and bottom, so the band is
     still legible as a separate section. */
  .data-band { background: #101f36; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .site-footer { background: #060f1c; border-top: 1px solid var(--line); }
  .nav-cta { color: #08111f !important; background: #b9d3ff !important; }
  .metrics { background: var(--surface); }
  .table-wrap, .fact, .pagination a, .directory-search { background: var(--surface); }
  .status.active, .status.registered, .status.open,
  .status.dissolved, .status.liquidation, .status.closed, .status.removed,
  .status.administration, .status.unknown, .status.insolvency { border: 1px solid currentColor; }
  .notice { border-left-color: var(--blue); }
}

/* Cookie consent: a floating card on desktop, a bottom sheet on phones, where
   the floating treatment covered most of the first screen. */
@media (max-width: 620px) {
  .cookie-banner { right: 0; left: 0; bottom: 0; width: 100%; padding: 15px 16px calc(15px + env(safe-area-inset-bottom)); border-width: 1px 0 0; border-radius: 16px 16px 0 0; }
  .cookie-banner p { margin: 4px 0 11px; font-size: 12.5px; }
  .cookie-actions button { flex: 1 1 auto; min-height: 44px; }
}
