/*
 * PureLogicOS theme styles.
 * Loaded on the live site and inside the editor.
 * Colors and fonts come from theme.json; the short names below point at them.
 *
 * Every selector starts with ":root". WordPress prints its own spacing rules after this file
 * inside the editor, and the extra weight keeps the theme's spacing in charge there too.
 */

:root {
	--plo-bg: var(--wp--preset--color--obsidian);
	--plo-panel: var(--wp--preset--color--panel);
	--plo-panel-2: var(--wp--preset--color--panel-raised);
	--plo-line: var(--wp--preset--color--line);
	--plo-line-strong: var(--wp--preset--color--line-strong);
	--plo-line-faint: #1c2122;
	--plo-text: var(--wp--preset--color--paper);
	--plo-text-2: var(--wp--preset--color--mist);
	--plo-text-3: var(--wp--preset--color--slate);
	--plo-text-4: #5e6763;
	--plo-gray: #7a847f;
	--plo-emerald: var(--wp--preset--color--emerald);
	--plo-emerald-hover: #8cebc4;
	--plo-emerald-deep: #1b7a56;
	--plo-emerald-band: #163d2f;
	--plo-on-emerald: var(--wp--preset--color--on-emerald);
	--plo-amber: var(--wp--preset--color--amber);
	--plo-amber-line: #6b5326;
	--plo-sans: var(--wp--preset--font-family--sans);
	--plo-mono: var(--wp--preset--font-family--mono);
	--plo-gutter: clamp(16px, 4vw, 56px);
	color-scheme: dark;
}

body {
	-webkit-font-smoothing: antialiased;
}

:root :focus-visible {
	outline: 2px solid var(--plo-emerald);
	outline-offset: 3px;
}

/* WordPress adds space between top-level blocks and inside groups. The theme sets its own. */
:root .wp-site-blocks > *,
:root [class*="plo-"],
:root [class*="plo-"] > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Layout */

:root .plo-contain {
	box-sizing: border-box;
	width: min(100% - 2 * var(--plo-gutter), 1208px);
	margin-inline: auto;
}

:root .plo-band {
	background: var(--plo-panel);
	border-top: 1px solid var(--plo-line);
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-band > .plo-contain {
	padding-block: clamp(64px, 8vw, 120px);
}

/* Type */

:root .plo-eyebrow {
	margin-bottom: 20px;
	font-family: var(--plo-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--plo-emerald);
}

:root .plo-h1 {
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1.04;
	font-weight: 600;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

:root .plo-h2 {
	font-size: clamp(30px, 3.4vw, 46px);
	line-height: 1.08;
	font-weight: 600;
	letter-spacing: -0.03em;
	text-wrap: balance;
}

:root .plo-h2.plo-h2-lg {
	font-size: clamp(30px, 3.8vw, 52px);
	line-height: 1.06;
}

:root .plo-h2.plo-h2-plain {
	text-wrap: wrap;
}

:root .plo-h-xl {
	max-width: 1000px;
	font-size: clamp(36px, 5.2vw, 72px);
	line-height: 1.03;
	font-weight: 600;
	letter-spacing: -0.035em;
}

:root .plo-h3 {
	margin-bottom: 10px;
	font-size: 26px;
	line-height: 1.15;
	font-weight: 600;
	letter-spacing: -0.02em;
}

:root .plo-body {
	color: var(--plo-text-2);
}

:root .plo-copy > .plo-body {
	margin-top: 16px;
}

:root .plo-copy > .plo-h2 + .plo-body {
	margin-top: 24px;
}

:root .plo-fine {
	font-size: 13px;
	color: var(--plo-text-3);
}

:root .plo-label,
:root .plo-label-h {
	font-family: var(--plo-mono);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--plo-text-3);
}

:root .plo-label-h {
	margin-bottom: 8px;
	font-size: 12px;
}

:root .plo-data-notice {
	margin: 0;
	padding: 12px 16px;
	border: 1px dashed var(--plo-amber-line);
	border-radius: 4px;
	font-family: var(--plo-mono);
	font-size: 13px;
	color: var(--plo-amber);
}

:root .plo-tag {
	padding: 2px 8px;
	border: 1px solid var(--plo-amber-line);
	border-radius: 3px;
	font-family: var(--plo-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--plo-amber);
	white-space: nowrap;
}

:root .plo-dim {
	color: var(--plo-text-3);
}

:root mark.has-inline-color {
	background-color: transparent;
}

/* Buttons and links */

:root .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 52px;
	text-decoration: none;
}

