/* AI Search Ranking component styles. Tokens come from tokens.css. Port unchanged into the site's base stylesheet. */

.aisr-root { font-family: var(--font-sans); color: var(--text); background: var(--surface); -webkit-font-smoothing: antialiased; font-feature-settings: "ss01" 0; }

/* Section label: a sentence-case label, without a rule before it (9 October 2026) */
.aisr-label { display: inline-flex; align-items: center; font-size: 14px; line-height: 20px; font-weight: 600; letter-spacing: 0.01em; color: var(--accent-text); margin: 0; }
.aisr-on-band .aisr-label { color: var(--accent-on-band); }

/* Buttons */
.aisr-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); font-family: var(--font-sans); font-size: 15px; line-height: 20px; font-weight: 600; letter-spacing: 0.01em; padding: 14px 24px; border-radius: var(--radius-md); border: 1px solid transparent; text-decoration: none; cursor: pointer; transition: background-color .2s ease-out, border-color .2s ease-out, color .2s ease-out; }
.aisr-btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-btn--primary { background: var(--accent-fill); color: var(--on-accent); }
.aisr-btn--primary:hover { background: var(--accent-fill-hover); }
.aisr-btn--secondary { background: transparent; color: var(--text); border-color: var(--line-control); }
.aisr-btn--secondary:hover { border-color: var(--text); }
.aisr-on-band .aisr-btn--primary { background: var(--brand-paper); color: var(--brand-ink); }
.aisr-on-band .aisr-btn--primary:hover { background: #FFFFFF; }
.aisr-on-band .aisr-btn--secondary { color: var(--text-on-band); border-color: var(--text-on-band-muted); }
.aisr-on-band .aisr-btn--secondary:hover { border-color: var(--text-on-band); }
.aisr-on-band .aisr-btn:focus-visible { outline-color: var(--accent-on-band); }
.aisr-btn[aria-disabled="true"], .aisr-btn:disabled { opacity: .45; pointer-events: none; }

/* Text link */
.aisr-link { color: var(--accent-text); font-weight: 600; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s ease-out; }
.aisr-link:hover { border-bottom-color: currentColor; }
.aisr-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-on-band .aisr-link { color: var(--accent-on-band); }

/* Citation marker: editorial footnote */
.aisr-cite { font-size: 0.7em; line-height: 0; vertical-align: super; font-weight: 600; color: var(--accent-text); text-decoration: none; margin-left: 1px; }
.aisr-cite:hover { text-decoration: underline; }
/* Several citations together read 1,2,4,5: each number is its own link. The
   comma is drawn only on a citation that directly follows another (marked
   in the HTML), never across ordinary text between two citations. */
.aisr-cite--next::before { content: "," / ""; color: var(--text-muted); margin-right: 1px; }
.aisr-cite:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-sources { list-style: none; margin: 0; padding: var(--space-4) 0 0; border-top: 1px solid var(--line); font-size: 13px; line-height: 20px; color: var(--text-muted); display: grid; gap: var(--space-1); counter-reset: src; }
.aisr-sources li { display: grid; grid-template-columns: 28px 1fr; }
.aisr-sources li::before { counter-increment: src; content: counter(src) "."; font-weight: 600; color: var(--accent-text); }

/* Service card */
.aisr-card { background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-4); transition: box-shadow .25s ease-out, border-color .25s ease-out; }
.aisr-card:hover { box-shadow: var(--shadow-raised); border-color: var(--line-control); }
.aisr-card__label { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--accent-text); margin: 0; padding-bottom: var(--space-4); border-bottom: 1px solid var(--line); }
.aisr-card__title { font-size: 22px; line-height: 30px; font-weight: 500; margin: var(--space-2) 0 0; color: var(--text); }
.aisr-card__body { font-size: 15px; line-height: 24px; color: var(--text-muted); margin: 0; flex: 1; }

/* Exhibit: report-style figure */
.aisr-exhibit { margin: 0; background: var(--surface-raised); color: var(--text); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); font-family: var(--font-sans); }
.aisr-exhibit--hero { box-shadow: 0 1px 2px rgba(0,0,0,.25), 0 24px 48px rgba(0,0,0,.25); border-color: transparent; }
.aisr-on-band .aisr-exhibit { --text: #0B1B2B; --text-muted: #4A5A6B; --line: #E3E1DA; --line-control: #6F7C8B; --accent-text: #0B6E4F; --accent-fill: #0B6E4F; --surface-raised: #FFFFFF; background: var(--surface-raised); color: var(--text); }
.aisr-exhibit__num { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--accent-text); margin: 0 0 var(--space-2); }
.aisr-exhibit__title { font-size: 18px; line-height: 26px; font-weight: 600; margin: 0 0 var(--space-6); white-space: normal; overflow-wrap: break-word; }
.aisr-exhibit table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 20px; }
.aisr-exhibit th { text-align: left; font-weight: 600; font-size: 13px; color: var(--text-muted); padding: 0 0 var(--space-3); border-bottom: 1px solid var(--text); }
.aisr-exhibit th:not(:first-child), .aisr-exhibit td:not(:first-child) { text-align: center; width: 22%; }
.aisr-exhibit tbody th { font-weight: 500; font-size: 14px; color: var(--text); padding: 12px 0; border-bottom: 1px solid var(--line); }
.aisr-exhibit td { padding: 12px 0; border-bottom: 1px solid var(--line); }
.aisr-exhibit--hero thead th:not(:first-child) { padding-left: var(--space-1); padding-right: var(--space-1); }
.aisr-exhibit th.is-you, .aisr-exhibit td.is-you { box-shadow: inset 0 0 0 999px color-mix(in srgb, var(--accent-fill) 8%, transparent); }
.aisr-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--accent-fill); }
.aisr-dot--no { background: transparent; box-shadow: inset 0 0 0 1.5px var(--line-control); }
.aisr-exhibit__foot { display: flex; justify-content: space-between; gap: var(--space-4); margin: var(--space-4) 0 0; font-size: 13px; line-height: 18px; color: var(--text-muted); }

/* Band, nav and hero */
.aisr-band { background: var(--band); color: var(--text-on-band); }
.aisr-utility { display: flex; justify-content: flex-end; gap: var(--space-8); font-size: 13px; line-height: 18px; color: var(--text-on-band-muted); padding: var(--space-3) 0; border-bottom: 1px solid var(--line-on-band); }
.aisr-utility a { color: var(--text-on-band-muted); text-decoration: none; }
.aisr-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); padding: var(--space-6) 0; }
.aisr-nav__links { display: flex; gap: var(--space-8); list-style: none; margin: 0; padding: 0; font-size: 15px; font-weight: 500; }
.aisr-nav__links a { color: var(--text-on-band); text-decoration: none; }
.aisr-nav__links a:hover { color: var(--accent-on-band); }
.aisr-hero { display: grid; grid-template-columns: 6fr 5fr; gap: var(--space-16); align-items: center; padding: var(--space-16) 0 var(--space-24); }
.aisr-hero__title { font-size: 64px; line-height: 70px; font-weight: 500; letter-spacing: -0.02em; margin: var(--space-6) 0; color: var(--text-on-band); }
.aisr-hero__lead { font-size: 20px; line-height: 32px; color: var(--text-on-band-muted); max-width: 32em; margin: 0 0 var(--space-8); }
.aisr-hero__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }
@media (max-width: 720px) {
  .aisr-hero { grid-template-columns: 1fr; gap: var(--space-12); padding: var(--space-12) 0 var(--space-16); }
  .aisr-hero__title { font-size: 42px; line-height: 48px; }
}
@media (prefers-reduced-motion: reduce) { .aisr-btn, .aisr-card, .aisr-link { transition: none; } }

