/* Schologists design system: components v2.0 (November 2026)
   Load tokens.css first (or use dist/schologists.css, which is both).

   One rule makes everything work: wrap each page in <div class="sch-page">.
   It is the size container, so components respond to the page width with
   container queries. The same markup is then right on a phone, in a canvas
   frame and on a desktop, with no media queries to keep in sync.

   Breakpoints (page width): 1100 · 980 · 760 · 520
   Naming: .sch-block, .sch-block__part, .sch-block--variant. Never style
   by element inside someone else's block. Never hard-code a hex: use tokens. */

/* ------------------------------------------------------------ 1. Base */
/* The page fills the window edge to edge: no browser margin around it */
:where(html, body) { margin: 0; padding: 0; }
:where(body) { background: var(--sch-bg); }

.sch-page {
  container: page / inline-size;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--sch-bg);
  color: var(--sch-text);
  font-family: var(--sch-font-sans);
  font-size: var(--sch-text-body);
  font-weight: 400;
  line-height: 1.65;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
.sch-page > main { flex: 1 0 auto; } /* short pages keep the footer at the bottom */
:where(.sch-page) *, :where(.sch-page) *::before, :where(.sch-page) *::after { box-sizing: border-box; }
/* Anything scrolled into view (anchors, Tab and Shift+Tab, form validation) stops below the sticky header */
:root:has(.sch-header) { scroll-padding-top: var(--sch-header-offset); }
:where(.sch-page) :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote, fieldset, legend) { margin: 0; padding: 0; }
:where(.sch-page) :where(fieldset) { border: 0; min-width: 0; }
:where(.sch-page) :where(ul[role="list"], ol[role="list"]) { list-style: none; }
:where(.sch-page) :where(img, svg, video) { display: block; max-width: 100%; }
:where(.sch-page) :where(img) { height: auto; }
:where(.sch-page) :where(a) { color: var(--sch-link); text-decoration-thickness: 1px; text-underline-offset: 0.22em; transition: color var(--sch-dur) var(--sch-ease); }
:where(.sch-page) :where(a:hover) { color: var(--sch-link-hover); }
:where(.sch-page) :where(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.sch-page) :where(strong, b) { font-weight: 600; }
:where(.sch-page) :focus-visible { outline: 3px solid var(--sch-focus); outline-offset: 3px; border-radius: 4px; }
:where(.sch-page) ::selection { background: var(--sch-yellow); color: var(--sch-black); }

.sch-skip { position: absolute; z-index: 100; left: 16px; top: -120px; padding: 12px 20px; border-radius: var(--sch-radius-pill); background: var(--sch-yellow); color: var(--sch-black); font-weight: 600; text-decoration: none; }
.sch-skip:focus { top: 16px; }
.sch-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Placeholder for anything Sam still has to confirm. Search for "sch-todo" before launch. */
.sch-todo { padding: 0 0.3em; border-radius: 4px; background: var(--sch-yellow-100); color: var(--sch-yellow-900); outline: 1.5px dashed var(--sch-yellow-700); outline-offset: 0; font-style: normal; font-weight: 500; }

/* ------------------------------------------------------------ 2. Layout */
.sch-container { width: 100%; max-width: calc(var(--sch-container) + 2 * var(--sch-gutter)); margin-inline: auto; padding-inline: var(--sch-gutter); }
.sch-container--narrow { max-width: calc(840px + 2 * var(--sch-gutter)); }
.sch-section { position: relative; padding-block: var(--sch-section-y); overflow: clip; }
.sch-section--tight { padding-block: calc(var(--sch-section-y) * 0.6); }
.sch-section--flush-top { padding-top: 0; }
.sch-section--paper { background: var(--sch-paper); }
.sch-section--tint { background: var(--sch-accent-tint); }
.sch-section--yellow { background: var(--sch-yellow); --sch-mark: var(--sch-black); --sch-eyebrow: var(--sch-black); --sch-link: var(--sch-black); --sch-link-hover: var(--sch-blue-900); --sch-text-2: var(--sch-ink); --sch-text-muted: var(--sch-ink-2); color: var(--sch-text); }

/* Dark grounds: re-point the semantic tokens and every component follows */
.sch-section--navy, .sch-section--blue, .sch-section--night, .sch-on-dark {
  --sch-text: var(--sch-paper); --sch-text-2: #D1DDE6; --sch-text-muted: #B8C6D3; --sch-heading: var(--sch-white);
  --sch-eyebrow: var(--sch-yellow); --sch-link: var(--sch-yellow); --sch-link-hover: var(--sch-white);
  --sch-primary: var(--sch-yellow); --sch-primary-hover: var(--sch-yellow-300); --sch-on-primary: var(--sch-black);
  --sch-primary-tint: rgba(255, 255, 255, 0.1); --sch-border: rgba(255, 255, 255, 0.2); --sch-focus: var(--sch-yellow);
  --sch-surface: rgba(255, 255, 255, 0.06); --sch-field-border: #8BA3BA;
  --sch-accent-text: var(--sch-yellow); --sch-accent-tint: rgba(255, 255, 255, 0.08);
  color: var(--sch-text);
}
.sch-section--navy { background: var(--sch-navy); }
.sch-section--blue { background: var(--sch-blue); }
.sch-section--night { background: var(--sch-night); }

.sch-stack { display: flex; flex-direction: column; gap: var(--sch-gap, var(--sch-space-6)); }
.sch-stack--s { --sch-gap: var(--sch-space-3); }
.sch-stack--l { --sch-gap: var(--sch-space-12); }
.sch-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sch-gap, var(--sch-space-3)); }
.sch-grid { display: grid; gap: var(--sch-gap, clamp(16px, 2cqi, 28px)); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--sch-min, 260px)), 1fr)); }
.sch-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sch-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sch-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sch-split { display: grid; gap: var(--sch-gap, clamp(32px, 6cqi, 96px)); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
.sch-split--top { align-items: start; }
.sch-split--wide-left { grid-template-columns: 1.25fr 1fr; }
.sch-split--wide-right { grid-template-columns: 1fr 1.25fr; }
.sch-head { display: flex; flex-direction: column; gap: var(--sch-space-4); max-width: 760px; margin-bottom: clamp(32px, 4.5cqi, 64px); }
.sch-head--centre { margin-inline: auto; text-align: center; align-items: center; }
.sch-head--row { max-width: none; flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sch-space-6); }
.sch-head--row > :first-child { max-width: 720px; }

@container page (max-width: 61.1875rem) {
  .sch-page .sch-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sch-page .sch-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container page (max-width: 47.4375rem) {
  .sch-page .sch-split { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-grid--2, .sch-page .sch-grid--3 { grid-template-columns: minmax(0, 1fr); }
}
@container page (max-width: 32.4375rem) {
  .sch-page .sch-grid--4 { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------ 3. Type */
.sch-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: var(--sch-font-sans); font-size: 0.8125rem; font-weight: 600; line-height: 1.3; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sch-eyebrow); }
.sch-eyebrow::before { content: ""; flex: none; width: 8px; height: 16px; border-radius: 8px 0 0 8px; background: var(--sch-mark); }
.sch-eyebrow--plain::before { display: none; }
.sch-display, .sch-h1, .sch-h2 { overflow-wrap: break-word; font-family: var(--sch-font-display); font-weight: 400; color: var(--sch-heading); letter-spacing: -0.015em; font-optical-sizing: auto; text-wrap: balance; }
.sch-display { font-size: var(--sch-text-display); line-height: 0.98; letter-spacing: -0.022em; }
.sch-h1 { font-size: var(--sch-text-h1); line-height: 1.02; letter-spacing: -0.02em; }
.sch-h2 { font-size: var(--sch-text-h2); line-height: 1.06; }
.sch-display em, .sch-h1 em, .sch-h2 em, .sch-strap, .sch-and { font-family: var(--sch-font-strap); font-style: italic; font-weight: 400; letter-spacing: -0.01em; }
.sch-h3 { font-family: var(--sch-font-sans); font-size: var(--sch-text-h3); font-weight: 600; line-height: 1.3; letter-spacing: -0.005em; color: var(--sch-heading); }
.sch-h4 { font-size: 1.0625rem; font-weight: 600; line-height: 1.4; color: var(--sch-heading); }
.sch-strap { font-size: var(--sch-text-strap); line-height: 1.3; color: var(--sch-text-2); text-wrap: balance; }
.sch-lead { max-width: 62ch; font-size: var(--sch-text-lead); line-height: 1.55; color: var(--sch-text-2); text-wrap: pretty; }
.sch-small { font-size: var(--sch-text-small); line-height: 1.55; }
.sch-caption { font-size: var(--sch-text-caption); line-height: 1.5; color: var(--sch-text-muted); }
.sch-accent { color: var(--sch-accent-text); }
.sch-prose { max-width: 68ch; text-wrap: pretty; }
.sch-prose > * + * { margin-top: 1em; }
.sch-prose ul, .sch-prose ol { padding-left: 1.25em; }
.sch-prose li + li { margin-top: 0.4em; }

/* ------------------------------------------------------------ 4. Buttons and links */
.sch-btn {
  --_bg: var(--sch-primary); --_fg: var(--sch-on-primary); --_bd: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 8px 24px; border: 1.5px solid var(--_bd); border-radius: var(--sch-radius-pill);
  background: var(--_bg); color: var(--_fg);
  font-family: var(--sch-font-sans); font-size: 1rem; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none; text-wrap: balance; cursor: pointer;
  transition: background-color var(--sch-dur) var(--sch-ease), color var(--sch-dur) var(--sch-ease), border-color var(--sch-dur) var(--sch-ease);
}
.sch-btn:hover { --_bg: var(--sch-primary-hover); color: var(--_fg); }
.sch-btn svg, .sch-link svg { flex: none; width: 18px; height: 18px; transition: transform var(--sch-dur) var(--sch-ease); }
.sch-btn:hover svg, .sch-link:hover svg { transform: translateX(3px); }
.sch-btn--secondary { --_bg: transparent; --_fg: var(--sch-heading); --_bd: currentColor; }
.sch-btn--secondary:hover { --_bg: var(--sch-primary-tint); }
.sch-btn--yellow { --_bg: var(--sch-yellow); --_fg: var(--sch-black); }
.sch-btn--yellow:hover { --_bg: var(--sch-yellow-300); }
.sch-btn--ink { --_bg: var(--sch-ink); --_fg: var(--sch-white); }
.sch-btn--ink:hover { --_bg: var(--sch-black); }
.sch-btn--veyra { --_bg: var(--vey-purple-deep); --_fg: var(--sch-white); }
.sch-btn--veyra:hover { --_bg: #5B3283; }
.sch-btn--cream { --_bg: var(--vey-cream); --_fg: var(--vey-ink); }
.sch-btn--cream:hover { --_bg: var(--sch-white); }
.sch-btn--small { min-height: 44px; padding: 0 18px; font-size: 0.9375rem; }
.sch-btn--block { width: 100%; }
.sch-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; color: var(--sch-link); text-decoration: none; }
.sch-link:hover { color: var(--sch-link-hover); }
.sch-link--accent { color: var(--sch-accent-text); }

/* Chips: labels, never links */
.sch-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 30px; padding: 0 12px; border-radius: var(--sch-radius-pill); background: var(--sch-accent-tint); color: var(--sch-ink); font-size: 0.8125rem; font-weight: 500; line-height: 1.2; }
.sch-chip--line { background: transparent; box-shadow: inset 0 0 0 1px var(--sch-border); color: var(--sch-text-2); }

/* ------------------------------------------------------------ 5. Pieces (the logo, taken apart) */
.sch-piece { flex: none; display: inline-block; }
.sch-piece--half-l { width: 0.6em; height: 1.2em; border-radius: 0.6em 0 0 0.6em; background: var(--sch-yellow); }
.sch-piece--half-r { width: 0.6em; height: 1.2em; border-radius: 0 0.6em 0.6em 0; background: var(--sch-green); }
.sch-piece--circle { width: 0.75em; height: 0.75em; border-radius: 50%; background: var(--sch-ink); }
.sch-piece--arrow { width: 0.8em; height: 0.8em; background: var(--sch-red); clip-path: polygon(0 0, 100% 0, 0 100%); }
.sch-on-dark .sch-piece--circle, .sch-section--navy .sch-piece--circle, .sch-section--blue .sch-piece--circle, .sch-section--night .sch-piece--circle { background: var(--sch-white); }
.sch-puzzle { pointer-events: none; }
.sch-i { fill: none; stroke: currentColor; stroke-width: 1.8px; stroke-linecap: round; stroke-linejoin: round; }
.sch-puzzle path, .sch-puzzle circle { fill: none; stroke-width: 2px; vector-effect: non-scaling-stroke; }
.sch-puzzle .p-yellow { stroke: var(--sch-yellow); }
.sch-puzzle .p-circle { stroke: currentColor; }
.sch-puzzle .p-green { stroke: var(--sch-green); }
.sch-puzzle .p-red { stroke: var(--sch-red); }

/* ------------------------------------------------------------ 6. Media: arches and duotones */
.sch-arch { position: relative; overflow: hidden; border-radius: 999px 999px 0 0; aspect-ratio: var(--sch-ratio, 4 / 5); }
.sch-arch > img { width: 100%; height: 100%; object-fit: cover; }
.sch-arch--round { border-radius: 999px 999px var(--sch-radius-lg) var(--sch-radius-lg); }
.sch-duo { --_light: var(--duo-blue-light); --_dark: var(--duo-blue-dark); position: relative; isolation: isolate; overflow: hidden; background: var(--_light); }
.sch-duo > img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.15); mix-blend-mode: multiply; }
.sch-duo::after { content: ""; position: absolute; inset: 0; background: var(--_dark); mix-blend-mode: lighten; pointer-events: none; }
.sch-duo--blue { --_light: var(--duo-blue-light); --_dark: var(--duo-blue-dark); }
.sch-duo--green { --_light: var(--duo-green-light); --_dark: var(--duo-green-dark); }
.sch-duo--yellow { --_light: var(--duo-yellow-light); --_dark: var(--duo-yellow-dark); }
.sch-duo--red { --_light: var(--duo-red-light); --_dark: var(--duo-red-dark); }
.sch-duo--navy { --_light: var(--duo-navy-light); --_dark: var(--duo-navy-dark); }
.sch-placeholder { display: grid; place-items: center; padding: 24px; background: repeating-linear-gradient(135deg, var(--sch-paper) 0 14px, var(--sch-paper-2) 14px 28px); color: var(--sch-muted); font-size: 0.875rem; font-weight: 500; text-align: center; }

/* ------------------------------------------------------------ 7. Header and menu */
/* One header on every page except the landing page. It sticks to the top, and its purple Veyra button
   keeps Veyra one click away at any scroll position. Under 1100px the nav folds into the menu. */
