/* ---------- Global chrome ---------- */

.site-header {
  position: relative;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: clamp(1rem, 2.2vw, 2.125rem);
}

.wordmark { margin-left: var(--space-gutter); }
.wordmark img { width: clamp(8.5rem, 12vw, 12.5rem); }

.site-nav {
  width: min(44vw, 44rem);
  background: var(--surface-inverse);
  color: var(--text-inverse);
  border-top-left-radius: 1.75rem;
}
.site-nav ul {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: clamp(3rem, 3.9vw, 3.75rem);
  margin: 0;
  padding: 0 clamp(1.5rem, 3vw, 3rem) 0 clamp(2rem, 3.5vw, 3.5rem);
  list-style: none;
}
.site-nav a {
  color: var(--text-inverse);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(0.9375rem, 1.1vw, 1.125rem);
  text-decoration: none;
}
.site-nav a:hover,
.site-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 0.3em; text-decoration-color: var(--action-primary); }
.site-nav-contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 400;
  text-transform: uppercase;
}
.site-nav-contact .icon { width: 1rem; height: 1rem; }

.nav-has-children { position: relative; }
.nav-parent { display: inline-flex; align-items: center; gap: 0.3rem; }
.nav-caret { display: inline-flex; padding: 0.35rem; border: 0; background: transparent; color: inherit; cursor: pointer; }
.nav-caret .icon { width: 0.7rem; height: 0.7rem; transition: transform 0.15s ease; }
.nav-has-children:hover .nav-caret .icon,
.nav-has-children:focus-within .nav-caret .icon,
.nav-item-open .nav-caret .icon { transform: rotate(180deg); }

.site-nav .nav-dropdown {
  position: absolute;
  z-index: 1;
  top: calc(100% + 0.6rem);
  left: -1.25rem;
  display: block;
  min-width: 11.5rem;
  margin: 0;
  padding: 0.4rem 0;
  list-style: none;
  background: var(--surface-inverse);
  border-radius: 0 0 var(--radius-directional-small) var(--radius-directional-small);
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-0.35rem);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.nav-has-children:hover .nav-dropdown,
.nav-has-children:focus-within .nav-dropdown,
.nav-item-open .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-nav .nav-dropdown li { padding: 0; }
.site-nav .nav-dropdown a { display: block; padding: 0.5rem 1.25rem; white-space: nowrap; }

.menu-button {
  display: none;
  margin-right: 1.25rem;
  padding: 0.6rem;
  border: 0;
  border-top-left-radius: var(--radius-directional-small);
  background: var(--action-primary);
  color: var(--text-inverse);
  cursor: pointer;
}
.menu-button .icon { width: 1.5rem; height: 1.5rem; }
.menu-close { display: none; }
.nav-open .menu-open { display: none; }
.nav-open .menu-close { display: block; }

.rail {
  position: fixed;
  z-index: 1;
  top: 0;
  bottom: 0;
  right: var(--space-rail);
  width: 1px;
  background: var(--color-black);
  pointer-events: none;
}
.rail-arrow {
  position: absolute;
  top: 65vh;
  left: 50%;
  width: clamp(2.5rem, 3.6vw, 3.6rem);
  max-width: none;
  transform: translateX(-50%);
  color: var(--action-primary);
}

/*
  Decorative fields form a background layer pinned to the viewport's right edge,
  sized to the Wix proportions at 1580px. Each graphic is offset so a point inside
  it (its anchor, as a fraction of its width) sits on the rail or the secondary line:
  right = line distance - (1 - anchor) * width.
*/
main {
  --header-height: calc(clamp(1rem, 2.2vw, 2.125rem) + clamp(3rem, 3.9vw, 3.75rem));
  --main-inset-right: calc(var(--space-rail) + clamp(1.25rem, 2vw, 2rem));
  --line-secondary: calc(var(--space-rail) * 0.705);
  --field-w: min(29vw, 30rem);
  --header-field-w: min(32.8vw, 34rem);
  --route-w: min(18.8vw, 19.5rem);
  --field-clearance: calc(var(--space-rail) + 0.632 * var(--field-w) - var(--main-inset-right) + 2rem);
}
.field {
  position: absolute;
  z-index: 0;
  max-width: none;
  pointer-events: none;
}
main > :not(.field) { position: relative; z-index: 2; }

.field-home-header { top: calc(-1 * var(--header-height) - 1.3vw); right: calc(var(--line-secondary) - 0.183 * var(--header-field-w)); width: var(--header-field-w); }
.field-stack { right: 0; display: flex; flex-direction: column; align-items: flex-end; margin-top: -2vw; }
.field-vertical { width: var(--field-w); margin-right: calc(var(--space-rail) - 0.368 * var(--field-w)); }
.field-stack .field-lines { position: static; margin-top: 3rem; }
.field-lines { right: 0; width: var(--field-w); margin-right: calc(var(--space-rail) * 0.28 - 0.103 * var(--field-w)); }
.field-inner { top: 1rem; right: 0; width: min(26vw, 26rem); }

.page-home .problem::after {
  content: "";
  position: absolute;
  top: -500vh;
  bottom: 0;
  left: calc(100% + var(--field-clearance) + var(--main-inset-right) - var(--line-secondary));
  width: 1px;
  background: var(--color-black);
  pointer-events: none;
}

/* ---------- Links and buttons ---------- */

.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-style: italic;
  font-weight: 700;
  font-size: var(--size-small);
  text-decoration: none;
}
.arrow-link .icon { width: 1.25rem; height: 1.25rem; color: var(--action-primary); }
.arrow-link-small { flex-direction: row-reverse; font-size: var(--size-label); }
.arrow-link-small .icon { color: var(--color-black); }

.button {
  display: inline-block;
  padding: 0.8rem 2.25rem;
  background: var(--action-primary);
  color: var(--text-inverse);
  font-style: italic;
  font-weight: 700;
  font-size: var(--size-small);
  text-decoration: none;
  white-space: nowrap;
}
.button:hover { background: var(--color-black); color: var(--text-inverse); }

/* ---------- Quote ---------- */

.quote { margin: 0; }
.quote-mark { width: clamp(2.25rem, 2.8vw, 2.9rem); margin-bottom: 1.25rem; }
.quote-frame {
  padding: clamp(1.5rem, 2.6vw, 2.5rem) clamp(1.5rem, 3vw, 3rem);
  border: var(--border-hairline);
  border-top-left-radius: var(--radius-directional);
  background: var(--surface-page);
}
.quote blockquote { margin: 0; }
.quote-line { font-style: italic; font-weight: 700; font-size: var(--size-lead); line-height: 1.6; }
.quote-full .quote-line { font-size: clamp(1.375rem, 2vw, 2rem); line-height: 1.35; margin-bottom: 2rem; }
.quote-full blockquote p:not(.quote-line) { font-size: var(--size-small); line-height: 1.6; }
.quote-person { display: flex; align-items: center; gap: 0.9rem; margin-top: 1.25rem; }
.quote-person img { width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; }
.quote-person span { display: flex; flex-direction: column; line-height: 1.3; }
.quote-person strong { font-size: var(--size-small); }
.quote-person em { font-size: var(--size-small); }

/* ---------- Home ---------- */

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(2rem, 4.5vw, 5rem);
  align-items: start;
  max-width: none;
  padding-top: clamp(2rem, 4.5vw, 4.5rem);
}
.hero-title { font-size: var(--size-hero); }
.hero .lead { max-width: 34ch; margin: 1.75rem 0 2.25rem; }
.clients { display: flex; align-items: center; gap: 2rem; margin-top: clamp(2.5rem, 4.5vw, 4rem); padding-top: 1.5rem; border-top: var(--border-hairline); }
.clients .label { margin: 0; }
.clients img { width: clamp(7rem, 8.5vw, 8.5rem); }
.hero-quote { position: relative; padding-top: clamp(0rem, 1.5vw, 1.5rem); padding-bottom: 9vw; }
.hero-route {
  position: absolute;
  z-index: 1;
  top: calc(100% - 13vw);
  right: calc(var(--space-rail) * 0.105 - var(--main-inset-right));
  width: var(--route-w);
  max-width: none;
}

.problem {
  max-width: none;
  margin-right: var(--field-clearance);
  margin-top: clamp(4rem, 7vw, 6.5rem);
  border: var(--border-hairline);
  border-top-left-radius: var(--radius-directional);
  background: color-mix(in srgb, var(--surface-page) 75%, transparent);
}
.problem-head {
  display: grid;
  grid-template-columns: clamp(5rem, 10.5vw, 10.5rem) 1fr;
  border-bottom: var(--border-hairline);
}
.problem-icon {
  display: grid;
  place-items: center;
  padding: 1.25rem;
  background: var(--surface-inverse);
  color: var(--text-inverse);
  border-top-left-radius: calc(var(--radius-directional) - 1px);
}
.problem-icon .icon { width: clamp(2.5rem, 4.6vw, 4.5rem); }
.problem-heading { align-self: center; padding: 1.5rem clamp(1.25rem, 3vw, 2.5rem); font-size: var(--size-display); }
.problem-body { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.problem-intro {
  margin: 0;
  padding: clamp(2rem, 3.5vw, 3.5rem) clamp(1.25rem, 3.5vw, 3.5rem);
  font-size: var(--size-lead);
  line-height: 1.85;
}
.problem-body .arrow-rows { border-left: var(--border-hairline); }
.problem-body .arrow-rows li:first-child { border-top: 0; }

.arrow-rows { margin: 0; padding: 0; list-style: none; }
.arrow-rows li {
  display: grid;
  grid-template-columns: 2.75rem 1fr;
  align-items: start;
  gap: 0.5rem;
  padding: clamp(1.5rem, 2.6vw, 2.25rem) clamp(1.25rem, 4vw, 4rem) clamp(1.5rem, 2.6vw, 2.25rem) clamp(1.25rem, 2.6vw, 2.6rem);
  border-top: var(--border-hairline);
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.55;
}
.arrow-rows .icon { width: 1.4rem; color: var(--action-primary); }
.arrow-rows em { color: var(--action-primary); }

.path { margin-top: clamp(4rem, 7vw, 6.5rem); max-width: none; }
.path-intro { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; margin-right: var(--field-clearance); margin-bottom: clamp(2.5rem, 4vw, 3.5rem); }
.path-heading { font-weight: 400; line-height: 1; }
.path-heading > span { display: block; }
.path-line-1 {
  font-style: italic;
  font-weight: 500;
  text-transform: uppercase;
  font-size: clamp(2.25rem, 4.2vw, 4.25rem);
}
.path-line-2 {
  display: flex !important;
  align-items: center;
  gap: 0.25em;
  margin-left: -0.08em;
  font-size: clamp(2.75rem, 5.2vw, 5.25rem);
}
.path-small {
  font-style: italic;
  font-weight: 700;
  font-size: 0.3em;
  line-height: 1.15;
  text-transform: uppercase;
}
.path-line-3 {
  padding-left: 0.3em;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.75rem, 5.4vw, 5.5rem);
}
.path-text { max-width: 40rem; margin: 0; padding-top: clamp(2.6rem, 4.6vw, 4.6rem); font-size: var(--size-lead); line-height: 1.75; }

.path { position: relative; }
.path::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(2.6rem, 4.6vw, 4.6rem);
  bottom: 1.6rem;
  width: 8px;
  background: var(--action-primary);
}
.path > .audiences { margin-left: 8px; }