:root .wp-block-button.is-style-plo-link .wp-block-button__link {
	padding: 0;
	background: transparent;
	color: var(--plo-text);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--plo-text-4);
	text-underline-offset: 6px;
}

:root .wp-block-button.is-style-plo-link .wp-block-button__link:hover {
	background: transparent;
	color: var(--plo-emerald-hover);
}

:root .wp-block-buttons.plo-actions {
	align-items: center;
	gap: 12px 24px;
}

:root .plo-btn-lg .wp-block-button__link {
	min-height: 56px;
	padding-inline: 28px;
	font-size: 18px;
}

:root .plo-link-strong {
	margin-top: 20px;
}

:root .plo-link-strong a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 6px;
}

/* Panels shared by the demo-data blocks */

:root .plo-panel {
	background: var(--plo-panel);
	border: 1px solid var(--plo-line);
	border-radius: 6px;
}

:root .plo-panel-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
}

/* Header */

:root .plo-header {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 18px 0;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-wordmark {
	flex: 0 0 auto;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 44px;
}

:root .plo-wordmark a {
	color: var(--plo-text);
	text-decoration: none;
}

:root .plo-header .wp-block-navigation {
	flex: 1 1 0;
	min-width: 0;
	justify-content: flex-end;
}

:root .plo-header .wp-block-navigation__container {
	gap: 0 28px;
}

:root .plo-header .wp-block-navigation .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--plo-text-2);
	white-space: nowrap;
}

:root .plo-header .wp-block-navigation .wp-block-navigation-item__content:hover,
:root .plo-header .wp-block-navigation .plo-nav-strong .wp-block-navigation-item__content {
	color: var(--plo-text);
}

:root .plo-header-cta {
	flex: 0 0 auto;
}

:root .plo-header-cta .wp-block-button__link {
	min-height: 44px;
	padding-inline: 18px;
	font-size: 15px;
}

:root .plo-header .wp-block-navigation__responsive-container-open,
:root .plo-header .wp-block-navigation__responsive-container-close {
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--plo-line-strong);
	border-radius: 4px;
	color: var(--plo-text);
}

:root .plo-header .wp-block-navigation__responsive-container-close {
	display: flex;
}

:root .plo-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 18px var(--plo-gutter) 32px;
}

:root .plo-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
:root .plo-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
:root .plo-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: stretch;
	justify-content: flex-start;
	width: 100%;
}

:root .plo-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0;
}

:root .plo-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	width: 100%;
	min-height: 52px;
	border-bottom: 1px solid var(--plo-line);
	font-size: 20px;
	color: var(--plo-text);
}

/* WordPress collapses the menu below 600px. This header needs it collapsed below 1180px. */
@media (max-width: 1179px) {
	:root .plo-header {
		gap: 12px;
	}

	:root .plo-wordmark {
		margin-right: auto;
	}

	/* Inside the editor the menu stays spread out, so every link is one click away. */
	:root body:not(.editor-styles-wrapper) .plo-header .wp-block-navigation {
		order: 3;
		flex: 0 0 auto;
	}

	:root body:not(.editor-styles-wrapper) .plo-header-cta {
		order: 2;
	}

	/* A longer button label shortens with "…" instead of pushing the page wider than the screen. */
	:root .plo-header-cta {
		flex: 0 1 auto;
		min-width: 0;
	}

	:root .plo-header-cta .wp-block-button {
		min-width: 0;
		max-width: 100%;
	}

	:root .plo-header-cta .wp-block-button__link {
		display: block;
		padding-inline: 14px;
		font-size: 14px;
		line-height: 44px;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}

@media (min-width: 600px) and (max-width: 1179px) {
	:root body:not(.editor-styles-wrapper) .plo-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	:root body:not(.editor-styles-wrapper) .plo-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
}

@media (max-width: 379px) {
	:root .plo-header .plo-header-cta {
		display: none;
	}
}

/* Footer */

:root .plo-footer {
	padding: 40px 0 56px;
	border-top: 1px solid var(--plo-line);
}

:root .plo-footer-top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 32px 72px;
}

