/**
 * Marketing surface families — structure, voice and ornament per page family.
 * Python registry: apps/schools/marketing_families.py (data-mkt-family on <html>).
 *
 * marketing-page-personality.css already gives each page an accent hue and a hero wash.
 * That left every page on one skeleton, so this layer changes what a hue cannot:
 * display face, hero silhouette, card edge and a signature ornament.
 *
 * Rules of this file:
 *  - No raw colours. Everything derives from --mkt-personality-accent and the
 *    --mkt-edt-* ink/paper/rule tokens, so light, dark and OLED all follow.
 *  - Local-first: system font stacks only (Source Serif 4 is already self-hosted).
 *  - Nothing here moves: the console caret is static, so the file cannot exceed the motion budget.
 */

html[data-mkt-family] {
  --fam-serif: "Source Serif 4", "Iowan Old Style", Georgia, serif;
  --fam-sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --fam-mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, "Liberation Mono", monospace;
  --fam-display: var(--fam-sans);
  --fam-rule: var(--mkt-edt-rule, color-mix(in srgb, currentColor 14%, transparent));
  --fam-ink: var(--mkt-edt-ink, CanvasText);
  --fam-paper: var(--mkt-edt-bg, Canvas);
  --fam-accent: var(--mkt-personality-accent, var(--mkt-edt-accent, currentColor));
  --fam-radius: 0.75rem;
  --fam-hero-pad-y: clamp(1.75rem, 4vw, 3.25rem);
  --fam-hero-image: none;
}

/* ── Shared hooks: every family restyles the same hero + card classes ── */
html[data-mkt-family] .marketing-surface .mkt-personality-hero,
html[data-mkt-family] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family] .marketing-surface .mkt-inst-hero {
  border-radius: var(--fam-radius);
  padding-block: var(--fam-hero-pad-y);
  background-image: var(--fam-hero-image), var(--mkt-personality-hero-wash, none);
  position: relative;
}
html[data-mkt-family] .marketing-surface .mkt-v3-section-headline,
html[data-mkt-family] .marketing-surface .mkt-edt-section-headline,
html[data-mkt-family] .marketing-surface .mkt-v3-hero-headline {
  font-family: var(--fam-display);
}
html[data-mkt-family] .marketing-surface .mkt-v3-segment-card,
html[data-mkt-family] .marketing-surface .mkt-v3-pricing-plan,
html[data-mkt-family] .marketing-surface .mkt-v3-buyer-world-card {
  border-radius: var(--fam-radius);
}

/* ── day (home) — a sunrise-to-dusk rule under the hero ── */
html[data-mkt-family="day"] {
  --fam-radius: 1rem;
}
html[data-mkt-family="day"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="day"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="day"] .marketing-surface .mkt-inst-hero {
  border-bottom: 4px solid transparent;
  border-image: linear-gradient(90deg,
    color-mix(in srgb, var(--fam-accent) 35%, transparent),
    var(--fam-accent) 45%,
    color-mix(in srgb, var(--fam-ink) 55%, var(--fam-accent)) 100%) 1;
  border-radius: 0;
}

/* ── register — ruled paper with a margin line ── */
html[data-mkt-family="register"] {
  --fam-radius: 0.375rem;
  --fam-hero-image:
    linear-gradient(90deg, transparent calc(3.25rem - 1px), color-mix(in srgb, var(--fam-accent) 55%, transparent) calc(3.25rem - 1px), color-mix(in srgb, var(--fam-accent) 55%, transparent) 3.25rem, transparent 3.25rem),
    repeating-linear-gradient(180deg, transparent 0, transparent 1.9rem, color-mix(in srgb, var(--fam-ink) 11%, transparent) 1.9rem, color-mix(in srgb, var(--fam-ink) 11%, transparent) calc(1.9rem + 1px));
}
html[data-mkt-family="register"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="register"] .marketing-surface .mkt-v3-archetype__hero {
  padding-inline-start: clamp(4rem, 8vw, 5.5rem);
}

/* ── ledger — a statement: double rule, sharp corners, tabular figures ── */
html[data-mkt-family="ledger"] {
  --fam-display: var(--fam-sans);
  --fam-radius: 0.125rem;
}
html[data-mkt-family="ledger"] .marketing-surface {
  font-variant-numeric: tabular-nums lining-nums;
}
html[data-mkt-family="ledger"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="ledger"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="ledger"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="ledger"] .marketing-surface .mkt-inst-hero {
  border-block: 4px double var(--fam-ink);
}
html[data-mkt-family="ledger"] .marketing-surface .mkt-v3-section-headline {
  letter-spacing: -0.02em;
  font-weight: 700;
}
html[data-mkt-family="ledger"] .marketing-surface .mkt-v3-segment-card,
html[data-mkt-family="ledger"] .marketing-surface .mkt-v3-pricing-plan {
  border: 1px solid var(--fam-rule);
  border-top: 3px solid var(--fam-ink);
}

/* ── report — card stock with an inset border and a stamp ── */
html[data-mkt-family="report"] {
  --fam-radius: 0.5rem;
}
html[data-mkt-family="report"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="report"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="report"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="report"] .marketing-surface .mkt-inst-hero {
  outline: 1px solid color-mix(in srgb, var(--fam-accent) 50%, transparent);
  outline-offset: -0.75rem;
}
html[data-mkt-family="report"] .marketing-surface .mkt-personality-hero::after,
html[data-mkt-family="report"] .marketing-surface .mkt-v3-archetype__hero::after {
  content: "";
  position: absolute;
  inset-block-start: 1.5rem;
  inset-inline-end: 1.75rem;
  inline-size: 4.25rem;
  block-size: 4.25rem;
  border: 3px double color-mix(in srgb, var(--fam-accent) 70%, transparent);
  border-radius: 50%;
  transform: rotate(-12deg);
  pointer-events: none;
}

/* ── door — a doorway: arched top, round corners, warm pills ── */
html[data-mkt-family="door"] {
  --fam-display: var(--fam-sans);
  --fam-radius: 1.5rem;
}
html[data-mkt-family="door"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="door"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="door"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="door"] .marketing-surface .mkt-inst-hero {
  border-radius: 2.75rem 2.75rem var(--fam-radius) var(--fam-radius);
}
html[data-mkt-family="door"] .marketing-surface .mkt-edt-cta {
  border-radius: 999px;
}

/* ── signal — chart grid with an axis of ticks ── */
html[data-mkt-family="signal"] {
  --fam-display: var(--fam-sans);
  --fam-hero-image:
    repeating-linear-gradient(90deg, transparent 0, transparent calc(1.5rem - 1px), color-mix(in srgb, var(--fam-accent) 13%, transparent) calc(1.5rem - 1px), color-mix(in srgb, var(--fam-accent) 13%, transparent) 1.5rem),
    repeating-linear-gradient(180deg, transparent 0, transparent calc(1.5rem - 1px), color-mix(in srgb, var(--fam-accent) 13%, transparent) calc(1.5rem - 1px), color-mix(in srgb, var(--fam-accent) 13%, transparent) 1.5rem);
}
html[data-mkt-family="signal"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="signal"] .marketing-surface .mkt-v3-archetype__hero {
  border-bottom: 2px solid var(--fam-accent);
}

/* ── shield — an evidence sheet: heavy top bar, square corners, a seal ── */
html[data-mkt-family="shield"] {
  --fam-display: var(--fam-sans);
  --fam-radius: 0.125rem;
}
html[data-mkt-family="shield"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="shield"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="shield"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="shield"] .marketing-surface .mkt-inst-hero {
  border-top: 8px solid var(--fam-accent);
  border-bottom: 1px solid var(--fam-rule);
}
html[data-mkt-family="shield"] .marketing-surface .mkt-personality-hero::after,
html[data-mkt-family="shield"] .marketing-surface .mkt-v3-archetype__hero::after {
  content: "";
  position: absolute;
  inset: auto 1.5rem 1.25rem auto;
  z-index: 0;
  inline-size: 5rem;
  block-size: 5rem;
  background: radial-gradient(circle, transparent 54%, color-mix(in srgb, var(--fam-accent) 40%, transparent) 55%, color-mix(in srgb, var(--fam-accent) 40%, transparent) 60%, transparent 61%, transparent 70%, color-mix(in srgb, var(--fam-accent) 28%, transparent) 71%, color-mix(in srgb, var(--fam-accent) 28%, transparent) 73%, transparent 74%);
  pointer-events: none;
}
html[data-mkt-family="shield"] .marketing-surface .mkt-personality-hero__eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

/* ── terminal — a console in every theme, mono voice, blinking caret ── */
html[data-mkt-family="terminal"] {
  --fam-display: var(--fam-mono);
  --fam-radius: 0.375rem;
}
html[data-mkt-family="terminal"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="terminal"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="terminal"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="terminal"] .marketing-surface .mkt-inst-hero {
  /* theme-locked-allow: the console reads as a console in light, dark and OLED */
  background-color: color-mix(in srgb, var(--fam-accent) 12%, black);
  color: white;
  border: 1px solid color-mix(in srgb, var(--fam-accent) 55%, black);
}
html[data-mkt-family="terminal"] .marketing-surface .mkt-personality-hero .mkt-v3-section-headline,
html[data-mkt-family="terminal"] .marketing-surface .mkt-v3-archetype__hero .mkt-v3-section-headline {
  color: white;
}
html[data-mkt-family="terminal"] .marketing-surface .mkt-personality-hero .mkt-v3-lead,
html[data-mkt-family="terminal"] .marketing-surface .mkt-v3-archetype__hero .mkt-v3-lead {
  color: color-mix(in srgb, white 82%, transparent);
}
html[data-mkt-family="terminal"] .marketing-surface .mkt-personality-hero__eyebrow,
html[data-mkt-family="terminal"] .marketing-surface .mkt-v3-archetype__hero .mkt-v3-eyebrow {
  color: color-mix(in srgb, var(--fam-accent) 45%, white);
}
html[data-mkt-family="terminal"] .marketing-surface .mkt-personality-hero__eyebrow::before {
  content: "$ ";
}
html[data-mkt-family="terminal"] .marketing-surface .mkt-personality-hero .mkt-v3-section-headline::after,
html[data-mkt-family="terminal"] .marketing-surface .mkt-v3-archetype__hero .mkt-v3-section-headline::after {
  content: "";
  display: inline-block;
  inline-size: 0.55em;
  block-size: 1em;
  margin-inline-start: 0.2em;
  vertical-align: text-bottom;
  background: color-mix(in srgb, var(--fam-accent) 55%, white);
}