.sch-header { position: sticky; top: 0; z-index: 30; background: var(--sch-bg); border-bottom: 1px solid var(--sch-border); }
.sch-header__inner { display: flex; align-items: center; gap: 28px; min-height: 76px; }
.sch-header__logo { flex: none; display: block; }
.sch-header__logo img { width: auto; height: 38px; }
.sch-nav { margin-left: auto; }
.sch-nav ul { display: flex; gap: clamp(16px, 1.9cqi, 28px); margin: 0; padding: 0; list-style: none; }
.sch-nav a { display: block; padding-block: 8px; color: var(--sch-text); font-size: 0.9688rem; font-weight: 500; text-decoration: none; white-space: nowrap; background: linear-gradient(var(--sch-accent), var(--sch-accent)) 0 100% / 0 2px no-repeat; transition: background-size var(--sch-dur) var(--sch-ease), color var(--sch-dur); }
.sch-nav a:hover, .sch-nav a[aria-current="page"] { color: var(--sch-heading); background-size: 100% 2px; }
.sch-header__veyra { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--sch-radius-pill); background: var(--vey-purple-deep); color: var(--sch-white); font-size: 0.9375rem; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background-color var(--sch-dur) var(--sch-ease); --sch-focus: var(--vey-purple-deep); }
.sch-header__veyra:hover { background: var(--vey-ink); color: var(--sch-white); }
.sch-header__veyra svg { width: 15px; height: 15px; }
.sch-menu { display: none; }
.sch-menu > summary { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px; border: 1.5px solid var(--sch-border); border-radius: var(--sch-radius-pill); font-weight: 600; cursor: pointer; list-style: none; }
.sch-menu > summary::-webkit-details-marker { display: none; }
.sch-menu > summary svg { width: 18px; height: 18px; }
.sch-menu[open] > summary { background: var(--sch-ink); border-color: var(--sch-ink); color: var(--sch-white); }
.sch-menu__panel { position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100dvh - 64px); overflow-y: auto; padding: 4px var(--sch-gutter) 28px; background: var(--sch-bg); border-bottom: 1px solid var(--sch-border); box-shadow: var(--sch-shadow-soft); }
.sch-menu__panel ul { margin: 0; padding: 0; list-style: none; }
.sch-menu__panel li a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; border-bottom: 1px solid var(--sch-line-soft); color: var(--sch-heading); font-family: var(--sch-font-display); font-size: 1.625rem; line-height: 1.1; text-decoration: none; }
.sch-menu__panel li a small { font-family: var(--sch-font-sans); font-size: 0.8125rem; font-weight: 500; color: var(--sch-text-muted); }
.sch-menu__panel li a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.18em; }
.sch-menu__panel .sch-btn { margin-top: 20px; width: 100%; }
/* Veyra leads the phone menu, in its own colours */
.sch-menu__veyra { display: flex; align-items: center; gap: 14px; margin: 14px 0 6px; padding: 14px 18px; border-radius: var(--sch-radius-lg); background: var(--vey-purple); color: var(--sch-white); text-decoration: none; --sch-focus: var(--vey-purple-deep); }
.sch-menu__veyra img { flex: none; width: auto; height: 26px; }
.sch-menu__veyra span { flex: 1; color: var(--vey-cream); font-size: 0.9375rem; font-weight: 500; line-height: 1.35; }
.sch-menu__veyra svg { flex: none; width: 18px; height: 18px; }
.sch-menu__veyra:hover { background: var(--vey-purple-deep); color: var(--sch-white); }
.sch-menu__login { display: flex; justify-content: flex-end; align-items: center; gap: 6px; margin: 0 0 6px; color: var(--sch-text-muted); font-size: 0.9375rem; }
.sch-menu__login a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 4px; color: var(--vey-purple-deep); font-weight: 600; }
@container page (max-width: 77.4375rem) { /* longer service names (Sam, 9 Nov 2026): the full nav needs about 1240px */
  .sch-page .sch-nav { display: none; }
  .sch-page .sch-header__veyra { margin-left: auto; min-height: 44px; padding: 0 16px; }
  .sch-page .sch-menu { display: block; }
  .sch-page .sch-header__inner { min-height: 64px; gap: 10px; }
  .sch-page .sch-header__logo img { height: 30px; }
}
@container page (max-width: 32.4375rem) {
  .sch-page .sch-header__veyra-long { display: none; }
}
@container page (max-width: 26.1875rem) {
  .sch-page .sch-menu__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .sch-page .sch-menu > summary { padding: 0 12px; }
}

/* ------------------------------------------------------------ 8. Hero */
.sch-hero { position: relative; padding-block: clamp(32px, min(7cqi, 7svh), 112px) clamp(48px, 6cqi, 96px); overflow: clip; }
.sch-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(32px, 6cqi, 96px); align-items: center; }
.sch-hero__text { display: flex; flex-direction: column; gap: var(--sch-space-6); }
.sch-hero__text .sch-lead { margin-top: 4px; }
.sch-hero__media { position: relative; }
.sch-hero__media .sch-arch { --sch-ratio: 5 / 6; }
.sch-hero__puzzle { position: absolute; z-index: 1; color: var(--sch-ink); }
.sch-hero--home { padding-block: clamp(40px, 5cqi, 80px) clamp(24px, 3cqi, 40px); }
.sch-hero--home .sch-hero__puzzle { right: calc(var(--sch-gutter) * -0.5); top: -40px; height: clamp(260px, 34cqi, 520px); width: auto; opacity: 0.9; }
.sch-hero--home .sch-container { position: relative; }
.sch-home-intro { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 22px; max-width: min(1000px, calc(100% - 26cqi)); } /* keeps the intro clear of the puzzle */
.sch-home-intro .sch-display { max-width: 16ch; }
.sch-doors-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; margin: clamp(36px, 4.5cqi, 64px) 0 22px; padding-top: 18px; border-top: 1px solid var(--sch-border); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-hero__media { max-width: 420px; }
  .sch-page .sch-hero__media .sch-arch { --sch-ratio: 4 / 3; }
  .sch-page .sch-hero--home .sch-hero__puzzle { height: 150px; top: -12px; right: -56px; opacity: 0.6; }
  .sch-page .sch-home-intro { max-width: none; }
}

/* Schologists home hero: the line on navy with the outline puzzle, as on the share card.
   Add .sch-on-dark to the section so text, links and buttons switch to their dark versions. */
.sch-hero--brand { background: var(--sch-navy); }
.sch-hero--brand .sch-hero__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr); }
.sch-hero--brand .sch-display { max-width: 15ch; }
.sch-hero--brand .sch-display em { color: var(--sch-yellow); }
.sch-hero__art { justify-self: end; width: auto; height: clamp(240px, 30cqi, 420px); color: var(--sch-white); }
.sch-hero--brand + .sch-proof { border-top: 1px solid rgba(255, 255, 255, 0.14); }
.sch-hero--brand { padding-block: clamp(32px, min(4.5cqi, 5.5svh), 72px); }
.sch-hero--brand .sch-hero__text { gap: 16px; }
.sch-hero--brand .sch-display { max-width: 22ch; font-size: clamp(2.375rem, min(4.6cqi, 7svh), 4rem); }
.sch-hero--brand .sch-hero__art { height: clamp(180px, 20cqi, 300px); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-hero--brand .sch-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-hero__art { display: none; }
}

/* ------------------------------------------------------------ 9a. Landing page: two doors, Veyra first */
.sch-gate__top { padding-block: 10px; }
.sch-gate__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; }
.sch-gate__brand { flex: none; display: block; }
.sch-gate__brand img { width: auto; height: 40px; }
.sch-gate__links { display: flex; gap: 22px; }
.sch-gate__links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sch-text); font-size: 0.9688rem; font-weight: 500; text-decoration: none; }
.sch-gate__links a:hover { color: var(--sch-heading); text-decoration: underline; }
.sch-gate__links .sch-gate__login { padding-inline: 14px; border-radius: var(--sch-radius-pill); box-shadow: inset 0 0 0 1.5px var(--vey-purple-deep); color: var(--vey-purple-deep); font-weight: 600; --sch-focus: var(--vey-purple-deep); }
.sch-gate__links .sch-gate__login:hover { background: var(--vey-purple-deep); color: var(--sch-white); text-decoration: none; }
.sch-gate__foot nav { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.sch-gate__foot nav a { display: inline-flex; align-items: center; min-height: 32px; }
.sch-gate__main { padding-block: clamp(4px, 1.5svh, 32px) clamp(48px, 6cqi, 88px); }
.sch-gate__intro { display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 780px; margin: 0 auto clamp(16px, 3svh, 48px); text-align: center; }
.sch-gate__intro .sch-h1 { font-size: clamp(1.875rem, min(4.2cqi, 6svh), 3.5rem); }
.sch-gate__intro .sch-lead { max-width: 52ch; }
.sch-gate__doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.4cqi, 32px); max-width: 1080px; margin-inline: auto; }
.sch-gate__door {
  --_bg: var(--sch-navy); --_sub: var(--sch-yellow);
  position: relative; isolation: isolate; display: flex; flex-direction: column; overflow: hidden;
  border-radius: 999px 999px var(--sch-radius-xl) var(--sch-radius-xl); background: var(--_bg); color: var(--sch-white);
  transition: transform var(--sch-dur-slow) var(--sch-ease), box-shadow var(--sch-dur-slow) var(--sch-ease);
}
.sch-gate__door:hover { transform: translateY(-4px); box-shadow: var(--sch-shadow-soft); }
.sch-gate__door--veyra { --_bg: var(--vey-purple); --_sub: var(--vey-cream); --sch-focus: var(--vey-cream); }
.sch-gate__door--sch { --_bg: var(--sch-navy); --_sub: var(--sch-yellow); --sch-focus: var(--sch-yellow); }
.sch-gate__media { position: relative; height: clamp(96px, 22svh, 262px); overflow: hidden; }
.sch-gate__media > img { width: 100%; height: 100%; object-fit: cover; }
.sch-gate__body { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 10px; padding: clamp(16px, 2.4svh, 34px) clamp(20px, 3cqi, 44px) clamp(18px, 2.6svh, 40px); text-align: center; }
.sch-gate__who { color: var(--_sub); font-size: 0.75rem; font-weight: 600; line-height: 1.4; letter-spacing: 0.14em; text-transform: uppercase; }
.sch-gate__name { color: var(--sch-white); font-family: var(--sch-font-display); font-size: clamp(2.25rem, 3.6cqi, 3.25rem); font-weight: 400; line-height: 1; letter-spacing: -0.02em; }
.sch-gate__name img { width: auto; height: clamp(40px, 4cqi, 54px); margin-inline: auto; }
.sch-gate__line { max-width: 34ch; color: var(--sch-white); font-size: clamp(1rem, 1.3cqi, 1.125rem); line-height: 1.5; }
.sch-gate__go { margin-top: auto; }
.sch-gate__go::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* the whole door is the link */
.sch-gate__more { position: relative; z-index: 2; display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 18px; font-size: 0.9375rem; }
.sch-gate__more a { display: inline-flex; align-items: center; min-height: 44px; color: var(--_sub); font-weight: 500; text-underline-offset: 0.22em; }
.sch-gate__more a:hover { color: var(--sch-white); }
.sch-gate__proof { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; max-width: 1080px; margin: clamp(32px, 4cqi, 56px) auto 0; padding: 0; list-style: none; color: var(--sch-text-2); font-size: 0.875rem; font-weight: 500; line-height: 1.4; }
.sch-gate__proof > li { display: inline-flex; align-items: center; gap: 10px; }
.sch-gate__proof .sch-piece { font-size: 0.875rem; }
.sch-gate__foot { padding-block: 22px 30px; border-top: 1px solid var(--sch-border); color: var(--sch-text-muted); font-size: 0.8125rem; line-height: 1.5; }
.sch-gate__foot .sch-container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; }
.sch-gate__foot a { color: var(--sch-text-muted); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-gate__doors { grid-template-columns: minmax(0, 1fr); max-width: 520px; }
  .sch-page .sch-gate__proof { flex-direction: column; align-items: flex-start; max-width: 520px; }
}
@container page (max-width: 32.4375rem) {
  .sch-page .sch-gate__links { gap: 14px; }
  .sch-page .sch-gate__brand img { height: 32px; }
}

/* ------------------------------------------------------------ 9b. Services: the four doors of Schologists' own work */
.sch-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2cqi, 28px); margin: 0; padding: 0; list-style: none; }
.sch-services > li { display: flex; min-width: 0; }
.sch-service {
  --_c: var(--sch-blue); --_t: var(--sch-blue);
  display: flex; flex: 1; flex-direction: column; overflow: hidden;
  border-radius: 999px 999px var(--sch-radius-xl) var(--sch-radius-xl); background: var(--sch-white); box-shadow: inset 0 0 0 1px var(--sch-border);
  color: var(--sch-text); text-decoration: none;
  transition: transform var(--sch-dur-slow) var(--sch-ease), box-shadow var(--sch-dur-slow) var(--sch-ease);
}
.sch-service:hover { color: var(--sch-text); transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--sch-border), var(--sch-shadow-soft); }
.sch-service__media { flex: none; aspect-ratio: 3 / 2; overflow: hidden; }
.sch-service__media > img { width: 100%; height: 100%; object-fit: cover; }
.sch-service__body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 20px 22px 24px; }
.sch-service__who { display: flex; align-items: flex-start; gap: 8px; min-height: 2.7em; color: var(--_t); font-size: 0.75rem; font-weight: 600; line-height: 1.35; letter-spacing: 0.14em; text-transform: uppercase; }
.sch-service__who::before { content: ""; flex: none; width: 10px; height: 10px; margin-top: 0.15em; border-radius: 50%; background: var(--_c); }
.sch-service__name { color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(1.625rem, 2.2cqi, 2rem); line-height: 1.05; letter-spacing: -0.015em; }
.sch-service__line { color: var(--sch-text-2); font-size: 0.9688rem; line-height: 1.5; }
.sch-service__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 12px; color: var(--sch-heading); font-size: 0.9375rem; font-weight: 600; }
.sch-service__go svg { width: 17px; height: 17px; transition: transform var(--sch-dur) var(--sch-ease); }
.sch-service:hover .sch-service__go svg { transform: translateX(4px); }
.sch-service--blue { --_c: var(--sch-blue); --_t: var(--sch-blue); }
.sch-service--green { --_c: var(--sch-green); --_t: var(--sch-green-700); }
.sch-service--red { --_c: var(--sch-red); --_t: var(--sch-red-700); }
.sch-service--yellow { --_c: var(--sch-yellow); --_t: var(--sch-yellow-700); }
@container page (max-width: 68.6875rem) {
  .sch-page .sch-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sch-page .sch-service__media { aspect-ratio: 5 / 2; }
}
@container page (max-width: 34.9375rem) {
  .sch-page .sch-services { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .sch-page .sch-service { flex-direction: row; align-items: stretch; border-radius: var(--sch-radius-lg); }
  .sch-page .sch-service__media { width: 84px; margin: 12px 0 12px 12px; aspect-ratio: auto; border-radius: 999px 999px 10px 10px; }
  .sch-page .sch-service__who { min-height: 0; }
  .sch-page .sch-service__body { gap: 6px; padding: 16px 18px 18px; }
  .sch-page .sch-service__name { font-size: 1.5rem; }
  .sch-page .sch-service__line { font-size: 0.9063rem; }
  .sch-page .sch-service__go { padding-top: 6px; }
}

/* Founder card, beside "who we are" */
.sch-founder { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3cqi, 40px); border-radius: var(--sch-radius-xl); background: var(--sch-white); box-shadow: inset 0 0 0 1px var(--sch-border); }
.sch-founder__name { color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(1.75rem, 2.6cqi, 2.5rem); font-weight: 400; line-height: 1.05; letter-spacing: -0.015em; }
.sch-founder .sch-person__path { margin: 4px 0 2px; }
.sch-founder .sch-person__path li { grid-template-columns: 116px minmax(0, 1fr); }
.sch-founder .sch-person__path b { font-size: 1.25rem; }
@container page (max-width: 32.4375rem) {
  .sch-page .sch-founder .sch-person__path li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ------------------------------------------------------------ 9. Doors: route first */
.sch-doors { display: grid; grid-template-columns: minmax(0, 1.32fr) repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.4cqi, 20px); margin: 0; padding: 0; list-style: none; }
.sch-doors > li { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.sch-door {
  --_bg: var(--sch-blue); --_fg: var(--sch-white); --_sub: var(--sch-blue-200); --_go: var(--sch-yellow);
  display: flex; flex: 1; flex-direction: column; color: var(--_fg); text-decoration: none;
  transition: transform var(--sch-dur-slow) var(--sch-ease), filter var(--sch-dur-slow) var(--sch-ease);
}
.sch-door:hover { color: var(--_fg); transform: translateY(-4px); filter: drop-shadow(0 16px 24px rgba(18, 48, 76, 0.22)); }
.sch-door__arch { position: relative; height: clamp(170px, 18cqi, 270px); border-radius: 999px 999px 0 0; overflow: hidden; }
.sch-door__arch > img { width: 100%; height: 100%; object-fit: cover; }
.sch-door__body { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 18px 20px 20px; border-radius: 0 0 var(--sch-radius-lg) var(--sch-radius-lg); background: var(--_bg); }
.sch-door__who { color: var(--_sub); font-size: 0.75rem; font-weight: 600; line-height: 1.35; letter-spacing: 0.14em; text-transform: uppercase; }
.sch-door__name { color: var(--_fg); font-family: var(--sch-font-display); font-size: clamp(1.625rem, 2.3cqi, 2.25rem); line-height: 1.02; letter-spacing: -0.015em; }
.sch-door__logo { align-self: flex-start; width: auto; height: clamp(28px, 2.7cqi, 40px); margin-block: 4px 2px; }
.sch-door__line { color: var(--_fg); font-size: 0.9375rem; line-height: 1.45; }
.sch-door__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 14px; color: var(--_go); font-size: 0.9375rem; font-weight: 600; }
.sch-door__go svg { width: 17px; height: 17px; transition: transform var(--sch-dur) var(--sch-ease); }
.sch-door:hover .sch-door__go svg { transform: translateX(4px); }
.sch-door__login { align-self: flex-start; font-size: 0.9375rem; font-weight: 500; }
.sch-door--veyra { --_bg: var(--vey-purple); --_fg: var(--sch-white); --_sub: var(--vey-cream); --_go: var(--vey-cream); }
.sch-door--blue { --_bg: var(--sch-blue); --_fg: var(--sch-white); --_sub: var(--sch-blue-200); --_go: var(--sch-yellow); }
.sch-door--green { --_bg: var(--sch-green); --_fg: var(--sch-ink); --_sub: var(--sch-green-900); --_go: var(--sch-ink); }
.sch-door--red { --_bg: var(--sch-red-700); --_fg: var(--sch-white); --_sub: var(--sch-red-50); --_go: var(--sch-white); }
.sch-door--yellow { --_bg: var(--sch-yellow); --_fg: var(--sch-ink); --_sub: var(--sch-yellow-900); --_go: var(--sch-ink); }
@container page (max-width: 68.6875rem) {
  .sch-page .sch-doors { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sch-page .sch-doors__veyra { grid-column: 1 / -1; }
  .sch-page .sch-doors__veyra .sch-door__arch { height: clamp(150px, 22cqi, 240px); }
  .sch-page .sch-doors__veyra .sch-door__body { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 24px; }
  .sch-page .sch-doors__veyra .sch-door__who { flex-basis: 100%; }
  .sch-page .sch-doors__veyra .sch-door__go { margin-top: 0; padding-top: 0; margin-left: auto; }
}
@container page (max-width: 47.4375rem) {
  .sch-page .sch-doors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sch-page .sch-door__arch { height: clamp(112px, 30cqi, 190px); }
  .sch-page .sch-doors__veyra .sch-door__arch { height: clamp(130px, 34cqi, 220px); }
  .sch-page .sch-door__body { padding: 14px 14px 16px; }
  .sch-page .sch-door__name { font-size: 1.5rem; }
  .sch-page .sch-door__line { font-size: 0.875rem; }
}
@container page (max-width: 32.4375rem) {
  .sch-page .sch-hero--home .sch-hero__puzzle { display: none; }
  .sch-page .sch-doors__veyra .sch-door__body { flex-direction: column; flex-wrap: nowrap; align-items: flex-start; }
  .sch-page .sch-doors__veyra .sch-door__who { flex-basis: auto; }
  .sch-page .sch-doors__veyra .sch-door__go { margin-left: 0; padding-top: 8px; }
  .sch-page .sch-doors > li:not(.sch-doors__veyra) .sch-door__line { display: none; }
}

/* ------------------------------------------------------------ 10. Proof strip (claims register only) */
.sch-proof { background: var(--sch-navy); color: var(--sch-paper); }
.sch-proof__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 auto; padding-block: 26px; list-style: none; }
.sch-proof__list > li { display: flex; align-items: center; gap: 14px; padding: 6px 24px; font-size: 0.9375rem; font-weight: 500; line-height: 1.4; }
.sch-proof__list > li + li { border-left: 1px solid rgba(255, 255, 255, 0.2); }
.sch-proof__list > li:first-child { padding-left: 0; }
.sch-proof .sch-piece { font-size: 1.25rem; }
.sch-proof .sch-piece--circle { background: var(--sch-white); }
@container page (max-width: 68.6875rem) {
  .sch-page .sch-proof__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 14px; }
  .sch-page .sch-proof__list > li:nth-child(odd) { padding-left: 0; border-left: 0; }
}
@container page (max-width: 32.4375rem) {
  .sch-page .sch-proof__list { grid-template-columns: minmax(0, 1fr); padding-block: 22px; }
  .sch-page .sch-proof__list > li { padding: 4px 0; border-left: 0; }
}

