/**
 * AscendAI homepage presentation ("Daylight").
 *
 * Art direction: pale-sky hero over the range-day photograph fading to white,
 * Montserrat display in near-black (first sentence 700, second 500), Inter
 * body, soft 14px / 20px radii, hairline rules and a lot of air. Derived from
 * the approved static concept (handoffs/homepage-redesign/concepts/a-daylight)
 * and rebuilt as scoped CSS over native Gutenberg blocks. The concept carried
 * inline styles, inline SVG diagrams, a hand-built form and its own
 * announcement strip / nav / footer. None of that may enter a Page record.
 *
 * The page is a FRAGMENT. templates/page-homepage.php supplies the shell
 * (`main.ascend-landing-page.ascend-home`); the theme supplies the header,
 * navigation and footer. Nothing here styles anything outside `.ascend-home`.
 *
 * HOUSE RULES (same as page-kevin-williams.css / page-hospitality.css):
 *
 *  1. Every selector is anchored at
 *     `body.ascend-home-template-active .ascend-home`. The body class is set
 *     by the plugin only while this template, or a template built from these
 *     components, is active; it is the entire isolation mechanism.
 *     SECOND CONSUMER: the AI Budget 2027 page (`ascend-ai-budget.php`,
 *     /ai-budget-2027/) loads this file unchanged, then page-ai-budget.css.
 *     Any edit here changes that page too; re-run
 *     pages/ai-budget-2027/page.py check and look at both pages.
 *
 *  2. Paragraph components are written `p.ascend-home-*` so they outrank the
 *     generic paragraph rule. Element rules here are (0,2,2); components are
 *     (0,3,2) because they also carry the `.ascend-home` step.
 *
 *  3. WordPress injects `.wp-block-group__inner-container` into every Group
 *     at render time on this site. Every LAYOUT container (grid / flex /
 *     display:contents) is therefore written against both shapes:
 *     `X > .wp-block-group__inner-container` and
 *     `X:not(:has(> .wp-block-group__inner-container))`.
 *     Box properties (padding, max-width, borders, backgrounds, positioning)
 *     go on the Group itself, where the shape makes no difference; absolutely
 *     positioned children and pseudo-elements always resolve against the
 *     Group, never against the injected wrapper, which is left unpositioned.
 *
 *  4. Resets use margin / padding longhands, never the shorthand.
 *
 *  5. NO `auto-fit` / `auto-fill`. Every grid declares explicit tracks and
 *     degrades through explicit breakpoints (1360 / 1320 / 1100 / 1000 / 746 / 700).
 *
 *  6. Small blue text uses --ascend-home-blue-text (#1f6c9e: 5.68:1 on white,
 *     4.9:1 on --sky). The brand blue #3498dc is 3.15:1 on white and is used
 *     only for fills, rules and diagram accents, never for small text.
 *
 *  7. No motion. There are no transitions or animations in this file, so
 *     there is nothing to disable under `prefers-reduced-motion`.
 *
 * DIAGRAMS. The concept drew its two diagrams with inline SVG. Here the text
 * is native blocks and the line-work is CSS only:
 *   - "one connected system": straight connectors and the blue return loop
 *     are borders on pseudo-elements; the two fork curves are one SVG data
 *     URI painted as the background of `.ascend-home-flow-step--fork::after`.
 *     Horizontal geometry is in % of the flow box, vertical geometry in px,
 *     exactly the coordinate system the nodes themselves use, so the lines
 *     meet the nodes at every desktop width. Below 1101px it becomes a
 *     vertical rail with the blue loop running up the left edge.
 *   - "five disciplines": the five converging lines are one SVG data URI on
 *     `.ascend-home-merge::before`; rows are equal-height grid tracks so the
 *     line origins stay on the row centres. Below 1001px it becomes a rail.
 */

body.ascend-home-template-active .ascend-home {
	--ascend-home-ink: #0f1a24;
	--ascend-home-ink-2: #44515e;
	--ascend-home-line: #d3dde6;
	--ascend-home-line-sky: #bccbd8;
	--ascend-home-sky: #eaf2f9;
	--ascend-home-sky-top: #c4dbed;
	--ascend-home-blue: #3498dc;
	--ascend-home-blue-text: #1f6c9e;
	--ascend-home-halo: rgb(52 152 220 / 22%);

	--ascend-home-radius: 14px;
	--ascend-home-radius-lg: 20px;
	--ascend-home-gap: 24px;
	--ascend-home-pad: 48px;
	--ascend-home-sec: 144px;
	--ascend-home-fade: max(14vw, 100px);

	--ascend-home-t-display: clamp(2.375rem, 4.8vw, 4.5rem);
	--ascend-home-t-h2: clamp(1.875rem, 3.4vw, 3rem);
	--ascend-home-t-xl: clamp(1.375rem, 2.1vw, 1.875rem);
	--ascend-home-t-lead: clamp(1.1875rem, 1.5vw, 1.375rem);
	--ascend-home-t-body: 1.0625rem;
	--ascend-home-t-small: 0.875rem;

	--ascend-home-display: Montserrat, system-ui, sans-serif;
	--ascend-home-text: Inter, system-ui, sans-serif;

	font-family: var(--ascend-home-text);
	font-size: var(--ascend-home-t-body);
	font-weight: 400;
	line-height: 1.6;
	color: var(--ascend-home-ink);
	background: #fff;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}

/* ----------------------------------------------------------------- resets */

body.ascend-home-template-active .ascend-home *,
body.ascend-home-template-active .ascend-home *::before,
body.ascend-home-template-active .ascend-home *::after {
	box-sizing: border-box;
}

/* The theme's article / entry-content wrappers must not constrain the bands. */
body.ascend-home-template-active .ascend-home .ascend-home-page,
body.ascend-home-template-active .ascend-home .ascend-home-content {
	max-width: none;
	margin-block: 0;
	margin-inline: 0;
	padding-block: 0;
	padding-inline: 0;
}

body.ascend-home-template-active .ascend-home .wp-block-group {
	margin-block: 0;
}

body.ascend-home-template-active .ascend-home h1,
body.ascend-home-template-active .ascend-home h2,
body.ascend-home-template-active .ascend-home h3,
body.ascend-home-template-active .ascend-home h4 {
	font-family: var(--ascend-home-display);
	color: var(--ascend-home-ink);
	letter-spacing: -0.028em;
	text-transform: none;
	text-wrap: balance;
	margin-block: 0;
	padding-block: 0;
}

body.ascend-home-template-active .ascend-home h2 {
	font-size: var(--ascend-home-t-h2);
	line-height: 1.08;
	font-weight: 700;
}

body.ascend-home-template-active .ascend-home h3 {
	font-size: var(--ascend-home-t-lead);
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: -0.02em;
}

body.ascend-home-template-active .ascend-home h4 {
	font-size: var(--ascend-home-t-body);
	line-height: 1.4;
	font-weight: 600;
	letter-spacing: 0;
}

body.ascend-home-template-active .ascend-home p {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
	text-wrap: pretty;
	margin-block: 0;
}

body.ascend-home-template-active .ascend-home ul {
	list-style: none;
	margin-block: 0;
	margin-inline: 0;
	padding-block: 0;
	padding-inline: 0;
}

body.ascend-home-template-active .ascend-home li {
	text-wrap: pretty;
	margin-block: 0;
}

body.ascend-home-template-active .ascend-home figure {
	margin-block: 0;
	margin-inline: 0;
}

body.ascend-home-template-active .ascend-home img {
	display: block;
	max-width: 100%;
	height: auto;
}

body.ascend-home-template-active .ascend-home blockquote {
	font-style: normal;
	quotes: none;
	background: none;
	border: 0;
	margin-block: 0;
	margin-inline: 0;
	padding-block: 0;
	padding-inline: 0;
}

body.ascend-home-template-active .ascend-home blockquote::before,
body.ascend-home-template-active .ascend-home blockquote::after {
	content: none;
}

body.ascend-home-template-active .ascend-home cite {
	font-style: normal;
}

body.ascend-home-template-active .ascend-home a {
	color: inherit;
}

body.ascend-home-template-active .ascend-home a:focus-visible,
body.ascend-home-template-active .ascend-home .wp-block-button__link:focus-visible {
	outline: 3px solid var(--ascend-home-blue-text);
	outline-offset: 3px;
	border-radius: 6px;
}

/* ----------------------------------------------------------------- shells */

body.ascend-home-template-active .ascend-home .ascend-home-inner {
	max-width: calc(1200px + var(--ascend-home-pad) * 2);
	margin-inline: auto;
	padding-inline: var(--ascend-home-pad);
}

body.ascend-home-template-active .ascend-home .ascend-home-section {
	padding-block: var(--ascend-home-sec);
}

/* In-page anchor targets (#how-we-work, #team, #contact, #contact-form) stop
   short of the top edge so a sticky theme header cannot cover the heading. */
body.ascend-home-template-active .ascend-home .ascend-home-system,
body.ascend-home-template-active .ascend-home .ascend-home-team,
body.ascend-home-template-active .ascend-home .ascend-home-contact,
body.ascend-home-template-active .ascend-home .ascend-home-form {
	scroll-margin-block-start: 96px;
}

/* The shared 12-column grid. */
body.ascend-home-template-active .ascend-home .ascend-home-hero-copy > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-row > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-split > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-question-row > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-discipline > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-quote > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-quotes-small > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-results > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-way > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-contact-grid > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--ascend-home-gap);
}