:root .plo-footer-brand {
	flex: 1 1 280px;
	min-width: 0;
}

:root .plo-footer-brand .plo-wordmark {
	line-height: 1.55;
}

:root .plo-legal {
	margin-top: 12px;
	font-size: 14px;
	color: var(--plo-text-2);
}

:root .plo-footer-nav {
	flex: 2 1 480px;
	min-width: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0 56px;
	font-size: 15px;
}

:root .plo-footer-links {
	margin: 0;
	padding: 0;
	list-style: none;
}

:root .plo-footer-links a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--plo-text-2);
	text-decoration: none;
}

:root .plo-footer-links a:hover {
	color: var(--plo-text);
}

:root .plo-disclosure {
	max-width: 900px;
	margin-top: 36px;
	padding-top: 24px;
	border-top: 1px solid var(--plo-line);
	font-size: 13px;
	line-height: 1.6;
	color: var(--plo-text-3);
}

/* Hero */

:root .plo-hero {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 48px 64px;
	padding: clamp(48px, 7vw, 104px) 0 clamp(72px, 9vw, 136px);
}

:root .plo-hero-copy {
	flex: 1 1 440px;
	min-width: 0;
}

:root .plo-hero-copy .plo-eyebrow {
	margin-bottom: 28px;
}

:root .plo-lede {
	max-width: 500px;
	margin-top: 28px;
	color: var(--plo-text-2);
}

:root .plo-hero-copy .plo-actions {
	margin-top: 36px;
}

:root .plo-proof {
	margin-top: 28px;
	font-family: var(--plo-mono);
	font-size: 13px;
	color: var(--plo-text-3);
}

:root .plo-hero-visual {
	flex: 1.3 1 520px;
	min-width: 0;
	margin-top: 40px;
}

:root .plo-caption {
	margin-top: 16px;
	font-size: 14px;
	color: var(--plo-text-3);
}

/* Plan panel block */