/* ------------------------------------------------------------ 11. The idea: two halves, one whole */
.sch-halves { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sch-halves__half { display: flex; flex-direction: column; justify-content: center; gap: 14px; min-height: clamp(260px, 26cqi, 380px); padding: clamp(28px, 4cqi, 56px) clamp(56px, 8cqi, 128px); }
.sch-halves__half--scholarly { border-radius: 999px 0 0 999px; background: var(--sch-blue); color: var(--sch-white); padding-right: clamp(64px, 7cqi, 112px); }
.sch-halves__half--psychologist { border-radius: 0 999px 999px 0; background: var(--sch-yellow); color: var(--sch-black); padding-left: clamp(64px, 7cqi, 112px); }
.sch-halves__word { font-family: var(--sch-font-display); font-size: clamp(2.5rem, 5.6cqi, 5.25rem); line-height: 0.95; letter-spacing: -0.02em; }
.sch-halves__def { max-width: 30ch; font-size: clamp(1rem, 1.35cqi, 1.1875rem); line-height: 1.5; }
.sch-halves__half--scholarly .sch-halves__def { color: #D1DDE6; }
.sch-halves__and { position: absolute; left: 50%; top: 50%; z-index: 1; display: grid; place-items: center; width: clamp(88px, 10cqi, 148px); aspect-ratio: 1; border-radius: 50%; background: var(--sch-white); color: var(--sch-ink); box-shadow: 0 0 0 clamp(6px, 0.8cqi, 12px) var(--sch-bg); font-family: var(--sch-font-strap); font-size: clamp(2rem, 3.6cqi, 3.5rem); font-style: italic; transform: translate(-50%, -50%); }
.sch-halves__whole { margin-top: clamp(28px, 4cqi, 52px); text-align: center; }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-halves { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-halves__half { min-height: 0; padding: 40px 28px; align-items: center; text-align: center; }
  .sch-page .sch-halves__half--scholarly { border-radius: 200px 200px 0 0; padding-top: 64px; padding-bottom: 64px; }
  .sch-page .sch-halves__half--psychologist { border-radius: 0 0 200px 200px; padding-top: 64px; padding-bottom: 72px; }
}

.sch-story { display: flex; flex-direction: column; align-items: center; gap: 28px; margin-top: clamp(40px, 5cqi, 72px); text-align: center; }
.sch-story > .sch-strap { font-size: clamp(2rem, 4cqi, 3.25rem); color: var(--sch-heading); }
.sch-story__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4cqi, 64px); max-width: 1080px; text-align: left; }
@container page (max-width: 47.4375rem) { .sch-page .sch-story__cols { grid-template-columns: minmax(0, 1fr); } }

/* ------------------------------------------------------------ 12. Numbered lists: mission, offers, steps */
.sch-mission { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto auto; column-gap: clamp(20px, 3cqi, 48px); margin: 0; padding: 0; list-style: none; }
.sch-mission > li { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 12px; align-content: start; padding-top: 22px; border-top: 1px solid var(--sch-border); }
.sch-mission .sch-piece { font-size: 2.25rem; margin-bottom: 6px; }
:where(.sch-mission h3) { font-family: var(--sch-font-display); font-size: clamp(1.625rem, 2.3cqi, 2.125rem); font-weight: 400; line-height: 1.05; letter-spacing: -0.015em; color: var(--sch-heading); }
:where(.sch-mission p) { color: var(--sch-text-2); }
@container page (max-width: 47.4375rem) { .sch-page .sch-mission { grid-template-columns: minmax(0, 1fr); row-gap: 28px; } }

.sch-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.8cqi, 24px); margin: 0; padding: 0; list-style: none; counter-reset: o; }
.sch-offer { position: relative; display: flex; flex-direction: column; gap: 10px; padding: clamp(24px, 3cqi, 36px); border-radius: var(--sch-radius-xl); background: var(--sch-surface); box-shadow: inset 0 0 0 1px var(--sch-border); counter-increment: o; }
.sch-offer::before { content: counter(o, decimal-leading-zero); font-family: var(--sch-font-display); font-size: clamp(2.5rem, 3.6cqi, 3.5rem); line-height: 1; color: var(--sch-accent-text); }
:where(.sch-offer h3) { font-size: var(--sch-text-h3); font-weight: 600; line-height: 1.3; color: var(--sch-heading); }
:where(.sch-offer p) { color: var(--sch-text-2); }
.sch-offer .sch-caption { margin-top: auto; padding-top: 8px; }
.sch-offers--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@container page (max-width: 61.1875rem) { .sch-page .sch-offers--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container page (max-width: 47.4375rem) { .sch-page .sch-offers, .sch-page .sch-offers--3 { grid-template-columns: minmax(0, 1fr); } }

.sch-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.sch-steps::before { content: ""; position: absolute; left: 12%; right: 12%; top: clamp(44px, 5cqi, 64px); border-top: 2px dashed var(--sch-border); }
.sch-steps > li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.sch-steps__dot { display: grid; place-items: center; width: clamp(88px, 10cqi, 128px); aspect-ratio: 1; border-radius: 50%; background: var(--_c, var(--sch-yellow)); color: var(--_t, var(--sch-black)); font-family: var(--sch-font-display); font-size: clamp(1.5rem, 2.2cqi, 2rem); }
.sch-steps > li:nth-child(1) { --_c: var(--sch-yellow); }
.sch-steps > li:nth-child(2) { --_c: var(--sch-green); }
.sch-steps > li:nth-child(3) { --_c: var(--sch-blue); --_t: var(--sch-white); }
.sch-steps > li:nth-child(4) { --_c: var(--sch-red-700); --_t: var(--sch-white); }
.sch-steps p { max-width: 24ch; font-size: var(--sch-text-small); color: var(--sch-text-2); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .sch-page .sch-steps::before { display: none; }
}

/* ------------------------------------------------------------ 13. Cards */
.sch-card { display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 2.6cqi, 32px); border-radius: var(--sch-radius-xl); background: var(--sch-surface); box-shadow: inset 0 0 0 1px var(--sch-border); color: var(--sch-text); }
.sch-card--paper { background: var(--sch-paper); box-shadow: none; }
.sch-card--tint { background: var(--sch-accent-tint); box-shadow: none; }
.sch-card--navy { background: var(--sch-navy); box-shadow: none; }
.sch-card--veyra { background: var(--vey-purple); box-shadow: none; color: var(--sch-white); --sch-heading: var(--sch-white); --sch-text-2: var(--sch-white); --sch-link: var(--vey-cream); --sch-link-hover: var(--sch-white); --sch-focus: var(--vey-cream); }
.sch-card__title { font-family: var(--sch-font-display); font-size: clamp(1.75rem, 2.5cqi, 2.375rem); font-weight: 400; line-height: 1.05; letter-spacing: -0.015em; color: var(--sch-heading); }
:where(.sch-card h3) { font-size: 1.25rem; font-weight: 600; line-height: 1.3; color: var(--sch-heading); }
:where(.sch-card p) { color: var(--sch-text-2); }
a.sch-card { text-decoration: none; transition: transform var(--sch-dur-slow) var(--sch-ease), box-shadow var(--sch-dur-slow) var(--sch-ease); }
a.sch-card:hover { color: var(--sch-text); transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--sch-border), var(--sch-shadow-soft); }
.sch-card__icon { font-size: 1.75rem; }
.sch-card > img { align-self: flex-start; }

/* Evidence: a finding with its source, always from the claims register */
.sch-evidence { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3cqi, 36px); border-radius: var(--sch-radius-xl); background: var(--sch-paper); }
.sch-evidence__label { display: flex; align-items: center; gap: 10px; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sch-accent-text); }
.sch-evidence__finding { font-family: var(--sch-font-display); font-size: clamp(1.375rem, 1.9cqi, 1.75rem); line-height: 1.12; letter-spacing: -0.01em; color: var(--sch-heading); text-wrap: balance; }
.sch-evidence__points { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sch-evidence__points li { display: flex; gap: 10px; color: var(--sch-text-2); }
.sch-evidence__points li::before { content: ""; flex: none; width: 6px; height: 12px; margin-top: 0.55em; border-radius: 0 6px 6px 0; background: var(--sch-green); }
.sch-evidence__source { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--sch-border); font-size: var(--sch-text-caption); color: var(--sch-text-muted); }

/* Stat: only numbers in the claims register */
.sch-stat { display: flex; flex-direction: column; gap: 6px; }
.sch-stat__value { font-family: var(--sch-font-display); font-size: clamp(2.75rem, 5cqi, 4.5rem); line-height: 0.95; letter-spacing: -0.02em; color: var(--sch-accent-text); }
.sch-stat__label { max-width: 26ch; font-size: var(--sch-text-small); color: var(--sch-text-2); }

/* Quote: the human voice, in Garamond */
.sch-quote { position: relative; display: flex; flex-direction: column; gap: 18px; }
.sch-quote blockquote, .sch-quote__text { font-family: var(--sch-font-strap); font-size: clamp(1.625rem, 3cqi, 2.625rem); font-style: italic; line-height: 1.22; color: var(--sch-heading); text-wrap: balance; }
.sch-quote--centre { align-items: center; text-align: center; } /* a statement in the Garamond voice, with no attribution */
.sch-quote figcaption { display: flex; align-items: center; gap: 12px; font-size: var(--sch-text-small); color: var(--sch-text-2); }
.sch-quote figcaption b { color: var(--sch-heading); }

/* Lists of things done: talks, coverage, papers. Date, title, where. */
.sch-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--sch-border); }
.sch-list > li { display: grid; grid-template-columns: minmax(96px, 0.5fr) minmax(0, 2fr) minmax(0, 1.2fr); gap: 8px 28px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--sch-border); }
.sch-list__when { font-size: var(--sch-text-small); font-weight: 600; color: var(--sch-accent-text); font-variant-numeric: tabular-nums; }
.sch-list__what { font-size: 1.0625rem; font-weight: 500; line-height: 1.45; color: var(--sch-heading); }
.sch-list__where { font-size: var(--sch-text-small); color: var(--sch-text-muted); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-list > li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* Index: every door in one list, with its colour */
.sch-index { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--sch-border); }
.sch-index > li { border-bottom: 1px solid var(--sch-border); }
.sch-index a { --_c: var(--sch-blue); display: grid; grid-template-columns: 56px minmax(0, 1.1fr) minmax(0, 1.6fr) auto; gap: 8px 28px; align-items: center; padding: 22px 12px; color: var(--sch-text); text-decoration: none; transition: background-color var(--sch-dur) var(--sch-ease); }
.sch-index a:hover { background: var(--sch-paper); color: var(--sch-text); }
.sch-index__mark { width: 40px; height: 50px; border-radius: 999px 999px 6px 6px; background: var(--_c); }
.sch-index__name { font-family: var(--sch-font-display); font-size: clamp(1.625rem, 2.6cqi, 2.375rem); line-height: 1.05; letter-spacing: -0.015em; color: var(--sch-heading); }
.sch-index__name small { display: block; margin-top: 6px; font-family: var(--sch-font-sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sch-text-muted); }
.sch-index__line { color: var(--sch-text-2); }
.sch-index__go { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--sch-border); color: var(--sch-heading); transition: background-color var(--sch-dur), color var(--sch-dur), box-shadow var(--sch-dur); }
.sch-index__go svg { width: 18px; height: 18px; }
.sch-index a:hover .sch-index__go { background: var(--sch-ink); box-shadow: none; color: var(--sch-white); }
.sch-index--veyra { --_c: var(--vey-purple); }
.sch-index a.sch-index--veyra { --_c: var(--vey-purple); }
.sch-index a.sch-index--blue { --_c: var(--sch-blue); }
.sch-index a.sch-index--green { --_c: var(--sch-green); }
.sch-index a.sch-index--red { --_c: var(--sch-red-700); }
.sch-index a.sch-index--yellow { --_c: var(--sch-yellow); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-index a { grid-template-columns: 36px minmax(0, 1fr) auto; padding: 18px 4px; }
  .sch-page .sch-index__mark { width: 30px; height: 38px; }
  .sch-page .sch-index__line { grid-column: 2 / 3; grid-row: 2; font-size: var(--sch-text-small); }
  .sch-page .sch-index__go { grid-column: 3; grid-row: 1 / span 2; width: 44px; height: 44px; }
}