body.ascend-home-template-active .ascend-home .ascend-home-hero-copy:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-row:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-split:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-question-row:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-discipline:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-quote:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-quotes-small:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-results:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-way:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-contact-grid:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--ascend-home-gap);
}

body.ascend-home-template-active .ascend-home p.ascend-home-label {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-small);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.01em;
	color: var(--ascend-home-ink);
}

body.ascend-home-template-active .ascend-home p.ascend-home-deck {
	color: var(--ascend-home-ink-2);
}

body.ascend-home-template-active .ascend-home p.ascend-home-intro {
	font-size: var(--ascend-home-t-lead);
	line-height: 1.45;
	color: var(--ascend-home-ink-2);
	margin-block-start: 24px;
}

/* Heading left, supporting copy right. */
body.ascend-home-template-active .ascend-home .ascend-home-split h2 {
	grid-column: 1 / 6;
}

body.ascend-home-template-active .ascend-home .ascend-home-split .ascend-home-lead {
	grid-column: 6 / -1;
}

body.ascend-home-template-active .ascend-home .ascend-home-split--wide h2 {
	grid-column: 1 / 8;
}

body.ascend-home-template-active .ascend-home .ascend-home-split--wide p.ascend-home-deck {
	grid-column: 8 / -1;
	align-self: end;
}

/* ------------------------------------------------------ buttons and links */

body.ascend-home-template-active .ascend-home .wp-block-buttons.ascend-home-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 32px;
}

body.ascend-home-template-active .ascend-home .wp-block-button {
	margin-block: 0;
	margin-inline: 0;
}

body.ascend-home-template-active .ascend-home .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding-block: 0;
	padding-inline: 28px;
	border: 0;
	border-radius: 12px;
	box-shadow: none;
	background: var(--ascend-home-ink);
	color: #fff;
	font-family: var(--ascend-home-display);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}

body.ascend-home-template-active .ascend-home .wp-block-button__link:hover,
body.ascend-home-template-active .ascend-home .wp-block-button__link:focus-visible {
	background: var(--ascend-home-blue-text);
	color: #fff;
}

/* The one secondary treatment: an underlined text link with an arrow. Shared
   by the text-style Button and by every standalone link paragraph. */
body.ascend-home-template-active .ascend-home .ascend-home-button--text .wp-block-button__link,
body.ascend-home-template-active .ascend-home p.ascend-home-links a,
body.ascend-home-template-active .ascend-home p.ascend-home-results-note a {
	display: inline-block;
	min-height: 0;
	padding-block: 0 2px;
	padding-inline: 0;
	border-radius: 0;
	border-bottom: 1.5px solid var(--ascend-home-ink);
	background: none;
	color: var(--ascend-home-ink);
	font-family: var(--ascend-home-display);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none;
}

body.ascend-home-template-active .ascend-home .ascend-home-button--text .wp-block-button__link::after,
body.ascend-home-template-active .ascend-home p.ascend-home-links a::after,
body.ascend-home-template-active .ascend-home p.ascend-home-results-note a::after {
	content: "\2192";
	display: inline-block;
	margin-inline-start: 8px;
	color: var(--ascend-home-blue-text);
}

body.ascend-home-template-active .ascend-home .ascend-home-button--text .wp-block-button__link:hover,
body.ascend-home-template-active .ascend-home .ascend-home-button--text .wp-block-button__link:focus-visible,
body.ascend-home-template-active .ascend-home p.ascend-home-links a:hover,
body.ascend-home-template-active .ascend-home p.ascend-home-links a:focus-visible,
body.ascend-home-template-active .ascend-home p.ascend-home-results-note a:hover,
body.ascend-home-template-active .ascend-home p.ascend-home-results-note a:focus-visible {
	background: none;
	color: var(--ascend-home-blue-text);
	border-bottom-color: var(--ascend-home-blue-text);
}

body.ascend-home-template-active .ascend-home p.ascend-home-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin-block-start: 20px;
}

/* ------------------------------------------------------------------- hero */

/* A normal in-flow band: it starts wherever the theme header ends. The
   photograph and the fade to white are backgrounds, so the Page record holds
   only the headline, deck and buttons. */
