/*
 * aihi-site.css - the shared stylesheet of every public page of AI Hosting Index (Phase 3, foundation).
 *
 * The look is the approved homepage mockup E (designs/homepage-2026-10-24/Combined.dc.html, George's decision D12):
 * its colours, type scale, radii and spacing are copied below as custom properties (_docs/phase3-design.md section 2.1).
 * The mockup is fluid (no breakpoints: flex-wrap, auto-fit grids and clamp() headings); this file reproduces that and
 * adds only what section 2.6 lists: no sideways page scroll, a sticky provider column below 1060 px, 44 px touch
 * targets at 1024 px and below, focus rings and reduced motion. All small-screen rules sit in ONE marked block at the
 * end.
 * Only the foundation builder changes this file; page-scoped styles live in their own files (aihi-home.css,
 * aihi-article.css, aihi-data.css, aihi-provider.css, aihi-trust.css), listed in $page->css.
 * Strict CSP: no inline style anywhere on a public page, so every look is a class here.
 */

/* ---------------------------------------------------------------- fonts (self-hosted, assets/fonts/README.md) */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("/assets/fonts/plus-jakarta-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Fallback faces (SEO-09): the computer's own Arial, scaled to the width, ascent and descent of each web font weight, so
   the text keeps its place when the web fonts arrive (font-display: swap). Values measured in Edge on 25 Oct 2026 (canvas
   width of one 233-character sample, Arial or Arial Bold against the woff2 files); the 800 face is set 1% above its
   measured 101.19% so the homepage heading wraps as with the web font at 1440 px. Checked with the web fonts blocked at
   360-1440 px: the homepage keeps its layout. No Arial on the device: the face is skipped and the next font of the list
   is used, as before. Nothing is downloaded. */
@font-face { font-family: "Inter fallback"; font-weight: 400; src: local("Arial"), local("ArialMT"); size-adjust: 106.14%; ascent-override: 91.39%; descent-override: 22.61%; line-gap-override: 0%; }
@font-face { font-family: "Inter fallback"; font-weight: 500; src: local("Arial"), local("ArialMT"); size-adjust: 107.09%; ascent-override: 90.58%; descent-override: 22.41%; line-gap-override: 0%; }
@font-face { font-family: "Inter fallback"; font-weight: 600; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 100.89%; ascent-override: 96.14%; descent-override: 23.79%; line-gap-override: 0%; }
@font-face { font-family: "Inter fallback"; font-weight: 700; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 101.75%; ascent-override: 95.33%; descent-override: 23.59%; line-gap-override: 0%; }
@font-face { font-family: "Plus Jakarta Sans fallback"; font-weight: 600; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 98.81%; ascent-override: 105.25%; descent-override: 22.26%; line-gap-override: 0%; }
@font-face { font-family: "Plus Jakarta Sans fallback"; font-weight: 700; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 100.03%; ascent-override: 103.97%; descent-override: 21.99%; line-gap-override: 0%; }
@font-face { font-family: "Plus Jakarta Sans fallback"; font-weight: 800; src: local("Arial Bold"), local("Arial-BoldMT"); size-adjust: 102.20%; ascent-override: 101.76%; descent-override: 21.53%; line-gap-override: 0%; }

/* ---------------------------------------------------------------- tokens (mockup E) */

:root {
  color-scheme: light;
  --c-navy: #000C2A;
  --c-blue: #0069FF;
  --c-bg: #F9FAFE;
  --c-white: #FFFFFF;
  --c-line: #D9DBEB;
  --c-teal: #30CBD9;
  --c-yellow: #FFC90B;
  --c-link: #0058D6;
  --c-link-hover: #003E99;
  --c-text-2: #3B4466;
  --c-muted: #5A6285;
  --c-dark-card: #06143A;
  --c-dark-border: #23335E;
  --c-dark-divider: #1B2A55;
  --c-opt-bg: #0B1A45;
  --c-opt-border: #2B3A63;
  --c-on-dark-muted: #A9B3CA;
  --c-on-dark-2: #C9CEE3;
  --c-on-dark-text: #D9DBEB;
  --c-on-dark-link: #8DBAF1;
  --c-table-line: #E3E6F1;
  --c-row-line: #EEF0F7;
  --c-filter-bg: #F0F2F9;
  --c-footer-rule: #ECEEF6;
  --c-select-border: #C9CEE3;
  --c-field-border: #878FAE;   /* text fields: 3.2:1 on white, so the field's edge meets WCAG 1.4.11 (A3) */
  --c-ad-border: #A9B3CA;
  --c-logo-index-dark: #5198FB;
  --c-chart-teal: #1A828C;

  --f-text: "Inter", "Inter fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --f-head: "Plus Jakarta Sans", "Plus Jakarta Sans fallback", "Inter", system-ui, sans-serif;

  --container: 1200px;
  --gutter: 24px;
  --r-btn: 10px;
  --r-control: 9px;
  --r-group: 12px;
  --r-answer: 14px;
  --r-card: 16px;
  --r-big: 18px;
  --r-finder: 22px;
  --control-h: 40px;
  --touch: 44px;
  --shadow-card: 0 24px 48px rgba(0, 12, 42, 0.08);
  --shadow-finder: 0 40px 80px rgba(0, 0, 0, 0.35);
}

/* ---------------------------------------------------------------- base */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--c-bg);
  color: var(--c-navy);
  font-family: var(--f-text);
  font-size: 17px;
  line-height: 1.55;
  font-variant-numeric: tabular-nums;
  overflow-wrap: break-word;
}
img, svg { display: inline-block; max-width: 100%; }
/* the icon sprite of the page (inc/aihi-icons.php): never takes space */
.aihi-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
/* short pages: the footer stays at the bottom of the window */
body { display: flex; flex-direction: column; min-height: 100vh; }
.aihi-main { flex: 1 0 auto; }
.aihi-header, .aihi-footer { flex: 0 0 auto; }
/* small icons the builders print with aihi_icon() */
.aihi-ico { width: 1.25em; height: 1.25em; vertical-align: -0.25em; fill: currentColor; }
img { height: auto; }
a { color: var(--c-link); }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-head); color: inherit; }
p, ul, ol, dl, figure { margin: 0; }
button, input, select, textarea { font: inherit; font-variant-numeric: normal; color: inherit; }
button { cursor: pointer; }
table { border-collapse: collapse; }
[hidden] { display: none !important; }