/* ── shelf — catalogue shelves: round cards on a shelf line ── */
html[data-mkt-family="shelf"] {
  --fam-display: var(--fam-sans);
  --fam-radius: 1.25rem;
}
html[data-mkt-family="shelf"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="shelf"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="shelf"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="shelf"] .marketing-surface .mkt-inst-hero {
  border-bottom: 6px solid color-mix(in srgb, var(--fam-accent) 35%, transparent);
  box-shadow: 0 6px 0 -3px color-mix(in srgb, var(--fam-ink) 10%, transparent);
}
html[data-mkt-family="shelf"] .marketing-surface .mkt-v3-segment-card {
  background-color: color-mix(in srgb, var(--fam-accent) 7%, var(--fam-paper));
}

/* ── blueprint — graph paper with a dashed working edge ── */
html[data-mkt-family="blueprint"] {
  --fam-display: var(--fam-sans);
  --fam-radius: 0.25rem;
  --fam-hero-image:
    repeating-linear-gradient(90deg, transparent 0, transparent calc(1.25rem - 1px), color-mix(in srgb, var(--fam-accent) 16%, transparent) calc(1.25rem - 1px), color-mix(in srgb, var(--fam-accent) 16%, transparent) 1.25rem),
    repeating-linear-gradient(180deg, transparent 0, transparent calc(1.25rem - 1px), color-mix(in srgb, var(--fam-accent) 16%, transparent) calc(1.25rem - 1px), color-mix(in srgb, var(--fam-accent) 16%, transparent) 1.25rem);
}
html[data-mkt-family="blueprint"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="blueprint"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="blueprint"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="blueprint"] .marketing-surface .mkt-inst-hero {
  border: 2px dashed color-mix(in srgb, var(--fam-accent) 60%, transparent);
}

/* ── matrix — a contrast slab: ink on paper inverted, heavy rules ── */
html[data-mkt-family="matrix"] {
  --fam-display: var(--fam-sans);
  --fam-radius: 0;
}
html[data-mkt-family="matrix"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="matrix"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="matrix"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="matrix"] .marketing-surface .mkt-inst-hero {
  background-color: var(--fam-ink);
  background-image: none;
  color: var(--fam-paper);
  border-bottom: 6px solid var(--fam-accent);
}
html[data-mkt-family="matrix"] .marketing-surface .mkt-personality-hero .mkt-v3-section-headline,
html[data-mkt-family="matrix"] .marketing-surface .mkt-personality-hero .mkt-v3-lead,
html[data-mkt-family="matrix"] .marketing-surface .mkt-personality-hero__eyebrow,
html[data-mkt-family="matrix"] .marketing-surface .mkt-v3-archetype__hero .mkt-v3-section-headline,
html[data-mkt-family="matrix"] .marketing-surface .mkt-v3-archetype__hero .mkt-v3-lead,
html[data-mkt-family="matrix"] .marketing-surface .mkt-v3-archetype__hero .mkt-v3-eyebrow {
  color: var(--fam-paper);
}

/* ── school — a bell schedule: timetable ticks along the hero ── */
html[data-mkt-family="school"] {
  --fam-radius: 0.875rem;
  --fam-hero-image:
    repeating-linear-gradient(90deg, transparent 0, transparent calc(4rem - 2px), color-mix(in srgb, var(--fam-accent) 22%, transparent) calc(4rem - 2px), color-mix(in srgb, var(--fam-accent) 22%, transparent) 4rem);
}
html[data-mkt-family="school"] .marketing-surface .mkt-personality-hero::after,
html[data-mkt-family="school"] .marketing-surface .mkt-v3-archetype__hero::after,
html[data-mkt-family="school"] .marketing-surface .mkt-inst-hero::after {
  content: "";
  position: absolute;
  inset-inline: 1.5rem;
  inset-block-end: 0.9rem;
  block-size: 0.5rem;
  background: radial-gradient(circle at 0.25rem 50%, var(--fam-accent) 0.25rem, transparent 0.27rem) 0 0 / 4rem 100% repeat-x;
  pointer-events: none;
}

/* ── role — your role's object: a left block and a Monday dot ── */
html[data-mkt-family="role"] {
  --fam-display: var(--fam-sans);
  --fam-radius: 1.125rem;
}
html[data-mkt-family="role"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="role"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="role"] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-family="role"] .marketing-surface .mkt-inst-hero {
  border-inline-start: 0.625rem solid var(--fam-accent);
}
html[data-mkt-family="role"] .marketing-surface .mkt-personality-hero__eyebrow::before {
  content: "";
  display: inline-block;
  inline-size: 0.6em;
  block-size: 0.6em;
  margin-inline-end: 0.55em;
  border-radius: 50%;
  background: var(--fam-accent);
}

/* ── Small screens: keep the silhouette, drop the busy ornaments ── */
@media (max-width: 47.99rem) {
  html[data-mkt-family] {
    --fam-hero-image: none;
  }
  html[data-mkt-family] .marketing-surface .mkt-personality-hero::after,
  html[data-mkt-family] .marketing-surface .mkt-v3-archetype__hero::after {
    display: none;
  }
  html[data-mkt-family="register"] .marketing-surface .mkt-personality-hero,
  html[data-mkt-family="register"] .marketing-surface .mkt-v3-archetype__hero {
    padding-inline-start: 1.25rem;
  }
}

/* ── High-contrast / forced colours: system colours, no decoration ── */
@media (forced-colors: active) {
  html[data-mkt-family] .marketing-surface .mkt-personality-hero,
  html[data-mkt-family] .marketing-surface .mkt-v3-archetype__hero,
  html[data-mkt-family] .marketing-surface .mkt-v3-page__hero {
    background-image: none;
    border: 1px solid CanvasText;
  }
}

/* ── Mega menus: each panel keeps its own colour rails, so the menu is not one grey sheet ── */
.mkt-navbar .mkt-mega-menu {
  --mega-hue: var(--color-primary-500);
  border-top: 3px solid var(--mega-hue);
}
.mkt-navbar .mkt-mega-menu .mkt-mega-col-title {
  --col-hue: var(--mega-hue);
  color: color-mix(in srgb, var(--col-hue) 62%, var(--mkt-edt-ink, CanvasText));
  border-inline-start: 3px solid var(--col-hue);
  padding-inline-start: 0.6rem;
}
.mkt-navbar .mkt-mega-menu .mkt-mega-link {
  border-inline-start: 3px solid transparent;
}
.mkt-navbar .mkt-mega-menu .mkt-mega-link:hover,
.mkt-navbar .mkt-mega-menu .mkt-mega-link:focus-visible {
  border-inline-start-color: var(--col-hue, var(--mega-hue));
}
.mkt-mega-menu--platform { --mega-hue: var(--color-emerald-500); }
.mkt-mega-menu--platform .row > div:nth-child(1) .mkt-mega-col-title { --col-hue: var(--color-emerald-500); }
.mkt-mega-menu--platform .row > div:nth-child(2) .mkt-mega-col-title { --col-hue: var(--color-indigo-500); }
.mkt-mega-menu--platform .row > div:nth-child(3) .mkt-mega-col-title { --col-hue: var(--color-amber-500); }
.mkt-mega-menu--platform .row > div:nth-child(4) .mkt-mega-col-title { --col-hue: var(--color-teal-500); }
.mkt-mega-menu--solutions { --mega-hue: var(--color-orange-500); }
.mkt-mega-menu--why-runmycampus { --mega-hue: var(--color-sky-500); }
.mkt-mega-menu--why-runmycampus .row > div:nth-child(2) .mkt-mega-col-title { --col-hue: var(--color-red-500); }
.mkt-mega-menu--resources { --mega-hue: var(--color-cyan-500); }
.mkt-mega-menu--more { --mega-hue: var(--color-base-500); }

/* ── Connection chip: a real online/offline readout (set by mkt-connection-chip.js) ── */
.mkt-conn-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.2rem 0.6rem;
  border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
  border-radius: 999px;
  font-size: 0.75rem;
  line-height: 1.2;
  white-space: nowrap;
}
.mkt-conn-chip[hidden] { display: none; }
.mkt-conn-chip__dot {
  inline-size: 0.5rem;
  block-size: 0.5rem;
  border-radius: 50%;
  background: var(--color-emerald-500);
}
.mkt-conn-chip[data-state="offline"] .mkt-conn-chip__dot { background: var(--color-amber-500); }
.mkt-conn-chip[data-state="offline"] { border-color: var(--color-amber-500); }

/* ── Save-for-offline control ── */
.mkt-save-offline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-block: 0.75rem;
}
.mkt-save-offline__status {
  font-size: 0.875rem;
  color: var(--mkt-edt-ink-muted, currentColor);
}