body.ascend-home-template-active .ascend-home .ascend-home-hero {
	position: relative;
	padding-block: 56px calc(35.4vw + 10px);
	background-color: var(--ascend-home-sky-top);
	background-image:
		linear-gradient(to bottom, rgb(255 255 255 / 0%) calc(100% - var(--ascend-home-fade)), #fff calc(100% - var(--ascend-home-fade) * 0.42)),
		url("../images/homepage/range-day.webp");
	background-repeat: no-repeat;
	background-size: 100% 100%, 100% auto;
	background-position: 0 0, 76% bottom;
}

body.ascend-home-template-active .ascend-home .ascend-home-hero-copy > .wp-block-group__inner-container {
	align-items: end;
}

body.ascend-home-template-active .ascend-home .ascend-home-hero-copy:not(:has(> .wp-block-group__inner-container)) {
	align-items: end;
}

body.ascend-home-template-active .ascend-home .ascend-home-hero h1 {
	grid-column: 1 / 9;
	font-size: var(--ascend-home-t-display);
	line-height: 1.02;
	font-weight: 500;
	letter-spacing: -0.038em;
}

body.ascend-home-template-active .ascend-home .ascend-home-hero h1 strong {
	display: block;
	font-weight: 700;
	margin-block-end: 0.12em;
}

body.ascend-home-template-active .ascend-home .ascend-home-hero p.ascend-home-hero-deck {
	grid-column: 9 / -1;
	font-size: var(--ascend-home-t-lead);
	line-height: 1.45;
	color: #22303c;
	margin-block-end: 0.35em;
}

body.ascend-home-template-active .ascend-home .ascend-home-hero .ascend-home-actions {
	grid-column: 1 / -1;
	margin-block-start: 36px;
}

/* ------------------------------------------------ client + platform rows */

body.ascend-home-template-active .ascend-home .ascend-home-row {
	padding-block: 44px;
	border-block: 1px solid var(--ascend-home-line);
}

body.ascend-home-template-active .ascend-home .ascend-home-row > .wp-block-group__inner-container {
	align-items: center;
}

body.ascend-home-template-active .ascend-home .ascend-home-row:not(:has(> .wp-block-group__inner-container)) {
	align-items: center;
}

body.ascend-home-template-active .ascend-home .ascend-home-row p.ascend-home-label {
	grid-column: 1 / 3;
}

body.ascend-home-template-active .ascend-home .ascend-home-row .ascend-home-logos,
body.ascend-home-template-active .ascend-home .ascend-home-row .ascend-home-platform-list {
	grid-column: 3 / -1;
}

body.ascend-home-template-active .ascend-home .ascend-home-logos > .wp-block-group__inner-container,
body.ascend-home-template-active .ascend-home .ascend-home-platform-list > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px 36px;
}

body.ascend-home-template-active .ascend-home .ascend-home-logos:not(:has(> .wp-block-group__inner-container)),
body.ascend-home-template-active .ascend-home .ascend-home-platform-list:not(:has(> .wp-block-group__inner-container)) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px 36px;
}

/* Clients ride up into the hero's white fade. */
body.ascend-home-template-active .ascend-home .ascend-home-clients {
	position: relative;
	z-index: 2;
	margin-block-start: calc(var(--ascend-home-fade) * -0.5);
}

body.ascend-home-template-active .ascend-home .ascend-home-clients .ascend-home-row {
	border-block-start: 0;
	padding-block-start: 0;
}

body.ascend-home-template-active .ascend-home .ascend-home-logo {
	flex: 0 0 auto;
}

/* Height alone sets the optical size; width follows each mark's own ratio. */
body.ascend-home-template-active .ascend-home .ascend-home-logo img,
body.ascend-home-template-active .ascend-home .ascend-home-quote-logo img {
	inline-size: auto;
	max-inline-size: none;
	opacity: 0.86;
}

body.ascend-home-template-active .ascend-home .ascend-home-logo--myadvice img { block-size: 20px; }
body.ascend-home-template-active .ascend-home .ascend-home-logo--klas img { block-size: 24px; }
body.ascend-home-template-active .ascend-home .ascend-home-logo--skullcandy img { block-size: 19px; }
body.ascend-home-template-active .ascend-home .ascend-home-logo--stein img { block-size: 40px; }
body.ascend-home-template-active .ascend-home .ascend-home-logo--monique img { block-size: 30px; }
body.ascend-home-template-active .ascend-home .ascend-home-logo--utah img { block-size: 32px; }
body.ascend-home-template-active .ascend-home .ascend-home-logo--kalsec img { block-size: 30px; }

body.ascend-home-template-active .ascend-home .ascend-home-platforms {
	padding-block-end: var(--ascend-home-sec);
}

body.ascend-home-template-active .ascend-home .ascend-home-platform-list > .wp-block-group__inner-container {
	justify-content: flex-start;
	gap: 28px 64px;
}

body.ascend-home-template-active .ascend-home .ascend-home-platform-list:not(:has(> .wp-block-group__inner-container)) {
	justify-content: flex-start;
	gap: 28px 64px;
}

body.ascend-home-template-active .ascend-home .ascend-home-platform {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 0 0 auto;
}

body.ascend-home-template-active .ascend-home .ascend-home-platform img {
	inline-size: 22px;
	block-size: 22px;
}

body.ascend-home-template-active .ascend-home .ascend-home-platform figcaption {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-body);
	font-weight: 600;
	line-height: 1;
	color: var(--ascend-home-ink);
	text-align: start;
	margin-block: 0;
	/* The theme paints figcaptions with a pale ground and 20px block padding. */
	background-color: transparent;
	padding-block: 0;
	padding-inline: 0;
}

/* ---------------------------------------------------------------- reality */

body.ascend-home-template-active .ascend-home .ascend-home-lead p {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-lead);
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: -0.012em;
}

body.ascend-home-template-active .ascend-home .ascend-home-lead p + p {
	color: var(--ascend-home-ink-2);
	margin-block-start: 20px;
}

body.ascend-home-template-active .ascend-home .ascend-home-questions {
	margin-block-start: 96px;
}

body.ascend-home-template-active .ascend-home .ascend-home-questions h3 {
	padding-block-end: 28px;
}

body.ascend-home-template-active .ascend-home .ascend-home-question-row {
	padding-block: 28px;
	border-block-start: 1px solid var(--ascend-home-line);
}

body.ascend-home-template-active .ascend-home .ascend-home-question-row:last-child {
	border-block-end: 1px solid var(--ascend-home-line);
}

body.ascend-home-template-active .ascend-home .ascend-home-question-row > .wp-block-group__inner-container {
	align-items: baseline;
}

body.ascend-home-template-active .ascend-home .ascend-home-question-row:not(:has(> .wp-block-group__inner-container)) {
	align-items: baseline;
}

body.ascend-home-template-active .ascend-home .ascend-home-question-row h4 {
	grid-column: 1 / 4;
	color: var(--ascend-home-blue-text);
}

body.ascend-home-template-active .ascend-home ul.ascend-home-question-list {
	grid-column: 4 / -1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--ascend-home-gap);
	row-gap: 10px;
}

/* --------------------------------------------------------------- maturity */

body.ascend-home-template-active .ascend-home .ascend-home-maturity {
	background: var(--ascend-home-sky);
	padding-block-start: var(--ascend-home-sec);
	overflow: hidden;
}

/* The ridge is a real Image block: it is the maturity metaphor, it carries
   alt text, and the three stage markers are measured against it. The figure
   is full-bleed, so marker offsets are in % of the band width (x) and vw (y),
   the same units the image itself scales in. */
body.ascend-home-template-active .ascend-home .ascend-home-ridge {
	position: relative;
	margin-block-start: 96px;
}

body.ascend-home-template-active .ascend-home .ascend-home-ridge-image img {
	inline-size: 100%;
	/* The block carries no width/height, so reserve the box here to avoid layout shift. */
	block-size: auto;
	aspect-ratio: 1919 / 629;
}

body.ascend-home-template-active .ascend-home p.ascend-home-stage-num {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--ascend-home-ink-2);
}