:root .plo-plan-head {
	gap: 12px;
	padding: 14px 20px;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-plan-title {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--plo-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

:root .plo-toggle {
	display: flex;
	padding: 3px;
	border: 1px solid var(--plo-line-strong);
	border-radius: 5px;
}

:root .plo-toggle[hidden] {
	display: none;
}

:root .plo-toggle-btn {
	min-height: 44px;
	padding: 0 16px;
	border: 0;
	border-radius: 3px;
	background: transparent;
	color: var(--plo-text-2);
	font-family: var(--plo-mono);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

:root .plo-toggle-btn[aria-pressed="true"] {
	background: var(--plo-emerald);
	color: var(--plo-on-emerald);
}

:root .plo-plan-chart {
	padding: 20px 20px 8px;
}

:root .plo-plan-chart-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 14px;
}

:root .plo-plan-range {
	font-family: var(--plo-mono);
	font-size: 13px;
}

:root .plo-chart-row {
	display: flex;
	gap: 8px;
}

:root .plo-chart-y {
	position: relative;
	flex: 0 0 30px;
	height: 240px;
	font-family: var(--plo-mono);
	font-size: 10px;
	color: var(--plo-text-3);
}

:root .plo-chart-y span {
	position: absolute;
	right: 0;
}

:root .plo-chart-y span:nth-child(1) {
	top: -6px;
}

:root .plo-chart-y span:nth-child(2) {
	top: 74px;
}

:root .plo-chart-y span:nth-child(3) {
	top: 154px;
}

:root .plo-chart-y span:nth-child(4) {
	top: 232px;
}

:root .plo-chart {
	position: relative;
	flex: 1 1 0;
	min-width: 0;
	height: 240px;
	border-bottom: 1px solid var(--plo-line-strong);
}

:root .plo-chart-grid {
	position: absolute;
	left: 0;
	right: 0;
	border-top: 1px solid var(--plo-line-faint);
}

:root .plo-chart-grid:nth-child(1) {
	top: 0;
}

:root .plo-chart-grid:nth-child(2) {
	top: 80px;
}

:root .plo-chart-grid:nth-child(3) {
	top: 160px;
}

:root .plo-chart-svg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

:root .plo-chart-band {
	fill: var(--plo-emerald);
	fill-opacity: 0.22;
	stroke: none;
}

:root .plo-chart-ghost {
	fill: none;
	stroke: var(--plo-gray);
	stroke-width: 1.5px;
	stroke-dasharray: 4 4;
	vector-effect: non-scaling-stroke;
}

:root .plo-chart-line {
	fill: none;
	stroke: var(--plo-emerald);
	stroke-width: 2px;
	vector-effect: non-scaling-stroke;
}

:root .plo-chart-mark {
	position: absolute;
	top: 0;
	bottom: 0;
	border-left: 1px solid var(--plo-amber);
}

:root .plo-chart-mark span {
	position: absolute;
	left: 6px;
	top: 2px;
	white-space: nowrap;
	font-family: var(--plo-mono);
	font-size: 11px;
	line-height: 1.55;
	color: var(--plo-amber);
}

:root .plo-chart-x {
	position: relative;
	height: 22px;
	margin-left: 38px;
	font-family: var(--plo-mono);
	font-size: 10px;
	color: var(--plo-text-3);
}

:root .plo-chart-x span {
	position: absolute;
	top: 6px;
}

:root .plo-chart-x span:nth-child(1) {
	left: 0;
}

:root .plo-chart-x span:nth-child(2) {
	left: 50%;
	transform: translateX(-50%);
}

:root .plo-chart-x span:nth-child(3) {
	right: 0;
}

:root .plo-chart-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	padding: 10px 0 12px;
	font-size: 12px;
	color: var(--plo-text-3);
}

:root .plo-chart-legend span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

:root .plo-key {
	width: 18px;
}

:root .plo-key-line {
	border-top: 2px solid var(--plo-emerald);
}

:root .plo-key-band {
	height: 10px;
	background: var(--plo-emerald-band);
}

:root .plo-key-ghost {
	border-top: 2px dashed var(--plo-gray);
}

:root .plo-metrics {
	display: flex;
	flex-wrap: wrap;
	border-top: 1px solid var(--plo-line);
}

:root .plo-metric {
	flex: 1 1 150px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-metric-value {
	margin-top: 8px;
	font-family: var(--plo-mono);
	font-size: 22px;
	font-weight: 500;
}

:root .plo-metric-sub {
	margin-top: 4px;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}

:root .plo-is-moved .plo-metric-sub.plo-is-delta {
	color: var(--plo-amber);
}

:root .plo-plan-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	padding: 6px 20px;
}

:root .plo-plan-assumptions {
	margin: 0;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}

:root .plo-plan-assumptions span {
	color: var(--plo-text-2);
}

:root .plo-plan-foot a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

/* Decision ledger */

:root .plo-ledger {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px 72px;
	padding: 0 0 clamp(72px, 8vw, 120px);
}

:root .plo-ledger-copy {
	flex: 1 1 340px;
	min-width: 0;
}

:root .plo-ledger-table {
	flex: 1.6 1 520px;
	min-width: 0;
	border-top: 1px solid var(--plo-line-strong);
}

:root .plo-ledger-head {
	display: flex;
	gap: 20px;
	padding: 12px 0;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-ledger-head > :nth-child(1) {
	flex: 0 0 28px;
}

:root .plo-ledger-head > :nth-child(2) {
	flex: 1 1 0;
}

:root .plo-ledger-head > :nth-child(3) {
	flex: 1.6 1 0;
}

:root .plo-ledger-row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 20px;
	padding: 22px 0;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-ledger-num {
	flex: 0 0 28px;
	font-family: var(--plo-mono);
	font-size: 13px;
	color: var(--plo-emerald);
}

:root .plo-ledger-decision {
	flex: 1 1 180px;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.02em;
}

:root .plo-ledger-examines {
	flex: 1.6 1 280px;
	font-family: var(--plo-mono);
	font-size: 14px;
	color: var(--plo-text-2);
}

:root .plo-footnote {
	margin-top: 14px;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}

/* Scenario workbench */

:root .plo-workbench {
	padding: clamp(56px, 6vw, 88px) 0 clamp(80px, 10vw, 152px);
	border-top: 1px solid var(--plo-line);
}

:root .plo-split-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 24px 80px;
}

:root .plo-split-title {
	flex: 1.3 1 420px;
	min-width: 0;
}

:root .plo-split-head > .plo-body {
	flex: 1 1 340px;
	min-width: 0;
}

:root .plo-workbench > .wp-block-purelogicos-scenario-table {
	margin-top: 48px;
}

:root .plo-workbench-notes {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 72px;
	margin-top: 28px;
}

:root .plo-workbench-notes > .plo-body {
	flex: 1.4 1 380px;
	min-width: 0;
}

:root .plo-workbench-notes > .plo-fine {
	flex: 1 1 300px;
	min-width: 0;
}

/* Scenario table block */

:root .plo-scenario-head {
	gap: 10px 24px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-scenario-prompt {
	margin: 0;
	font-family: var(--plo-mono);
	font-size: 14px;
}

:root .plo-scenario-prompt span {
	color: var(--plo-emerald);
}

:root .plo-scenario-scroll {
	overflow-x: auto;
}

:root .plo-wb {
	/* Pinned column widths shrink on narrow phones so one scenario column still fits beside them. */
	--plo-wb-label: min(250px, max(84px, min(104px, 26.5vw), 20vw));
	--plo-wb-base: min(170px, max(80px, min(96px, 24.6vw), 13vw));
	--plo-wb-cell: clamp(112px, 37.8vw, 150px);
	--plo-wb-text: clamp(12px, 3.6vw, 14px);
	table-layout: fixed;
	width: 100%;
	min-width: calc(var(--plo-wb-label) + var(--plo-wb-base) + 3 * var(--plo-wb-cell));
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
	font-family: var(--plo-mono);
	font-size: var(--plo-wb-text);
	font-weight: 400;
	line-height: 1.55;
	text-align: left;
}

:root .plo-wb th,
:root .plo-wb td {
	border: 0;
	border-bottom: 1px solid var(--plo-line);
	font-weight: 400;
	vertical-align: top;
}

:root .plo-wb thead th {
	border-bottom-color: var(--plo-line-strong);
	vertical-align: bottom;
}

:root .plo-wb tbody tr:last-child th,
:root .plo-wb tbody tr:last-child td {
	border-bottom: 0;
}

:root .plo-wb .plo-wb-label {
	position: sticky;
	left: 0;
	z-index: 1;
	width: var(--plo-wb-label);
	box-sizing: border-box;
	padding: 14px clamp(6px, 2.5vw, 10px) 14px max(10px, min(12px, 3.1vw), min(20px, 1.6vw));
	background: var(--plo-panel);
	font-family: var(--plo-sans);
	font-weight: 500;
	color: var(--plo-text-2);
	overflow-wrap: break-word;
}

:root .plo-wb .plo-wb-base {
	position: sticky;
	left: var(--plo-wb-label);
	z-index: 1;
	width: var(--plo-wb-base);
	box-sizing: border-box;
	padding: 14px clamp(8px, 3.1vw, 12px);
	background: var(--plo-panel-2);
	border-right: 1px solid var(--plo-emerald);
	color: var(--plo-text);
	overflow-wrap: break-word;
}

:root .plo-wb .plo-wb-cell {
	padding: 14px clamp(10px, 4.1vw, 16px);
}

:root .plo-wb .plo-wb-cell:last-child {
	padding-right: 20px;
}

:root .plo-wb thead .plo-wb-label {
	z-index: 2;
	padding-top: 16px;
	padding-bottom: 16px;
	font-family: var(--plo-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--plo-text-3);
}

:root .plo-wb thead .plo-wb-base {
	z-index: 2;
}

:root .plo-wb thead .plo-wb-base,
:root .plo-wb thead .plo-wb-cell {
	padding-top: 16px;
	padding-bottom: 16px;
}

:root .plo-wb-name {
	display: block;
	font-family: var(--plo-sans);
	font-size: clamp(14px, 4.1vw, 16px);
	font-weight: 600;
	color: var(--plo-text);
}

:root .plo-wb-sub {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: var(--plo-text-3);
}

:root .plo-wb-name + .plo-wb-sub {
	margin-top: 4px;
}

:root .plo-wb-sub.plo-is-delta {
	color: var(--plo-amber);
}

/* Planning cards */

:root .plo-planning {
	padding: 0 0 clamp(72px, 8vw, 112px);
}

:root .plo-planning-head {
	max-width: 820px;
	margin-left: clamp(0px, 8vw, 112px);
}

:root .plo-card-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0 48px;
}

:root .plo-planning-head + .plo-card-row {
	margin-top: 56px;
}

:root .plo-card {
	flex: 1 1 280px;
	min-width: 0;
	padding: 24px 0 40px;
	border-top: 1px solid var(--plo-line-strong);
}

:root .plo-card.plo-card-wide {
	flex: 1.7 1 380px;
}

:root .plo-card-tag {
	margin-bottom: 14px;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}

:root .plo-card-wide .plo-body {
	max-width: 560px;
}

/* Taxes */

:root .plo-taxes {
	display: flex;
	flex-direction: row-reverse;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px 72px;
	padding: clamp(56px, 6vw, 88px) 0 clamp(80px, 10vw, 144px);
	border-top: 1px solid var(--plo-line);
}

:root .plo-taxes-copy {
	flex: 1 1 360px;
	min-width: 0;
}

:root .plo-copy > .plo-strong-line {
	margin-top: 16px;
	color: var(--plo-text);
}

:root .plo-copy > .plo-rule-top {
	margin-top: 28px;
	padding-top: 16px;
	border-top: 1px solid var(--plo-line);
}

:root .plo-taxes > .wp-block-purelogicos-tax-timeline {
	flex: 1.5 1 520px;
	min-width: 0;
}

/* Tax timeline block */

:root .plo-timeline-head {
	padding-bottom: 14px;
	border-bottom: 1px solid var(--plo-line-strong);
}

:root .plo-timeline-cols,
:root .plo-timeline-row,
:root .plo-timeline-total {
	display: flex;
	gap: 16px;
}

:root .plo-timeline-cols {
	padding: 10px 0;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}

:root .plo-timeline-stage {
	flex: 1 1 0;
	min-width: 0;
	padding-left: 28px;
}

:root .plo-timeline-num {
	flex: 0 0 clamp(72px, 16vw, 88px);
	text-align: right;
	font-family: var(--plo-mono);
	font-size: 13px;
	color: var(--plo-text-3);
}

:root .plo-timeline-cols .plo-timeline-num {
	font-size: 12px;
}

:root .plo-timeline-cols .plo-is-roth {
	color: var(--plo-emerald);
}

:root .plo-timeline-rail {
	margin-left: 5px;
	border-left: 1px solid var(--plo-line-strong);
}

:root .plo-timeline-row {
	position: relative;
	padding: 14px 0 22px 22px;
}

:root .plo-timeline-dot {
	position: absolute;
	left: -6px;
	top: 20px;
	box-sizing: border-box;
	width: 11px;
	height: 11px;
	border: 2px solid var(--plo-text-3);
	border-radius: 50%;
	background: var(--plo-bg);
}

:root .plo-is-live .plo-timeline-dot {
	border: 0;
	background: var(--plo-emerald);
}

:root .plo-timeline-text {
	flex: 1 1 0;
	min-width: 0;
}

:root .plo-timeline-title {
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.01em;
}

:root .plo-timeline-when {
	margin-top: 2px;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}

:root .plo-timeline-note {
	margin-top: 6px;
	font-size: 14px;
	color: var(--plo-text-2);
}

:root .plo-is-live .plo-timeline-num {
	font-size: 15px;
	color: var(--plo-text);
}

:root .plo-is-live .plo-timeline-num.plo-is-roth {
	color: var(--plo-emerald);
}

:root .plo-timeline-total {
	padding: 16px 0;
	border-top: 1px solid var(--plo-line-strong);
	font-family: var(--plo-mono);
}

:root .plo-timeline-total .plo-timeline-stage {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--plo-text-3);
}