/* Founder or person */
.sch-person { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(28px, 5cqi, 80px); align-items: center; }
.sch-person__media { --sch-ratio: 4 / 5; }
.sch-person__path { display: flex; flex-direction: column; gap: 14px; margin: 8px 0 4px; padding: 0; list-style: none; }
.sch-person__path li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; align-items: baseline; padding-bottom: 14px; border-bottom: 1px solid var(--sch-border); }
.sch-person__path b { font-family: var(--sch-font-display); font-size: 1.5rem; font-weight: 400; color: var(--sch-heading); }
/* Until a real photo arrives, the arch carries the strapline. Never a stock photo in place of a real person. */
.sch-person__strap { order: -1; display: grid; place-items: center; padding: 22% 12% 14%; background: var(--sch-green); color: var(--sch-ink); font-family: var(--sch-font-strap); font-size: clamp(1.875rem, 3.8cqi, 3.25rem); font-style: italic; line-height: 1.12; letter-spacing: -0.01em; text-align: center; text-wrap: balance; }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-person { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-person__media { max-width: 360px; }
  .sch-page .sch-person__path li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .sch-page .sch-person__strap { --sch-ratio: 5 / 4; padding: 18% 10% 8%; }
}

/* Call to action band */

/* Notices: information that changes what someone does next */
.sch-notice { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; padding: 18px 22px; border-radius: var(--sch-radius-lg); background: var(--sch-blue-50); color: var(--sch-ink); }
.sch-notice p { flex: 1 1 260px; }
.sch-notice--veyra { background: var(--vey-purple-deep); color: var(--sch-white); --sch-link: var(--vey-cream); --sch-link-hover: var(--sch-white); --sch-focus: var(--vey-cream); }
.sch-notice--veyra a:not(.sch-btn) { font-weight: 600; }
.sch-notice--veyra b { color: var(--vey-cream); }
.sch-notice--todo { background: var(--sch-yellow-100); outline: 1.5px dashed var(--sch-yellow-700); }

/* Veyra band: Veyra in its own colours, never "Veyra by Schologists" */
.sch-veyra { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; border-radius: var(--sch-radius-xl); background: var(--vey-purple); color: var(--sch-white); --sch-heading: var(--sch-white); --sch-text-2: var(--sch-white); --sch-text-muted: var(--vey-cream); --sch-link: var(--vey-cream); --sch-link-hover: var(--sch-white); --sch-focus: var(--vey-cream); --sch-eyebrow: var(--vey-cream); --sch-mark: var(--vey-cream); --sch-primary-tint: rgba(255, 255, 255, 0.12); }
.sch-veyra__text { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: clamp(28px, 5cqi, 72px); }
.sch-veyra__logo { width: auto; height: clamp(36px, 4cqi, 56px); }
:where(.sch-veyra__text p) { max-width: 40ch; font-size: var(--sch-text-lead); line-height: 1.5; }
.sch-veyra__text .sch-caption { font-size: var(--sch-text-small); color: var(--vey-cream); }
.sch-veyra__text a:not(.sch-btn) { color: var(--vey-cream); }
.sch-veyra__text .sch-caption a { display: inline-flex; align-items: center; min-height: 44px; }
.sch-veyra__media { min-height: 280px; }
.sch-veyra__media img { width: 100%; height: 100%; object-fit: cover; }
@container page (max-width: 47.4375rem) { .sch-page .sch-veyra { grid-template-columns: minmax(0, 1fr); } }

/* ------------------------------------------------------------ 13b. Page parts */
.sch-hero__media .sch-hero__puzzle { right: clamp(-72px, -4cqi, -24px); bottom: -44px; height: 40%; width: auto; color: var(--sch-ink); }
.sch-hero--plain { padding-block: clamp(48px, 6cqi, 96px) clamp(16px, 2cqi, 32px); }
.sch-hero--compact { padding-block: clamp(32px, 4cqi, 64px) clamp(8px, 1.5cqi, 20px); }
.sch-hero--compact .sch-h1 { font-size: var(--sch-text-h2); }
.sch-hero--plain .sch-hero__text { max-width: 900px; }
.sch-book { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(20px, 3cqi, 44px); align-items: center; }
.sch-book__cover { display: flex; flex-direction: column; justify-content: space-between; width: clamp(128px, 13cqi, 184px); aspect-ratio: 2 / 3; padding: 18px 16px; border-radius: 3px 10px 10px 3px; background: var(--sch-navy); color: var(--sch-white); box-shadow: 0 18px 32px rgba(18, 48, 76, 0.28), inset 7px 0 0 rgba(255, 255, 255, 0.1); font-family: var(--sch-font-display); font-size: clamp(1.0625rem, 1.5cqi, 1.375rem); line-height: 1.05; }
.sch-book__cover small { font-family: var(--sch-font-sans); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sch-yellow); }
.sch-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: clamp(16px, 2cqi, 28px); margin: 0; padding: 0; list-style: none; }
.sch-people > li { display: flex; flex-direction: column; gap: 2px; }
.sch-avatar { display: grid; place-items: center; width: 100%; aspect-ratio: 1 / 1.05; margin-bottom: 14px; border-radius: 999px 999px var(--sch-radius-lg) var(--sch-radius-lg); background: var(--_c, var(--sch-blue-50)); color: var(--sch-ink); font-family: var(--sch-font-display); font-size: clamp(2.75rem, 4cqi, 3.75rem); }
:where(.sch-people b) { font-size: 1.125rem; font-weight: 600; color: var(--sch-heading); }
:where(.sch-people span) { font-size: var(--sch-text-small); color: var(--sch-text-muted); }
@container page (max-width: 32.4375rem) {
  .sch-page .sch-people > li { display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: 16px; align-items: center; }
  .sch-page .sch-avatar { grid-row: span 2; width: 72px; margin: 0; font-size: 1.375rem; }
}
.sch-toc ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sch-toc a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: var(--sch-radius-pill); box-shadow: inset 0 0 0 1.5px var(--sch-border); color: var(--sch-heading); font-size: var(--sch-text-small); font-weight: 600; text-decoration: none; }
.sch-toc a:hover { background: var(--sch-accent-tint); color: var(--sch-heading); }
.sch-contact { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(28px, 5cqi, 72px); align-items: start; }
/* On narrow pages the aside (Veyra card first) falls below the form, so this notice leads instead.
   It hides again once "School or trust" is chosen, because the form then shows its own Veyra notice. */
.sch-contact__veyra { display: none; }
@container page (max-width: 61.1875rem) {
  .sch-page .sch-contact__veyra { display: flex; }
  .sch-page .sch-contact:has(input[name="type"][value="school"]:checked) .sch-contact__veyra { display: none; }
}
.sch-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px 24px; margin: 0; }
.sch-facts dt { font-weight: 600; color: var(--sch-heading); }
.sch-facts dd { margin: 0; color: var(--sch-text-2); }
@container page (max-width: 61.1875rem) { .sch-page .sch-contact { grid-template-columns: minmax(0, 1fr); } }
@container page (max-width: 32.4375rem) {
  .sch-page .sch-book { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-facts { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .sch-page .sch-facts dd { margin-bottom: 10px; }
}

/* ------------------------------------------------------------ 14. Forms */
.sch-form { display: flex; flex-direction: column; gap: 26px; }
.sch-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 22px; }
.sch-form__full { grid-column: 1 / -1; }
.sch-field { display: flex; flex-direction: column; gap: 8px; }
.sch-label, .sch-field > legend { font-size: 0.9688rem; font-weight: 600; line-height: 1.35; color: var(--sch-heading); }
.sch-field > legend { margin-bottom: 12px; }
.sch-hint { margin-top: -4px; font-size: 0.875rem; color: var(--sch-text-muted); }
.sch-input, .sch-textarea, .sch-select { width: 100%; min-height: 50px; padding: 12px 14px; border: 1.5px solid var(--sch-field-border); border-radius: var(--sch-radius-md); background: var(--sch-bg); color: var(--sch-text); font-size: 1rem; line-height: 1.4; transition: border-color var(--sch-dur), box-shadow var(--sch-dur); }
.sch-textarea { min-height: 140px; resize: vertical; }
.sch-input:hover, .sch-textarea:hover, .sch-select:hover { border-color: var(--sch-text); }
.sch-input:focus-visible, .sch-textarea:focus-visible, .sch-select:focus-visible { outline: 3px solid var(--sch-focus); outline-offset: 1px; border-color: var(--sch-text); }
.sch-input[aria-invalid="true"] { border-color: var(--sch-error); }
.sch-error { display: flex; gap: 8px; align-items: center; font-size: 0.875rem; font-weight: 600; color: var(--sch-error); }
.sch-field__error { display: none; margin-top: 4px; }
.sch-field:has(:user-invalid) .sch-field__error { display: flex; }
.sch-input:user-invalid, .sch-textarea:user-invalid, .sch-select:user-invalid { border-color: var(--sch-error); border-width: 2px; }
.sch-field:has(input[type="radio"]:user-invalid) .sch-choice > span { box-shadow: inset 0 0 0 2px var(--sch-error); }
.sch-form__note { color: var(--sch-text-muted); font-size: var(--sch-text-small); }
.sch-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.sch-choice { position: relative; display: inline-flex; }
.sch-choice > input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.sch-choice > span { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px; border-radius: var(--sch-radius-pill); background: var(--sch-bg); box-shadow: inset 0 0 0 1.5px var(--sch-field-border); font-size: 0.9688rem; font-weight: 500; transition: background-color var(--sch-dur), color var(--sch-dur), box-shadow var(--sch-dur); }
.sch-choice > input:hover + span { box-shadow: inset 0 0 0 1.5px var(--sch-text); }
.sch-choice > input:checked + span { background: var(--sch-ink); color: var(--sch-white); box-shadow: none; }
.sch-choice > input:focus-visible + span { outline: 3px solid var(--sch-focus); outline-offset: 2px; }
.sch-choice .sch-piece { font-size: 0.875rem; }
.sch-form__group { display: none; padding: clamp(20px, 2.6cqi, 28px); border-radius: var(--sch-radius-lg); background: var(--sch-accent-tint); }
.sch-form__group > .sch-h4 { margin-bottom: 14px; }
.sch-form__group > .sch-hint { margin: 16px 0 0; }
/* Show the right extra fields for the enquiry type, with no JavaScript */
.sch-form:has(input[value="school"]:checked) [data-when~="school"],
.sch-form:has(input[value="research"]:checked) [data-when~="research"],
.sch-form:has(input[value="training"]:checked) [data-when~="training"],
.sch-form:has(input[value="campaigns"]:checked) [data-when~="campaigns"],
.sch-form:has(input[value="careers"]:checked) [data-when~="careers"],
.sch-form:has(input[value="press"]:checked) [data-when~="press"],
.sch-form:has(input[value="investment"]:checked) [data-when~="investment"] { display: block; }
.sch-form .sch-notice[data-when] { display: none; }
.sch-form:has(input[value="school"]:checked) .sch-notice[data-when~="school"] { display: flex; }
@container page (max-width: 47.4375rem) { .sch-page .sch-form__grid { grid-template-columns: minmax(0, 1fr); } }

/* ------------------------------------------------------------ 15. Footer */
.sch-footer { position: relative; overflow: hidden; padding-block: clamp(56px, 7cqi, 96px) 36px; background: var(--sch-navy); color: #D1DDE6; --sch-link: var(--sch-white); --sch-link-hover: var(--sch-yellow); --sch-focus: var(--sch-yellow); }
.sch-footer__top { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 2fr); gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(255, 255, 255, 0.18); }
.sch-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.sch-footer__brand img { width: auto; height: 46px; }
.sch-footer__line { font-family: var(--sch-font-display); font-size: clamp(1.5rem, 2.4cqi, 2.125rem); line-height: 1.1; color: var(--sch-white); }
.sch-footer__line em { font-family: var(--sch-font-strap); font-style: italic; color: var(--sch-yellow); }
.sch-footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.sch-footer__h { margin-bottom: 14px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sch-yellow); }
.sch-footer__cols ul { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; }
.sch-footer__cols a { display: inline-flex; align-items: center; min-height: 32px; font-size: 0.9688rem; text-decoration: none; }
.sch-footer__cols a:hover { text-decoration: underline; }
.sch-footer__legal { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 4px 28px; padding-top: 24px; font-size: 0.8125rem; line-height: 1.55; color: #B8C6D3; }
.sch-footer__puzzle { position: absolute; right: clamp(-60px, -1cqi, 0px); bottom: -150px; height: clamp(260px, 30cqi, 440px); width: auto; color: var(--sch-white); opacity: 0.45; }
@container page (max-width: 61.1875rem) { .sch-page .sch-footer__top { grid-template-columns: minmax(0, 1fr); } .sch-page .sch-footer__puzzle { opacity: 0.2; } }
@container page (max-width: 47.4375rem) { .sch-page .sch-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; } }

/* ------------------------------------------------------------ 16. Door themes: one class on .sch-page */
.sch-theme--blue { --sch-accent: var(--sch-blue); --sch-accent-text: var(--sch-blue); --sch-accent-tint: var(--sch-blue-50); --sch-on-accent: var(--sch-white); --sch-mark: var(--sch-yellow); }
.sch-theme--green { --sch-accent: var(--sch-green); --sch-accent-text: var(--sch-green-700); --sch-accent-tint: var(--sch-green-100); --sch-on-accent: var(--sch-black); --sch-eyebrow: var(--sch-green-700); --sch-mark: var(--sch-green); }
.sch-theme--red { --sch-accent: var(--sch-red-700); --sch-accent-text: var(--sch-red-700); --sch-accent-tint: var(--sch-red-50); --sch-on-accent: var(--sch-white); --sch-eyebrow: var(--sch-red-700); --sch-mark: var(--sch-red); }
.sch-theme--yellow { --sch-accent: var(--sch-yellow); --sch-accent-text: var(--sch-yellow-700); --sch-accent-tint: var(--sch-yellow-100); --sch-on-accent: var(--sch-black); --sch-eyebrow: var(--sch-yellow-700); --sch-mark: var(--sch-yellow); }
.sch-theme--veyra { --sch-accent: var(--vey-purple); --sch-accent-text: var(--vey-purple-deep); --sch-accent-tint: #F2ECF8; --sch-on-accent: var(--sch-white); }

/* ------------------------------------------------------------ 17. Motion */
@media (prefers-reduced-motion: reduce) {
  .sch-door:hover, a.sch-card:hover, .sch-gate__door:hover, .sch-service:hover { transform: none; }
}

/* ============================================================ 18. Brand layer v3 (November 2026)
   Navy house, coloured doors, one voice in italic, rules not boxes. Appended last so it wins over the
   rules it replaces. Spec: the brand designer's v3 review; type tokens live in tokens.css. */
/* ------------------------------------------------------------ 18.1 Type */
.sch-display, .sch-h1, .sch-h2, .sch-card__title, .sch-service__name, .sch-gate__name, .sch-founder__name,
.sch-index__name, .sch-person__path b, .sch-footer__line, .sch-stat__value, :where(.sch-mission h3) { font-weight: var(--sch-serif-wght); }
.sch-display { margin-bottom: 0.08em; line-height: 0.96; letter-spacing: -0.025em; }
.sch-h1 { line-height: 1; letter-spacing: -0.02em; }
.sch-h2 { max-width: 20ch; line-height: 1.05; letter-spacing: -0.015em; }

/* Italic is always the Garamond voice. No Bodoni italic is loaded. */
:where(.sch-page) :where(em, i, cite) { font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght); font-size-adjust: var(--sch-italic-adjust); }
/* Section headings speak in one voice: an <em> left in an h2 renders as Bodoni until the markup drops it */
.sch-h2 em { font-family: inherit; font-style: normal; font-weight: inherit; font-size-adjust: none; letter-spacing: inherit; }
/* Where the second half earns it: h1, the display line, the closing line, the footer line, opt-in h2s, the join */
.sch-display em, .sch-h1 em, .sch-cta .sch-h2 em, .sch-h2--voice em, .sch-footer__line em, .sch-and {
  font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght);
  font-size-adjust: var(--sch-italic-adjust); letter-spacing: -0.005em;
}
.sch-display em, .sch-h1 em, .sch-cta .sch-h2 em { display: block; } /* the voice takes its own line */
.sch-strap { font-weight: var(--sch-italic-wght); }

.sch-lead { max-width: 34em; color: var(--sch-text); line-height: 1.5; }
.sch-eyebrow { gap: 0; font-size: var(--sch-text-label); font-weight: 500; letter-spacing: 0.12em; }
.sch-eyebrow::before { content: none; }

