/* AI Implementation Landscape 2026: the front page, the layer pages and the firm panel, on the site's shared styles
   (site/assets/hub/hub.css; the header and footer come from site/partials/). Everything is under .ls / .ls-*. Light only. */

:root {
  /* the grader's tokens (web/theme-c.css): ground, ink, rule, stamp red, the dark stage */
  --ls-ink: #0F1B2D; --ls-band: #0F1B2D; --ls-page: #EEF0F2; --ls-card: #FFFFFF; --ls-line: #D3D8DE; --ls-line-soft: #E3E6EA;
  --ls-muted: #55606E; --ls-accent: #C8321E; --ls-accent-bright: #FF6B57; --ls-bar-track: #E3E6EA; --ls-hover: #F6F7F8;
  --ls-on-dark: #C9D1E0; --ls-on-dark2: #98A3B1; --ls-dark-line: #2C343E; --ls-foot-line: #D3D8DE; --ls-dash: #AEB6C0;
  --ls-acq-bg: #FBF1DE; --ls-acq: #7A4E00; --ls-pub-bg: #E6EDF6; --ls-pub: #1E4E8C; --ls-fund-bg: #E3F0EA; --ls-fund: #1F6B4A;
  --ls-sub-bg: #F5E8F0; --ls-sub: #8A2F67; --ls-mrg-bg: #F6F7F8; --ls-mrg: #3C4757;
  --ls-conf-high: #1F6B4A; --ls-conf-medium: #9A6200; --ls-conf-low: #8D97A3;
  --ls-display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --ls-sans: "Onest", "Helvetica Neue", Arial, system-ui, sans-serif;
  --ls-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
  --ls-pad: clamp(16px, 3vw, 32px);
}

body.ls-body { background: var(--ls-page); }
.ls { color: var(--ls-ink); font-family: var(--ls-sans); font-size: 15px; line-height: 1.4; }
.ls ul, .ls ol, .ls-panel ul, .ls-panel ol { list-style: none; margin: 0; padding: 0; }
.ls dl, .ls dd, .ls-panel dl, .ls-panel dd, .ls figure { margin: 0; }
.ls a { color: inherit; }
.ls :focus-visible { outline: 3px solid var(--ls-accent); outline-offset: 2px; }
.ls-band :focus-visible { outline-color: var(--ls-accent-bright); }
.ls-skip { position: absolute; left: 16px; top: -60px; z-index: 50; background: var(--ls-card); color: var(--ls-ink); padding: 8px 12px; }
.ls-skip:focus { top: 8px; }

