@layer ww-components{
.ww-shell {
	width: 100%;
	margin-right: auto;
	margin-left: auto;
}

.ww-shell--content {
	max-width: var(--ww-content);
}

.ww-shell--wide,
.ww-page-shell.ww-shell--wide {
	max-width: var(--ww-wide);
}

.ww-shell--reading {
	max-width: var(--ww-reading);
}

.ww-shell--flush,
.ww-page-shell.ww-shell--flush {
	max-width: none;
}

.ww-block,
.ww-page-intro,
.ww-grid,
.ww-empty,
.ww-disclosure {
	width: 100%;
	max-width: var(--ww-shell-width);
	margin-right: auto;
	margin-left: auto;
}

/* Nested blocks fill their shell: a shell is the single source of section
   width, so grids/intros inside one must not re-constrain or overflow. */
.ww-shell .ww-block,
.ww-shell .ww-page-intro,
.ww-shell .ww-grid,
.ww-shell .ww-empty,
.ww-shell .ww-disclosure {
	max-width: none;
}

.ww-block--hero {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(460px, 560px);
	align-items: start;
	gap: 56px;
	max-width: var(--ww-shell-width);
	padding: 56px var(--ww-gutter) 72px;
}

.ww-home-hero {
	grid-template-columns: minmax(0, 1fr);
	max-width: var(--ww-shell-width);
	align-items: center;
	min-height: 0;
	border-bottom: 1px solid var(--ww-line);
}

.ww-home-hero:has(.ww-hero__media) {
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 48px;
}

.ww-page-intro:has(.ww-page-intro__media) {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 40px;
	align-items: center;
}@media (max-width: 820px){
	.ww-home-hero:has(.ww-hero__media),
	.ww-page-intro:has(.ww-page-intro__media) {
		grid-template-columns: 1fr;
	}
}

.ww-home-hero .ww-lede {
	max-width: 680px;
}

.ww-hero__copy {
	min-width: 0;
}

.ww-eyebrow,
.ww-card__label {
	margin: 0;
	color: var(--ww-accent);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: uppercase;
}

.ww-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0;
	color: var(--ww-faint);
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1.3;
	text-transform: none;
}

.ww-breadcrumbs a {
	color: var(--ww-muted);
	text-decoration: none;
}

.ww-breadcrumbs a:hover {
	color: var(--ww-accent);
}

.ww-breadcrumbs__separator {
	color: var(--ww-line);
}

.ww-block--hero h1,
.ww-page-intro h1 {
	max-width: 820px;
	margin: 12px 0 18px;
	color: var(--ww-ink);
	font-size: clamp(2.1rem, 1.2rem + 4.5vw, 3.72rem);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.ww-lede {
	max-width: 650px;
	margin: 0;
	color: var(--ww-muted);
	font-size: 1.02rem;
	line-height: 1.62;
}

.ww-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}

.ww-button {
	display: inline-flex;
	min-height: 46px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: var(--ww-radius-md);
	padding: 0 18px;
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.ww-button-primary {
	border: 2px solid var(--ww-accent);
	background: var(--ww-accent);
	color: var(--ww-ink);
	box-shadow: 0 6px 18px color-mix(in srgb, var(--ww-accent) 20%, transparent);
}

.ww-hero__copy .ww-button,
.ww-calculator-actions__controls .ww-button {
	margin-top: 18px;
}

.ww-button + .ww-button {
	margin-left: 10px;
}

.ww-button-primary:visited {
	color: var(--ww-surface);
}

.ww-button-primary:hover,
.ww-button-primary:focus-visible {
	border-color: var(--ww-navy);
	background: var(--ww-navy);
	color: var(--ww-surface);
}

.ww-button-secondary {
	border: 1px solid var(--ww-line);
	background: var(--ww-surface);
	color: var(--ww-navy);
}

.ww-button-secondary:hover {
	border-color: var(--ww-accent);
	color: var(--ww-accent);
}

.ww-button-tertiary {
	border: 1px solid var(--ww-line);
	background: var(--ww-paper);
	color: var(--ww-ink);
}

.ww-button-tertiary:hover {
	border-color: var(--ww-caution);
	color: var(--ww-warning);
}

/* Disabled buttons (F-006): native disabled and aria-disabled links share one muted treatment. */
.ww-button:disabled,
.ww-button[aria-disabled="true"] {
	border-color: var(--ww-line);
	background: var(--ww-paper);
	color: var(--ww-faint);
	cursor: not-allowed;
	opacity: 0.75;
}

.ww-button:disabled:hover,
.ww-button[aria-disabled="true"]:hover {
	border-color: var(--ww-line);
	background: var(--ww-paper);
	color: var(--ww-faint);
}

.ww-market-kpi-strip .ww-icon {
	width: 16px;
	height: 16px;
	color: var(--ww-accent);
	stroke-width: 2.2;
}

.ww-console-grid strong,
.ww-market-kpi-strip strong,
.ww-snapshot-row strong,
.ww-metric-row strong,
.calculator-page .calculator-output-value,
.ww-market-metrics strong {
	font-variant-numeric: tabular-nums;
}

.ww-block--section {
	max-width: var(--ww-shell-width);
	padding: 0 var(--ww-gutter) 96px;
}

.ww-home-main {
	padding-top: 54px;
}

.ww-home-main .ww-block--section {
	margin-bottom: 32px;
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-lg);
	background: var(--ww-surface);
	box-shadow: 0 10px 28px rgba(23, 40, 50, 0.035);
	padding-top: 54px;
}