/* ==========================================================================
   Site layout. Everything above this line is docs/brand/components.css,
   copied unchanged. Everything below uses tokens only.
   ========================================================================== */

@font-face {
  font-family: "Instrument Sans";
  src: url("../fonts/InstrumentSans-Variable.dd32e982c251.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/IBMPlexMono-Regular.fcf245510b37.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; font-size: var(--type-body-size); line-height: var(--type-body-line-height); }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--accent-text); }
a:focus-visible, summary:focus-visible, button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-on-band a:focus-visible, .aisr-on-band summary:focus-visible { outline-color: var(--accent-on-band); }

h1, h2, h3, h4 { margin: 0; color: inherit; font-weight: var(--type-h1-weight); }
h1 { font-size: var(--type-h1-size); line-height: var(--type-h1-line-height); letter-spacing: var(--type-h1-tracking); }
h2 { font-size: var(--type-h2-size); line-height: var(--type-h2-line-height); letter-spacing: var(--type-h2-tracking); }
h3 { font-size: var(--type-h3-size); line-height: var(--type-h3-line-height); font-weight: var(--type-h3-weight); }
h4 { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: var(--type-h4-weight); }
p { margin: 0; }
.aisr-lead { font-size: var(--type-lead-size); line-height: var(--type-lead-line-height); color: var(--text-muted); max-width: var(--measure); }

/* Skip link */
.aisr-skip { position: absolute; left: var(--space-4); top: calc(-1 * var(--space-24)); z-index: 10; padding: var(--space-3) var(--space-4); background: var(--brand-paper); color: var(--brand-ink); font-weight: 600; border-radius: var(--radius-md); text-decoration: none; }
.aisr-skip:focus { top: var(--space-4); }

/* Container and sections */
.aisr-container { max-width: calc(var(--container) + 2 * var(--space-12)); margin: 0 auto; padding: 0 var(--space-12); }
.aisr-section { padding: var(--space-24) 0; }
.aisr-section--sunken { background: var(--surface-sunken); }

/* Header */
.aisr-nav__logo { display: inline-flex; flex-shrink: 0; }
.aisr-nav__logo img { width: auto; height: 34px; }
.aisr-menu { display: none; }
.aisr-menu > summary { list-style: none; cursor: pointer; padding: var(--space-2) var(--space-4); border: 1px solid var(--text-on-band-muted); border-radius: var(--radius-md); font-size: var(--type-body-sm-size); font-weight: 600; color: var(--text-on-band); }
.aisr-menu > summary::-webkit-details-marker { display: none; }
.aisr-menu__panel { margin: 0; padding: var(--space-4) 0 var(--space-6); border-top: 1px solid var(--line-on-band); max-height: calc(100vh - 80px); overflow-y: auto; }
.aisr-menu__panel ul { list-style: none; margin: 0 0 var(--space-4); padding: 0; }
.aisr-menu__heading { margin: var(--space-4) 0 0; font-size: var(--type-label-size); line-height: var(--type-label-line-height); font-weight: var(--type-label-weight); color: var(--text-on-band-muted); }
.aisr-menu__panel a { display: block; padding: var(--space-2) 0; color: var(--text-on-band); text-decoration: none; font-weight: 500; }
.aisr-menu__panel .aisr-btn { display: flex; margin-top: var(--space-4); padding: 14px 24px; }

/* Closing call to action */
.aisr-cta { padding: var(--space-24) 0; text-align: center; }
.aisr-cta__title { font-size: var(--type-h1-size); line-height: var(--type-h1-line-height); letter-spacing: var(--type-h1-tracking); margin: 0 auto var(--space-8); max-width: 20em; color: var(--text-on-band); }

/* Footer */
.aisr-footer { padding: var(--space-16) 0 var(--space-12); border-top: 1px solid var(--line-on-band); font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); }
.aisr-footer__top { display: grid; grid-template-columns: 4fr repeat(4, 2fr); gap: var(--space-8); }
.aisr-footer__intro { color: var(--text-on-band-muted); max-width: 22em; margin-top: var(--space-4); }
.aisr-footer__heading { font-size: var(--type-label-size); line-height: var(--type-label-line-height); font-weight: var(--type-label-weight); color: var(--text-on-band); margin: 0 0 var(--space-4); }
.aisr-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.aisr-footer__list a { color: var(--text-on-band-muted); text-decoration: none; }
.aisr-footer__list a:hover { color: var(--accent-on-band); }
.aisr-footer__list--inline { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); margin-top: var(--space-6); }
.aisr-footer__legal { margin-top: var(--space-12); padding-top: var(--space-6); border-top: 1px solid var(--line-on-band); font-size: var(--type-caption-size); line-height: var(--type-caption-line-height); color: var(--text-on-band-muted); display: grid; gap: var(--space-1); }

/* Error pages */
.aisr-error { padding: var(--space-24) 0; }
.aisr-error h1 { margin: var(--space-6) 0; }
.aisr-error .aisr-lead { margin-bottom: var(--space-8); }

@media (max-width: 960px) {
  .aisr-footer__top { grid-template-columns: repeat(2, 1fr); }
  .aisr-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .aisr-container { padding: 0 var(--space-4); }
  .aisr-section { padding: var(--space-16) 0; }
  .aisr-cta { padding: var(--space-16) 0; }
  h1, .aisr-cta__title { font-size: var(--type-h2-size); line-height: var(--type-h2-line-height); }
  h2 { font-size: var(--type-h3-size); line-height: var(--type-h3-line-height); }
  h3 { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); }
  .aisr-lead { font-size: var(--type-body-size); line-height: var(--type-body-line-height); }
}

/* The full nav row needs about 1000px (logo, five menus, the button and the
   container padding), so it collapses to the Menu button below 1024px rather
   than wrapping. No nav item ever breaks onto two lines. */
.aisr-nav__links > li, .aisr-megamenu > summary, .aisr-nav__cta { white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1199px) {
  .aisr-nav, .aisr-nav__links { gap: var(--space-6); }
}
@media (max-width: 1023px) {
  .aisr-nav__links, .aisr-utility { display: none; }
  .aisr-nav { position: relative; gap: var(--space-4); padding: var(--space-4) 0; }
  .aisr-nav__cta { margin-left: auto; }
  .aisr-menu { display: block; }
  .aisr-menu__panel { position: absolute; left: calc(-1 * var(--space-12)); right: calc(-1 * var(--space-12)); top: 100%; z-index: 5; padding-left: var(--space-12); padding-right: var(--space-12); background: var(--band); border-bottom: 1px solid var(--line-on-band); }
}
@media (max-width: 720px) {
  .aisr-nav__cta { display: none; }
  .aisr-menu__panel { left: calc(-1 * var(--space-4)); right: calc(-1 * var(--space-4)); padding-left: var(--space-4); padding-right: var(--space-4); }
}

@media (max-width: 359px) {
  .aisr-nav__logo img { height: 28px; }
}