/* chips */
.ls-chip { display: inline-block; font: 600 12px/1.4 var(--ls-sans); padding: 2px 8px; border-radius: 3px; white-space: nowrap; text-decoration: none; }
.ls-chip--acquired { background: var(--ls-acq-bg); color: var(--ls-acq); }
.ls-chip--public { background: var(--ls-pub-bg); color: var(--ls-pub); }
.ls-chip--funding { background: var(--ls-fund-bg); color: var(--ls-fund); font-family: var(--ls-mono); font-weight: 500; }
.ls-chip--subsidiary { background: var(--ls-sub-bg); color: var(--ls-sub); }
.ls-chip--merged { background: var(--ls-mrg-bg); color: var(--ls-mrg); }
.ls-chip--layer { background: transparent; color: var(--ls-accent); border: 1px solid var(--ls-line); white-space: normal; }
.ls-chip--layer.ls-chip--primary { background: #C8321E; color: #fff; border-color: #C8321E; }
.ls-chip--layer:hover { border-color: var(--ls-accent); }
.ls-hq { font: 500 12px var(--ls-mono); color: var(--ls-muted); }
.ls-muted { color: var(--ls-muted); }
.ls-conf { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.ls-conf i { width: 8px; height: 8px; border-radius: 50%; background: var(--ls-conf-low); }
.ls-conf--high i { background: var(--ls-conf-high); }
.ls-conf--medium i { background: var(--ls-conf-medium); }
.ls-label { font: 500 12px var(--ls-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ls-accent); }
.ls-label::before, .ls-word::before { content: ""; display: inline-block; width: 8px; height: 8px; background: currentColor; margin-right: 8px; }
.ls-label--dark { color: var(--ls-accent-bright); }

/* front page hero: the story kit's .hero (story.css), with the answer and one dot per firm by how a buyer would hire it */
.ls-hero .hero__title { font-size: clamp(44px, 6.6vw, 92px); color: var(--ls-ink); }
.ls-answer { font-size: clamp(22px, 2.3vw, 30px); line-height: 1.35; color: var(--ink2); }
.ls-answer b { font: 600 1.25em/1.1 var(--ls-display); color: var(--ls-ink); letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.ls-hero-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 6px; }
.ls .ls-hero .btn--primary { color: #fff; }
.ls-meta { padding-top: 18px; border-top: 1px solid var(--ls-line); }
.ls-meta .ls-stat-n { font: 600 12px var(--ls-mono); color: var(--ls-ink); }
.ls-gbars { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.ls-gbars .cap { margin-bottom: 8px; color: var(--ls-muted); }
.ls-gbar { display: grid; grid-template-columns: minmax(0, 1fr) 4ch; grid-template-areas: "n b" "t t"; align-items: baseline; gap: 6px 12px; padding: 12px 0; border-top: 1px solid var(--ls-line);
  text-decoration: none; color: var(--ls-ink); }
.ls-gbar:last-child { border-bottom: 1px solid var(--ls-line); }
.ls-gbar-name { grid-area: n; font-size: 15px; }
.ls-gbar b { grid-area: b; font: 600 22px/1 var(--ls-display); text-align: right; font-variant-numeric: tabular-nums; }
.ls-gbar-track { grid-area: t; height: 10px; background: var(--ls-bar-track); }
.ls-gbar-track i { display: block; height: 100%; background: var(--ls-ink); transform-origin: left; }
.ls-gbar.k-existing i { background: #1E4E8C; } .ls-gbar.k-product i { background: #0E6E69; } .ls-gbar.k-source i { background: var(--ls-accent); }
.ls-gbar:hover .ls-gbar-name { color: var(--ls-accent); }
html.js .ls-gbar-track i { transform: scaleX(0); animation: ls-grow .9s cubic-bezier(.3, .7, .2, 1) calc(.6s + var(--i, 0) * 120ms) forwards; }
@keyframes ls-grow { to { transform: none; } }
.ls-report { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; color: var(--ls-ink); text-decoration: none; border-bottom: 2px solid var(--ls-accent); }
.ls-report:hover { color: var(--ls-ink); } .ls-report span { transition: transform .25s; } .ls-report:hover span { transform: translateX(4px); }
@media (min-width: 861px) {
  .ls-hero .hero__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: clamp(40px, 6vw, 96px); row-gap: 30px; }
  .ls-hero .hero__in > * { grid-column: 1; }
  .ls-hero .ls-gbars { grid-column: 2; grid-row: 2 / span 3; align-self: center; width: 380px; }
}
@media (prefers-reduced-motion: reduce) {
  html.js .ls-gbar-track i { transform: none; animation: none; }
}

/* a layer page's opening: a short story-kit hero, its dots lit among the market's */
.ls .ls-lhero { min-height: 0; gap: 36px; padding-block: clamp(40px, 6vw, 80px) 28px; }
.ls-lhero .hero__title { font-size: clamp(40px, 5.6vw, 76px); line-height: 1.02; color: var(--ls-ink); }
.ls-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; font: 400 12px var(--ls-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ls-muted); }
.ls-crumbs::before { content: ""; width: 8px; height: 8px; background: var(--ls-accent); }
.ls-crumbs a { color: var(--ls-accent); text-decoration: none; padding-block: 4px; }
.ls-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ls-lhead { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ls-best.ls-best--big { margin: 4px 0 0; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.4; max-width: 40rem; }
.ls-lsub { font-size: clamp(16px, 1.4vw, 18px); line-height: 1.55; color: var(--ls-muted); max-width: 40rem; }
.ls-lsub b { color: var(--ls-ink); font-weight: 600; }
.ls-lstats { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.ls-lstats > div { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; border-top: 1px solid var(--ls-line); }
.ls-lstats dd { margin: 0; font: 600 clamp(40px, 4.4vw, 56px)/1 var(--ls-display); letter-spacing: -.02em; color: var(--ls-ink); font-variant-numeric: tabular-nums; }
.ls-lstats > div:first-child dd { color: var(--ls-accent); }
.ls-lstats dt { font-size: 14px; color: var(--ls-muted); }
.ls-lhead .ls-report { align-self: flex-start; }
@media (min-width: 861px) {
  .ls-lhero .hero__in { display: grid; grid-template-columns: minmax(0, 1fr) 340px; align-items: center; column-gap: clamp(40px, 6vw, 96px); }
}

/* header band (no longer used by the pages; kept for the firm panel's dark accents) */
.ls-band { background: var(--ls-band); color: var(--ls-on-dark); padding: 56px var(--ls-pad) 52px; }
.ls-band-in { max-width: 1136px; margin-inline: auto; }
.ls-band-top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px 24px; flex-wrap: wrap; }
.ls-word { font: 500 12px var(--ls-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ls-accent-bright); }
.ls-band-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font: 12px var(--ls-mono); letter-spacing: .04em; color: var(--ls-on-dark2); }
.ls-h1 { margin: 32px 0 0; font: 600 clamp(38px, 5.2vw, 72px)/1.04 var(--ls-display); letter-spacing: -.015em; color: #FFFFFF; text-wrap: balance; }
.ls-sub { margin: 20px 0 0; max-width: 900px; font-size: clamp(17px, 1.6vw, 22px); line-height: 1.4; color: var(--ls-on-dark); }
.ls-stats { margin-top: 40px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ls-stat { border-top: 1px solid var(--ls-dark-line); padding-top: 14px; }
.ls-stat-n { font: 600 clamp(44px, 5vw, 64px)/1 var(--ls-display); color: #fff; }
.ls-stat-l { margin-top: 8px; font-size: 14px; color: var(--ls-on-dark2); }
@media (max-width: 899px) { .ls-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 699px) { .ls-stat-n { font-size: 40px; } .ls-band { padding-block: 36px 32px; } .ls-h1 { margin-top: 28px; } }

.ls-band--compact { padding-block: 32px 36px; }
.ls-band--compact .ls-label { margin-top: 28px; }
.ls-h1--layer { margin-top: 6px; font-size: clamp(32px, 4vw, 48px); }
.ls-back { font: 600 15px var(--ls-sans); color: #fff !important; text-decoration: none; }
.ls-back:hover { text-decoration: underline; }
.ls-layer-count { margin-top: 24px; display: flex; align-items: baseline; gap: 10px; }
/* the link to the report (site/ai-implementation-landscape-2026/report/), under the band's figures */
.ls-layer-count .ls-stat-l { margin: 0; }

/* toolbar */
.ls-tools { background: color-mix(in srgb, var(--ls-page) 94%, transparent); backdrop-filter: blur(6px); border-block: 1px solid var(--ls-line); padding: 12px var(--ls-pad); position: sticky; top: var(--ls-bar-h, 57px); z-index: 15; }
.ls-tools-in { max-width: 1136px; margin-inline: auto; display: flex; flex-wrap: wrap; align-items: end; gap: 10px 14px; }
.ls-search { display: flex; flex-direction: column; gap: 4px; flex: 1 1 300px; max-width: 440px; }
.ls-search label, .ls-field > span { font: 500 11px var(--ls-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ls-muted); }
.ls-tools input[type="search"], .ls-tools select, .ls-dd summary, .ls-clear, .ls-filters-btn, .ls-retry {
  height: 44px; border: 1px solid var(--ls-line); border-radius: 0; background: var(--ls-card); color: var(--ls-ink); font: 500 14px var(--ls-sans); }
.ls-tools input[type="search"]:focus, .ls-tools select:focus { border-color: var(--ls-ink); }
.ls-tools input[type="search"] { padding: 0 14px 0 40px; width: 100%; font-size: 15px;
  background: var(--ls-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2355606E' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E") no-repeat 13px 50% / 17px; }
.ls-tools select { padding: 0 30px 0 10px; }
.ls-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 14px; }
.ls-field { display: flex; flex-direction: column; gap: 4px; }
.ls-check { display: inline-flex; align-items: center; gap: 8px; height: 44px; font-size: 14px; cursor: pointer; }
.ls-check input, .ls-dd input { width: 16px; height: 16px; accent-color: var(--ls-accent); }
.ls-dd { position: relative; }
.ls-dd summary { display: flex; align-items: center; gap: 8px; padding: 0 12px; cursor: pointer; list-style: none; white-space: nowrap; max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.ls-dd summary::-webkit-details-marker { display: none; }
.ls-dd summary::after { content: "▾"; margin-left: auto; color: var(--ls-muted); }
.ls-dd fieldset { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; margin: 0; padding: 8px; min-width: 240px; max-height: 340px; overflow: auto;
  background: var(--ls-card); border: 1px solid var(--ls-line); border-radius: 0; box-shadow: 0 24px 50px -28px rgba(15, 27, 45, .45); }
.ls-dd li label { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 0; font-size: 14px; cursor: pointer; }
.ls-dd li label:hover { background: var(--ls-hover); }
.ls-n { margin-left: auto; font: 500 12px var(--ls-mono); color: var(--ls-muted); }
.ls-clear { padding: 0 14px; cursor: pointer; }
.ls-clear:hover, .ls-filters-btn:hover, .ls-dd summary:hover { border-color: var(--ls-ink); }
.ls-result { margin: 0 0 0 auto; align-self: center; font: 12px var(--ls-mono); color: var(--ls-muted); }
.ls-jump { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 6px; }
.ls-jump a { font: 500 12px var(--ls-mono); text-decoration: none; padding: 4px 10px; border: 1px solid var(--ls-line); border-radius: 999px; color: var(--ls-ink); background: var(--ls-card); }
.ls-jump a:hover { border-color: var(--ls-accent); color: var(--ls-accent); }
.ls-filters-btn, .ls-sheet-head { display: none; }
.ls-load-err { max-width: 1136px; margin: 10px auto 0; font-size: 14px; color: var(--ls-muted); }
.ls-retry { padding: 0 12px; margin-left: 8px; cursor: pointer; }
.ls-tools:not(.is-ready) .ls-filters, .ls-tools:not(.is-ready) .ls-clear { opacity: .6; }

@media (max-width: 699px) {
  .ls-tools { position: static; }
  .ls-search { max-width: none; flex-basis: 100%; }
  .ls-filters-btn { display: inline-block; padding: 0 14px; cursor: pointer; }
  .ls-filters { display: none; }
  .ls-filters.is-open { display: flex; flex-direction: column; align-items: stretch; position: fixed; z-index: 40; inset: auto 0 0 0; max-height: 85vh; overflow: auto;
    background: var(--ls-card); border-top: 1px solid var(--ls-line); border-radius: 0; padding: 16px 16px calc(20px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -20px 50px -20px rgba(0, 0, 0, .4); }
  .ls-filters.is-open .ls-sheet-head { display: flex; justify-content: space-between; align-items: center; font: 700 18px var(--ls-display); }
  .ls-sheet-done { height: 44px; padding: 0 16px; border: 0; border-radius: 0; background: #C8321E; color: #fff; font: 600 15px var(--ls-sans); cursor: pointer; }
  .ls-filters.is-open select, .ls-filters.is-open .ls-dd summary { width: 100%; max-width: none; height: 44px; }
  .ls-dd fieldset { position: static; box-shadow: none; margin-top: 6px; max-height: 40vh; }
  .ls-result { flex-basis: 100%; margin: 0; }
  .ls-jump { display: none; }
}

/* the directory (a story-kit .section): the key, then a header per buyer group and a card per layer */
.ls-dir .intro { max-width: 46rem; }
.ls .ls-key { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 28px; padding-bottom: 36px; font-size: 14px; color: var(--ls-muted); }
.ls-key li { display: inline-flex; align-items: center; gap: 8px; }
.ls-key-code { font: 500 12px var(--ls-mono); color: var(--ls-ink); }
.ls-empty { max-width: 1136px; margin: 32px auto 0; padding: 0 var(--ls-pad); font-size: 16px; }
.ls-empty .ls-clear { margin-left: 8px; }
.ls-grid { box-sizing: content-box; max-width: 1136px; margin-inline: auto; padding: 8px var(--ls-pad) 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1099px) { .ls-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 699px) { .ls-grid { grid-template-columns: minmax(0, 1fr); } }
.ls-group { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: clamp(40px, 5vw, 64px); padding-top: 18px; border-top: 1px solid var(--ls-ink); scroll-margin-top: 140px; }
.ls-group .cap { color: var(--ls-accent); }
.ls-group h3 { margin: 0; font: 600 clamp(26px, 3vw, 38px)/1.1 var(--ls-display); letter-spacing: -.015em; color: var(--ls-ink); }
.ls-group p { margin: 0; max-width: 40rem; font-size: 16px; color: var(--ls-muted); }
.ls-card { background: var(--ls-card); border: 1px solid var(--ls-line); padding: 24px; display: flex; flex-direction: column; min-width: 0; scroll-margin-top: 140px; transition: border-color .2s, box-shadow .2s; }
.ls-card:hover { border-color: #AEB6C0; box-shadow: 0 18px 40px -30px rgba(15, 27, 45, .5); }
.ls-card-title { margin: 0; font: 600 23px/1.15 var(--ls-display); color: var(--ls-ink); text-wrap: pretty; }
.ls-card-title a { text-decoration: none; }
.ls-card-title a:hover { color: var(--ls-accent); }
.ls-best { margin: 10px 0 0; padding-left: 12px; border-left: 3px solid var(--ls-accent); font-size: 14px; line-height: 1.4; font-weight: 500; color: var(--ls-ink); }
.ls-best--dark { margin-top: 14px; border-left-color: var(--ls-accent-bright); color: #fff; font-size: clamp(15px, 1.4vw, 18px); max-width: 760px; }
.ls-blurb { margin: 8px 0 0; font-size: 14px; line-height: 1.45; color: var(--ls-muted); }
.ls-countline { display: flex; align-items: baseline; gap: 8px; margin-top: auto; padding-top: 18px; }
.ls-count { font: 600 32px/1 var(--ls-display); color: var(--ls-ink); }
.ls-count-l, .ls-shown { font-size: 13px; color: var(--ls-muted); }
.ls-shown { margin-left: auto; font: 11px var(--ls-mono); letter-spacing: .06em; text-transform: uppercase; text-align: right; }
.ls-rows { margin-top: 12px; border-top: 1px solid var(--ls-ink); }
.ls-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 10px; min-height: 38px; padding: 4px 8px; margin-inline: -8px;
  border-bottom: 1px solid var(--ls-line-soft); text-decoration: none; color: var(--ls-ink); }
.ls-row:hover { background: var(--ls-hover); }
.ls-row:hover .ls-row-name { color: var(--ls-accent); }
.ls-row-name { font: 500 15px/1.25 var(--ls-sans); }
.ls-row-meta { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.ls-row-meta .ls-hq { min-width: 22px; text-align: right; }
@media (pointer: coarse) { .ls-row { min-height: 44px; } }
.ls-more { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; min-height: 44px; margin-top: 12px; font-weight: 600; font-size: 15px;
  color: var(--ls-ink) !important; text-decoration: none; border-bottom: 2px solid var(--ls-accent); }
.ls-more span { transition: transform .25s; } .ls-more:hover span { transform: translateX(4px); }
.ls-nomatch { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--ls-line); font-size: 14px; color: var(--ls-muted); }

/* footer */
.ls-foot { margin: 48px max(var(--ls-pad), calc((100% - 1136px) / 2)) 0; padding: 20px 0 8px; border-top: 1px dashed var(--ls-dash); font: 11px/1.8 var(--ls-mono); letter-spacing: .03em; color: var(--ls-muted); }

/* layer page */
.ls-list { box-sizing: content-box; max-width: 1136px; margin-inline: auto; padding: 32px var(--ls-pad) 0; }
#ls-table { background: var(--ls-card); border: 1px solid var(--ls-line); padding: 4px 24px; }
.ls-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ls-table thead th { text-align: left; font: 500 12px var(--ls-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ls-muted); padding: 14px 10px 10px 0; border-bottom: 1px solid var(--ls-line); white-space: nowrap; }
.ls-table thead button { border: 0; background: none; padding: 4px 0; font: inherit; color: inherit; cursor: pointer; display: inline-flex; gap: 6px; }
.ls-table thead button:hover { color: var(--ls-ink); }
.ls-sort { font-family: var(--ls-mono); }
.ls-table tbody tr { position: relative; height: 52px; border-bottom: 1px solid var(--ls-line-soft); }
.ls-table tbody tr:last-child { border-bottom: 0; }
.ls-table tbody tr:hover { background: var(--ls-hover); }
.ls-table tbody th, .ls-table td { padding: 8px 10px 8px 0; vertical-align: middle; text-align: left; font-weight: 400; }
.ls-t-name { font-weight: 500 !important; width: 36%; }
.ls-t-name a { text-decoration: none; }
.ls-t-name a::after { content: ""; position: absolute; inset: 0; }
.ls-t-name a:focus-visible { outline: 0; }
.ls-t-name a:focus-visible::after { outline: 3px solid var(--ls-accent); outline-offset: -3px; }
.ls-t-hq .ls-hq { margin-left: 4px; }
.ls-t-status .ls-chip { margin: 2px 0; }
@media (max-width: 699px) {
  #ls-table { padding: 0 16px; }
  .ls-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ls-table, .ls-table tbody { display: block; }
  .ls-table tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; height: auto; padding: 12px 0; }
  .ls-table tbody th, .ls-table td { padding: 0; width: auto; }
  .ls-t-name { grid-column: 1; grid-row: 1; }
  .ls-t-status, .ls-t-fund { grid-row: 1; justify-self: end; display: flex; gap: 6px; }
  .ls-t-status { grid-column: 2; }
  .ls-t-fund { grid-column: 3; }
  .ls-table tbody tr { grid-template-columns: minmax(0, 1fr) auto auto; }
  .ls-t-status:has(.ls-muted) { display: none; }
  .ls-t-fund:has(.ls-muted) { display: none; }
  .ls-t-hq { grid-column: 1; grid-row: 2; font-size: 13px; color: var(--ls-muted); }
  .ls-t-conf { grid-column: 2 / 4; grid-row: 2; justify-self: end; font-size: 13px; color: var(--ls-muted); }
}
.ls-pnav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px; }
.ls-pn { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border: 1px solid var(--ls-line); background: var(--ls-card); text-decoration: none; font: 600 18px/1.2 var(--ls-display); transition: border-color .2s, box-shadow .2s; }
.ls-pn:hover { box-shadow: 0 18px 40px -30px rgba(15, 27, 45, .5); }
.ls-pn:hover { border-color: var(--ls-accent); }
.ls-pn--next { text-align: right; grid-column: 2; }
.ls-pn-k { font: 500 13px var(--ls-mono); color: var(--ls-accent); }
@media (max-width: 699px) { .ls-pnav { grid-template-columns: 1fr; } .ls-pn--next { grid-column: 1; } }

/* firm panel: slides in from the right; the firm's main layer, name and country, its story, its figures, then the facts */
.ls-panel { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(560px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 0; border: 0;
  background: var(--ls-card); color: var(--ls-ink); font-family: var(--ls-sans); font-size: 15px; line-height: 1.5; overflow: auto; overscroll-behavior: contain;
  box-shadow: -24px 0 60px -30px rgba(15, 27, 45, .45); }
.ls-panel::backdrop { background: rgba(15, 27, 45, .4); }
.ls-panel.ls-anim[open] { animation: ls-in .32s cubic-bezier(.2, .7, .2, 1); }
.ls-panel.ls-anim[open]::backdrop { animation: ls-fade .32s ease; }
@keyframes ls-in { from { transform: translateX(100%); } }
@keyframes ls-fade { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ls-panel.ls-anim[open], .ls-panel.ls-anim[open]::backdrop { animation: none; } }
@media (max-width: 699px) { .ls-panel { width: 100vw; } }
.ls-panel :focus-visible { outline: 3px solid var(--ls-accent); outline-offset: 2px; }
.ls-p-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: flex-start; gap: 16px; padding: 28px 28px 18px; background: var(--ls-card); border-bottom: 1px solid var(--ls-line); }
.ls-p-title { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.ls-p-kick { font: 500 11px var(--ls-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ls-accent); }
.ls-p-head h2 { margin: 0; font: 600 clamp(26px, 3vw, 32px)/1.1 var(--ls-display); letter-spacing: -.01em; overflow-wrap: anywhere; }
.ls-p-meta { font-size: 14px; color: var(--ls-muted); }
.ls-p-close { flex: none; width: 40px; height: 40px; margin: -4px -6px 0 0; border: 1px solid var(--ls-line); border-radius: 0; background: var(--ls-card); color: var(--ls-ink); font-size: 22px; line-height: 1; cursor: pointer; transition: border-color .2s; }
.ls-p-close:hover { border-color: var(--ls-ink); }
.ls-p-body { padding: 22px 28px 32px; }
.ls-p-desc { font-size: 17px; line-height: 1.55; color: var(--ls-ink); }
.ls-p-figs { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0 20px; margin-top: 22px; }
.ls-p-figs div { display: flex; flex-direction: column; gap: 4px; padding-top: 12px; border-top: 1px solid var(--ls-ink); }
.ls-p-figs b { font: 600 28px/1.05 var(--ls-display); letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.ls-p-figs div > span { font-size: 13px; color: var(--ls-muted); }
.ls-p-site { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; min-height: 46px; padding: 0 20px; background: var(--ls-accent); color: #fff !important; font-weight: 600; text-decoration: none; }
.ls-p-site:hover { filter: brightness(.92); }
.ls-p-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.ls-p-sec { margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--ls-line); }
.ls-p-sec h3 { margin: 0 0 14px; font: 500 11px var(--ls-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ls-accent); }
.ls-p-sec h4 { margin: 16px 0 8px; font: 500 11px var(--ls-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ls-muted); }
.ls-p-sec p + p { margin-top: 8px; }
.ls-facts { display: grid; gap: 0; margin: 0; }
.ls-facts div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--ls-line-soft); }
.ls-facts div:first-child { padding-top: 0; }
.ls-facts dt { font: 500 11px/1.9 var(--ls-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ls-muted); }
.ls-facts dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 459px) { .ls-facts div { grid-template-columns: minmax(0, 1fr); gap: 2px; } .ls-p-head { padding: 22px 20px 14px; } .ls-p-body { padding: 18px 20px 28px; } }
.ls-mini { width: 100%; margin-top: 16px; border-collapse: collapse; font-size: 13px; }
.ls-mini th { text-align: left; font: 500 11px var(--ls-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ls-muted); border-bottom: 1px solid var(--ls-ink); padding: 6px 8px 6px 0; }
.ls-mini td { border-bottom: 1px solid var(--ls-line-soft); padding: 7px 8px 7px 0; vertical-align: top; overflow-wrap: anywhere; }
.ls-deals { display: grid; gap: 12px; }
.ls-deals li { padding-left: 12px; border-left: 2px solid var(--ls-line); }
.ls-deals a, .ls-sources a { color: var(--ls-accent); text-underline-offset: 3px; }
.ls-deal-p { font-size: 13px; }
.ls-sources { display: grid; gap: 6px; font-size: 14px; }
.ls-sources a { overflow-wrap: anywhere; }
.ls-p-foot { margin-top: 30px; padding-top: 14px; border-top: 1px solid var(--ls-line); font: 12px var(--ls-mono); letter-spacing: .03em; color: var(--ls-muted); }