.ww-home-main .ww-block--section:nth-of-type(2) {
	background: var(--ww-paper);
}

.ww-block--section > .ww-grid,
.ww-home-grid {
	padding: 0;
}

.ww-section-heading {
	max-width: 760px;
	margin-bottom: 38px;
}

.ww-section-heading-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	max-width: none;
}

.ww-block--section .ww-section-heading h2 {
	margin: 10px 0 0;
	color: var(--ww-ink);
	font-size: clamp(1.7rem, 2.4vw, 2rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: 0;
}

.ww-block--section h3 {
	margin: 14px 0 8px;
	color: var(--ww-navy);
	font-size: 1.05rem;
	line-height: 1.25;
}

.ww-block--section p {
	color: var(--ww-muted);
}

.ww-decision-system .ww-section-heading {
	max-width: 850px;
}

.ww-decision-system > .ww-text-link {
	margin-top: 18px;
}

.ww-feature-grid,
.ww-grid--cards,
.ww-grid--markets,
.ww-grid--guides,
.ww-grid--states {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ww-feature-grid > div,
.ww-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-md);
	background: var(--ww-surface);
	padding: 26px;
	box-shadow: 0 1px 0 rgba(23, 40, 50, 0.025);
	transition: border-color 160ms ease;
}

.ww-card:hover,
.ww-feature-grid > div:hover {
	border-color: rgba(44, 104, 118, 0.42);
	box-shadow: 0 1px 0 rgba(23, 40, 50, 0.025);
}

.ww-feature-grid p,
.ww-card__body,
.ww-card > p:not(.ww-card__label),
.ww-methodology-block li {
	color: var(--ww-muted);
	font-size: 0.84rem;
	line-height: 1.6;
}

.ww-card__title {
	margin: 12px 0 8px;
	color: var(--ww-navy);
	font-size: 1.24rem;
	line-height: 1.2;
}

.ww-card__topline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ww-card__topline span {
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-sm);
	background: var(--ww-paper);
	padding: 4px 8px;
	color: var(--ww-faint);
	font-size: 0.68rem;
	font-weight: 800;
	white-space: nowrap;
}

.ww-grid--guides .ww-card {
	min-height: 258px;
}

.ww-grid--guides .ww-card__title {
	font-size: 1.6rem;
	line-height: 1.08;
}

.ww-market-guide-section .ww-card__title {
	font-size: 1.05rem;
	line-height: 1.3;
}

.ww-card__title a {
	color: inherit;
	text-decoration: none;
}

.ww-card__title a:hover {
	color: var(--ww-accent);
}

.ww-card__meta {
	margin: 20px 0 0;
	color: var(--ww-faint);
	font-size: 0.72rem;
}

.ww-card__meta + .ww-card__meta {
	margin-top: 8px;
}

.ww-card__chips,
.ww-guide-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ww-card__chips li,
.ww-guide-meta span {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-sm);
	background: var(--ww-paper);
	padding: 4px 8px;
	color: var(--ww-navy);
	font-size: 0.72rem;
	font-weight: 800;
}

.ww-guide-meta {
	margin-top: 18px;
	justify-content: center;
}

.ww-card__action,
.ww-text-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 14px;
	color: var(--ww-accent);
	font-size: 0.78rem;
	font-weight: 800;
	text-decoration: none;
}

.ww-card__action {
	min-height: 44px;
	margin-top: auto;
}

.ww-card__action:hover,
.ww-text-link:hover {
	color: var(--ww-navy);
}

.ww-home-principles .ww-grid {
	gap: 0;
	border-top: 1px solid var(--ww-line);
	border-bottom: 1px solid var(--ww-line);
}

.ww-home-principles .ww-card__title {
	font-size: 1.08rem;
	font-weight: 700;
}

.ww-guides-section .ww-section-heading {
	max-width: var(--ww-content);
	margin-right: auto;
	margin-left: auto;
	padding-top: 0;
}

.ww-pagination {
	max-width: var(--ww-content);
	margin: 0 auto;
	padding: 0 var(--ww-gutter) 72px;
}

.ww-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.ww-pagination .page-numbers {
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-sm);
	padding: 0 12px;
	background: var(--ww-surface);
	color: var(--ww-navy);
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.ww-pagination .page-numbers.current,
.ww-pagination .page-numbers:hover {
	border-color: var(--ww-accent);
	background: var(--ww-tint);
	color: var(--ww-navy);
}

.ww-list-meta {
	max-width: var(--ww-content);
	margin: 0 auto 20px;
	padding: 0 var(--ww-gutter);
	color: var(--ww-muted);
	font-size: 0.9rem;
}

.ww-page-intro {
	padding: 58px var(--ww-gutter) 34px;
}

.ww-archive-intro {
	padding-top: 42px;
	padding-bottom: 24px;
}

.ww-archive-intro h1 {
	max-width: 760px;
	font-size: 3rem;
}