.aihi-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* skip link: hidden until a keyboard user reaches it */
.aihi-skip {
  position: absolute;
  left: 12px; top: -60px;
  z-index: 100;
  padding: 10px 16px;
  border-radius: var(--r-btn);
  background: var(--c-navy);
  color: var(--c-white);
  font-weight: 600;
  text-decoration: none;
}
.aihi-skip:focus { top: 12px; }

/* focus ring on every link, button and control (invisible until a keyboard user tabs) */
:focus-visible { outline: 2px solid var(--c-blue); outline-offset: 2px; }
.aihi-dark :focus-visible, .aihi-footer--dark :focus-visible { outline-color: var(--c-on-dark-link); }

/* ---------------------------------------------------------------- layout */

.aihi-container {
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
.aihi-dark { background: var(--c-navy); color: var(--c-white); }
.aihi-main { display: block; }
.aihi-page { padding-top: 32px; padding-bottom: 80px; }
.aihi-block-section { padding-top: 26px; padding-bottom: 40px; }
.aihi-section-head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 26px; }
.aihi-stub-hero { padding-top: 48px; padding-bottom: 48px; display: flex; flex-direction: column; gap: 24px; }
.aihi-stack > * + * { margin-top: 16px; }

/* ---------------------------------------------------------------- type */