.audience-tabs { display: flex; gap: 0.75rem; padding-left: 1rem; }
.audience-tab {
  min-width: 11rem;
  padding: 0.65rem 1.5rem;
  border: var(--border-hairline);
  border-bottom: 0;
  border-top-left-radius: var(--radius-directional-small);
  background: transparent;
  color: var(--text-primary);
  font: italic 500 var(--size-label) var(--font-editorial);
  text-transform: uppercase;
  cursor: pointer;
}
.audience-tab[aria-selected="true"] { background: var(--surface-inverse); color: var(--text-inverse); }
.audience-tab { background: color-mix(in srgb, var(--surface-page) 75%, transparent); }
.audience-panel { border: var(--border-hairline); background: color-mix(in srgb, var(--surface-page) 75%, transparent); }
.audience-panel .arrow-rows li:first-child { border-top: 0; }
.audience-panel[hidden] { display: none; }
.audience-cta {
  position: relative;
  display: block;
  width: fit-content;
  margin: 0 0 0 auto;
}
.audiences { position: relative; padding-bottom: 0; }
.audiences::after {
  content: "";
  position: absolute;
  left: -8px;
  bottom: 1.25rem;
  right: 11rem;
  height: 8px;
  background: var(--action-primary);
}
.audiences::before {
  content: "";
  position: absolute;
  right: 10.6rem;
  bottom: 0.45rem;
  width: 1.75rem;
  height: 1.75rem;
  border-top: 8px solid var(--action-primary);
  border-right: 8px solid var(--action-primary);
  transform: rotate(45deg);
}
.audience-cta { margin-top: -0.25rem; }

.outcomes { margin-top: clamp(5rem, 9vw, 8rem); max-width: none; }
.section-head, .related-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 1.75rem; }
.section-heading, .related-heading { font-size: var(--size-display); }

/* ---------- Cards ---------- */

.card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.2vw, 1.25rem);
  max-width: none;
}
.card { display: flex; flex-direction: column; background: var(--surface-raised); position: relative; }
.card-image { width: 100%; aspect-ratio: 1.69; object-fit: cover; }
.card-resource .card-image { aspect-ratio: 1.22; }
.card-body { display: flex; flex-direction: column; flex: 1; padding: clamp(1.25rem, 2vw, 1.75rem) clamp(1.25rem, 2vw, 2rem) 2rem; }
.card-title { margin-bottom: 1.25rem; font-style: italic; font-size: 1.1875rem; line-height: 1.35; }
.card-resource .card-title { font-size: 1rem; margin-bottom: 0.75rem; }
.card-title a { text-decoration: none; }
.card-title a::after { content: ""; position: absolute; inset: 0; }
.card-body p { font-size: var(--size-small); line-height: 1.55; }
.card-resource .card-body p { font-size: 0.875rem; }
.card-more {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
  padding-top: 1.75rem;
  color: var(--action-primary);
  font-size: var(--size-label);
}
.card-more .icon { width: 1.1rem; }
.card:hover .card-title a { color: var(--action-primary); }

/* ---------- Closing and footer ---------- */

.closing {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1.5rem, 4vw, 4rem);
  max-width: none;
  margin-top: var(--space-section);
}
.closing-heading { font-size: var(--size-section); }
.closing-text { max-width: 22rem; font-style: italic; font-weight: 700; font-size: var(--size-small); line-height: 1.75; }

.site-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem clamp(3rem, 8vw, 8rem);
  padding: clamp(3rem, 6vw, 5rem) var(--space-gutter) 3rem;
  padding-right: calc(var(--space-rail) + 2rem);
  color: var(--text-muted);
  font-size: var(--size-label);
}
.footer-notes p { margin: 0 0 0.75rem; max-width: 16rem; }
.footer-notes a { color: inherit; }
.footer-connect { display: flex; align-items: center; gap: 1.5rem; color: var(--text-primary); }
.footer-connect .display { font-size: 1rem; font-weight: 400; }
.footer-connect .icon { width: 1.5rem; height: 1.5rem; }

/* ---------- Inner pages ---------- */

.breadcrumbs { padding-top: clamp(1rem, 2vw, 1.75rem); font-size: var(--size-label); font-style: italic; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.25rem 0.6rem; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: flex; align-items: center; gap: 0.6rem; }
.breadcrumbs li + li::before { content: "/"; color: var(--action-primary); font-style: normal; }
.breadcrumbs a { color: var(--text-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--action-primary); text-decoration: underline; }
.breadcrumbs [aria-current] { max-width: 42ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.breadcrumbs ~ :is(.page-intro, .mw-header, .article, .cs-opening, .about-hero, .offer-hero) { padding-top: clamp(1.5rem, 3.5vw, 3.5rem); }

.page-intro { padding-top: clamp(2.5rem, 6vw, 6rem); margin-bottom: clamp(2rem, 4vw, 3.5rem); max-width: 50rem; }
.page-title {
  font-style: italic;
  font-weight: 500;
  font-size: var(--size-page-title);
  line-height: 1;
  text-transform: uppercase;
}
.page-title.display { font-style: normal; font-size: var(--size-section); }
.page-intro .lead { margin-top: 2rem; max-width: 36rem; }
.page-intro .mw-intro { max-width: 46rem; }

.about-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  align-items: end;
  gap: 2rem;
  padding-top: clamp(2rem, 5vw, 5rem);
  max-width: 76rem;
}
.about-text { padding-bottom: 3rem; }
.stacked-title { font-weight: 400; margin-bottom: 2rem; }
.stacked-title > span { display: block; }
.stacked-kicker {
  font-style: italic;
  font-weight: 500;
  text-transform: uppercase;
  font-size: clamp(2.5rem, 4.4vw, 4.5rem);
  line-height: 1.1;
}
.stacked-title .display { font-size: clamp(3rem, 6vw, 6rem); }
.about-text .lead { max-width: 30rem; }
.about-photo { width: min(100%, 26rem); justify-self: start; }

.manifesto { max-width: 74rem; border-top: var(--border-hairline); }
.manifesto-item { border: var(--border-hairline); border-top: 0; }
.manifesto-item summary {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  padding: 1.6rem clamp(1.25rem, 2.6vw, 2.5rem);
  font-style: italic;
  font-weight: 700;
  font-size: var(--size-small);
  cursor: pointer;
  list-style: none;
}
.manifesto-item summary::-webkit-details-marker { display: none; }
.manifesto-chevron { flex: none; width: 1.1rem; color: var(--action-primary); transition: transform 0.2s; }
.manifesto-item[open] .manifesto-chevron { transform: rotate(180deg); }
.manifesto-body { padding: 0 clamp(1.25rem, 3vw, 2.5rem) 2rem clamp(1.25rem, 6vw, 6.75rem); font-size: var(--size-small); }
.read-more { color: var(--action-primary); font-style: italic; font-weight: 700; }

.article { max-width: var(--measure-article); margin: 0 auto; padding-top: clamp(2.5rem, 6vw, 5.5rem); }
.article-title { color: var(--action-primary); font-style: italic; font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1.3; }
.article-meta { margin: 1rem 0 2rem; color: var(--text-muted); font-size: var(--size-label); }
.article-image { width: 100%; margin-bottom: 2rem; }
.article .prose { margin-left: 0; max-width: none; font-size: var(--size-body); line-height: 1.7; }
.article .prose p { margin-bottom: 1.6em; }

.related { margin: var(--space-section) auto 0; max-width: 66rem; }

.booking { max-width: 66rem; }
.booking iframe { display: block; width: 100%; height: 760px; border: 0; }

/* ---------- Case study ---------- */

.cs-opening {
  display: grid;
  grid-template-columns: minmax(10rem, 23rem) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 2.6vw, 2.25rem);
  max-width: 72rem;
  padding-top: clamp(2.5rem, 5vw, 5rem);
}
.cs-opening-image {
  width: 100%;
  aspect-ratio: 1.46;
  object-fit: cover;
  border: var(--border-hairline);
  border-top-left-radius: var(--radius-directional);
}
.cs-title { font-size: clamp(1.75rem, 2.9vw, 2.875rem); line-height: 1.2; }

.facts {
  max-width: 70.5rem;
  margin-top: 2rem;
  border: var(--border-hairline);
  border-top-left-radius: var(--radius-directional);
}
.facts-summary {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin: 0;
  padding: 1.6rem clamp(1.25rem, 2.6vw, 2.5rem);
  font-style: italic;
  font-weight: 700;
  font-size: var(--size-small);
}
.facts-summary .icon { flex: none; width: 1.4rem; color: var(--action-primary); }
.facts-figures { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: 0; border-top: var(--border-hairline); }
.facts-figures > div:last-child { border-right: 0; }
.facts-figures > div {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 0.4rem;
  padding: 1.6rem 2.75rem;
  border-right: var(--border-hairline);
  font-size: var(--size-small);
}
.facts-figures dt { font-style: italic; font-weight: 700; }
.facts-figures dd { margin: 0; font-weight: 700; }

.cs-intro { margin-top: 3rem; font-size: var(--size-lead); }

.highlight {
  display: grid;
  grid-template-columns: 2.75rem 1fr;
  max-width: 70.5rem;
  margin-top: 3.5rem;
  padding: 2rem clamp(1.25rem, 2.6vw, 2.5rem) 2.25rem;
  border: var(--border-hairline);
  border-top-left-radius: var(--radius-directional);
  background: var(--surface-muted);
}
.highlight .icon { width: 1.4rem; color: var(--action-primary); }
.highlight p { max-width: 36rem; font-style: italic; font-weight: 700; font-size: var(--size-small); line-height: 1.6; }

.metrics { position: relative; max-width: 70.5rem; margin-top: 4rem; padding-left: 3rem; }
.metrics-label {
  position: absolute;
  left: 0;
  margin: 0;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-style: italic;
  font-size: var(--size-label);
  text-transform: uppercase;
}
.metrics-label-before { top: 34%; }
.metrics-label-after { top: 76%; }
.metrics-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin: 0; padding: 0; list-style: none; }
.metric { display: flex; flex-direction: column; align-items: center; text-align: center; }
.metric-name { min-height: 3em; margin: 0; font-size: var(--size-lead); line-height: 1.2; max-width: 11em; }
.metric-before,
.metric-after {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: clamp(8rem, 13.5vw, 13.5rem);
  aspect-ratio: 1;
  border-radius: 50%;
  padding: 1rem;
}
.metric-before { background: var(--ring) center / 150% no-repeat; }
.metric-after { border: var(--border-hairline); }
.metric-value { font-family: var(--font-display); font-weight: 700; font-size: clamp(2rem, 3.2vw, 3.25rem); line-height: 1; }
.metric-unit { margin-top: 0.4rem; font-style: italic; font-weight: 700; font-size: var(--size-label); text-transform: uppercase; line-height: 1.25; }
.metric-small .metric-value { font-family: var(--font-editorial); font-size: var(--size-body); line-height: 1.25; }
.metric-small .metric-unit { text-transform: none; font-weight: 400; }
.metric-arrow { width: 1.75rem; margin: 0.75rem 0; color: var(--action-primary); }

.cs-section { margin-top: clamp(4rem, 7vw, 6rem); }
.cs-heading { font-size: var(--size-section); margin-bottom: 1.5rem; }
.cs-section .prose { font-size: var(--size-lead); line-height: 1.6; }

.steps { max-width: 47rem; margin: 0; padding: 0; list-style: none; }
.step { border: var(--border-hairline); border-top: 0; }
.step:first-child { border-top: var(--border-hairline); border-top-left-radius: var(--radius-directional); }
.step-head {
  padding: 1.6rem clamp(1.25rem, 2.6vw, 2rem);
  border-bottom: var(--border-hairline);
  font-size: var(--size-lead);
}
.step-label { color: var(--action-primary); font-style: italic; text-transform: uppercase; margin-right: 0.35rem; }
.step-body { padding: 1.5rem clamp(1.25rem, 2.6vw, 2rem) 1.75rem clamp(1.25rem, 4.4vw, 3.25rem); margin: 0; max-width: none; }
.cs-section .step-body { font-size: var(--size-body); }

.cs-quote { margin-top: clamp(4rem, 7vw, 6rem); max-width: 46rem; margin-left: clamp(0px, 3.4vw, 3.25rem); }

/* ---------- Offer pages (System Offer, Data Offer) ---------- */