/* Mega-menus: <details> disclosures, usable without JS */
.aisr-nav__links > li { position: relative; }
.aisr-megamenu > summary { list-style: none; cursor: pointer; color: var(--text-on-band); display: inline-flex; align-items: center; gap: var(--space-1); }
.aisr-megamenu > summary::-webkit-details-marker { display: none; }
.aisr-megamenu > summary::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.aisr-megamenu[open] > summary::after { transform: translateY(1px) rotate(-135deg); }
.aisr-megamenu > summary:hover { color: var(--accent-on-band); }
.aisr-megamenu__panel { position: absolute; top: calc(100% + var(--space-3)); left: calc(-1 * var(--space-4)); z-index: 10; min-width: 220px; list-style: none; margin: 0; padding: var(--space-3) 0; background: var(--band); border: 1px solid var(--line-on-band); border-radius: var(--radius-lg); }
.aisr-megamenu__panel a { display: block; padding: var(--space-2) var(--space-4); color: var(--text-on-band); text-decoration: none; font-weight: 500; }
.aisr-megamenu__panel a:hover { color: var(--accent-on-band); }

/* Inner page hero */
.aisr-page-hero { padding: var(--space-8) 0 var(--space-16); }
.aisr-page-hero__title { font-size: var(--type-display-lg-size); line-height: var(--type-display-lg-line-height); letter-spacing: var(--type-display-lg-tracking); margin: var(--space-4) 0 var(--space-6); max-width: 22em; color: var(--text-on-band); }
.aisr-page-hero__lead { font-size: var(--type-lead-size); line-height: var(--type-lead-line-height); color: var(--text-on-band-muted); max-width: var(--measure); margin: 0; }

/* Breadcrumbs */
.aisr-breadcrumbs ol { list-style: none; margin: 0 0 var(--space-6); padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); font-size: var(--type-caption-size); line-height: var(--type-caption-line-height); color: var(--text-on-band-muted); }
.aisr-breadcrumbs li + li::before { content: "/"; margin-right: var(--space-2); color: var(--line-on-band); }
.aisr-breadcrumbs a { color: var(--text-on-band-muted); text-decoration: none; }
.aisr-breadcrumbs a:hover { color: var(--accent-on-band); text-decoration: underline; }

/* Running text */
.aisr-prose { max-width: var(--measure); }
.aisr-prose > * + * { margin-top: var(--space-4); }
.aisr-prose h2 { margin-top: var(--space-12); }
.aisr-prose h3 { margin-top: var(--space-8); }
.aisr-prose ul, .aisr-prose ol { padding-left: var(--space-6); }
.aisr-prose a { color: var(--accent-text); font-weight: 600; }
.aisr-measure, .aisr-faqs { margin-top: var(--space-12); padding-top: var(--space-8); border-top: 1px solid var(--line); }
.aisr-measure > * + *, .aisr-faqs > * + * { margin-top: var(--space-4); }
.aisr-faqs h3 { margin-top: var(--space-8); }
.aisr-updated { margin-top: var(--space-12); font-size: var(--type-caption-size); line-height: var(--type-caption-line-height); color: var(--text-muted); }
.aisr-details { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-2) var(--space-6); margin-top: var(--space-8); }
.aisr-details dt { font-weight: 600; }
.aisr-details dd { margin: 0; }
.aisr-empty { padding: var(--space-8); background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-lg); color: var(--text-muted); }

/* Draft banner (staff only) */
.aisr-draft-banner { background: var(--surface-sunken); border-bottom: 1px solid var(--line-control); font-size: var(--type-body-sm-size); }
.aisr-draft-banner p { padding: var(--space-3) 0; }

@media (max-width: 720px) {
  .aisr-page-hero { padding: var(--space-6) 0 var(--space-12); }
  .aisr-page-hero__title { font-size: var(--type-h1-size); line-height: var(--type-h1-line-height); }
  .aisr-page-hero__lead { font-size: var(--type-body-size); line-height: var(--type-body-line-height); }
}

/* Discovery call form */
.aisr-form { margin-top: var(--space-12); padding-top: var(--space-8); border-top: 1px solid var(--line); display: grid; gap: var(--space-6); }
.aisr-field { display: grid; gap: var(--space-2); }
.aisr-field label { font-weight: 600; font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); }
.aisr-field input, .aisr-field textarea, .aisr-field select { width: 100%; font: inherit; color: var(--text); background: var(--surface-raised); border: 1px solid var(--line-control); border-radius: var(--radius-sm); padding: var(--space-3) var(--space-4); }
.aisr-field input:focus-visible, .aisr-field textarea:focus-visible, .aisr-field select:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-field--error input, .aisr-field--error textarea, .aisr-field--error select { border-color: var(--danger); border-width: 2px; }
.aisr-field__error, .aisr-form__summary h2 { display: flex; align-items: center; gap: var(--space-2); color: var(--danger); font-weight: 600; font-size: var(--type-body-sm-size); margin: 0; }
.aisr-icon { flex-shrink: 0; }
.aisr-form__summary { padding: var(--space-6); border: 2px solid var(--danger); border-radius: var(--radius-lg); }
.aisr-form__summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-form__summary ul { margin: var(--space-3) 0 0; padding-left: var(--space-6); }
.aisr-form__summary a { color: var(--danger); }
.aisr-form .aisr-btn { justify-self: start; }
.aisr-form__consent { font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text-muted); }
.aisr-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Articles */
.aisr-byline { font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text-muted); }
.aisr-experience { margin-top: var(--space-12); padding: var(--space-8); background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.aisr-experience > * + * { margin-top: var(--space-4); }
.aisr-article-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-8); }
.aisr-article-list li { padding-bottom: var(--space-8); border-bottom: 1px solid var(--line); }
.aisr-article-list h2 { font-size: var(--type-h3-size); line-height: var(--type-h3-line-height); margin: 0 0 var(--space-2); }
.aisr-article-list h2 a { color: var(--text); text-decoration: none; }
.aisr-article-list h2 a:hover { color: var(--accent-text); text-decoration: underline; }

/* Homepage sections ----------------------------------------------------------- */
.aisr-home-section { padding: var(--space-24) 0; background: var(--surface); }
.aisr-home-section--sunken { background: var(--surface-sunken); }
.aisr-home-section--sources { padding: var(--space-12) 0; border-top: 1px solid var(--line); }
.aisr-home-sources__title { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: var(--type-h4-weight); margin-bottom: var(--space-4); }
.aisr-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.aisr-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.aisr-row-icon, .aisr-callout__icon, .aisr-promise__icon, .aisr-credentials__icon, .aisr-timeline__return { flex-shrink: 0; align-self: flex-start; }
.aisr-timeline__return { align-self: center; }
.aisr-centre { text-align: center; margin-left: auto; margin-right: auto; max-width: var(--measure); }
.aisr-flow > * + * { margin-top: var(--space-4); }
.aisr-flow > table { margin-top: var(--space-8); }
.aisr-section-head { margin-bottom: var(--space-12); max-width: var(--measure); }
.aisr-section-head--centre { text-align: center; margin-left: auto; margin-right: auto; }
.aisr-home__closing { font-size: var(--type-lead-size); line-height: var(--type-lead-line-height); font-weight: 500; color: var(--text); }