/* ------------------------------------------------------------ 18.2 Section heads: a rule and a hanging label */
.sch-head { max-width: none; margin-bottom: clamp(32px, 4cqi, 56px); padding-top: 20px; border-top: var(--sch-rule-strong); }
.sch-head > .sch-stack { display: contents; }
.sch-section > .sch-split, .sch-section > .sch-container > .sch-split { align-items: start; } /* rules line up */
.sch-section > .sch-split > *, .sch-section > .sch-container > .sch-split > * { padding-top: 20px; border-top: var(--sch-rule-strong); }
.sch-section .sch-split > .sch-person__path { margin-top: 0; }
.sch-on-dark .sch-head, .sch-section--navy .sch-head, .sch-section--blue .sch-head { border-top-color: rgba(255, 255, 255, 0.5); }
@container page (min-width: 61.25rem) {
  .sch-page .sch-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sch-col-gap); row-gap: 20px; align-items: start; }
  .sch-page .sch-head :is(.sch-h2, .sch-lead, .sch-link, p:not(.sch-eyebrow)) { grid-column: 4 / span 8; }
  .sch-page .sch-head .sch-eyebrow { grid-column: 1 / span 3; grid-row: 1; padding-top: 0.6em; }
  .sch-page .sch-head .sch-h2 { grid-row: 1; }
  .sch-page .sch-head--row > :is(.sch-lead, .sch-link) { grid-column: 4 / span 6; }
  .sch-page .sch-indent { margin-left: calc((100% + var(--sch-col-gap)) * 3 / 12); }
}

/* ------------------------------------------------------------ 18.3 Buttons and links */
.sch-cluster { --sch-gap: 12px 28px; }
.sch-btn { min-height: 52px; padding: 8px 30px 8px 22px; gap: 12px; text-align: left; border-radius: 0 var(--sch-radius-pill) var(--sch-radius-pill) 0; font-size: 1.0625rem; font-weight: 500; letter-spacing: 0.005em; }
.sch-btn--small { min-height: 44px; padding: 6px 22px 6px 16px; font-size: 0.9375rem; }
.sch-btn--secondary { --_bg: transparent; --_bd: transparent; --_fg: var(--sch-heading); min-height: 44px; padding: 0; border-radius: 0; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.sch-btn--secondary:hover { --_bg: transparent; text-decoration-thickness: 2px; }
.sch-btn--veyra, .sch-btn--cream { padding: 8px 24px; border-radius: var(--sch-radius-pill); } /* pills are Veyra's */
.sch-btn--veyra.sch-btn--small, .sch-btn--cream.sch-btn--small { padding: 6px 18px; }
.sch-menu > summary { border-radius: 2px; }
.sch-skip { border-radius: 0 var(--sch-radius-pill) var(--sch-radius-pill) 0; }
.sch-link { min-height: 44px; font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.sch-link:hover { text-decoration-thickness: 2px; }

/* ------------------------------------------------------------ 18.4 Cards become ruled columns */
.sch-card, .sch-offer, .sch-evidence, .sch-founder { padding: 22px 0 0; border-radius: 0; background: transparent; box-shadow: none; border-top: var(--sch-rule-strong); }
.sch-card__icon { display: none; }
.sch-card__title { font-size: var(--sch-text-h3-serif); }
a.sch-card:hover { transform: none; box-shadow: none; }
.sch-card--navy { padding: clamp(24px, 3cqi, 40px); border-top: 0; background: var(--sch-navy); }
.sch-card--veyra { padding: clamp(22px, 2.6cqi, 32px); border-top: 0; border-radius: var(--sch-radius-lg); background: var(--vey-purple); } /* soft corners are Veyra's */
.sch-grid { --sch-gap: 40px var(--sch-col-gap); }
.sch-offers { gap: 0 var(--sch-col-gap); }
.sch-offer { gap: 8px; padding: 22px 0 36px; }
.sch-offer::before { content: none; }
.sch-offers--numbered .sch-offer::before { content: counter(o); margin-bottom: 8px; color: var(--sch-accent-text); font: var(--sch-serif-wght) 2.25rem/1 var(--sch-font-display); }
.sch-evidence { gap: 14px; }
.sch-evidence__finding { font-family: var(--sch-font-sans); font-size: 1.3125rem; font-weight: 500; line-height: 1.32; letter-spacing: -0.01em; }
.sch-evidence__points li::before { width: 6px; height: 6px; margin-top: 0.68em; border-radius: 50%; background: var(--sch-accent); }
.sch-evidence__source { border-top: var(--sch-rule); }
.sch-founder { gap: 16px; }
.sch-person__path b { font-size: 1.375rem; }
.sch-chip { gap: 8px; min-height: 0; padding: 0; border-radius: 0; background: none; font-size: 0.9375rem; font-weight: 500; }
.sch-chip::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--sch-accent); }
.sch-cluster:has(> .sch-chip) { --sch-gap: 8px 24px; }
.sch-list { border-top: var(--sch-rule-strong); }
.sch-list__when { font-weight: 500; }
.sch-facts { padding-top: 22px; }

/* ------------------------------------------------------------ 18.5 Photos: one treatment */
.sch-duo, .sch-duo--blue, .sch-duo--green, .sch-duo--yellow, .sch-duo--red, .sch-duo--navy { --_light: var(--duo-ink-light); --_dark: var(--duo-ink-dark); }
.sch-duo > img { filter: grayscale(1) contrast(1.08) brightness(1.04); }

/* ------------------------------------------------------------ 18.6 Door pages: the hero is the door's colour */
.sch-hero--door { padding-block: clamp(40px, 6cqi, 96px) 0; background: var(--sch-accent); }
.sch-hero--door .sch-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
.sch-hero--door .sch-hero__text { align-self: center; padding-bottom: clamp(40px, 6cqi, 96px); }
.sch-hero--door .sch-hero__media .sch-arch { --sch-ratio: 4 / 5; }
.sch-theme--blue .sch-hero--door { background: var(--sch-blue); --sch-eyebrow: var(--sch-blue-100); --sch-link: var(--sch-white); --sch-link-hover: var(--sch-yellow); }
.sch-theme--blue .sch-hero--door .sch-h1 em { color: var(--sch-yellow); }
.sch-theme--green .sch-hero--door, .sch-theme--yellow .sch-hero--door {
  --sch-heading: var(--sch-ink); --sch-text: var(--sch-ink); --sch-text-2: var(--sch-ink); --sch-eyebrow: var(--sch-ink);
  --sch-primary: var(--sch-ink); --sch-primary-hover: var(--sch-black); --sch-on-primary: var(--sch-white);
  --sch-link: var(--sch-ink); --sch-link-hover: var(--sch-black); --sch-focus: var(--sch-ink); color: var(--sch-ink);
}
.sch-theme--green .sch-hero--door { background: var(--sch-green); }
.sch-theme--yellow .sch-hero--door { background: var(--sch-yellow); }
.sch-theme--red .sch-hero--door {
  background: var(--sch-red-700); --sch-heading: var(--sch-white); --sch-text: var(--sch-white); --sch-text-2: var(--sch-white);
  --sch-eyebrow: var(--sch-red-50); --sch-primary: var(--sch-white); --sch-primary-hover: var(--sch-red-50); --sch-on-primary: var(--sch-ink);
  --sch-link: var(--sch-white); --sch-link-hover: var(--sch-red-50); --sch-focus: var(--sch-white); color: var(--sch-white);
}
@container page (max-width: 47.4375rem) {
  .sch-page .sch-hero--door .sch-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-hero--door .sch-hero__text { padding-bottom: 8px; }
  .sch-page .sch-hero--door .sch-hero__media { width: 78%; max-width: 340px; }
  .sch-page .sch-hero--door .sch-hero__media .sch-arch { --sch-ratio: 1 / 1; }
}

/* ------------------------------------------------------------ 18.7 Schologists home hero and proof */
.sch-hero--brand { padding-block: clamp(40px, min(5.5cqi, 6svh), 96px); }
.sch-hero--brand .sch-hero__grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.sch-hero--brand .sch-display { max-width: 12.5ch; }
.sch-hero--brand .sch-lead { color: var(--sch-text-2); }
.sch-hero__art { height: clamp(240px, 32cqi, 460px); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-hero--brand .sch-hero__grid { grid-template-columns: minmax(0, 1fr); } /* P0 fix: 223px column on phones */
}
.sch-proof .sch-piece { display: none; }
.sch-proof__list > li { display: block; padding: 4px 28px; color: #D1DDE6; font-size: 1rem; font-weight: 400; line-height: 1.45; }
.sch-proof__list > li b { color: var(--sch-white); font-weight: 600; }

/* ------------------------------------------------------------ 18.8 The four doors on /work/: colour, not stock photos */
.sch-services { gap: var(--sch-col-gap); }
.sch-service { --_fg: var(--sch-white); --_sub: var(--sch-blue-100);
  position: relative; padding-top: 46%; border-radius: var(--sch-radius-pill) var(--sch-radius-pill) 0 0; background: var(--_c); box-shadow: none; color: var(--_fg); }
.sch-service:hover { transform: none; box-shadow: none; color: var(--_fg); }
.sch-service__media { display: none; }
.sch-service__body { gap: 10px; padding: 0 clamp(18px, 2cqi, 28px) clamp(22px, 2.4cqi, 32px); }
.sch-service__who { min-height: 0; color: var(--_sub); font-weight: 500; letter-spacing: 0.12em; }
.sch-service__who::before { content: none; }
.sch-service__name { color: var(--_fg); font-size: var(--sch-text-h3-serif); }
.sch-service__line { color: var(--_fg); font-size: 1rem; }
.sch-service__go { color: var(--_fg); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.sch-service:hover .sch-service__go { text-decoration-thickness: 2px; }
.sch-service--blue { --_c: var(--sch-blue); --_fg: var(--sch-white); --_sub: var(--sch-blue-100); }
.sch-service--green { --_c: var(--sch-green); --_fg: var(--sch-ink); --_sub: var(--sch-green-900); }
.sch-service--red { --_c: var(--sch-red-700); --_fg: var(--sch-white); --_sub: var(--sch-red-50); }
.sch-service--yellow { --_c: var(--sch-yellow); --_fg: var(--sch-ink); --_sub: var(--sch-yellow-900); }
@container page (max-width: 68.6875rem) { .sch-page .sch-service { padding-top: 30%; } }
@container page (max-width: 34.9375rem) {
  .sch-page .sch-services { gap: 0; border-top: var(--sch-rule-strong); }
  .sch-page .sch-service { flex-direction: row; align-items: flex-start; gap: 16px; padding: 18px 0 20px; border-radius: 0; background: transparent; color: var(--sch-text); border-bottom: var(--sch-rule); }
  .sch-page .sch-service::before { content: ""; flex: none; width: 44px; height: 56px; border-radius: var(--sch-radius-pill) var(--sch-radius-pill) 0 0; background: var(--_c); }
  .sch-page .sch-service__body { gap: 4px; padding: 0; }
  .sch-page .sch-service__who { color: var(--sch-text-muted); }
  .sch-page :is(.sch-service__name, .sch-service__line, .sch-service__go) { color: var(--sch-heading); }
}

/* ------------------------------------------------------------ 18.9 The closing line: one navy band that runs into the footer */
.sch-cta {
  position: relative; overflow: clip; padding: clamp(64px, 7.5cqi, 136px) 0; border-radius: 0; background: var(--sch-navy); color: var(--sch-paper);
  --sch-text: var(--sch-paper); --sch-text-2: #D1DDE6; --sch-heading: var(--sch-white); --sch-eyebrow: #B8C6D3;
  --sch-link: var(--sch-white); --sch-link-hover: var(--sch-yellow); --sch-primary: var(--sch-yellow); --sch-primary-hover: var(--sch-yellow-300);
  --sch-on-primary: var(--sch-black); --sch-focus: var(--sch-yellow); --sch-border: rgba(255, 255, 255, 0.2);
}
.sch-cta__inner { display: flex; flex-direction: column; gap: 22px; max-width: 760px; }
.sch-cta .sch-h2 { max-width: 16ch; font-size: var(--sch-text-close); line-height: 1; }
.sch-cta .sch-h2 em { color: var(--sch-yellow); }
.sch-footer { border-top: 1px solid rgba(255, 255, 255, 0.16); }
.sch-footer__h { color: #B8C6D3; font-weight: 500; letter-spacing: 0.12em; }

/* ------------------------------------------------------------ 18.10 Landing: two doors standing on one floor */
.sch-gate__main { padding-block: clamp(8px, 2cqi, 32px) clamp(40px, 5cqi, 72px); }
.sch-gate__intro { gap: 14px; margin-bottom: clamp(16px, min(3cqi, 3svh), 44px); }
.sch-gate__intro .sch-h1 { font-size: min(var(--sch-text-h1-utility), max(1.875rem, 7svh)); }
.sch-gate__doors { position: relative; align-items: end; }
.sch-gate__doors::after { content: ""; position: absolute; left: -100vmax; right: -100vmax; bottom: -1px; border-bottom: 1px solid var(--sch-heading); pointer-events: none; }
.sch-gate__door { border-radius: var(--sch-radius-pill) var(--sch-radius-pill) 0 0; }
.sch-gate__door:hover { transform: none; box-shadow: none; }
.sch-gate__media > img { transition: transform var(--sch-dur-image) var(--sch-ease); }
.sch-gate__door:hover .sch-gate__media > img { transform: scale(1.04); }
.sch-gate__media--puzzle { display: grid; place-items: end center; background: var(--sch-navy); color: var(--sch-white); }
.sch-gate__media--puzzle svg { width: auto; height: 86%; margin-bottom: -2px; }
.sch-gate__who { font-weight: 500; letter-spacing: 0.12em; }
.sch-gate__proof { gap: 6px 32px; margin-top: 22px; }
.sch-gate__proof .sch-piece { display: none; }
.sch-gate__proof > li b { color: var(--sch-heading); font-weight: 600; }
@container page (max-width: 47.4375rem) { .sch-page .sch-gate__doors { row-gap: 14px; } }

/* ------------------------------------------------------------ 18.11 Method, mission, quote, team */
.sch-steps::before { left: 10%; right: 10%; border-top: 1px solid var(--sch-heading); }
.sch-steps__dot { background: var(--sch-bg); color: var(--sch-heading); box-shadow: inset 0 0 0 1.5px var(--sch-heading); font-weight: var(--sch-serif-wght); }
.sch-steps > li:last-child .sch-steps__dot { background: var(--sch-accent); color: var(--sch-on-accent); box-shadow: none; }
.sch-mission { counter-reset: m; }
.sch-mission > li { counter-increment: m; border-top: var(--sch-rule-strong); }
.sch-mission .sch-piece { display: none; }
.sch-mission > li::before { content: counter(m); color: var(--sch-accent-text); font: var(--sch-serif-wght) clamp(3rem, 2rem + 3cqi, 5rem)/0.9 var(--sch-font-display); }
.sch-quote blockquote { font-weight: var(--sch-italic-wght); font-size: var(--sch-text-quote); line-height: 1.18; text-indent: -0.42em; }
.sch-quote blockquote::before { content: "\201C"; }
.sch-quote blockquote::after { content: "\201D"; }
.sch-quote figcaption .sch-piece { display: none; }
.sch-avatar { border-radius: var(--sch-radius-pill) var(--sch-radius-pill) 0 0; background: var(--sch-paper-2); color: var(--sch-ink-2); font-weight: var(--sch-serif-wght); }

/* About: the name as a diagram. One circle, two halves, a gap where they meet. */
.sch-halves--circle { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(10px, 1.2cqi, 18px); width: min(100%, 460px); aspect-ratio: 1; margin-inline: auto 0; }
.sch-halves--circle .sch-halves__half { display: grid; place-items: center; min-height: 0; gap: 0; text-align: center; }
.sch-halves--circle .sch-halves__half--scholarly { padding: 0 6% 0 16%; border-radius: 999px 0 0 999px; background: var(--sch-blue); color: var(--sch-white); }
.sch-halves--circle .sch-halves__half--psychologist { padding: 0 16% 0 6%; border-radius: 0 999px 999px 0; background: var(--sch-yellow); color: var(--sch-ink); }
.sch-halves--circle .sch-halves__word { font-size: clamp(1.125rem, 0.75rem + 1.25cqi, 2rem); font-weight: var(--sch-serif-wght); line-height: 1; letter-spacing: -0.015em; }
.sch-halves--circle .sch-halves__half--psychologist .sch-halves__word { font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght); font-size-adjust: var(--sch-italic-adjust); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-halves--circle { width: min(100%, 300px); margin-inline: 0; grid-template-columns: 1fr 1fr; }
  .sch-page .sch-halves--circle .sch-halves__half--scholarly { padding: 0 6% 0 18%; }
  .sch-page .sch-halves--circle .sch-halves__half--psychologist { padding: 0 18% 0 6%; }
}

/* ------------------------------------------------------------ 18.12 Forms and notices */
.sch-input, .sch-textarea, .sch-select { border-radius: 2px; }
.sch-choice > span { gap: 10px; padding: 0 18px 0 14px; border-radius: 2px; font-weight: 500; }
.sch-choice > span::before { content: ""; flex: none; width: 12px; height: 12px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--sch-field-border); }
.sch-choice > input:checked + span::before { background: var(--sch-yellow); box-shadow: none; }
.sch-form__group { border-radius: 0; border-left: 3px solid var(--sch-accent-text); }
.sch-notice { border-radius: 0; }
.sch-notice--veyra { border-radius: var(--sch-radius-lg); }
.sch-notice--care { background: var(--sch-green-100); border-left: 3px solid var(--sch-green-700); color: var(--sch-ink); }
.sch-hero--plain { padding-block: clamp(40px, 5cqi, 80px) clamp(8px, 1.5cqi, 24px); }
.sch-hero--plain .sch-h1 { max-width: 16ch; font-size: var(--sch-text-h1-utility); }

/* ------------------------------------------------------------ 18.13 Header marker (3:1 on every door) */
.sch-nav a { background-image: linear-gradient(var(--sch-accent-text), var(--sch-accent-text)); }

/* ------------------------------------------------------------ 18.14 Motion */
.sch-header { view-transition-name: sch-header; }
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: 220ms; }
  .sch-puzzle--draw :is(path, circle) { stroke-dasharray: 1; stroke-dashoffset: 1; animation: sch-draw 1400ms var(--sch-ease) forwards; }
  .sch-puzzle--draw :nth-child(2) { animation-delay: 160ms; }
  .sch-puzzle--draw :nth-child(3) { animation-delay: 320ms; }
  .sch-puzzle--draw :nth-child(4) { animation-delay: 480ms; }
}
@keyframes sch-draw { to { stroke-dashoffset: 0; } }