.offer-hero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; max-width: none; padding-top: clamp(2rem, 5vw, 5rem); }
.offer-hero-title { font-size: clamp(2.5rem, 5vw, 5rem); }
.offer-hero-title .icon-inline { display: inline-block; width: 0.6em; height: 0.6em; margin: 0 0.15em; vertical-align: 0.05em; color: var(--action-primary); }
.offer-hero .lead { margin-top: 1.75rem; max-width: 34rem; }
.offer-hero .hero-quote { margin-top: 2rem; }
.offer-hero-watermark { top: -1rem; right: 8rem; width: min(30vw, 24rem); opacity: 0.6; }

.offer-section { margin-top: clamp(4rem, 8vw, 7rem); max-width: none; }
.offer-kicker { color: var(--action-primary); }
.offer-section h2 { font-size: var(--size-section); margin-bottom: 1.5rem; max-width: 42rem; }

.offer-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.offer-split-reverse { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr); }
.offer-split-reverse > :last-child { order: -1; }
.offer-split .prose { max-width: none; margin-left: 0; font-size: var(--size-lead); }
.offer-split img { border: var(--border-hairline); border-top-left-radius: var(--radius-directional); }

.offer-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2.5rem; border: var(--border-hairline); border-top-left-radius: var(--radius-directional); }
.offer-points li { display: flex; gap: 0.75rem; padding: 1.75rem clamp(1.25rem, 2.2vw, 2rem); border-left: var(--border-hairline); font-style: italic; font-weight: 700; font-size: var(--size-small); line-height: 1.5; }
.offer-points li:first-child { border-left: 0; }
.offer-points .icon { flex: none; width: 1.25rem; color: var(--action-primary); }

.offer-callout { display: block; margin: 1.75rem 0; padding: 0.5rem 1rem; background: var(--action-primary); color: var(--text-inverse); font-weight: 700; text-transform: uppercase; font-size: var(--size-small); line-height: 1.7; }

.offer-pullquote { max-width: 46rem; margin: 0 auto; text-align: center; }
.offer-pullquote h2 { margin: 0 auto 1.5rem; max-width: none; }
.offer-pullquote p { font-size: var(--size-lead); max-width: 38rem; margin: 0 auto; }
.offer-pullquote-accent h2 { color: var(--action-primary); font-style: normal; text-transform: none; font-family: var(--font-editorial); font-size: clamp(1.75rem, 2.8vw, 2.5rem); line-height: 1.3; }

.process-circles { display: flex; align-items: center; justify-content: center; gap: 0; margin: 3rem 0; }
.process-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(7rem, 11vw, 11rem);
  aspect-ratio: 1;
  border: var(--border-hairline);
  border-radius: 50%;
  background: var(--surface-page);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(0.9rem, 1.3vw, 1.25rem);
  text-transform: uppercase;
}
.process-link { width: clamp(2.5rem, 5vw, 5rem); height: 2px; background: var(--color-black); }
.process-link-arrow { width: clamp(2.5rem, 5vw, 5rem); color: var(--action-primary); }
.offer-process-text { max-width: 34rem; margin: 0 auto; text-align: center; font-size: var(--size-lead); }

.offer-steps { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.6fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; margin-top: 2.5rem; }
.offer-steps-list { margin: 0; padding: 0; list-style: none; border-top: var(--border-hairline); }
.offer-step { display: grid; grid-template-columns: clamp(3.5rem, 6vw, 5rem) 1fr; gap: 1.25rem; padding: 2rem 0; border-bottom: var(--border-hairline); }
.offer-step-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(3.5rem, 6vw, 5rem);
  aspect-ratio: 1;
  border: var(--border-hairline);
  border-radius: 50%;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--size-label);
  text-align: center;
  line-height: 1.1;
}
.offer-step h3 { font-size: 1.375rem; margin-bottom: 1rem; }
.offer-step p { font-size: var(--size-small); line-height: 1.65; max-width: 38rem; }
.offer-step .outcome { color: var(--action-primary); font-weight: 400; }
.offer-step .outcome strong { font-weight: 700; }
.offer-steps-image { position: sticky; top: 2rem; align-self: stretch; height: 100%; min-height: 20rem; object-fit: cover; border: var(--border-hairline); border-top-left-radius: var(--radius-directional); }

.offer-closing { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: center; margin-top: var(--space-section); max-width: none; }
.offer-closing-kicker { display: flex; align-items: center; padding: 1.5rem clamp(1.25rem, 2.6vw, 2.5rem); border: var(--border-hairline); border-top-left-radius: var(--radius-directional); font-style: italic; font-size: var(--size-lead); margin-bottom: 2rem; }
.offer-closing-kicker .icon { color: var(--action-primary); margin-right: 0.75rem; vertical-align: -0.15em; width: 1.25rem; }
.offer-closing h2 { font-weight: 700; font-style: normal; font-family: var(--font-editorial); text-transform: none; font-size: clamp(1.75rem, 2.8vw, 2.75rem); line-height: 1.2; margin-bottom: 1.25rem; }
.offer-closing p { font-size: var(--size-small); line-height: 1.6; max-width: 32rem; margin-bottom: 1rem; }
.offer-closing-cta { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.offer-closing-cta .icon { color: var(--action-primary); width: 1.5rem; }
.offer-closing-photo { grid-row: 1 / 3; border-top-left-radius: var(--radius-directional); }

.offer-block { margin-top: 2.5rem; }

/* ---------- Resources hub ---------- */

.hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.2vw, 1.25rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.hub-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: var(--space-frame);
  border: var(--border-hairline);
  border-top-left-radius: var(--radius-directional);
  background: color-mix(in srgb, var(--surface-page) 75%, transparent);
}
.hub-title { margin-bottom: 1.25rem; font-size: clamp(1.5rem, 2vw, 2rem); }
.hub-title a { text-decoration: none; }
.hub-title a::after { content: ""; position: absolute; inset: 0; }
.hub-card p { font-size: var(--size-small); }
.hub-card:hover .hub-title a { color: var(--action-primary); }

/* ---------- AI Market Watch ---------- */

.page-market-watch {
  --mw-fill: color-mix(in srgb, var(--surface-raised) 75%, transparent);
}
.mw-field { margin-top: -2vw; }

.mw-header { max-width: 46rem; padding-top: clamp(2.5rem, 6vw, 6rem); }
.mw-header .kicker a { text-decoration: none; }
.mw-title {
  color: var(--action-primary);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.25rem, 4.2vw, 3.75rem);
  line-height: 1.05;
}
.mw-standfirst { margin-top: 1.5rem; }
.mw-meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; margin-top: 1.5rem; color: var(--text-muted); font-size: var(--size-label); }
.mw-meta a { color: inherit; }

.mw-status-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: clamp(2rem, 4vw, 3.5rem);
  border: var(--border-hairline);
  border-left: var(--border-brand);
  background: var(--mw-fill);
}
.mw-status-panel > div { padding: clamp(1.25rem, 2.4vw, 2rem) clamp(1.25rem, 3vw, 2.5rem); }
.mw-status-stage { border-right: var(--border-hairline); }
.mw-big { margin: 0.5rem 0 0.75rem; font-size: clamp(2.5rem, 4.6vw, 4.25rem); }
.mw-status-sub { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; font-size: var(--size-small); }

.mw-meter { display: inline-grid; grid-template-columns: repeat(5, 0.7rem); gap: 0.2rem; margin-right: 0.5rem; vertical-align: middle; }
.mw-meter i { height: 0.7rem; border: 1px solid var(--color-black); }
.mw-meter i.on { background: var(--color-black); }
.mw-level-4 .mw-meter i:nth-child(4),
.mw-level-5 .mw-meter i:nth-child(n + 4) { background: var(--signal-worse); border-color: var(--signal-worse); }
.mw-status { white-space: nowrap; font-weight: 700; }

.mw-trend { white-space: nowrap; font-weight: 700; }
.mw-trend::before { margin-right: 0.3rem; }
.mw-trend-worse { color: var(--signal-worse); }
.mw-trend-worse::before { content: "▼"; }
.mw-trend-better { color: var(--signal-better); }
.mw-trend-better::before { content: "▲"; }
.mw-trend-unchanged { color: var(--text-muted); }
.mw-trend-unchanged::before { content: "•"; }

.mw-body { margin-top: clamp(2rem, 4vw, 3rem); line-height: 1.65; }
.mw-body > p, .mw-body > ul, .mw-body > ol:not(.mw-chain), .mw-body > h3 { max-width: var(--measure-article); }
.mw-body h2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin: clamp(3rem, 6vw, 4.5rem) 0 1.25rem;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.2vw, 2.125rem);
  line-height: 1;
  text-transform: uppercase;
}
.mw-body > h2:first-child { margin-top: 0; }
.mw-body h3 { margin: 2rem 0 0.75rem; font-style: italic; font-weight: 500; font-size: 1.1875rem; }
.mw-n {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: var(--border-hairline);
  font-size: 1.125rem;
}
.mw-help {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  font-family: var(--font-editorial);
  font-style: italic;
  font-weight: 500;
  font-size: var(--size-label);
  text-transform: none;
  text-decoration: none;
}
.mw-help span {
  display: inline-grid;
  place-items: center;
  width: 1.3rem;
  height: 1.3rem;
  border: 1px solid var(--action-primary);
  border-radius: 50%;
  color: var(--action-primary);
  font-style: normal;
  font-weight: 700;
}
.mw-help:hover span { background: var(--action-primary); color: var(--text-inverse); }

.mw-body ul { margin: 1.25rem 0; padding: 0; list-style: none; }
.mw-body ul li { position: relative; margin-bottom: 0.75rem; padding-left: 2rem; }
.mw-body ul li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.5em;
  width: 1rem; height: 0.7rem;
  background: var(--action-primary);
  -webkit-mask: url("/assets/img/graphics/arrow-right.svg") center / contain no-repeat;
  mask: url("/assets/img/graphics/arrow-right.svg") center / contain no-repeat;
}
.mw-body a { color: var(--action-primary); }
.mw-body hr { margin: clamp(3rem, 6vw, 4.5rem) 0 0; border: 0; border-top: var(--border-hairline); }
.mw-body ol { padding-left: 1.5rem; }
.mw-body ol li { margin-bottom: 0.5rem; }
.mw-body code { font-family: inherit; font-style: italic; color: var(--text-muted); }
sup.fn { font-size: 0.65em; line-height: 0; }
sup.fn a { text-decoration: none; }
sup.fn + sup.fn { margin-left: 0.15em; }

.mw-body table {
  width: 100%;
  margin: 1.25rem 0;
  border-collapse: collapse;
  border: var(--border-hairline);
  background: var(--mw-fill);
  font-size: var(--size-small);
  line-height: 1.5;
}
.mw-body th, .mw-body td { padding: 0.75rem 0.9rem; border-bottom: var(--border-hairline); text-align: left; vertical-align: top; }
.mw-body th { border-bottom-width: 2px; font-style: italic; font-weight: 500; background: var(--surface-page); }
.mw-body tr:last-child td { border-bottom: 0; }
.mw-body td:first-child { font-weight: 700; }