/* Editorial grid: heading in 4 columns, body in 7, on the 12-column grid */
.aisr-editorial { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-8); row-gap: var(--space-12); align-items: start; }
.aisr-editorial__head { grid-column: 1 / span 4; }
.aisr-editorial__body { grid-column: 6 / span 7; }
.aisr-editorial__full { grid-column: 1 / -1; }

/* Hero: a fine ruled grid on the band, a mint accent rule, a lifted Exhibit 1
   whose dots arrive in a short sequence. The H1 stays the largest element. */
.aisr-hero-band {
  background-color: var(--band);
  background-image:
    linear-gradient(color-mix(in srgb, var(--line-on-band) 45%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--line-on-band) 45%, transparent) 1px, transparent 1px);
  background-size: 48px 48px;
  background-position: -1px -1px;
}
.aisr-hero-band .aisr-hero__lead::after { content: ""; display: block; width: 64px; height: 2px; margin-top: var(--space-6); background: var(--accent-on-band); }
.aisr-hero-band .aisr-exhibit--hero {
  transform: translateY(calc(-1 * var(--space-2)));
  box-shadow: 14px 14px 0 -1px var(--band), 14px 14px 0 0 color-mix(in srgb, var(--accent-on-band) 45%, transparent), 0 24px 48px rgb(0 0 0 / 0.28);
}
.aisr-hero-band .aisr-exhibit tbody tr:nth-child(1) { --r: 0; }
.aisr-hero-band .aisr-exhibit tbody tr:nth-child(2) { --r: 1; }
.aisr-hero-band .aisr-exhibit tbody tr:nth-child(3) { --r: 2; }
.aisr-hero-band .aisr-exhibit tbody tr:nth-child(4) { --r: 3; }
.aisr-hero-band .aisr-exhibit tbody td:nth-child(2) { --c: 0; }
.aisr-hero-band .aisr-exhibit tbody td:nth-child(3) { --c: 1; }
.aisr-hero-band .aisr-exhibit tbody td:nth-child(4) { --c: 2; }
@keyframes aisr-dot-in { from { opacity: 0; transform: scale(0.2); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .aisr-hero-band .aisr-exhibit tbody .aisr-dot { animation: aisr-dot-in 300ms ease-out both; animation-delay: calc(250ms + (var(--r, 0) * 3 + var(--c, 0)) * 70ms); }
}

/* Key figures */
.aisr-home-section--key-figures { padding: var(--space-12) 0; border-bottom: 1px solid var(--line); }
.aisr-figures { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aisr-figures__item { display: flex; flex-direction: column; gap: var(--space-2); padding: 0 var(--space-8); border-left: 1px solid var(--line); }
.aisr-figures__item:first-child { padding-left: 0; border-left: 0; }
.aisr-figures__value { font-family: var(--font-mono); font-size: var(--type-h1-size); line-height: var(--type-h1-line-height); letter-spacing: -0.02em; color: var(--accent-text); }
.aisr-figures__label { font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text-muted); max-width: 22em; }
.aisr-figures__source { margin-top: var(--space-8); font-size: var(--type-caption-size); line-height: var(--type-caption-line-height); color: var(--text-muted); }

/* Report-style table, with a mono index and a line icon per row */
.aisr-table { width: 100%; border-collapse: collapse; font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); }
.aisr-table thead th { text-align: left; font-size: var(--type-caption-size); line-height: var(--type-caption-line-height); font-weight: 600; color: var(--text-muted); padding: 0 var(--space-4) var(--space-3) 0; border-bottom: 1px solid var(--text); }
.aisr-table tbody th, .aisr-table tbody td { text-align: left; vertical-align: top; padding: var(--space-4) var(--space-4) var(--space-4) 0; border-bottom: 1px solid var(--line); }
.aisr-table tbody th { font-weight: 600; width: 40%; }
.aisr-table tbody td { color: var(--text-muted); }
.aisr-row-head { display: flex; align-items: flex-start; gap: var(--space-3); }
.aisr-row-index { font-family: var(--font-mono); font-size: var(--type-data-size); line-height: var(--type-body-sm-line-height); font-weight: 400; color: var(--accent-text); min-width: 20px; }
.aisr-row-icon { color: var(--text-muted); margin-top: 2px; }
.aisr-flow > .aisr-pullquote { margin-top: var(--space-12); }
.aisr-pullquote { padding: var(--space-2) 0 var(--space-2) var(--space-6); border-left: 3px solid var(--accent-fill); font-size: var(--type-h3-size); line-height: var(--type-h3-line-height); font-weight: 500; color: var(--text); max-width: 30em; }

/* Why now: text beside the results-page schematic, Exhibit 2 below */
.aisr-why { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-8); row-gap: var(--space-16); align-items: center; }
.aisr-why__text { grid-column: 1 / span 6; }
.aisr-why__figure { grid-column: 8 / span 5; margin: 0; }
.aisr-why__exhibit { grid-column: 1 / -1; }
.aisr-schematic__svg { display: block; width: 100%; height: auto; }
.aisr-schematic__caption { margin-top: var(--space-3); font-size: var(--type-caption-size); line-height: var(--type-caption-line-height); color: var(--text-muted); }
.sch-frame { fill: var(--surface-raised); stroke: var(--line); }
.sch-field { fill: var(--surface-sunken); stroke: var(--line); }
.sch-ai { fill: color-mix(in srgb, var(--accent-fill) 7%, var(--surface-raised)); stroke: var(--accent-fill); stroke-width: 1.5; }
.sch-ai-line { fill: color-mix(in srgb, var(--accent-fill) 30%, var(--surface-raised)); }
.sch-chip { fill: var(--surface-raised); stroke: var(--accent-fill); }
.sch-chip-text { font-family: var(--font-mono); font-size: 9px; fill: var(--accent-text); text-anchor: middle; }
.sch-label { font-family: var(--font-sans); font-size: 10px; font-weight: 600; fill: var(--text-muted); }
.sch-label--strong { fill: var(--accent-text); }
.sch-muted { fill: var(--line-control); opacity: 0.4; }
.sch-muted-soft { fill: var(--line); }

/* Exhibits as centrepieces: figures in Plex Mono, bars on one scale */
/* Exhibits 2 and 3 use a fixed layout: the table, and so its caption, can never
   be wider than the card. Headings wrap and bars shrink instead of scrolling. */
.aisr-exhibit--feature table, .aisr-exhibit--states table { table-layout: fixed; }
.aisr-exhibit--feature th, .aisr-exhibit--feature td, .aisr-exhibit--states th, .aisr-exhibit--states td { overflow-wrap: break-word; vertical-align: bottom; }
.aisr-exhibit--feature tbody th, .aisr-exhibit--feature td, .aisr-exhibit--states tbody th, .aisr-exhibit--states td { vertical-align: middle; }
.aisr-exhibit--feature, .aisr-exhibit--states { padding: var(--space-12); box-shadow: var(--shadow-raised); }
.aisr-exhibit--feature .aisr-exhibit__title, .aisr-exhibit--states .aisr-exhibit__title { text-align: left; font-size: var(--type-h3-size); line-height: var(--type-h3-line-height); font-weight: var(--type-h3-weight); margin: 0 0 var(--space-8); caption-side: top; }
.aisr-exhibit--feature th:not(:first-child), .aisr-exhibit--feature td:not(:first-child) { text-align: left; width: 36%; }
.aisr-exhibit--feature td, .aisr-exhibit--feature tbody th { padding: var(--space-4) var(--space-4) var(--space-4) 0; }
.aisr-figure { display: flex; align-items: center; gap: var(--space-3); width: 100%; }
.aisr-num { font-family: var(--font-mono); font-size: var(--type-data-size); line-height: var(--type-data-line-height); min-width: 2ch; text-align: right; }
.aisr-bar { display: block; flex: 0 1 auto; height: var(--space-2); width: calc(var(--w) * 0.75); min-width: 2px; background: var(--accent-fill); border-radius: var(--radius-sm); }