body.ascend-home-template-active .ascend-home .ascend-home-stage h3 {
	margin-block: 2px 12px;
}

body.ascend-home-template-active .ascend-home ul.ascend-home-stage-list li {
	font-size: var(--ascend-home-t-small);
	line-height: 1.5;
	color: var(--ascend-home-ink-2);
	padding-block: 3px;
}

body.ascend-home-template-active .ascend-home p.ascend-home-stage-here {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-small);
	font-weight: 600;
	line-height: 1.3;
	color: var(--ascend-home-blue-text);
	margin-block-start: 14px;
}

body.ascend-home-template-active .ascend-home .ascend-home-stage::after {
	content: "";
	position: absolute;
	inline-size: 9px;
	block-size: 9px;
	border-radius: 50%;
	background: var(--ascend-home-ink);
}

body.ascend-home-template-active .ascend-home .ascend-home-stage--1::after {
	background: var(--ascend-home-blue);
	box-shadow: 0 0 0 5px var(--ascend-home-halo);
}

@media (min-width: 1001px) {
	body.ascend-home-template-active .ascend-home .ascend-home-ridge {
		padding-block-start: 270px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-ridge-image {
		block-size: 24vw;
		overflow: hidden;
		-webkit-mask-image: linear-gradient(#000 50%, transparent 98%);
		mask-image: linear-gradient(#000 50%, transparent 98%);
	}

	/* top:0 plus a vw bottom: the box stretches from the top of the ridge
	   group down to the ridgeline, and its border IS the marker line. */
	body.ascend-home-template-active .ascend-home .ascend-home-stage {
		position: absolute;
		inset-block-start: 0;
		inline-size: min(300px, 24vw);
		padding-inline: 22px 0;
		border-inline-start: 1px solid var(--ascend-home-ink);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage::after {
		inset-inline-start: -5px;
		inset-block-end: -5px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage--1 {
		inset-inline-start: 8.6%;
		inset-block-end: 13.5vw;
		border-inline-start-color: var(--ascend-home-blue);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage--2 {
		inset-inline-start: 34.7%;
		inset-block-end: 16.2vw;
	}

	/* Below 1360 the summit marker keeps its line on the left like the other
	   two; there is not comfortable room for right-aligned copy beside
	   stage 2. */
	body.ascend-home-template-active .ascend-home .ascend-home-stage--3 {
		inset-inline-start: 76.6%;
		inset-block-end: 22.5vw;
		inline-size: calc(23.4vw - var(--ascend-home-gap));
	}
}

@media (min-width: 1360px) {
	body.ascend-home-template-active .ascend-home .ascend-home-ridge {
		padding-block-start: 250px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage--3 {
		inset-inline-start: calc(76.6% - 300px);
		inline-size: 300px;
		text-align: end;
		padding-inline: 0 22px;
		border-inline-start: 0;
		border-inline-end: 1px solid var(--ascend-home-ink);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage--3::after {
		inset-inline-start: auto;
		inset-inline-end: -5px;
	}
}

/* ----------------------------------------------------------------- system */

body.ascend-home-template-active .ascend-home .ascend-home-system-head h2 {
	max-width: calc(66.667% - 8px);
}

body.ascend-home-template-active .ascend-home .ascend-home-system-head p.ascend-home-intro {
	max-width: calc(50% - 12px);
}

body.ascend-home-template-active .ascend-home .ascend-home-flow {
	position: relative;
	margin-block-start: 88px;
}

body.ascend-home-template-active .ascend-home .ascend-home-flow-step,
body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome {
	position: relative;
}

body.ascend-home-template-active .ascend-home p.ascend-home-flow-num {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	z-index: 1;
	display: grid;
	place-items: center;
	inline-size: 36px;
	block-size: 36px;
	border: 1.25px solid var(--ascend-home-ink);
	border-radius: 50%;
	background: #fff;
	font-family: var(--ascend-home-display);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1;
	color: var(--ascend-home-ink);
}

body.ascend-home-template-active .ascend-home .ascend-home-flow h3 {
	margin-block-end: 12px;
}

body.ascend-home-template-active .ascend-home .ascend-home-flow-step p,
body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome p {
	font-size: 1rem;
	line-height: 1.6;
	color: var(--ascend-home-ink-2);
}

body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-links {
	gap: 10px 24px;
	margin-block-start: 16px;
}

body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-links a {
	font-size: var(--ascend-home-t-small);
}

body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-note,
body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-loop {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--ascend-home-ink);
}

body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-loop {
	color: var(--ascend-home-blue-text);
}

/* Outcome nodes are dots, not numbers. */
body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome::before {
	content: "";
	position: absolute;
	z-index: 1;
	inline-size: 16px;
	block-size: 16px;
	border-radius: 50%;
	background: var(--ascend-home-ink);
}

body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome--improve::before {
	background: var(--ascend-home-blue);
	box-shadow: 0 0 0 6px var(--ascend-home-halo);
}

/* Desktop diagram. Coordinates are those of a 1200 x 620 drawing: x in % of
   the flow box, y in px from its top edge.
     step nodes      y 212-248 (centre 230) at x 0 / 22.5% / 45%
     fork            from 65.83% out to the outcome dots
     outcome dots    centre x 76.5% + 18px, y 100 (improve) and 400 (projects)
     return loop     up from the improve dot to y 40, left to x 18px, down
                     into node 1 */
@media (min-width: 1101px) {
	body.ascend-home-template-active .ascend-home .ascend-home-flow {
		padding-block-start: 212px;
		min-block-size: 640px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow > .wp-block-group__inner-container {
		display: grid;
		grid-template-columns: 20% 20% 20%;
		column-gap: 2.5%;
		align-items: start;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow:not(:has(> .wp-block-group__inner-container)) {
		display: grid;
		grid-template-columns: 20% 20% 20%;
		column-gap: 2.5%;
		align-items: start;
	}

	/* The cycle wrapper exists for the narrow-screen rail; here it dissolves
	   so the three steps are grid items of the flow itself. */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-cycle,
	body.ascend-home-template-active .ascend-home .ascend-home-flow-cycle > .wp-block-group__inner-container {
		display: contents;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-step {
		padding-block-start: 64px;
	}

	/* node -> next node */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-step::before {
		content: "";
		position: absolute;
		inset-block-start: 17px;
		inset-inline-start: 36px;
		inline-size: calc(112.5% - 36px);
		border-block-start: 1.25px solid var(--ascend-home-ink);
	}

	/* node 3 -> start of the fork */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--fork::before {
		inline-size: calc(104.17% - 36px);
	}

	/* the fork: two curves out to the outcome dots */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--fork::after {
		content: "";
		position: absolute;
		inset-block-start: -113px;
		inset-inline-start: 104.17%;
		inline-size: calc(53.33% + 18px);
		block-size: 302px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 136 302' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%230f1a24' stroke-width='1.25'%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 131C76 131 60 1 136 1'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 131C76 131 60 301 136 301'/%3E%3C/g%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome {
		position: absolute;
		inset-inline-start: 76.5%;
		inline-size: 23.5%;
		padding-block-start: 40px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome::before {
		inset-block-start: 10px;
		inset-inline-start: 10px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome--improve {
		inset-block-start: 82px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome--projects {
		inset-block-start: 382px;
	}

	/* return loop: top run with both corners ... */
	body.ascend-home-template-active .ascend-home .ascend-home-flow::before {
		content: "";
		position: absolute;
		inset-block-start: 40px;
		inset-inline-start: 17px;
		inset-inline-end: calc(23.5% - 19px);
		block-size: 46px;
		border: 2px solid var(--ascend-home-blue);
		border-block-end: 0;
		border-start-start-radius: 22px;
		border-start-end-radius: 22px;
	}

	/* ... then the long left leg down to node 1 ... */
	body.ascend-home-template-active .ascend-home .ascend-home-flow::after {
		content: "";
		position: absolute;
		inset-block-start: 86px;
		inset-inline-start: 17px;
		block-size: 118px;
		border-inline-start: 2px solid var(--ascend-home-blue);
	}

	/* ... ending in an arrowhead on node 1. */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--start p.ascend-home-flow-num::before {
		content: "";
		position: absolute;
		inset-block-start: -22px;
		inset-inline-start: calc(50% - 6px);
		inline-size: 12px;
		block-size: 12px;
		border-inline-end: 2px solid var(--ascend-home-blue);
		border-block-end: 2px solid var(--ascend-home-blue);
		transform: rotate(45deg);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-loop {
		position: absolute;
		z-index: 1;
		inset-block-start: 29px;
		inset-inline-start: 30%;
		padding-inline: 16px;
		background: #fff;
		line-height: 1.6;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-note {
		position: absolute;
		inset-block-start: 166px;
		inset-inline-start: 50.5%;
		inline-size: 170px;
	}
}

/* Rail. Every item carries its own stretch of the vertical line as a
   background, which leaves the pseudo-elements free for the blue loop. */
@media (max-width: 1100px) {
	body.ascend-home-template-active .ascend-home .ascend-home-flow {
		--ascend-home-rail-x: 48px;
		--ascend-home-rail-text: 84px;
		margin-block-start: 64px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-cycle {
		position: relative;
		overflow: hidden;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-step,
	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome,
	body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-note {
		max-width: 720px;
		padding-block-end: 56px;
		padding-inline-start: var(--ascend-home-rail-text);
		background: linear-gradient(var(--ascend-home-ink), var(--ascend-home-ink)) no-repeat calc(var(--ascend-home-rail-x) - 0.5px) 0 / 1px 100%;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-note {
		position: relative;
		padding-block-end: 28px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow p.ascend-home-flow-loop {
		max-width: 720px;
		padding-inline-start: var(--ascend-home-rail-text);
		margin-block-end: 24px;
	}

	body.ascend-home-template-active .ascend-home p.ascend-home-flow-num {
		inset-inline-start: calc(var(--ascend-home-rail-x) - 18px);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome::before {
		inset-block-start: 8px;
		inset-inline-start: calc(var(--ascend-home-rail-x) - 8px);
	}

	/* The rail stops at the last dot. */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome--projects {
		padding-block-end: 0;
		background-size: 1px 10px;
	}

	/* Blue return loop: a tall box hanging above the improve dot, clipped by
	   the cycle wrapper, carrying the line up the left edge ... */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome--improve::after {
		content: "";
		position: absolute;
		inset-inline-start: 4px;
		inset-block-end: calc(100% - 17px);
		inline-size: calc(var(--ascend-home-rail-x) - 12px);
		block-size: 4000px;
		border-inline-start: 2px solid var(--ascend-home-blue);
		border-block-end: 2px solid var(--ascend-home-blue);
		border-end-start-radius: 14px;
	}

	/* ... masked above node 1 ... */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--start::after {
		content: "";
		position: absolute;
		z-index: 1;
		inset-block-start: 0;
		inset-inline-start: 0;
		inline-size: 24px;
		block-size: 17px;
		background: #fff;
	}

	/* ... and turned into node 1 with an arrowhead. */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--start p.ascend-home-flow-num::before {
		content: "";
		position: absolute;
		inset-block-start: calc(50% - 1px);
		inset-inline-end: 100%;
		inline-size: calc(var(--ascend-home-rail-x) - 22px);
		block-size: 2px;
		margin-inline-end: 1px;
		background: var(--ascend-home-blue);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--start p.ascend-home-flow-num::after {
		content: "";
		position: absolute;
		inset-block-start: calc(50% - 6px);
		inset-inline-end: 100%;
		border: 6px solid transparent;
		border-inline-start-color: var(--ascend-home-blue);
		border-inline-end: 0;
	}
}

/* ------------------------------------------------------------------- team */

body.ascend-home-template-active .ascend-home .ascend-home-team,
body.ascend-home-template-active .ascend-home .ascend-home-proof,
body.ascend-home-template-active .ascend-home .ascend-home-start {
	padding-block-start: 0;
}

body.ascend-home-template-active .ascend-home .ascend-home-team .ascend-home-split {
	margin-block-end: 88px;
}

body.ascend-home-template-active .ascend-home .ascend-home-merge {
	position: relative;
}

body.ascend-home-template-active .ascend-home .ascend-home-discipline h3 {
	font-size: var(--ascend-home-t-xl);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.03em;
}

body.ascend-home-template-active .ascend-home .ascend-home-discipline p {
	font-size: var(--ascend-home-t-small);
	line-height: 1.55;
	color: var(--ascend-home-ink-2);
}

body.ascend-home-template-active .ascend-home .ascend-home-merge::after {
	content: "";
	position: absolute;
	inline-size: 16px;
	block-size: 16px;
	border-radius: 50%;
	background: var(--ascend-home-blue);
	box-shadow: 0 0 0 6px var(--ascend-home-halo);
}

body.ascend-home-template-active .ascend-home p.ascend-home-merge-label {
	position: absolute;
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--ascend-home-blue-text);
}

body.ascend-home-template-active .ascend-home p.ascend-home-team-foot {
	margin-block-start: 64px;
}

@media (min-width: 1001px) {
	/* Equal tracks keep the five line origins on the row centres
	   (10 / 30 / 50 / 70 / 90 % of the drawing). */
	/* align-items centres each discipline Group in its track; centring inside
	   the Group would not survive the injected inner container, which is only
	   as tall as its content. */
	body.ascend-home-template-active .ascend-home .ascend-home-merge > .wp-block-group__inner-container {
		display: grid;
		grid-auto-rows: minmax(116px, 1fr);
		align-items: center;
	}

	   body.ascend-home-template-active .ascend-home .ascend-home-merge:not(:has(> .wp-block-group__inner-container)) {
		display: grid;
		grid-auto-rows: minmax(116px, 1fr);
		align-items: center;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline > .wp-block-group__inner-container {
		align-items: center;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline:not(:has(> .wp-block-group__inner-container)) {
		align-items: center;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline h3 {
		grid-column: 1 / 6;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline p {
		grid-column: 6 / 9;
		padding-inline-end: 12px;
	}

	/* Five lines converge into one, across the last four columns. */
	body.ascend-home-template-active .ascend-home .ascend-home-merge::before {
		content: "";
		position: absolute;
		inset-block: 0;
		inset-inline-end: 0;
		inline-size: calc((100% - 11 * var(--ascend-home-gap)) / 12 * 4 + 3 * var(--ascend-home-gap));
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 580' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%230f1a24' stroke-width='1.25'%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 58H40C190 58 150 290 300 290'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 174H40C170 174 170 290 300 290'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 290H300'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 406H40C170 406 170 290 300 290'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 522H40C190 522 150 290 300 290'/%3E%3C/g%3E%3Cpath vector-effect='non-scaling-stroke' fill='none' stroke='%233498dc' stroke-width='2' d='M300 290H392'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-merge::after {
		inset-inline-end: 0;
		inset-block-start: calc(50% - 8px);
	}

	body.ascend-home-template-active .ascend-home p.ascend-home-merge-label {
		inset-inline-end: 0;
		inset-block-start: calc(50% + 28px);
		/* Never wider than ~40% of the drawing, or it runs into the two lower
		   curves as the columns narrow. */
		inline-size: min(150px, calc((100% - 11 * var(--ascend-home-gap)) * 0.13 + 28px));
		text-align: end;
	}
}

/* ------------------------------------------------------------------ proof */

body.ascend-home-template-active .ascend-home .ascend-home-proof h2 {
	margin-block-end: 64px;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote {
	padding-block: 44px;
	border-block-start: 1px solid var(--ascend-home-line);
}

/* Photo (with the client's mark beneath it) | quotation | attribution. The
   photo alone sizes row 1, so the mark always sits directly under it. */
body.ascend-home-template-active .ascend-home .ascend-home-quote > .wp-block-group__inner-container {
	grid-template-rows: auto 1fr;
	align-items: start;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote:not(:has(> .wp-block-group__inner-container)) {
	grid-template-rows: auto 1fr;
	align-items: start;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote-photo {
	grid-column: 1 / 3;
	grid-row: 1;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote-photo img {
	inline-size: 112px;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--ascend-home-radius);
}

body.ascend-home-template-active .ascend-home .ascend-home-quote-logo {
	grid-column: 1 / 3;
	grid-row: 2;
	margin-block-start: 18px;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote-logo--myadvice img { block-size: 18px; }
body.ascend-home-template-active .ascend-home .ascend-home-quote-logo--klas img { block-size: 22px; }

body.ascend-home-template-active .ascend-home .ascend-home-quote blockquote {
	grid-column: 3 / -1;
	grid-row: 1 / span 2;
	display: grid;
	grid-template-columns: repeat(10, minmax(0, 1fr));
	column-gap: var(--ascend-home-gap);
	align-items: start;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote blockquote p {
	grid-column: 1 / 8;
	font-size: var(--ascend-home-t-body);
	line-height: 1.6;
	padding-inline-end: 24px;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote--lead blockquote p {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-xl);
	font-weight: 500;
	line-height: 1.36;
	letter-spacing: -0.02em;
}

body.ascend-home-template-active .ascend-home .ascend-home-quote--short blockquote p {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-lead);
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.02em;
}

body.ascend-home-template-active .ascend-home blockquote cite {
	display: block;
	font-size: var(--ascend-home-t-small);
	line-height: 1.4;
	color: var(--ascend-home-ink-2);
}

body.ascend-home-template-active .ascend-home .ascend-home-quote blockquote cite {
	grid-column: 8 / -1;
	margin-block-start: 4px;
}

body.ascend-home-template-active .ascend-home blockquote cite strong {
	display: block;
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-body);
	font-weight: 600;
	line-height: 1.3;
	color: var(--ascend-home-ink);
}

/* The engagement label ("Executive coaching") above the name. */
body.ascend-home-template-active .ascend-home blockquote cite em {
	display: block;
	font-family: var(--ascend-home-display);
	font-style: normal;
	font-weight: 600;
	color: var(--ascend-home-blue-text);
	margin-block-end: 10px;
}

body.ascend-home-template-active .ascend-home .ascend-home-quotes-small {
	padding-block-start: 44px;
	border-block-start: 1px solid var(--ascend-home-line);
}

body.ascend-home-template-active .ascend-home .ascend-home-quotes-small blockquote {
	grid-column: 3 / 8;
	padding-inline-end: 24px;
}

body.ascend-home-template-active .ascend-home .ascend-home-quotes-small blockquote + blockquote {
	grid-column: 8 / -1;
	padding-inline-end: 0;
}

body.ascend-home-template-active .ascend-home .ascend-home-quotes-small blockquote p {
	font-size: var(--ascend-home-t-small);
	line-height: 1.6;
}

body.ascend-home-template-active .ascend-home .ascend-home-quotes-small blockquote cite {
	margin-block-start: 14px;
}

body.ascend-home-template-active .ascend-home .ascend-home-results {
	margin-block-start: 112px;
	padding-block: 56px;
	padding-inline: 56px;
	border-radius: var(--ascend-home-radius-lg);
	background: var(--ascend-home-sky);
}

body.ascend-home-template-active .ascend-home .ascend-home-results > .wp-block-group__inner-container {
	row-gap: 40px;
}

body.ascend-home-template-active .ascend-home .ascend-home-results:not(:has(> .wp-block-group__inner-container)) {
	row-gap: 40px;
}

body.ascend-home-template-active .ascend-home .ascend-home-results-group {
	grid-column: span 6;
}

body.ascend-home-template-active .ascend-home .ascend-home-results p.ascend-home-label {
	max-width: 30em;
	margin-block-end: 28px;
}

body.ascend-home-template-active .ascend-home .ascend-home-nums > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--ascend-home-gap);
}

body.ascend-home-template-active .ascend-home .ascend-home-nums:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--ascend-home-gap);
}

body.ascend-home-template-active .ascend-home .ascend-home-nums--stein > .wp-block-group__inner-container {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

body.ascend-home-template-active .ascend-home .ascend-home-nums--stein:not(:has(> .wp-block-group__inner-container)) {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

body.ascend-home-template-active .ascend-home p.ascend-home-num {
	max-width: 21em;
	font-size: var(--ascend-home-t-small);
	line-height: 1.5;
	color: var(--ascend-home-ink-2);
}

body.ascend-home-template-active .ascend-home p.ascend-home-num strong {
	display: block;
	font-family: var(--ascend-home-display);
	font-size: clamp(2.5rem, 4.2vw, 3.75rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--ascend-home-ink);
	margin-block-end: 12px;
}

body.ascend-home-template-active .ascend-home p.ascend-home-results-note {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--ascend-home-ink);
	margin-block-start: 24px;
}

body.ascend-home-template-active .ascend-home p.ascend-home-results-note a {
	font-size: var(--ascend-home-t-small);
	margin-inline-start: 20px;
}

/* ------------------------------------------------------------------ start */

body.ascend-home-template-active .ascend-home .ascend-home-start {
	padding-block-end: 96px;
}

body.ascend-home-template-active .ascend-home .ascend-home-start h2 {
	margin-block-end: 56px;
}

body.ascend-home-template-active .ascend-home .ascend-home-way {
	padding-block: 44px;
	border-block-start: 1px solid var(--ascend-home-line);
}

body.ascend-home-template-active .ascend-home .ascend-home-way > .wp-block-group__inner-container {
	align-items: start;
}

body.ascend-home-template-active .ascend-home .ascend-home-way:not(:has(> .wp-block-group__inner-container)) {
	align-items: start;
}

body.ascend-home-template-active .ascend-home .ascend-home-way-name {
	grid-column: 1 / 5;
}

body.ascend-home-template-active .ascend-home p.ascend-home-way-meta {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--ascend-home-blue-text);
	margin-block-end: 8px;
}

body.ascend-home-template-active .ascend-home .ascend-home-way-body {
	grid-column: 5 / 10;
}

body.ascend-home-template-active .ascend-home .ascend-home-way-body p {
	color: var(--ascend-home-ink-2);
}

body.ascend-home-template-active .ascend-home ul.ascend-home-way-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px var(--ascend-home-gap);
	font-size: var(--ascend-home-t-small);
	line-height: 1.45;
	margin-block-start: 18px;
}

body.ascend-home-template-active .ascend-home ul.ascend-home-way-list li {
	position: relative;
	padding-inline-start: 16px;
}

body.ascend-home-template-active .ascend-home ul.ascend-home-way-list li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.62em;
	inline-size: 8px;
	block-size: 1px;
	background: var(--ascend-home-ink);
}

body.ascend-home-template-active .ascend-home p.ascend-home-way-cta {
	grid-column: 10 / -1;
	justify-self: end;
	align-self: center;
	margin-block-start: 0;
}

/* The pilot panel steps outside the column; the shell clips nothing because
   the bleed is always smaller than the page gutter. */
body.ascend-home-template-active .ascend-home .ascend-home-way--pilot {
	margin-inline: -56px;
	padding-block: 56px;
	padding-inline: 56px;
	border: 0;
	border-radius: var(--ascend-home-radius-lg);
	background: var(--ascend-home-sky);
}

body.ascend-home-template-active .ascend-home .ascend-home-credit {
	grid-column: 1 / -1;
	margin-block-start: 44px;
	padding-block-start: 36px;
	border-block-start: 2px solid var(--ascend-home-blue);
}

body.ascend-home-template-active .ascend-home .ascend-home-credit > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 48px;
}

body.ascend-home-template-active .ascend-home .ascend-home-credit:not(:has(> .wp-block-group__inner-container)) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 48px;
}

/* The commercial hook, set at H2 scale. It is a paragraph, not a heading:
   it does not introduce a section. */
body.ascend-home-template-active .ascend-home p.ascend-home-credit-line {
	max-width: 17em;
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-h2);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.03em;
	color: var(--ascend-home-ink);
	text-wrap: balance;
}

body.ascend-home-template-active .ascend-home p.ascend-home-credit-line strong {
	font-weight: inherit;
	color: var(--ascend-home-blue-text);
}

/* ---------------------------------------------------------------- contact */

body.ascend-home-template-active .ascend-home .ascend-home-contact {
	position: relative;
	padding-block-start: var(--ascend-home-sec);
	background: var(--ascend-home-sky);
	overflow: hidden;
}

/* The lower ridge is decoration only, so it is a background, not a block. */
body.ascend-home-template-active .ascend-home .ascend-home-contact::after {
	content: "";
	display: block;
	aspect-ratio: 1920 / 336;
	margin-block-start: 16px;
	background: url("../images/homepage/range-b.webp") no-repeat center bottom / 100% auto;
	-webkit-mask-image: linear-gradient(#000 45%, transparent 96%);
	mask-image: linear-gradient(#000 45%, transparent 96%);
}

body.ascend-home-template-active .ascend-home .ascend-home-contact-copy {
	grid-column: 1 / 7;
}

body.ascend-home-template-active .ascend-home .ascend-home-contact p.ascend-home-intro {
	max-width: 23em;
}

body.ascend-home-template-active .ascend-home ul.ascend-home-routes {
	margin-block-start: 56px;
	border-block-start: 1px solid var(--ascend-home-line-sky);
}

body.ascend-home-template-active .ascend-home ul.ascend-home-routes a {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 20px;
	padding-block: 22px;
	border-block-end: 1px solid var(--ascend-home-line-sky);
	font-size: var(--ascend-home-t-small);
	color: var(--ascend-home-ink-2);
	text-align: end;
	text-decoration: none;
}

body.ascend-home-template-active .ascend-home ul.ascend-home-routes a strong {
	font-family: var(--ascend-home-display);
	font-size: var(--ascend-home-t-body);
	font-weight: 600;
	line-height: 1.3;
	color: var(--ascend-home-ink);
	text-align: start;
}

body.ascend-home-template-active .ascend-home ul.ascend-home-routes a strong::after {
	content: "\2192";
	margin-inline-start: 8px;
	color: var(--ascend-home-blue-text);
}

body.ascend-home-template-active .ascend-home ul.ascend-home-routes a:hover strong,
body.ascend-home-template-active .ascend-home ul.ascend-home-routes a:focus-visible strong {
	color: var(--ascend-home-blue-text);
}

/* The HubSpot form renders itself (its own markup or iframe); this is only
   the card it sits in. */
body.ascend-home-template-active .ascend-home .ascend-home-form {
	grid-column: 8 / -1;
	position: relative;
	z-index: 1;
	min-block-size: 320px;
	padding-block: 44px;
	padding-inline: 44px;
	border-radius: var(--ascend-home-radius-lg);
	background: #fff;
}

/* ------------------------------------------------------ 1320 and narrower */

@media (max-width: 1320px) {
	body.ascend-home-template-active .ascend-home .ascend-home-way--pilot {
		margin-inline: -32px;
		padding-block: 48px;
		padding-inline: 32px;
	}
}

/* ------------------------------------------------------ 1100 and narrower */

@media (max-width: 1100px) {
	body.ascend-home-template-active .ascend-home {
		--ascend-home-sec: 112px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-hero {
		padding-block-end: calc(25.3vw + 110px);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-hero h1,
	body.ascend-home-template-active .ascend-home .ascend-home-hero p.ascend-home-hero-deck {
		grid-column: 1 / -1;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-hero p.ascend-home-hero-deck {
		max-width: 34em;
		margin-block: 28px 0;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-row p.ascend-home-label {
		grid-column: 1 / -1;
		margin-block-end: 28px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-row .ascend-home-logos,
	body.ascend-home-template-active .ascend-home .ascend-home-row .ascend-home-platform-list {
		grid-column: 1 / -1;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-logos > .wp-block-group__inner-container {
		justify-content: flex-start;
		gap: 28px 44px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-logos:not(:has(> .wp-block-group__inner-container)) {
		justify-content: flex-start;
		gap: 28px 44px;
	}
}

/* ------------------------------------------------------ 1000 and narrower */

@media (max-width: 1000px) {
	/* Maturity: the markers become a rail above the ridge. */
	body.ascend-home-template-active .ascend-home .ascend-home-ridge {
		margin-block-start: 56px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage {
		position: relative;
		margin-inline: var(--ascend-home-pad);
		padding-block-end: 36px;
		padding-inline-start: 24px;
		border-inline-start: 1px solid var(--ascend-home-ink);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage--1 {
		border-inline-start-color: var(--ascend-home-blue);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-stage::after {
		inset-inline-start: -5px;
		inset-block-start: 8px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-ridge-image {
		max-block-size: 240px;
		overflow: hidden;
		-webkit-mask-image: linear-gradient(#000 50%, transparent 98%);
		mask-image: linear-gradient(#000 50%, transparent 98%);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-ridge-image img {
		inline-size: 170%;
		max-width: none;
		margin-inline-start: -70%;
	}

	/* Disciplines: five ticks on a rail that ends in the blue dot. */
	body.ascend-home-template-active .ascend-home .ascend-home-merge {
		padding-block-end: 64px;
		padding-inline-start: 28px;
		border-inline-start: 1.25px solid var(--ascend-home-ink);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline > .wp-block-group__inner-container {
		display: block;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline:not(:has(> .wp-block-group__inner-container)) {
		display: block;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline {
		position: relative;
		padding-block-end: 32px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline::before {
		content: "";
		position: absolute;
		inset-inline-start: -28px;
		inset-block-start: 0.62em;
		inline-size: 16px;
		block-size: 1.25px;
		background: var(--ascend-home-ink);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-discipline p {
		max-width: 36em;
		padding-block-start: 8px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-merge::after {
		inset-inline-start: -8.5px;
		inset-block-end: 0;
	}

	body.ascend-home-template-active .ascend-home p.ascend-home-merge-label {
		inset-inline-start: 28px;
		inset-block-end: -3px;
	}

	/* Proof */
	body.ascend-home-template-active .ascend-home .ascend-home-quote-photo img {
		inline-size: 96px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quote blockquote {
		display: block;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quote blockquote p {
		padding-inline-end: 0;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quote blockquote cite {
		margin-block-start: 20px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quotes-small blockquote,
	body.ascend-home-template-active .ascend-home .ascend-home-quotes-small blockquote + blockquote {
		grid-column: 1 / -1;
		padding-inline-end: 0;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quotes-small blockquote + blockquote {
		margin-block-start: 32px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-results-group {
		grid-column: 1 / -1;
	}

	/* Ways to start */
	body.ascend-home-template-active .ascend-home .ascend-home-way-name {
		grid-column: 1 / -1;
		margin-block-end: 16px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-way-body {
		grid-column: 1 / 9;
	}

	body.ascend-home-template-active .ascend-home p.ascend-home-way-cta {
		grid-column: 9 / -1;
	}

	/* Contact */
	body.ascend-home-template-active .ascend-home .ascend-home-contact-copy,
	body.ascend-home-template-active .ascend-home .ascend-home-form {
		grid-column: 1 / -1;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-form {
		margin-block-start: 56px;
	}
}

/* ------------------------------------------------------- 700 and narrower */

@media (max-width: 746px) {
	/* Keep 420px of mountain once the photograph would scale below that. */
	body.ascend-home-template-active .ascend-home .ascend-home-hero {
		background-size: 100% 100%, auto 420px;
	}
}

@media (max-width: 700px) {
	body.ascend-home-template-active .ascend-home {
		--ascend-home-pad: 20px;
		--ascend-home-sec: 88px;
		--ascend-home-gap: 16px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-hero {
		padding-block: 40px 300px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-hero p.ascend-home-hero-deck {
		margin-block-start: 24px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-hero .ascend-home-actions {
		margin-block-start: 28px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-hero .ascend-home-actions .wp-block-button:first-child,
	body.ascend-home-template-active .ascend-home .ascend-home-hero .ascend-home-actions .wp-block-button:first-child .wp-block-button__link {
		inline-size: 100%;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-split h2,
	body.ascend-home-template-active .ascend-home .ascend-home-split .ascend-home-lead,
	body.ascend-home-template-active .ascend-home .ascend-home-split--wide h2,
	body.ascend-home-template-active .ascend-home .ascend-home-split--wide p.ascend-home-deck {
		grid-column: 1 / -1;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-split .ascend-home-lead,
	body.ascend-home-template-active .ascend-home .ascend-home-split--wide p.ascend-home-deck {
		margin-block-start: 24px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-system-head h2,
	body.ascend-home-template-active .ascend-home .ascend-home-system-head p.ascend-home-intro {
		max-width: none;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-questions {
		margin-block-start: 64px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-question-row h4 {
		grid-column: 1 / -1;
		margin-block-end: 12px;
	}

	body.ascend-home-template-active .ascend-home ul.ascend-home-question-list {
		grid-column: 1 / -1;
		grid-template-columns: minmax(0, 1fr);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-team .ascend-home-split {
		margin-block-end: 48px;
	}

	/* Flow rail tightens to the narrower gutter. */
	body.ascend-home-template-active .ascend-home .ascend-home-flow {
		--ascend-home-rail-x: 28px;
		--ascend-home-rail-text: 64px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--start p.ascend-home-flow-num::after {
		content: none;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-flow-outcome--improve::after {
		inset-inline-start: 0;
	}

	/* The loop now hugs the left edge, so the mask only needs to cover it. */
	body.ascend-home-template-active .ascend-home .ascend-home-flow-step--start::after {
		inline-size: 6px;
	}

	/* Proof */
	body.ascend-home-template-active .ascend-home .ascend-home-proof h2 {
		margin-block-end: 40px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quote {
		padding-block: 32px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quote > .wp-block-group__inner-container {
		display: block;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quote:not(:has(> .wp-block-group__inner-container)) {
		display: block;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-quote-photo img {
		inline-size: 72px;
		margin-block-end: 20px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-results {
		margin-block-start: 72px;
		padding-block: 32px;
		padding-inline: 24px;
		border-radius: var(--ascend-home-radius);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-nums > .wp-block-group__inner-container,
	body.ascend-home-template-active .ascend-home .ascend-home-nums--stein > .wp-block-group__inner-container {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 28px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-nums:not(:has(> .wp-block-group__inner-container)),
	body.ascend-home-template-active .ascend-home .ascend-home-nums--stein:not(:has(> .wp-block-group__inner-container)) {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 28px;
	}

	body.ascend-home-template-active .ascend-home p.ascend-home-results-note a {
		display: block;
		inline-size: fit-content;
		margin-inline-start: 0;
		margin-block-start: 10px;
	}

	/* Ways to start */
	body.ascend-home-template-active .ascend-home .ascend-home-way {
		padding-block: 36px;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-way-body,
	body.ascend-home-template-active .ascend-home p.ascend-home-way-cta {
		grid-column: 1 / -1;
	}

	body.ascend-home-template-active .ascend-home p.ascend-home-way-cta {
		justify-self: start;
		margin-block-start: 24px;
	}

	body.ascend-home-template-active .ascend-home ul.ascend-home-way-list {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-way--pilot {
		margin-inline: -8px;
		padding-block: 32px;
		padding-inline: 20px;
		border-radius: var(--ascend-home-radius);
	}

	body.ascend-home-template-active .ascend-home .ascend-home-credit {
		margin-block-start: 32px;
		padding-block-start: 28px;
	}

	/* Contact */
	body.ascend-home-template-active .ascend-home .ascend-home-form {
		padding-block: 28px;
		padding-inline: 20px;
		border-radius: var(--ascend-home-radius);
	}

	body.ascend-home-template-active .ascend-home ul.ascend-home-routes a {
		flex-direction: column;
		gap: 4px;
		text-align: start;
	}

	body.ascend-home-template-active .ascend-home .ascend-home-contact::after {
		aspect-ratio: 960 / 336;
		margin-block-start: 24px;
		background-size: 200% auto;
		background-position: 60% bottom;
	}
}