/* ------------------------------------------------------------ 19. Integration: the v3 layer meets the UX fixes */
/* Form pages keep a compact heading so the form starts in the first screen */
.sch-hero--compact { padding-block: clamp(32px, 4cqi, 64px) clamp(8px, 1.5cqi, 20px); }
.sch-hero--compact .sch-h1 { font-size: var(--sch-text-h2); }
/* "On this page": text actions under a rule (pills are Veyra's) */
.sch-toc { padding-block: 8px 0; }
.sch-toc ul { gap: 0 24px; padding-top: 6px; border-top: var(--sch-rule); }
.sch-toc a { min-height: 44px; padding: 0; border-radius: 0; box-shadow: none; color: var(--sch-link); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.sch-toc a:hover { background: none; text-decoration-thickness: 2px; }
/* Key facts under the About lead: register claims, typeset plainly */
.sch-keyfacts { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 4px 0 0; padding: 16px 0 0; border-top: var(--sch-rule); list-style: none; color: var(--sch-text-2); font-size: var(--sch-text-small); font-weight: 500; }
/* A statement in the Garamond voice, with no quotation marks: it is ours, not a quote */
.sch-quote__text { max-width: 26em; font-weight: var(--sch-italic-wght); font-size: var(--sch-text-quote); line-height: 1.18; font-size-adjust: var(--sch-italic-adjust); }
/* Door heroes and the landing heading fit short laptop screens (1366x768): the main button stays in the first screen */
.sch-hero--door { padding-block: clamp(32px, min(6cqi, 6svh), 96px) 0; }
.sch-hero--door .sch-h1 { font-size: min(var(--sch-text-h1), max(2.5rem, 9.5svh)); }
/* Form pages: a heading sized for a form, not a statement */
.sch-hero--compact .sch-h1 { max-width: 20ch; font-size: clamp(2rem, 1.55rem + 1.6cqi, 2.75rem); }
/* A section head without a margin label starts at the first column instead of floating at column 4 */
@container page (min-width: 61.25rem) {
  .sch-page .sch-head:not(:has(.sch-eyebrow)) :is(.sch-h2, .sch-lead, .sch-link, p:not(.sch-eyebrow)) { grid-column: 1 / span 9; }
  .sch-page .sch-head--row:not(:has(.sch-eyebrow)) > :is(.sch-lead, .sch-link) { grid-column: 1 / span 7; }
}
/* Landing: the two doors are always the same size, with their parts on the same lines */
.sch-gate__doors { align-items: stretch; }
.sch-gate__door { height: 100%; }
.sch-gate__doors { grid-auto-rows: 1fr; }
.sch-gate__proof > li { display: block; } /* text and bold nouns flow as one line */

/* ------------------------------------------------------------ 20. Phones first (most visitors) */
@container page (max-width: 47.4375rem) {
  /* Tighter rhythm, so pages are shorter without feeling cramped */
  .sch-page { --sch-section-y: 56px; }
  .sch-page .sch-head { margin-bottom: 28px; padding-top: 16px; }

  /* Landing: both doors side by side, so the whole choice is on the first screen */
  .sch-page .sch-gate__doors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-width: none; }
  .sch-page .sch-gate__intro { margin-bottom: 18px; }
  .sch-page .sch-gate__media { height: clamp(96px, 30cqi, 150px); }
  .sch-page .sch-gate__body { gap: 8px; padding: 14px 12px 16px; }
  .sch-page .sch-gate__who { font-size: 0.6875rem; letter-spacing: 0.1em; }
  .sch-page .sch-gate__name { font-size: clamp(1.5rem, 7cqi, 2rem); }
  .sch-page .sch-gate__name img { height: clamp(28px, 8cqi, 36px); }
  .sch-page .sch-gate__line { font-size: 0.875rem; line-height: 1.4; }
  .sch-page .sch-gate__go { width: 100%; min-height: 46px; padding: 6px 10px; justify-content: center; gap: 6px; font-size: 0.9375rem; text-align: center; }
  .sch-page .sch-gate__more { flex-direction: column; align-items: center; gap: 0; font-size: 0.875rem; }
  .sch-page .sch-gate__more a { min-height: 40px; }
  .sch-page .sch-gate__proof { margin-top: 28px; gap: 10px; font-size: 0.875rem; }

  /* Door heroes: the photo is a smaller door standing at the right, the words lead */
  .sch-page .sch-hero--door .sch-hero__media { width: 56%; max-width: 240px; margin-left: auto; }

  /* /work/: proof as a tidy two-by-two grid; Veyra band picture shorter */
  .sch-page .sch-proof__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; padding-block: 20px; }
  .sch-page .sch-proof__list > li { padding: 0; border: 0; font-size: 0.875rem; }
  .sch-page .sch-veyra__media { min-height: 0; aspect-ratio: 16 / 10; }
  .sch-page .sch-veyra__text { gap: 14px; padding: 28px 22px; }

  /* About: the name diagram smaller, so the story starts sooner */
  .sch-page .sch-halves--circle { width: min(62%, 220px); margin: 8px 0 0 auto; }

  /* Footer: denser on phones */
  .sch-page .sch-footer { padding-block: 44px 28px; }
  .sch-page .sch-footer__top { gap: 32px; padding-bottom: 32px; }
  .sch-page .sch-footer__line { font-size: 1.375rem; }
}
/* Very narrow phones: the doors stack again */
@container page (max-width: 22.4375rem) {
  .sch-page .sch-gate__doors { grid-template-columns: minmax(0, 1fr); }
}
@container page (max-width: 47.4375rem) {
  .sch-page .sch-hero--door .sch-hero__grid { row-gap: 12px; }
  .sch-page .sch-steps__dot { width: 76px; }
}

/* 21. Values (About): three statements, Bodoni, on rules. Sam, 8 Nov 2026. */
.sch-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--sch-col-gap); margin: 0; padding: 0; list-style: none; counter-reset: v; }
.sch-values > li { counter-increment: v; display: flex; flex-direction: column; gap: 10px; padding-top: 22px; border-top: var(--sch-rule-strong); color: var(--sch-heading); font-family: var(--sch-font-display); font-size: var(--sch-text-h3-serif); font-weight: var(--sch-serif-wght); line-height: 1.08; letter-spacing: -0.015em; }
.sch-values > li::before { content: "0" counter(v); color: var(--sch-accent-text); font: 600 var(--sch-text-label)/1 var(--sch-font-sans); letter-spacing: 0.08em; }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-values { grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
  .sch-page .sch-values > li { padding-top: 16px; }
}

/* 22. Read (a feature link to one article). Patient relevance: Sam's Personal View. */
.sch-read { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: clamp(20px, 3cqi, 48px); padding: clamp(24px, 3.4cqi, 48px) 0; border-top: var(--sch-rule-strong); border-bottom: var(--sch-rule); }
.sch-read__text { display: flex; flex-direction: column; gap: 14px; max-width: 46rem; }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-read { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .sch-page .sch-read .sch-btn { justify-self: start; }
}

/* 23. Video: a YouTube film, privacy-enhanced (youtube-nocookie), 16:9, lazy. */
.sch-video { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.sch-video__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--sch-radius-lg); background: var(--sch-navy); }
.sch-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sch-video figcaption { font-size: 0.9375rem; color: inherit; }

/* 24. Landing: only the choice. The page fills the screen and the doors sit in the middle of it. */
.sch-page:has(> .sch-gate__main) { display: flex; flex-direction: column; min-height: 100svh; }
.sch-gate__main { flex: 1 0 auto; display: flex; flex-direction: column; justify-content: center; }
.sch-gate__main > .sch-container { width: 100%; }
.sch-gate__media { height: clamp(96px, 30svh, 340px); }
.sch-gate__main { padding-block: clamp(16px, 4svh, 48px); }

/* 25. Three doors on /work/ (Campaigns paused, Sam 8 Nov 2026): three across until phones. */
.sch-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@container page (max-width: 68.6875rem) { .sch-page .sch-services { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container page (max-width: 47.4375rem) { .sch-page .sch-services { grid-template-columns: minmax(0, 1fr); } }
@container page (min-width: 35rem) and (max-width: 47.4375rem) { .sch-page .sch-service { padding-top: 104px; border-radius: 160px 160px 0 0; } }

/* 26. Trust: the organisations we have worked with, then funding and patent. Credibility first (Sam, 9 Nov 2026).
   Names as plain text (no logos without permission). Navy under the brand hero; .sch-trust--light on paper elsewhere. */
.sch-trust { background: var(--sch-navy); color: var(--sch-paper); }
.sch-hero--brand + .sch-trust { border-top: 1px solid rgba(255, 255, 255, 0.14); }
.sch-trust__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label facts" "orgs orgs"; gap: 14px var(--sch-col-gap); padding-block: 26px 30px; }
.sch-trust__label { grid-area: label; margin: 0; color: inherit; font: 500 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.85; }
.sch-trust__orgs { grid-area: orgs; display: flex; flex-wrap: wrap; gap: 6px 0; margin: 0; padding: 0; list-style: none; }
.sch-trust__orgs > li { color: var(--sch-white); font-family: var(--sch-font-display); font-size: clamp(1.0625rem, 1.5cqi, 1.375rem); font-weight: var(--sch-serif-wght); line-height: 1.3; }
.sch-trust__orgs > li:not(:last-child)::after { content: "·"; margin-inline: 0.6em; color: var(--sch-yellow); }
.sch-trust__facts { grid-area: facts; display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 0; padding: 0; list-style: none; font-size: 0.9375rem; }
.sch-trust--light { background: var(--sch-paper); color: var(--sch-text); border-bottom: var(--sch-rule); }
.sch-trust--light .sch-trust__orgs > li { color: var(--sch-heading); }
.sch-trust--light .sch-trust__orgs > li:not(:last-child)::after { color: var(--sch-accent-text); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-trust__inner { grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "orgs" "facts"; gap: 12px; padding-block: 22px 24px; }
}
.sch-gate__trust { max-width: 60ch; margin: clamp(16px, 2.6svh, 32px) auto 0; color: var(--sch-text-muted); font-size: 0.9375rem; line-height: 1.5; text-align: center; }
/* Trust names: spacing, not dots, so wrapped lines never end on a separator. Two columns on phones. */
.sch-trust__orgs { gap: 6px clamp(20px, 2.4cqi, 36px); }
.sch-trust__orgs > li:not(:last-child)::after { content: none; }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-trust__orgs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
  .sch-page .sch-trust__orgs > li { font-size: 1rem; line-height: 1.25; }
}

/* ==========================================================================
   27. Photo layer (Sam, 9 Nov 2026): the warmth of the original Schologists site.
   Full-bleed photos under a door-colour wash, a centred statement, a numbers band.
   The wash is strong enough that text always passes 4.5:1, whatever the photo.
   ========================================================================== */

/* 27.1 Photo hero: the door hero (or the brand hero) with its photo full-bleed behind the text */
.sch-hero--photo { position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: center; min-height: clamp(480px, 72svh, 760px); padding-block: clamp(72px, 9cqi, 140px); }
.sch-hero--photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: inherit; opacity: 0.86; }
.sch-hero--photo .sch-hero__grid { grid-template-columns: minmax(0, 1fr); }
.sch-hero--photo .sch-hero__text { max-width: 46rem; padding-bottom: 0; }
.sch-hero--photo .sch-hero__media { position: absolute; inset: 0; z-index: -2; margin: 0; }
.sch-hero--photo .sch-hero__media > * { width: 100%; height: 100%; max-width: none; aspect-ratio: auto; border-radius: 0; }
.sch-hero--photo .sch-duo > img, .sch-photo__img img { mix-blend-mode: normal; filter: grayscale(1) contrast(1.05); }
.sch-hero--photo .sch-duo::after { content: none; }
.sch-hero--photo.sch-hero--center .sch-hero__text { margin-inline: auto; text-align: center; align-items: center; }
.sch-hero--photo.sch-hero--center .sch-cluster { justify-content: center; }
.sch-hero--brand.sch-hero--photo { background: var(--sch-navy); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-hero--photo { min-height: 0; padding-block: 56px 64px; }
}

/* 27.2 Photo panel: a full-bleed service panel, text left or right (.sch-panel--right) */
.sch-panel { position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: center; min-height: clamp(460px, 64svh, 680px); padding-block: clamp(64px, 8cqi, 128px); background: var(--_wash); color: var(--sch-text); }
.sch-panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--_wash); opacity: 0.86; }
.sch-photo__img { position: absolute; inset: 0; z-index: -2; margin: 0; }
.sch-photo__img img { width: 100%; height: 100%; object-fit: cover; }
.sch-panel__text { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; max-width: 34rem; }
.sch-panel--right .sch-panel__text { margin-left: auto; }
.sch-panel__who { margin: 0; color: var(--sch-eyebrow); font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.12em; text-transform: uppercase; }
.sch-panel__name { margin: 0; color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(2.25rem, 4.4cqi, 4rem); font-weight: var(--sch-serif-wght); line-height: 1.02; letter-spacing: -0.02em; }
.sch-panel__lead { margin: 0; color: var(--sch-heading); font-size: clamp(1.125rem, 1.5cqi, 1.3125rem); font-weight: 600; line-height: 1.4; }
.sch-panel__text > p:not([class]) { margin: 0; color: var(--sch-text); font-size: 1.0625rem; line-height: 1.6; }
.sch-panel .sch-btn { margin-top: 10px; }
.sch-panel--blue { --_wash: var(--sch-blue); }
.sch-panel--green { --_wash: var(--sch-green); --sch-eyebrow: var(--sch-ink); }
.sch-panel--yellow { --_wash: var(--sch-yellow); --sch-eyebrow: var(--sch-ink); }
.sch-panel--green, .sch-panel--yellow { --sch-text: var(--sch-ink); --sch-heading: var(--sch-ink); --sch-link: var(--sch-ink); }
.sch-panel--green::before, .sch-panel--yellow::before { opacity: 0.88; }
.sch-btn--white { --_bg: var(--sch-white); --_fg: var(--sch-ink); }
.sch-btn--white:hover { --_bg: var(--sch-paper); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-panel { min-height: 0; padding-block: 56px; }
  .sch-page .sch-panel--right .sch-panel__text { margin-left: 0; }
}