.mw-frames { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.mw-frame { padding: 1.25rem 1.5rem; border: var(--border-hairline); background: var(--mw-fill); font-size: var(--size-small); }
.mw-frame h3 { margin: 0 0 1rem; font-family: var(--font-display); font-style: normal; font-weight: 700; font-size: 1.375rem; text-transform: uppercase; }
.mw-frame ul { margin: 0; }
.mw-frame-bad { border-top: 4px solid var(--signal-worse); }
.mw-frame-bad h3 { color: var(--signal-worse); }
.mw-frame-bad h3::before { content: "▼ "; }
.mw-frame-good { border-top: 4px solid var(--signal-better); }
.mw-frame-good h3 { color: var(--signal-better); }
.mw-frame-good h3::before { content: "▲ "; }
.mw-frame-good li::before { background: var(--signal-better); }
.mw-frame-counter { grid-column: 1 / -1; border-style: dashed; }
.mw-frame-counter li::before { background: var(--color-black); }

.mw-chain, .mw-body .mw-chain {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 1.5rem 0;
  padding: clamp(1.5rem, 3vw, 2.25rem) 0.5rem;
  border: var(--border-hairline);
  background: var(--mw-fill);
  list-style: none;
}
.mw-body .mw-chain li { margin: 0; padding: 0 0.5rem; }
.mw-body .mw-chain li::before { content: none; }
.mw-stage { position: relative; display: flex; flex-direction: column; align-items: center; gap: 0.25rem; text-align: center; font-size: var(--size-label); line-height: 1.35; }
.mw-chain .mw-stage:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 1.125rem;
  left: 50%;
  width: 100%;
  border-top: 1px solid var(--color-black);
}
.mw-chain .mw-stage-confirmed:not(:last-child)::after { top: calc(1.125rem - 1.5px); border-top: 4px solid var(--signal-worse); }
.mw-chain .mw-stage-headline:not(:last-child)::after { width: 60%; border-top: 2px dashed var(--signal-worse); }
.mw-dot {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  margin-bottom: 0.5rem;
  border: 1px solid var(--color-black);
  border-radius: 50%;
  background: var(--surface-raised);
  font-weight: 700;
}
.mw-stage-confirmed .mw-dot, .mw-chain-key .mw-dot { background: var(--color-black); color: var(--text-inverse); }
.mw-stage-headline .mw-dot { width: 2.75rem; height: 2.75rem; margin-top: -0.25rem; margin-bottom: 0.25rem; border-color: var(--signal-worse); background: var(--signal-worse); color: var(--text-inverse); font-size: 1.125rem; }
.mw-stage-name { font-weight: 700; }
.mw-stage-headline .mw-stage-name { color: var(--signal-worse); }
.mw-stage-note { color: var(--text-muted); font-style: italic; }
.mw-stage-next { color: var(--signal-worse); }
.mw-stage-partial .mw-dot { border: 2px dashed var(--color-black); background: var(--surface-muted); }

/* History strips: worse always points down, so Calm sits at the top of each row. */
.mw-strips { margin: 1.75rem 0 2.25rem; padding: 1rem 1.25rem 0.75rem; border: var(--border-hairline); background: var(--mw-fill); }
.mw-strips-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1.5rem; margin-bottom: 0.75rem; font-size: var(--size-label); }
.mw-strips-head > span:first-child { font-weight: 700; }
.mw-strips-key { color: var(--text-muted); font-style: italic; }
.mw-k-worse { color: var(--signal-worse); }
.mw-k-better { color: var(--signal-better); }
.mw-strip { display: grid; grid-template-columns: 11.5rem minmax(0, 1fr) 6.5rem; align-items: center; gap: 0 1rem; padding: 0.2rem 0; border-top: 1px solid color-mix(in srgb, var(--color-black) 8%, transparent); font-size: var(--size-label); }
.mw-strip:first-of-type { border-top: 0; }
.mw-strip-label { font-weight: 700; }
.mw-strip-svg { display: block; width: 100%; height: 2.25rem; overflow: visible; }
.mw-strip-svg line { vector-effect: non-scaling-stroke; }
.mw-strip-tick { stroke: var(--color-black); stroke-opacity: 0.12; stroke-width: 1; }
.mw-strip-flat { stroke: var(--color-black); stroke-width: 2; }
.mw-strip-worse { stroke: var(--signal-worse); stroke-width: 2.5; }
.mw-strip-better { stroke: var(--signal-better); stroke-width: 2.5; }
.mw-strip-now { text-align: right; font-variant-numeric: tabular-nums; }
.mw-strip-axis { border-top: 0; color: var(--text-muted); }
.mw-strip-dates { display: flex; justify-content: space-between; }

/* Market indicators against their thresholds, under the key-indicators table. */
.mw-body .mw-ind-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; max-width: none; margin: 1.5rem 0 2rem; }
.mw-ind { margin: 0; padding: 0.75rem 0.9rem 0.6rem; border: var(--border-hairline); background: var(--mw-fill); }
.mw-ind figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-size: var(--size-label); }
.mw-ind-title { font-weight: 700; }
.mw-ind-latest { font-variant-numeric: tabular-nums; font-weight: 700; }
.mw-ind-svg { display: block; width: 100%; height: auto; margin-top: 0.35rem; }
.mw-ind-line { fill: none; stroke: var(--color-black); stroke-width: 2; stroke-linejoin: round; }
.mw-ind-dot { fill: var(--color-black); }
.mw-ind-th { stroke: var(--signal-worse); stroke-width: 1.5; stroke-dasharray: 5 4; }
.mw-ind-th-label { fill: var(--signal-worse); font-style: italic; paint-order: stroke; stroke: var(--mw-fill); stroke-width: 5px; stroke-linejoin: round; }
.mw-ind-gridline { stroke: var(--color-black); stroke-opacity: 0.07; }
.mw-ind-tick { stroke: var(--color-black); stroke-opacity: 0.1; }
.mw-ind-axis { fill: var(--text-muted); font-variant-numeric: tabular-nums; }
.mw-body .mw-ind-source { margin: 0.2rem 0 0; color: var(--text-muted); font-size: var(--size-label); font-style: italic; }
.mw-body .mw-ind-note { grid-column: 1 / -1; margin: 0; color: var(--text-muted); font-size: var(--size-label); font-style: italic; }

.mw-pinned {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  padding: var(--space-frame);
  border: var(--border-hairline);
  border-left: var(--border-brand);
  border-top-left-radius: var(--radius-directional);
  background: color-mix(in srgb, var(--surface-page) 75%, transparent);
}
.mw-pinned-label { display: flex; align-items: center; gap: 0.6rem; color: var(--action-primary); }
.mw-pinned-label .icon { width: 1.1rem; height: 1.1rem; }
.mw-pinned-heading { margin: 0 0 1.25rem; font-size: var(--size-display); }
.mw-pinned-text p { max-width: 32rem; }
.mw-pinned-links { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-top: 1.75rem; }
.mw-chain-key { margin: 0; padding: 0; border: 0; background: none; }
.mw-chain-key li { padding: 0 0.25rem; }

.mw-history { max-width: none; margin-top: clamp(2.5rem, 5vw, 4rem); margin-right: var(--field-clearance); }
.mw-history-heading { font-size: var(--size-display); }

.mw-now { margin-top: clamp(2.5rem, 5vw, 4rem); margin-bottom: clamp(2.5rem, 5vw, 4rem); margin-right: var(--field-clearance); }
.mw-now-heading { margin: 0.75rem 0 0.75rem; font-size: var(--size-display); }
.mw-now-summary { max-width: 40rem; font-size: var(--size-lead); font-style: italic; font-weight: 500; line-height: 1.45; }
.mw-now .mw-meta a { color: var(--action-primary); font-style: italic; font-weight: 700; }
.mw-now .mw-status-panel { margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.mw-now .mw-chain { margin-top: 1rem; }
.mw-now-pillars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; margin: 1rem 0 0; padding: 0; list-style: none; border-top: var(--border-hairline); }
.mw-now-pillars li { display: grid; grid-template-columns: minmax(0, 1fr) 4.4rem 5.75rem 6.5rem; align-items: center; column-gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px dotted color-mix(in srgb, var(--color-black) 35%, transparent); font-size: var(--size-small); }
.mw-now-pillar { font-weight: 700; }
.mw-now-pillars .mw-meter { margin: 0; }
.mw-now-pillars .mw-trend { font-size: var(--size-label); font-weight: 500; font-style: italic; text-align: right; }
.mw-now-next { margin: 1.5rem 0 0; }
.mw-level-4 .mw-status, .mw-level-5 .mw-status { color: var(--signal-worse); }