:root .plo-timeline-total .plo-timeline-num {
	font-size: 18px;
	font-weight: 500;
	color: var(--plo-text);
}

:root .plo-timeline-total .plo-timeline-num.plo-is-roth {
	color: var(--plo-emerald);
}

/* Income Plan */

:root .plo-income-head {
	max-width: 900px;
}

:root .plo-income-head .plo-body {
	max-width: 680px;
}

:root .plo-income-cols {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px 64px;
	margin-top: 56px;
}

:root .plo-income-list {
	flex: 1 1 320px;
	min-width: 0;
}

:root .plo-numbered {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 16px;
	counter-reset: plo-item;
}

:root .plo-numbered li {
	display: flex;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--plo-line);
	counter-increment: plo-item;
}

:root .plo-numbered li:last-child {
	border-bottom: 0;
}

:root .plo-numbered li::before {
	content: counter(plo-item, decimal-leading-zero);
	flex: 0 0 22px;
	font-family: var(--plo-mono);
	font-size: 12px;
	line-height: 25px;
	color: var(--plo-emerald);
}

:root .plo-income-visual {
	flex: 1.5 1 480px;
	min-width: 0;
}

:root .plo-price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 40px;
	margin-top: 32px;
}

:root .plo-price-line {
	display: flex;
	align-items: baseline;
	gap: 18px;
}