/* ── Proof page ── */
.mkt-proof__claims { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.mkt-proof__claim {
  display: grid;
  grid-template-columns: minmax(9rem, max-content) 1fr;
  gap: 0.75rem;
  align-items: baseline;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--fam-rule);
  border-radius: var(--fam-radius);
}
.mkt-proof__badge {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--color-emerald-700, var(--fam-accent)) 60%, var(--fam-ink));
}
.mkt-proof__claim[data-claim-class="illustrative"] .mkt-proof__badge { color: color-mix(in srgb, var(--color-amber-700, var(--fam-accent)) 60%, var(--fam-ink)); }
.mkt-proof__claim[data-claim-class="unproven"] .mkt-proof__badge { color: color-mix(in srgb, var(--color-red-500) 60%, var(--fam-ink)); }
.mkt-proof__table-wrap { overflow-x: auto; }
.mkt-proof__table { inline-size: 100%; border-collapse: collapse; }
.mkt-proof__table th,
.mkt-proof__table td { padding: 0.55rem 0.7rem; border-bottom: 1px solid var(--fam-rule); text-align: start; vertical-align: top; }
.mkt-proof__status { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.35rem; }
.mkt-proof__status li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.35rem 0; border-bottom: 1px dashed var(--fam-rule); }
.mkt-proof__gaps { padding-inline-start: 1.1rem; display: grid; gap: 0.5rem; }
@media (max-width: 47.99rem) {
  .mkt-proof__claim { grid-template-columns: 1fr; gap: 0.2rem; }
}

/* ── Language picker: say how far each language goes ── */
.mkt-lang-switcher__state {
  display: block;
  opacity: 0.8;
  font-style: italic;
}

/* ── Inverted heroes (terminal, matrix) ──
 * marketing-critical.min.css forces dark ink on every paragraph with !important as a contrast
 * safety net. That net is right for light heroes and wrong on a hero this file inverts, so these
 * two families answer it with the same priority and a longer selector. */
html[data-mkt-family="terminal"] body.marketing-surface .mkt-v3-archetype__hero p,
html[data-mkt-family="terminal"] body.marketing-surface .mkt-personality-hero p {
  color: color-mix(in srgb, white 86%, transparent) !important; /* theme-locked-allow: console hero is dark in every theme */
}
html[data-mkt-family="terminal"] body.marketing-surface .mkt-v3-archetype__hero p.mkt-v3-eyebrow,
html[data-mkt-family="terminal"] body.marketing-surface .mkt-personality-hero p.mkt-personality-hero__eyebrow {
  color: color-mix(in srgb, var(--fam-accent) 45%, white) !important; /* theme-locked-allow: console hero is dark in every theme */
}
html[data-mkt-family="matrix"] body.marketing-surface .mkt-v3-archetype__hero p,
html[data-mkt-family="matrix"] body.marketing-surface .mkt-personality-hero p {
  color: var(--fam-paper) !important;
}

/* ── Layout guards the archetype pages needed once their heroes had a visible edge ── */
.mkt-v3-archetype > * {
  min-inline-size: 0;
  max-inline-size: 100%;
}
.mkt-v3-archetype pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
html[data-mkt-family="terminal"] .marketing-surface .mkt-v3-section-headline {
  font-size: clamp(1.6rem, 3.4vw, 2.6rem);
  overflow-wrap: anywhere;
}

/* ── School family: leave room under the CTAs for the bell ticks ── */
html[data-mkt-family="school"] .marketing-surface .mkt-personality-hero,
html[data-mkt-family="school"] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-family="school"] .marketing-surface .mkt-inst-hero {
  padding-block-end: 2.5rem;
}

/* ── Header room: the primary nav was losing Pricing and Resources at 1440px ──
 * The status pill keeps its dot and its accessible name; the long label returns on very wide screens.
 * "Find campus" stays one click away in More and in the footer. */