.aihi-eyebrow {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-teal);
}
.aihi-eyebrow--on-light { color: var(--c-muted); }
.aihi-hero-title {
  font-family: var(--f-head);
  font-weight: 800;
  font-size: clamp(40px, 5vw, 66px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.aihi-section-title {
  font-family: var(--f-head);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.025em;
}
.aihi-page-title {
  font-family: var(--f-head);
  font-weight: 800;
  font-size: clamp(32px, 4vw, 46px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
.aihi-lead { font-size: 19px; color: var(--c-text-2); max-width: 30em; text-wrap: pretty; }
.aihi-dark .aihi-lead { color: var(--c-on-dark-2); }
.aihi-text-2 { color: var(--c-text-2); }
.aihi-muted { color: var(--c-muted); }
.aihi-small { font-size: 14px; }
.aihi-meta { font-size: 15px; color: var(--c-muted); }
.aihi-meta a { color: var(--c-link); }

/* ---------------------------------------------------------------- buttons */

.aihi-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch);
  padding: 0 18px;
  border: 0;
  border-radius: var(--r-btn);
  font-family: var(--f-text);
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  text-align: center;
}
.aihi-btn--primary, .aihi-btn--visit { background: var(--c-blue); color: var(--c-white); }
.aihi-btn--visit { min-width: 88px; padding: 0 16px; }
.aihi-btn--quiet {
  border: 1px solid var(--c-select-border);
  background: var(--c-white);
  color: var(--c-navy);
  font-size: 15px;
  padding: 0 16px;
}
.aihi-btn--on-dark {
  border: 1px solid var(--c-opt-border);
  background: transparent;
  color: var(--c-on-dark-text);
  font-size: 15px;
  padding: 0 16px;
}
.aihi-btn--small { min-height: var(--control-h); font-size: 15px; padding: 0 14px; }
@media (hover: hover) {
  .aihi-btn--primary:hover, .aihi-btn--visit:hover { background: #0058D6; color: var(--c-white); }
  .aihi-btn--quiet:hover { border-color: var(--c-navy); }
  .aihi-btn--on-dark:hover { border-color: var(--c-on-dark-muted); color: var(--c-white); }
  a:hover { color: var(--c-link-hover); }
}
.aihi-btn--primary:focus-visible, .aihi-btn--visit:focus-visible { background: #0058D6; color: var(--c-white); }

/* ---------------------------------------------------------------- logo lockup (logo 2, assets/brand) */

.aihi-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--c-navy);
  text-decoration: none;
}
.aihi-logo__mark { flex: 0 0 auto; width: 34px; height: 34px; }
.aihi-logo__text {
  font-family: var(--f-head);
  font-weight: 800;
  font-size: 21px;
  letter-spacing: -0.02em;
  line-height: 1.55;
  white-space: nowrap;
}
.aihi-logo__index { color: var(--c-blue); }
.aihi-logo--footer .aihi-logo__mark { width: 28px; height: 28px; }
.aihi-logo--footer .aihi-logo__text { font-size: 20px; }
.aihi-logo--on-dark { color: var(--c-white); }
.aihi-logo--on-dark .aihi-logo__index { color: var(--c-logo-index-dark); }
@media (hover: hover) { a.aihi-logo:hover { color: var(--c-navy); } }

/* ---------------------------------------------------------------- header (mockup option A) */

.aihi-header { background: var(--c-white); border-bottom: 1px solid var(--c-line); }
.aihi-header__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 14px var(--gutter);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 24px;
}
.aihi-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 22px;
  font-size: 16px;
  font-weight: 500;
}
.aihi-nav a { color: var(--c-navy); text-decoration: none; padding: 10px 0; }
.aihi-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
@media (hover: hover) { .aihi-nav a:hover { color: var(--c-blue); } }
.aihi-nav a:focus-visible { color: var(--c-blue); }

/* ---------------------------------------------------------------- footer (white, as the mockup) */

.aihi-footer { background: var(--c-white); border-top: 1px solid var(--c-line); }
.aihi-footer__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 52px var(--gutter) 32px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.aihi-footer__cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: 32px;
}
.aihi-footer__brand { display: flex; flex-direction: column; gap: 12px; }
.aihi-footer__tagline { color: var(--c-text-2); font-size: 15px; }
.aihi-footer__col { display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.aihi-footer__head { font-weight: 700; }
.aihi-footer__list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.aihi-footer__list a { color: var(--c-text-2); text-decoration: none; }
@media (hover: hover) { .aihi-footer__list a:hover { color: var(--c-link-hover); text-decoration: underline; } }
.aihi-footer__list a:focus-visible { text-decoration: underline; }
.aihi-footer__legal {
  padding-top: 20px;
  border-top: 1px solid var(--c-footer-rule);
  font-size: 14px;
  color: var(--c-muted);
}

/* ---------------------------------------------------------------- breadcrumbs */

.aihi-crumbs-wrap { padding-top: 24px; }
.aihi-crumbs-wrap + .aihi-page, .aihi-crumbs-wrap + .aihi-container { padding-top: 20px; }
.aihi-crumbs { font-size: 15px; color: var(--c-muted); }
/* the trail flows like text, so a long page name wraps after "Home ›" instead of moving as one block (V-06) */
.aihi-crumbs ol { list-style: none; padding: 0; }
.aihi-crumbs li { display: inline; }
/* the second content value (empty alt text) keeps screen readers from reading the separator out (A10) */
.aihi-crumbs li + li::before { content: "\203A"; content: "\203A" / ""; margin: 0 10px; color: var(--c-muted); }
.aihi-crumbs a { color: var(--c-link); }
.aihi-crumbs [aria-current="page"] { color: var(--c-text-2); }

/* ---------------------------------------------------------------- cards and boxes */

.aihi-card {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--r-big);
  padding: 28px;
}
.aihi-note {
  font-size: 14px;
  color: var(--c-navy);
  background: var(--c-yellow);
  border-radius: var(--r-btn);
  padding: 10px 14px;
}
.aihi-ad {
  margin-top: 20px;
  background: var(--c-filter-bg);
  border: 1px dashed var(--c-ad-border);
  border-radius: var(--r-card);
  padding: 22px 26px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
}
/* carries data-nosnippet (Google: span, div and section only); its children stay the flex items of .aihi-ad */
.aihi-ad__inner { display: contents; }
.aihi-ad__label {
  background: var(--c-yellow);
  color: var(--c-navy);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  padding: 2px 8px;
  border-radius: 4px;
}
.aihi-ad__text { color: var(--c-text-2); flex: 1 1 480px; }