:root .plo-price {
	font-family: var(--plo-mono);
	font-size: 30px;
	font-weight: 500;
	letter-spacing: -0.02em;
}

:root .plo-price-term {
	font-family: var(--plo-mono);
	font-size: 15px;
	font-weight: 500;
	color: var(--plo-text-2);
}

:root .plo-price-note {
	margin-top: 4px;
	font-size: 14px;
	color: var(--plo-amber);
}

:root .plo-income-visual > .plo-fine {
	margin-top: 24px;
}

/* One retirement year block */

:root .plo-income-year {
	padding: 20px;
	background: var(--plo-bg);
	border: 1px solid var(--plo-line);
	border-radius: 6px;
}

:root .plo-bar-title {
	margin: 22px 0 8px;
	font-size: 14px;
	font-weight: 600;
}

:root .plo-bar-key + .plo-bar-title {
	margin-top: 26px;
}

:root .plo-bar {
	display: flex;
	gap: 3px;
	height: 36px;
}

:root .plo-bar-seg {
	flex: 0 1 0;
	min-width: 3px;
	border-radius: 2px;
}

:root .plo-fill-emerald {
	background: var(--plo-emerald);
}

:root .plo-fill-emerald-deep {
	background: var(--plo-emerald-deep);
}

:root .plo-fill-paper {
	background: #d9ded9;
}