/* 27.3 Statement: one centred sentence and one button */
.sch-statement { padding-block: clamp(72px, 9cqi, 140px); text-align: center; }
.sch-statement__text { max-width: 30ch; margin: 0 auto; color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(1.875rem, 3.6cqi, 3.25rem); font-weight: var(--sch-serif-wght); line-height: 1.12; letter-spacing: -0.015em; }
.sch-statement__text em { font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght); color: var(--sch-accent-text); }
.sch-statement .sch-btn { margin-top: clamp(24px, 3cqi, 40px); }

/* 27.4 Numbers: big figures on navy, each with one line saying what it is */
.sch-numbers { padding-block: clamp(64px, 8cqi, 120px); background: var(--sch-navy); }
.sch-numbers__title { margin: 0 0 clamp(32px, 4cqi, 56px); color: var(--sch-white); font-family: var(--sch-font-display); font-size: var(--sch-text-h2); font-weight: var(--sch-serif-wght); line-height: 1.05; text-align: center; }
.sch-numbers__title em { font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght); color: var(--sch-yellow); }
.sch-numbers__list { display: grid; grid-template-columns: repeat(var(--_n, 3), minmax(0, 1fr)); gap: 32px var(--sch-col-gap); margin: 0; padding: 0; list-style: none; }
.sch-numbers__list > li { display: flex; flex-direction: column; gap: 12px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.3); }
.sch-numbers__n { color: var(--sch-white); font: 500 clamp(3rem, 6cqi, 5rem)/1 var(--sch-font-sans); letter-spacing: -0.02em; }
.sch-numbers__what { color: #D1DDE6; font-family: var(--sch-font-strap); font-size: clamp(1.125rem, 1.5cqi, 1.375rem); font-style: italic; line-height: 1.35; }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-numbers__list { grid-template-columns: minmax(0, 1fr); }
}

/* 27.5 Let the photo show (like the original site): solid wash behind the text, lighter on the far side. */
.sch-panel::before, .sch-panel--green::before, .sch-panel--yellow::before { opacity: 1; background: linear-gradient(90deg, color-mix(in srgb, var(--_wash) 95%, transparent) 0%, color-mix(in srgb, var(--_wash) 90%, transparent) 46%, color-mix(in srgb, var(--_wash) 40%, transparent) 100%); }
.sch-panel--right::before, .sch-panel--right.sch-panel--green::before { background: linear-gradient(270deg, color-mix(in srgb, var(--_wash) 95%, transparent) 0%, color-mix(in srgb, var(--_wash) 90%, transparent) 46%, color-mix(in srgb, var(--_wash) 40%, transparent) 100%); }
.sch-hero--photo { --_wash: var(--sch-accent); }
.sch-theme--blue .sch-hero--photo { --_wash: var(--sch-blue); }
.sch-theme--green .sch-hero--photo { --_wash: var(--sch-green); }
.sch-theme--yellow .sch-hero--photo { --_wash: var(--sch-yellow); }
.sch-hero--brand.sch-hero--photo { --_wash: var(--sch-navy); }
.sch-hero--photo::before { opacity: 1; background: linear-gradient(90deg, color-mix(in srgb, var(--_wash) 95%, transparent) 0%, color-mix(in srgb, var(--_wash) 90%, transparent) 50%, color-mix(in srgb, var(--_wash) 45%, transparent) 100%); }
.sch-hero--photo.sch-hero--center::before { background: radial-gradient(ellipse 70% 80% at 50% 50%, color-mix(in srgb, var(--_wash) 92%, transparent) 0%, color-mix(in srgb, var(--_wash) 82%, transparent) 55%, color-mix(in srgb, var(--_wash) 55%, transparent) 100%); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-panel::before, .sch-page .sch-hero--photo::before { background: color-mix(in srgb, var(--_wash) 90%, transparent); }
}
/* Landing: the Schologists door gets a real photo under the navy wash, like the rest of the site */
.sch-gate__media--photo { position: relative; isolation: isolate; background: var(--sch-navy); }
.sch-gate__media--photo > img { filter: grayscale(1) contrast(1.05); }
.sch-gate__media--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--sch-navy) 35%, transparent) 0%, color-mix(in srgb, var(--sch-navy) 70%, transparent) 100%); pointer-events: none; }

/* 28. Organisations we have worked with (replaces .sch-trust, Sam 9 Nov 2026):
   a wall of typographic "logos", one cell each, saying what we did there. */
.sch-orgs { padding-block: clamp(48px, 6cqi, 88px); background: var(--sch-white); border-bottom: var(--sch-rule); }
.sch-orgs--compact { padding-block: clamp(32px, 4cqi, 56px); background: var(--sch-paper); }
.sch-orgs__label { margin: 0 0 clamp(20px, 2.6cqi, 32px); color: var(--sch-text-muted); font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.14em; text-transform: uppercase; text-align: center; }
.sch-orgs__grid { display: grid; grid-template-columns: repeat(var(--_n, 4), minmax(0, 1fr)); gap: 1px; margin: 0; padding: 1px; list-style: none; background: var(--sch-border); border-radius: var(--sch-radius-md); overflow: hidden; }
.sch-orgs--compact .sch-orgs__grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.sch-orgs__grid > li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 112px; padding: 22px 18px; background: var(--sch-white); text-align: center; transition: background var(--sch-dur) var(--sch-ease); }
.sch-orgs__grid > li:hover { background: var(--sch-paper); }
.sch-orgs__name { color: var(--sch-heading); font: 600 0.9375rem/1.3 var(--sch-font-sans); letter-spacing: 0.06em; text-transform: uppercase; text-wrap: balance; }
.sch-orgs__what { color: var(--sch-text-muted); font-family: var(--sch-font-strap); font-size: 1.0625rem; font-style: italic; line-height: 1.3; }
.sch-orgs__facts { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 12px; margin: clamp(20px, 2.6cqi, 32px) 0 0; padding: 0; list-style: none; }
.sch-orgs__facts > li { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; padding: 8px 18px; border: 1px solid var(--sch-border); border-radius: var(--sch-radius-pill); color: var(--sch-heading); font-size: 0.9375rem; font-weight: 500; }
.sch-orgs__facts > li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sch-yellow); }
@container page (max-width: 61.1875rem) { .sch-page .sch-orgs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-orgs__grid > li { min-height: 96px; padding: 16px 10px; }
  .sch-page .sch-orgs__name { font-size: 0.8125rem; letter-spacing: 0.04em; }
  .sch-page .sch-orgs__what { font-size: 0.9375rem; }
}

/* ==========================================================================
   29. Landing, split (Sam, 9 Nov 2026): who we are in one line, then two full-bleed halves.
   ========================================================================== */
.sch-gate--split { padding-block: 0; justify-content: flex-start; }
.sch-gate--split .sch-gate__intro { max-width: none; margin: 0; padding-block: clamp(28px, 6svh, 72px) clamp(24px, 4svh, 48px); gap: 14px; }
.sch-gate__title { max-width: 22ch; margin: 0 auto; color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(2rem, min(4.6cqi, 7svh), 4.25rem); font-weight: var(--sch-serif-wght); line-height: 1.04; letter-spacing: -0.02em; text-align: center; text-wrap: balance; }
.sch-gate__title em { display: block; font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght); color: var(--sch-blue); }
.sch-gate__ask { margin: 0; color: var(--sch-text-muted); font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.14em; text-transform: uppercase; text-align: center; }
.sch-page .sch-gate--split .sch-gate__doors { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: 0; max-width: none; margin: 0; align-items: stretch; }
.sch-gate--split .sch-gate__doors::after { content: none; }
.sch-page .sch-gate--split .sch-gate__door { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: clamp(420px, 60svh, 700px); height: auto; border-radius: 0; overflow: hidden; }
.sch-page .sch-gate--split .sch-gate__media { position: absolute; inset: 0; z-index: -2; height: auto; }
.sch-gate--split .sch-gate__media > img { width: 100%; height: 100%; object-fit: cover; }
.sch-gate--split .sch-gate__door::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.sch-gate--split .sch-gate__door--veyra::before { background: linear-gradient(180deg, transparent 0%, transparent 25%, color-mix(in srgb, var(--vey-purple) 88%, transparent) 58%, var(--vey-purple) 100%); }
.sch-gate--split .sch-gate__door--sch::before { background: linear-gradient(180deg, color-mix(in srgb, var(--sch-navy) 30%, transparent) 0%, color-mix(in srgb, var(--sch-navy) 55%, transparent) 25%, color-mix(in srgb, var(--sch-navy) 92%, transparent) 58%, var(--sch-navy) 100%); }
.sch-gate--split .sch-gate__media--photo::after { content: none; }
.sch-page .sch-gate--split .sch-gate__body { position: relative; padding: clamp(24px, 4cqi, 56px); background: transparent; gap: 12px; }
.sch-gate--split .sch-gate__name { font-size: clamp(2.25rem, 4cqi, 3.5rem); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-gate--split .sch-gate__door { min-height: clamp(380px, 58svh, 520px); }
  .sch-page .sch-gate--split .sch-gate__body { padding: 16px 12px 20px; }
  .sch-page .sch-gate--split .sch-gate__intro { padding-block: 20px 18px; }
}
.sch-nowrap { white-space: nowrap; }
.sch-page .sch-gate--split .sch-gate__body { flex: 0 0 auto; height: auto; justify-content: flex-end; }
.sch-page .sch-gate--split .sch-gate__go { margin-top: 10px; }
.sch-gate--split .sch-gate__ask { margin-top: clamp(8px, 1.6svh, 18px); }
.sch-gate__title { max-width: 26ch; }

/* ==========================================================================
   30. Pillars (Sam, 9 Nov 2026): the one idea that links everything.
   Scholarly = clinically valid (blue, Bodoni). Psychologist = relevant (yellow, Garamond italic).
   ========================================================================== */
.sch-pillars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sch-col-gap); margin: 0; }
.sch-pillar { position: relative; display: flex; flex-direction: column; gap: 12px; padding: clamp(28px, 3.4cqi, 48px); border-radius: var(--sch-radius-lg); background: var(--sch-white); box-shadow: inset 0 0 0 1px var(--sch-border); }
.sch-pillar::before { content: ""; width: 28px; height: 56px; margin-bottom: 6px; border-radius: 56px 0 0 56px; background: var(--sch-blue); }
.sch-pillar--relevant::before { border-radius: 0 56px 56px 0; background: var(--sch-yellow); }
.sch-pillar__tag { margin: 0; color: var(--sch-text-muted); font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.sch-pillar__title { margin: 0; color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(1.75rem, 2.8cqi, 2.5rem); font-weight: var(--sch-serif-wght); line-height: 1.05; letter-spacing: -0.015em; }
.sch-pillar--relevant .sch-pillar__title { font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght); }
.sch-pillar p:not([class]) { margin: 0; color: var(--sch-text-2, var(--sch-text)); font-size: 1.0625rem; line-height: 1.6; }
.sch-pillars__then { margin: clamp(28px, 3.4cqi, 44px) 0 0; color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(1.375rem, 2cqi, 1.75rem); font-weight: var(--sch-serif-wght); text-align: center; }
@container page (max-width: 47.4375rem) { .sch-page .sch-pillars { grid-template-columns: minmax(0, 1fr); gap: 14px; } }

/* The same two halves, small, inside each service panel */
.sch-both { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin: 4px 0 0; padding: 16px 0 0; border-top: 1px solid color-mix(in srgb, currentColor 30%, transparent); }
.sch-both > div { display: grid; grid-template-columns: 10px minmax(0, 1fr); column-gap: 10px; align-items: start; }
.sch-both > div::before { content: ""; grid-row: span 2; width: 10px; height: 20px; margin-top: 2px; border-radius: 20px 0 0 20px; background: var(--sch-blue); }
.sch-both > div + div::before { border-radius: 0 20px 20px 0; background: var(--sch-yellow); }
.sch-on-dark .sch-both > div:first-child::before, .sch-panel--blue .sch-both > div:first-child::before { background: var(--sch-white); }
.sch-both dt { color: var(--sch-heading); font-weight: 600; font-size: 0.9375rem; }
.sch-both dd { margin: 2px 0 0; color: var(--sch-text); font-size: 0.9375rem; line-height: 1.5; }
@container page (max-width: 34.9375rem) { .sch-page .sch-both { grid-template-columns: minmax(0, 1fr); } }

/* Veyra as the fourth panel: its render stays in natural colour, purple behind the text */
.sch-panel--veyra { --_wash: var(--vey-purple); }
.sch-panel--veyra .sch-photo__img img { filter: none; }
.sch-panel--veyra .sch-panel__name img { width: clamp(150px, 16cqi, 220px); height: auto; }
.sch-panel--veyra .sch-both > div + div::before { background: var(--vey-cream); }
.sch-both > div { align-content: start; }
/* Veyra purple must be solid behind its text (cream on purple is 4.5:1 only on solid purple) */
.sch-panel--veyra { --sch-eyebrow: var(--vey-cream); --sch-text-muted: var(--sch-white); --sch-link: var(--vey-cream); --sch-link-hover: var(--sch-white); }
.sch-panel--veyra::before, .sch-panel--veyra.sch-panel--right::before { background: linear-gradient(270deg, var(--vey-purple) 0%, var(--vey-purple) 50%, color-mix(in srgb, var(--vey-purple) 45%, transparent) 100%); }
.sch-gate--split .sch-gate__door--veyra::before { background: linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--vey-purple) 20%, transparent) 18%, var(--vey-purple) 46%, var(--vey-purple) 100%); }
.sch-gate--split .sch-gate__door--sch::before { background: linear-gradient(180deg, color-mix(in srgb, var(--sch-navy) 30%, transparent) 0%, color-mix(in srgb, var(--sch-navy) 60%, transparent) 20%, var(--sch-navy) 46%, var(--sch-navy) 100%); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-panel--veyra::before { background: var(--vey-purple); }
}
.sch-gate__title { max-width: 34ch; font-size: clamp(2rem, min(4.2cqi, 6.4svh), 3.75rem); }
.sch-page .sch-gate--split .sch-gate__door { min-height: clamp(400px, 56svh, 640px); }

/* ==========================================================================
   31. Landing as two buttons (Sam, 9 Nov 2026): credentials first, the line, the question,
   two big choice buttons, the organisations, and a navy footer. No photos.
   ========================================================================== */
