/* ==========================================================================
   TekReboot V1 — design system
   Solid line  = substantiated / as-built.
   Dashed line = illustrative / proposed (engineering-drawing convention).
   Amber signal is reserved for action, flow and state.
   ========================================================================== */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-var.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
}

:root {
	--ink: #13212c;
	--ink-2: #1b2d3a;
	--graphite: #455662;
	--muted: #5e6e7a;
	--rule: #d3dbe1;
	--rule-strong: #7a8a96;
	--paper: #f1f4f6;
	--white: #fff;
	--signal: #f2a93b;
	--signal-ink: #8a5300;
	--on-ink: #eaf0f3;
	--on-ink-muted: #a9b8c3;
	--error: #b3261e;

	--font: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--wide: 112%;
	--narrow: 88%;

	--container: 76rem;
	--container-wide: 88rem;
	--gutter: clamp(1.25rem, 4vw, 3rem);
	--section: clamp(4rem, 8vw, 7.5rem);
	--section-tight: clamp(3rem, 5vw, 4.5rem);
	--header-h: 76px;
	--radius: 2px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

/* Reset ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font);
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
@media (min-width: 1024px) { body { font-size: 1.125rem; } }
img, svg { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: calc(var(--header-h) + 1.5rem); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
	position: absolute; left: 1rem; top: -4rem; z-index: 100;
	background: var(--ink); color: var(--white); padding: .75rem 1rem; font-weight: 700;
}
.skip-link:focus { top: 1rem; }

:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.final :focus-visible, .site-footer :focus-visible, .section--million :focus-visible { outline-color: var(--signal); }

.icon { width: 1.5rem; height: 1.5rem; flex: none; }

/* Layout ------------------------------------------------------------------ */
.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.container--wide { max-width: calc(var(--container-wide) + var(--gutter) * 2); }
.section { padding-block: var(--section); }
.section--tight { padding-block: var(--section-tight); }
.section--paper { background: var(--paper); }
.section--light { background: var(--white); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.section--arch {
	background-color: var(--paper);
	background-image:
		linear-gradient(to right, rgba(19, 33, 44, .055) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(19, 33, 44, .055) 1px, transparent 1px);
	background-size: 24px 24px;
	border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}

.grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
@media (min-width: 640px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Capability grid: balanced 3 + 2 (Part C7 / E1). */
.grid--caps { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .grid--caps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid--caps > :last-child { grid-column: 1 / -1; } }
@media (min-width: 1024px) {
	.grid--caps { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.grid--caps > * { grid-column: span 2; }
	.grid--caps > :nth-child(4), .grid--caps > :nth-child(5) { grid-column: span 3; }
}

.stack { display: grid; gap: 1rem; }

/* Typography -------------------------------------------------------------- */
.eyebrow {
	font-size: .8125rem; font-weight: 680; font-stretch: var(--narrow);
	letter-spacing: .06em; color: var(--signal-ink); margin-bottom: 1.25rem;
}
.hero__title, .section-title, .final__title, .detail__title, .article__title, .form-success__title {
	font-stretch: var(--wide); font-weight: 780; letter-spacing: -.012em; text-wrap: balance;
}
.section-head { max-width: 48rem; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-title { font-size: clamp(1.75rem, 1.15rem + 1.9vw, 2.875rem); line-height: 1.06; }
.section-sub { font-size: clamp(1.25rem, 1rem + .8vw, 1.625rem); font-weight: 450; color: var(--graphite); margin-top: .75rem; }
.section-intro { font-size: 1.1875rem; color: var(--graphite); margin-top: 1.1rem; max-width: 40rem; }
.section-head--center .section-intro { margin-inline: auto; }
.closing-line {
	margin-top: clamp(2rem, 4vw, 3rem); font-size: clamp(1rem, .9rem + .4vw, 1.25rem);
	font-weight: 700; font-stretch: var(--narrow); letter-spacing: .03em; text-align: center;
}
.closing-line--left { text-align: left; }
.note { font-size: .9375rem; color: var(--muted); margin-top: 1rem; }
.empty-note { max-width: 42rem; padding: 1.5rem 1.75rem; border-left: 3px solid var(--rule-strong); background: var(--paper); color: var(--graphite); }

/* Buttons (K4) ------------------------------------------------------------ */
.actions { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; }
.actions--section { margin-top: clamp(2rem, 4vw, 3rem); }
.actions--center { justify-content: center; }
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
	min-height: 48px; padding: .8rem 1.35rem; border-radius: var(--radius);
	font-size: .875rem; font-weight: 720; letter-spacing: .045em; line-height: 1.2;
	text-decoration: none; border: 2px solid transparent; cursor: pointer;
	transition: background-color .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
}
.btn__rule { width: 14px; height: 2px; background: currentColor; transition: width .2s var(--ease); flex: none; }
.btn:hover .btn__rule { width: 24px; }
.btn--primary { background: var(--signal); color: var(--ink); border-color: var(--signal); }
.btn--primary:hover { background: #f6bb61; border-color: #f6bb61; }
.btn--secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--secondary:hover { background: var(--ink); color: var(--white); }
.btn--text { padding-inline: 0; min-height: 44px; color: var(--ink); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1.5px; }
.btn--text:hover { text-decoration-thickness: 3px; }
.btn--sm { min-height: 42px; padding: .6rem 1rem; font-size: .8125rem; }
.btn--lg { min-height: 56px; padding: 1rem 1.75rem; font-size: .9375rem; }
.btn--block { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .65; cursor: progress; }
@media (max-width: 480px) { .hero .actions .btn, .final .btn, .dform__submit .btn { width: 100%; } }

/* Header (K1) ------------------------------------------------------------- */
.site-header {
	position: sticky; top: 0; z-index: 50; background: var(--white);
	border-bottom: 1px solid var(--rule);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.site-header__bar { display: flex; align-items: center; gap: 1.5rem; height: var(--header-h); transition: height .2s var(--ease); }
.site-header.is-compact { --header-h: 62px; box-shadow: 0 1px 0 var(--rule); }

.brand { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; margin-right: auto; flex: none; }
.brand__img { max-height: 40px; width: auto; }
.brand__word { font-weight: 820; font-stretch: 118%; font-size: 1.125rem; letter-spacing: .02em; }
.brand__mark { display: inline-grid; grid-template-columns: repeat(3, 6px); gap: 3px; align-items: end; }
.brand__mark span { display: block; width: 6px; background: var(--ink); }
.brand__mark span:nth-child(1) { height: 8px; }
.brand__mark span:nth-child(2) { height: 13px; }
.brand__mark span:nth-child(3) { height: 18px; background: var(--signal); }
.site-footer .brand__mark span { background: var(--on-ink); }
.site-footer .brand__mark span:nth-child(3) { background: var(--signal); }

.site-nav { display: none; }
.site-header__cta { display: none; }
.menu-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
	border: 1.5px solid var(--ink); background: transparent; border-radius: var(--radius); cursor: pointer;
}
.menu-toggle .icon { width: 1.4rem; height: 1.4rem; }
.menu-toggle__close { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle__open { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle__close { display: inline; }

@media (min-width: 1180px) {
	.site-nav { display: block; }
	.site-header__cta { display: block; }
	.menu-toggle, .mobile-menu { display: none !important; }
	.brand { margin-right: 0; }
	.site-nav { margin-inline: auto; }
}

.nav-list--desktop { display: flex; align-items: center; gap: .25rem; }
.nav-link {
	display: inline-flex; align-items: center; min-height: 44px; padding: .4rem .7rem;
	font-size: .8125rem; font-weight: 650; font-stretch: 94%; letter-spacing: .05em;
	text-decoration: none; color: var(--ink); position: relative;
}
.nav-link::after {
	content: ""; position: absolute; left: .7rem; right: .7rem; bottom: .35rem; height: 2px;
	background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .2s var(--ease);
}
.nav-link:hover::after, .nav-item.is-active > .nav-link::after, .nav-item.is-active > .nav-split > .nav-link::after { transform: scaleX(1); }
.nav-item.is-active > .nav-link::after, .nav-item.is-active .nav-split > .nav-link::after { background: var(--signal); }

.has-sub { position: relative; }
.nav-split { display: flex; align-items: center; }
.nav-list--desktop .nav-split .nav-link { padding-right: .2rem; }
.nav-list--desktop .nav-split .nav-link::after { right: .2rem; }
.nav-sub-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 44px;
	background: none; border: 0; cursor: pointer; color: var(--ink);
}
.nav-sub-toggle .icon { width: 1rem; height: 1rem; transition: transform .2s var(--ease); }
.nav-sub-toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
.nav-list--desktop .nav-sub {
	position: absolute; top: calc(100% + .5rem); left: -.25rem; min-width: 19rem;
	background: var(--white); border: 1px solid var(--rule); border-top: 3px solid var(--ink);
	box-shadow: 0 18px 40px -18px rgba(19, 33, 44, .35); padding: .5rem;
	display: none;
}
.nav-list--desktop .nav-sub.is-open { display: block; }
.nav-sub-link {
	display: block; padding: .7rem .85rem; font-size: .9375rem; font-weight: 520; text-decoration: none;
	border-radius: var(--radius);
}
.nav-sub-link:hover, .nav-sub-link[aria-current] { background: var(--paper); }
.nav-sub-link--all { border-top: 1px solid var(--rule); margin-top: .35rem; padding-top: .9rem; font-weight: 700; font-size: .8125rem; letter-spacing: .04em; text-transform: uppercase; }

/* Mobile menu (B4, L6) */
.mobile-menu {
	position: fixed; inset: var(--header-h) 0 0 0; z-index: 49; overflow-y: auto;
	background: var(--white); border-top: 1px solid var(--rule);
	padding: 1rem var(--gutter) 2rem; display: flex; flex-direction: column; gap: 1.5rem;
}
.admin-bar .mobile-menu { top: calc(var(--header-h) + 46px); }
@media (min-width: 783px) { .admin-bar .mobile-menu { top: calc(var(--header-h) + 32px); } }
.nav-list--mobile > .nav-item { border-bottom: 1px solid var(--rule); }
.nav-list--mobile .nav-link { width: 100%; min-height: 56px; font-size: 1.0625rem; padding-inline: 0; }
.nav-list--mobile .nav-link::after { display: none; }
.nav-list--mobile .nav-item.is-active > .nav-link, .nav-list--mobile .nav-item.is-active .nav-split > .nav-link { box-shadow: inset 3px 0 0 var(--signal); padding-left: .85rem; }
.nav-list--mobile .nav-split { justify-content: space-between; }
.nav-list--mobile .nav-sub-toggle { width: 56px; height: 56px; }
.nav-list--mobile .nav-sub { display: none; padding: 0 0 1rem .85rem; border-left: 2px solid var(--rule); margin-left: .1rem; }
.nav-list--mobile .nav-sub.is-open { display: block; }
.nav-list--mobile .nav-sub-link { padding: .75rem .75rem; font-size: 1rem; }
body.menu-open { overflow: hidden; }

/* Hero (K3) --------------------------------------------------------------- */
.hero { padding-block: clamp(3rem, 7vw, 6.5rem) clamp(3.5rem, 7vw, 6.5rem); border-bottom: 1px solid var(--rule); }
.hero__grid { display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 960px) { .hero--split .hero__grid, .hero--conversion .hero__grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); } }
.hero--type .hero__copy { max-width: 58rem; }
.hero__title { font-size: clamp(2.35rem, 1.4rem + 3.3vw, 4.25rem); line-height: .99; }
.hero__sub {
	font-size: clamp(1.4rem, .95rem + 1.9vw, 2.6rem); line-height: 1.08; font-weight: 420;
	font-stretch: var(--wide); color: var(--graphite); margin-top: .6rem; text-wrap: balance;
}
.hero__cap {
	display: inline-block; margin-top: 1.75rem; padding: .45rem .75rem; border: 1.5px solid var(--ink);
	font-size: .8125rem; font-weight: 650; font-stretch: var(--narrow); letter-spacing: .04em;
}
.hero__body { margin-top: 1.5rem; max-width: 38rem; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); color: var(--graphite); }
.hero__support { margin-top: 1.25rem; font-weight: 680; font-stretch: var(--narrow); letter-spacing: .03em; font-size: .9375rem; }
.hero .actions { margin-top: 2.25rem; }

/* Drawing sheet — hero visual panel */
.sheet {
	position: relative; padding: clamp(1.5rem, 3vw, 2.5rem);
	background-color: var(--paper);
	background-image:
		linear-gradient(to right, rgba(19, 33, 44, .06) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(19, 33, 44, .06) 1px, transparent 1px);
	background-size: 20px 20px;
	border: 1px solid var(--rule);
}
.sheet::before, .sheet::after {
	content: ""; position: absolute; width: 14px; height: 14px; border-color: var(--ink); border-style: solid;
}
.sheet::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.sheet::after { right: -1px; bottom: -1px; border-width: 0 2px 2px 0; }

/* Chain: vertical signal flow */
.chain { position: relative; display: grid; gap: 0; }
.chain__node { position: relative; display: flex; align-items: center; gap: 1rem; padding-block: .9rem; }
.chain__node:not(.is-last)::before {
	content: ""; position: absolute; left: 9px; top: calc(50% + 10px); height: calc(100% - 20px); width: 2px; background: var(--ink);
}
.chain__dot {
	position: relative; z-index: 1; width: 20px; height: 20px; flex: none; border: 2px solid var(--ink);
	background: var(--white); border-radius: 50%;
}
.chain__node.is-last .chain__dot { background: var(--signal); border-color: var(--ink); }
.chain__text {
	background: var(--white); border: 1.5px solid var(--ink); padding: .6rem .9rem;
	font-size: clamp(.8125rem, .75rem + .25vw, .9375rem); font-weight: 720; font-stretch: var(--narrow); letter-spacing: .05em;
}
.chain__node.is-last .chain__text { background: var(--ink); color: var(--white); }
.chain__signal { display: none; }
.js .chain__dot { animation: tr-pulse .7s var(--ease) calc(var(--i) * .32s + .4s) 1 both; }
@keyframes tr-pulse {
	0% { background: var(--white); box-shadow: 0 0 0 0 rgba(242, 169, 59, .0); }
	45% { background: var(--signal); box-shadow: 0 0 0 7px rgba(242, 169, 59, .28); }
	100% { box-shadow: 0 0 0 0 rgba(242, 169, 59, 0); }
}
.js .chain__node:not(.is-last) .chain__dot { animation-name: tr-pulse-back; }
@keyframes tr-pulse-back {
	0% { background: var(--white); }
	45% { background: var(--signal); box-shadow: 0 0 0 7px rgba(242, 169, 59, .28); }
	100% { background: var(--white); box-shadow: 0 0 0 0 rgba(242, 169, 59, 0); }
}
.chain--tight .chain__node { padding-block: .45rem; }
.chain--tight .chain__text { padding: .4rem .7rem; }

/* Converge (Solutions hero) */
.sheet--converge { display: grid; gap: 1rem; }
.converge__inputs { display: grid; gap: .5rem; }
.converge__inputs li {
	font-size: .875rem; font-weight: 560; padding: .5rem .75rem; background: var(--white); border: 1px dashed var(--rule-strong);
}
.converge__lines { display: none; }
@media (min-width: 560px) {
	.sheet--converge { grid-template-columns: minmax(0, 1fr) 4rem minmax(0, 1fr); align-items: stretch; }
	.converge__inputs { align-content: space-around; }
	.converge__lines { display: block; width: 100%; height: 100%; }
	.converge__lines path { fill: none; stroke: var(--ink); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
	.sheet--converge .chain { align-content: center; }
}

/* System map (Industries hero) */
.sheet--map { aspect-ratio: 5 / 4; }
.map__lines { position: absolute; inset: 2rem; width: calc(100% - 4rem); height: calc(100% - 4rem); }
.map__lines path { fill: none; stroke: var(--ink); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.map__lines .map__ring { stroke-dasharray: 5 5; stroke: var(--rule-strong); }
.map__pt, .map__center {
	position: absolute; transform: translate(-50%, -50%); white-space: nowrap;
	font-size: clamp(.6875rem, .6rem + .3vw, .8125rem); font-weight: 700; font-stretch: var(--narrow); letter-spacing: .04em;
	background: var(--white); border: 1.5px solid var(--ink); padding: .45rem .65rem; text-transform: uppercase;
}
.map__pt--0 { left: calc(2rem + (100% - 4rem) * .2); top: calc(2rem + (100% - 4rem) * .18); }
.map__pt--1 { left: calc(2rem + (100% - 4rem) * .8); top: calc(2rem + (100% - 4rem) * .18); }
.map__pt--2 { left: calc(2rem + (100% - 4rem) * .2); top: calc(2rem + (100% - 4rem) * .82); }
.map__pt--3 { left: calc(2rem + (100% - 4rem) * .8); top: calc(2rem + (100% - 4rem) * .82); }
.map__center { left: 50%; top: 50%; background: var(--signal); }

/* Proof paths (Case Studies hero) */
.sheet--paths { display: grid; gap: 1.5rem; }
.path { background: var(--white); border: 2px solid var(--ink); padding: 1.5rem; display: grid; gap: 1rem; }
.path--dashed { border-style: dashed; }
.path__line { display: block; height: 3px; background: var(--ink); }
.path--dashed .path__line { background: repeating-linear-gradient(90deg, var(--ink) 0 10px, transparent 10px 18px); }
.path__name { font-weight: 780; font-stretch: var(--wide); font-size: 1.125rem; }

/* Icon row / badge / series sheets */
.iconrow { display: flex; justify-content: space-between; position: relative; }
.iconrow::before { content: ""; position: absolute; left: 1.5rem; right: 1.5rem; top: 50%; height: 2px; background: var(--ink); }
.iconrow li { position: relative; background: var(--white); border: 1.5px solid var(--ink); padding: .7rem; }
.iconrow .icon { width: clamp(1.4rem, 1rem + 1.2vw, 2rem); height: auto; aspect-ratio: 1; }
.sheet--badge { display: grid; place-items: center; gap: 1.25rem; min-height: 16rem; }
.sheet--badge .icon { width: 6rem; height: 6rem; stroke-width: 1; background: var(--white); border: 1.5px solid var(--ink); padding: 1.25rem; box-sizing: content-box; }
.sheet__caption { font-weight: 720; font-stretch: var(--narrow); letter-spacing: .05em; font-size: .875rem; }
.serieslist { display: grid; gap: .6rem; }
.serieslist li { display: flex; align-items: center; gap: .9rem; background: var(--white); border: 1.5px solid var(--ink); padding: .75rem 1rem; font-weight: 720; font-stretch: var(--narrow); letter-spacing: .04em; font-size: .9375rem; }

/* Breadcrumb */
.crumbs { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-size: .875rem; color: var(--muted); padding-top: 1.5rem; }
.crumbs a { color: var(--ink); text-underline-offset: 3px; }

/* Architecture flow (K10) ------------------------------------------------- */
.flow-wrap { container-type: inline-size; }
.flow { display: grid; gap: 1.75rem; grid-template-columns: minmax(0, 1fr); counter-reset: none; }
.flow__stage {
	position: relative; background: var(--white); border: 1.5px solid var(--ink);
	padding: 1rem 1.1rem; display: grid; gap: .35rem; align-content: start; border-radius: var(--radius);
}
.flow--dashed .flow__stage { border-style: dashed; }
.flow__num { font-size: .75rem; font-weight: 700; color: var(--signal-ink); letter-spacing: .06em; }
.flow__title { font-size: .875rem; font-weight: 740; font-stretch: var(--narrow); letter-spacing: .045em; line-height: 1.25; text-transform: uppercase; }
.flow__detail { font-size: .875rem; color: var(--graphite); line-height: 1.45; }
.flow__stage:last-child { background: var(--ink); color: var(--white); }
.flow__stage:last-child .flow__detail { color: var(--on-ink); }
.flow__stage:last-child .flow__num { color: var(--signal); }
/* Vertical connector (default / mobile) */
.flow__stage:not(:last-child)::after {
	content: ""; position: absolute; left: 1.4rem; top: 100%; width: 2px; height: 1.75rem;
	background: var(--ink); transform-origin: top;
}
.flow__stage:not(:last-child)::before {
	content: ""; position: absolute; left: calc(1.4rem - 4px); top: calc(100% + 1.75rem - 7px);
	border: 5px solid transparent; border-top: 6px solid var(--ink); border-bottom: 0; z-index: 1;
}
.flow--dashed .flow__stage:not(:last-child)::after { background: repeating-linear-gradient(180deg, var(--ink) 0 5px, transparent 5px 9px); }
.flow--lg .flow__stage { padding: 1.25rem 1.25rem 1.4rem; }
.flow--lg .flow__title { font-size: .9375rem; }
.flow--sm, .flow--stack { gap: 1.1rem; }
.flow--sm .flow__stage { padding: .55rem .8rem; }
.flow--sm .flow__title { font-size: .75rem; }
.flow--sm .flow__stage:not(:last-child)::after { height: 1.1rem; left: 1rem; }
.flow--sm .flow__stage:not(:last-child)::before { top: calc(100% + 1.1rem - 7px); left: calc(1rem - 4px); }
.flow--sm .flow__stage:last-child { background: var(--white); color: var(--ink); border-color: var(--ink); box-shadow: inset 4px 0 0 var(--signal); }

/* Horizontal flow when space allows (Part L9) */
@container (min-width: 760px) {
	.flow:not(.flow--stack):not(.flow--long) { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 2rem; }
	.flow:not(.flow--stack):not(.flow--long) .flow__stage:not(:last-child)::after {
		left: 100%; top: 1.6rem; width: 2rem; height: 2px; transform-origin: left;
	}
	.flow:not(.flow--stack):not(.flow--long) .flow__stage:not(:last-child)::before {
		left: calc(100% + 2rem - 7px); top: calc(1.6rem - 4px); border: 5px solid transparent; border-left: 6px solid var(--ink); border-right: 0;
	}
	.flow--dashed:not(.flow--stack):not(.flow--long) .flow__stage:not(:last-child)::after { background: repeating-linear-gradient(90deg, var(--ink) 0 5px, transparent 5px 9px); }
}
@container (min-width: 1100px) {
	.flow--long:not(.flow--stack) { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 1.5rem; }
	.flow--long:not(.flow--stack) .flow__stage { padding: .9rem .8rem; }
	.flow--long:not(.flow--stack) .flow__title { font-size: .8125rem; }
	.flow--long:not(.flow--stack) .flow__stage:not(:last-child)::after { left: 100%; top: 1.5rem; width: 1.5rem; height: 2px; transform-origin: left; }
	.flow--long:not(.flow--stack) .flow__stage:not(:last-child)::before { left: calc(100% + 1.5rem - 7px); top: calc(1.5rem - 4px); border: 5px solid transparent; border-left: 6px solid var(--ink); border-right: 0; }
}
/* Mid-width long flows: two-column logical rows */
@container (min-width: 600px) and (max-width: 1099.98px) {
	.flow--long:not(.flow--stack) { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
	.flow--long:not(.flow--stack) .flow__stage::after, .flow--long:not(.flow--stack) .flow__stage::before { display: none; }
	.flow--long:not(.flow--stack) .flow__stage { border-left-width: 4px; }
}
.flow--signature .flow__stage { box-shadow: 4px 4px 0 rgba(19, 33, 44, .08); }

/* One-time connector reveal */
.js [data-reveal]:not(.is-in) .flow__stage::after { transform: scale(0); }
[data-reveal] .flow__stage::after { transition: transform .45s var(--ease) calc(var(--i) * .14s); }

/* Delivery method (K11) --------------------------------------------------- */
.method { display: grid; gap: 0; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .method { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; } }
@media (min-width: 1024px) { .method { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 1.5rem; row-gap: 2.5rem; } }
.method__step { position: relative; display: grid; gap: .35rem; padding: 1.25rem 0 1.5rem; border-top: 2px solid var(--rule); }
.method__step::before {
	content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 100%; background: var(--ink);
	transform-origin: left; transition: transform .5s var(--ease) calc(var(--i) * .1s);
}
.js .method:not(.is-in) .method__step::before { transform: scaleX(0); }
.method__num { font-size: clamp(2rem, 1.5rem + 1.5vw, 3rem); font-weight: 250; font-stretch: var(--wide); line-height: 1; color: var(--signal-ink); }
.method__label { font-size: 1.0625rem; font-weight: 780; font-stretch: var(--wide); letter-spacing: .01em; margin-top: .5rem; }
.method__q { color: var(--graphite); }
.split-note { display: grid; gap: 1rem; margin-top: clamp(2rem, 4vw, 3rem); padding-top: 2rem; border-top: 1px solid var(--rule); }
@media (min-width: 900px) { .split-note { grid-template-columns: 1.3fr 1fr; gap: 3rem; align-items: end; } }
.split-note__body { color: var(--graphite); max-width: 40rem; margin-top: 2rem; }
.split-note .split-note__body { margin-top: 0; }
.split-note__close { font-size: clamp(1.25rem, 1rem + .8vw, 1.625rem); font-weight: 760; font-stretch: var(--wide); line-height: 1.15; }

/* Executive model 01–04 */
.exec { display: grid; gap: 1.5rem; }
@media (min-width: 800px) { .exec { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .exec { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem; } }
.exec__stage { position: relative; padding: 1.5rem 0 0 1.25rem; border-left: 2px solid var(--ink); }
@media (min-width: 1100px) {
	.exec__stage { padding: 1.5rem 0 0; border-left: 0; border-top: 2px solid var(--ink); }
	.exec__stage:not(:last-child)::after {
		content: ""; position: absolute; right: -1.6rem; top: -7px; border: 6px solid transparent; border-left: 8px solid var(--ink);
	}
}
.exec__num { font-size: .8125rem; font-weight: 700; color: var(--signal-ink); letter-spacing: .06em; }
.exec__name { font-size: 1.375rem; font-weight: 800; font-stretch: var(--wide); margin-top: .4rem; }
.exec__q { font-size: 1.125rem; font-weight: 560; margin-top: .35rem; }
.exec__copy { color: var(--graphite); margin-top: .75rem; font-size: 1rem; }

/* 90 Days to Proof */
.proof { display: grid; gap: 0; }
@media (min-width: 900px) { .proof { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; } }
.proof__stage { display: grid; grid-template-columns: 6.5rem 1fr; column-gap: 1rem; row-gap: .2rem; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.proof__when { grid-row: span 3; font-size: .8125rem; font-weight: 700; font-stretch: var(--narrow); letter-spacing: .05em; color: var(--signal-ink); }
.proof__bar { display: none; }
.proof__name { font-weight: 800; font-stretch: var(--wide); font-size: 1.125rem; }
.proof__items { color: var(--graphite); font-size: .9375rem; }
@media (min-width: 900px) {
	.proof__stage { display: grid; grid-template-columns: 1fr; border: 0; padding: 0; }
	.proof__when { grid-row: auto; }
	.proof__bar { display: block; height: 10px; margin: .4rem 0 .9rem; background: var(--ink); position: relative; }
	.proof__stage:last-child .proof__bar { background: var(--signal); }
	.proof__bar::after { content: ""; position: absolute; right: -1rem; top: 50%; width: 1rem; height: 2px; background: var(--ink); }
	.proof__stage:last-child .proof__bar::after { display: none; }
}
.decision { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: 2rem; }
.decision__label { font-size: .8125rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin-right: .5rem; color: var(--graphite); }
.decision__opt { border: 2px solid var(--ink); padding: .55rem 1.1rem; font-weight: 800; font-stretch: var(--wide); letter-spacing: .03em; background: var(--white); }
.proof__support { margin-top: 1.5rem; font-size: 1.1875rem; font-weight: 560; max-width: 44rem; }

/* Problem cards (K5) ------------------------------------------------------ */
.pcard__link {
	display: grid; gap: .75rem; height: 100%; padding: 1.75rem; text-decoration: none;
	background: var(--white); border: 1px solid var(--rule); border-top: 3px solid var(--ink);
	transition: border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);
}
.pcard__link:hover { border-color: var(--ink); box-shadow: 0 10px 24px -16px rgba(19, 33, 44, .45); transform: translateY(-2px); }
.pcard__icon { width: 1.75rem; height: 1.75rem; }
.pcard__title { font-size: 1.125rem; font-weight: 780; font-stretch: 104%; line-height: 1.2; }
.pcard__copy { color: var(--graphite); font-size: 1rem; }

.pdetails { gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 3rem); }
.pdetail { padding-top: 1.25rem; border-top: 3px solid var(--ink); display: grid; gap: .75rem; align-content: start; }
.pdetail:target { box-shadow: 0 -3px 0 var(--signal); }
.pdetail__head { display: flex; justify-content: space-between; align-items: center; }
.pdetail__num { font-size: .8125rem; font-weight: 700; color: var(--signal-ink); letter-spacing: .06em; }
.pdetail__icon { width: 1.75rem; height: 1.75rem; }
.pdetail__title { font-size: clamp(1.2rem, 1.05rem + .4vw, 1.4rem); font-weight: 800; font-stretch: var(--wide); line-height: 1.12; }
.pdetail__body { color: var(--graphite); }
.pdetail__meta { display: grid; gap: .9rem; margin-top: .5rem; }
.pdetail__meta dt, .dcard__meta dt { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pdetail__meta dd { font-size: .9375rem; margin-top: .15rem; }
.pdetail__outcome { padding-left: .9rem; border-left: 3px solid var(--signal); }
.pdetail__outcome dd { font-weight: 620; }

/* Capability cards (K6) */
.ccard__link {
	display: flex; flex-direction: column; gap: .8rem; height: 100%; padding: clamp(1.5rem, 2.5vw, 2rem);
	text-decoration: none; background: var(--white); border: 1.5px solid var(--ink); border-radius: var(--radius);
	transition: background-color .18s var(--ease);
}
.ccard__link:hover { background: var(--paper); }
.ccard__icon { width: 2rem; height: 2rem; }
.ccard__title { font-size: 1.1875rem; font-weight: 800; font-stretch: var(--wide); line-height: 1.15; }
.ccard__summary { color: var(--graphite); }
.ccard__includes { font-size: .9375rem; color: var(--graphite); }
.ccard__inc-label { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: .2rem; }
.ccard__more { margin-top: auto; padding-top: .75rem; font-size: .8125rem; font-weight: 740; letter-spacing: .04em; text-decoration: underline; text-underline-offset: 4px; }
.ccard--home .ccard__includes { font-size: 1rem; }

/* Industry cards (K7) */
.indcard__link { display: grid; gap: .6rem; height: 100%; padding: 1.5rem; text-decoration: none; border: 1px solid var(--rule); border-left: 3px solid var(--ink); background: var(--white); transition: border-color .18s var(--ease); }
.indcard__link:hover { border-color: var(--ink); }
.indcard__icon { width: 1.75rem; height: 1.75rem; }
.indcard__title { font-size: 1.0625rem; font-weight: 800; font-stretch: 106%; }
.indcard__copy { font-size: .9375rem; color: var(--graphite); }

/* Labels (K16) ------------------------------------------------------------ */
.label {
	display: inline-flex; align-items: center; gap: .55rem; align-self: start; justify-self: start;
	padding: .35rem .65rem; font-size: .6875rem; font-weight: 760; font-stretch: var(--narrow); letter-spacing: .08em;
	border: 1.5px dashed var(--ink); background: var(--white); color: var(--ink); line-height: 1.2;
}
.label__line { width: 18px; height: 2px; background: repeating-linear-gradient(90deg, var(--ink) 0 4px, transparent 4px 7px); }
.label--verified { border-style: solid; }
.label--verified .label__line { background: var(--ink); }

/* Blueprint cards (K8) — dashed = illustrative */
.bcard__inner {
	display: flex; flex-direction: column; gap: 1.1rem; height: 100%; padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--white); border: 1.5px dashed var(--ink); position: relative;
}
.bcard__title { font-weight: 800; font-stretch: var(--wide); line-height: 1.12; font-size: clamp(1.15rem, 1rem + .45vw, 1.375rem); }
.bcard__title a { text-decoration: none; }
.bcard__title a::after { content: ""; position: absolute; inset: 0; }
.bcard__title a:focus-visible { outline: 0; }
.bcard__inner:has(a:focus-visible) { outline: 3px solid var(--ink); outline-offset: 3px; }
.bcard__inner:hover { border-style: solid; }
.bcard__lead { display: block; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem); font-weight: 820; line-height: 1; }
.bcard__q { display: block; font-weight: 480; margin-top: .4rem; font-stretch: 100%; }
.bcard__problem { color: var(--graphite); }
.bcard__value { font-weight: 600; padding-left: .9rem; border-left: 3px solid var(--signal); }
.bcard__more, .icard__more { margin-top: auto; font-size: .8125rem; font-weight: 740; letter-spacing: .04em; text-decoration: underline; text-underline-offset: 4px; }
.bcard .flow-wrap { margin-block: .25rem; }

/* Delivery cards (K9) — solid = verified */
.dcard__inner { display: flex; flex-direction: column; gap: 1rem; height: 100%; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--white); border: 2px solid var(--ink); position: relative; }
.dcard__context { font-size: .8125rem; font-weight: 700; letter-spacing: .05em; color: var(--muted); text-transform: uppercase; }
.dcard__title { font-size: 1.25rem; font-weight: 800; font-stretch: 106%; line-height: 1.15; }
.dcard__title a { text-decoration: none; }
.dcard__title a::after { content: ""; position: absolute; inset: 0; }
.dcard__meta { display: grid; gap: .75rem; }
.dcard__meta dd { font-size: .9375rem; }

/* Technology choice (K13) */
.tc { display: grid; border-top: 2px solid var(--ink); }
@media (min-width: 640px) { .tc { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .tc { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tc__item { padding: 1.5rem 1.5rem 1.75rem 0; border-bottom: 1px solid var(--rule); }
@media (min-width: 640px) { .tc__item + .tc__item { padding-left: 1.5rem; border-left: 1px solid var(--rule); } .tc__item:nth-child(3) { border-left: 0; padding-left: 0; } }
@media (min-width: 1024px) { .tc__item:nth-child(3) { border-left: 1px solid var(--rule); padding-left: 1.5rem; } .tc__item { border-bottom: 0; } }
.tc__name { font-size: clamp(1.2rem, 1rem + .5vw, 1.4rem); font-weight: 820; font-stretch: var(--wide); }
.tc__copy { color: var(--graphite); margin-top: .6rem; }
.statement { margin-top: clamp(2.5rem, 5vw, 4rem); max-width: 52rem; }
.statement__a { font-size: clamp(1.5rem, 1rem + 1.8vw, 2.5rem); font-weight: 420; font-stretch: var(--wide); line-height: 1.08; color: var(--graphite); }
.statement__b { font-size: clamp(1.5rem, 1rem + 1.8vw, 2.5rem); font-weight: 800; font-stretch: var(--wide); line-height: 1.08; margin-top: .3rem; }
.statement__body { color: var(--graphite); margin-bottom: 1rem; max-width: 40rem; }

.principles { display: grid; gap: 0; max-width: 56rem; }
.principles li { padding: 1rem 0; border-bottom: 1px solid var(--rule); font-size: 1.125rem; }
.principles strong { font-weight: 780; }

/* $1M question — dark, dramatic */
.section--million { background: var(--ink); color: var(--on-ink); }
.section--million .eyebrow { color: var(--signal); }
.section--million .section-title { color: var(--white); font-size: clamp(2rem, 1.2rem + 3vw, 3.75rem); }
.section--million .btn--secondary { color: var(--white); border-color: var(--white); }
.section--million .btn--secondary:hover { background: var(--white); color: var(--ink); }
.million { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center; }
@media (min-width: 1024px) { .million { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } }
.million__formula { font-size: 1.0625rem; font-weight: 560; padding: 1rem 1.25rem; border: 1.5px dashed var(--on-ink-muted); color: var(--white); }
.million__support { margin-top: 1.25rem; font-size: 1.1875rem; color: var(--on-ink); max-width: 36rem; }
.million__closing { margin-top: 1.5rem; font-weight: 780; font-stretch: var(--wide); font-size: 1.375rem; color: var(--white); }
.million__side { display: grid; gap: 1rem; }

.calc { background: var(--ink-2); border: 1px solid rgba(255, 255, 255, .16); padding: clamp(1.5rem, 3vw, 2.25rem); }
.calc__flag { display: inline-block; justify-self: start; width: fit-content; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border: 1.5px dashed currentColor; padding: .3rem .6rem; margin-bottom: 1.25rem; }
.section--million .calc__flag { color: var(--signal); }
.calc__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
@media (min-width: 560px) { .calc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.calc__op { display: none; }
.calc__field { display: grid; gap: .4rem; }
.calc__label { font-size: .8125rem; color: var(--on-ink-muted); font-weight: 560; }
.calc input {
	width: 100%; min-height: 52px; padding: .5rem .75rem; background: transparent; color: var(--white);
	border: 1.5px solid var(--on-ink-muted); font-size: 1.5rem; font-weight: 700; font-stretch: var(--wide);
}
.calc input:focus { outline: 3px solid var(--signal); outline-offset: 1px; border-color: var(--white); }
.calc__result { margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .2); display: grid; gap: .35rem; }
.calc__result-label { font-size: .75rem; font-weight: 720; letter-spacing: .06em; color: var(--on-ink-muted); }
.calc__value { font-size: clamp(2.25rem, 1.5rem + 3vw, 3.5rem); font-weight: 820; font-stretch: var(--wide); color: var(--signal); line-height: 1; font-variant-numeric: tabular-nums; }
.calc__result-note { font-size: .875rem; color: var(--on-ink-muted); }
.calc__formula { color: var(--on-ink); }

.equation { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.equation__term { border: 1.5px solid var(--on-ink-muted); padding: .7rem 1rem; font-weight: 650; color: var(--white); }
.equation__term--result { border: 2px solid var(--signal); color: var(--signal); }
.equation__op { font-size: 1.5rem; font-weight: 300; color: var(--on-ink-muted); }

/* Final CTA (K19) --------------------------------------------------------- */
.final {
	background-color: var(--ink); color: var(--on-ink); text-align: center;
	padding-block: clamp(5rem, 10vw, 9rem);
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 32px 32px;
}
.final__inner { max-width: 60rem; }
.final__title { color: var(--white); font-size: clamp(2rem, 1.2rem + 3.2vw, 4rem); line-height: 1.03; }
.final__sub { margin-top: 1.25rem; font-size: clamp(1.125rem, .95rem + .8vw, 1.625rem); font-weight: 500; font-stretch: var(--wide); color: var(--white); }
.final__body { margin: 1.5rem auto 0; max-width: 40rem; font-size: 1.1875rem; color: var(--on-ink); }
.final__support { margin-top: 1rem; color: var(--on-ink-muted); font-weight: 560; }
.final .actions { margin-top: 2.5rem; }

/* Proof columns (home C11) */
.proofcols { display: grid; gap: 1.5rem; }
@media (min-width: 900px) { .proofcols { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); } }
.proofcol { padding: clamp(1.5rem, 3vw, 2.25rem); display: grid; gap: 1rem; align-content: start; }
.proofcol--solid { border: 2px solid var(--ink); }
.proofcol--dashed { border: 1.5px dashed var(--ink); }
.proofcol__title { font-size: 1.375rem; font-weight: 820; font-stretch: var(--wide); }
.proofcol__desc { color: var(--graphite); max-width: 44rem; }
.linklist { display: grid; }
.linklist a { display: block; padding: .9rem 0; border-top: 1px solid var(--rule); text-decoration: none; font-weight: 640; }
.linklist a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 900px) { .proofcol--dashed .linklist { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; } }

/* Lists ------------------------------------------------------------------- */
.list { display: grid; }
.list li { position: relative; padding: .85rem 0 .85rem 1.75rem; border-top: 1px solid var(--rule); }
.list li:last-child { border-bottom: 1px solid var(--rule); }
.list li::before { content: ""; position: absolute; left: 0; top: 1.45rem; width: 10px; height: 2px; background: var(--ink); }
.list--ticks li::before { width: 8px; height: 8px; top: 1.3rem; background: var(--ink); }
.list--outcomes li::before { width: 4px; height: 1.1rem; top: 1.05rem; background: var(--signal); }
.list--outcomes li { font-weight: 560; }
.list--problems li::before { background: repeating-linear-gradient(90deg, var(--ink) 0 3px, transparent 3px 5px); width: 12px; }
.list--dont li::before { width: 10px; height: 10px; top: 1.25rem; background: none; border: 2px solid var(--rule-strong); border-radius: 50%; }
.list--grid { gap: 0 2rem; }
@media (min-width: 640px) { .list--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .list--grid li:nth-last-child(2) { border-bottom: 1px solid var(--rule); } }
.list--rules li::before { width: 6px; height: 6px; top: 1.35rem; background: var(--signal-ink); }

.cols { display: grid; gap: 1.5rem 3rem; }
@media (min-width: 960px) { .cols { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; } .cols__head { position: sticky; top: calc(var(--header-h) + 2rem); } }
.cols__head.section-title, .cols__head .section-title { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem); }

/* Industries */
.industry__head { display: grid; gap: 1.5rem; margin-bottom: clamp(2rem, 4vw, 3rem); max-width: 60rem; }
@media (min-width: 720px) { .industry__head { grid-template-columns: 6.5rem minmax(0, 1fr); align-items: start; } }
.industry__visual {
	width: 6.5rem; aspect-ratio: 1; display: grid; place-items: center; border: 1.5px solid var(--ink);
	background-color: var(--white);
	background-image: linear-gradient(to right, rgba(19, 33, 44, .07) 1px, transparent 1px), linear-gradient(to bottom, rgba(19, 33, 44, .07) 1px, transparent 1px);
	background-size: 13px 13px;
}
.industry__visual .icon { width: 3rem; height: 3rem; stroke-width: 1.25; }
.industry__cols { display: grid; gap: 2rem; }
@media (min-width: 960px) { .industry__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; } }
.industry__label { font-size: .8125rem; font-weight: 740; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .75rem; }
.industry .list li { font-size: 1rem; }

/* Case studies hub */
.selector { display: grid; gap: 1rem; }
@media (min-width: 800px) { .selector { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.selector__opt {
	display: grid; gap: .75rem; text-align: left; padding: 1.75rem; background: var(--white); cursor: pointer;
	border: 2px solid var(--ink); transition: background-color .18s var(--ease), color .18s var(--ease);
}
.selector__opt--dashed { border-style: dashed; }
.selector__name { font-size: 1.25rem; font-weight: 820; font-stretch: var(--wide); }
.selector__def { color: var(--graphite); }
.selector__opt:hover { background: var(--paper); }
.selector__opt[aria-pressed="true"] { background: var(--ink); color: var(--white); }
.selector__opt[aria-pressed="true"] .selector__def { color: var(--on-ink); }
.selector__opt[aria-pressed="true"]::after { content: "Showing"; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--signal); }
.selector__reset { margin-top: 1rem; }
.value-grid { display: grid; gap: 0; border-top: 2px solid var(--ink); margin-bottom: 2.5rem; }
@media (min-width: 640px) { .value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .value-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.value-grid__item { padding: 1.25rem 1.5rem 1.25rem 0; border-bottom: 1px solid var(--rule); }
.value-grid dt { font-weight: 820; font-stretch: var(--wide); }
.value-grid dd { color: var(--graphite); margin-top: .25rem; }

/* Insights */
.series { display: grid; gap: 0; border-top: 2px solid var(--ink); }
@media (min-width: 720px) { .series { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; } }
@media (min-width: 1180px) { .series { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 1.5rem; } }
.series__item { padding: 1.5rem 0; border-bottom: 1px solid var(--rule); display: grid; gap: .6rem; align-content: start; }
@media (min-width: 1180px) { .series__item { border-bottom: 0; } }
.series__name { display: flex; align-items: center; gap: .6rem; font-size: 1.0625rem; font-weight: 820; font-stretch: var(--wide); }
.series__purpose { color: var(--graphite); font-size: 1rem; }
.series__structure { font-size: .8125rem; font-weight: 600; color: var(--muted); }
.series-mark { width: 14px; height: 14px; fill: var(--ink); flex: none; }
.series-label { display: inline-flex; align-items: center; gap: .5rem; font-size: .75rem; font-weight: 760; letter-spacing: .07em; }
.serieslist .series-mark { fill: var(--signal); stroke: var(--ink); stroke-width: 1.5; width: 18px; height: 18px; }

.featured-wrap { margin-bottom: 2rem; }
.icard__inner { display: grid; height: 100%; border-top: 3px solid var(--ink); position: relative; }
.icard__body { display: flex; flex-direction: column; gap: .75rem; padding-top: 1.25rem; height: 100%; }
.icard__title { font-size: 1.25rem; font-weight: 800; font-stretch: 104%; line-height: 1.2; }
.icard__title a { text-decoration: none; }
.icard__title a::after { content: ""; position: absolute; inset: 0; }
.icard__inner:hover .icard__title a { text-decoration: underline; text-underline-offset: 4px; }
.icard__summary { color: var(--graphite); font-size: 1rem; }
.icard__meta { display: flex; gap: 1rem; font-size: .875rem; color: var(--muted); }
.icard--featured .icard__inner { background: var(--paper); border-top-width: 4px; }
.icard--featured .icard__body { padding: clamp(1.5rem, 3vw, 2.5rem); }
.icard--featured .icard__title { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem); font-stretch: var(--wide); }
@media (min-width: 900px) { .icard--featured .icard__inner:has(.icard__media) { grid-template-columns: 1fr 1fr; } }
.icard__media img { width: 100%; height: 100%; object-fit: cover; }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.filters__btn { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem .9rem; background: var(--white); border: 1.5px solid var(--rule-strong); cursor: pointer; font-size: .8125rem; font-weight: 700; letter-spacing: .04em; }
.filters__btn[aria-pressed="true"] { background: var(--ink); color: var(--white); border-color: var(--ink); }
.filters__btn[aria-pressed="true"] .series-mark { fill: var(--signal); }
.pager { display: flex; align-items: center; gap: 1rem; margin-top: 3rem; }

/* About */
.editorial { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 960px) { .editorial { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 5rem; } }
.editorial__text { display: grid; gap: 1.25rem; max-width: 40rem; }
.editorial__text p { color: var(--graphite); font-size: 1.125rem; }
.editorial__text .closing-line { color: var(--ink); }
.gap { display: grid; gap: 0; }
.gap__a, .gap__c { padding: 1.25rem; border: 2px solid var(--ink); font-weight: 780; font-stretch: var(--narrow); letter-spacing: .05em; text-transform: uppercase; background: var(--white); }
.gap__c { background: var(--ink); color: var(--white); box-shadow: inset 0 -5px 0 var(--signal); }
.gap__b { height: 5rem; margin-left: 1.5rem; border-left: 2px dashed var(--ink); }
.gap__label { margin: -3.4rem 0 1.9rem 2.5rem; font-size: .875rem; font-weight: 650; color: var(--signal-ink); text-transform: uppercase; letter-spacing: .05em; }
.principle { padding-top: 1.1rem; border-top: 2px solid var(--ink); display: grid; gap: .5rem; align-content: start; }
.principle__name { font-size: 1rem; font-weight: 820; font-stretch: 106%; line-height: 1.2; }
.principle p { color: var(--graphite); font-size: 1rem; }
.defs { display: grid; border-top: 2px solid var(--ink); max-width: 64rem; }
.defs__row { display: grid; gap: .35rem 2rem; padding: 1.25rem 0; border-bottom: 1px solid var(--rule); }
@media (min-width: 800px) { .defs__row { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.defs dt { font-weight: 800; font-stretch: 106%; }
.defs dd { color: var(--graphite); }
.bridge { display: grid; gap: 1rem; align-items: center; }
@media (min-width: 800px) { .bridge { grid-template-columns: auto 1fr auto; } }
.bridge__end { padding: 1.25rem 1.5rem; background: var(--white); border: 2px solid var(--ink); font-weight: 820; font-stretch: var(--wide); text-align: center; }
.bridge__span { height: 2rem; position: relative; }
.bridge__span::before { content: ""; position: absolute; left: 12px; right: 12px; top: 50%; height: 2px; background: var(--ink); }
.bridge__span::after { content: ""; position: absolute; inset: calc(50% - 7px) 0 auto 0; height: 14px; background:
	linear-gradient(135deg, transparent 50%, var(--ink) 50%) left / 10px 14px no-repeat; }
@media (max-width: 799.98px) { .bridge__span { width: 2px; height: 2.5rem; margin-inline: auto; background: var(--ink); } .bridge__span::before, .bridge__span::after { display: none; } }
.bridge__base { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 1rem; }
.bridge__base span { padding: .5rem 1rem; border: 1.5px solid var(--ink); background: var(--signal); font-weight: 760; font-size: .875rem; letter-spacing: .05em; }
.aside-note { display: grid; gap: .75rem; max-width: 52rem; padding: 1.25rem 1.5rem; border: 1px solid var(--rule); color: var(--graphite); font-size: 1rem; }

/* Discovery form (K18, Part J) ------------------------------------------- */
.section--form { padding-top: clamp(2.5rem, 5vw, 4rem); }
.form-layout { max-width: calc(52rem + var(--gutter) * 2); }
.dform { display: grid; gap: clamp(2.5rem, 5vw, 3.5rem); }
.fgroup { border: 0; margin: 0; padding: 1.5rem 0 0; border-top: 2px solid var(--ink); min-width: 0; display: grid; gap: 1rem; }
.fgroup__legend { display: flex; align-items: baseline; gap: .75rem; padding: 0; font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); font-weight: 820; font-stretch: var(--wide); line-height: 1.2; float: left; width: 100%; margin-bottom: .25rem; }
.fgroup__legend + * { clear: both; }
.fgroup__num { font-size: .8125rem; color: var(--signal-ink); font-weight: 700; font-stretch: 100%; }
.req, .opt { font-size: .8125rem; font-weight: 500; color: var(--muted); font-stretch: 100%; letter-spacing: 0; }
.field { display: grid; gap: .4rem; }
.field__label { font-weight: 680; font-size: 1rem; }
.field__help { font-size: .9375rem; color: var(--graphite); }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field textarea, .field select {
	width: 100%; min-height: 50px; padding: .75rem .9rem; background: var(--white);
	border: 1.5px solid var(--rule-strong); border-radius: var(--radius); font-size: 1rem; line-height: 1.5;
}
.field textarea { resize: vertical; min-height: 9rem; }
.field input:focus, .field textarea:focus, .field select:focus { outline: 3px solid var(--ink); outline-offset: 1px; border-color: var(--ink); }
.field.is-invalid input, .field.is-invalid textarea, .fgroup.is-invalid .choice { border-color: var(--error); }
.field__err { color: var(--error); font-size: .9375rem; font-weight: 600; }
.field__err::before { content: "! "; font-weight: 800; }
.fgrid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .fgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.choices { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); }
.choice {
	position: relative; display: flex; align-items: center; gap: .75rem; min-height: 54px; padding: .7rem 1rem;
	border: 1.5px solid var(--rule-strong); background: var(--white); cursor: pointer; font-size: .9875rem; font-weight: 540;
	transition: border-color .15s var(--ease), background-color .15s var(--ease);
}
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice__box { width: 20px; height: 20px; border: 2px solid var(--ink); flex: none; background: var(--white); display: grid; place-items: center; }
.choices--radio .choice__box { border-radius: 50%; }
.choice:hover { border-color: var(--ink); }
.choice:has(input:checked) { border-color: var(--ink); background: var(--paper); box-shadow: inset 4px 0 0 var(--signal); }
.choice input:checked + .choice__box { background: var(--ink); box-shadow: inset 0 0 0 3px var(--white); }
.choice:has(input:focus-visible) { outline: 3px solid var(--ink); outline-offset: 2px; }
.consent { font-size: .9375rem; color: var(--graphite); max-width: 44rem; }
.consent a { color: var(--ink); text-underline-offset: 3px; }
.dform__error { padding: 1rem 1.25rem; border: 2px solid var(--error); color: var(--error); font-weight: 600; display: grid; gap: .35rem; }
.dform__error a { color: var(--ink); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-success { padding: clamp(2rem, 4vw, 3rem); border: 2px solid var(--ink); box-shadow: inset 0 6px 0 var(--signal); display: grid; gap: 1.25rem; }
.form-success__title { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); line-height: 1.05; }
.form-success p { font-size: 1.1875rem; color: var(--graphite); max-width: 38rem; }
.form-success:focus { outline: none; }
.reassure__do { margin-top: 1.5rem; font-size: 1.1875rem; font-weight: 700; }

/* Detail pages (case studies / insights) --------------------------------- */
.detail__hero, .article__head { padding-block: 0 clamp(2.5rem, 5vw, 4rem); }
.detail__hero { background: var(--paper); border-bottom: 1px solid var(--rule); }
.detail__hero .container { display: grid; gap: 1.1rem; justify-items: start; }
.detail__hero .crumbs { margin-bottom: 1rem; }
.detail__title, .article__title { font-size: clamp(2rem, 1.2rem + 3vw, 3.75rem); line-height: 1.03; max-width: 60rem; }
.detail__hero .eyebrow { margin: 0; }
.detail__body { padding-block: clamp(3rem, 6vw, 5rem); display: grid; gap: 0; }
.dsec { display: grid; gap: 1rem 3rem; padding: 2rem 0; border-top: 1px solid var(--rule); }
@media (min-width: 900px) { .dsec { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }
.dsec__title { display: flex; gap: .9rem; align-items: baseline; font-size: 1.125rem; font-weight: 820; font-stretch: var(--wide); text-transform: uppercase; }
.dsec__num { font-size: .8125rem; color: var(--signal-ink); font-weight: 700; }
.dsec__body { max-width: 44rem; color: var(--graphite); font-size: 1.125rem; }
.dsec__body p + p { margin-top: 1rem; }
.dsec__body .calc__flag { color: var(--signal-ink); }
.formula { font-weight: 650; color: var(--ink); padding: 1rem 1.25rem; border: 1.5px dashed var(--ink); }
.detail--blueprint .dsec__body .decision { margin-top: 0; }
.detail__next { display: flex; flex-wrap: wrap; gap: 1rem; padding-top: 2.5rem; border-top: 2px solid var(--ink); }

.article__head { display: grid; gap: 1.1rem; justify-items: start; max-width: calc(52rem + var(--gutter) * 2); }
.article__meta { display: flex; flex-wrap: wrap; gap: 1.25rem; color: var(--muted); font-size: .9375rem; }
.article__media { margin-bottom: 3rem; }
.prose { max-width: calc(44rem + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); padding-bottom: clamp(3rem, 6vw, 5rem); font-size: 1.125rem; line-height: 1.72; }
.prose > * + * { margin-top: 1.25em; }
.prose h2 { font-size: clamp(1.4rem, 1.2rem + .6vw, 1.75rem); font-weight: 780; font-stretch: 106%; line-height: 1.15; margin-top: 2.2em; }
.prose h3 { font-size: 1.25rem; font-weight: 760; margin-top: 1.8em; }
.prose ul { list-style: square; padding-left: 1.25rem; }
.prose ol { list-style: decimal; padding-left: 1.4rem; }
.prose li + li { margin-top: .4em; }
.prose a { text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.prose blockquote { margin-inline: 0; padding-left: 1.25rem; border-left: 3px solid var(--signal); font-size: 1.25rem; }
.prose .is-style-hook { font-size: 1.375rem; line-height: 1.5; }
.prose img { height: auto; }
.prose figure { margin-block: 2rem; }
.related { max-width: calc(44rem + var(--gutter) * 2); padding-bottom: 2rem; }
.related__title { font-size: .8125rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; margin-bottom: .5rem; }
.article__next { max-width: calc(44rem + var(--gutter) * 2); padding-bottom: clamp(3rem, 6vw, 5rem); display: flex; flex-wrap: wrap; gap: 1rem; }

/* Footer (K2) ------------------------------------------------------------- */
.site-footer { background: var(--ink); color: var(--on-ink); padding-top: clamp(3.5rem, 6vw, 5rem); border-top: 4px solid var(--signal); }
.site-footer__grid { display: grid; gap: 2.5rem; padding-bottom: 3rem; }
@media (min-width: 720px) { .site-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .site-footer__brand { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .site-footer__grid { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); } .site-footer__brand { grid-column: auto; } }
.site-footer .brand { color: var(--white); margin-bottom: 1.25rem; }
.site-footer__statement { font-size: 1.25rem; font-weight: 640; font-stretch: 106%; color: var(--white); max-width: 26rem; line-height: 1.3; }
.site-footer__cap { margin-top: .9rem; font-size: .875rem; color: var(--on-ink-muted); }
.site-footer__head { font-size: .75rem; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; color: var(--on-ink-muted); margin-bottom: 1rem; }
.footer-links { display: grid; gap: .1rem; }
.footer-links a { display: inline-block; padding: .4rem 0; min-height: 36px; text-decoration: none; color: var(--on-ink); }
.footer-links a:hover { color: var(--white); text-decoration: underline; text-underline-offset: 4px; }
.site-footer__bottom { display: flex; flex-wrap: wrap; gap: .75rem 2rem; align-items: center; padding-block: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .875rem; color: var(--on-ink-muted); }
.site-footer__bottom .footer-links { display: flex; gap: 1.5rem; }
.site-footer__bottom .footer-links a { color: var(--on-ink-muted); }
.site-footer__copy { margin-right: auto; }

/* Reduced motion (Part K25) ---------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.js [data-reveal]:not(.is-in) .flow__stage::after, .js .method:not(.is-in) .method__step::before { transform: none; }
}

/* Print */
@media print {
	.site-header, .site-footer, .final, .actions { display: none !important; }
	.section { padding-block: 1.5rem; }
}
.grid + .flow-wrap, .tc + .flow-wrap, .value-grid + .flow-wrap { margin-top: clamp(2rem, 4vw, 3rem); }