/* Exhibit 3: states as shapes (filled, ringed, empty), never colour alone */
.aisr-exhibit--states th:not(:first-child), .aisr-exhibit--states td:not(:first-child) { text-align: center; width: 22%; }
.aisr-exhibit--states thead th { font-size: var(--type-caption-size); padding-left: var(--space-2); padding-right: var(--space-2); }
.aisr-exhibit--states tbody th { font-size: var(--type-body-sm-size); }
.aisr-state { display: inline-block; box-sizing: border-box; width: 14px; height: 14px; border-radius: 50%; vertical-align: middle; }
.aisr-state--cited { background: var(--accent-fill); }
.aisr-state--mentioned { background: var(--accent-fill); border: 1.5px solid var(--accent-fill); box-shadow: inset 0 0 0 2.5px var(--surface-raised); }
.aisr-state--absent { background: transparent; border: 1.5px solid var(--line-control); }
.aisr-legend { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); margin: var(--space-6) 0 0; padding: 0; font-size: var(--type-caption-size); line-height: var(--type-caption-line-height); color: var(--text-muted); }
.aisr-legend li { display: flex; align-items: center; gap: var(--space-2); }

/* Cards: services and audiences */
.aisr-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-8); }
.aisr-card--feature { border-top: 3px solid var(--accent-fill); transition: box-shadow .25s ease-out, border-color .25s ease-out, transform .25s ease-out; }
.aisr-card--feature:hover, .aisr-card--feature:focus-within { box-shadow: var(--shadow-raised); border-color: var(--line-control); border-top-color: var(--accent-fill-hover); transform: translateY(-2px); }
.aisr-card__icon { color: var(--accent-text); }
.aisr-callout { display: flex; gap: var(--space-6); margin-top: var(--space-8); padding: var(--space-8); background: var(--surface-sunken); border-left: 3px solid var(--accent-fill); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; }
.aisr-callout__icon { color: var(--accent-text); margin-top: 2px; }
.aisr-callout__text { max-width: var(--measure); }
.aisr-callout__text > * + * { margin-top: var(--space-3); }
.aisr-callout__title { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: var(--type-h4-weight); }

/* How we measure: vertical steps beside Exhibit 3 */
.aisr-measure-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-8); row-gap: var(--space-12); align-items: start; }
.aisr-measure-grid__steps { grid-column: 1 / span 5; }
.aisr-measure-grid__steps > * + * { margin-top: var(--space-4); }
.aisr-measure-grid__exhibit { grid-column: 7 / span 6; margin: 0; }
.aisr-vsteps { list-style: none; padding: 0; border-top: 1px solid var(--text); }
.aisr-measure-grid__steps > .aisr-vsteps { margin-top: var(--space-8); }
.aisr-vsteps__item { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: var(--space-4); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.aisr-vsteps__num { font-family: var(--font-mono); font-size: var(--type-data-size); line-height: var(--type-h4-line-height); color: var(--accent-text); }
.aisr-vsteps__title { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: var(--type-h4-weight); }
.aisr-vsteps__item p { margin-top: var(--space-1); font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text-muted); }

/* How an engagement runs: a timeline under a 90-day bracket, then a return loop */
.aisr-timeline { margin-top: var(--space-4); }
.aisr-timeline__span { position: relative; margin: 0 12.5% var(--space-8); padding-bottom: var(--space-3); border-bottom: 1.5px solid var(--accent-fill); text-align: center; font-size: var(--type-label-size); line-height: var(--type-label-line-height); font-weight: var(--type-label-weight); color: var(--accent-text); }
.aisr-timeline__span::before, .aisr-timeline__span::after { content: ""; position: absolute; bottom: -10px; width: 1.5px; height: 10px; background: var(--accent-fill); }
.aisr-timeline__span::before { left: 0; }
.aisr-timeline__span::after { right: 0; }
.aisr-timeline__steps { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-8); }
.aisr-timeline__steps::before { content: ""; position: absolute; top: 24px; left: 12.5%; right: 12.5%; height: 1.5px; background: var(--line-control); }
.aisr-timeline__step { position: relative; text-align: center; }
.aisr-timeline__node { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin: 0 auto var(--space-4); border-radius: 50%; background: var(--surface); border: 1.5px solid var(--accent-fill); font-family: var(--font-mono); font-size: var(--type-data-size); color: var(--accent-text); }
.aisr-timeline__step:last-child .aisr-timeline__node { background: var(--accent-fill); color: var(--on-accent); }
.aisr-timeline__title { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: var(--type-h4-weight); margin-bottom: var(--space-2); }
.aisr-timeline__step p { font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text-muted); }
.aisr-timeline__after { display: flex; align-items: center; justify-content: center; gap: var(--space-2); width: 25%; margin: var(--space-6) 0 0 75%; font-size: var(--type-label-size); line-height: var(--type-label-line-height); font-weight: var(--type-label-weight); color: var(--accent-text); }
.aisr-timeline__foot { margin-top: var(--space-12); }

/* What we will not promise: five cards, two columns */
.aisr-promise-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.aisr-promise { display: flex; gap: var(--space-3); padding: var(--space-6); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.aisr-promise:last-child:nth-child(odd) { grid-column: 1 / -1; }
.aisr-promise__icon { color: var(--text-muted); margin-top: 2px; }
.aisr-promise p { font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text-muted); }
.aisr-promise strong { color: var(--text); font-weight: 600; }

/* Who does the work: a card, with room for a portrait */
.aisr-person { display: grid; grid-template-columns: minmax(0, 1fr); padding: var(--space-12); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.aisr-person--with-photo { grid-template-columns: 280px minmax(0, 1fr); gap: var(--space-12); align-items: start; }
.aisr-person__photo { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-lg); }
.aisr-person--split { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-12); align-items: start; }
.aisr-person--split .aisr-credentials { padding: 0 0 0 var(--space-8); border-top: 0; border-left: 1px solid var(--line); }
.aisr-credentials { list-style: none; margin: 0; padding: var(--space-6) 0 0; border-top: 1px solid var(--line); display: grid; gap: var(--space-3); }
.aisr-credentials li { display: flex; align-items: flex-start; gap: var(--space-3); }
.aisr-credentials__icon { color: var(--accent-text); margin-top: 3px; }

/* Three columns of text (latest insights) */
.aisr-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-8); }
.aisr-column { border-top: 1px solid var(--text); padding-top: var(--space-6); }
.aisr-column > * + * { margin-top: var(--space-3); }
.aisr-column__title { font-size: var(--type-h3-size); line-height: var(--type-h3-line-height); }
.aisr-column__link { color: var(--text); text-decoration: none; }
.aisr-column__link:hover { color: var(--accent-text); text-decoration: underline; }