.sch-gate--cards { padding-block: clamp(24px, 5svh, 64px) clamp(40px, 6svh, 80px); justify-content: center; }
.sch-gate--cards .sch-gate__intro { max-width: none; margin: 0 auto clamp(24px, 4svh, 44px); padding: 0; gap: clamp(14px, 2.2svh, 22px); }
.sch-gate__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 10px; margin: 0; padding: 0; list-style: none; }
.sch-gate__badges > li { display: inline-flex; align-items: center; gap: 9px; min-height: 36px; padding: 6px 16px; border: 1px solid var(--sch-border); border-radius: var(--sch-radius-pill); color: var(--sch-heading); font-size: 0.875rem; font-weight: 500; }
.sch-gate__badges > li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sch-yellow); }
.sch-page .sch-gate--cards .sch-gate__doors { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: clamp(14px, 2cqi, 24px); max-width: 1080px; margin: 0 auto; }
.sch-gate--cards .sch-gate__doors::after { content: none; }
.sch-page .sch-gate--cards .sch-gate__door { position: relative; display: flex; min-height: 0; height: auto; border-radius: var(--sch-radius-xl); overflow: hidden; transition: transform var(--sch-dur) var(--sch-ease), box-shadow var(--sch-dur) var(--sch-ease); }
.sch-gate--cards .sch-gate__door:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -18px rgba(18, 48, 76, 0.45); }
.sch-gate--cards .sch-gate__door--veyra { background: var(--vey-purple); }
.sch-gate--cards .sch-gate__door--sch { background: var(--sch-navy); }
.sch-page .sch-gate--cards .sch-gate__body { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "who arrow" "name arrow" "line arrow" "go go"; align-items: start; gap: 8px 20px; padding: clamp(26px, 3.2cqi, 44px); text-align: left; background: transparent; }
.sch-gate--cards .sch-gate__who { grid-area: who; margin: 0; text-align: left; }
.sch-gate--cards .sch-gate__name { grid-area: name; margin: 0; text-align: left; font-size: clamp(2.25rem, 4cqi, 3.25rem); }
.sch-gate--cards .sch-gate__name img { width: clamp(130px, 13cqi, 180px); height: auto; margin-block: 4px; }
.sch-gate--cards .sch-gate__line { grid-area: line; margin: 0; max-width: 32ch; text-align: left; }
.sch-page .sch-gate--cards .sch-gate__go { grid-area: go; display: inline-flex; align-items: center; gap: 10px; width: auto; min-height: 44px; margin-top: 14px; padding: 0; background: none; border: 0; color: inherit; font-weight: 600; font-size: 1.0625rem; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em; justify-self: start; }
.sch-gate--cards .sch-gate__door--veyra .sch-gate__go { color: var(--vey-cream); }
.sch-gate--cards .sch-gate__door--sch .sch-gate__go { color: var(--sch-yellow); }
.sch-gate--cards .sch-gate__go .sch-gate__arrow { display: none; }
.sch-gate--cards .sch-gate__body::after { content: ""; grid-area: arrow; align-self: start; width: 56px; height: 56px; border-radius: 50%; background: currentColor no-repeat center / 22px; }
.sch-gate--cards .sch-gate__door--veyra .sch-gate__body { color: var(--sch-white); }
.sch-gate--cards .sch-gate__door--veyra .sch-gate__body::after { background-color: var(--vey-cream); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%231c1530' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 10h12.5M11 5l5 5-5 5'/%3E%3C/svg%3E"); }
.sch-gate--cards .sch-gate__door--sch .sch-gate__body::after { background-color: var(--sch-yellow); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 10h12.5M11 5l5 5-5 5'/%3E%3C/svg%3E"); }
.sch-gate--cards .sch-gate__door:hover .sch-gate__body::after { transform: translateX(3px); }
.sch-gate--cards .sch-gate__body::after { transition: transform var(--sch-dur) var(--sch-ease); }
.sch-gate__worked { max-width: 1080px; margin: clamp(28px, 4.5svh, 52px) auto 0; text-align: center; }
.sch-gate__worked-label { margin: 0 0 12px; color: var(--sch-text-muted); font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.sch-gate__worked ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 26px; margin: 0; padding: 0; list-style: none; }
.sch-gate__worked li { color: var(--sch-heading); font-size: 0.9375rem; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }

/* The landing footer: navy, brand line, links, then the legal line */
.sch-gate__foot--rich { padding-block: clamp(36px, 5cqi, 56px) 28px; border-top: 0; background: var(--sch-navy); color: #B8C6D3; }
.sch-gate__foot--rich .sch-container { display: block; }
.sch-gate__foot-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px 40px; padding-bottom: 24px; border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
.sch-gate__foot-brand { display: flex; flex-direction: column; gap: 12px; }
.sch-gate__foot-brand .sch-footer__line { margin: 0; color: var(--sch-white); font-family: var(--sch-font-display); font-size: clamp(1.25rem, 2cqi, 1.625rem); line-height: 1.2; }
.sch-gate__foot-brand .sch-footer__line em { font-family: var(--sch-font-strap); font-style: italic; color: var(--sch-yellow); }
.sch-gate__foot-nav { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.sch-gate__foot--rich a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sch-white); font-size: 0.9375rem; text-decoration: none; }
.sch-gate__foot--rich a:hover { color: var(--sch-yellow); text-decoration: underline; }
.sch-gate__legal { margin: 18px 0 0; color: #B8C6D3; font-size: 0.8125rem; line-height: 1.5; }

@container page (max-width: 47.4375rem) {
  .sch-page .sch-gate--cards .sch-gate__doors { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 12px; }
  .sch-page .sch-gate--cards .sch-gate__body { padding: 20px 20px 18px; gap: 4px 14px; }
  .sch-gate--cards .sch-gate__body::after { width: 44px; height: 44px; background-size: 18px; }
  .sch-gate--cards .sch-gate__name { font-size: 2rem; }
  .sch-page .sch-gate--cards .sch-gate__go { margin-top: 6px; }
  .sch-gate__worked ul { gap: 4px 16px; }
  .sch-gate__worked li { font-size: 0.8125rem; }
}
.sch-gate--cards .sch-gate__name img { display: block; margin: 4px 0; }

/* 32. Numbers with a tag (research or tutoring), and student voices (Sam, 9 Nov 2026) */
.sch-numbers__tag { color: var(--sch-yellow); font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.sch-numbers--compact { padding-block: clamp(40px, 5cqi, 72px); }
@container page (min-width: 47.5rem) and (max-width: 68.6875rem) { .sch-page .sch-numbers__list[style*="--_n: 4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sch-voices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sch-col-gap); margin: 0; padding: 0; list-style: none; }
.sch-voice { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3cqi, 40px); border-radius: var(--sch-radius-lg); background: var(--sch-white); box-shadow: inset 0 0 0 1px var(--sch-border); }
.sch-section--paper .sch-voice { box-shadow: none; }
.sch-voice__win { display: inline-flex; align-self: flex-start; align-items: center; gap: 8px; margin: 0; padding: 6px 14px; border-radius: var(--sch-radius-pill); background: var(--sch-yellow); color: var(--sch-ink); font-size: 0.875rem; font-weight: 600; }
.sch-voice__quote { margin: 0; }
.sch-voice__quote p { margin: 0; color: var(--sch-heading); font-family: var(--sch-font-strap); font-size: clamp(1.375rem, 2cqi, 1.75rem); font-style: italic; font-weight: var(--sch-italic-wght); line-height: 1.25; }
.sch-voice__who { margin: auto 0 0; padding-top: 14px; border-top: var(--sch-rule); color: var(--sch-text-muted); font-size: 0.9375rem; line-height: 1.45; }
.sch-voice__who b { display: block; color: var(--sch-heading); }
@container page (max-width: 61.1875rem) { .sch-page .sch-voices { grid-template-columns: minmax(0, 1fr); } }

/* 33. Landing, a level up: paper ground, white top bar with a rule, brand halves behind the line */
.sch-page:has(> .sch-gate--cards) { background: var(--sch-paper); }
.sch-page:has(> .sch-gate--cards) .sch-gate__top { position: relative; z-index: 2; background: var(--sch-white); border-bottom: 1px solid var(--sch-border); box-shadow: 0 1px 0 rgba(18, 48, 76, 0.03); }
.sch-gate--cards { position: relative; isolation: isolate; overflow: hidden; }
.sch-gate--cards::before, .sch-gate--cards::after { content: ""; position: absolute; z-index: -1; top: clamp(40px, 8svh, 110px); width: clamp(120px, 16cqi, 260px); aspect-ratio: 1 / 2; opacity: 0.9; pointer-events: none; }
.sch-gate--cards::before { left: 0; border-radius: 0 999px 999px 0; background: color-mix(in srgb, var(--sch-blue) 9%, transparent); }
.sch-gate--cards::after { right: 0; border-radius: 999px 0 0 999px; background: color-mix(in srgb, var(--sch-yellow) 22%, transparent); }
.sch-gate--cards .sch-gate__badges > li { background: var(--sch-white); }
.sch-gate--cards .sch-gate__door { box-shadow: 0 1px 0 rgba(18, 48, 76, 0.06), 0 12px 30px -20px rgba(18, 48, 76, 0.45); }
.sch-gate__worked { padding-top: clamp(22px, 3svh, 32px); border-top: 1px solid var(--sch-border); }
@container page (max-width: 47.4375rem) { .sch-gate--cards::before, .sch-gate--cards::after { width: 64px; top: 140px; } }
.sch-numbers__list[style*="--_n: 4"] .sch-numbers__n { font-size: clamp(2.75rem, 4.2cqi, 4rem); }

/* 34. Featured video (Sam, 9 Nov 2026): YouTube privacy-enhanced, 16:9, wide */
.sch-video--feature { max-width: 960px; margin-inline: auto; }
.sch-video--feature .sch-video__frame { border-radius: var(--sch-radius-xl); box-shadow: 0 24px 48px -28px rgba(18, 48, 76, 0.55); }
.sch-video figcaption { display: flex; justify-content: flex-end; }
.sch-video figcaption a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sch-link, var(--sch-heading)); font-weight: 500; }
/* Poster used where an embed cannot load (the preview): a play button that opens YouTube */
.sch-video__poster { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 14px; background: radial-gradient(ellipse at 50% 40%, var(--sch-blue) 0%, var(--sch-navy) 75%); color: var(--sch-white); text-decoration: none; font-weight: 600; }
.sch-video__poster::before { content: ""; width: 84px; height: 84px; border-radius: 50%; background: var(--sch-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23000'/%3E%3C/svg%3E") no-repeat 54% 50% / 34px; transition: transform var(--sch-dur) var(--sch-ease); }
.sch-video__poster:hover::before { transform: scale(1.06); }

/* Landing choice buttons: bigger labels and lines so the choice reads at a glance */
.sch-gate--cards .sch-gate__who { font-size: 0.9375rem; letter-spacing: 0.12em; }
.sch-gate--cards .sch-gate__line { font-size: clamp(1.125rem, 1.6cqi, 1.375rem); line-height: 1.4; font-weight: 500; }
.sch-page .sch-gate--cards .sch-gate__go { font-size: 1.125rem; }

/* ==========================================================================
   35. About, rebuilt (Sam, 9 Nov 2026): the name as two halves, the origin as a quote,
   the founder as a journey, the mission on navy, the values as logo pieces.
   ========================================================================== */
.sch-name { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sch-name__half { display: flex; padding: clamp(56px, 8cqi, 128px) clamp(24px, 6cqi, 96px); }
.sch-name__half--scholarly { justify-content: flex-end; background: var(--sch-blue); color: var(--sch-white); }
.sch-name__half--psychologist { background: var(--sch-yellow); color: var(--sch-ink); }
.sch-name__inner { display: flex; flex-direction: column; gap: 12px; max-width: 30rem; }
.sch-name__half--scholarly .sch-name__inner { text-align: right; align-items: flex-end; }
.sch-name__tag { margin: 0; font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.9; }
.sch-name__word { margin: 0; font-family: var(--sch-font-display); font-size: clamp(3rem, 7cqi, 6rem); font-weight: var(--sch-serif-wght); line-height: 0.95; letter-spacing: -0.02em; }
.sch-name__half--psychologist .sch-name__word { font-family: var(--sch-font-strap); font-style: italic; font-weight: var(--sch-italic-wght); }
.sch-name__means { margin: 6px 0 0; font-size: clamp(1.25rem, 1.8cqi, 1.5rem); font-weight: 600; line-height: 1.3; }
.sch-name__inner > p:last-child { margin: 0; font-size: 1.0625rem; line-height: 1.6; }
.sch-name__and { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: clamp(72px, 8cqi, 112px); aspect-ratio: 1; border-radius: 50%; background: var(--sch-white); color: var(--sch-heading); font-family: var(--sch-font-strap); font-size: clamp(1.5rem, 2.6cqi, 2.25rem); font-style: italic; box-shadow: 0 10px 30px -12px rgba(18, 48, 76, 0.5); }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-name { grid-template-columns: minmax(0, 1fr); }
  .sch-page .sch-name__half { padding: 48px 20px 56px; justify-content: flex-start; }
  .sch-page .sch-name__half--scholarly .sch-name__inner { text-align: left; align-items: flex-start; }
  .sch-page .sch-name__and { top: 50%; left: 50%; }
}

.sch-origin { padding-block: clamp(72px, 10cqi, 150px); text-align: center; background: var(--sch-white); }
.sch-origin .sch-eyebrow { margin: 0 0 20px; }
.sch-origin__quote { max-width: 46rem; margin: 0 auto; }
.sch-origin__quote p { margin: 0; color: var(--sch-heading); font-family: var(--sch-font-strap); font-size: clamp(1.625rem, 3cqi, 2.625rem); font-style: italic; font-weight: var(--sch-italic-wght); line-height: 1.25; }
.sch-origin__point { margin: clamp(24px, 3cqi, 40px) 0 0; color: var(--sch-blue); font-family: var(--sch-font-display); font-size: clamp(2rem, 4.2cqi, 3.5rem); font-weight: var(--sch-serif-wght); line-height: 1.05; letter-spacing: -0.015em; }
.sch-origin__more { max-width: 40rem; margin: clamp(20px, 2.6cqi, 32px) auto 0; color: var(--sch-text-2, var(--sch-text)); font-size: 1.125rem; line-height: 1.6; }

.sch-journey { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sch-col-gap); margin: 0; padding: 0; list-style: none; }
.sch-journey::before { content: ""; position: absolute; left: 28px; right: 28px; top: 28px; height: 2px; background: linear-gradient(90deg, var(--sch-blue), var(--sch-green), var(--sch-yellow)); }
.sch-journey > li { position: relative; display: flex; flex-direction: column; gap: 10px; }
.sch-journey__n { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--sch-white); box-shadow: inset 0 0 0 2px var(--sch-heading); color: var(--sch-heading); font: 600 1rem/1 var(--sch-font-sans); }
.sch-journey h3 { margin: 10px 0 0; color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(1.75rem, 2.6cqi, 2.25rem); font-weight: var(--sch-serif-wght); line-height: 1.05; }
.sch-journey p { margin: 0; color: var(--sch-text-2, var(--sch-text)); line-height: 1.6; }
@container page (max-width: 47.4375rem) {
  .sch-page .sch-journey { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sch-page .sch-journey::before { left: 27px; right: auto; top: 28px; bottom: 28px; width: 2px; height: auto; background: linear-gradient(180deg, var(--sch-blue), var(--sch-green), var(--sch-yellow)); }
  .sch-page .sch-journey > li { padding-left: 76px; }
  .sch-page .sch-journey__n { position: absolute; left: 0; top: 0; }
  .sch-page .sch-journey h3 { margin-top: 12px; }
}

.sch-mission--big .sch-mission__n { color: var(--sch-yellow); font-family: var(--sch-font-display); font-size: clamp(3rem, 5cqi, 4.5rem); font-weight: var(--sch-serif-wght); line-height: 1; }
.sch-mission--big > li { grid-row: span 4; }
.sch-section--navy .sch-mission > li { border-top-color: rgba(255, 255, 255, 0.25); }
.sch-section--navy .sch-mission p { color: #D1DDE6; }

.sch-values--shapes > li::before { content: ""; width: 40px; height: 40px; margin-bottom: 8px; background: var(--sch-yellow); }
.sch-values--shapes > .sch-value--curious::before { border-radius: 50%; background: var(--sch-ink); }
.sch-values--shapes > .sch-value--intent::before { width: 20px; border-radius: 40px 0 0 40px; background: var(--sch-yellow); }
.sch-values--shapes > .sch-value--empathy::before { clip-path: polygon(0 0, 100% 0, 0 100%); background: var(--sch-red); }
.sch-values--shapes > li { font-size: clamp(1.875rem, 3.2cqi, 2.75rem); }
.sch-mission--big { grid-template-rows: repeat(4, auto); }
.sch-mission--big > li::before { content: none; display: none; }
/* The inspiration (About): Dr Sameer Jauhar */
.sch-inspiration { max-width: 44rem; margin: clamp(32px, 4cqi, 56px) auto 0; padding: clamp(24px, 3cqi, 40px); border-radius: var(--sch-radius-lg); background: var(--sch-paper); text-align: left; display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 20px; row-gap: 6px; }
.sch-inspiration::before { content: ""; grid-row: span 3; width: 56px; height: 56px; border-radius: 50%; background: radial-gradient(circle at 50% 50%, var(--sch-yellow) 0 45%, transparent 46%), var(--sch-blue); }
.sch-inspiration__tag { margin: 0; color: var(--sch-accent-text); font: 600 var(--sch-text-label)/1.3 var(--sch-font-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.sch-inspiration__name { margin: 0; color: var(--sch-heading); font-family: var(--sch-font-display); font-size: clamp(1.625rem, 2.4cqi, 2.125rem); font-weight: var(--sch-serif-wght); line-height: 1.1; }
.sch-inspiration p:not([class]) { margin: 6px 0 0; color: var(--sch-text); line-height: 1.6; }
.sch-quote__more { max-width: 40rem; margin: 18px 0 0; color: var(--sch-text-2, var(--sch-text)); font-size: 1.0625rem; line-height: 1.6; }
@container page (max-width: 34.9375rem) { .sch-page .sch-inspiration { grid-template-columns: minmax(0, 1fr); } .sch-page .sch-inspiration::before { grid-row: auto; } }