.mw-events { max-width: 82rem; margin-top: clamp(2rem, 4vw, 3rem); margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.mw-events-intro { max-width: 44rem; margin: 0.5rem 0 1rem; color: var(--text-muted); font-size: var(--size-small); }

.mw-tl-scroll { overflow-x: auto; padding: 0.75rem 0 0.25rem; border-top: var(--border-hairline); border-bottom: var(--border-hairline); background: var(--mw-fill); }
.mw-tl { display: block; width: 100%; min-width: 54rem; height: auto; font-family: var(--font-editorial); }
.mw-tl-month { stroke: var(--color-black); stroke-opacity: 0.12; }
.mw-tl-month-label, .mw-tl-today-label { font-size: 12px; font-style: italic; fill: var(--text-muted); }
.mw-tl-today { stroke: var(--signal-worse); stroke-dasharray: 3 3; }
.mw-tl-today-label { fill: var(--signal-worse); font-weight: 700; }
.mw-tl-lane { font-family: var(--font-display); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.mw-tl-track { stroke: var(--color-black); stroke-width: 1.5; }
.mw-tl-tick { stroke: var(--color-black); stroke-width: 1.5; }
.mw-tl-leader { stroke: var(--color-black); stroke-opacity: 0.3; }
.mw-tl-chip { fill: var(--surface-page); stroke: var(--color-black); stroke-width: 1; }
.mw-tl-label { font-size: 12px; }
.mw-tl-date { font-weight: 700; }
.mw-tl-event:hover .mw-tl-chip, .mw-tl-event:focus .mw-tl-chip { stroke: var(--action-primary); }
.mw-tl-event:hover .mw-tl-label, .mw-tl-event:focus .mw-tl-label { fill: var(--action-primary); }
.mw-tl-dot, .mw-tl-window { stroke: var(--color-black); stroke-width: 1.5; }
.mw-tl-dot.mw-tl-confirmed, .mw-tl-window.mw-tl-confirmed { fill: var(--color-black); }
.mw-tl-dot.mw-tl-planned, .mw-tl-window.mw-tl-planned { fill: var(--surface-raised); }
.mw-tl-dot.mw-tl-reported, .mw-tl-window.mw-tl-reported { fill: color-mix(in srgb, var(--signal-worse) 18%, transparent); stroke: var(--signal-worse); stroke-dasharray: 4 2; }
.mw-tl-dot.mw-tl-expected, .mw-tl-window.mw-tl-expected { fill: var(--surface-raised); stroke-dasharray: 3 2; }

.mw-tl-key { display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; margin: 0.75rem 0 1.5rem; padding: 0; list-style: none; color: var(--text-muted); font-size: var(--size-label); }
.mw-tl-key li { display: flex; align-items: center; gap: 0.5rem; }
.mw-tl-swatch { display: inline-block; width: 1.5rem; height: 0.7rem; border: 1.5px solid var(--color-black); }
.mw-tl-swatch.mw-tl-confirmed { background: var(--color-black); }
.mw-tl-swatch.mw-tl-planned { background: var(--surface-raised); }
.mw-tl-swatch.mw-tl-reported { border: 1.5px dashed var(--signal-worse); background: color-mix(in srgb, var(--signal-worse) 18%, transparent); }
.mw-tl-swatch.mw-tl-expected { border-style: dashed; background: var(--surface-raised); }
.mw-tl-firm { font-style: italic; }
.mw-tl-firm.mw-tl-reported { color: var(--signal-worse); }
.mw-event:target { box-shadow: inset 8px 0 0 var(--action-primary); }
.mw-event-minor .mw-event-why { color: var(--text-muted); }
.mw-event-minor .mw-entry-summary { font-size: var(--size-small); }
.mw-event { align-items: start; }
.mw-event .mw-entry-summary { margin: 0; }
.mw-event-why { margin: 0.3rem 0 0; font-size: var(--size-small); line-height: 1.5; }
.mw-event-src { display: block; margin-top: 0.2rem; color: var(--text-muted); font-size: var(--size-label); font-style: italic; }
.mw-event-src a { color: inherit; }
.mw-month { margin: 1.75rem 0 0.35rem; font-style: italic; font-weight: 500; font-size: var(--size-small); }
.mw-entries { margin: 0; padding: 0; list-style: none; border-bottom: var(--border-hairline); }
.mw-entry {
  position: relative;
  display: grid;
  grid-template-columns: 3.75rem minmax(0, 1fr) 1.25rem;
  align-items: center;
  gap: 1rem;
  padding: 0.65rem 0.75rem;
  border-top: var(--border-hairline);
  background: color-mix(in srgb, var(--surface-page) 75%, transparent);
}
.mw-entry-latest { box-shadow: inset 8px 0 0 var(--action-primary); }
.mw-entry-date { display: flex; flex-direction: column; font-style: italic; font-size: var(--size-label); line-height: 1.2; }
.mw-entry-date .display { font-size: 2.125rem; }
.mw-entry-meta { margin: 0 0 0.3rem; color: var(--text-muted); font-size: var(--size-label); }
.mw-entry-flag { margin-right: 0.6rem; padding: 0.1rem 0.45rem; background: var(--action-primary); color: var(--text-inverse); font-style: italic; font-weight: 700; }
.mw-entry-summary { font-style: italic; font-weight: 500; font-size: clamp(1rem, 1.2vw, 1.1875rem); line-height: 1.4; }
.mw-entry-summary a { text-decoration: none; }
.mw-entry-summary a::after { content: ""; position: absolute; inset: 0; }
.mw-entry .icon { width: 1.25rem; color: var(--action-primary); transition: transform 0.15s ease; }
.mw-entry:hover .mw-entry-summary a { color: var(--action-primary); }
.mw-entry:hover .icon { transform: translateX(0.25rem); }

.mw-disclaimer { margin-top: clamp(3rem, 6vw, 4rem); padding-top: 1.25rem; border-top: var(--border-hairline); color: var(--text-muted); font-size: var(--size-label); }
.mw-disclaimer a { color: inherit; }

.mw-pager {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-top: 1.5rem;
  border-top: var(--border-hairline);
}
.mw-pager-link { display: flex; flex-direction: column; font-style: italic; font-size: var(--size-small); text-decoration: none; }
.mw-pager-next { text-align: right; }

/* ---------- AI Market Watch trackers ---------- */

.page-tracker {
  --tk-equity: var(--color-venetian-red);
  --tk-spend: var(--color-black);
  --tk-guarantee: var(--color-venetian-red);
  --tk-financing: #B5AE98;
  --tk-hatch: repeating-linear-gradient(135deg, var(--tk-guarantee) 0 2px, transparent 2px 5px);
}
.mw-tracker-cards { margin-top: clamp(2.5rem, 5vw, 4rem); margin-right: var(--field-clearance); }
.mw-tracker-cards .mw-history-heading { margin-bottom: 1rem; }
.mw-tracker-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.mw-tracker-card-lead { grid-column: 1 / -1; }
.mw-tracker-card { position: relative; display: flex; flex-direction: column; gap: 0.6rem; padding: 1.25rem 1.4rem; border: var(--border-hairline); border-top: 4px solid var(--action-primary); background: var(--mw-fill); }
.mw-tracker-card h3 { font-family: var(--font-display); font-size: 1.375rem; text-transform: uppercase; }
.mw-tracker-card h3 a { text-decoration: none; }
.mw-tracker-card h3 a::after { content: ""; position: absolute; inset: 0; }
.mw-tracker-card p { font-size: var(--size-small); line-height: 1.5; }
.mw-tracker-card .label { color: var(--action-primary); }
.mw-tracker-card:hover h3 a { color: var(--action-primary); }

.tk-switch { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.75rem; }
.tk-switch a { padding: 0.4rem 1rem; border: var(--border-hairline); border-radius: var(--radius-control); font-size: var(--size-small); font-style: italic; text-decoration: none; }
.tk-switch a[aria-current] { background: var(--color-black); color: var(--text-inverse); }
.tk-switch a:not([aria-current]):hover { border-color: var(--action-primary); color: var(--action-primary); }

.tk-body { max-width: 82rem; margin-right: 2rem; }
/* Charts need the full width below 1280px, so the side graphics only appear when there is room for them. */
.tk-field-top { margin-top: 1rem; }
.tk-field-mid { top: 48%; right: 0; width: min(26vw, 26rem); }
@media (min-width: 1280px) {
  .tk-body { margin-right: var(--field-clearance); }
}
@media (max-width: 1279px) {
  .tk-field-top, .tk-field-mid { display: none; }
}
.tk-body > p, .tk-body > ul { max-width: var(--measure-article); }
.tk-period, .tk-note { color: var(--text-muted); font-size: var(--size-small); font-style: italic; }
.tk-period { margin-top: -0.5rem; }
.tk-note { margin-top: 0.5rem; }

.tk-table { overflow-x: auto; }
.tk-table + p, .mw-body .tk-stats + p { margin-top: 1.25rem; }
.tk-table table { min-width: 44rem; margin-bottom: 0; }
.mw-body .tk-table th[scope="row"] { font-style: normal; font-weight: 700; background: none; border-bottom-width: 1px; }
.mw-body .tk-table td:first-child { font-weight: 400; }
.tk-table td { white-space: nowrap; }
.tk-flows td { white-space: normal; }
.tk-flows td:nth-child(3) { white-space: nowrap; }
.tk-na { color: var(--text-muted); font-style: italic; }
.tk-num { font-variant-numeric: tabular-nums; text-align: right !important; }

.tk-reading { display: inline-block; padding: 0.1rem 0.5rem; border: 1px solid currentColor; font-family: var(--font-editorial); font-size: var(--size-label); font-style: italic; font-weight: 500; line-height: 1.4; text-transform: none; white-space: nowrap; }
.tk-reading-worse { color: var(--signal-worse); }
.tk-reading-better { color: var(--signal-better); }
.tk-reading-neutral { color: var(--text-primary); }

.tk-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0 0; }
.tk-card { padding: 1.1rem 1.35rem; border: var(--border-hairline); background: var(--mw-fill); font-size: var(--size-small); line-height: 1.55; }
.mw-body .tk-card h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin: 0 0 0.6rem; font-family: var(--font-display); font-style: normal; font-weight: 700; font-size: 1.25rem; text-transform: uppercase; }

.tk-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.25rem 0 1.5rem; }
.tk-three section { padding: 1.25rem 1.4rem; border: var(--border-hairline); border-left: var(--border-brand); background: var(--mw-fill); font-size: var(--size-small); line-height: 1.55; }
.tk-three-n { margin: 0; color: var(--action-primary); font-size: 2.25rem; line-height: 1; }
.mw-body .tk-three h3 { margin: 0.5rem 0 0.5rem; }

.mw-body .tk-bars { margin: 1.25rem 0; padding: 0; list-style: none; border-top: var(--border-hairline); }
.tk-bar { display: grid; grid-template-columns: 7rem minmax(0, 1fr) 7.5rem; align-items: center; gap: 0.35rem 1rem; padding: 0.8rem 0; border-bottom: var(--border-hairline); }
.mw-body .tk-bars .tk-bar { margin: 0; padding-left: 0; }
.mw-body .tk-bars .tk-bar::before { content: none; }
.tk-bar-name { font-weight: 700; }
.tk-bar-track { height: 1.1rem; background: var(--surface-muted); }
.tk-bar-fill { display: block; width: var(--w); height: 100%; background: var(--color-black); transform-origin: left; animation: tk-grow 0.8s ease both; }
.tk-bar:first-child .tk-bar-fill { background: var(--action-primary); }
.tk-bar-value { font-size: 1.1875rem; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; overflow-wrap: anywhere; }
.tk-bar-detail { grid-column: 2 / -1; color: var(--text-muted); font-size: var(--size-label); line-height: 1.45; }

.tk-conf { display: inline-block; margin-left: 0.25rem; padding: 0 0.4rem; border: 1px solid var(--color-black); font-size: 0.75rem; font-style: italic; font-weight: 500; line-height: 1.5; white-space: nowrap; vertical-align: 0.1em; }
.tk-conf-filed { background: var(--color-black); color: var(--text-inverse); }
.tk-conf-inferred { border-style: dashed; border-color: var(--signal-worse); color: var(--signal-worse); }
.tk-legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; margin: 0.75rem 0 1.25rem; font-size: var(--size-small); }
.tk-legend div { display: flex; align-items: baseline; gap: 0.5rem; max-width: 22rem; }
.tk-legend dd { margin: 0; color: var(--text-muted); }
.tk-legend .tk-conf { margin-left: 0; }

.tk-vehicles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.tk-vehicle { display: flex; flex-direction: column; border: var(--border-hairline); background: var(--mw-fill); font-size: var(--size-small); line-height: 1.5; }
.tk-vehicle header { padding: 1rem 1.25rem; border-bottom: var(--border-hairline); }
.mw-body .tk-vehicle h3 { margin: 0 0 0.25rem; font-family: var(--font-display); font-style: normal; font-weight: 700; font-size: 1.25rem; text-transform: uppercase; }
.tk-vehicle header p { color: var(--text-muted); }
.tk-vehicle header strong { color: var(--text-primary); }
.tk-vehicle dl { flex: 1; margin: 0; padding: 0.4rem 1.25rem; }
.tk-vehicle dl div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.75rem; padding: 0.55rem 0; border-bottom: 1px dotted color-mix(in srgb, var(--color-black) 35%, transparent); }
.tk-vehicle dl div:last-child { border-bottom: 0; }
.tk-vehicle dt { font-style: italic; font-weight: 500; }
.tk-vehicle dd { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1rem; margin: 0; }
.tk-vehicle dd .tk-conf { justify-self: end; margin: 0.15rem 0 0; }
.tk-vehicle-src { padding: 0.5rem 1.25rem; border-top: var(--border-hairline); color: var(--text-muted); font-size: var(--size-label); }

.mw-body .tk-sources { padding-left: 1.5rem; color: var(--text-muted); font-size: var(--size-label); line-height: 1.5; }
.tk-sources li { margin-bottom: 0.35rem; }
.tk-sources a { color: var(--text-primary); }
.tk-sources li:target { background: color-mix(in srgb, var(--action-primary) 12%, transparent); }

/* The mechanism: four steps in a row, with a return arrow underneath from the last back to the first. */
.tk-cycle { --cycle-gap: 2.5rem; margin: 1.5rem 0 2rem; }
.mw-body .tk-mechanism { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--cycle-gap); margin: 0; padding: 0; list-style: none; }
.mw-body .tk-mechanism li { position: relative; margin: 0; padding: 1.1rem 1.25rem; border: var(--border-hairline); border-left: var(--border-brand); background: var(--mw-fill); font-size: var(--size-small); line-height: 1.5; }
.mw-body .tk-mechanism li:not(:last-child)::after { content: "→"; position: absolute; top: 50%; right: calc(var(--cycle-gap) / -2); transform: translate(50%, -50%); color: var(--action-primary); font-family: var(--font-display); font-size: 1.75rem; line-height: 1; }
.tk-mechanism-n { margin: 0; color: var(--action-primary); font-size: 2rem; line-height: 1; }
.mw-body .tk-mechanism h3 { margin: 0.35rem 0 0.4rem; font-size: 1.0625rem; }
.mw-body .tk-mechanism p:last-child { margin: 0; }
.tk-cycle-return { position: relative; height: 3.25rem; margin: 0 calc((100% - 3 * var(--cycle-gap)) / 8); border: 2px solid var(--action-primary); border-top: 0; border-radius: 0 0 2.5rem 2.5rem; }
.tk-cycle-return::before { content: ""; position: absolute; top: -2px; left: -8px; border: 7px solid transparent; border-top: 0; border-bottom: 11px solid var(--action-primary); transform: translateY(-100%); }
.tk-cycle-return .tk-mechanism-note { position: absolute; left: 50%; bottom: 0; width: max-content; max-width: 80%; margin: 0; padding: 0.25rem 1rem; transform: translate(-50%, 55%); background: var(--surface-page); text-align: center; }
.tk-cycle-return .tk-mechanism-note span { display: none; }
.tk-mechanism-note { color: var(--text-muted); font-style: italic; font-size: var(--size-small); }