/* Questions: native disclosure, every answer in the HTML */
.aisr-qa { border-top: 1px solid var(--text); }
.aisr-qa__item { border-bottom: 1px solid var(--line); }
.aisr-qa__summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-6) 0; cursor: pointer; list-style: none; }
.aisr-qa__summary::-webkit-details-marker { display: none; }
.aisr-qa__summary::after { content: ""; flex-shrink: 0; width: 8px; height: 8px; margin-right: var(--space-2); border-right: 1.5px solid var(--accent-text); border-bottom: 1.5px solid var(--accent-text); transform: translateY(-3px) rotate(45deg); transition: transform .2s ease-out; }
.aisr-qa__item[open] > .aisr-qa__summary::after { transform: translateY(2px) rotate(-135deg); }
.aisr-qa__summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-qa__question { margin: 0; font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: var(--type-h4-weight); }
.aisr-qa__answer { padding-bottom: var(--space-6); color: var(--text-muted); max-width: var(--measure); }

.aisr-cta__body { max-width: 36em; margin: 0 auto var(--space-8); color: var(--text-on-band-muted); font-size: var(--type-lead-size); line-height: var(--type-lead-line-height); }
.aisr-cta__title { margin-bottom: var(--space-4); }

/* Reveal once (brand book: one fade-in, 8px rise). The inline script only marks
   elements that start below the fold; without it everything simply shows. */
.aisr-reveal.is-pending { opacity: 0; transform: translateY(8px); }
.aisr-reveal.is-pending.is-revealed { opacity: 1; transform: none; transition: opacity 250ms ease-out, transform 250ms ease-out; }

@media (prefers-reduced-motion: reduce) {
  .aisr-card--feature, .aisr-qa__summary::after { transition: none; }
  .aisr-card--feature:hover, .aisr-card--feature:focus-within { transform: none; }
}

@media (max-width: 960px) {
  .aisr-editorial__head, .aisr-editorial__body, .aisr-why__text, .aisr-why__figure,
  .aisr-measure-grid__steps, .aisr-measure-grid__exhibit { grid-column: 1 / -1; }
  .aisr-editorial, .aisr-why, .aisr-measure-grid { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-8); }
  .aisr-why__figure { max-width: 480px; }
  .aisr-cards, .aisr-columns { grid-template-columns: minmax(0, 1fr); }
  .aisr-timeline__span { margin: 0 0 var(--space-6); text-align: left; padding-left: var(--space-4); }
  .aisr-timeline__steps { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .aisr-timeline__steps::before { top: 24px; bottom: 24px; left: 23px; right: auto; width: 1.5px; height: auto; }
  .aisr-timeline__step { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: var(--space-4); text-align: left; }
  .aisr-timeline__node { grid-column: 1; grid-row: 1 / span 3; margin: 0; }
  /* Title, when and body all sit beside the node, never under it. */
  .aisr-timeline__step > :not(.aisr-timeline__node) { grid-column: 2; }
  .aisr-timeline__after { width: auto; margin: var(--space-4) 0 0; padding-left: 64px; justify-content: flex-start; }
  .aisr-person--with-photo { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .aisr-home-section { padding: var(--space-16) 0; }
  .aisr-home-section--key-figures { padding: var(--space-8) 0; }
  .aisr-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-8); }
  .aisr-figures__item { padding: 0 var(--space-4); }
  .aisr-figures__item:nth-child(odd) { padding-left: 0; border-left: 0; }
  .aisr-figures__value { font-size: var(--type-h2-size); line-height: var(--type-h2-line-height); }
  .aisr-exhibit--feature, .aisr-exhibit--states { padding: var(--space-6) var(--space-4); }
  .aisr-exhibit--feature .aisr-exhibit__title, .aisr-exhibit--states .aisr-exhibit__title { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); margin-bottom: var(--space-6); }
  .aisr-exhibit--feature thead th, .aisr-exhibit--states thead th { font-size: 12px; line-height: 16px; }
  .aisr-exhibit--feature th:first-child, .aisr-exhibit--feature td:first-child { width: 28%; }
  .aisr-exhibit--feature tbody th, .aisr-exhibit--feature td { padding-right: var(--space-2); }
  .aisr-exhibit--states th:first-child { width: 26%; }
  .aisr-exhibit--states th:not(:first-child), .aisr-exhibit--states td:not(:first-child) { width: auto; padding-left: 2px; padding-right: 2px; }
  .aisr-table tbody th { width: 46%; }
  .aisr-pullquote { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); }
  .aisr-promise-grid { grid-template-columns: minmax(0, 1fr); }
  .aisr-callout { flex-direction: column; gap: var(--space-4); padding: var(--space-6); }
  .aisr-person { padding: var(--space-6); }
  .aisr-person--split { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .aisr-person--split .aisr-credentials { padding: var(--space-6) 0 0; border-left: 0; border-top: 1px solid var(--line); }
}
/* Definition table on a phone: each row stacks (index, icon and term, then the
   description). The explicit ARIA roles in the markup keep it a table for
   screen readers when the rows are displayed as blocks. */
@media (max-width: 600px) {
  .aisr-exhibit--hero { padding: var(--space-6) var(--space-4); }
  .aisr-table--indexed thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .aisr-table--indexed, .aisr-table--indexed tbody, .aisr-table--indexed tr { display: block; }
  .aisr-table--indexed tbody tr { padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
  .aisr-table--indexed tbody tr:first-child { border-top: 1px solid var(--text); }
  .aisr-table--indexed tbody th, .aisr-table--indexed tbody td { display: block; width: auto; padding: 0; border-bottom: 0; }
  .aisr-table--indexed tbody td { margin-top: var(--space-2); padding-left: calc(20px + 20px + 2 * var(--space-3)); }
}
@media print { .aisr-reveal.is-pending { opacity: 1; transform: none; } }

/* Service pages (services/service_page.html) ---------------------------------- */
.aisr-svc-hero .aisr-breadcrumbs { padding-top: var(--space-8); }
.aisr-svc-hero__grid { padding-top: var(--space-8); align-items: start; }
.aisr-svc-hero__title { font-size: var(--type-display-lg-size); line-height: var(--type-display-lg-line-height); letter-spacing: var(--type-display-lg-tracking); max-width: 15em; }
.aisr-glance { margin-top: var(--space-4); }
.aisr-glance__list { margin: 0; display: grid; }
.aisr-glance__row { display: grid; gap: var(--space-1); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.aisr-glance__row:first-child { border-top: 1px solid var(--text); }
.aisr-glance__row dt { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--text-muted); }
.aisr-glance__row dd { margin: 0; font-size: 16px; line-height: 24px; color: var(--text); }

/* On this page: jump links, scrolling sideways in their own strip on a phone */
.aisr-jump { background: var(--surface); border-bottom: 1px solid var(--line); }
.aisr-jump__inner { display: flex; align-items: center; gap: var(--space-6); }
.aisr-jump__label { flex-shrink: 0; margin: 0; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--text-muted); }
.aisr-jump__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; column-gap: var(--space-6); min-width: 0; }
.aisr-jump__list li { flex-shrink: 0; }
.aisr-jump__list a { display: block; padding: var(--space-3) 0; border-bottom: 2px solid transparent; font-size: 14px; line-height: 20px; color: var(--text); text-decoration: none; white-space: nowrap; }
.aisr-jump__list a:hover { color: var(--accent-text); border-bottom-color: var(--accent-fill); }
.aisr-jump__list a:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.aisr-svc-section { scroll-margin-top: var(--space-4); }