.ww-archive-intro .ww-lede {
	max-width: 700px;
}

.ww-tool-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
	gap: 28px;
	max-width: var(--ww-content);
	margin: 0 auto;
	padding: 34px var(--ww-gutter) 18px;
}

.ww-tool-header h1 {
	max-width: 760px;
	margin: 10px 0 14px;
	color: var(--ww-ink);
	font-size: 2.72rem;
	font-weight: 800;
	line-height: 1.06;
	letter-spacing: 0;
}

.ww-tool-header__copy {
	min-width: 0;
}

.ww-calculator-brief__primary p:not(.ww-card__label) {
	margin: 10px 0 0;
	color: var(--ww-muted);
	font-size: 0.9rem;
	line-height: 1.55;
}

.ww-calculator-record-bridge p:not(.ww-card__label) {
	max-width: 760px;
	margin: 6px 0 0;
	color: var(--ww-muted);
	font-size: 0.84rem;
	line-height: 1.5;
}

.ww-calculator-record-bridge .ww-button {
	flex: 0 0 auto;
}

.ww-screening-panel__primary p:not(.ww-card__label) {
	margin: 10px 0 0;
	color: var(--ww-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.ww-state-overview p:not(.ww-card__label) {
	max-width: 700px;
	margin: 10px 0 0;
	color: var(--ww-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.ww-page-shell a.ww-button-primary {
	color: var(--ww-surface);
}

.ww-page-shell a.ww-button-primary:hover,
.ww-page-shell a.ww-button-primary:visited {
	color: var(--ww-surface);
}

.ww-page-shell .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ww-space-2);
	margin: 1.5rem 0;
}

.ww-page-shell .wp-block-button__link {
	border-radius: var(--ww-radius-sm);
	background: var(--ww-navy);
	color: var(--ww-surface);
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.ww-page-shell .wp-block-button__link:hover {
	background: var(--ww-ink);
	color: var(--ww-surface);
}

.ww-page-shell .wp-block-table {
	overflow-x: auto;
	margin: 1.5rem 0;
}

/* Article/guide content element system: tables, lists, checklists, display math.
   Post bodies render bare <table>/<ul> markup, so the theme owns their styling
   here instead of per-post fixes. */
.ww-detail__main table,
.ww-guide-content table,
.ww-article-body table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 0.88rem;
	line-height: 1.6;
}

.ww-detail__main th,
.ww-detail__main td,
.ww-guide-content th,
.ww-guide-content td,
.ww-article-body th,
.ww-article-body td {
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--ww-line);
	text-align: left;
	vertical-align: top;
}

.ww-detail__main thead th,
.ww-guide-content thead th,
.ww-article-body thead th {
	background: var(--ww-tint);
	color: var(--ww-navy);
	font-weight: 800;
	white-space: nowrap;
}

.ww-detail__main tbody tr:nth-child(even),
.ww-guide-content tbody tr:nth-child(even),
.ww-article-body tbody tr:nth-child(even) {
	background: rgba(23, 40, 50, 0.025);
}

.ww-detail__main ul,
.ww-guide-content ul,
.ww-article-body ul {
	margin: 1rem 0;
	padding-left: 1.4rem;
}

.ww-detail__main li + li,
.ww-guide-content li + li,
.ww-article-body li + li {
	margin-top: 0.45rem;
}

/* Checklist lists carry their own boxes; drop the native bullets. */
.ww-detail__main li:has(> input[type="checkbox"]),
.ww-guide-content li:has(> input[type="checkbox"]),
.ww-article-body li:has(> input[type="checkbox"]) {
	list-style: none;
}

.ww-detail__main li > input[type="checkbox"],
.ww-guide-content li > input[type="checkbox"],
.ww-article-body li > input[type="checkbox"] {
	margin-right: 0.55rem;
	accent-color: var(--ww-accent);
}

/* Display-math paragraphs rendered by MathJax. */
.ww-detail__main .mjx-container[jax="CHTML"][display="true"],
.ww-guide-content .mjx-container[jax="CHTML"][display="true"],
.ww-article-body .mjx-container[jax="CHTML"][display="true"] {
	margin: 1.2rem 0;
	overflow-x: auto;
	overflow-y: hidden;
}

/* Article related-articles: three-column card grid. */
.ww-article-related {
	max-width: var(--ww-content);
	margin: 0 auto;
	padding: 44px var(--ww-gutter) 80px;
	border-top: 1px solid var(--ww-line);
}

.ww-article-related .ww-section-heading {
	margin-bottom: 24px;
}

.ww-article-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.ww-card--article .ww-card__title {
	font-size: 1.05rem;
	line-height: 1.3;
}

@media (max-width: 900px) {
	.ww-article-related__grid {
		grid-template-columns: 1fr;
	}
}

.ww-market-hero__copy .ww-breadcrumbs {
	margin-bottom: 28px;
}

.ww-market-hero__copy .ww-lede {
	max-width: 720px;
	margin: 20px 0 0;
	color: var(--ww-muted);
	font-size: 1.02rem;
	line-height: 1.55;
}

.ww-market-hero__signal p:not(.ww-card__label) {
	margin: 2px 0 8px;
	color: var(--ww-muted);
	font-size: 0.78rem;
	line-height: 1.5;
}

.ww-market-hero__signal .ww-button {
	justify-self: start;
}

.ww-market-signals .ww-section-heading {
	margin-bottom: 20px;
}

.ww-market-signals .ww-section-heading h2,
.ww-market-resource-section .ww-section-heading h2 {
	max-width: 720px;
	margin: 8px 0 0;
	color: var(--ww-ink);
	font-size: 1.65rem;
	line-height: 1.12;
}

.ww-market-resource-section .ww-section-heading {
	margin-bottom: 0;
}

.ww-market-resource-section .ww-section-heading > p:not(.ww-card__label) {
	max-width: 680px;
	margin: 12px 0 0;
	color: var(--ww-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.ww-market-resource-section .ww-grid {
	margin-top: 24px;
	padding: 0;
}

.ww-market-resource-section .ww-card {
	min-height: 250px;
}

.ww-calculator-disclaimer {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 36px;
	padding: 18px 0 40px;
	border-top: 1px solid var(--ww-line);
	color: var(--ww-faint);
}

.ww-calculator-disclaimer__icon {
	flex: 0 0 16px;
	margin-top: 2px;
	color: var(--ww-muted);
}

.ww-calculator-disclaimer__text {
	max-width: none;
	color: var(--ww-faint);
	font-size: 0.68rem;
	line-height: 1.55;
}

.ww-pagination,
.ww-list-meta,
.ww-calculator-selector,
.ww-calculator-brief,
.ww-screening-panel,
.ww-state-overview,
.ww-market-evidence-panel,
.ww-strategy-directory-rail,
.ww-strategy-brief,
.ww-strategy-next-links,
.ww-topic-nav,
.ww-detail,
.ww-auth-layout,
.ww-calculator-runbook,
.ww-tool-header {
	max-width: var(--ww-shell-width);
}

/* Detail headers share one hero-media pattern (unDraw, brand recolored).
   Copy is wrapped so the artwork always lands in the right column. */
.ww-detail-intro:has(.ww-detail-hero__media),
.ww-guide-intro:has(.ww-detail-hero__media),
.ww-tool-header:has(.ww-detail-hero__media),
.ww-article-intro:has(.ww-detail-hero__media) {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 40px;
	align-items: center;
}

@media (max-width: 820px) {
	.ww-detail-intro:has(.ww-detail-hero__media),
	.ww-guide-intro:has(.ww-detail-hero__media),
	.ww-tool-header:has(.ww-detail-hero__media),
	.ww-article-intro:has(.ww-detail-hero__media) {
		grid-template-columns: 1fr;
	}
}

.ww-grid {
	padding: 0 var(--ww-gutter) 72px;
}

.ww-strategy-directory-rail__copy p:not(.ww-card__label) {
	margin: 10px 0 0;
	color: var(--ww-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.ww-strategy-brief__main p:not(.ww-card__label) {
	max-width: 760px;
	margin: 0;
	color: var(--ww-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

/* Strategy detail: one container per section, headings always left aligned. */
.ww-detail--single.ww-strategy-detail {
	grid-template-columns: minmax(0, 1fr);
}

.ww-strategy-page .ww-section-heading {	max-width: none;
	margin-right: 0;
	margin-left: 0;
	text-align: left;
}

.ww-strategy-relations .ww-grid {
	margin-bottom: 30px;
}

.ww-strategy-relations .ww-grid:last-child {
	margin-bottom: 0;
}

.ww-grid--two {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ww-grid--four {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1040px) {
	.ww-grid--four {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.ww-grid--four {
		grid-template-columns: 1fr;
	}
}

.ww-methodology-page {
	max-width: var(--ww-shell-width);
	margin: 0 auto;
	padding: 0 var(--ww-gutter) 80px;
}

.ww-methodology-section {
	border-top: 1px solid var(--ww-line);
	padding: 30px 0 0;
}

.ww-methodology-section + .ww-methodology-section {
	margin-top: 46px;
}

.ww-methodology-section__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 22px;
}

.ww-methodology-section__heading h2 {
	max-width: 760px;
	margin: 8px 0 0;
	color: var(--ww-ink);
	font-size: 1.72rem;
	line-height: 1.16;
}

.ww-methodology-flow {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--ww-line);
	border-bottom: 1px solid var(--ww-line);
}

/* Home journey band: the five stages a lighting project moves through.
   Reuses the methodology step chrome so the home page and the methodology
   page stay visually identical, with a narrower track so all five stages
   fit on one row at desktop width. */
.ww-journey-flow {
	grid-template-columns: 1fr;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

/* Journey steps are navigation, so the whole card is the target rather than
   the twenty-pixel heading text. The overlay is decorative only: the heading
   link keeps its own href, focus ring, and accessible name. */
.ww-journey-flow .ww-methodology-step {
	position: relative;
}

.ww-journey-flow .ww-methodology-step h3 a::after {
	position: absolute;
	inset: 0;
	content: "";
}

.ww-methodology-step {
	min-width: 0;
	padding: 22px 24px 24px;
	border-left: 1px solid var(--ww-line);
}

.ww-methodology-step:first-child {
	border-left: 0;
}

.ww-methodology-step__number {
	display: block;
	color: var(--ww-accent);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0;
}

.ww-methodology-step h3,
.ww-methodology-definition h3 {
	margin: 12px 0 8px;
	color: var(--ww-navy);
	font-size: 1.05rem;
	line-height: 1.2;
}

.ww-methodology-step p,
.ww-methodology-definition p,
.ww-methodology-evidence p,
.ww-methodology-editorial-evidence p,
.ww-methodology-note {
	margin: 0;
	color: var(--ww-muted);
	font-size: 0.88rem;
	line-height: 1.6;
}

.ww-methodology-definitions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 42px;
}

.ww-methodology-definition {
	border-top: 1px solid var(--ww-line);
	padding: 18px 0 20px;
}

.ww-methodology-evidence,
.ww-methodology-editorial-evidence {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ww-methodology-evidence > div,
.ww-methodology-editorial-evidence > div {
	min-width: 0;
	border-top: 2px solid var(--ww-accent);
	padding-top: 14px;
}

.ww-methodology-evidence strong,
.ww-methodology-editorial-evidence strong {
	display: block;
	margin-bottom: 8px;
	color: var(--ww-navy);
	font-size: 0.95rem;
}

.ww-methodology-note {
	max-width: 820px;
	margin-top: 24px;
	color: var(--ww-faint);
	font-size: 0.78rem;
}

.ww-methodology-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 42px;
}

.ww-home-guide-row p:not(.ww-card__label) {
	max-width: 720px;
	margin: 0;
	color: var(--ww-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

.ww-topic-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	max-width: var(--ww-content);
	margin: 0 auto 28px;
	padding: 0 var(--ww-gutter);
}

.ww-topic-nav a {
	min-height: 44px;
	padding: 8px 0;
	color: var(--ww-muted);
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.ww-topic-nav a:hover,
.ww-topic-nav a.is-current {
	color: var(--ww-ink);
	border-bottom: 2px solid var(--ww-accent);
}

.ww-guide-related {
	max-width: 820px;
	margin: 0 auto 72px;
	padding: 0 var(--ww-gutter);
}

.ww-guide-related__list {
	display: grid;
	border-top: 1px solid var(--ww-line);
}

.ww-guide-related__list a {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	border-bottom: 1px solid var(--ww-line);
	padding: 16px 0;
	color: var(--ww-navy);
	font-weight: 800;
	text-decoration: none;
}

.ww-guide-related__list a:hover {
	color: var(--ww-accent);
}

.ww-methodology-block ul {
	margin: 0;
	padding-left: 20px;
}

.ww-methodology-block li {
	margin: 10px 0;
}

.ww-empty {
	padding: 24px;
	color: var(--ww-muted);
}

.ww-disclosure {
	padding: 14px var(--ww-gutter) 72px;
	color: var(--ww-faint);
	font-size: 0.72rem;
}

.ww-guide-intro {
	padding: 48px var(--ww-gutter) 42px;
	text-align: center;
}

.ww-guide-intro h1 {
	max-width: 920px;
	margin: 12px auto 18px;
	color: var(--ww-ink);
	font-size: 3.5rem;
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: 0;
}

.ww-guide-intro .ww-lede {
	margin-right: auto;
	margin-left: auto;
}

.ww-guide-layout {
	display: grid;
	grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
	gap: 36px;
	padding: 0 var(--ww-gutter) 24px;
}

.ww-guide-layout--without-toc {
	grid-template-columns: minmax(0, 980px);
	justify-content: center;
}

.ww-guide-content {
	min-width: 0;
}

.ww-guide-content > * + * {
	margin-top: 34px;
}

.ww-guide-toc {
	align-self: start;
	position: sticky;
	top: 24px;
	border-top: 2px solid var(--ww-accent);
	background: var(--ww-paper);
	padding-top: 14px;
}

.ww-guide-toc__panel {
	margin: 0;
}

.ww-guide-toc__panel > summary {
	cursor: pointer;
	list-style: none;
	color: var(--ww-navy);
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.25;
}

.ww-guide-toc__panel > summary::-webkit-details-marker {
	display: none;
}

.ww-guide-toc__panel > summary::after {
	float: right;
	color: var(--ww-accent);
	content: "＋";
	font-size: 1rem;
}

.ww-guide-toc__panel[open] > summary::after {
	content: "−";
}

.ww-guide-toc h2,
.ww-guide-section h2,
.ww-guide-cta h2,
.ww-guide-related h2 {
	margin: 0 0 14px;
	color: var(--ww-navy);
	font-size: 1.25rem;
	line-height: 1.25;
}

.ww-guide-toc ol,
.ww-guide-sources ol {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 14px 0 0;
	list-style: none;
}

.ww-guide-toc a,
.ww-guide-sources a {
	color: var(--ww-accent);
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.45;
	text-decoration: none;
}

.ww-guide-toc__item--level-3 {
	padding-left: 14px;
}

.ww-guide-toc__item--level-4 {
	padding-left: 28px;
}

.ww-guide-toc__item--level-2 {
	padding-left: 0;
}

.ww-guide-toc a {
	display: block;
	border-left: 2px solid transparent;
	padding: 3px 0 3px 10px;
}

.ww-guide-toc a:hover,
.ww-guide-toc a:focus-visible,
.ww-guide-toc a.is-active {
	border-left-color: var(--ww-accent);
	color: var(--ww-navy);
}

.ww-guide-section {
	padding: 0;
}

.ww-guide-stack {
	display: grid;
	gap: 12px;
}

.ww-guide-stack article,
.ww-guide-stack details {
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-sm);
	background: var(--ww-surface);
	padding: 16px 18px;
}

.ww-guide-stack h3 {
	margin: 0 0 8px;
	color: var(--ww-navy);
	font-size: 0.95rem;
	line-height: 1.35;
}

.ww-guide-stack p {
	margin: 8px 0 0;
	color: var(--ww-body-copy);
	font-size: 0.9rem;
	line-height: 1.6;
}

.ww-guide-stack code {
	display: block;
	overflow-wrap: anywhere;
	color: var(--ww-navy);
	font-size: 0.88rem;
	font-weight: 700;
	white-space: normal;
}

.ww-guide-stack summary {
	cursor: pointer;
	color: var(--ww-navy);
	font-size: 0.92rem;
	font-weight: 800;
}

.ww-guide-sources li {
	padding: 5px 0;
	color: var(--ww-muted);
	font-size: 0.82rem;
	line-height: 1.5;
}

.ww-guide-sources li span {
	display: block;
	color: var(--ww-faint);
}

.ww-guide-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 0;
	padding: 24px 0;
	border-top: 1px solid var(--ww-line);
	border-bottom: 1px solid var(--ww-line);
}

.ww-guide-cta h2 {
	margin-bottom: 0;
}

.ww-guide-related {
	padding: 44px var(--ww-gutter) 72px;
}

.ww-guide-related__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 24px;
}

.ww-guide-related__list h3 {
	margin: 0 0 10px;
	color: var(--ww-navy);
	font-size: 0.82rem;
}

.ww-guide-related__list ul {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ww-guide-related__list a {
	color: var(--ww-accent);
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
}

.ww-article-body {
	padding: 0 var(--ww-gutter) 80px;
}

.ww-detail__main,
.ww-content-narrow {
	color: var(--ww-body-copy);
	font-size: 1rem;
	line-height: 1.75;
}

.ww-detail__main h2,
.ww-content-narrow h2 {
	margin: 28px 0 10px;
	color: var(--ww-navy);
	font-size: 1.45rem;
	line-height: 1.2;
}

.ww-content-narrow {
	max-width: var(--ww-reading);
	margin: 0 auto;
	padding: 0 var(--ww-gutter) 80px;
}

.ww-auth-form {
	display: grid;
	max-width: 500px;
	gap: 14px;
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-md);
	background: var(--ww-surface);
	padding: 24px;
}

.ww-auth-layout {
	display: grid;
	grid-template-columns: minmax(0, 500px) minmax(280px, 1fr);
	gap: 22px;
	max-width: var(--ww-content);
	margin: 0 auto;
	padding: 0 var(--ww-gutter) 80px;
}

.ww-auth-layout--single {
	grid-template-columns: minmax(0, 620px);
	justify-content: start;
}

.ww-auth-layout__main {
	min-width: 0;
	color: var(--ww-body-copy);
}

.ww-auth-layout__main > p:first-child {
	margin-top: 0;
}

.ww-auth-layout .ww-auth-form {
	max-width: none;
}

.ww-auth-context {
	height: max-content;
	border: 1px solid var(--ww-line);
	border-top: 4px solid var(--ww-accent);
	border-radius: var(--ww-radius-md);
	background: var(--ww-tint);
	box-shadow: 0 8px 22px rgba(23, 40, 50, 0.035);
	padding: 24px;
}

.ww-auth-context h2 {
	margin: 10px 0 0;
	color: var(--ww-ink);
	font-size: 1.28rem;
	line-height: 1.2;
}

.ww-auth-context p:not(.ww-card__label) {
	margin: 10px 0 0;
	color: var(--ww-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.ww-auth-context__list {
	display: grid;
	gap: 10px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.ww-auth-context__list li {
	margin: 0;
	border-top: 1px solid var(--ww-line);
	padding-top: 10px;
	color: var(--ww-muted);
	font-size: 0.82rem;
	line-height: 1.5;
}

.ww-auth-context__list li:first-child {
	border-top: 0;
	padding-top: 0;
}

.ww-auth-form label {
	display: grid;
	gap: 6px;
	color: var(--ww-navy);
	font-size: 0.8rem;
	font-weight: 700;
}

.ww-auth-form input:not([type="checkbox"]) {
	width: 100%;
	border: 1px solid var(--ww-line);
	border-radius: var(--ww-radius-sm);
	background: var(--ww-paper);
	padding: 10px 12px;
	color: var(--ww-ink);
}

.ww-auth-form input[type="hidden"] {
	display: none;
}

.ww-auth-form .ww-checkbox-label {
	display: flex;
	grid-template-columns: none;
	align-items: flex-start;
	gap: 8px;
	color: var(--ww-muted);
	font-weight: 500;
}

.ww-auth-form .ww-checkbox-label input {
	margin-top: 5px;
}

.ww-auth-status {
	min-height: 1.5em;
	color: var(--ww-positive);
	font-size: 0.8rem;
}

.ww-auth-status.is-error {
	color: var(--ww-negative);
}

.ww-content-narrow li {
	margin: 10px 0;
}

.ww-disclosure--risk {
	max-width: calc(var(--ww-content) - 48px);
	margin-bottom: 0;
	border-left: 3px solid var(--ww-caution);
	background: var(--ww-caution-surface);
	padding: 18px 20px;
	color: var(--ww-caution-ink);
}

.ww-disclosure--risk strong {
	color: var(--ww-caution-strong);
}

.ww-disclosure--risk p {
	margin: 6px 0 0;
}

.ww-card--tool {
	border-top-color: var(--ww-line);
}

.ww-focusable:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--ww-focus);
	outline-offset: 3px;
}@media (max-width: 1040px){
	.ww-block--hero {
		grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
		gap: 40px;
	}

	.ww-block--hero h1 {
		font-size: 3.2rem;
	}

	.ww-grid--cards,
	.ww-grid--markets,
	.ww-grid--guides,
	.ww-grid--states {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ww-tool-header {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.ww-auth-layout {
		grid-template-columns: 1fr;
	}
}

.ww-calculator-runbook .ww-text-link {
	align-self: center;
	margin: 0;
	padding: 14px 16px;
	white-space: nowrap;
}@media (max-width: 1040px){

	.ww-calculator-runbook .ww-text-link {
		padding-top: 0;
	}
}

@media (max-width: 860px) {
	.ww-block--hero {
		display: block;
		padding-top: 48px;
		padding-bottom: 56px;
	}

	.ww-block--hero h1 {
		max-width: 720px;
		font-size: 3.35rem;
	}

	.ww-block--hero .ww-underwriting-demo {
		margin-top: 28px;
	}
}@media (max-width: 900px){

	.ww-guide-layout {
		display: block;
	}

	.ww-guide-toc {
		position: static;
		margin: 0 0 28px;
	}
}@media (max-width: 760px){
	.ww-home-tools .ww-home-grid .ww-card:nth-child(n + 4),
	.ww-market-screening .ww-state-card:nth-child(n + 4) {
		display: none;
	}

	.ww-block--hero {
		display: block;
		padding: 44px var(--ww-gutter-mobile) 54px;
	}

	.ww-block--hero h1,
	.ww-page-intro h1 {
		font-size: 2.55rem;
	}

	.ww-guide-intro {
		padding: 38px var(--ww-gutter-mobile) 34px;
	}

	.ww-guide-intro h1,
	.ww-article-intro h1 {
		font-size: 2.55rem;
	}

	.ww-guide-layout {
		padding-right: var(--ww-gutter-mobile);
		padding-left: var(--ww-gutter-mobile);
	}

	.ww-guide-content > * + * {
		margin-top: 30px;
	}

	.ww-archive-intro {
		padding-top: 34px;
		padding-bottom: 18px;
	}

	.ww-tool-header {
		display: block;
		padding: 34px var(--ww-gutter-mobile) 22px;
	}

	.ww-tool-header h1 {
		font-size: 2.2rem;
	}

	.ww-guide-related {
		padding-right: var(--ww-gutter-mobile);
		padding-left: var(--ww-gutter-mobile);
	}

	.ww-guide-cta {
		display: grid;
		margin-top: 0;
	}

	.ww-guide-related__list {
		grid-template-columns: 1fr;
	}

	.ww-calculator-record-bridge .ww-button {
		justify-self: start;
	}

	.ww-block--section,
		.ww-page-intro,
		.ww-calculator-selector,
		.ww-calculator-runbook,
		.ww-strategy-directory-rail,
		.ww-grid,
		.ww-methodology-page,
		.ww-content-narrow,
		.ww-auth-layout,
		.ww-page-shell {
		padding-right: var(--ww-gutter-mobile);
		padding-left: var(--ww-gutter-mobile);
	}

	.ww-block--section .ww-home-grid {
		padding-right: 0;
		padding-left: 0;
	}

	.ww-home-principles .ww-grid {
		border-bottom: 0;
	}

	.ww-section-heading-row {
		display: block;
	}

	.ww-section-heading-row .ww-text-link {
		margin-top: 12px;
	}

	.ww-feature-grid,
	.ww-grid--cards,
	.ww-grid--markets,
	.ww-grid--guides,
	.ww-grid--states,
	.ww-grid--two,
	.ww-methodology-flow,
	.ww-methodology-definitions,
	.ww-methodology-evidence,
	.ww-methodology-editorial-evidence,
	.ww-home-guide-list,
	.ww-quality-grid,
	.ww-decision-rail {
		grid-template-columns: 1fr;
	}

	.ww-methodology-section + .ww-methodology-section {
		margin-top: 36px;
	}

	.ww-methodology-section__heading h2 {
		font-size: 1.42rem;
	}

	.ww-methodology-step {
		border-top: 1px solid var(--ww-line);
		border-left: 0;
	}

	.ww-methodology-step:first-child {
		border-top: 0;
	}

	.ww-methodology-definitions {
		column-gap: 0;
	}

	.ww-methodology-evidence,
	.ww-methodology-editorial-evidence {
		gap: 0;
	}

	.ww-methodology-evidence > div,
	.ww-methodology-editorial-evidence > div {
		border-top: 1px solid var(--ww-line);
		border-top-color: var(--ww-line);
		padding: 18px 0;
	}

	.ww-methodology-evidence > div:first-child,
	.ww-methodology-editorial-evidence > div:first-child {
		border-top: 0;
	}

	.ww-home-hero {
		min-height: 0;
	}

	.ww-card__topline {
		display: grid;
		align-items: start;
		justify-content: stretch;
		gap: 8px;
	}

	.ww-card__topline span {
		justify-self: start;
		white-space: normal;
	}

	.ww-disclosure--risk {
		width: auto;
		max-width: none;
		margin-right: var(--ww-gutter-mobile);
		margin-left: var(--ww-gutter-mobile);
	}

	.ww-article-body {
		padding-right: var(--ww-gutter-mobile);
		padding-left: var(--ww-gutter-mobile);
	}
}
.ww-relations-subtitle { font-size: 1.35rem; font-weight: 800; letter-spacing: 0; margin: 0 0 18px; color: var(--ww-ink); }
.ww-grid.ww-grid--cards.ww-relations-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; padding: 0 0 32px; }
@media (max-width: 900px) { .ww-grid.ww-grid--cards.ww-relations-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px) { .ww-grid.ww-grid--cards.ww-relations-grid { grid-template-columns: 1fr; } }
.ww-calculator-category-nav, .ww-category-nav { margin: 0 0 36px; }

/* Container queries: grids respond to their actual container (sidebar,
   embed, narrow pattern columns), not just the viewport. Viewport media
   rules below stay as the base behavior; these only collapse earlier
   where the container is genuinely narrow. */
.ww-block--section,
.ww-article-related,
.ww-calculator-relations,
.ww-calculator-directory,
.ww-shell--wide {
	container-type: inline-size;
}

@container (max-width: 1020px) {
	.ww-feature-grid,
	.ww-grid--cards,
	.ww-grid--markets,
	.ww-grid--guides,
	.ww-grid--states,
	.ww-article-related__grid,
	.ww-grid.ww-grid--cards.ww-relations-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container (max-width: 700px) {
	.ww-feature-grid,
	.ww-grid--cards,
	.ww-grid--markets,
	.ww-grid--guides,
	.ww-grid--states,
	.ww-grid--two,
	.ww-article-related__grid,
	.ww-home-guide-list,
	.ww-quality-grid,
	.ww-decision-rail,
	.ww-grid.ww-grid--cards.ww-relations-grid {
		grid-template-columns: 1fr;
	}
}

/* Article featured image: native responsive thumbnail between hero and body. */
.ww-article-figure { max-width: var(--ww-content); margin: 28px auto 0; padding: 0 var(--ww-gutter); }
.ww-article-figure img { display: block; width: 100%; height: auto; border: 1px solid var(--ww-line); border-radius: var(--ww-radius-lg); }

/* Search form: single branded pattern reused on 404, search and widgets. */
.ww-search-form { max-width: 560px; margin: 20px auto 0; }
.ww-search-form__label { display: block; margin-bottom: 8px; font-size: 0.78rem; font-weight: 800; color: var(--ww-muted); }
.ww-search-form__row { display: flex; gap: 10px; }
.ww-search-form__input { flex: 1; min-width: 0; min-height: 46px; border: 1px solid var(--ww-line); border-radius: var(--ww-radius-md); background: var(--ww-surface); padding: 0 14px; color: var(--ww-ink); }
.ww-search-form__input:focus { outline: 2px solid var(--ww-focus); outline-offset: 1px; border-color: var(--ww-focus); }

/* Language switcher: quiet uppercase codes, never competing with the CTA. */
.ww-lang-switcher { display: inline-flex; align-items: center; gap: 2px; }
.ww-lang-switcher__link, .ww-lang-switcher__current { display: inline-flex; min-height: 44px; align-items: center; padding: 0 8px; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.04em; text-decoration: none; }
.ww-lang-switcher__link { color: var(--ww-muted); }
.ww-lang-switcher__link:hover { color: var(--ww-accent); }
.ww-lang-switcher__current { color: var(--ww-surface); border-bottom: 2px solid var(--ww-accent); }

/* Error page: one narrow centered panel, vertically settled between header and footer. */
.ww-error-page { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 62vh; padding-top: 40px; padding-bottom: 64px; text-align: center; }
.ww-error-page__code { margin: 6px 0 0; color: var(--ww-navy); font-size: clamp(4.5rem, 12vw, 7.5rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.ww-error-page h1 { margin-top: 10px; }
.ww-error-page .ww-lede { max-width: 560px; margin-right: auto; margin-left: auto; }
.ww-error-page .ww-search-form { width: 100%; margin-right: auto; margin-left: auto; }
.ww-error-page__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }

}

/* Calculator education section: the "verify before you rely" strip at the
   bottom of each calculator. */
.ww-calculator-education {
	padding-top: 8px;
}

.ww-calculator-education h2 {
	color: var(--ww-navy);
	font-size: 1.25rem;
	line-height: 1.25;
}