/* What's confirmed: one card per claim, labelled with how solid it is. */
.mw-body > ul.tk-checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); gap: 1rem; max-width: none; margin: 1.25rem 0 0; }
.mw-body .tk-checks li { margin: 0; padding: 1rem 1.2rem; border: var(--border-hairline); background: var(--mw-fill); font-size: var(--size-small); line-height: 1.5; }
.mw-body .tk-checks li::before { content: none; }
.tk-check-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.35rem 0.75rem; margin-bottom: 0.45rem; }
.tk-check-head strong { font-family: var(--font-display); font-weight: 400; font-size: 1.0625rem; text-transform: uppercase; }
.tk-check-head .tk-conf { margin-left: 0; }

/* The timeline: a spine with numbered stops. Cards alternate sides, each joined to its stop by a curve. */
.mw-body > ol.tk-tl { max-width: none; }
.mw-body .tk-tl { --tl-col: 5.5rem; --tl-dot: 2.4rem; --tl-drop: 2.6rem; --tl-tone: var(--color-black); position: relative; margin: 2rem 0 1.5rem; padding: 0; list-style: none; }
.tk-tl::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; background: var(--color-black); transform: translateX(-1px); }
.mw-body .tk-tl-item { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) var(--tl-col) minmax(0, 1fr); margin: 0 0 1.5rem; }
.mw-body .tk-tl-item + .tk-tl-item { margin-top: -5rem; }
.tk-tl-up { --tl-tone: var(--signal-better); }
.tk-tl-down { --tl-tone: var(--signal-worse); }
.tk-tl-dot { grid-column: 2; grid-row: 1; justify-self: center; z-index: 1; display: grid; place-items: center; width: var(--tl-dot); height: var(--tl-dot); border: 2px solid var(--tl-tone); border-radius: 50%; background: var(--surface-page); color: var(--tl-tone); font-size: 1.0625rem; line-height: 1; }
.tk-tl-up .tk-tl-dot, .tk-tl-down .tk-tl-dot { background: var(--tl-tone); color: var(--color-white); }
.mw-body .tk-tl-date { grid-row: 1; align-self: start; margin: 0; padding-top: 0.45rem; font-style: italic; font-weight: 500; font-size: 1.0625rem; line-height: 1.4; }
.mw-body .tk-tl-tag { display: inline-block; margin: 0 0 0.5rem; padding: 0.05rem 0.55rem; border: 1px solid currentColor; color: var(--tl-tone); font-size: var(--size-label); font-style: italic; font-weight: 500; }
.tk-tl-card { position: relative; grid-row: 1; margin-top: var(--tl-drop); padding: 1rem 1.25rem; border: var(--border-hairline); border-top: 3px solid var(--tl-tone); background: var(--mw-fill); }
.tk-tl-card::before { content: ""; position: absolute; top: calc(var(--tl-dot) / 2 - var(--tl-drop) - 3px); width: calc((var(--tl-col) - var(--tl-dot)) / 2 + 1.75rem); height: calc(var(--tl-drop) - var(--tl-dot) / 2); border-top: 2px solid var(--tl-tone); }
.mw-body .tk-tl-head { margin: 0 0 0.4rem; font-family: var(--font-display); font-style: normal; font-weight: 400; font-size: 1.125rem; text-transform: uppercase; }
.tk-tl-card p:last-child { margin: 0; font-size: var(--size-small); line-height: 1.55; }
.tk-tl-item:nth-child(odd) .tk-tl-date { grid-column: 3; padding-left: 2.75rem; }
.tk-tl-item:nth-child(odd) .tk-tl-card { grid-column: 3; }
.tk-tl-item:nth-child(odd) .tk-tl-card::before { left: calc((var(--tl-col) - var(--tl-dot)) / -2); border-right: 2px solid var(--tl-tone); border-top-right-radius: 1.5rem; }
.tk-tl-item:nth-child(even) .tk-tl-date { grid-column: 1; padding-right: 2.75rem; text-align: right; }
.tk-tl-item:nth-child(even) .tk-tl-card { grid-column: 1; }
.tk-tl-item:nth-child(even) .tk-tl-card::before { right: calc((var(--tl-col) - var(--tl-dot)) / -2); border-left: 2px solid var(--tl-tone); border-top-left-radius: 1.5rem; }

/* Build-time SVG charts. Each figure holds a wide and a narrow drawing; the breakpoints pick one. */
.tk-chart { margin: 1.5rem 0 2rem; padding: clamp(0.75rem, 2vw, 1.5rem); border: var(--border-hairline); background: var(--mw-fill); }
.tk-chart-svg { display: block; width: 100%; height: auto; overflow: visible; }
.tk-chart-narrow { display: none; }
.tk-chart figcaption { margin-top: 0.75rem; color: var(--text-muted); font-size: var(--size-label); font-style: italic; }
.tk-chart-grid { stroke: var(--color-black); stroke-opacity: 0.12; }
.tk-chart-tick { stroke: var(--color-black); stroke-opacity: 0.4; }
.tk-chart-axis { font-family: var(--font-editorial); fill: var(--text-muted); }
.tk-chart-line { fill: none; stroke: var(--color-black); stroke-width: 2; stroke-linejoin: round; }
.tk-chart-area { fill: var(--color-black); fill-opacity: 0.06; }
.tk-chart-ref { stroke-width: 1.5; stroke-dasharray: 6 5; stroke: var(--color-black); stroke-opacity: 0.6; }
.tk-chart-ref-worse.tk-chart-ref { stroke: var(--signal-worse); stroke-opacity: 1; }
.tk-chart-reflabel { font-family: var(--font-editorial); font-style: italic; fill: var(--text-secondary); paint-order: stroke; stroke: var(--surface-page); stroke-width: 4px; stroke-linejoin: round; }
.tk-chart-reflabel.tk-chart-ref-worse { fill: var(--signal-worse); }
.tk-chart-last { font-family: var(--font-editorial); font-weight: 700; fill: var(--text-primary); paint-order: stroke; stroke: var(--mw-fill); stroke-width: 4px; stroke-linejoin: round; }
.tk-chart-marker { --mk: var(--color-black); }
.tk-chart-marker-up { --mk: var(--signal-better); }
.tk-chart-marker-down { --mk: var(--signal-worse); }
.tk-chart-marker line { stroke: var(--mk); stroke-width: 1.25; }
.tk-chart-marker circle { fill: var(--mk); }
.tk-chart-marker rect { fill: var(--mk); }
.tk-chart-marker text { font-family: var(--font-display); fill: var(--color-white); }
.tk-chart-marker[data-events] { cursor: pointer; outline: none; }
.tk-chart-marker rect { transition: stroke-width 0.15s ease; stroke: var(--surface-page); stroke-width: 0; }
.tk-chart-marker.is-on rect, .tk-chart-marker:focus-visible rect { stroke: var(--action-primary); stroke-width: 3; }
.tk-chart { position: relative; }
.tk-tip { position: absolute; z-index: 5; width: min(21rem, calc(100% - 1rem)); padding: 0.75rem 0.9rem; border: var(--border-hairline); border-top: 3px solid var(--color-black); background: var(--surface-page); box-shadow: 0 6px 24px rgb(0 0 0 / 0.14); font-size: var(--size-label); line-height: 1.4; pointer-events: none; }
.tk-tip p { margin: 0; }
.tk-tip-row + .tk-tip-row { margin-top: 0.55rem; padding-top: 0.55rem; border-top: var(--border-hairline); }
.tk-tip-when { display: flex; align-items: center; gap: 0.45rem; font-style: italic; font-weight: 500; }
.tk-tip-n { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; border-radius: 50%; background: var(--color-black); color: var(--color-white); font-family: var(--font-display); font-style: normal; font-size: 0.75rem; }
.tk-tip-up .tk-tip-n { background: var(--signal-better); }
.tk-tip-down .tk-tip-n { background: var(--signal-worse); }
.mw-body .tk-tip-head { margin-top: 0.25rem; font-family: var(--font-display); font-size: 0.95rem; text-transform: uppercase; }
.tk-tip-tag { margin-top: 0.2rem; font-style: italic; }
.tk-tip-up .tk-tip-tag { color: var(--signal-better); }
.tk-tip-down .tk-tip-tag { color: var(--signal-worse); }
.tk-tip-body { margin-top: 0.25rem; color: var(--text-secondary); }
.tk-tip-hint { margin-top: 0.55rem; padding-top: 0.45rem; border-top: var(--border-hairline); color: var(--text-muted); font-style: italic; }
.tk-tl-item.is-flash .tk-tl-card { animation: tk-flash 1.6s ease; }
@keyframes tk-flash { 0%, 30% { box-shadow: 0 0 0 3px var(--action-primary); } 100% { box-shadow: 0 0 0 3px transparent; } }
.tk-chart-band { fill: var(--color-black); fill-opacity: 0.06; }
.tk-chart-eventline { stroke: var(--action-primary); stroke-width: 1.5; stroke-dasharray: 4 4; }
.tk-chart-event { font-family: var(--font-editorial); font-style: italic; fill: var(--action-primary); }
.tk-chart-total { font-family: var(--font-editorial); font-weight: 700; fill: var(--text-primary); }
.tk-chart-partial { fill-opacity: 0.55; }
/* Headline v signed v paid, one row per deal. The outline is the headline figure; hatching is what has been
   signed; solid is what has been paid. */