/* A blank top-left heading cell keeps the rule under the header row. */
.aisr-table thead td, .aisr-exhibit thead td { padding: 0; border-bottom: 1px solid var(--text); }

/* Tables with three columns: the term column narrows */
.aisr-table--labelled tbody th { width: 26%; }
.aisr-table--labelled tbody td { width: 37%; }

/* Exhibits on service pages: any number of columns, first column fixed */
.aisr-svc-exhibit th:not(:first-child), .aisr-svc-exhibit td:not(:first-child) { width: auto; }
.aisr-svc-exhibit--bars thead th:first-child { width: 36%; }
.aisr-svc-exhibit tbody th { font-weight: 600; }
.aisr-svc-exhibit tbody td { color: var(--text-muted); vertical-align: top; }
.aisr-svc-exhibit tbody th { vertical-align: top; }
.aisr-svc-exhibit--bars tbody td, .aisr-svc-exhibit--bars tbody th { vertical-align: middle; }
.aisr-exhibit__caption { display: block; margin-top: var(--space-2); font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); font-weight: 400; color: var(--text-muted); }

/* Examples: read like a document */
.aisr-example { margin: var(--space-8) 0 0; padding: var(--space-8); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.aisr-example__title { margin: 0 0 var(--space-6); font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: 600; color: var(--text); }
.aisr-extract { margin: 0; border-top: 1px solid var(--text); }
.aisr-extract__row { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
.aisr-extract__row dt { font-size: 13px; line-height: 22px; font-weight: 600; color: var(--text-muted); }
.aisr-extract__row dd { margin: 0; font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text); }
.aisr-ba { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.aisr-ba__card { padding: var(--space-6); border-radius: var(--radius-lg); border: 1px solid var(--line); }
.aisr-ba__card--before { background: var(--surface-sunken); color: var(--text-muted); }
.aisr-ba__card--after { background: var(--surface-raised); border-left: 3px solid var(--accent-fill); }
.aisr-ba__label { display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-3); font-size: 13px; line-height: 18px; font-weight: 600; }
.aisr-ba__card--after .aisr-ba__label { color: var(--accent-text); }
.aisr-ba__icon { flex-shrink: 0; }
.aisr-ba__heading { margin: 0 0 var(--space-2); font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); font-weight: 600; }
.aisr-ba__card--after .aisr-ba__heading { color: var(--text); }
.aisr-ba__text { margin: 0; font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); }
.aisr-example .aisr-exhibit__foot { margin-top: var(--space-6); }

/* Timeline: when each step happens */
.aisr-timeline__when { margin: 0 0 var(--space-2); font-size: 13px; line-height: 18px; font-weight: 600; color: var(--accent-text); }

/* Cards: four in a two by two grid, five as three and two */
.aisr-svc-cards { list-style: none; margin: 0; padding: 0; }
.aisr-svc-cards:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aisr-svc-cards .aisr-card { position: relative; }
.aisr-card__link { color: inherit; text-decoration: none; }
.aisr-card__link::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius-lg); }
.aisr-card__link:focus-visible { outline: none; }
.aisr-card__link:focus-visible::after { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-card__arrow { color: var(--accent-text); }
.aisr-card__link:hover { color: var(--accent-text); text-decoration: underline; }
.aisr-svc-foot { margin-top: var(--space-8); }

/* Terms, in plain words */
.aisr-terms { margin: 0; padding: var(--space-2) var(--space-8); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.aisr-terms__row { display: grid; grid-template-columns: 11em minmax(0, 1fr); gap: var(--space-6); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.aisr-terms__row:last-child { border-bottom: 0; }
.aisr-terms__row dt { font-weight: 600; color: var(--text); }
.aisr-terms__row dd { margin: 0; color: var(--text-muted); }

/* How we measure it */
.aisr-svc-measure { margin-top: 0; }
.aisr-svc-measure__title { font-size: var(--type-h3-size); line-height: var(--type-h3-line-height); }

/* Related pages */
.aisr-related { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-6); }
.aisr-related__card { padding: var(--space-6); }
.aisr-related__card .aisr-card__title { font-size: var(--type-h4-size); line-height: var(--type-h4-line-height); }
.aisr-related__link { color: var(--text); text-decoration: none; }
.aisr-related__link:hover { color: var(--accent-text); text-decoration: underline; }
.aisr-home-section--sources .aisr-updated { margin-top: var(--space-6); }

@media (max-width: 960px) {
  .aisr-svc-hero__title { font-size: var(--type-h1-size); line-height: var(--type-h1-line-height); }
}
@media (max-width: 720px) {
  .aisr-svc-cards:has(> li:nth-child(4):last-child) { grid-template-columns: minmax(0, 1fr); }
  .aisr-ba { grid-template-columns: minmax(0, 1fr); }
  .aisr-example { padding: var(--space-6) var(--space-4); }
  .aisr-terms { padding: var(--space-2) var(--space-4); }
  .aisr-terms__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
  .aisr-extract__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
  .aisr-jump__label { display: none; }
  .aisr-jump__list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
}
@media (max-width: 600px) {
  /* Three-column tables: each extra cell carries its column name */
  .aisr-table--labelled tbody td::before { content: attr(data-label); display: block; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--text-muted); margin-bottom: var(--space-1); }
  .aisr-table--labelled tbody th, .aisr-table--labelled tbody td { width: auto; }
  /* Exhibits with three or more columns: each row becomes a small card. The
     explicit table roles keep it a table for screen readers. */
  .aisr-exhibit--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .aisr-exhibit--stack table, .aisr-exhibit--stack tbody, .aisr-exhibit--stack tr { display: block; width: 100%; }
  .aisr-exhibit--stack caption { display: block; width: 100%; }
  .aisr-exhibit--stack.aisr-exhibit--feature tbody th:first-child, .aisr-exhibit--stack.aisr-exhibit--feature tbody td { width: auto; }
  .aisr-exhibit--stack tbody tr { padding: var(--space-4); margin-bottom: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
  .aisr-exhibit--stack tbody th, .aisr-exhibit--stack tbody td { display: block; width: auto; padding: 0; border: 0; text-align: left; }
  .aisr-exhibit--stack tbody th { margin-bottom: var(--space-2); color: var(--text); }
  .aisr-exhibit--stack tbody td { padding-top: var(--space-2); }
  .aisr-exhibit--stack tbody td::before { content: attr(data-label); display: block; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--text-muted); }
  .aisr-exhibit--stack tbody td[data-label=""]::before { content: none; }
}

/* Booking page: steps on the left, the form in a lifted card on the right.
   The form comes first in the HTML, so a phone shows it before the steps. */
.aisr-book__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: var(--space-16); align-items: start; }
.aisr-book__form { grid-column: 2; grid-row: 1; padding: var(--space-8); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.aisr-book__form .aisr-form { margin-top: 0; padding-top: 0; border-top: 0; }
.aisr-book__steps { grid-column: 1; grid-row: 1; }
.aisr-book__steps h2:first-child { margin-top: 0; }
.aisr-book__steps ol { list-style: none; padding: 0; margin: var(--space-6) 0; border-top: 1px solid var(--text); counter-reset: step; }
.aisr-book__steps ol li { counter-increment: step; display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: var(--space-4); margin: 0; padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.aisr-book__steps ol li::before { content: counter(step, decimal-leading-zero); font-family: var(--font-mono); font-size: var(--type-data-size); color: var(--accent-text); }
.aisr-book__steps ol + p { color: var(--text-muted); }

/* Thank-you page: one centred card */
.aisr-thanks .aisr-breadcrumbs ol, .aisr-thanks .aisr-breadcrumbs a { color: var(--text-muted); }
.aisr-thanks .aisr-breadcrumbs li + li::before { color: var(--line-control); }
.aisr-thanks .aisr-breadcrumbs a:hover { color: var(--accent-text); }
.aisr-thanks__card { max-width: 40rem; margin: var(--space-8) auto 0; padding: var(--space-12); text-align: center; background: var(--surface-raised); border: 1px solid var(--line); border-top: 3px solid var(--accent-fill); border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.aisr-thanks__icon { color: var(--accent-text); }
.aisr-thanks__title { margin: var(--space-4) 0; font-size: var(--type-h1-size); line-height: var(--type-h1-line-height); }
.aisr-thanks__lead { margin: 0 0 var(--space-6); font-size: var(--type-lead-size); line-height: var(--type-lead-line-height); color: var(--text-muted); }
.aisr-thanks__body { text-align: left; margin: 0 auto; }
.aisr-thanks__body h2:first-child { margin-top: 0; }

@media (max-width: 960px) {
  .aisr-book__grid { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-12); }
  .aisr-book__form, .aisr-book__steps { grid-column: 1; grid-row: auto; }
}
@media (max-width: 600px) {
  .aisr-book__form { padding: var(--space-6) var(--space-4); }
  .aisr-thanks__card { padding: var(--space-8) var(--space-4); }
}

/* Tables in page bodies (Markdown): the site's table style; on a phone each
   row stacks as a labelled card. The explicit roles keep it a table. */
.aisr-prose .aisr-md-table { margin: var(--space-6) 0; }
.aisr-md-table tbody th { width: auto; min-width: 8em; }
.aisr-md-table tbody td { color: var(--text-muted); }

/* Our method: the four steps as numbered steps, "You receive" as a callout */
.aisr-md-steps { list-style: none; margin: var(--space-8) 0 0; padding: 0; }
.aisr-md-steps__item { position: relative; padding: 0 0 var(--space-8) 64px; }
.aisr-md-steps__item::before { content: ""; position: absolute; left: 23px; top: 48px; bottom: 0; width: 1.5px; background: var(--line-control); }
.aisr-md-steps__item:last-child::before { content: none; }
.aisr-prose .aisr-md-step { position: relative; display: flex; align-items: center; min-height: 48px; margin: 0 0 var(--space-3); }
.aisr-md-step__num { position: absolute; left: -64px; top: 0; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--surface); border: 1.5px solid var(--accent-fill); font-family: var(--font-mono); font-size: var(--type-data-size); font-weight: 400; color: var(--accent-text); }
.aisr-md-steps__item:last-child .aisr-md-step__num { background: var(--accent-fill); color: var(--on-accent); }
.aisr-prose .aisr-md-receive { margin-top: var(--space-4); padding: var(--space-3) var(--space-4); background: var(--surface-sunken); border-left: 3px solid var(--accent-fill); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); }
.aisr-md-receive strong { color: var(--accent-text); }