:root .plo-fill-gray {
	background: var(--plo-gray);
}

:root .plo-fill-amber {
	background: var(--plo-amber);
}

:root .plo-bar-key {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 28px;
	margin-top: 10px;
	font-family: var(--plo-mono);
	font-size: 13px;
}

:root .plo-bar-key > span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

:root .plo-swatch {
	width: 10px;
	height: 10px;
}

:root .plo-bar-name {
	color: var(--plo-text-2);
}

:root .plo-bar-total {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 22px;
	padding-top: 14px;
	border-top: 1px solid var(--plo-line);
	font-family: var(--plo-mono);
	font-size: 13px;
}

:root .plo-bar-total span:first-child {
	color: var(--plo-text-3);
}

/* Advisors */

:root .plo-advisors {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px 96px;
	padding: clamp(72px, 10vw, 152px) 0 clamp(64px, 7vw, 104px);
}

:root .plo-advisors-copy {
	flex: 1.5 1 460px;
	min-width: 0;
}

:root .plo-advisors-copy > .plo-body {
	max-width: 600px;
}

:root .plo-inline-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 32px;
	margin-top: 32px;
}

:root .plo-inline-row .plo-link-strong {
	margin-top: 0;
}

:root .plo-advisor-price {
	font-family: var(--plo-mono);
	font-size: 15px;
}

:root .plo-shared {
	flex: 1 1 320px;
	min-width: 0;
	margin-top: clamp(0px, 4vw, 56px);
}

:root .plo-shared-head {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--plo-line-strong);
}

:root .plo-shared-list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.02em;
}

:root .plo-shared-list li {
	padding: 16px 0;
	border-bottom: 1px solid var(--plo-line);
}

/* Pricing */

:root .plo-pricing {
	padding: clamp(56px, 6vw, 88px) 0 clamp(72px, 9vw, 128px);
	border-top: 1px solid var(--plo-line);
}

:root .plo-pricing-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 64px;
}

:root .plo-pricing-title {
	flex: 1 1 480px;
	min-width: 0;
	max-width: 760px;
}

:root .plo-pricing-table {
	margin-top: 48px;
	border-top: 1px solid var(--plo-line-strong);
}