@media (min-width: 1200px) and (max-width: 2199.98px) {
  .mkt-navbar .mkt-status-pill__label {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .mkt-navbar .mkt-header-action[href$="/find/"],
  .mkt-navbar .mkt-header-action[href*="find-campus"] {
    display: none;
  }
}


@media (min-width: 1200px) and (max-width: 2199.98px) {
  /* icon-only language control; its aria-label already names it */
  .mkt-navbar .mkt-lang-switcher__current { display: none; }
  .mkt-navbar .mkt-nav-primary--mega { gap: 0 !important; } /* bootstrap gap-1 utility is !important */
  .mkt-navbar .mkt-nav-primary--mega > .nav-item > .nav-link { padding-inline: 0.45rem !important; white-space: nowrap; }
  .mkt-navbar .mkt-header-action { padding-inline: 0.6rem; }
}
@media (min-width: 1200px) and (max-width: 2199.98px) {
  .mkt-navbar .mkt-nav-primary--mega > .nav-item > .nav-link { font-size: 0.9rem; }
  .mkt-navbar .mkt-header-action { font-size: 0.8125rem; }
}
@media (min-width: 1200px) {
  /* the header needs more than the 1320px page container to hold seven items plus its actions */
  .mkt-navbar .mkt-navbar-container.container { max-width: min(100%, 1680px); }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
  /* laptop widths: status stays in the footer and the More menu; the nav keeps all seven items */
  .mkt-navbar .mkt-status-pill { display: none; }
  .mkt-navbar .mkt-nav-primary--mega > .nav-item > .nav-link { font-size: 0.85rem; padding-inline: 0.35rem !important; }
  .mkt-navbar .mkt-header-action { padding-inline: 0.45rem; }
  .mkt-navbar .mkt-nav-utility { padding-inline: 0.4rem !important; }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .mkt-navbar .btn-cta-primary.mkt-header-action { padding-inline: 0.7rem; }
  .mkt-navbar .mkt-navbar-container { column-gap: 0.5rem; }
  .mkt-navbar .navbar-collapse > .d-flex { column-gap: 0.4rem !important; }
}

/* ── Hero hierarchy: the headline must out-rank the lead ──
 * Trust, compare, contact and proof rendered their <h1> smaller than the sentence under it.
 * Platform pages already size theirs in marketing-platform-themes.css; this covers the rest. */
html[data-mkt-family] .marketing-surface .mkt-v3-page__hero .mkt-v3-section-headline,
html[data-mkt-family] .marketing-surface .mkt-personality-hero.mkt-v3-page__hero .mkt-v3-section-headline {
  font-size: clamp(2rem, 4.2vw, 3.1rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
}
html[data-mkt-family] .marketing-surface .mkt-personality-hero.mkt-v3-page__hero .mkt-v3-lead {
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: 1.55;
  max-inline-size: 46rem;
}

.mkt-save-offline__button {
  appearance: none;
  background: transparent;
  color: var(--fam-ink);
  border: 1px solid var(--fam-rule);
  border-radius: 999px;
  padding: 0.4rem 0.95rem;
  font: inherit;
  font-size: 0.875rem;
  cursor: pointer;
}
.mkt-save-offline__button:hover,
.mkt-save-offline__button:focus-visible {
  border-color: var(--fam-accent);
  outline: 2px solid var(--fam-accent);
  outline-offset: 2px;
}
.mkt-save-offline__button:disabled { opacity: 0.6; cursor: progress; }

.mkt-proof__build { font-size: 0.875rem; color: var(--mkt-edt-ink-muted, currentColor); }
.mkt-proof__build code { font-family: var(--fam-mono); }
.mkt-proof { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.mkt-proof__section { display: grid; gap: 0.75rem; }
.mkt-proof__text { min-inline-size: 0; overflow-wrap: anywhere; }
.mkt-conn-chip__label { white-space: nowrap; }

/* ── Find-your-path page ── */
.mkt-start { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.mkt-start__finder { display: grid; gap: 1rem; }
.mkt-start__q {
  display: grid;
  gap: 0.4rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--fam-rule);
  border-radius: var(--fam-radius);
}
.mkt-start__q legend { font-weight: 600; float: none; inline-size: auto; padding-inline: 0.3rem; margin: 0; font-size: 1rem; }
.mkt-start__q label { display: flex; gap: 0.5rem; align-items: center; cursor: pointer; }
.mkt-start__result:not(:empty) {
  padding: 1rem 1.25rem;
  border-inline-start: 4px solid var(--fam-accent);
  background: color-mix(in srgb, var(--fam-accent) 7%, var(--fam-paper));
  border-radius: var(--fam-radius);
}
.mkt-start__result ol { margin: 0; padding-inline-start: 1.2rem; display: grid; gap: 0.35rem; }
.mkt-start__hits { list-style: none; margin: 0.75rem 0 0; padding: 0; display: grid; gap: 0.4rem; }
.mkt-start__hits span { color: var(--mkt-edt-ink-muted, currentColor); font-size: 0.875rem; }

/* ── Offline attendance demo ── */
.mkt-demo {
  display: grid;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--fam-rule);
  border-radius: var(--fam-radius);
}
.mkt-demo__roll { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); }
.mkt-demo__roll button {
  inline-size: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.8rem;
  min-block-size: 2.75rem;
  font: inherit;
  color: var(--fam-ink);
  background: var(--fam-paper);
  border: 1px solid var(--fam-rule);
  border-radius: var(--fam-radius);
  cursor: pointer;
}
.mkt-demo__roll button b {
  inline-size: 1.75rem;
  block-size: 1.75rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--fam-paper);
  background: color-mix(in srgb, var(--color-emerald-700) 80%, var(--fam-ink));
}
.mkt-demo__roll button[data-status="absent"] b { background: color-mix(in srgb, var(--color-red-500) 75%, var(--fam-ink)); }
.mkt-demo__roll button[data-status="late"] b { background: color-mix(in srgb, var(--color-amber-700) 80%, var(--fam-ink)); }
.mkt-demo__bar { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.mkt-demo__legend,
.mkt-demo__status { margin: 0; font-size: 0.875rem; color: var(--mkt-edt-ink-muted, currentColor); }

/* ── Buyer leave-behind pack ── */
.mkt-pack { padding: 1rem 1.25rem; border: 1px dashed var(--fam-rule); border-radius: var(--fam-radius); }

/* ── Data saver: a slow or metered connection gets the plain page ── */
html[data-mkt-save-data] {
  --fam-hero-image: none;
}
html[data-mkt-save-data] .marketing-surface .mkt-personality-hero,
html[data-mkt-save-data] .marketing-surface .mkt-v3-archetype__hero,
html[data-mkt-save-data] .marketing-surface .mkt-v3-page__hero,
html[data-mkt-save-data] .marketing-surface .mkt-inst-hero {
  background-image: none;
  box-shadow: none;
}
html[data-mkt-save-data] .marketing-surface .mkt-personality-hero::after,
html[data-mkt-save-data] .marketing-surface .mkt-v3-archetype__hero::after,
html[data-mkt-save-data] .marketing-surface .mkt-inst-hero::after {
  display: none;
}
@media (prefers-reduced-data: reduce) {
  html[data-mkt-family] { --fam-hero-image: none; }
  html[data-mkt-family] .marketing-surface .mkt-personality-hero,
  html[data-mkt-family] .marketing-surface .mkt-v3-archetype__hero,
  html[data-mkt-family] .marketing-surface .mkt-v3-page__hero { background-image: none; }
}

/* ── Print: a buyer page handed to a committee is the page and its links, nothing else ── */
@media print {
  .mkt-platform-header,
  .mkt-footer,
  .mkt-consent,
  [data-rmc-consent-banner],
  .mkt-save-offline,
  .mkt-pack .mkt-save-offline,
  .mkt-buyer__actions,
  .mkt-conn-chip,
  .rmc-toast-host { display: none !important; }
  html[data-mkt-family] .marketing-surface .mkt-personality-hero,
  html[data-mkt-family] .marketing-surface .mkt-v3-page__hero,
  html[data-mkt-family] .marketing-surface .mkt-v3-archetype__hero,
  html[data-mkt-family] .marketing-surface .mkt-inst-hero {
    background: none !important;
    color: CanvasText !important;
    border: 0;
    border-block-end: 2px solid CanvasText;
    box-shadow: none;
  }
  .mkt-buyer a[href^="/"]::after { content: " (" attr(href) ")"; font-size: 0.85em; }
  .mkt-buyer { max-inline-size: none; }
}

@media (min-width: 1200px) and (max-width: 1319.98px) {
  /* narrow laptops: the brand lockup and the language caret give back the last few pixels */
  .mkt-navbar .rmc-brand-mark__wordmark,
  .mkt-navbar .navbar-brand { font-size: 0.95rem; }
  .mkt-navbar .mkt-lang-switcher .dropdown-toggle::after { display: none; }
  .mkt-navbar .mkt-nav-primary--mega > .nav-item > .nav-link { padding-inline: 0.3rem !important; }
}

@media (min-width: 1200px) and (max-width: 1279.98px) {
  /* the narrowest horizontal band: the logo mark stands alone (the link keeps its aria-label) */
  .mkt-navbar .rmc-brand-mark__wordmark { display: none; }
}

.mkt-whatsapp { margin-block: 0.5rem; font-size: 0.95rem; }
.mkt-start__plain { padding-block: 1rem; }
.mkt-start__search { display: grid; gap: 0.75rem; }

/* Homepage: the school day as one rail, in the order a principal runs it. */
.mkt-day__steps { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 0; counter-reset: day; position: relative; }
.mkt-day__step { counter-increment: day; position: relative; display: grid; grid-template-columns: 2.5rem 1fr; column-gap: 1rem; padding-block: 0.9rem; border-block-end: 1px solid color-mix(in srgb, currentColor 14%, transparent); }
.mkt-day__step::before { content: counter(day); grid-row: 1 / span 2; inline-size: 2.5rem; block-size: 2.5rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; background: color-mix(in srgb, var(--mkt-accent, var(--bs-primary, currentColor)) 18%, transparent); border: 2px solid var(--mkt-accent, var(--bs-primary, currentColor)); }
.mkt-day__name { font-size: 1.1rem; }
.mkt-day__detail { grid-column: 2; opacity: 0.85; }
.mkt-day__who { margin-block-start: 1rem; }
@media (min-width: 992px) {
  .mkt-day__steps { grid-template-columns: repeat(5, 1fr); column-gap: 1rem; }
  .mkt-day__step { grid-template-columns: 1fr; border-block-end: 0; border-block-start: 3px solid var(--mkt-accent, var(--bs-primary, currentColor)); padding-block: 1rem 0; }
  .mkt-day__step::before { grid-row: auto; margin-block-end: 0.5rem; }
  .mkt-day__detail { grid-column: 1; }
}

/* Buyer pages: the points and the buying path take the page's family, not one shared bullet list. */
.mkt-buyer__points { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.mkt-buyer__point { padding: 1rem 1.1rem; border-radius: 0.75rem; border: 1px solid color-mix(in srgb, var(--mkt-accent, currentColor) 35%, transparent); border-inline-start: 5px solid var(--mkt-accent, currentColor); background: color-mix(in srgb, var(--mkt-accent, currentColor) 7%, transparent); }
.mkt-buyer__path { list-style: none; margin: 0.75rem 0 0; padding: 0; display: grid; gap: 0.5rem; counter-reset: step; }
.mkt-buyer__path > li { counter-increment: step; display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0.9rem; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 0.5rem; }
.mkt-buyer__path > li::before { content: counter(step); inline-size: 1.8rem; block-size: 1.8rem; border-radius: 50%; display: grid; place-items: center; flex: none; font-weight: 700; border: 2px solid var(--mkt-accent, currentColor); }
@media (min-width: 768px) { .mkt-buyer__path { grid-template-columns: repeat(3, 1fr); } }
/* Ledger (bursar): ruled lines, tabular, no cards. */
html[data-mkt-family="ledger"] .mkt-buyer__points { grid-template-columns: 1fr; gap: 0; }
html[data-mkt-family="ledger"] .mkt-buyer__point { border-radius: 0; border: 0; border-block-end: 1px solid color-mix(in srgb, currentColor 25%, transparent); border-inline-start: 0; background: none; padding-inline: 0; font-variant-numeric: tabular-nums; }
/* Register (teacher): ticked rows. */
html[data-mkt-family="register"] .mkt-buyer__point { border-radius: 0.25rem; border-inline-start-width: 1px; position: relative; padding-inline-start: 2.4rem; }
html[data-mkt-family="register"] .mkt-buyer__point::before { content: "✓"; position: absolute; inset-inline-start: 0.8rem; font-weight: 700; color: var(--mkt-accent, currentColor); }
/* Terminal (IT lead): monospaced prompt lines. */
html[data-mkt-family="terminal"] .mkt-buyer__point { font-family: ui-monospace, Consolas, monospace; border-radius: 0; border-inline-start-width: 2px; background: none; }
html[data-mkt-family="terminal"] .mkt-buyer__point::before { content: "> "; color: var(--mkt-accent, currentColor); }
html[data-mkt-family="terminal"] .mkt-buyer__path > li { border-radius: 0; font-family: ui-monospace, Consolas, monospace; }
@media print { .mkt-buyer__point, .mkt-buyer__path > li { break-inside: avoid; } }
.mkt-day { padding-block: 1.5rem; }

/* Homepage hero: copy on one side, a working register on the other. */
.mkt-or__hero--split { max-width: 1240px; display: grid; gap: 2rem; align-items: center; text-align: start; }
.mkt-or__hero--split .mkt-or__lead { margin-inline: 0; }
.mkt-or__hero--split .mkt-or__hero-actions { justify-content: flex-start; }
.mkt-or__hero--split .mkt-or__title { font-family: inherit; font-size: clamp(2.25rem, 5.5vw, 3.75rem); }
.mkt-or__hero-demo .mkt-demo { margin: 0; padding: 1.25rem; border-radius: 1rem; border: 1px solid color-mix(in srgb, currentColor 16%, transparent); background: var(--mkt-surface, Canvas); box-shadow: 0 18px 48px color-mix(in srgb, currentColor 14%, transparent); }
.mkt-or__hero-demo .mkt-v3-section-headline { font-size: 1.15rem; margin-block: 0 0.5rem; }
@media (min-width: 992px) { .mkt-or__hero--split { grid-template-columns: 1.05fr 0.95fr; gap: 3.5rem; } }
/* Pricing: plan cards are the page, so they get the weight. */
.mkt-v3-pricing-plans__grid { align-items: stretch; }
.mkt-v3-pricing-plan { border-radius: 1rem; }
.mkt-v3-pricing-plan__price-value { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 700; line-height: 1.15; }
.mkt-v3-pricing-plan[data-mkt-plan="growth"] { border-width: 2px; border-color: var(--mkt-accent, currentColor); box-shadow: 0 14px 40px color-mix(in srgb, var(--mkt-accent, currentColor) 22%, transparent); }

/* The chapter image was an empty cream composition, 885px tall on a 1440 screen, above the page title. The headline leads instead. */
body.marketing-surface .rmc-hero-figure { display: none; }
.mkt-or__hero--split .mkt-or__hero-copy { text-align: start; }
.mkt-or__hero--split .mkt-or__hero-copy .mkt-or__lead { font-size: 1.1rem; }
.mkt-or__hero-demo .mkt-v3-lead { font-size: 0.95rem; line-height: 1.5; text-align: start; }
.mkt-or__hero-demo .mkt-v3-section-headline { text-align: start; font-family: inherit; }
/* Labelled sample facts (preview aid, off by default). */
.mkt-sample { margin-block: 1.5rem; padding: 1rem 1.25rem; border: 2px dashed var(--mkt-accent, currentColor); border-radius: 0.75rem; background: color-mix(in srgb, var(--mkt-accent, currentColor) 6%, transparent); }
.mkt-sample__flag { margin: 0 0 0.5rem; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.mkt-sample__quote { margin: 0 0 0.5rem; padding-inline-start: 1rem; border-inline-start: 4px solid var(--mkt-accent, currentColor); }
.mkt-sample__quote footer { font-size: 0.9rem; opacity: 0.8; }
.mkt-sample__line { margin: 0.25rem 0; }
.mkt-sample__certs { margin: 0.25rem 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.mkt-sample__certs li { padding: 0.25rem 0.7rem; border: 1px dashed currentColor; border-radius: 999px; }

/* One type system: the platform sans for every heading and body. Mono stays for code and the terminal family only. */
html[data-surface="marketing"] { --mkt-font-display: var(--fam-sans); }
body.marketing-surface :is(h1, h2, h3, h4, h5, h6, blockquote, figcaption, .mkt-edt-hero-headline, .mkt-v3-hero-headline, .mkt-edt-section-headline, .mkt-v3-section-headline, .mkt-or__title, .mkt-or__chapter-title, .mkt-personality-hero__title) { font-family: var(--fam-sans); letter-spacing: -0.02em; }
html[data-mkt-family="terminal"] body.marketing-surface :is(h1, h2, .mkt-personality-hero__title) { font-family: var(--fam-mono); letter-spacing: 0; }

/* Slimmer top of page: the country greeting is one quiet line (its sample calendar and fee chips are gone), and consent is a corner card, not a full-width bar. */
.mkt-local-first-band { padding-block: 0.15rem; }
.mkt-local-first-band .mkt-local-first-band__signal { display: none; }
.mkt-local-first-band__lead { font-size: 0.85rem; }
.mkt-local-first-band__greeting, .mkt-local-first-band__headline { font-family: var(--fam-sans); font-size: inherit; }
.mkt-consent:not([hidden]) { inset-inline: auto 1rem; inset-block-end: 1rem; inline-size: min(26rem, calc(100vw - 2rem)); border-radius: 1rem; border: 1px solid color-mix(in srgb, currentColor 16%, transparent); box-shadow: 0 18px 48px color-mix(in srgb, currentColor 22%, transparent); }
.mkt-consent:not([hidden]) .mkt-consent__inner { flex-direction: column; align-items: stretch; gap: 0.75rem; padding: 1rem; }
.mkt-consent:not([hidden]) .mkt-consent__actions { flex-wrap: wrap; gap: 0.5rem; }
.mkt-consent__prefs[hidden] { display: none; }
body.marketing-surface .mkt-local-first-band, body.marketing-surface .mkt-local-first-band * { font-family: var(--fam-sans); font-style: normal; }
body.marketing-surface .mkt-local-first-band__greeting { color: var(--fam-accent); font-weight: 600; }
.mkt-consent:not([hidden]) .mkt-consent__copy { flex: 0 0 auto; }

/* The "Inside the product" band: real screenshots, framed by marketing-product-shots.css. */
.mkt-shot { margin-block: 2.5rem; }

/* 2026-10-29 layout polish: the scroll story stage fits its content, its controls look like the rest of the site,
   proof sections stop being bare lists, and the product screenshot is a sized frame instead of a full-bleed slab. */
body.marketing-surface .mkt-or__chapter { min-height: min(44vh, 340px); padding-block: clamp(1.25rem, 4vh, 2.25rem); }
body.marketing-surface .mkt-or__stage-wrap { height: min(calc(100svh - 112px), 560px); padding-bottom: 0; }
.mkt-or__panel { font-size: 0.875rem; line-height: 1.5; color: var(--or-ink, inherit); padding: 1rem 1.125rem 1.25rem; }
.mkt-or__panel :is(ol, ul) { margin: 0.25rem 0 0.75rem; padding-inline-start: 1.25rem; }
.mkt-or__panel :is(p, label) { margin: 0 0 0.5rem; }
.mkt-or__panel :is(button:not(.mkt-edt-cta), [role="tab"]) {
  font: inherit; font-size: 0.8125rem; font-weight: 600; cursor: pointer;
  padding: 0.4rem 0.85rem; border-radius: 999px; border: 1px solid var(--or-line, currentColor);
  background: var(--or-cream, transparent); color: var(--or-ink, inherit);
}
.mkt-or__panel :is(button:not(.mkt-edt-cta), [role="tab"]):is([aria-pressed="true"], [aria-selected="true"], .is-active) {
  background: var(--or-ink, currentColor); color: var(--or-cream, Canvas);
}
.mkt-or__panel :is(select, input[type="text"], input[type="number"]) {
  width: 100%; font: inherit; padding: 0.5rem 0.65rem; border-radius: 8px;
  border: 1px solid var(--or-line, currentColor); background: transparent; color: inherit;
}
.mkt-or__panel input[type="range"] { width: 100%; }
.mkt-or__panel table { width: 100%; border-collapse: collapse; }
.mkt-or__panel :is(td, th) { padding: 0.35rem 0.25rem; border-bottom: 1px solid var(--or-line, currentColor); text-align: start; }
/* The stage header already says "illustrative"; repeating it inside every stage is noise, so keep it for screen readers only. */
.mkt-or__panel .mkt-edt-illustrative-pill,
.mkt-or__panel :is(.mkt-rt-caption, .mkt-ve-caption, figcaption) {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; margin: 0;
}

body.marketing-surface .mkt-shot { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.mkt-shot .mkt-v3-section-headline { text-align: center; margin: 0 auto 1.5rem; }

.mkt-proof-block { max-width: 960px; margin-inline: auto; padding-block: clamp(2rem, 5vw, 3.5rem); }
.mkt-proof-block > h2, .mkt-proof-block .mkt-v3-section-headline { margin: 0 0 1.25rem; }
.mkt-proof-block__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.mkt-proof-block__chips li {
  padding: 0.4rem 0.85rem; border-radius: 999px; font-size: 0.875rem; font-weight: 600;
  border: 1px solid var(--mkt-line, color-mix(in srgb, currentColor 16%, transparent)); background: var(--mkt-surface, transparent);
}
.mkt-proof-block__chips--rails li { font-weight: 500; }
.mkt-proof-block__note { margin: 0 0 0.75rem; opacity: 0.8; }

.mkt-footer-route-stack { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0; }
.mkt-footer-route-stack > a { min-width: 0; }

/* Platform archetype diagrams: one centered frame width instead of natural size pinned to the left edge. */
body.marketing-surface #main-content .mkt-v3-archetype__visual { text-align: center; padding-block: clamp(1.25rem, 3vw, 2rem); }
body.marketing-surface #main-content .mkt-v3-archetype__visual img {
  display: block; width: 100%; max-width: 920px; height: auto; margin-inline: auto;
  border-radius: 14px; border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

/* A preview panel whose seed has no series draws nothing; collapse the empty plot instead of leaving a blank half. */
body.marketing-surface .mkt-personality-viz__chart-wrap:not(:has([data-mkt-viz-bars] > *)):not(:has(.mkt-personality-viz__timeline)) { display: none; }
body.marketing-surface .mkt-personality-viz__grid:has(.mkt-personality-viz__chart-wrap:not(:has([data-mkt-viz-bars] > *)):not(:has(.mkt-personality-viz__timeline))) { grid-template-columns: 1fr; }

/* ── School OS (2026-10-29) ────────────────────────────────────────────────
   The 71 per-page personalities each picked their own hue, so the site read as a rainbow of unrelated pages. A school
   has a handful of materials, so each family now picks ONE of them (tokens in tokens-schoolhouse.css) and draws its
   hero from that material. Accent, soft tint and hero wash are all derived from it, so contrast is decided once. */
html[data-mkt-family] {
  --school-hero-bg: var(--school-paper);
  --mkt-personality-accent: var(--school-green);
  --mkt-personality-accent-ink: var(--school-green);
  --mkt-personality-accent-soft: color-mix(in srgb, var(--school-green) 10%, transparent);
  --mkt-personality-hero-wash: linear-gradient(var(--school-hero-bg), var(--school-hero-bg));
  --fam-accent: var(--mkt-personality-accent);
}
/* register: ruled notebook paper, blue rules, red margin */
html[data-mkt-family="register"] {
  --mkt-personality-accent: var(--school-red);
  --mkt-personality-accent-ink: var(--school-red);
  --mkt-personality-accent-soft: color-mix(in srgb, var(--school-red) 10%, transparent);
  --fam-hero-image:
    linear-gradient(90deg, transparent calc(3.25rem - 1px), var(--school-margin) calc(3.25rem - 1px), var(--school-margin) 3.25rem, transparent 3.25rem),
    repeating-linear-gradient(180deg, transparent 0, transparent 1.9rem, var(--school-ruled) 1.9rem, var(--school-ruled) calc(1.9rem + 1px));
}
/* ledger: accountant's green paper */
html[data-mkt-family="ledger"] { --school-hero-bg: color-mix(in srgb, var(--school-ledger) 60%, var(--school-paper)); }
/* report: manila card stock, gold-inked stamp */
html[data-mkt-family="report"] {
  --school-hero-bg: var(--school-manila);
  --mkt-personality-accent: var(--school-gold);
  --mkt-personality-accent-ink: var(--school-gold);
  --mkt-personality-accent-soft: color-mix(in srgb, var(--school-gold) 12%, transparent);
}
/* day: morning paper with a highlighter rule */
html[data-mkt-family="day"] { --school-hero-bg: linear-gradient(180deg, var(--school-paper), var(--school-manila)); --mkt-personality-hero-wash: var(--school-hero-bg); }
/* door: a manila folder */
html[data-mkt-family="door"] {
  --school-hero-bg: var(--school-manila);
  --mkt-personality-accent: var(--school-brown);
  --mkt-personality-accent-ink: var(--school-brown);
  --mkt-personality-accent-soft: color-mix(in srgb, var(--school-brown) 12%, transparent);
}
/* signal: graph paper */
html[data-mkt-family="signal"] {
  --mkt-personality-accent: var(--school-blue);
  --mkt-personality-accent-ink: var(--school-blue);
  --mkt-personality-accent-soft: color-mix(in srgb, var(--school-blue) 10%, transparent);
  --fam-hero-image:
    linear-gradient(var(--school-ruled) 1px, transparent 1px) 0 0 / 1.75rem 1.75rem,
    linear-gradient(90deg, var(--school-ruled) 1px, transparent 1px) 0 0 / 1.75rem 1.75rem;
}
/* shield: a seal on plain paper */
html[data-mkt-family="shield"] { --school-hero-bg: var(--school-paper); }
/* shelf and role: warm desk materials */
html[data-mkt-family="shelf"] { --school-hero-bg: var(--school-manila); --mkt-personality-accent: var(--school-brown); --mkt-personality-accent-ink: var(--school-brown); --mkt-personality-accent-soft: color-mix(in srgb, var(--school-brown) 12%, transparent); }
html[data-mkt-family="role"] { --mkt-personality-accent: var(--school-red); --mkt-personality-accent-ink: var(--school-red); --mkt-personality-accent-soft: color-mix(in srgb, var(--school-red) 10%, transparent); }
html[data-mkt-family="school"] { --school-hero-bg: linear-gradient(180deg, var(--school-paper), var(--school-manila)); --mkt-personality-hero-wash: var(--school-hero-bg); --mkt-personality-accent: var(--school-gold); --mkt-personality-accent-ink: var(--school-gold); --mkt-personality-accent-soft: color-mix(in srgb, var(--school-gold) 12%, transparent); }
/* chalkboard families keep their dark console/slab; only the lit accent changes */
html[data-mkt-family="terminal"],
html[data-mkt-family="matrix"],
html[data-mkt-family="blueprint"] {
  --mkt-personality-accent: var(--school-highlighter);
  --mkt-personality-accent-ink: var(--school-highlighter);
  --mkt-personality-accent-soft: color-mix(in srgb, var(--school-highlighter) 14%, transparent);
}
/* the highlighter: every section headline keeps one marked word-width rule, the school-desk signature */
body.marketing-surface .mkt-v3-section-headline::after,
body.marketing-surface .mkt-edt-section-headline::after {
  content: "";
  display: block;
  inline-size: 3.25rem;
  block-size: 0.3rem;
  margin-block-start: 0.6rem;
  border-radius: 0.15rem;
  background: var(--school-highlighter);
}
body.marketing-surface .mkt-shot .mkt-v3-section-headline::after,
body.marketing-surface .mkt-proof-block .mkt-v3-section-headline::after { margin-inline: auto; }
/* the console family is a chalkboard: its white type needs the dark fill the paper default would otherwise cover */
html[data-mkt-family="terminal"] { --school-hero-bg: var(--school-chalkboard); }
/* dark theme: a hero is filled with the dark paper token, so its type must be chalk (it inherited dark page ink and vanished) */
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-personality-hero, .mkt-v3-archetype__hero, .mkt-v3-page__hero, .mkt-inst-hero) :is(h1, h2, h3, p, li, .mkt-v3-eyebrow, .mkt-v3-lead, .mkt-edt-eyebrow) {
  color: var(--school-chalk) !important; /* the critical stylesheet's ink net is !important; this is the one case it must lose */
}

/* ── Dark theme, region by region (2026-10-29) ─────────────────────────────
   Marketing had no dark layer: components kept light-theme ink on dark fills. Measured with a per-element contrast probe
   (77 failures on the homepage), then closed region by region. `!important` only where the critical ink net is `!important`. */
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface {
  --mkt-surface: var(--school-paper);
  --mkt-edt-bg: var(--school-paper);
  --mkt-edt-bg-soft: var(--school-manila);
  --mkt-ink: var(--school-ink);
  --mkt-edt-ink: var(--school-ink);
  --mkt-ink-2: var(--school-ink-muted);
  --mkt-edt-ink-muted: var(--school-ink-muted);
  --mkt-edt-ink-subtle: var(--school-ink-muted);
  --mkt-text: var(--school-ink);
  --mkt-text-muted: var(--school-ink-muted);
  --mkt-tile: var(--school-tile);
}
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(
  .mkt-or__chapter-time, .mkt-or__chapter-body) { color: var(--school-ink-muted) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(
  .mkt-or__chapter-title, .mkt-or__title, .mkt-or__hero-demo, .mkt-or__hero-demo :is(p, li, span, h2, h3, button, label)) { color: var(--school-ink) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-or__hero-demo { background: var(--school-tile); }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(
  .mkt-footer, .mkt-footer-gateway, .mkt-footer-proof-stack, .mkt-footer-route-stack, .mkt-footer-grid) :is(h2, h3, p, span, strong, li, label, small, a:not(.mkt-edt-cta)) { color: var(--school-ink) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-footer-eyebrow, .mkt-footer-proof-card__meta, .mkt-footer-route-stack span) { color: var(--school-ink-muted) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-footer button:not([class*="subscribe"]):not([type="submit"]) { color: var(--school-ink) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-edt-cta--primary, a.mkt-edt-cta:not(.mkt-edt-cta--ghost)) { color: var(--school-chalkboard) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-or__hero-actions, .mkt-or__finale-actions) .mkt-edt-cta { color: var(--school-chalkboard) !important; }

/* dark: main-content text follows the ink tokens (the critical sheet's !important ink net pins a light-theme brown) */
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface main :is(p, li, td, th, dd, dt, small, label, .small, .section-lead, .mkt-v3-lead) { color: var(--school-ink-muted) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface main :is(h1, h2, h3, h4, strong, th) { color: var(--school-ink) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-edt-cta, .mkt-edt-cta--ghost) { color: var(--school-chalkboard) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface a.link-secondary { color: var(--school-ink-muted) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-personality-viz :is(.mkt-personality-viz__metric, .mkt-personality-viz__chart-wrap) { background: var(--school-tile); }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-personality-viz :is(.mkt-personality-viz__metric-value, .mkt-personality-viz__eyebrow) { color: var(--school-ink) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-personality-viz__metric-label { color: var(--school-ink-muted) !important; }
/* the chalkboard families: gold is the lit chalk inside the dark hero only; on the light page it is green (gold on paper is 1.7:1) */
html[data-mkt-family="terminal"],
html[data-mkt-family="matrix"],
html[data-mkt-family="blueprint"] {
  --mkt-personality-accent: var(--school-green);
  --mkt-personality-accent-ink: var(--school-green);
  --mkt-personality-accent-soft: color-mix(in srgb, var(--school-green) 12%, transparent);
}
html[data-mkt-family="terminal"] :is(.mkt-personality-hero, .mkt-v3-archetype__hero, .mkt-v3-page__hero),
html[data-mkt-family="matrix"] :is(.mkt-personality-hero, .mkt-v3-archetype__hero, .mkt-v3-page__hero),
html[data-mkt-family="blueprint"] :is(.mkt-personality-hero, .mkt-v3-archetype__hero, .mkt-v3-page__hero) {
  --mkt-personality-accent: var(--school-highlighter);
  --mkt-personality-accent-ink: var(--school-highlighter);
}
/* matrix: the slab is a chalkboard in both themes (it was filled with the page ink, which is chalk in dark) */
html[data-mkt-family="matrix"] .marketing-surface :is(.mkt-personality-hero, .mkt-v3-archetype__hero, .mkt-v3-page__hero, .mkt-inst-hero) { background-color: var(--school-chalkboard); color: var(--school-chalk); }
html[data-mkt-family="matrix"] .marketing-surface :is(.mkt-personality-hero, .mkt-v3-archetype__hero) :is(.mkt-v3-section-headline, .mkt-v3-lead, .mkt-personality-hero__eyebrow, .mkt-v3-eyebrow) { color: var(--school-chalk); }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-personality-viz__metric-delta { color: var(--school-gold) !important; }

/* dark: trust-centre cards, tables and chips were hard-white; migrate chips and admissions steps kept light-theme ink */
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-trust-brief-card, .mkt-trust-regulatory-card, .mkt-trust-proof-badge, .mkt-trust-evidence-chip) { background: var(--school-tile) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface main table :is(td, th) { background-color: var(--school-tile); }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-trust-proof-badge__label, .mkt-trust-proof-badge__value) { color: var(--school-ink) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-trust-blocking { color: var(--school-red) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-edt-link { color: var(--school-green) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .proof-chip { color: var(--school-blue) !important; }
html body.marketing-surface .proof-chip { color: var(--school-blue); }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-lane-admissions__step-btn { color: var(--school-ink) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.page-stack, article, section, .container) :is(p, small, a.small, .lead, .text-uppercase) { color: var(--school-ink-muted) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface :is(.mkt-trust-evidence-chip, p.lead) { color: var(--school-ink-muted) !important; }

/* ── Homepage: the day as a bell-schedule timetable on ruled paper (replaces the five-column rail) ── */
body.marketing-surface .mkt-day { max-width: 960px; margin-inline: auto; }
body.marketing-surface .mkt-day__steps {
  display: grid; grid-template-columns: 1fr; gap: 0; margin: 1.25rem 0 0; padding: 0; list-style: none; counter-reset: none;
  background-color: var(--school-tile);
  background-image: linear-gradient(90deg, transparent calc(6.25rem - 1px), var(--school-margin) calc(6.25rem - 1px), var(--school-margin) 6.25rem, transparent 6.25rem);
  border: 1px solid var(--school-ruled); border-radius: 0.75rem; overflow: hidden;
}
body.marketing-surface .mkt-day__step {
  display: grid; grid-template-columns: 6.25rem minmax(7rem, 11rem) 1fr; align-items: baseline; column-gap: 1rem;
  padding: 0.95rem 1.25rem 0.95rem 0; border: 0; border-block-end: 1px solid var(--school-ruled); counter-increment: none;
}
body.marketing-surface .mkt-day__step:last-child { border-block-end: 0; }
body.marketing-surface .mkt-day__step::before { content: none; }
body.marketing-surface .mkt-day__time {
  padding-inline-start: 1.25rem; font-family: var(--fam-mono); font-variant-numeric: tabular-nums; font-weight: 700; font-size: 0.95rem; color: var(--school-red);
}
body.marketing-surface .mkt-day__name { font-size: 1.05rem; font-weight: 700; }
body.marketing-surface .mkt-day__detail { grid-column: 3; opacity: 1; color: var(--school-ink-muted); }
@media (max-width: 720px) {
  body.marketing-surface .mkt-day__steps { background-image: linear-gradient(90deg, transparent calc(4.5rem - 1px), var(--school-margin) calc(4.5rem - 1px), var(--school-margin) 4.5rem, transparent 4.5rem); }
  body.marketing-surface .mkt-day__step { grid-template-columns: 4.5rem 1fr; row-gap: 0.15rem; }
  body.marketing-surface .mkt-day__time { padding-inline-start: 0.75rem; font-size: 0.85rem; grid-row: 1 / span 2; }
  body.marketing-surface .mkt-day__detail { grid-column: 2; }
}

/* ── Homepage lower half: labels read as labels, the story nav is a pill group ── */
body.marketing-surface .mkt-footer-proof-card__metric {
  font-family: var(--fam-sans); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.2;
  color: var(--school-green); padding-block-end: 0.35rem; margin-block-end: 0.5rem; border-block-end: 3px solid var(--school-highlighter); display: inline-block;
}
body.marketing-surface .mkt-footer-proof-card__label { font-size: 1.05rem; font-weight: 700; }
body.marketing-surface .mkt-personality-page__nav {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; padding-block: clamp(1.5rem, 4vw, 2.5rem);
}
body.marketing-surface .mkt-personality-page__nav-link {
  padding: 0.45rem 1rem; border-radius: 999px; border: 1px solid var(--school-ruled); background: var(--school-tile);
  color: var(--school-ink); font-weight: 600; font-size: 0.9rem; text-decoration: none;
}
body.marketing-surface .mkt-personality-page__nav-link:hover { border-color: var(--school-green); }
body.marketing-surface .mkt-personality-page__nav-link.is-active { background: var(--school-green); border-color: var(--school-green); color: var(--school-chalk) !important; }
html:is([data-theme="dark"], [data-theme="oled"]) body.marketing-surface .mkt-personality-page__nav-link.is-active { color: var(--school-chalkboard) !important; }

/* one paper under every page: the body gradient and the cool-white main area made sections alternate between two whites */
body.marketing-surface,
body.marketing-surface main.mkt-main { background-color: var(--school-paper); background-image: none; }
body.marketing-surface #main-content,
body.marketing-surface main.mkt-main.mkt-intent-home { background-color: var(--school-paper) !important; background-image: none !important; }

/* ── Pricing (2026-10-29): plans you can compare at a glance, cards instead of bare lists ── */
body.marketing-surface .mkt-v3-pricing-plans__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.25rem; align-items: stretch; }
body.marketing-surface .mkt-v3-pricing-plan {
  display: flex; flex-direction: column; padding: 1.5rem; background: var(--school-tile); border: 1px solid var(--school-ruled);
  border-top: 4px solid var(--school-green); border-radius: 0.75rem;
}
body.marketing-surface .mkt-v3-pricing-plan[data-mkt-plan="growth"] { border-top-color: var(--school-highlighter); box-shadow: 0 14px 36px color-mix(in srgb, var(--school-ink) 12%, transparent); }
body.marketing-surface .mkt-v3-pricing-plan__name { font-size: 1.4rem; font-weight: 700; margin: 0 0 0.25rem; }
body.marketing-surface .mkt-v3-pricing-plan__tagline { color: var(--school-ink-muted); margin: 0 0 1rem; }
body.marketing-surface .mkt-v3-pricing-plan__price {
  display: grid; gap: 0.15rem; margin: 0 0 1rem; padding: 0.85rem 1rem; background: var(--school-manila); border-radius: 0.5rem;
}
body.marketing-surface .mkt-v3-pricing-plan__price-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--school-ink-muted); }
body.marketing-surface .mkt-v3-pricing-plan__price-value { font-size: 1.05rem; font-weight: 700; }
body.marketing-surface .mkt-v3-pricing-plan__price-unit { font-size: 0.85rem; color: var(--school-ink-muted); }
body.marketing-surface .mkt-v3-pricing-plan > p:not([class]) { color: var(--school-ink-muted); font-size: 0.9rem; margin: 0 0 0.35rem; }
body.marketing-surface .mkt-v3-pricing-plan h4 {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--school-ink-muted); margin: 1.1rem 0 0.5rem;
}
body.marketing-surface .mkt-v3-pricing-plan ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
body.marketing-surface .mkt-v3-pricing-plan li { position: relative; padding-inline-start: 1.5rem; font-size: 0.95rem; }
body.marketing-surface .mkt-v3-pricing-plan li::before { position: absolute; inset-inline-start: 0; font-weight: 700; }
body.marketing-surface .mkt-v3-pricing-plan ul:nth-of-type(1) li::before { content: "✓"; color: var(--school-green); }
body.marketing-surface .mkt-v3-pricing-plan ul:nth-of-type(2) li::before { content: "+"; color: var(--school-gold); }
body.marketing-surface .mkt-v3-pricing-plan .mkt-edt-cta { margin-block-start: auto; align-self: stretch; text-align: center; }
body.marketing-surface .mkt-v3-pricing-plan ul:last-of-type { margin-block-end: 1.5rem; }

body.marketing-surface .mkt-v3-pricing-procurement,
body.marketing-surface .mkt-v3-pricing-addons { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; list-style: none; margin: 0 0 1rem; padding: 0; }
body.marketing-surface .mkt-v3-pricing-procurement li,
body.marketing-surface .mkt-v3-pricing-addons li,
body.marketing-surface .mkt-pricing-qa__item {
  background: var(--school-tile); border: 1px solid var(--school-ruled); border-inline-start: 4px solid var(--school-green); border-radius: 0.5rem; padding: 1rem 1.15rem;
}
body.marketing-surface .mkt-v3-pricing-addons li { display: grid; gap: 0.35rem; align-content: start; }
body.marketing-surface .mkt-v3-pricing-addons strong { font-size: 1.05rem; }
body.marketing-surface .mkt-v3-pricing-addons span { color: var(--school-ink-muted); }
body.marketing-surface .mkt-v3-pricing-procurement__links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
body.marketing-surface .mkt-v3-pricing-procurement__links [aria-hidden] { display: none; }
body.marketing-surface .mkt-v3-pricing-procurement__links a { padding: 0.4rem 0.9rem; border: 1px solid var(--school-ruled); border-radius: 999px; background: var(--school-tile); font-weight: 600; text-decoration: none; }
body.marketing-surface .mkt-pricing-qa { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; margin: 0; }
body.marketing-surface .mkt-pricing-qa dt { font-weight: 700; margin: 0 0 0.35rem; }
body.marketing-surface .mkt-pricing-qa dd { margin: 0; color: var(--school-ink-muted); }

body.marketing-surface .mkt-v3-pricing-matrix { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--school-tile); border: 1px solid var(--school-ruled); border-radius: 0.5rem; overflow: hidden; }
body.marketing-surface .mkt-v3-pricing-matrix thead th { background: var(--school-manila); font-size: 0.85rem; font-weight: 700; padding: 0.75rem 0.9rem; text-align: center; }
body.marketing-surface .mkt-v3-pricing-matrix thead th:first-child, body.marketing-surface .mkt-v3-pricing-matrix tbody th { text-align: start; }
body.marketing-surface .mkt-v3-pricing-matrix tbody th { font-weight: 600; padding: 0.7rem 0.9rem; }
body.marketing-surface .mkt-v3-pricing-matrix td { text-align: center; padding: 0.7rem 0.9rem; font-size: 1.05rem; font-weight: 600; }
body.marketing-surface .mkt-v3-pricing-matrix :is(td, th) { border-block-end: 1px solid var(--school-ruled); }
body.marketing-surface .mkt-v3-pricing-matrix tbody tr:last-child :is(td, th) { border-block-end: 0; }
body.marketing-surface .mkt-v3-pricing-matrix :is(td, th):nth-child(3) { background: color-mix(in srgb, var(--school-highlighter) 14%, transparent); }
body.marketing-surface .mkt-v3-pricing-matrix td:nth-child(n+2) { color: var(--school-green); }
body.marketing-surface .mkt-page-type-pricing .mkt-v3-page__section-grid { display: block; }
body.marketing-surface .mkt-v3-pricing-procurement__links { flex-direction: row; align-items: center; }
body.marketing-surface .mkt-v3-pricing-procurement__links a { display: inline-block; inline-size: auto; flex: 0 0 auto; }
body.marketing-surface #main-content .mkt-v3-pricing-addons { margin-inline: 0; padding-inline: 0; }
@media (max-width: 640px) {
  body.marketing-surface .mkt-v3-pricing-matrix thead th,
  body.marketing-surface .mkt-v3-pricing-matrix tbody th,
  body.marketing-surface .mkt-v3-pricing-matrix td { padding: 0.55rem 0.4rem; font-size: 0.8rem; }
  body.marketing-surface .mkt-v3-pricing-matrix tbody th { min-inline-size: 0; }
  body.marketing-surface #main-content .mkt-v3-pricing-matrix { min-width: 0; table-layout: fixed; }
  body.marketing-surface .mkt-v3-pricing-matrix tbody th { inline-size: 42%; }
  body.marketing-surface #main-content .mkt-v3-pricing-matrix :is(th, td) { overflow-wrap: normal; word-break: normal; hyphens: none; }
}

/* Local first · global next: three numbered cards on one baseline instead of three small floating boxes */
body.marketing-surface .mkt-local-first { padding-block: clamp(2rem, 5vw, 3.5rem); }
body.marketing-surface .mkt-local-first__header { max-width: 46rem; margin-block-end: 1.5rem; }
body.marketing-surface .mkt-local-first__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; counter-reset: lf; }
body.marketing-surface .mkt-local-first__grid > article {
  counter-increment: lf; position: relative; padding: 1.25rem 1.25rem 1.25rem 1.25rem; background: var(--school-tile);
  border: 1px solid var(--school-ruled); border-top: 4px solid var(--school-green); border-radius: 0.5rem;
}
body.marketing-surface .mkt-local-first__grid > article::before {
  content: counter(lf, decimal-leading-zero); display: block; font-family: var(--fam-mono); font-size: 0.8rem; font-weight: 700; color: var(--school-gold); margin-block-end: 0.5rem;
}
body.marketing-surface .mkt-local-first__grid > article h3 { font-size: 1.1rem; font-weight: 700; margin: 0 0 0.4rem; }
body.marketing-surface .mkt-local-first__grid > article p { font-size: 0.95rem; color: var(--school-ink-muted); }

/* ── Platform hub (2026-10-29): a module map from real module data, no mock dashboards or invented metrics ── */
body.marketing-surface .mkt-module-map { padding-block: clamp(2rem, 5vw, 3.5rem); }
body.marketing-surface .mkt-module-map__grid { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; }
body.marketing-surface .mkt-module-map__card {
  display: flex; flex-direction: column; gap: 0.5rem; padding: 1.25rem; background: var(--school-tile);
  border: 1px solid var(--school-ruled); border-top: 4px solid var(--school-blue); border-radius: 0.5rem;
}
body.marketing-surface .mkt-module-map__index { font-family: var(--fam-mono); font-size: 0.8rem; font-weight: 700; color: var(--school-gold); }
body.marketing-surface .mkt-module-map__name { font-size: 1.2rem; font-weight: 700; margin: 0; }
body.marketing-surface .mkt-module-map__lead { margin: 0; color: var(--school-ink-muted); }
body.marketing-surface .mkt-module-map__bullets { list-style: none; margin: 0.25rem 0 0.75rem; padding: 0; display: grid; gap: 0.35rem; font-size: 0.92rem; }
body.marketing-surface .mkt-module-map__bullets li { position: relative; padding-inline-start: 1.25rem; }
body.marketing-surface .mkt-module-map__bullets li::before { content: "✓"; position: absolute; inset-inline-start: 0; font-weight: 700; color: var(--school-green); }
body.marketing-surface .mkt-module-map__card .mkt-edt-link { margin-block-start: auto; font-weight: 600; }

/* ── Platform pages: the "wins" list is three cards, and a sample visual says it is a sample ── */
body.marketing-surface .mkt-v3-archetype__wins ul { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; }
body.marketing-surface .mkt-v3-archetype__wins li {
  position: relative; padding: 1rem 1.15rem 1rem 2.6rem; background: var(--school-tile); border: 1px solid var(--school-ruled); border-radius: 0.5rem;
}
body.marketing-surface .mkt-v3-archetype__wins li::before { content: "✓"; position: absolute; inset-inline-start: 1rem; inset-block-start: 1rem; font-weight: 700; color: var(--school-green); }
body.marketing-surface .mkt-sample-caption { margin-block: 0.5rem 1.5rem; font-size: 0.85rem; color: var(--school-ink-muted); text-align: center; }

/* Platform flow: numbered steps replacing the archetype diagrams */
.mkt-flow { padding-block: 2rem; }
.mkt-flow__list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr)); }
.mkt-flow__step { display: grid; gap: 0.35rem; align-content: start; padding: 1rem 1.1rem; background: var(--school-tile); border: 1px solid var(--school-ruled); border-top: 3px solid var(--school-green); border-radius: 0.5rem; color: var(--school-ink); }
.mkt-flow__step span:last-child { color: var(--school-ink-muted); font-size: 0.9375rem; }
.mkt-flow__n { font: 700 0.8125rem/1 var(--font-mono, monospace); color: var(--school-green); }
html:is([data-theme="dark"],[data-theme="oled"]) body.marketing-surface .mkt-tour__seg--on,
html:is([data-theme="dark"],[data-theme="oled"]) body.marketing-surface .mkt-tour__send { color: var(--school-chalkboard) !important; }

/* Capability ledger + related-module links on the thin platform pages */
.mkt-ledger { padding-block: 2rem 1rem; }
.mkt-ledger__title, .mkt-ledger-next__title { font-size: 1.25rem; margin: 0 0 1rem; color: var(--school-ink); }
.mkt-ledger__rows { list-style: none; margin: 0; padding: 0; background: var(--school-tile); border: 1px solid var(--school-ruled); border-inline-start: 3px solid var(--school-margin); border-radius: 0.5rem; }
.mkt-ledger__row { display: grid; grid-template-columns: 2.5rem minmax(10rem, 16rem) 1fr; gap: 0.25rem 1rem; align-items: baseline; padding: 1rem 1.25rem; border-bottom: 1px solid var(--school-ruled); }
.mkt-ledger__row:last-child { border-bottom: 0; }
.mkt-ledger__n { font: 700 0.8125rem/1 var(--font-mono, monospace); color: var(--school-green); }
.mkt-ledger__name { margin: 0; font-size: 1.0625rem; color: var(--school-ink); }
.mkt-ledger__body { margin: 0; color: var(--school-ink-muted); }
.mkt-ledger-next { padding-block: 1.5rem 2.5rem; }
.mkt-ledger-next__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.mkt-ledger-next__list a { display: inline-block; padding: 0.6rem 1rem; border: 1px solid var(--school-ruled); border-radius: 999px; background: var(--school-tile); color: var(--school-green); font-weight: 600; text-decoration: none; }
@media (max-width: 40rem) { .mkt-ledger__row { grid-template-columns: 2rem 1fr; } .mkt-ledger__body { grid-column: 2; } }
html[data-mkt-family="terminal"] body.marketing-surface .mkt-v3-archetype__hero .mkt-edt-link { color: var(--school-chalk) !important; text-decoration: underline; }

/* Admissions: stage rail, before/after sheets, pills */
.mkt-adm2__lead { color: var(--school-ink-muted); margin: 0 0 1rem; max-inline-size: 46rem; }
.mkt-adm2__pills { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.mkt-adm2__pills li { padding: 0.25rem 0.7rem; border: 1px solid var(--school-ruled); border-radius: 999px; background: var(--school-tile); color: var(--school-ink-muted); font-size: 0.8125rem; }
.mkt-adm2__stages, .mkt-adm2__ba { padding-block: 2rem 1rem; }
.mkt-adm2__stages h2, .mkt-adm2__ba h2 { margin: 0 0 0.5rem; color: var(--school-ink); }
.mkt-adm2__rail { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); }
.mkt-adm2__rail li { display: grid; gap: 0.35rem; align-content: start; padding: 1rem 1.1rem; background: var(--school-tile); border: 1px solid var(--school-ruled); border-top: 3px solid var(--school-green); border-radius: 0.5rem; color: var(--school-ink); }
.mkt-adm2__rail li span:last-child { color: var(--school-ink-muted); font-size: 0.9375rem; }
.mkt-adm2__n { font: 700 0.8125rem/1 var(--font-mono, monospace); color: var(--school-green); }
.mkt-adm2__ba-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr)); }
.mkt-adm2__sheet { padding: 1.25rem 1.5rem; background: var(--school-tile); border: 1px solid var(--school-ruled); border-inline-start: 4px solid var(--school-red); border-radius: 0.5rem; color: var(--school-ink); }
.mkt-adm2__sheet--after { border-inline-start-color: var(--school-green); }
.mkt-adm2__sheet h3 { margin: 0 0 0.5rem; font-size: 1.0625rem; color: var(--school-ink); }
.mkt-adm2__sheet ul { margin: 0; padding-inline-start: 1.1rem; display: grid; gap: 0.4rem; color: var(--school-ink); }
.mkt-adm2__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; padding-block: 1.5rem 3rem; }
.mkt-tour__sample { color: var(--school-ink-muted); font-style: italic; }
.mkt-adm2__sheet--before { border-inline-start-color: var(--school-red); }
.mkt-fin { display: block; }
.mkt-adm2 { display: block; min-inline-size: 0; }

/* Footer: five compact columns instead of a four-column grid plus a long stray list */
.mkt-corporate-footer .mkt-footer-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.5rem 1.25rem; padding-block: 1.5rem; border-top: 1px solid var(--school-ruled); }
.mkt-corporate-footer .mkt-footer-links { gap: 0; }
.mkt-corporate-footer .mkt-footer-links a { min-height: 1.75rem; font-size: 0.875rem; }
.mkt-corporate-footer .mkt-footer-section h3 { padding-bottom: 0.4rem; margin-bottom: 0.4rem; border-bottom: 1px solid var(--school-ruled); }
@media (max-width: 62rem) { .mkt-corporate-footer .mkt-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 40rem) { .mkt-corporate-footer .mkt-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mkt-or__chapter-points { list-style: none; margin: 0.75rem 0 0.5rem; padding: 0; display: grid; gap: 0.4rem; }
.mkt-or__chapter-points li { position: relative; padding-inline-start: 1.25rem; color: var(--school-ink); font-size: 0.9375rem; }
.mkt-or__chapter-points li::before { content: "✓"; position: absolute; inset-inline-start: 0; color: var(--school-green); font-weight: 700; }