.mw-body .tk-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; max-width: none; margin: 1.25rem 0 0; }
.tk-stats > div { padding: 0.75rem 0.9rem; border: var(--border-hairline); background: var(--mw-fill); }
.tk-stats dt { font-size: var(--size-label); font-style: italic; }
.tk-stats dd { margin: 0; font-size: clamp(1.5rem, 2.3vw, 2.125rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.tk-stats .tk-stats-sub { color: var(--text-muted); font-size: var(--size-label); }
.tk-stats .is-paid { border-color: var(--action-primary); }
.tk-stats .is-paid dd:not(.tk-stats-sub) { color: var(--action-primary); }
.mw-body > ol.tk-ledger { max-width: none; }
.mw-body .tk-ledger { margin: 1.5rem 0 2rem; padding: 0; border-top: 2px solid var(--color-black); list-style: none; }
.mw-body .tk-ledger-row { display: grid; grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr) minmax(9rem, 14.5rem); grid-template-areas: "name track figs" "name note note"; column-gap: 1.25rem; margin: 0; padding: 0.7rem 0; border-bottom: var(--border-hairline); }
.mw-body .tk-ledger-row::before { content: none; }
.mw-body .tk-ledger-name { grid-area: name; margin: 0; line-height: 1.3; }
.tk-ledger-name strong { display: block; }
.tk-ledger-name span { color: var(--text-muted); font-size: var(--size-label); font-style: italic; }
.tk-ledger-track { grid-area: track; position: relative; align-self: center; height: 1.15rem; }
.tk-ledger-track > span { position: absolute; top: 0; bottom: 0; left: 0; }
.tk-ledger-headline { width: var(--h); border: 1.5px dashed var(--color-black); }
.tk-ledger-signed { width: var(--s); background: repeating-linear-gradient(-45deg, var(--color-black) 0 2px, transparent 2px 6px); }
.tk-ledger-funded { width: var(--f); background: var(--action-primary); }
.mw-body .tk-ledger-figs { grid-area: figs; margin: 0; align-self: center; text-align: right; font-size: var(--size-small); font-variant-numeric: tabular-nums; }
.tk-ledger-status { display: inline-block; margin-right: 0.35rem; padding: 0 0.45rem; border: 1px solid currentColor; font-size: var(--size-label); font-style: italic; }
.tk-ledger-row.is-non-binding .tk-ledger-status { color: var(--text-muted); }
.tk-ledger-row.is-funded .tk-ledger-status { color: var(--action-primary); }
.mw-body .tk-ledger-note { grid-area: note; margin: 0.35rem 0 0; color: var(--text-secondary); font-size: var(--size-label); line-height: 1.45; }
.tk-ledger-key { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin: -1rem 0 2rem; font-size: var(--size-label); font-style: italic; }
.tk-ledger-key i { display: inline-block; width: 1.4rem; height: 0.8rem; margin-right: 0.4rem; vertical-align: -0.1rem; }
.tk-ledger-key .k-headline { border: 1.5px dashed var(--color-black); }
.tk-ledger-key .k-signed { background: repeating-linear-gradient(-45deg, var(--color-black) 0 2px, transparent 2px 6px); }
.tk-ledger-key .k-funded { background: var(--action-primary); }
@media (max-width: 760px) {
  .mw-body .tk-ledger-row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name figs" "track track" "note note"; row-gap: 0.4rem; }
}

.tk-chart-band-deal { fill: var(--action-primary); fill-opacity: 0.08; }
.tk-chart-event-deal { fill: var(--text-secondary); }
.tk-chart-dot { fill: var(--color-black); }
.tk-chart-lane { font-family: var(--font-display); text-transform: uppercase; fill: var(--text-primary); }
.tk-chart-hope { fill: var(--action-primary); fill-opacity: 0.18; stroke: var(--action-primary); stroke-width: 1.5; stroke-linejoin: round; }
.tk-chart-zero { stroke: var(--color-black); stroke-width: 2.5; }
.tk-chart-zerolabel, .tk-chart-steplabel, .tk-chart-roadmaplabel, .tk-chart-bindinglabel { font-family: var(--font-editorial); font-style: italic; paint-order: stroke; stroke: var(--mw-fill); stroke-width: 4px; stroke-linejoin: round; }
.tk-chart-zerolabel { font-weight: 700; fill: var(--text-primary); }
.tk-chart-steplabel { fill: var(--text-secondary); }
.tk-chart-stepline { stroke: var(--color-black); stroke-opacity: 0.35; stroke-dasharray: 3 4; }
.tk-chart-roadmap { fill: var(--color-black); fill-opacity: 0.07; stroke: var(--color-black); stroke-opacity: 0.5; stroke-dasharray: 5 4; }
.tk-chart-binding { fill: var(--color-black); }
.tk-chart-roadmaplabel { fill: var(--text-secondary); }
.tk-chart-bindinglabel { font-weight: 700; fill: var(--text-primary); }
.tk-chart-paired .tk-chart-svg + .tk-chart-svg + .tk-chart-svg { margin-top: 0.75rem; padding-top: 0.75rem; border-top: var(--border-hairline); }
.tk-chart-key { display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; margin-bottom: 0.4rem; color: var(--text-primary); font-style: normal; }
.tk-hold { stroke: var(--surface-page); stroke-width: 1; }
.tk-hold-private { fill: #1A1A1A; background: #1A1A1A; }
.tk-hold-listed { fill: #938D7C; background: #938D7C; }
.tk-q-loss { fill: var(--signal-worse); }
.tk-q-gain { fill: var(--signal-better); }
.tk-co { stroke: var(--surface-page); stroke-width: 1; }
.tk-co-amazon { fill: #1A1A1A; background: #1A1A1A; }
.tk-co-alphabet { fill: #5A5A5A; background: #5A5A5A; }
.tk-co-microsoft { fill: #938D7C; background: #938D7C; }
.tk-co-meta { fill: #C9C3B1; background: #C9C3B1; }
.tk-co-oracle { fill: var(--color-venetian-red); background: var(--color-venetian-red); }

.tk-panels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0 0; }
.tk-panel { margin: 0; padding: 1rem 1.1rem 0.85rem; border: var(--border-hairline); background: var(--mw-fill); }
.mw-body .tk-panel h3 { margin: 0; font-family: var(--font-display); font-style: normal; font-weight: 400; font-size: 1.25rem; text-transform: uppercase; }
.tk-panel figcaption p { display: flex; flex-wrap: wrap; gap: 0 1rem; margin: 0.2rem 0 0.5rem; font-size: var(--size-label); font-weight: 700; }
.tk-panel-debt { color: var(--signal-worse); }
.tk-panel-foot { margin: 0.35rem 0 0; color: var(--text-muted); font-size: var(--size-label); font-style: italic; line-height: 1.4; }
.tk-chart-bar { fill: var(--color-black); fill-opacity: 0.8; }
.tk-chart-bar.tk-chart-partial { fill-opacity: 0.4; }
.tk-chart-debt { fill: none; stroke: var(--signal-worse); stroke-width: 2.5; stroke-linejoin: round; }
.tk-chart-debtdot { fill: var(--signal-worse); }
.tk-panel-key { display: flex; flex-direction: column; justify-content: center; gap: 0.6rem; font-size: var(--size-small); }
.tk-panel-key p { display: flex; align-items: center; gap: 0.6rem; }
.tk-panel-key p:last-child { color: var(--text-muted); font-style: italic; font-size: var(--size-label); }
.tk-key-bar, .tk-key-line, .tk-key-band { flex: none; display: inline-block; width: 1.5rem; }
.tk-key-bar { height: 0.9rem; background: var(--color-black); opacity: 0.8; }
.tk-key-line { height: 3px; background: var(--signal-worse); }
.tk-key-band { height: 0.9rem; background: color-mix(in srgb, var(--color-black) 8%, transparent); }

/* Builders: the short version with an at-a-glance column beside it. */
.tk-lede { display: grid; grid-template-columns: minmax(0, var(--measure-article)) minmax(16rem, 22rem); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.mw-body .tk-lede h2 { margin-top: 0; }
.tk-lede-text p + p { margin-top: 1.25rem; }
.tk-glance { position: sticky; top: 1.5rem; padding: 1.25rem 1.4rem; border: var(--border-hairline); border-left: var(--border-brand); background: var(--mw-fill); }
.tk-glance .label { color: var(--action-primary); }
.tk-glance dl { margin: 0.5rem 0 0; }
.tk-glance dl div { padding: 0.8rem 0; border-bottom: var(--border-hairline); }
.tk-glance dl div:last-child { padding-bottom: 0; border-bottom: 0; }
.tk-glance dt { font-size: var(--size-label); font-style: italic; font-weight: 500; }
.tk-glance dd { margin: 0; }
.tk-glance dd.display { margin-top: 0.15rem; font-size: 2rem; line-height: 1.05; }
.tk-glance dd.display .fn { font-family: var(--font-editorial); font-size: 0.75rem; }
.tk-glance-worse { color: var(--signal-worse); }
.tk-glance-sub { margin-top: 0.2rem !important; color: var(--text-muted); font-size: var(--size-label); line-height: 1.4; }

.tk-deal-cards .tk-card p:last-child { margin-top: 0.75rem; }

.tk-swatch { display: inline-block; width: 0.8rem; height: 0.8rem; margin-right: 0.4rem; vertical-align: -0.05em; }
.tk-swatch-equity { background: var(--tk-equity); }
.tk-swatch-spend { background: var(--tk-spend); }
.tk-swatch-guarantee { background: var(--tk-hatch); box-shadow: inset 0 0 0 1px var(--tk-guarantee); }
.tk-swatch-financing { background: var(--tk-financing); }
.tk-dot { display: inline-block; width: 0.75rem; height: 0.75rem; margin-right: 0.4rem; border-radius: 50%; vertical-align: -0.05em; }
.tk-dot-chips, .tk-node-chips path { background: var(--color-venetian-red); fill: var(--color-venetian-red); }
.tk-dot-labs, .tk-node-labs path { background: var(--color-black); fill: var(--color-black); }
.tk-dot-hyperscalers, .tk-node-hyperscalers path { background: #4A4A4A; fill: #4A4A4A; }
.tk-dot-neoclouds, .tk-node-neoclouds path { background: #8A8577; fill: #8A8577; }
.tk-dot-finance, .tk-node-finance path { background: #BDB8AA; fill: #BDB8AA; }

.tk-loop { margin: clamp(2rem, 4vw, 3rem) 0 0; padding: clamp(1rem, 2vw, 1.75rem); border: var(--border-hairline); border-left: var(--border-brand); background: var(--mw-fill); }
.tk-loop-controls { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tk-loop-controls button { display: inline-flex; align-items: center; padding: 0.4rem 0.9rem; border: var(--border-hairline); border-radius: var(--radius-control); background: transparent; color: inherit; font: inherit; font-size: var(--size-small); font-style: italic; cursor: pointer; }
.tk-loop-controls button[aria-pressed="true"] { background: var(--color-black); color: var(--text-inverse); }
.tk-loop-controls button[aria-pressed="true"] .tk-swatch-spend { box-shadow: inset 0 0 0 1px var(--color-white); }
.tk-loop-controls button:hover { border-color: var(--action-primary); }
.tk-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.6rem; }
.tk-loop-controls.tk-kpis button { flex-direction: column; align-items: flex-start; gap: 0.2rem; padding: 0.75rem 0.9rem; border-radius: 0; background: var(--surface-page); font-style: normal; text-align: left; transition: opacity 0.2s ease; }
.tk-loop-controls.tk-kpis button[aria-pressed="true"] { background: var(--color-black); }
.tk-kpi-label { display: flex; align-items: center; font-size: var(--size-label); font-style: italic; line-height: 1.3; }
.tk-kpi-value { font-size: clamp(1.5rem, 2.3vw, 2.125rem); line-height: 1.05; font-variant-numeric: tabular-nums; }
.tk-kpi-sub { color: var(--text-muted); font-size: var(--size-label); }
.tk-kpis button[aria-pressed="true"] .tk-kpi-sub { color: color-mix(in srgb, var(--text-inverse) 70%, transparent); }
.tk-kpis button.is-empty { opacity: 0.4; }
.tk-kpi-scope { margin: 0.6rem 0 0; color: var(--text-muted); font-size: var(--size-label); font-style: italic; }
.tk-loop-stage { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(16rem, 1fr); gap: clamp(1rem, 2.5vw, 2rem); align-items: start; margin-top: 1rem; }
.tk-loop-svg { display: block; width: 100%; height: auto; overflow: visible; }
.tk-loop-panel { position: sticky; top: 1.5rem; padding: 1.1rem 1.25rem; border: var(--border-hairline); background: var(--surface-page); font-size: var(--size-small); line-height: 1.5; }
.tk-loop-panel .label { display: flex; align-items: center; margin-bottom: 0.4rem; color: var(--action-primary); }
.mw-body .tk-loop-panel h3 { margin: 0 0 0.6rem; font-family: var(--font-display); font-style: normal; font-weight: 700; font-size: 1.375rem; text-transform: uppercase; }
.tk-loop-panel p + p { margin-top: 0.6rem; }
.tk-panel-big { margin: 0.25rem 0; font-size: 2.5rem; line-height: 1; }
.tk-panel-sub { margin: 0.9rem 0 0.25rem; font-style: italic; font-weight: 500; }
.tk-panel-note, .tk-panel-src { color: var(--text-muted); font-size: var(--size-label); }
.mw-body .tk-loop-panel ul { margin: 0; }
.mw-body .tk-loop-panel li { margin-bottom: 0.55rem; padding-left: 0; font-size: var(--size-label); }
.mw-body .tk-loop-panel li::before { content: none; }
.tk-panel-sub span { float: right; font-style: normal; font-variant-numeric: tabular-nums; }
.mw-body .tk-loop-panel .tk-rows { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 0.5rem; padding: 0; border-top: var(--border-hairline); }
.mw-body .tk-loop-panel .tk-rows li { display: contents; }
.tk-rows .tk-swatch { grid-row: span 2; align-self: start; margin: 0.5rem 0 0; }
.tk-rows .tk-row-name { padding-top: 0.35rem; font-weight: 600; }
.tk-rows .tk-row-value { padding-top: 0.35rem; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.tk-rows .tk-row-status { grid-column: 2 / -1; padding-bottom: 0.35rem; border-bottom: var(--border-hairline); color: var(--text-muted); font-style: italic; line-height: 1.3; }
.tk-loop-key { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-top: 1rem; font-size: var(--size-label); font-style: italic; }

.tk-ribbon { fill-opacity: 0.5; stroke: var(--surface-page); stroke-width: 0.6; cursor: pointer; transition: fill-opacity 0.2s ease, opacity 0.2s ease; animation: tk-fade 0.7s ease both; animation-delay: calc(var(--i) * 30ms); }
.tk-ribbon-equity { fill: var(--tk-equity); }
.tk-ribbon-spend { fill: var(--tk-spend); fill-opacity: 0.42; }
.tk-ribbon-financing { fill-opacity: 0.8; }
.tk-ribbon-guarantee { fill: url(#tk-hatch); fill-opacity: 1; stroke: var(--tk-guarantee); stroke-opacity: 0.6; }
.tk-ribbon-financing { fill: var(--tk-financing); }
.tk-ribbon:hover, .tk-ribbon.is-on { fill-opacity: 0.85; }
.tk-ribbon-spend.is-on, .tk-ribbon-spend:hover { fill-opacity: 0.6; }
.tk-loop-svg[data-focus] .tk-ribbon:not(.is-on) { opacity: 0.07; }
.tk-flowline { fill: none; stroke: var(--color-white); stroke-linecap: round; stroke-dasharray: 0.1 26; stroke-opacity: 0.9; pointer-events: none; animation: tk-flow 2.4s linear infinite, tk-fade 0.6s ease both; }
.tk-loop-svg[data-focus] .tk-flowline:not(.is-on) { opacity: 0; }
.tk-node { cursor: pointer; outline: none; }
.tk-node path { transition: opacity 0.2s ease; }
.tk-node:focus-visible path { stroke: var(--focus-ring); stroke-width: 3; }
.tk-loop-svg[data-focus] .tk-node:not(.is-on) path { opacity: 0.25; }
.tk-label { font-family: var(--font-editorial); font-size: 19px; font-weight: 700; fill: var(--text-primary); pointer-events: none; }
.tk-loop-svg[data-focus] .tk-label:not(.is-on) { fill-opacity: 0.3; }
.tk-loop-svg.is-compact .tk-label { font-size: 40px; }
.tk-label-group { font-style: italic; font-weight: 400; fill: var(--text-secondary); }
.tk-leader { fill: none; stroke: var(--color-black); stroke-opacity: 0.35; stroke-width: 0.75; }

@keyframes tk-flow { to { stroke-dashoffset: -26.1; } }
@keyframes tk-fade { from { opacity: 0; } }
@keyframes tk-grow { from { transform: scaleX(0); } }
@media (prefers-reduced-motion: reduce) {
  .tk-flowline { display: none; }
  .tk-ribbon, .tk-bar-fill { animation: none; }
}

/* ---------- Responsive ---------- */

@media (max-width: 1100px) {
  .problem-body, .path-intro { grid-template-columns: 1fr; }
  .problem-body .arrow-rows { border-left: 0; }
  .problem-body .arrow-rows li:first-child { border-top: var(--border-hairline); }
  .path-text { padding-top: 0; }
  .card-grid, .hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mw-pinned { grid-template-columns: 1fr; }
  .tk-loop-stage { grid-template-columns: 1fr; }
  .tk-loop-panel { position: static; max-height: none; }
  .closing { grid-template-columns: 1fr auto; }
  .closing-text { grid-column: 1 / -1; grid-row: 2; }

  .tk-lede { grid-template-columns: 1fr; }
  .tk-glance { position: static; }
  .tk-glance dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 0 1.5rem; }
  .tk-glance dl div:last-child { padding-bottom: 0.8rem; border-bottom: var(--border-hairline); }
  .tk-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tk-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .mw-body .tk-mechanism { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .mw-body .tk-mechanism li::after { content: none; }
  .tk-cycle-return { height: auto; margin: 0.75rem 0 0; border: 0; }
  .tk-cycle-return::before { content: none; }
  .tk-cycle-return .tk-mechanism-note { position: static; width: auto; max-width: var(--measure-article); padding: 0; transform: none; background: none; text-align: left; }
  .tk-cycle-return .tk-mechanism-note span { display: inline; }

  .tk-tl::before { left: calc(var(--tl-dot) / 2); }
  .mw-body .tk-tl-item { grid-template-columns: var(--tl-dot) minmax(0, 1fr); column-gap: 1rem; }
  .mw-body .tk-tl-item + .tk-tl-item { margin-top: 0; }
  .tk-tl-item .tk-tl-dot { grid-column: 1; grid-row: 1 / span 2; align-self: start; }
  .tk-tl-item:nth-child(n) .tk-tl-date { grid-column: 2; grid-row: 1; padding: 0.45rem 0 0; text-align: left; }
  .tk-tl-item:nth-child(n) .tk-tl-card { grid-column: 2; grid-row: 2; margin-top: 0.5rem; }
  .tk-tl-item:nth-child(n) .tk-tl-card::before { content: none; }
}

@media (max-width: 760px) {
  :root { --space-rail: 0px; --space-gutter: 1.25rem; }
  .rail, .field { display: none; }

  .site-header { padding-top: 1rem; }
  .menu-button { display: block; }
  .site-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 1.25rem;
    right: 1.25rem;
    width: auto;
    margin-top: 0.75rem;
  }
  .nav-open .site-nav { display: block; }
  .site-nav ul { flex-direction: column; align-items: flex-start; gap: 1.25rem; padding: 2rem; }
  .site-nav a { font-size: 1.125rem; }
  .nav-has-children { position: static; width: 100%; }
  .nav-parent { display: flex; align-items: center; justify-content: space-between; width: 100%; }
  .site-nav .nav-dropdown {
    position: static;
    display: none;
    min-width: 0;
    margin-top: 0.75rem;
    padding: 0 0 0 1.25rem;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .nav-item-open .nav-dropdown { display: flex; flex-direction: column; gap: 0.75rem; }
  .site-nav .nav-dropdown a { padding: 0; font-size: 1rem; }

  .hero, .about-hero, .cs-opening { grid-template-columns: 1fr; }
  .hero-quote { padding-top: 0; }
  .about-photo { justify-self: center; }
  .problem-head { grid-template-columns: 4.5rem 1fr; }
  .problem, .path-intro { margin-right: 0; }
  .page-home .problem::after, .hero-route { display: none; }
  .hero-quote { padding-bottom: 0; }
  .clients { flex-wrap: wrap; gap: 1rem; }
  .audience-tabs { flex-wrap: wrap; padding-left: 0; gap: 0.5rem; }
  .audience-tab { min-width: 0; flex: 1 1 auto; border-bottom: var(--border-hairline); }
  .audiences::after, .audiences::before { display: none; }
  .audience-cta { margin-top: 1rem; }
  .path::before { display: none; }
  .path-text, .path > .audiences { margin-left: 0; }

  .card-grid, .hub-grid { grid-template-columns: 1fr; }
  .closing { grid-template-columns: 1fr; }

  .mw-status-panel, .mw-frames { grid-template-columns: 1fr; }
  .mw-status-stage { border-right: 0; border-bottom: var(--border-hairline); }
  .mw-frame-counter { grid-column: auto; }
  .mw-help { margin-left: 0; width: 100%; }
  .mw-body table { display: block; overflow-x: auto; }
  .mw-history { margin-right: 0; max-width: none; }
  .mw-tracker-cards, .tk-body, .mw-now { margin-right: 0; }
  .mw-now-pillars { grid-template-columns: 1fr; }
  .mw-now-pillars li { grid-template-columns: 4.4rem 5.75rem auto; }
  .mw-now-pillar { grid-column: 1 / -1; }
  .mw-tracker-grid, .tk-cards, .tk-three, .tk-vehicles { grid-template-columns: 1fr; }
  .tk-loop-stage { grid-template-columns: 1fr; }
  .tk-loop-panel { position: static; max-height: none; }
  .tk-loop { padding: 0.75rem; }
  .tk-chart-wide { display: none; }
  .tk-chart-narrow { display: block; }
  .tk-panels, .mw-body .tk-mechanism { grid-template-columns: 1fr; }
  .tk-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tk-kpis button:first-child { grid-column: 1 / -1; }
  .tk-loop-controls { gap: 0.35rem; }
  .tk-loop-controls button { padding: 0.3rem 0.65rem; }
  .tk-bar { grid-template-columns: 5.5rem minmax(0, 1fr) 5.5rem; }
  .tk-bar-detail { grid-column: 1 / -1; }
  .mw-chain-key { display: none; }
  .mw-body .mw-ind-grid { grid-template-columns: 1fr; }
  .mw-strips { padding: 0.75rem; }
  .mw-strip { grid-template-columns: minmax(0, 1fr) auto; }
  .mw-strip-svg, .mw-strip-dates { grid-column: 1 / -1; grid-row: 2; }
  .mw-strip-axis > span:empty { display: none; }
  .mw-entry { grid-template-columns: 3.25rem minmax(0, 1fr); }
  .mw-entry > .icon { display: none; }
  .mw-pager { grid-template-columns: 1fr 1fr; }
  .mw-pager .arrow-link { grid-column: 1 / -1; grid-row: 2; }
  .mw-chain, .mw-body .mw-chain { grid-template-columns: 1fr; gap: 1.25rem; padding: 1.25rem; }
  .mw-stage { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: 0.75rem; align-items: start; text-align: left; }
  .mw-stage > :not(.mw-dot) { grid-column: 2; }
  .mw-dot { grid-row: 1 / span 3; margin: 0 auto; }
  .mw-stage-headline .mw-dot { margin-top: -0.25rem; }
  .mw-chain .mw-stage:not(:last-child)::after,
  .mw-chain .mw-stage-confirmed:not(:last-child)::after,
  .mw-chain .mw-stage-headline:not(:last-child)::after {
    top: 2.25rem;
    left: 1.375rem;
    width: 0;
    height: calc(100% - 1rem);
    border-top: 0;
    border-left: 1px solid var(--color-black);
  }
  .mw-chain .mw-stage-confirmed:not(:last-child)::after { left: calc(1.375rem - 1.5px); border-left: 4px solid var(--signal-worse); }
  .mw-chain .mw-stage-headline:not(:last-child)::after { border-left: 2px dashed var(--signal-worse); }
  .closing-text { grid-row: auto; }

  .prose, .cs-quote { margin-left: 0; }
  .offer-hero, .offer-split, .offer-split-reverse, .offer-steps, .offer-closing { grid-template-columns: 1fr; }
  .offer-split-reverse > :last-child { order: 0; }
  .offer-points { grid-template-columns: 1fr; }
  .offer-points li { border-left: 0; border-top: var(--border-hairline); }
  .offer-points li:first-child { border-top: 0; }
  .process-circles { flex-wrap: wrap; }
  .offer-steps-image { position: static; width: 100%; min-height: 14rem; }
  .offer-closing-photo { grid-row: auto; }
  .offer-hero-watermark { display: none; }
  .facts-figures { grid-auto-flow: row; }
  .facts-figures > div { border-right: 0; border-bottom: var(--border-hairline); padding: 1.25rem; }
  .facts-figures > div:last-child { border-bottom: 0; }
  .metrics { padding-left: 0; }
  .metrics-label { display: none; }
  .metrics-list { grid-template-columns: 1fr; gap: 3rem; }
  .metric-before .visually-hidden,
  .metric-after .visually-hidden { position: static !important; width: auto; height: auto; clip: auto; font-size: var(--size-label); font-style: italic; text-transform: uppercase; }
  .booking iframe { height: 1000px; }
}