/* the size bars (small, medium, large) */
.aihi-bars { display: inline-flex; align-items: flex-end; gap: 3px; height: 16px; }
.aihi-bars__bar { display: block; width: 5px; border-radius: 1px; background: var(--c-line); }
.aihi-bars__bar--1 { height: 7px; }
.aihi-bars__bar--2 { height: 11px; }
.aihi-bars__bar--3 { height: 16px; }
.aihi-bars__bar.is-on { background: var(--c-blue); }
.aihi-bars--big { gap: 4px; height: 30px; }
.aihi-bars--big .aihi-bars__bar { width: 8px; border-radius: 2px; }
.aihi-bars--big .aihi-bars__bar--1 { height: 12px; }
.aihi-bars--big .aihi-bars__bar--2 { height: 21px; }
.aihi-bars--big .aihi-bars__bar--3 { height: 30px; }
.aihi-size { display: inline-flex; align-items: flex-end; gap: 8px; white-space: nowrap; font-weight: 600; }

/* ---------------------------------------------------------------- the plan table (templates/parts/plan-table.php) */

.aihi-table-card {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--r-card);
  box-shadow: var(--shadow-card);
}
.aihi-filters {
  padding: 18px 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px solid var(--c-table-line);
}
.aihi-seg {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  background: var(--c-filter-bg);
  padding: 4px;
  border-radius: var(--r-group);
}
.aihi-seg__btn {
  min-height: var(--control-h);
  padding: 0 16px;
  border: 0;
  border-radius: var(--r-control);
  background: transparent;
  color: var(--c-navy);
  font-size: 15px;
  font-weight: 600;
}
.aihi-seg__btn[aria-pressed="true"] { background: var(--c-navy); color: var(--c-white); }
@media (hover: hover) { .aihi-seg__btn[aria-pressed="false"]:hover { background: var(--c-white); } }
.aihi-filters__more { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; font-size: 15px; }
.aihi-loc { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; }
.aihi-check { display: inline-flex; align-items: center; gap: 8px; min-height: var(--control-h); cursor: pointer; }
.aihi-check input { width: 18px; height: 18px; margin: 3px 3px 3px 4px; accent-color: var(--c-blue); cursor: pointer; }
.aihi-field { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; max-width: 100%; }
.aihi-select {
  max-width: 100%;
  min-height: var(--control-h);
  border-radius: var(--r-control);
  border: 1px solid var(--c-select-border);
  background: var(--c-white);
  font-size: 15px;
  padding: 0 10px;
  color: var(--c-navy);
}
/* a caption is never wider than the visible box (else a phone shows "...from 10 of the 10 providers w..."; V-03) */
.aihi-table-scroll { position: relative; overflow-x: auto; container-type: inline-size; }
.aihi-table-scroll caption { max-width: 100cqw; }
.aihi-table { width: 100%; min-width: 1060px; border-collapse: collapse; font-size: 15px; }
.aihi-table__caption { text-align: left; padding: 14px 20px 6px; font-size: 14px; color: var(--c-muted); caption-side: top; }
.aihi-table thead tr { text-align: left; color: var(--c-muted); font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; }
.aihi-table thead th { padding: 12px 16px; font-weight: 600; border-bottom: 1px solid var(--c-table-line); text-align: left; }
.aihi-table thead th:first-child { padding-left: 20px; }
.aihi-table thead th:last-child { padding-right: 20px; }
.aihi-table tbody tr { border-bottom: 1px solid var(--c-row-line); }
.aihi-table tbody th, .aihi-table tbody td { padding: 18px 16px; vertical-align: top; text-align: left; }
.aihi-table tbody th {
  padding-left: 20px;
  font-weight: 700;
  font-size: 16px;
  white-space: nowrap;
}
.aihi-table tbody th a { color: var(--c-navy); text-decoration: none; }
@media (hover: hover) { .aihi-table tbody th a:hover { color: var(--c-link); text-decoration: underline; } }
.aihi-table tbody th a:focus-visible { text-decoration: underline; }
.aihi-table tbody td:last-child { padding-right: 20px; text-align: right; }
.aihi-table__nowrap { white-space: nowrap; }
.aihi-table__empty td { padding: 28px 20px; text-align: left; color: var(--c-text-2); }
.aihi-table tbody .aihi-table__empty td:last-child { text-align: left; }
.aihi-cell { display: flex; flex-direction: column; gap: 2px; }
.aihi-cell__main { font-weight: 600; }
.aihi-cell__sub { font-size: 14px; color: var(--c-muted); }
.aihi-cell__date { font-size: 13px; color: var(--c-muted); }
.aihi-table__foot { padding: 16px 20px 20px; font-size: 14px; color: var(--c-muted); }
.aihi-table__foot:not([hidden]) + .aihi-table__foot { padding-top: 0; }