/* Contact: the details sit directly under "Our details" */
.aisr-prose h2 + .aisr-details { margin-top: var(--space-4); }

@media (max-width: 600px) {
  .aisr-md-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .aisr-md-table, .aisr-md-table tbody, .aisr-md-table tr { display: block; width: 100%; }
  .aisr-md-table tbody tr { padding: var(--space-4); margin-bottom: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-raised); }
  .aisr-md-table tbody th, .aisr-md-table tbody td { display: block; width: auto; min-width: 0; padding: 0; border: 0; }
  .aisr-md-table tbody th { margin-bottom: var(--space-2); }
  .aisr-md-table tbody td { padding-top: var(--space-2); }
  .aisr-md-table tbody td::before { content: attr(data-label); display: block; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--text-muted); }
  .aisr-md-steps__item { padding-left: 56px; }
  .aisr-md-step__num { left: -56px; width: 40px; height: 40px; }
  .aisr-md-steps__item::before { left: 19px; top: 40px; }
  .aisr-details { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
  .aisr-details dd + dt { margin-top: var(--space-3); }
}

/* Insights articles: "On this page" (7 October 2026) ---------------------------- */
/* Every heading a contents link can jump to keeps clear of the top edge. */
.aisr-article-layout .aisr-prose h2[id] { scroll-margin-top: var(--space-6); }
@media (prefers-reduced-motion: no-preference) {
  html:has(.aisr-toc) { scroll-behavior: smooth; }
}

.aisr-toc__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-1); }
.aisr-toc__list a { display: block; padding: var(--space-1) 0 var(--space-1) var(--space-3); border-left: 2px solid transparent; font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line-height); color: var(--text-muted); text-decoration: none; }
.aisr-toc__list a:hover { color: var(--accent-text); text-decoration: underline; }
.aisr-toc__list a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-toc__list a[aria-current="true"] { color: var(--text); font-weight: 600; border-left-color: var(--accent-fill); }

/* Below 1200px: a closed disclosure after the lead, nothing sticky. */
.aisr-toc-column { display: none; }
.aisr-toc-mobile { margin: var(--space-6) 0 var(--space-8); padding: 0 var(--space-4); background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.aisr-toc-mobile summary { padding: var(--space-3) 0; font-weight: 600; cursor: pointer; }
.aisr-toc-mobile summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.aisr-toc-mobile nav { padding: 0 0 var(--space-4); }
/* The article's list styles would indent the contents; keep them flush. */
.aisr-prose .aisr-toc__list { margin: 0; padding-left: 0; }

/* 1200px and wider: a sticky column beside the article. The text column keeps
   its measure; the contents sit in the space to its right. */
@media (min-width: 1200px) {
  .aisr-article-layout { display: grid; grid-template-columns: minmax(0, var(--measure)) minmax(0, 1fr); column-gap: var(--space-16); align-items: start; }
  .aisr-article-layout > .aisr-prose { grid-column: 1; grid-row: 1; }
  .aisr-toc-column { display: block; grid-column: 2; grid-row: 1; align-self: stretch; }
  .aisr-toc { position: sticky; top: var(--space-6); max-width: 18rem; max-height: calc(100vh - 2 * var(--space-6)); overflow-y: auto; padding-left: var(--space-6); border-left: 1px solid var(--line); }
  .aisr-toc__title { margin: 0 0 var(--space-3); font-size: 13px; line-height: 18px; font-weight: 600; color: var(--text-muted); }
  .aisr-toc-mobile { display: none; }
}

@media print {
  .aisr-toc-column, .aisr-toc-mobile { display: none !important; }
}
/* A source without a title shows its address, which must wrap on a phone. */
.aisr-sources a { overflow-wrap: anywhere; }

/* Article images and inline SVG charts scale to the text column (8 October 2026).
   Width and height attributes keep the space reserved, so nothing shifts. */
.aisr-prose img { display: block; max-width: 100%; height: auto; margin: var(--space-6) 0; border-radius: var(--radius-lg); }
.aisr-chart { margin: var(--space-8) 0; }
.aisr-chart svg { display: block; width: 100%; max-width: 100%; height: auto; }