:root .plo-pricing-cols {
	display: flex;
	gap: 12px 32px;
	padding: 12px 0;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-pricing-cols > * {
	flex: 1 1 170px;
	min-width: 0;
}

:root .plo-pricing-cols > :nth-child(n + 3) {
	flex: 1.6 1 260px;
}

:root .plo-plan-row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 32px;
	padding: 26px 0;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-plan-name {
	flex: 1 1 170px;
	font-size: 26px;
	line-height: 1.55;
	font-weight: 600;
	letter-spacing: -0.02em;
}

:root .plo-plan-price {
	flex: 1 1 170px;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 13px;
}

:root .plo-plan-amount {
	font-family: var(--plo-mono);
	font-size: 22px;
	font-weight: 500;
}

:root .plo-plan-term {
	font-family: var(--plo-mono);
	font-size: 14px;
	color: var(--plo-text-2);
}

:root .plo-plan-requires {
	flex: 1 1 100%;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-amber);
}

:root .plo-plan-fit,
:root .plo-plan-included {
	flex: 1.6 1 260px;
	min-width: 0;
	font-size: 15px;
}

:root .plo-plan-fit {
	color: var(--plo-text-2);
}

:root .plo-pricing > .plo-fine {
	margin-top: 20px;
}

/* Trust */

:root .plo-trust {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px 72px;
	padding: 0 0 clamp(80px, 10vw, 144px);
}

:root .plo-trust-copy {
	flex: 1 1 400px;
	min-width: 0;
}

:root .plo-rule-list {
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--plo-line);
}

:root .plo-rule-list li {
	padding: 14px 0;
	border-top: 1px solid var(--plo-line);
}

:root .plo-policies {
	margin-top: 16px;
	font-size: 15px;
	word-spacing: 8px;
	color: var(--plo-text-4);
}

:root .plo-policies a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

:root .plo-trust > .wp-block-purelogicos-assumptions {
	flex: 1.2 1 440px;
	min-width: 0;
}

/* Assumptions block */

:root .plo-assumptions-head {
	padding: 14px 20px;
	border-bottom: 1px solid var(--plo-line);
	font-family: var(--plo-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

:root .plo-assumptions-list {
	margin: 0;
	padding: 4px 20px 8px;
	font-family: var(--plo-mono);
	font-size: 13px;
}

:root .plo-assumptions-list > div {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 2px 24px;
	padding: 11px 0;
	border-bottom: 1px solid var(--plo-line-faint);
}

:root .plo-assumptions-list > div:last-child {
	border-bottom: 0;
}

:root .plo-assumptions-list dt {
	color: var(--plo-text-3);
}

:root .plo-assumptions-list dd {
	margin: 0;
	text-align: right;
}

:root .plo-assumptions-foot {
	margin: 0;
	padding: 14px 20px;
	border-top: 1px solid var(--plo-line);
	font-size: 13px;
	color: var(--plo-text-3);
}

/* Final call to action */

:root .plo-final {
	padding: clamp(64px, 8vw, 120px) 0 clamp(72px, 9vw, 136px);
	border-top: 1px solid var(--plo-line-strong);
}

:root .plo-final .plo-eyebrow {
	margin-bottom: 24px;
}

:root .plo-final-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px 56px;
	margin-top: 40px;
	margin-left: clamp(0px, 8vw, 112px);
}

:root .plo-final-row > .plo-body {
	flex: 1 1 380px;
	min-width: 0;
	max-width: 560px;
}

/* Regular pages and posts */

:root .plo-page {
	padding-block: clamp(48px, 7vw, 96px) clamp(64px, 8vw, 120px);
}

:root .plo-page {
	padding-inline: var(--plo-gutter);
}

:root .plo-page .wp-block-post-title {
	margin-bottom: 32px;
}

:root .plo-page > .wp-block-post-date {
	margin-bottom: 10px;
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}

:root .plo-page > .plo-body {
	margin-top: 16px;
}

:root .plo-page > .wp-block-buttons {
	margin-top: 28px;
}

:root .plo-page > .wp-block-query-title {
	margin-bottom: 24px;
}

:root .plo-page .wp-block-post-content a,
:root .plo-page .wp-block-post-excerpt a {
	text-underline-offset: 4px;
}

:root .plo-post-list .wp-block-post {
	padding: 24px 0;
	border-top: 1px solid var(--plo-line);
}

:root .plo-post-list .wp-block-post-title a {
	color: var(--plo-text);
	text-decoration: none;
}

:root .plo-post-list .wp-block-post-date {
	font-family: var(--plo-mono);
	font-size: 12px;
	color: var(--plo-text-3);
}