/* price lines (templates/parts/price.php) */
.aihi-price { display: flex; flex-direction: column; gap: 2px; }
.aihi-price__amount { font-weight: 700; font-size: 17px; white-space: nowrap; }
.aihi-price__unit { font-size: 13px; font-weight: 500; color: var(--c-muted); }
/* the monthly cost of an hourly price, right under it: "(about $248/month)" */
.aihi-price__month { font-size: 13px; font-weight: 600; color: var(--c-text-2); white-space: nowrap; }
/* the page's one 730-hour note (aihi_pub_month_note): a foot line of its table or box, or a small line in text */
.aihi-month-note { font-size: 14px; color: var(--c-muted); }
.aihi-price__note, .aihi-price__date { font-size: 13px; color: var(--c-muted); white-space: nowrap; }
/* in the plan table a long note wraps inside the width the amount and the date give the column, never widening it (V-01) */
.aihi-table .aihi-price__note { white-space: normal; width: 0; min-width: 100%; }
.aihi-price--gone .aihi-price__amount { font-weight: 600; font-size: 15px; color: var(--c-text-2); white-space: normal; }

/* ---------------------------------------------------------------- page heads and text pages */

.aihi-pagehead { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; max-width: 52rem; }
.aihi-pagehead .aihi-lead { max-width: 40em; }
.aihi-updated { font-size: 15px; color: var(--c-muted); }

/* prose: the reading column of text pages and articles */
/* running text: proportional figures (Inter's tabular set widens the hyphen: "24-month", "gpt-oss-120b");
   the page frame keeps the mockup's tabular figures */
.aihi-prose { max-width: 44rem; font-size: 17px; line-height: 1.65; color: var(--c-navy); font-variant-numeric: normal; }
.aihi-prose > * + * { margin-top: 1em; }
.aihi-prose h2 {
  margin-top: 2em;
  font-weight: 800;
  font-size: clamp(26px, 2.6vw, 32px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  scroll-margin-top: 24px;
}
.aihi-prose h3 {
  margin-top: 1.6em;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  scroll-margin-top: 24px;
}
.aihi-prose h2 + *, .aihi-prose h3 + * { margin-top: 0.6em; }
.aihi-prose ul, .aihi-prose ol { padding-left: 1.4em; }
.aihi-prose li + li { margin-top: 0.4em; }
.aihi-prose a:not(.aihi-btn) { color: var(--c-link); text-underline-offset: 2px; }
.aihi-prose strong { font-weight: 700; }
.aihi-prose code, .aihi-code {
  font-family: ui-monospace, "Cascadia Mono", Consolas, "Liberation Mono", monospace;
  font-size: 0.9em;
  background: var(--c-filter-bg);
  border: 1px solid var(--c-table-line);
  border-radius: 4px;
  padding: 0.05em 0.35em;
}
.aihi-prose pre {
  position: relative;
  overflow-x: auto;
  background: var(--c-navy);
  color: var(--c-on-dark-text);
  border-radius: 12px;
  padding: 16px 18px;
  font-size: 15px;
  line-height: 1.5;
}
.aihi-prose pre code { background: transparent; border: 0; padding: 0; color: inherit; font-size: inherit; }
.aihi-prose table { width: 100%; font-size: 15px; }
.aihi-prose caption { text-align: left; font-size: 14px; color: var(--c-muted); padding-bottom: 8px; }
.aihi-prose th, .aihi-prose td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--c-row-line); }
.aihi-prose thead th { font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--c-muted); border-bottom-color: var(--c-table-line); }
.aihi-prose .aihi-table-scroll { border: 1px solid var(--c-line); border-radius: var(--r-card); background: var(--c-white); }
.aihi-section { scroll-margin-top: 24px; }
.aihi-changes { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--c-line); }
.aihi-changes h2 { margin-top: 0; font-size: 22px; }
.aihi-changes time { color: var(--c-muted); }

/* gap marker: a fact only George can give (section 8.3); shown so George sees it, never at launch */
.aihi-gap {
  background: #FFF1B8;
  color: var(--c-navy);
  border-bottom: 2px solid var(--c-yellow);
  padding: 0 0.2em;
  font-weight: 600;
}

/* ---------------------------------------------------------------- forms */

.aihi-form { display: flex; flex-direction: column; gap: 18px; max-width: 36rem; }
.aihi-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.aihi-form label, .aihi-label { display: block; font-weight: 600; margin-bottom: 6px; }
.aihi-input, .aihi-textarea {
  display: block;
  width: 100%;
  min-height: var(--touch);
  padding: 10px 12px;
  border: 1px solid var(--c-field-border);
  border-radius: var(--r-control);
  background: var(--c-white);
  font-size: 16px;
}
.aihi-textarea { min-height: 160px; resize: vertical; }
.aihi-help { font-size: 14px; color: var(--c-muted); }
.aihi-error { font-size: 14px; color: #B3261E; font-weight: 600; }
.aihi-status { font-size: 15px; color: var(--c-navy); background: #E6F7EE; border-radius: var(--r-btn); padding: 10px 14px; }

/* pages that are not built yet (templates/pages/placeholder.php and the stubs) */
.aihi-placeholder { display: flex; flex-direction: column; gap: 14px; }
.aihi-placeholder h1 {
  font-weight: 800;
  font-size: clamp(32px, 4vw, 46px);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

/* ---------------------------------------------------------------- 404 */

.aihi-notfound { padding: 72px 0 96px; display: flex; flex-direction: column; gap: 16px; max-width: 40rem; }
.aihi-notfound__links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }

/* ---------------------------------------------------------------- motion */

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Windows contrast themes replace backgrounds: the chosen size keeps a visible mark (A14) */
@media (forced-colors: active) {
  .aihi-seg__btn[aria-pressed="true"] { forced-color-adjust: none; background: Highlight; color: HighlightText; }
}

/* ================================================================ SMALL SCREENS (every small-screen rule is here) */

/* the provider column stays visible while a table row scrolls sideways (below the table's 1060 px) */
@media (max-width: 1059.98px) {
  .aihi-table tbody th, .aihi-table thead th:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--c-white);
    box-shadow: 1px 0 0 var(--c-row-line);
  }
}

/* touch sizes at 1024 px and below: filter buttons and selects 44 px (desktop keeps the mockup's 40 px) */
@media (max-width: 1024px) {
  .aihi-seg__btn, .aihi-select, .aihi-check, .aihi-btn--small { min-height: var(--touch); }
  /* 44 px touch targets (V-07, V-08); the negative margins keep the layout of the mockup */
  .aihi-footer__list { gap: 0; }
  .aihi-footer__list a { display: inline-block; padding: 10.5px 0; }
  .aihi-crumbs a { display: inline-block; padding: 10.5px 0; margin: -10.5px 0; }
  .aihi-header .aihi-logo { padding: 5px 0; margin: -5px 0; }
  .aihi-table tbody th a { display: inline-block; padding: 12px 0; margin: -12px 0; }
}
@supports (-webkit-touch-callout: none) {
  @media (max-width: 1024px) {
    input, select, textarea { font-size: 16px; }
  }
}

/* phones: the mockup keeps its 24 px sides at every width; only the widest pieces are kept inside the screen */
@media (max-width: 480px) {
  .aihi-logo__text { white-space: normal; }
  .aihi-crumbs ol { word-break: break-word; }
}
