/*
Theme Name: Ecsper
Theme URI: https://www.ecsper.com
Author: Ecsper Ltd
Author URI: https://www.ecsper.com
Description: Bespoke block theme for the Ecsper public website. Design system governed by theme.json. No page builder, no parent theme.
Version: 0.1.51
Requires at least: 7.1
Tested up to: 7.1
Requires PHP: 8.3
License: Proprietary
License URI: https://www.ecsper.com
Text Domain: ecsper
Tags: block-patterns, block-styles, full-site-editing, one-column, wide-blocks

Copyright 2026 Ecsper Ltd. All rights reserved.
SPDX-License-Identifier: LicenseRef-Ecsper-Proprietary
*/

/* ── Design-system shorthand (mirrors mockup CSS vars) ────────────────── */
:root {
	--dsp: Georgia, 'Times New Roman', Times, serif;
	--bd: 'Sora', 'Sora Fallback', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--wm: 'Genos', 'Genos Fallback', sans-serif;
	--blue: #0043A6;
	--blue-d: #002F7A;
	--blue-t: #EEF4FF;
	--blue-l: #5BBCF5;
	--ink: #0B0E14;
	--ink2: #4B5563;
	--ink3: #5F6672;
	--wp--preset--color--ink-3: #5F6672;
	--bone: #F5F1EA;
	--paper: #FFFFFF;
	--bg: #F4F5F7;
	--line: #DDE1EA;
	--lines: #E6E8EE;
	--green: #047857;
	--green-t: #ECFDF5;
	--purple: #7C3AED;
	--purple-t: #F5F3FF;
	--warm: #C4703B;
	--warm-t: #FDF6EF;
	--warm-d: #A85C2F;
	--warm-text: #9E5A2F;
	--amber: #D97706;
	--amber-t: #FFFBEB;
	--red: #B91C1C;
	--red-t: #FEF2F2;
	--red-bg: #FFF5F5;
	--teal: #0891B2;
}
.has-ink-3-color {
	color: #5F6672;
}

/* Fallback metrics so Sora/Genos swap does not shift #founders (P6c CLS). */
@font-face {
	font-family: 'Sora Fallback';
	src: local('Arial'), local('Helvetica Neue'), local('Helvetica');
	size-adjust: 100%;
	ascent-override: 92%;
	descent-override: 23%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Genos Fallback';
	src: local('Arial'), local('Helvetica Neue'), local('Helvetica');
	size-adjust: 94%;
	ascent-override: 90%;
	descent-override: 20%;
	line-gap-override: 0%;
}

/* Everything expressible in theme.json belongs in theme.json.
   This file carries only what the block system cannot express. */

/* === UNIFIED SECTION HEADINGS (P6k-fix-2) === */
.ecsper-section-label {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	text-align: center;
	margin-bottom: 16px;
}
.ecsper-section-head {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	line-height: 1.2;
	text-align: center;
	margin-bottom: 20px;
}
.ecsper-section-desc {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 15px;
	line-height: 1.65;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	text-align: center;
	max-width: 680px;
	margin: 0 auto 40px;
}
.ecsper-home-label,
.ecsper-home-headline,
.ecsper-delivers-label,
.ecsper-delivers-head,
.ecsper-cap-label,
.ecsper-cap-head,
.ecsper-conn-label,
.ecsper-conn-head,
.ecsper-sp-label,
.ecsper-sp-head,
.ecsper-ov-label,
.ecsper-ov-head,
.ecsper-res-label,
.ecsper-res-head,
.ecsper-trust-label,
.ecsper-faq-group-label,
.ecsper-ch-head,
.ecsper-ch-narrative-label,
.ecsper-ch-narrative-head {
	text-align: center;
}
.ecsper-home-accent,
.ecsper-delivers-accent,
.ecsper-cap-accent,
.ecsper-conn-accent,
.ecsper-sp-accent,
.ecsper-ov-accent,
.ecsper-res-accent,
.ecsper-trust-accent,
.ecsper-related-accent,
.ecsper-event-accent {
	margin-left: auto;
	margin-right: auto;
}

/* Accessibility: visible focus on every interactive element.
   Standard 38 (TrueRead) T6. Never remove without a canon amendment. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
	border-radius: var(--wp--custom--radius--xs);
}

/* Skip link */
.ecsper-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: 12px 20px;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}
.ecsper-skip-link:focus {
	left: 0;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Motion discipline. Standard 38 T5.5. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Typography rules TrueRead enforces that theme.json cannot.
   T5.1 no justified text. T5.3 no italic emphasis. T5.4 underline on links only. */
p,
li {
	text-align: start;
	text-wrap: pretty;
}
p a,
li a {
	text-decoration: underline;
}
h1, h2, h3, h4 {
	text-wrap: balance;
}

/* Transitions: the only permitted motion beyond the sticky header. */
a,
.wp-block-button__link {
	transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease;
}

/* Style guide scaffolding. Development surface only, never a public page. */
.eg-swatch {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--md);
	overflow: hidden;
}
.eg-swatch__chip {
	height: 72px;
}
.eg-swatch__meta {
	padding: 10px 12px;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--micro);
	line-height: 1.6;
	color: var(--wp--preset--color--ink-2);
}
.eg-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 16px;
}
.eg-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--meta);
}
.eg-table th,
.eg-table td {
	text-align: start;
	padding: 9px 12px;
	border-bottom: 1px solid var(--wp--preset--color--lines);
}
.eg-table th {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--micro);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--ink-3);
}
.eg-pass {
	color: var(--wp--preset--color--green);
	font-weight: 600;
}
.eg-fail {
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}
.eg-rule {
	border-inline-start: 3px solid var(--wp--preset--color--warm);
	background: var(--wp--preset--color--warm-tint);
	padding: 14px 18px;
	border-radius: var(--wp--custom--radius--sm);
	font-size: var(--wp--preset--font-size--small);
}

/* ── Shell ───────────────────────────────────────────────────────────────── */

.ecsper-banner-toggle {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ecsper-banner-toggle:checked + .ecsper-banner {
	display: none;
}
.ecsper-banner {
	background: var(--blue);
	color: rgba(255, 255, 255, 0.9);
	text-align: center;
	padding: 10px 44px;
	font-family: var(--bd);
	font-size: 13px;
	position: relative;
	z-index: 101;
}
.ecsper-banner-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
}
.ecsper-banner-prefix {
	color: #fff;
	font-weight: 600;
}
.ecsper-banner a {
	color: #fff;
	font-weight: 600;
	margin-inline-start: 4px;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ecsper-banner-x {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: rgba(255, 255, 255, 0.5);
	cursor: pointer;
	font-size: 18px;
	padding: 4px;
	line-height: 1;
}

header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--wp--preset--color--paper, #FFFFFF);
}
.ecsper-nav {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--wp--preset--color--paper, #FFFFFF);
	backdrop-filter: blur(14px);
	min-height: 64px;
	overflow: visible;
	transition: box-shadow 0.2s ease;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.ecsper-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px;
	min-height: 64px;
}
.ecsper-header-brand,
.ecsper-brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 2px;
}
.ecsper-header-nav,
.ecsper-navwrap {
	display: flex;
	align-items: center;
	flex: 1;
	justify-content: center;
}
.ecsper-header-actions {
	display: flex;
	align-items: center;
	gap: 16px;
}
.ecsper-header-logo-left {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.ecsper-header-logo-left .ecsper-header-nav,
.ecsper-header-logo-left .ecsper-navwrap {
	flex: 1;
	justify-content: center;
}
.ecsper-header-logo-centre {
	display: flex;
	align-items: center;
}
.ecsper-header-logo-centre .ecsper-header-brand,
.ecsper-header-logo-centre .ecsper-brand {
	order: 2;
	flex: 1;
	justify-content: center;
}
.ecsper-header-logo-centre .ecsper-header-nav,
.ecsper-header-logo-centre .ecsper-navwrap {
	order: 1;
	flex: 0 1 auto;
	justify-content: flex-start;
}
.ecsper-header-logo-centre .ecsper-header-actions {
	order: 3;
}
.ecsper-nav .wp-block-group {
	overflow: visible;
}
.ecsper-brand > .wp-block-site-title,
.ecsper-brand > .wp-block-site-title.ecsper-header-logo {
	line-height: 1;
	font-size: 44px;
}
.ecsper-brand > .wp-block-site-title a {
	text-decoration: none;
	font-size: inherit;
}
.ecsper-descriptor {
	white-space: nowrap;
}
.ecsper-navwrap {
	gap: 22px;
	margin-top: 0;
	padding-top: 0;
}
.ecsper-nav .wp-block-navigation a {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--ink2);
	text-decoration: none;
}
.ecsper-nav .wp-block-navigation a:hover {
	color: var(--ink);
}
.ecsper-login {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink);
	text-decoration: none;
	white-space: nowrap;
	background: none;
	border: none;
	border-left: 1px solid var(--wp--preset--color--line, var(--line));
	padding: 0 0 0 16px;
	margin-left: 16px;
	cursor: pointer;
}
.ecsper-login:hover {
	color: var(--ink);
	text-decoration: none;
}
.ecsper-nav-cta {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--paper);
	background: var(--blue);
	padding: 10px 24px;
	border-radius: 100px;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 150ms ease;
}
.ecsper-nav-cta:hover {
	background: var(--blue-d);
	color: var(--paper);
	text-decoration: none;
}

/* ── Footer ──────────────────────────────────────────────────────────────── */

.ecsper-footer-grid {
	display: grid;
	grid-template-columns: 1.5fr repeat(3, 1fr);
	gap: 28px;
	margin-bottom: 40px;
}
.ecsper-footer-brand {
	align-self: start;
}
.ecsper-footer-wordmark {
	font-family: var(--wm);
	font-weight: 400;
	font-size: 26px;
	line-height: 1;
	color: var(--paper);
	margin-bottom: 6px;
}
.ecsper-footer-wordmark sup {
	font-family: var(--bd);
	font-size: 26%;
	opacity: 0.7;
}
.ecsper-footer-descriptor {
	font-family: var(--bd);
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
	margin: 0 0 8px;
}
.ecsper-footer-mechanism {
	font-family: var(--bd);
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
}
.ecsper-footer-head {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.65);
	margin: 0 0 14px;
}
.ecsper-footer-grid ul,
.ecsper-footer-legal ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ecsper-footer-grid li {
	margin: 0;
}
.ecsper-footer-grid a,
.ecsper-footer-legal a {
	display: block;
	font-family: var(--bd);
	font-size: 12px;
	color: rgba(255, 255, 255, 0.75);
	padding: 3px 0;
	text-decoration: none;
}
.ecsper-footer-grid a:hover,
.ecsper-footer-legal a:hover {
	color: rgba(255, 255, 255, 0.95);
	text-decoration: none;
}
.ecsper-footer-bar {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
}
.ecsper-footer-legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
}
.ecsper-footer-legal a {
	display: inline;
	margin-right: 16px;
	color: rgba(255, 255, 255, 0.6);
}
.ecsper-footer-legal a:hover {
	color: rgba(255, 255, 255, 0.95);
}
.ecsper-footer-infra {
	font-family: var(--bd);
	font-size: 12px;
	color: rgba(255, 255, 255, 0.6);
}
.ecsper-footer-copy {
	font-family: var(--bd);
	font-size: 12px;
	color: rgba(255, 255, 255, 0.6);
}

@media (max-width: 900px) {
	.ecsper-footer-grid { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 768px) {
	.ecsper-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
	.ecsper-descriptor { display: none; }
}
@media (max-width: 480px) {
	.ecsper-footer-grid { grid-template-columns: 1fr; }
}

/* ── Page furniture ──────────────────────────────────────────────────────── */
.ecsper-card {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--xl);
	padding: 26px;
	background: var(--wp--preset--color--paper);
	height: 100%;
}
.ecsper-card h3 {
	margin: 0 0 8px;
	font-size: var(--wp--preset--font-size--card);
}
.ecsper-card p {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}
.ecsper-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.ecsper-grid-2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
.ecsper-pill {
	display: inline-block;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--green);
	background: var(--wp--preset--color--green-tint);
	border-radius: var(--wp--custom--radius--pill);
	padding: 3px 10px;
}
.ecsper-quote {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--xl);
	padding: 28px;
	background: var(--wp--preset--color--paper);
}
.ecsper-quote-label {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-d);
	margin-bottom: 14px;
}
.ecsper-quote-text {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--lede);
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
}
.ecsper-quote-attr {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 20px;
}
.ecsper-quote-av {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--wp--preset--color--blue-tint);
	color: var(--wp--preset--color--blue);
	display: grid;
	place-items: center;
	font-size: var(--wp--preset--font-size--meta);
	font-weight: 600;
}
.ecsper-quote-name {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.ecsper-quote-role {
	font-size: var(--wp--preset--font-size--meta);
	color: var(--wp--preset--color--ink-3);
}

@media (max-width: 880px) {
	.ecsper-grid-3, .ecsper-grid-2 { grid-template-columns: 1fr; }
}

/* ── Card link reset ─────────────────────────────────────────────────────── */
/* A card wrapped in an anchor inherits the link colour on every child. */

a.ecsper-card,
a.ecsper-card:hover,
a.ecsper-card:focus {
	color: var(--wp--preset--color--ink-2);
	text-decoration: none;
}
a.ecsper-card h3,
.ecsper-card h3 {
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
}
a.ecsper-card p,
.ecsper-card p {
	color: var(--wp--preset--color--ink-2);
}
a.ecsper-card {
	transition: border-color 150ms ease, box-shadow 150ms ease;
}
a.ecsper-card:hover {
	border-color: var(--wp--preset--color--blue);
	box-shadow: var(--wp--preset--shadow--card);
}
.ecsper-card .ecsper-pill {
	margin-bottom: 14px;
}

/* Cards sit in a stretch grid, so pad rather than let height collapse. */
.ecsper-grid-2 > .ecsper-card,
.ecsper-grid-3 > .ecsper-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}
.ecsper-grid-2 > .ecsper-card p,
.ecsper-grid-3 > .ecsper-card p {
	margin-top: auto;
	padding-top: 6px;
}

/* ── Navigation ──────────────────────────────────────────────────────────── */
/* The header is a single row. A wrapping menu is a content problem, but the
   shell should not silently absorb it. */

.ecsper-nav .wp-block-navigation__container {
	flex-wrap: nowrap;
}
.ecsper-nav .wp-block-navigation-item__content {
	white-space: nowrap;
}
.ecsper-cta .wp-block-button__link,
.ecsper-nav-cta {
	white-space: nowrap;
}

/* ── Section rhythm ──────────────────────────────────────────────────────── */

.ecsper-hero h1 {
	margin-top: var(--wp--preset--spacing--30);
	margin-left: auto;
	margin-right: auto;
	max-width: 16em;
}
.ecsper-hero p {
	max-width: 34em;
	margin-left: auto;
	margin-right: auto;
}
.wp-block-group > h6 + h2,
.wp-block-group > h6 + h1 {
	margin-top: var(--wp--preset--spacing--30);
}

/* Site Logo, when uploaded, replaces the Genos wordmark. */
.ecsper-logo img,
.ecsper-footer-logo {
	display: block;
	height: auto;
	max-width: 150px;
}
.ecsper-footer-logo {
	max-width: 170px;
}

/* ── Footer logo ─────────────────────────────────────────────────────────── */

.ecsper-footer-logo img {
	max-width: 200px;
	height: auto;
	filter: brightness(0) invert(1);
}

/* Site Logo in the header */
.ecsper-brand .wp-block-site-logo,
.ecsper-brand .wp-block-site-logo a {
	max-width: none;
}
.ecsper-brand .wp-block-site-logo img,
.ecsper-header-logo img,
.ecsper-header-logo svg {
	height: 44px;
	width: auto;
	max-width: none;
}

/* ── Final CTA ───────────────────────────────────────────────────────────── */
.ecsper-final-cta {
	background: var(--blue);
	padding: 72px 32px;
	text-align: center;
	margin-bottom: 0 !important;
}
.wp-site-footer,
.ecsper-footer,
footer.wp-block-template-part {
	margin-top: 0 !important;
}
main.wp-block-group > *:last-child {
	margin-bottom: 0 !important;
}
.ecsper-final-cta-inner {
	max-width: 600px;
	margin: 0 auto;
}
.ecsper-final-cta h2 {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--paper);
	margin-bottom: 14px;
	line-height: 1.2;
}
.ecsper-final-cta p {
	font-family: var(--bd);
	font-size: 15px;
	color: rgba(255, 255, 255, 0.75);
	max-width: 480px;
	margin: 0 auto 28px;
	line-height: 1.65;
}
.ecsper-final-cta-buttons {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}
.ecsper-btn-primary {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--blue);
	background: var(--paper);
	padding: 14px 34px;
	border-radius: 100px;
	text-decoration: none;
	transition: background-color 150ms ease;
}
.ecsper-btn-primary:hover {
	background: #f0f0f0;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-btn-secondary {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--paper);
	background: transparent;
	padding: 14px 34px;
	border-radius: 100px;
	text-decoration: none;
	border: 1.5px solid rgba(255, 255, 255, 0.4);
	transition: border-color 150ms ease;
}
.ecsper-btn-secondary:hover {
	border-color: rgba(255, 255, 255, 0.7);
	color: var(--paper);
	text-decoration: none;
}

@media (max-width: 768px) {
	.ecsper-banner {
		padding: 10px 36px;
		font-size: 12px;
	}
	.ecsper-final-cta {
		padding: 56px 24px;
	}
}

/* ── Availability tags (PRODUCT-001 Section 5) ───────────────────────────── */
.ecsper-tag {
	display: inline-block;
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 4px 14px;
	border-radius: 100px;
}
.ecsper-tag-avail {
	background: var(--green-t);
	color: var(--green);
}
.ecsper-tag-coming {
	background: var(--purple-t);
	color: var(--purple);
}
.ecsper-tag-road {
	background: var(--bg);
	color: var(--ink3);
}

/* ── Product card (OVERVIEW-001 Section 5, mockup_24) ────────────────────── */
.ecsper-product-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 36px 40px;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 32px;
	align-items: center;
	transition: border-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
}
.ecsper-product-card--dashed {
	border-style: dashed;
}
.ecsper-product-card[data-accent="blue"]:hover {
	border-color: var(--blue);
	transform: translateY(-2px);
	box-shadow: 0 12px 36px rgba(0, 67, 166, 0.06);
}
.ecsper-product-card[data-accent="warm"]:hover {
	border-color: var(--warm-text);
	transform: translateY(-2px);
	box-shadow: 0 12px 36px rgba(196, 112, 59, 0.06);
}
.ecsper-product-name-single {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(18px, 2vw, 24px);
	font-weight: 400;
	color: var(--wp--preset--color--ink, var(--ink));
	display: block;
}
.ecsper-product-card__name {
	font-family: var(--dsp);
	font-size: clamp(20px, 2.5vw, 28px);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.1;
	margin: 0 0 8px;
}
.ecsper-product-card__tag {
	margin-bottom: 10px;
}
.ecsper-product-card__desc {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink2);
	max-width: 520px;
	margin: 0 0 10px;
}
.ecsper-product-card__audience {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 500;
	color: var(--ink3);
	text-transform: uppercase;
	letter-spacing: 0.1em;
}
.ecsper-product-card__cta {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: flex-end;
}
.ecsper-product-card__btn {
	display: inline-block;
	padding: 10px 24px;
	border: 1.5px solid var(--blue);
	border-radius: 100px;
	color: var(--blue);
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	text-align: center;
	min-width: 140px;
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.ecsper-product-card[data-accent="warm"] .ecsper-product-card__btn:not(.ecsper-product-card__btn--sec) {
	border-color: var(--warm-text);
	color: var(--warm-text);
}
.ecsper-product-card[data-accent="blue"]:hover .ecsper-product-card__btn:not(.ecsper-product-card__btn--sec) {
	background: var(--blue);
	color: var(--paper);
}
.ecsper-product-card[data-accent="warm"]:hover .ecsper-product-card__btn:not(.ecsper-product-card__btn--sec) {
	background: var(--warm-text);
	color: var(--paper);
}
.ecsper-product-card__btn--sec {
	border-color: var(--line);
	color: var(--ink3);
}
.ecsper-product-card__btn--sec:hover {
	border-color: var(--blue);
	color: var(--blue);
	text-decoration: none;
}
.ecsper-product-card[data-accent="warm"] .ecsper-product-card__btn--sec:hover {
	border-color: var(--warm-text);
	color: var(--warm-text);
}
.ecsper-product-card__btn:hover {
	text-decoration: none;
}

@media (max-width: 900px) {
	.ecsper-product-card {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.ecsper-product-card__desc {
		margin-left: auto;
		margin-right: auto;
	}
	.ecsper-product-card__cta {
		align-items: center;
		margin-top: 8px;
	}
}

/* ── Challenge card (HOMEPAGE-001 Section 7, mockup_25) ──────────────────── */
.ecsper-challenge-card {
	max-width: 920px;
	margin: 0 auto;
	border: 1px solid var(--lines);
	border-left: 5px solid var(--red);
	border-radius: 4px 16px 16px 4px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(185, 28, 28, 0.05);
}
.ecsper-challenge-warning {
	background: var(--red-t);
	padding: 18px 40px;
	display: flex;
	align-items: center;
	gap: 12px;
	border-bottom: 1px solid rgba(185, 28, 28, 0.08);
}
.ecsper-challenge-warning-icon {
	font-size: 18px;
	line-height: 1;
}
.ecsper-challenge-warning-text {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--red);
}
.ecsper-challenge-body {
	background: var(--paper);
	padding: 40px 44px;
	text-align: center;
}
.ecsper-challenge-headline {
	font-family: var(--dsp);
	font-size: clamp(22px, 3vw, 30px);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.2;
	margin: 0 0 16px;
}
.ecsper-challenge-desc {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.7;
	color: var(--ink2);
	max-width: 640px;
	margin: 0 auto 24px;
}
.ecsper-challenge-consequence {
	font-family: var(--dsp);
	font-size: 17px;
	font-style: italic;
	font-weight: 400;
	line-height: 1.5;
	color: var(--ink);
	background: var(--bone);
	border-radius: 10px;
	border-left: 3px solid var(--red);
	padding: 20px 24px;
	margin: 0 auto 28px;
	max-width: 640px;
	text-align: left;
}
.ecsper-challenge-cta {
	padding-top: 28px;
	border-top: 1px solid var(--lines);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	text-align: left;
}
.ecsper-challenge-cta-text {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.35;
}
.ecsper-challenge-cta-btn {
	display: inline-block;
	background: var(--red);
	color: var(--paper);
	padding: 16px 36px;
	border-radius: 100px;
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
}
.ecsper-challenge-cta-btn:hover {
	color: var(--paper);
	text-decoration: none;
	background: #9f1919;
}

@media (max-width: 768px) {
	.ecsper-challenge-warning {
		padding: 16px 24px;
	}
	.ecsper-challenge-body {
		padding: 28px 24px;
	}
	.ecsper-challenge-cta {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}
	.ecsper-challenge-cta-btn {
		text-align: center;
	}
}

/* ── Outcome strip (PRODUCT-001 Section 8, mockup_01) ─────────────────────── */
.ecsper-outcomes {
	background: var(--ink);
	padding: 80px 24px;
}
.ecsper-outcomes-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-outcomes-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue-l);
	text-align: center;
	margin-bottom: 36px;
}
.ecsper-outcomes-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 24px;
}
.ecsper-outcome-card {
	padding: 36px 32px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 16px;
}
.ecsper-outcome-num {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: var(--blue-l);
	margin-bottom: 14px;
}
.ecsper-outcome-headline {
	font-family: var(--dsp);
	font-size: 24px;
	font-weight: 400;
	color: var(--paper);
	line-height: 1.2;
	margin: 0 0 10px;
}
.ecsper-outcome-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.55);
	line-height: 1.65;
	margin: 0;
}

@media (max-width: 900px) {
	.ecsper-outcomes-grid {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 768px) {
	.ecsper-outcomes {
		padding: 56px 24px;
	}
}

/* ── Hero-style CTA (PRODUCT-001 Section 6.1, mockup_01 .btn.btn-blue) ───── */
.ecsper-btn-hero {
	display: inline-block;
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--paper);
	background: var(--blue);
	padding: 14px 32px;
	border-radius: 100px;
	text-decoration: none;
	transition: background-color 150ms ease;
}
.ecsper-btn-hero:hover {
	background: var(--blue-d);
	color: var(--paper);
	text-decoration: none;
}

/* ── Capabilities (PRODUCT-001 Section 9, mockup_01 / mockup_03) ─────────── */
.ecsper-cap {
	background: var(--paper);
	padding: 80px 24px;
}
.ecsper-cap-inner {
	max-width: 1140px;
	margin: 0 auto;
	position: relative;
}
.ecsper-cap-radio {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ecsper-cap-top {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	width: 100%;
	gap: 24px;
	margin-bottom: 40px;
}
.ecsper-cap-top-left {
	flex: none;
	width: 100%;
}
.ecsper-cap-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-cap-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
}
.ecsper-cap--advisory .ecsper-cap-accent {
	background: var(--warm);
}
.ecsper-cap--advisory .ecsper-cap-label {
	color: var(--warm-text);
}
.ecsper-cap-tabs {
	display: flex;
	gap: 16px;
	padding-top: 0;
	justify-content: center;
}
.ecsper-cap-tab {
	padding: 10px 22px;
	border-radius: 100px;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	border: 1px solid var(--line);
	background: var(--paper);
	color: var(--ink2);
	transition: border-color 150ms ease, color 150ms ease, background-color 150ms ease;
}
.ecsper-cap-tab:hover {
	border-color: var(--blue);
	color: var(--blue);
}
.ecsper-cap-radio--std:checked ~ .ecsper-cap-top .ecsper-cap-tab--std,
.ecsper-cap-radio--prem:checked ~ .ecsper-cap-top .ecsper-cap-tab--prem {
	background: var(--blue);
	color: var(--paper);
	border-color: var(--blue);
}
.ecsper-cap-radio--std:focus-visible ~ .ecsper-cap-top .ecsper-cap-tab--std,
.ecsper-cap-radio--prem:focus-visible ~ .ecsper-cap-top .ecsper-cap-tab--prem {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
.ecsper-cap-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 40px;
}
.ecsper-cap-panel {
	display: none;
}
.ecsper-cap-radio--std:checked ~ .ecsper-cap-panel--std,
.ecsper-cap-radio--prem:checked ~ .ecsper-cap-panel--prem {
	display: block;
}
.ecsper-cap-grid {
	display: grid;
	gap: 20px;
}
.ecsper-cap-grid--2 {
	grid-template-columns: 1fr 1fr;
}
.ecsper-cap-grid--3 {
	grid-template-columns: 1fr 1fr 1fr;
}
.ecsper-cap-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 32px;
	transition: border-color 150ms ease, transform 120ms ease, box-shadow 150ms ease;
}
.ecsper-cap-card:hover {
	border-color: var(--blue);
	transform: translateY(-3px);
	box-shadow: 0 10px 28px rgba(0, 67, 166, 0.06);
}
.ecsper-cap-icon {
	width: 44px;
	height: 44px;
	border-radius: 11px;
	background: var(--blue-t);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	font-size: 18px;
}
.ecsper-cap-card-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-cap-card-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0 0 12px;
}
.ecsper-cap-tag {
	display: inline-block;
	background: var(--bg);
	padding: 3px 10px;
	border-radius: 6px;
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ink3);
}
.ecsper-cap-card--prem {
	position: relative;
	background: linear-gradient(160deg, var(--paper) 82%, var(--purple-t));
	border-color: rgba(124, 58, 237, 0.2);
}
.ecsper-cap-card--prem:hover {
	border-color: var(--purple);
	box-shadow: 0 10px 28px rgba(124, 58, 237, 0.08);
}
.ecsper-cap-card--prem .ecsper-cap-icon {
	background: var(--purple-t);
}
.ecsper-cap-prem-badge {
	position: absolute;
	top: 16px;
	right: 16px;
	background: var(--purple-t);
	color: var(--purple);
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 3px 10px;
	border-radius: 100px;
}
.ecsper-cap-tag--prem {
	background: var(--purple-t);
	color: var(--purple);
}
.ecsper-cap-ref {
	background: var(--bone);
	border: 2px solid rgba(0, 67, 166, 0.2);
	border-radius: 14px;
	padding: 32px;
	display: flex;
	flex-direction: column;
}
.ecsper-cap-ref-icon {
	width: 44px;
	height: 44px;
	border-radius: 11px;
	background: var(--blue-t);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	color: var(--blue);
	font-size: 20px;
	font-weight: 700;
}
.ecsper-cap-ref-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 16px;
}
.ecsper-cap-ref-list {
	list-style: none;
	padding: 0;
	margin: 0 0 18px;
}
.ecsper-cap-ref-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 0;
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	border-bottom: 1px solid rgba(0, 67, 166, 0.08);
}
.ecsper-cap-ref-list li:last-child {
	border-bottom: none;
}
.ecsper-cap-ref-check {
	color: var(--blue);
	font-size: 14px;
	font-weight: 700;
	flex-shrink: 0;
}
.ecsper-cap-ref-link {
	margin-top: auto;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--blue);
	cursor: pointer;
}
.ecsper-cap-ref-link::after {
	content: ' \2192';
}
.ecsper-cap-advisory {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 32px;
	align-items: start;
}
.ecsper-cap-steps {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.ecsper-cap-step {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 32px;
}
.ecsper-cap-step-num {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--warm-text);
	margin-bottom: 14px;
}
.ecsper-cap-step-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-cap-step-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0;
}
.ecsper-cap-deliverables {
	background: var(--bone);
	border-radius: 14px;
	padding: 32px 28px;
}
.ecsper-cap-deliverable {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid rgba(196, 112, 59, 0.12);
}
.ecsper-cap-deliverable:last-child {
	border-bottom: none;
}
.ecsper-cap-deliverable-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--warm);
	flex-shrink: 0;
	margin-top: 8px;
}
.ecsper-cap-deliverable-title {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin-bottom: 4px;
}
.ecsper-cap-deliverable-sub {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.55;
}
.ecsper-cap-foot {
	text-align: center;
	margin: 28px 0 0;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink3);
}
.ecsper-cap-foot a {
	color: var(--blue);
	font-weight: 500;
	text-decoration: none;
}
.ecsper-cap-foot a::after {
	content: ' \2192';
}
.ecsper-cap-foot a:hover {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.ecsper-cap-grid--3,
	.ecsper-cap-advisory {
		grid-template-columns: 1fr;
	}
	.ecsper-cap-top {
		flex-direction: column;
	}
}
@media (max-width: 768px) {
	.ecsper-cap {
		padding: 56px 24px;
	}
	.ecsper-cap-grid--2 {
		grid-template-columns: 1fr;
	}
}

/* ── Connections (PRODUCT-001 Section 10, mockup_01) ─────────────────────── */
.ecsper-conn {
	background: var(--bone);
	padding: 80px 24px;
}
.ecsper-conn-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-conn-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-conn-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 10px;
}
.ecsper-conn-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 40px;
}
.ecsper-conn-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	width: 100%;
}
.ecsper-conn-card {
	width: 100%;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 32px 28px;
}
.ecsper-conn-grid .ecsper-conn-card:last-child:nth-child(odd) {
	grid-column: 1 / -1;
	max-width: calc(50% - 12px);
	justify-self: center;
}
.ecsper-conn-ey {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 14px;
}
.ecsper-conn-title {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 10px;
}
.ecsper-conn-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0 0 14px;
}
.ecsper-conn-hl {
	font-family: var(--bd);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--ink);
	margin: 8px 0 0;
}
.ecsper-conn-items {
	margin-top: 8px;
}
.ecsper-conn-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 0;
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	border-bottom: 1px solid var(--lines);
}
.ecsper-conn-item:last-child {
	border-bottom: none;
}
.ecsper-conn-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	flex-shrink: 0;
}
.ecsper-conn-dot--blue { background: var(--blue); }
.ecsper-conn-dot--green { background: var(--green); }
.ecsper-conn-dot--purple { background: var(--purple); }
.ecsper-conn-dot--warm { background: var(--warm); }
.ecsper-conn-item-text {
	flex: 1;
}
a.ecsper-conn-item-text {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}
a.ecsper-conn-item-text:hover {
	color: var(--blue);
}
.ecsper-conn-status {
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-left: auto;
	flex-shrink: 0;
}
.ecsper-conn-status--avail { color: var(--green); }
.ecsper-conn-status--coming { color: var(--purple); }
.ecsper-conn-status--road { color: var(--ink3); }
.ecsper-conn-trust {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink2);
	text-align: center;
	margin: 32px 0 0;
	line-height: 1.6;
}
.ecsper-conn-trust a {
	color: var(--blue);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ecsper-conn-cta {
	text-align: center;
	margin-top: 40px;
}
.ecsper-conn-cta-sub {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin: 10px 0 0;
}
.ecsper-conn--advisory .ecsper-conn-accent {
	background: var(--warm);
}
.ecsper-conn--advisory .ecsper-conn-label,
.ecsper-conn--advisory .ecsper-conn-ey {
	color: var(--warm-text);
}

@media (max-width: 900px) {
	.ecsper-conn-grid {
		grid-template-columns: 1fr;
	}
	.ecsper-conn-grid .ecsper-conn-card:last-child:nth-child(odd) {
		grid-column: auto;
		max-width: none;
		justify-self: stretch;
	}
}
@media (max-width: 768px) {
	.ecsper-conn {
		padding: 56px 24px;
	}
}

/* ── Governance gap (HOMEPAGE-001 Section 8, mockup_25) ──────────────────── */
.ecsper-gap {
	background: var(--bg);
	padding: 80px 24px;
}
.ecsper-gap-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-gap-head {
	text-align: center;
	margin-bottom: 32px;
}
.ecsper-gap-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin: 0 auto 20px;
}
.ecsper-gap-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 20px;
}
.ecsper-gap-headline {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	max-width: 860px;
	margin: 0 auto 16px;
}
.ecsper-gap-lede {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.65;
	color: var(--ink2);
	text-align: center;
	max-width: 680px;
	margin: 0 auto;
}
.ecsper-gap-row {
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr;
	gap: 0;
	align-items: stretch;
	max-width: 960px;
	margin: 0 auto;
}
.ecsper-gap-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 32px 28px;
	text-align: center;
}
.ecsper-gap-num {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 700;
	color: var(--wp--preset--color--blue, var(--blue, #0043A6));
	margin-bottom: 10px;
}
.ecsper-gap-card-title {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 10px;
}
.ecsper-gap-card-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0;
}
.ecsper-gap-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 12px;
	color: var(--ink3);
	font-size: 20px;
	opacity: 0.3;
}
.ecsper-gap-punch {
	text-align: center;
	margin: 28px auto 0;
	max-width: 640px;
}
.ecsper-gap-punchline {
	font-family: var(--dsp);
	font-size: clamp(18px, 2.4vw, 24px);
	font-style: italic;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.4;
	margin: 0;
}
.ecsper-gap-sub {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 400;
	font-style: normal;
	color: var(--ink2);
	margin: 12px 0 0;
}

@media (max-width: 900px) {
	.ecsper-gap-row {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.ecsper-gap-arrow {
		transform: rotate(90deg);
		padding: 6px 0;
	}
}
@media (max-width: 768px) {
	.ecsper-gap {
		padding: 48px 24px;
	}
}

.ecsper-vh {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ecsper-btn-warm {
	display: inline-block;
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--paper);
	background: var(--warm-text);
	padding: 14px 32px;
	border-radius: 100px;
	text-decoration: none;
	transition: background-color 150ms ease;
}
.ecsper-btn-warm:hover {
	background: var(--warm-d);
	color: var(--paper);
	text-decoration: none;
}
.ecsper-btn-outline {
	display: inline-block;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--blue);
	background: transparent;
	padding: 12px 28px;
	border-radius: 100px;
	border: 1.5px solid var(--blue);
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease;
}
.ecsper-btn-outline:hover {
	background: var(--blue);
	color: var(--paper);
	text-decoration: none;
}

/* ── Product hero (PRODUCT-001 Section 7, mockup_01) ─────────────────────── */
.ecsper-phero {
	background: var(--paper);
}
.ecsper-phero-bracket {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ink3);
	margin-bottom: 16px;
}
.ecsper-phero-bracket-label {
	font-weight: 600;
	color: var(--blue);
}
.ecsper-phero-brand {
	font-family: var(--bd);
	font-size: 16px;
	font-weight: 400;
	color: var(--blue);
	margin-bottom: 4px;
}
.ecsper-phero-name {
	font-family: var(--dsp);
	font-size: clamp(42px, 5.5vw, 60px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.05;
	margin: 0 auto 6px;
	text-align: center;
}
.ecsper-phero-tm {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink3);
	vertical-align: super;
	position: relative;
	top: -0.45em;
	margin-left: 2px;
}
.ecsper-phero-tag {
	margin: 12px 0 20px;
}
.ecsper-phero-pos {
	font-family: var(--dsp);
	font-size: clamp(18px, 2.4vw, 24px);
	font-weight: 400;
	font-style: italic;
	color: var(--ink2);
	max-width: 580px;
	margin: 0 auto 14px;
	line-height: 1.4;
	text-align: center;
}
.ecsper-phero-sub {
	font-family: var(--bd);
	font-size: clamp(15px, 1.8vw, 17px);
	font-weight: 400;
	color: var(--ink3);
	max-width: 560px;
	margin: 0 auto 28px;
	line-height: 1.65;
	text-align: center;
}
.ecsper-phero-for {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}
.ecsper-phero-for-label {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink3);
}
.ecsper-phero-cap {
	display: inline-block;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--ink2);
	background: var(--bg);
	padding: 6px 16px;
	border-radius: 100px;
	border: 1px solid var(--line);
	text-decoration: none;
	transition: border-color 150ms ease, color 150ms ease, background-color 150ms ease;
}
.ecsper-phero-cap:hover {
	background: var(--blue-t);
	border-color: var(--blue);
	color: var(--blue);
	text-decoration: none;
}
.ecsper-phero-cta {
	margin-bottom: 10px;
}
.ecsper-phero-cta-sub {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 400;
	color: var(--ink3);
	margin: 0 auto;
	text-align: center;
}
.ecsper-phero--advisory .ecsper-phero-bracket-label,
.ecsper-phero--advisory .ecsper-phero-brand {
	color: var(--warm-text);
}
.ecsper-phero--advisory .ecsper-phero-cap:hover {
	background: var(--warm-t);
	border-color: var(--warm-text);
	color: var(--warm-text);
}

/* ── Product page shell (PRODUCT-001 Sections 7-12) ──────────────────────── */
.ecsper-product-page {
	display: block;
}
.ecsper-product-section {
	display: block;
}

/* ── Practice area hero (PRACTICE-AREA-001 Section 4; P6l CTO centre override) ─ */
.ecsper-ahero {
	background: var(--paper);
	text-align: center;
}
.ecsper-ahero-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 16px;
	text-align: center;
}
.ecsper-pa-coming-soon {
	margin-bottom: 16px;
}
.ecsper-ahero-tagline {
	font-family: var(--dsp);
	font-size: clamp(18px, 2.2vw, 24px);
	font-weight: 400;
	font-style: italic;
	color: var(--ink2);
	max-width: 600px;
	margin: 0 auto 16px;
	line-height: 1.4;
	text-align: center;
}
.ecsper-ahero-head {
	font-family: var(--dsp);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.1;
	margin: 0 auto 16px;
	text-align: center;
}
.ecsper-ahero-desc {
	font-family: var(--bd);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.65;
	color: var(--ink2);
	max-width: 600px;
	margin: 0 auto 28px;
	text-align: center;
}
.ecsper-ahero-cta {
	margin-bottom: 10px;
	text-align: center;
}
.ecsper-ahero-cta-sub {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 400;
	color: var(--ink3);
	margin: 0 auto;
	text-align: center;
}

/* ── Practice area page shell (PRACTICE-AREA-001 Sections 3-8) ───────────── */
.ecsper-pa-page {
	display: block;
}
.ecsper-pa-section {
	display: block;
}

/* ── Practice area challenge (PRACTICE-AREA-001 Section 5) ───────────────── */
.ecsper-ch {
	background: var(--bone);
	padding: 80px 24px;
}
.ecsper-ch-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-ch-alert-wrap {
	margin-bottom: 48px;
}
.ecsper-ch-alert-outer {
	border-left: 4px solid var(--red);
	border-radius: 0 16px 16px 0;
	overflow: hidden;
}
.ecsper-ch-alert-banner {
	background: var(--red-bg);
	padding: 16px 36px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.ecsper-ch-alert-icon {
	color: var(--red);
	font-size: 14px;
	font-weight: 700;
	flex-shrink: 0;
	line-height: 1;
}
.ecsper-ch-alert-text {
	font-family: var(--bd);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--red);
	font-weight: 600;
}
.ecsper-ch-narrative {
	background: var(--paper);
	padding: 48px 48px 44px;
	text-align: center;
}
.ecsper-ch-narrative--standalone {
	border-radius: 0 16px 16px 0;
	margin-bottom: 48px;
}
.ecsper-ch-narrative-label {
	font-family: var(--bd);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--red);
	font-weight: 600;
	margin-bottom: 20px;
}
.ecsper-ch-narrative-head {
	font-family: var(--dsp);
	font-size: clamp(22px, 2.8vw, 32px);
	color: var(--ink);
	margin: 0 auto 20px;
	font-weight: 400;
	line-height: 1.2;
	max-width: 680px;
}
.ecsper-ch-narrative-para {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink2);
	line-height: 1.65;
	max-width: 640px;
	margin: 0 auto 28px;
	text-align: center;
}
.ecsper-ch-callout {
	max-width: 640px;
	margin: 0 auto 32px;
	display: flex;
	gap: 0;
}
.ecsper-ch-callout-bar {
	width: 3px;
	background: var(--red);
	border-radius: 2px;
	flex-shrink: 0;
}
.ecsper-ch-callout-text {
	background: var(--bone);
	padding: 18px 24px;
	border-radius: 0 10px 10px 0;
	font-family: var(--dsp);
	font-size: 15px;
	color: var(--ink);
	font-style: italic;
	line-height: 1.5;
	text-align: left;
	flex: 1;
}
.ecsper-ch-narrative-cta {
	border-top: 1px solid var(--line);
	padding-top: 28px;
	max-width: 640px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}
.ecsper-ch-narrative-cta-text {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink);
	text-align: left;
}
.ecsper-btn-red {
	background: var(--red);
	color: var(--paper);
	padding: 14px 32px;
	border-radius: 100px;
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	display: inline-block;
	text-decoration: none;
	border: none;
	transition: background-color 150ms ease, color 150ms ease;
}
.ecsper-btn-red:hover {
	background: #991B1B;
	color: var(--paper);
	text-decoration: none;
}
.ecsper-ch-cards {
	margin-top: 0;
}
.ecsper-ch-cards .ecsper-ch-head {
	margin-top: 0;
}
.ecsper-ch-accent {
	width: 48px;
	height: 3px;
	background: var(--warm);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-ch-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--warm-text);
	margin-bottom: 16px;
}
.ecsper-ch-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.2;
	margin: 0 0 32px;
}
.ecsper-ch-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.ecsper-ch-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 32px;
}
.ecsper-ch-card-num {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	color: var(--warm-text);
	margin-bottom: 10px;
}
.ecsper-ch-card-head {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.25;
	margin: 0 0 12px;
}
.ecsper-ch-card-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0 0 14px;
}
.ecsper-ch-card-ref {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 500;
	font-style: italic;
	color: var(--ink3);
	margin: 0;
}
.ecsper-ch-cta {
	margin-top: 32px;
}
.ecsper-ch-cta-btn {
	display: inline-block;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--blue);
	background: transparent;
	padding: 12px 28px;
	border-radius: 100px;
	border: 1.5px solid var(--blue);
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease;
}
.ecsper-ch-cta-btn:hover {
	background: var(--blue);
	color: var(--paper);
	text-decoration: none;
}

/* ── Practice area delivers (PRACTICE-AREA-001 Section 6.2) ──────────────── */
.ecsper-delivers {
	background: var(--paper);
	padding: 80px 24px;
}
.ecsper-delivers-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-delivers-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-delivers-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 16px;
}
.ecsper-delivers-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.2;
	margin: 0 0 32px;
}
.ecsper-delivers-grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 24px;
	align-items: stretch;
	margin-bottom: 40px;
}
.ecsper-delivers-grid > * {
	min-width: 0;
	overflow: hidden;
}
.ecsper-delivers-advisory {
	min-width: 0;
}
.ecsper-delivers-platform {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 20px;
	min-width: 0;
}
.ecsper-dcard {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: border-color 150ms ease;
}
.ecsper-dcard:hover {
	border-color: var(--blue);
}
.ecsper-dcard--dashed {
	border-style: dashed;
}
.ecsper-dcard-brand {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 400;
	margin-bottom: 2px;
}
.ecsper-dcard--blue .ecsper-dcard-brand,
.ecsper-dcard--blue .ecsper-dcard-link {
	color: var(--blue);
}
.ecsper-dcard--warm .ecsper-dcard-brand,
.ecsper-dcard--warm .ecsper-dcard-link {
	color: var(--warm-text);
}
.ecsper-dcard-name {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.2;
	margin: 0 0 8px;
}
.ecsper-dcard-tm {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 400;
	color: var(--ink3);
	vertical-align: super;
	position: relative;
	top: -0.35em;
	margin-left: 2px;
}
.ecsper-dcard-tag {
	margin: 0 0 12px;
}
.ecsper-dcard-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0 0 16px;
}
.ecsper-dcard-link {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	margin-top: auto;
}
.ecsper-dcard-link:hover {
	text-decoration: underline;
}

/* ── Related practices (PRACTICE-AREA-001 Section 7.2) ───────────────────── */
.ecsper-pa-section--social-proof:has(+ .ecsper-pa-section--related) .ecsper-sp {
	padding-bottom: 0;
}
.ecsper-related {
	background: var(--paper);
	padding: 80px 24px;
}
.ecsper-related-inner {
	max-width: 1140px;
	margin: 0 auto;
	padding-top: 0;
	border-top: 0;
}
.ecsper-related-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 16px;
	text-align: center;
}
.ecsper-related-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.2;
	margin: 0 0 24px;
	text-align: center;
}
.ecsper-related-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.ecsper-related-card {
	display: block;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
	text-decoration: none;
	position: relative;
	overflow: hidden;
	transition: border-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
}
.ecsper-related-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--blue);
	opacity: 0;
	transition: opacity 150ms ease;
}
.ecsper-related-card:hover {
	border-color: var(--blue);
	transform: translateY(-3px);
	box-shadow: 0 10px 28px rgba(0, 67, 166, 0.06);
	text-decoration: none;
}
.ecsper-related-card:hover::before {
	opacity: 1;
}
.ecsper-related-grp {
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--ink3);
	margin-bottom: 10px;
}
.ecsper-related-name {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-related-desc {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--ink2);
	margin: 0;
}

/* ── Homepage hero (HOMEPAGE-001 Section 5, mockup_25, P13a Bone) ───────── */
.ecsper-hhero {
	background: var(--paper);
}
.ecsper-hhero--bone {
	background: var(--bone);
}
.ecsper-hhero-head {
	font-family: var(--dsp);
	font-size: clamp(32px, 4.6vw, 56px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	line-height: 1.06;
	max-width: 740px;
	margin: 0 auto 24px;
}
.ecsper-hhero-sub {
	font-family: var(--bd);
	font-size: clamp(16px, 2vw, 18px);
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink2);
	max-width: 640px;
	margin: 0 auto 12px;
	text-align: center;
}
.ecsper-hhero-support {
	font-family: var(--bd);
	font-size: clamp(14px, 1.8vw, 16px);
	font-weight: 400;
	line-height: 1.55;
	color: var(--ink3);
	max-width: 560px;
	margin: 0 auto 28px;
	text-align: center;
}
.ecsper-hhero-for-label {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin-bottom: 14px;
}
.ecsper-hhero-caps {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 32px;
}
.ecsper-hhero-cap {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 500;
	color: var(--ink3);
	background: var(--bg);
	padding: 6px 16px;
	border-radius: 100px;
	border: 1px solid var(--lines);
	text-decoration: none;
	transition: border-color 150ms ease, color 150ms ease;
}
.ecsper-hhero-cap:hover {
	border-color: var(--blue);
	color: var(--blue);
	text-decoration: none;
}
.ecsper-hhero-ctas {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
}

/* ── Social proof slider (PRODUCT-001 §11, HOMEPAGE-001 §11) ─────────────── */
.ecsper-sp {
	padding: 80px 24px;
}
.ecsper-sp--paper {
	background: var(--paper);
}
.ecsper-sp--bone {
	background: var(--bone);
}
.ecsper-sp-wrap {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-sp-accent {
	width: 48px;
	height: 3px;
	background: var(--warm);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-sp-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--warm-text);
	margin-bottom: 10px;
}
.ecsper-sp-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	margin: 0 0 32px;
}
.ecsper-sp-slider {
	position: relative;
}
.ecsper-sp-radio {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ecsper-sp-viewport {
	container-type: inline-size;
	overflow: hidden;
	scroll-snap-type: x mandatory;
}
.ecsper-sp-track {
	display: flex;
	gap: 20px;
	width: max-content;
	transition: transform 0.35s ease;
}
.ecsper-sp-card {
	box-sizing: border-box;
	flex: 0 0 calc((100cqi - 20px) / 2);
	scroll-snap-align: start;
	border-radius: 14px;
	padding: 32px;
	position: relative;
}
.ecsper-sp-card::before {
	content: '\201C';
	font-family: var(--dsp);
	font-size: 48px;
	line-height: 1;
	opacity: 0.2;
	position: absolute;
	top: 8px;
	left: 22px;
}
.ecsper-sp-card--customer {
	background: var(--warm-t);
	border: 1px solid rgba(196, 112, 59, 0.15);
}
.ecsper-sp-card--customer::before {
	color: var(--warm-text);
}
.ecsper-sp-card--advisor {
	background: var(--paper);
	border: 1px solid var(--line);
}
.ecsper-sp-card--advisor::before {
	color: var(--blue);
}
.ecsper-sp-card-label {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 10px;
	padding-top: 16px;
}
.ecsper-sp-card-label--warm {
	color: var(--warm-text);
}
.ecsper-sp-card-label--blue {
	color: var(--blue);
}
.ecsper-sp-quote {
	font-family: var(--dsp);
	font-size: 17px;
	font-weight: 400;
	font-style: italic;
	line-height: 1.5;
	color: var(--ink);
	margin: 0 0 18px;
}
.ecsper-sp-attr {
	display: flex;
	align-items: center;
	gap: 12px;
}
.ecsper-sp-av {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	flex-shrink: 0;
}
.ecsper-sp-av--warm {
	background: linear-gradient(135deg, var(--warm-t), rgba(196, 112, 59, 0.15));
	color: var(--warm-text);
}
.ecsper-sp-av--blue {
	background: linear-gradient(135deg, var(--blue-t), #d4e4f7);
	color: var(--blue);
}
.ecsper-sp-name {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
}
.ecsper-sp-role {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 400;
	color: var(--ink3);
}
.ecsper-sp-arrows {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 24px;
}
.ecsper-sp-arrow {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--line);
	background: var(--paper);
	color: var(--ink3);
	font-size: 16px;
	display: none;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.ecsper-sp-arrow:hover {
	border-color: var(--blue);
	color: var(--blue);
}
.ecsper-sp-radio:nth-of-type(1):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(0); }
.ecsper-sp-radio:nth-of-type(2):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-50cqi - 10px)); }
.ecsper-sp-radio:nth-of-type(3):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-100cqi - 20px)); }
.ecsper-sp-radio:nth-of-type(4):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-150cqi - 30px)); }
.ecsper-sp-radio:nth-of-type(5):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-200cqi - 40px)); }
.ecsper-sp-radio:nth-of-type(6):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-250cqi - 50px)); }
.ecsper-sp-radio:nth-of-type(7):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-300cqi - 60px)); }
.ecsper-sp-radio:nth-of-type(8):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-350cqi - 70px)); }
.ecsper-sp-radio:nth-of-type(1):checked ~ .ecsper-sp-arrows .ecsper-sp-from-0,
.ecsper-sp-radio:nth-of-type(2):checked ~ .ecsper-sp-arrows .ecsper-sp-from-1,
.ecsper-sp-radio:nth-of-type(3):checked ~ .ecsper-sp-arrows .ecsper-sp-from-2,
.ecsper-sp-radio:nth-of-type(4):checked ~ .ecsper-sp-arrows .ecsper-sp-from-3,
.ecsper-sp-radio:nth-of-type(5):checked ~ .ecsper-sp-arrows .ecsper-sp-from-4,
.ecsper-sp-radio:nth-of-type(6):checked ~ .ecsper-sp-arrows .ecsper-sp-from-5,
.ecsper-sp-radio:nth-of-type(7):checked ~ .ecsper-sp-arrows .ecsper-sp-from-6,
.ecsper-sp-radio:nth-of-type(8):checked ~ .ecsper-sp-arrows .ecsper-sp-from-7 {
	display: flex;
}

/* ── Partners strip (HOMEPAGE-001 Section 6, mockup_25) ──────────────────── */
.ecsper-partners {
	background: var(--paper);
	padding: 36px 24px;
	text-align: center;
	border-bottom: 1px solid var(--lines);
}
.ecsper-partners-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-partners-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ink3);
	margin-bottom: 20px;
}
.ecsper-partners-logos {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 48px;
	flex-wrap: wrap;
}
.ecsper-partners-logo,
.ecsper-partner-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	color: var(--ink2);
	text-decoration: none;
}
.ecsper-partners-logo a,
.ecsper-partner-item {
	color: inherit;
	text-decoration: none;
}
.ecsper-partners-img,
.ecsper-partner-logo {
	display: block;
	height: 60px;
	width: auto;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.7;
	transition: filter 0.2s ease, opacity 0.2s ease;
}
.ecsper-partner-item:hover .ecsper-partner-logo,
.ecsper-partners-logo:hover .ecsper-partner-logo,
.ecsper-partners-img:hover,
.ecsper-partner-logo:hover {
	filter: grayscale(0%);
	opacity: 1;
}
.ecsper-home-partners .ecsper-partner-logo {
	height: 120px;
}
.ecsper-partner-name {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	color: var(--ink2);
}

/* ── Resources strip (HOMEPAGE-001 Section 12, mockup_25) ────────────────── */
.ecsper-res {
	background: var(--bg);
	padding: 80px 24px;
}
.ecsper-res-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-res-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-res-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 20px;
}
.ecsper-res-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	margin: 0 0 36px;
}
.ecsper-res-grid {
	display: grid;
	gap: 24px;
}
.ecsper-res-grid--3 {
	grid-template-columns: 1fr 1fr 1fr;
}
.ecsper-res-grid--2 {
	grid-template-columns: 1fr 1fr;
}
.ecsper-res-grid--1 {
	grid-template-columns: 1fr;
}
.ecsper-res-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
}
.ecsper-res-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--lines);
}
.ecsper-res-item {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 16px;
	text-decoration: none;
	padding: 10px 0;
	border-bottom: 1px solid var(--lines);
}
.ecsper-res-item:hover {
	text-decoration: none;
}
.ecsper-res-item-type {
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ink3);
	margin-bottom: 3px;
}
.ecsper-res-item-name {
	font-family: var(--dsp);
	font-size: 15px;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.3;
}
.ecsper-res-item-meta {
	font-family: var(--bd);
	font-size: 12px;
	color: var(--ink3);
	margin-top: 3px;
}
.ecsper-res-event {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
.ecsper-res-date {
	text-align: center;
	background: var(--blue-t);
	border-radius: 8px;
	padding: 8px 12px;
	min-width: 44px;
	flex-shrink: 0;
}
.ecsper-res-date-day {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--blue);
	line-height: 1;
}
.ecsper-res-date-mon {
	font-family: var(--bd);
	font-size: 8px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--blue);
}
.ecsper-res-foot {
	margin-top: auto;
	padding-top: 14px;
}
.ecsper-res-link {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-res-link::after {
	content: ' \2192';
}
.ecsper-res-link:hover {
	text-decoration: underline;
}

/* Full-width page shells. Sections own their max-width (HOMEPAGE-001). */
main.wp-block-group.alignfull {
	gap: 0;
	padding: 0;
	width: 100%;
	max-width: none;
}

/* ── Homepage delivers + trust (HOMEPAGE-001 §§9-10, mockup_25) ─────────── */
.ecsper-home-challenge {
	background: var(--bone);
	padding: 80px 24px;
}
.ecsper-home-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-home-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 20px;
}
.ecsper-home-headline {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	letter-spacing: normal;
	color: var(--ink);
	margin: 0;
}
.ecsper-home-delivers {
	background: var(--paper);
	padding: 80px 24px;
}
.ecsper-home-delivers-inner,
.ecsper-home-trust-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-home-trust-inner {
	text-align: center;
}
.ecsper-home-delivers-grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 20px;
	margin-top: 36px;
}
.ecsper-home-delivers-card {
	border-radius: 16px;
	padding: 36px 32px;
	display: flex;
	flex-direction: column;
}
.ecsper-home-delivers-card--advisory {
	background: var(--warm-t);
	border: 1px solid rgba(196, 112, 59, 0.15);
}
.ecsper-home-delivers-card--platform {
	background: var(--paper);
	border: 2px solid var(--blue);
}
.ecsper-home-delivers-brand {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	margin-bottom: 4px;
}
.ecsper-home-delivers-brand--warm {
	color: var(--warm-text);
}
.ecsper-home-delivers-brand--blue {
	color: var(--blue);
}
.ecsper-home-delivers-name {
	font-family: var(--bd);
	font-size: clamp(28px, 3.2vw, 36px);
	font-weight: 700;
	line-height: 1.08;
	color: var(--ink);
	margin-bottom: 14px;
}
.ecsper-home-delivers-tag {
	margin-bottom: 14px;
}
.ecsper-home-delivers-desc {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0 0 20px;
	flex: 1;
}
.ecsper-home-link {
	display: inline-block;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-home-link::after {
	content: ' \2192';
}
.ecsper-home-link--warm {
	color: var(--warm-text);
}
.ecsper-home-trust-card .ecsper-home-link {
	margin-top: 14px;
	font-size: 13px;
}
.ecsper-home-trust {
	background: var(--bg);
	padding: 80px 24px;
}
.ecsper-home-trust-sub {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 400;
	color: var(--ink2);
	max-width: 560px;
	margin: 0 auto 36px;
}
.ecsper-home-trust .ecsper-home-headline {
	margin-bottom: 16px;
}
.ecsper-home-trust-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 20px;
}
.ecsper-home-trust-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 32px 28px;
	text-decoration: none;
	color: inherit;
	display: block;
	transition: border-color 150ms ease;
}
.ecsper-home-trust-card:hover {
	border-color: var(--blue);
	text-decoration: none;
	color: inherit;
}
.ecsper-home-trust-label {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	color: var(--blue);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin-bottom: 12px;
}
.ecsper-home-trust-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-home-trust-desc {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--ink2);
	margin: 0;
}

@media (min-width: 769px) {
	.ecsper-sp-arrows--mob {
		display: none;
	}
	.ecsper-sp--lt3 .ecsper-sp-arrows--desk {
		display: none;
	}
}
@media (max-width: 900px) {
	.ecsper-res-grid--3,
	.ecsper-res-grid--2,
	.ecsper-res-grid--1 {
		grid-template-columns: 1fr;
	}
	.ecsper-home-delivers-grid,
	.ecsper-home-trust-grid {
		grid-template-columns: 1fr;
	}
	.ecsper-ch-grid,
	.ecsper-delivers-grid,
	.ecsper-delivers-platform,
	.ecsper-related-grid {
		grid-template-columns: 1fr;
	}
	.ecsper-ch-narrative {
		padding: 32px 24px 28px;
	}
	.ecsper-ch-alert-banner {
		padding: 16px 24px;
	}
	.ecsper-ch-narrative-cta {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}
	.ecsper-ch-narrative-cta-text {
		text-align: center;
	}
}
@media (max-width: 768px) {
	.ecsper-ch,
	.ecsper-delivers {
		padding: 56px 24px;
	}
	.ecsper-related {
		padding: 56px 20px;
	}
	.ecsper-sp,
	.ecsper-res {
		padding: 56px 24px;
	}
	.ecsper-sp-card {
		flex: 0 0 100cqi;
	}
	.ecsper-sp-radio:nth-of-type(2):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-100cqi - 20px)); }
	.ecsper-sp-radio:nth-of-type(3):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-200cqi - 40px)); }
	.ecsper-sp-radio:nth-of-type(4):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-300cqi - 60px)); }
	.ecsper-sp-radio:nth-of-type(5):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-400cqi - 80px)); }
	.ecsper-sp-radio:nth-of-type(6):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-500cqi - 100px)); }
	.ecsper-sp-radio:nth-of-type(7):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-600cqi - 120px)); }
	.ecsper-sp-radio:nth-of-type(8):checked ~ .ecsper-sp-viewport .ecsper-sp-track { transform: translateX(calc(-700cqi - 140px)); }
	.ecsper-sp-arrows--desk {
		display: none;
	}
	.ecsper-sp--lt2 .ecsper-sp-arrows--mob {
		display: none;
	}
	.ecsper-partners-logos {
		gap: 28px;
	}
	.ecsper-home-delivers,
	.ecsper-home-trust {
		padding: 56px 24px;
	}
}
/* ── Overview page (OVERVIEW-001 Sections 4 to 10, mockup_24) ───────────── */
.ecsper-overview-page--advisory .ecsper-btn-hero {
	background: var(--warm-text);
}
.ecsper-overview-page--advisory .ecsper-btn-hero:hover {
	background: var(--warm-d);
}
.ecsper-ov-section {
	display: block;
}
.ecsper-ov-sec {
	background: var(--paper);
	padding: 80px 24px;
}
.ecsper-ov-sec--bone {
	background: var(--bone);
}
.ecsper-ov-sec--bg {
	background: var(--bg);
}
.ecsper-ov-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-ov-accent {
	width: 48px;
	height: 3px;
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-ov-accent--blue { background: var(--blue); }
.ecsper-ov-accent--warm { background: var(--warm); }
.ecsper-ov-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	margin-bottom: 20px;
}
.ecsper-ov-label--blue { color: var(--blue); }
.ecsper-ov-label--warm { color: var(--warm-text); }
.ecsper-ov-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 10px;
	letter-spacing: normal;
}
.ecsper-ov-sub {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink2);
	max-width: 600px;
	margin: 0;
}
#catalogue {
	scroll-margin-top: 80px;
}
.ecsper-ov-cat {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ink3);
	margin-top: 40px;
	margin-bottom: 16px;
}
.ecsper-ov-cat-sub {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 400;
	color: var(--ink3);
	margin: 0 0 20px;
}
.ecsper-ov-cards {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.ecsper-ov-cat + .ecsper-ov-cards {
	margin-top: 0;
}
.ecsper-ov-sub + .ecsper-ov-cards,
.ecsper-ov-sub + .ecsper-ov-cat,
.ecsper-ov-sub + .ecsper-catalogue-with-index {
	margin-top: 40px;
}
.ecsper-catalogue-with-index {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}
.ecsper-product-index {
	position: sticky;
	top: 120px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ecsper-product-index-item {
	color: var(--ink3);
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
	transition: color 0.2s;
}
.ecsper-product-index-item:hover,
.ecsper-product-index-item.is-active {
	color: var(--blue);
}
.ecsper-product-index-item.is-active {
	font-weight: 600;
}
.ecsper-ov-product {
	scroll-margin-top: 100px;
}

.ecsper-bespoke {
	background: var(--bone);
	border: 2px dashed rgba(0, 67, 166, 0.2);
	border-radius: 14px;
	padding: 36px;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 32px;
	align-items: center;
	margin-top: 16px;
}
.ecsper-bespoke--warm {
	border-color: rgba(196, 112, 59, 0.25);
}
.ecsper-bespoke__title {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-bespoke__desc {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink2);
	max-width: 520px;
	margin: 0;
}
.ecsper-bespoke__btn {
	display: inline-block;
	padding: 10px 24px;
	border: 1.5px solid var(--blue);
	border-radius: 100px;
	color: var(--blue);
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	text-align: center;
	min-width: 140px;
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease;
}
.ecsper-bespoke__btn:hover {
	background: var(--blue);
	color: var(--paper);
	text-decoration: none;
}

.ecsper-roadmap {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 20px;
	margin-top: 32px;
}
.ecsper-roadmap-col {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 28px 24px;
}
.ecsper-roadmap-head {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 20px;
}
.ecsper-roadmap-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}
.ecsper-roadmap-dot--avail { background: var(--green); }
.ecsper-roadmap-dot--coming { background: var(--purple); }
.ecsper-roadmap-dot--road { background: var(--ink3); }
.ecsper-roadmap-label {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
}
.ecsper-roadmap-label--avail { color: var(--green); }
.ecsper-roadmap-label--coming { color: var(--purple); }
.ecsper-roadmap-label--road { color: var(--ink3); }
.ecsper-roadmap-item {
	padding: 12px 0;
	border-top: 1px solid var(--lines);
}
.ecsper-roadmap-name {
	display: block;
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin-bottom: 2px;
	text-decoration: none;
}
a.ecsper-roadmap-name:hover {
	color: var(--blue);
	text-decoration: none;
}
.ecsper-roadmap-sub {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
}

.ecsper-pillars {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin-top: 32px;
	margin-bottom: 24px;
}
.ecsper-pillar {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 28px;
}
.ecsper-pillar-num {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	color: var(--blue-l);
	margin-bottom: 10px;
}
.ecsper-pillar-name {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.2;
	margin: 0 0 8px;
}
.ecsper-pillar-desc {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--ink2);
	margin: 0;
}
.ecsper-pillars-footer {
	text-align: center;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink3);
	margin: 0;
}
.ecsper-pillars-footer a {
	color: var(--blue);
	font-weight: 500;
	text-decoration: none;
}
.ecsper-pillars-footer a:hover {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.ecsper-catalogue-with-index {
		grid-template-columns: 1fr;
	}
	.ecsper-product-index {
		display: none;
	}
	.ecsper-bespoke {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.ecsper-bespoke__desc {
		margin-left: auto;
		margin-right: auto;
	}
	.ecsper-bespoke__cta {
		justify-self: center;
	}
	.ecsper-roadmap {
		grid-template-columns: 1fr;
	}
	.ecsper-pillars {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 768px) {
	.ecsper-ov-sec {
		padding: 56px 24px;
	}
	.ecsper-pillars {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.ecsper-hhero-head {
		font-size: 32px;
	}
	.ecsper-hhero-caps {
		gap: 6px;
	}
	.ecsper-hhero-cap {
		font-size: 11px;
		padding: 5px 12px;
	}
}

/* ── Shared resources hero (TRUST-001 §4, RESOURCES-001 §3-5) ─────────────── */
.ecsper-rhero {
	background: var(--paper);
	text-align: center;
}
.ecsper-rhero-bracket {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ink3);
	margin-bottom: 18px;
}
.ecsper-rhero-bracket-label {
	font-weight: 600;
	color: var(--blue);
}
.ecsper-rhero-head {
	font-family: var(--dsp);
	font-size: clamp(30px, 4vw, 44px);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.15;
	margin: 0 auto 16px;
	text-align: center;
}
.ecsper-rhero-pos {
	font-family: var(--dsp);
	font-size: clamp(17px, 2.2vw, 20px);
	font-weight: 400;
	font-style: italic;
	color: var(--ink2);
	max-width: 560px;
	margin: 0 auto 20px;
	line-height: 1.45;
}
.ecsper-rhero-desc {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink3);
	max-width: 520px;
	margin: 0 auto 28px;
	line-height: 1.65;
}
.ecsper-rhero-desc a,
.ecsper-forum-why-text a {
	color: var(--blue);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ecsper-rhero-nav {
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
}
.ecsper-btn-hero-outline {
	display: inline-block;
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--blue);
	background: transparent;
	padding: 14px 36px;
	border-radius: 100px;
	border: 1.5px solid var(--blue);
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease;
}
.ecsper-btn-hero-outline:hover {
	background: var(--blue-t);
	color: var(--blue);
	text-decoration: none;
}

/* ── Shared section furniture ────────────────────────────────────────────── */
.ecsper-trust-sec {
	padding: 80px 24px;
}
.ecsper-trust-sec--bg { background: var(--bg); }
.ecsper-trust-sec--paper { background: var(--paper); }
.ecsper-trust-sec--bone { background: var(--bone); }
.ecsper-trust-sec--extend { padding-bottom: 0; }
.ecsper-trust-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-trust-inner--centre { text-align: center; }
.ecsper-trust-inner--narrow { max-width: 800px; }
.ecsper-trust-accent {
	width: 48px;
	height: 3px;
	border-radius: 2px;
	background: var(--blue);
	margin-bottom: 14px;
}
.ecsper-trust-accent--green { background: var(--green); }
.ecsper-trust-accent--centre { margin-left: auto; margin-right: auto; }
.ecsper-trust-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 10px;
}
.ecsper-trust-label--green { color: var(--green); }
.ecsper-trust-label--centre { text-align: center; }
.ecsper-trust-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 12px;
	line-height: 1.2;
	text-align: center;
}
.ecsper-trust-head--centre { text-align: center; }
.ecsper-trust-sub {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink2);
	max-width: 600px;
	line-height: 1.65;
	margin: 0 0 40px;
}
.ecsper-trust-inner--centre .ecsper-trust-sub {
	margin-left: auto;
	margin-right: auto;
}

/* Temple visual (TRUST-001 §5.1) */
.ecsper-temple {
	max-width: 800px;
	margin: 0 auto 48px;
}
.ecsper-temple-capstone {
	background: var(--blue);
	border-radius: 8px 8px 0 0;
	padding: 16px 28px;
	margin: 0 32px;
	position: relative;
}
.ecsper-temple-capstone::before {
	content: '';
	position: absolute;
	top: -18px;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 70px solid transparent;
	border-right: 70px solid transparent;
	border-bottom: 18px solid var(--blue);
}
.ecsper-temple-cap-label {
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue-l);
	margin-bottom: 2px;
}
.ecsper-temple-cap-name {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--paper);
}
.ecsper-temple-entablature {
	background: var(--blue-d);
	padding: 8px 28px;
	margin: 0 32px;
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.5);
	text-transform: uppercase;
	letter-spacing: 0.18em;
}
.ecsper-temple-pillars {
	display: flex;
	gap: 0;
	margin: 0 32px;
	background: var(--paper);
}
.ecsper-temple-pillar {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 24px 6px 20px;
	border-left: 1px solid var(--lines);
	position: relative;
}
.ecsper-temple-pillar:last-child { border-right: 1px solid var(--lines); }
.ecsper-temple-pillar::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 32px;
	background: linear-gradient(180deg, var(--blue-t) 0%, rgba(238, 244, 255, 0.2) 100%);
	z-index: 0;
}
.ecsper-temple-pnum {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	color: var(--blue);
	letter-spacing: 0.16em;
	position: relative;
	z-index: 1;
	margin-bottom: 6px;
}
.ecsper-temple-pname {
	font-family: var(--dsp);
	font-size: 13px;
	font-weight: 400;
	color: var(--ink);
	position: relative;
	z-index: 1;
	line-height: 1.25;
}
.ecsper-temple-foundation {
	background: var(--ink);
	padding: 10px 28px;
	margin: 0 32px;
	border-radius: 0 0 6px 6px;
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.45);
	text-transform: uppercase;
	letter-spacing: 0.16em;
}
.ecsper-pillar-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	max-width: 800px;
	margin: 0 auto;
	text-align: left;
}
.ecsper-pillar-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
}
.ecsper-pillar-card--full { grid-column: 1 / -1; }
.ecsper-pillar-number,
.ecsper-pillar-card-num {
	background: none;
	color: var(--wp--preset--color--blue, var(--blue));
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 18px;
	font-weight: 700;
	padding: 0;
	border-radius: 0;
	width: auto;
	height: auto;
	display: inline;
	letter-spacing: 0;
	margin: 0 8px 0 0;
}
.ecsper-pillar-title,
.ecsper-pillar-card-name {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 10px;
}
.ecsper-pillar-card-desc {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0;
}

/* Infrastructure (TRUST-001 §6) */
.ecsper-infra-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 32px;
}
.ecsper-infra-card {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 28px;
}
.ecsper-mono-icon {
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	margin-bottom: 14px;
	background: var(--blue-t);
	color: var(--blue);
	flex-shrink: 0;
}
.ecsper-mono-icon svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}
.ecsper-mono-icon--centre { margin-left: auto; margin-right: auto; }
.ecsper-infra-title {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-infra-desc {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0;
}
.ecsper-partner-strip {
	background: var(--blue-t);
	border: 1px solid rgba(0, 67, 166, 0.1);
	border-radius: 12px;
	padding: 24px 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 48px;
	flex-wrap: wrap;
}
.ecsper-partner-name {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	color: var(--blue);
}
.ecsper-partner-sub {
	font-family: var(--bd);
	font-size: 11px;
	color: var(--ink3);
}

/* Extensibility (TRUST-001 §7) */
.ecsper-extend-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 20px;
	margin-bottom: 32px;
}
.ecsper-extend-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 28px;
	text-align: center;
}
.ecsper-extend-title {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-extend-desc {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0;
}
.ecsper-extend-quote {
	font-family: var(--dsp);
	font-size: clamp(17px, 2.2vw, 22px);
	font-weight: 400;
	font-style: italic;
	color: var(--ink);
	text-align: center;
	max-width: 580px;
	margin: 0 auto;
	line-height: 1.4;
}

/* Inline part CTAs (TRUST-001 §8) */
.ecsper-inline-cta {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 36px 32px;
}
.ecsper-trust-sec--extend .ecsper-inline-cta {
	margin-top: 0;
	margin-bottom: 72px;
}
.ecsper-trust-sec--paper .ecsper-inline-cta {
	margin-top: 0;
	margin-bottom: 0;
	margin-top: 40px;
}
.ecsper-inline-cta--paper { background: var(--paper); }
.ecsper-inline-cta--bg { background: var(--bg); }
.ecsper-inline-cta-head {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 10px;
}
.ecsper-inline-cta-desc {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink2);
	margin: 0 0 20px;
	line-height: 1.6;
}
.ecsper-inline-cta-btn {
	display: inline-block;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--paper);
	background: var(--blue);
	padding: 12px 32px;
	border-radius: 100px;
	text-decoration: none;
}
.ecsper-inline-cta-btn:hover {
	background: var(--blue-d);
	color: var(--paper);
	text-decoration: none;
}

.ecsper-trust-divider {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 32px;
}
.ecsper-trust-divider-line {
	border: none;
	border-top: 1px solid var(--line);
}

/* Standards (TRUST-001 §9) */
.ecsper-std-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
	margin-bottom: 32px;
}
.ecsper-std-card {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
}
.ecsper-std-badge {
	display: inline-block;
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 4px 14px;
	border-radius: 100px;
	margin-bottom: 12px;
}
.ecsper-std-badge--active { background: var(--green-t); color: var(--green); }
.ecsper-std-badge--progress { background: var(--blue-t); color: var(--blue); }
.ecsper-std-badge--planned { background: var(--bg); color: var(--ink3); border: 1px solid var(--line); }
.ecsper-std-name {
	font-family: var(--dsp);
	font-size: 17px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 6px;
}
.ecsper-std-desc {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.55;
	margin: 0;
}
.ecsper-vanta {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px 28px;
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}
.ecsper-vanta-title {
	font-family: var(--dsp);
	font-size: 17px;
	font-weight: 400;
	color: var(--ink);
	margin-bottom: 4px;
}
.ecsper-vanta-desc {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.55;
	margin: 0;
}
.ecsper-vanta-link {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
	white-space: nowrap;
}
.ecsper-vanta-link:hover { text-decoration: underline; }

/* Toolkit assessments (RESOURCES-001 §3.2) */
.ecsper-tk-assess {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-tk-acard {
	border-radius: 14px;
	padding: 32px;
}
.ecsper-tk-acard--primary {
	background: var(--ink);
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 32px;
	align-items: center;
}
.ecsper-tk-acard--secondary {
	background: var(--paper);
	border: 1px solid var(--line);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 28px;
}
.ecsper-tk-acard--future {
	background: var(--paper);
	border: 1px dashed var(--line);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 28px;
	opacity: 0.7;
}
.ecsper-tk-acard-label {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	margin-bottom: 10px;
}
.ecsper-tk-acard--primary .ecsper-tk-acard-label { color: var(--green); }
.ecsper-tk-acard--secondary .ecsper-tk-acard-label { color: var(--blue); }
.ecsper-tk-acard--future .ecsper-tk-acard-label { color: var(--ink3); }
.ecsper-tk-acard-title {
	font-family: var(--dsp);
	font-weight: 400;
	margin: 0 0 8px;
	line-height: 1.2;
}
.ecsper-tk-acard--primary .ecsper-tk-acard-title { font-size: 24px; color: var(--paper); }
.ecsper-tk-acard--secondary .ecsper-tk-acard-title,
.ecsper-tk-acard--future .ecsper-tk-acard-title { font-size: 20px; color: var(--ink); }
.ecsper-tk-acard-desc {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 16px;
}
.ecsper-tk-acard--primary .ecsper-tk-acard-desc { color: rgba(255, 255, 255, 0.5); }
.ecsper-tk-acard--secondary .ecsper-tk-acard-desc { font-size: 13px; color: var(--ink2); }
.ecsper-tk-acard--future .ecsper-tk-acard-desc { font-size: 13px; color: var(--ink3); }
.ecsper-tk-acard-facts {
	display: flex;
	gap: 20px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}
.ecsper-tk-acard-fact {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
}
.ecsper-tk-acard-cta {
	display: inline-block;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	border-radius: 100px;
	text-decoration: none;
}
.ecsper-tk-acard--primary .ecsper-tk-acard-cta {
	color: var(--blue);
	background: var(--paper);
	padding: 12px 32px;
}
.ecsper-tk-acard--secondary .ecsper-tk-acard-cta {
	color: var(--paper);
	background: var(--blue);
	padding: 10px 24px;
	white-space: nowrap;
}
.ecsper-tk-acard--future .ecsper-tk-acard-cta {
	color: var(--blue);
	border: 1px solid var(--blue);
	padding: 10px 24px;
	white-space: nowrap;
}
.ecsper-tk-acard-cta:hover { text-decoration: none; }
.ecsper-tk-score {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(0, 67, 166, 0.3) 0%, rgba(91, 188, 245, 0.15) 100%);
	border: 2px solid rgba(91, 188, 245, 0.2);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.ecsper-tk-score-label {
	font-family: var(--bd);
	font-size: 9px;
	color: rgba(255, 255, 255, 0.4);
	text-transform: uppercase;
	letter-spacing: 0.1em;
}
.ecsper-tk-score-value {
	font-family: var(--dsp);
	font-size: 32px;
	color: var(--paper);
}
.ecsper-tk-score-sub {
	font-family: var(--bd);
	font-size: 10px;
	color: rgba(255, 255, 255, 0.3);
}

/* Toolkit products (RESOURCES-001 §3.3) */
.ecsper-tk-products {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.ecsper-tk-pcard {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 28px;
	display: flex;
	flex-direction: column;
}
.ecsper-tk-pcard--featured { border: 2px solid var(--blue); }
.ecsper-tk-badge {
	display: inline-block;
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 4px 14px;
	border-radius: 100px;
	margin-bottom: 12px;
	align-self: flex-start;
}
.ecsper-tk-badge--learn { background: var(--blue-t); color: var(--blue); }
.ecsper-tk-badge--talk { background: var(--green-t); color: var(--green); }
.ecsper-tk-badge--act { background: var(--warm-t); color: var(--warm-text); }
.ecsper-tk-pcard-name {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 6px;
}
.ecsper-tk-pcard-price {
	font-family: var(--dsp);
	font-size: 28px;
	font-weight: 400;
	color: var(--ink);
	margin-bottom: 10px;
}
.ecsper-tk-pcard-price--free { color: var(--green); }
.ecsper-tk-pcard-desc {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0 0 16px;
	flex: 1;
}
.ecsper-tk-pcard-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 20px;
	font-family: var(--bd);
	font-size: 12px;
	color: var(--ink3);
}
.ecsper-tk-pcard-cta {
	display: inline-block;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--paper);
	background: var(--blue);
	padding: 10px 24px;
	border-radius: 100px;
	text-decoration: none;
	align-self: flex-start;
}
.ecsper-tk-pcard-cta--outline {
	color: var(--blue);
	background: transparent;
	border: 1px solid var(--blue);
}
.ecsper-tk-pcard-cta:hover {
	text-decoration: none;
	background: var(--blue-d);
	color: var(--paper);
}
.ecsper-tk-pcard-cta--outline:hover {
	background: var(--blue-t);
	color: var(--blue);
}

/* Forum (RESOURCES-001 §4) */
.ecsper-forum-why {
	max-width: 680px;
	margin: 0 auto;
	text-align: center;
}
.ecsper-forum-why-text {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink2);
	line-height: 1.7;
	margin: 0;
}
.ecsper-forum-sponsors {
	background: var(--bg);
	padding: 80px 24px;
	text-align: center;
}
.ecsper-forum-sponsors-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	color: var(--ink3);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	margin-bottom: 28px;
}
.ecsper-forum-logos,
.ecsper-partner-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 48px;
	flex-wrap: wrap;
}
.ecsper-forum-logo {
	width: 80px;
	height: 80px;
	border-radius: 14px;
	background: var(--paper);
	border: 1px solid var(--line);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bd);
	font-size: 16px;
	font-weight: 600;
	color: var(--ink3);
	padding: 10px;
}
.ecsper-forum-logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.ecsper-forum-join {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 32px;
}
.ecsper-forum-join-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
}
.ecsper-forum-join-title {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 6px;
}
.ecsper-forum-join-desc {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.55;
	margin: 0;
}
.ecsper-forum-join-cta { text-align: center; }

.ecsper-ev-tabs {
	display: flex;
	gap: 8px;
	margin-bottom: 28px;
}
.ecsper-ev-tab {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	padding: 8px 20px;
	border-radius: 100px;
	cursor: pointer;
	border: 1px solid var(--blue);
	background: transparent;
	color: var(--blue);
}
.ecsper-ev-tab--on {
	background: var(--blue);
	color: var(--paper);
}
.ecsper-ev-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.ecsper-ev-list[hidden] { display: none; }
.ecsper-ev-empty {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink3);
}
.ecsper-ev-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
	display: grid;
	grid-template-columns: 180px 1fr;
}
.ecsper-ev-card--featured { border: 2px solid var(--blue); }
.ecsper-ev-card--past { opacity: 0.8; }
.ecsper-ev-image {
	background: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 180px;
}
.ecsper-ev-card--past .ecsper-ev-image { background: var(--ink2); }
.ecsper-ev-month {
	font-family: var(--dsp);
	font-size: 52px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.1);
}
.ecsper-ev-content {
	padding: 24px 28px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.ecsper-ev-top { margin-bottom: 8px; }
.ecsper-ev-tag {
	display: inline-block;
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 4px 14px;
	border-radius: 100px;
}
.ecsper-ev-tag--next { background: var(--blue-t); color: var(--blue); }
.ecsper-ev-tag--upcoming { background: var(--green-t); color: var(--green); }
.ecsper-ev-tag--past { background: var(--bg); color: var(--ink3); }
.ecsper-ev-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
	line-height: 1.25;
}
.ecsper-ev-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 6px;
}
.ecsper-ev-meta-item {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
}
.ecsper-ev-meta-item strong { font-weight: 500; color: var(--ink); }
.ecsper-ev-theme {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	line-height: 1.55;
	margin: 0 0 14px;
}
.ecsper-ev-cta {
	display: inline-block;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--paper);
	background: var(--blue);
	padding: 10px 24px;
	border-radius: 100px;
	text-decoration: none;
	align-self: flex-start;
}
.ecsper-ev-cta--outline {
	color: var(--blue);
	background: transparent;
	border: 1px solid var(--blue);
}
.ecsper-ev-cta:hover { background: var(--blue-d); color: var(--paper); text-decoration: none; }
.ecsper-ev-cta--outline:hover { background: var(--blue-t); color: var(--blue); }
.ecsper-ev-recap {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-ev-recap:hover { text-decoration: underline; }

/* Forum event single (ECS-RESEARCH-WEB-EVENT-001) */
.ecsper-event-page {
	width: 100%;
}
.ecsper-event-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-event-hero {
	background: var(--wp--preset--color--paper, var(--paper));
	text-align: center;
}
.ecsper-event-badge {
	display: inline-block;
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 5px 14px;
	border-radius: 100px;
	margin-bottom: 20px;
}
.ecsper-event-badge--next {
	background: var(--wp--preset--color--green, var(--green));
	color: var(--wp--preset--color--paper, var(--paper));
}
.ecsper-event-badge--upcoming {
	background: var(--wp--preset--color--blue, var(--blue));
	color: var(--wp--preset--color--paper, var(--paper));
}
.ecsper-event-badge--past {
	background: var(--wp--preset--color--ink-3, var(--ink3));
	color: var(--wp--preset--color--paper, var(--paper));
}
.ecsper-event-title {
	font-family: var(--wp--preset--font-family--display, var(--dsp));
	font-size: clamp(28px, 3.5vw, 42px);
	font-weight: 400;
	color: var(--wp--preset--color--ink, var(--ink));
	line-height: 1.15;
	margin: 0 auto 16px;
	text-align: center;
	max-width: 18ch;
}
.ecsper-event-date {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 16px;
	font-weight: 400;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin: 0 0 8px;
}
.ecsper-event-meta {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	margin: 0 0 28px;
}
.ecsper-event-sec {
	padding: 72px 24px;
}
.ecsper-event-sec--bg { background: var(--wp--preset--color--bg, var(--bg)); }
.ecsper-event-sec--paper { background: var(--wp--preset--color--paper, var(--paper)); }
.ecsper-event-sec--bone { background: var(--wp--preset--color--bone, var(--bone)); }
.ecsper-event-accent {
	width: 48px;
	height: 3px;
	background: var(--wp--preset--color--blue, var(--blue));
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-event-label {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--wp--preset--color--blue, var(--blue));
	margin-bottom: 16px;
	text-align: center;
}
.ecsper-event-head {
	font-family: var(--wp--preset--font-family--display, var(--dsp));
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--wp--preset--color--ink, var(--ink));
	line-height: 1.2;
	margin: 0 0 20px;
	text-align: center;
}
.ecsper-event-desc {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 15px;
	font-weight: 400;
	line-height: 1.65;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	max-width: 68ch;
}
.ecsper-event-desc p { margin: 0 0 1em; }
.ecsper-event-desc p:last-child { margin-bottom: 0; }
.ecsper-event-speakers {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin-top: 8px;
}
.ecsper-event-speaker {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.ecsper-event-speaker-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--wp--preset--color--blue, var(--blue));
	color: var(--wp--preset--color--paper, var(--paper));
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 16px;
	font-weight: 600;
	overflow: hidden;
}
.ecsper-event-speaker-photo {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 50%;
	display: block;
}
.ecsper-event-speaker-name {
	font-family: var(--wp--preset--font-family--display, var(--dsp));
	font-size: 18px;
	font-weight: 400;
	color: var(--wp--preset--color--ink, var(--ink));
	margin: 0 0 4px;
	line-height: 1.3;
}
.ecsper-event-speaker-name a {
	color: inherit;
	text-decoration: none;
}
.ecsper-event-speaker-name a:hover { text-decoration: underline; }
.ecsper-event-speaker-mod {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--warm, var(--warm));
	margin-bottom: 4px;
}
.ecsper-event-speaker-title {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 13px;
	font-weight: 400;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	margin-bottom: 8px;
}
.ecsper-event-speaker-bio {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin: 0;
}
.ecsper-event-agenda {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.ecsper-event-agenda-item {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 20px;
	padding: 18px 0;
	border-bottom: 1px solid var(--wp--preset--color--line, var(--line));
}
.ecsper-event-agenda-item:first-child { padding-top: 0; }
.ecsper-event-agenda-item:last-child { border-bottom: 0; padding-bottom: 0; }
.ecsper-event-agenda-time {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--blue, var(--blue));
	padding-top: 3px;
}
.ecsper-event-agenda-title {
	font-family: var(--wp--preset--font-family--display, var(--dsp));
	font-size: 18px;
	font-weight: 400;
	color: var(--wp--preset--color--ink, var(--ink));
	margin: 0 0 4px;
	line-height: 1.3;
}
.ecsper-event-agenda-desc {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 13px;
	font-weight: 400;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin: 0;
	line-height: 1.5;
}
.ecsper-event-venue-name {
	font-family: var(--wp--preset--font-family--display, var(--dsp));
	font-size: 22px;
	font-weight: 400;
	color: var(--wp--preset--color--ink, var(--ink));
	margin: 0 0 8px;
}
.ecsper-event-venue-addr {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin: 0 0 20px;
}
.ecsper-event-map-wrap {
	margin-bottom: 16px;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line, var(--line));
}
.ecsper-event-map {
	display: block;
	width: 100%;
	height: auto;
}
.ecsper-event-page .ecsper-contact-map {
	margin-top: 0;
	margin-bottom: 16px;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line, var(--line));
}
.ecsper-event-page .ecsper-contact-map iframe,
.ecsper-event-map iframe {
	width: 100%;
	height: 200px;
	border: 0;
}
.ecsper-event-directions {
	margin: 0 0 12px;
}
.ecsper-event-directions a {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--blue, var(--blue));
	text-decoration: none;
}
.ecsper-event-directions a:hover { text-decoration: underline; }
.ecsper-event-travel {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	margin: 0;
	max-width: 60ch;
}
.ecsper-event-related {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 8px;
}
.ecsper-event-related-card {
	display: block;
	background: var(--wp--preset--color--paper, var(--paper));
	border: 1px solid var(--wp--preset--color--line, var(--line));
	border-radius: 12px;
	padding: 24px 28px;
	text-decoration: none;
}
.ecsper-event-related-card:hover {
	border-color: var(--wp--preset--color--blue, var(--blue));
	text-decoration: none;
}
.ecsper-event-related-kicker {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--blue, var(--blue));
	margin-bottom: 8px;
}
.ecsper-event-related-title {
	font-family: var(--wp--preset--font-family--display, var(--dsp));
	font-size: 20px;
	font-weight: 400;
	color: var(--wp--preset--color--ink, var(--ink));
	line-height: 1.3;
}
.ecsper-event-related-meta {
	font-family: var(--wp--preset--font-family--body, var(--bd));
	font-size: 13px;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	margin-top: 8px;
}

/* Insights (RESOURCES-001 §5) */
.ecsper-ins-sec {
	background: var(--bg);
	padding: 48px 32px 72px;
}
.ecsper-ins-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 28px;
	flex-wrap: wrap;
	gap: 16px;
}
.ecsper-ins-filters {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.ecsper-ins-filter,
.ecsper-filter-pill {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 500;
	padding: 7px 16px;
	border-radius: 100px;
	cursor: pointer;
	border: 1px solid var(--line);
	background: transparent;
	color: var(--ink2);
	text-decoration: none;
	display: inline-block;
}
.ecsper-ins-filter:hover,
.ecsper-filter-pill:hover {
	text-decoration: none;
	color: var(--ink);
}
.ecsper-ins-filter--on,
.ecsper-filter-pill.is-active {
	background: var(--blue);
	color: var(--paper);
	border-color: var(--blue);
}
.ecsper-ins-filter--on:hover,
.ecsper-filter-pill.is-active:hover {
	color: var(--paper);
}
.ecsper-ins-tools {
	display: flex;
	align-items: center;
	gap: 12px;
}
.ecsper-ins-sort {
	font-family: var(--bd);
	font-size: 12px;
	color: var(--ink2);
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 7px 12px;
	background: var(--paper);
	cursor: pointer;
}
.ecsper-ins-views { display: flex; gap: 4px; }
.ecsper-ins-view {
	width: 34px;
	height: 34px;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: var(--paper);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ink3);
}
.ecsper-ins-view--on {
	background: var(--blue);
	border-color: var(--blue);
	color: var(--paper);
}
.ecsper-ins-view svg { width: 16px; height: 16px; fill: currentColor; }
.ecsper-ins-empty {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink2);
	padding: 48px 0;
	text-align: center;
}
.insight-author {
	margin-bottom: var(--wp--preset--spacing--40);
	text-align: center;
}
.insight-author__byline,
.insight-author__date {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}
.insight-author__name {
	font-weight: 500;
	color: var(--wp--preset--color--ink);
}
.insight-author__role,
.insight-author__org,
.insight-author__date {
	color: var(--wp--preset--color--ink-3);
}
.insight-author__role::before,
.insight-author__org::before {
	content: " · ";
}
.ecsper-ins-cards {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 20px;
}
.ecsper-ins-cards[hidden] { display: none; }
.ecsper-ins-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	transition: border-color 150ms ease;
}
.ecsper-ins-card:hover { border-color: var(--blue); text-decoration: none; color: inherit; }
.ecsper-ins-thumb {
	height: 140px;
	background: var(--bg);
	display: flex;
	align-items: center;
	justify-content: center;
}
.ecsper-ins-thumb-cat {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	opacity: 0.25;
}
.ecsper-ins-body {
	padding: 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.ecsper-ins-cat {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 8px;
}
.cat-whitepaper { color: var(--blue); }
.cat-forum { color: var(--warm-text); }
.cat-article { color: var(--green); }
.cat-research { color: var(--purple); }
.cat-news { color: var(--ink); }
.cat-guide { color: var(--teal); }
.ecsper-ins-title {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
	line-height: 1.3;
}
.ecsper-ins-excerpt {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.55;
	margin: 0 0 12px;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ecsper-ins-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.ecsper-ins-date,
.ecsper-ins-read {
	font-family: var(--bd);
	font-size: 11px;
	color: var(--ink3);
}
.ecsper-ins-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ecsper-ins-list[hidden] { display: none; }
.ecsper-ins-row,
.ecsper-ins-row.ecsper-res-item {
	background: var(--paper);
	border: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	border-radius: 12px;
	padding: 20px 24px;
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 20px;
	text-decoration: none;
	color: inherit;
	transition: border-color 150ms ease;
}
.ecsper-ins-row:hover,
.ecsper-ins-row.ecsper-res-item:hover { border-color: var(--blue); text-decoration: none; color: inherit; }
.ecsper-ins-row .ecsper-res-item-thumb {
	flex: 0 0 120px;
	margin-bottom: 0;
}
.ecsper-insight-list-content {
	flex: 1;
	min-width: 0;
}
.ecsper-ins-row-cat {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}
.ecsper-ins-row-title {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin-bottom: 4px;
	line-height: 1.3;
}
.ecsper-ins-row-excerpt {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.5;
}
.ecsper-ins-row-right { text-align: right; white-space: nowrap; }
.ecsper-ins-row-date {
	font-family: var(--bd);
	font-size: 12px;
	color: var(--ink3);
	margin-bottom: 4px;
}
.ecsper-ins-row-link {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--blue);
}

/* ── Company / FAQ shared sections (COMPANY-001, RESOURCES-001 §6) ───────── */
.ecsper-co-sec { padding: 72px 32px; }
.ecsper-co-sec--bg { background: var(--bg); }
.ecsper-co-sec--paper { background: var(--paper); }
.ecsper-co-sec--bone { background: var(--bone); }
.ecsper-co-inner { max-width: 1140px; margin: 0 auto; }
.ecsper-co-inner--contact { max-width: 900px; }

/* FAQ accordion (RESOURCES-001 §6.2) */
.ecsper-faq-sec {
	background: var(--bg);
	padding: 48px 32px 72px;
}
.ecsper-faq-inner { max-width: 800px; margin: 0 auto; }
.ecsper-faq-group { margin-bottom: 40px; }
.ecsper-faq-group:last-child { margin-bottom: 0; }
.ecsper-faq-group-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	color: var(--blue);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	margin: 0 0 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--blue-t);
}
.ecsper-faq-item { border-bottom: 1px solid var(--line); }
.ecsper-faq-q {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 18px 0;
	gap: 16px;
	background: none;
	border: 0;
	cursor: pointer;
	text-align: left;
	color: inherit;
}
.ecsper-faq-q-text {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.3;
}
.ecsper-faq-toggle {
	font-family: var(--bd);
	font-size: 20px;
	color: var(--ink3);
	flex-shrink: 0;
	line-height: 1;
	transition: transform 0.2s ease;
}
.ecsper-faq-item.is-open .ecsper-faq-toggle { transform: rotate(45deg); }
.ecsper-faq-a {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.25s ease;
}
.ecsper-faq-item.is-open .ecsper-faq-a { grid-template-rows: 1fr; }
.ecsper-faq-a-inner {
	overflow: hidden;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink2);
	line-height: 1.65;
	max-width: 680px;
	padding: 0;
}
.ecsper-faq-item.is-open .ecsper-faq-a-inner { padding-bottom: 18px; }

/* About mission (P7d). COMPANY-001 §6 locked "no mission" pending DF bump. */
.ecsper-about-mission {
	padding: 80px 24px;
}
.ecsper-about-inner { max-width: 1140px; margin: 0 auto; }
.ecsper-about-mission .ecsper-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin-bottom: 10px;
}
.ecsper-about-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 16px;
}
.ecsper-about-desc {
	font-family: var(--bd);
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink2);
	max-width: 760px;
	margin: 0 0 8px;
}
.ecsper-about-desc p { margin: 0 0 16px; }
.ecsper-about-video {
	max-width: 800px;
	margin: 40px auto 0;
}
.ecsper-video-embed iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 14px;
	border: 0;
}
.ecsper-video-placeholder {
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--wp--preset--color--ink, #0B0E14);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--paper, #FFFFFF);
	font-family: var(--bd);
	font-size: 15px;
}
.ecsper-video-placeholder p { margin: 0; }
.ecsper-video-play {
	font-size: 48px;
	margin-bottom: 12px;
	opacity: 0.5;
}

/* About values (COMPANY-001 §3.3; P7d full-width cards) */
.ecsper-values-themes {
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.ecsper-values-theme-label,
.ecsper-value-theme {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--blue);
	margin: 0 0 12px;
}
.ecsper-value-theme { margin-bottom: 8px; }
.ecsper-values-grid {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.ecsper-values-grid--single { max-width: none; }
.ecsper-value-card {
	width: 100%;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 28px;
}
.ecsper-value-name {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-value-desc {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0;
}

/* About partner strip (COMPANY-001 §3.4) */
.ecsper-about-partners {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 48px;
	flex-wrap: wrap;
	padding: 8px 0;
}
.ecsper-about-partner {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	text-decoration: none;
}
a.ecsper-about-partner:hover { color: var(--blue); }

/* Team founders (COMPANY-001 §4.3; card chrome P9j) */
.ecsper-founders-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
@media (min-width: 769px) {
	.ecsper-founders-grid .ecsper-team-card {
		max-width: 280px;
		margin: 0 auto;
	}
	.ecsper-founders-grid .ecsper-team-card-image {
		max-width: 280px;
		margin: 0 auto;
	}
}
.ecsper-founder-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 32px;
	display: flex;
	gap: 24px;
	align-items: flex-start;
}
.ecsper-founder-avatar {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bd);
	font-size: 20px;
	font-weight: 600;
	color: var(--blue);
	background: var(--blue-t);
	flex-shrink: 0;
}
.ecsper-founder-avatar--photo,
.ecsper-advisor-avatar--photo {
	padding: 0;
	overflow: hidden;
	background: transparent;
	border-radius: 14px;
}
.ecsper-founder-avatar--photo {
	width: 140px;
	height: 140px;
}
.ecsper-team-photo {
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 14px;
	display: block;
}
.ecsper-founder-name {
	font-family: var(--dsp);
	font-size: 24px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 4px;
}
.ecsper-founder-name a,
.ecsper-advisor-name a {
	color: inherit;
	text-decoration: none;
}
.ecsper-founder-name a:hover,
.ecsper-advisor-name a:hover {
	color: var(--blue);
}
.ecsper-founder-role {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink3);
	margin-bottom: 10px;
}
.ecsper-founder-bio {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink2);
	line-height: 1.6;
	margin: 0;
}

/* Team advisors (COMPANY-001 §4.4) */
.ecsper-advisors-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.ecsper-advisor-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
	text-align: center;
}
.ecsper-advisor-avatar {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bd);
	font-size: 28px;
	font-weight: 600;
	color: var(--blue);
	background: var(--blue-t);
	margin: 0 auto 14px;
}
.ecsper-advisor-avatar--photo {
	width: 140px;
	height: 140px;
}
.ecsper-advisor-name {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 6px;
}
.ecsper-advisor-role {
	font-family: var(--bd);
	font-size: 12px;
	color: var(--ink3);
	line-height: 1.45;
}
/* Standard team card (P9j). Shared by /team/ and the homepage slider. */
.ecsper-team-card {
	text-align: center;
	background: var(--wp--preset--color--paper, var(--paper));
}
.ecsper-team-card-imagelink {
	display: block;
	text-decoration: none;
	color: inherit;
}
.ecsper-team-card-image {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 14px 14px 0 0;
	background: var(--wp--preset--color--blue-t, var(--blue-t));
}
.ecsper-team-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ecsper-team-card-initials {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--dsp);
	font-size: clamp(36px, 6vw, 56px);
	font-weight: 400;
	color: var(--blue);
	background: var(--wp--preset--color--blue-t, var(--blue-t));
}
.ecsper-team-card-role {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 24px 12px 12px;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.75), transparent);
	color: var(--wp--preset--color--paper, #fff);
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	line-height: 1.35;
}
.ecsper-team-card-body {
	padding: 16px 12px;
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-top: none;
	border-radius: 0 0 14px 14px;
}
.ecsper-team-card-name {
	display: block;
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: 17px;
	font-weight: 700;
	color: var(--wp--preset--color--ink, var(--ink));
	text-decoration: none;
}
a.ecsper-team-card-name:hover {
	color: var(--wp--preset--color--blue, var(--blue));
}
.ecsper-team-card-tagline {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 13px;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	margin: 4px 0 12px;
	line-height: 1.45;
}
.ecsper-team-card-linkedin {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	background: var(--wp--preset--color--bg, #F4F5F7);
	border-radius: 50%;
	color: var(--wp--preset--color--ink, var(--ink));
	transition: background 0.2s, color 0.2s;
	margin-top: 8px;
}
.ecsper-team-card-linkedin:hover {
	background: var(--wp--preset--color--blue, var(--blue));
	color: var(--wp--preset--color--paper, var(--paper));
}

/* Team slider (P9d). CSS scroll-snap. No JS library. */
.ecsper-team-slider-section {
	text-align: center;
}
.ecsper-team-slider-section--paper {
	background: var(--wp--preset--color--paper, var(--paper));
}
.ecsper-team-slider-section--bone {
	background: var(--wp--preset--color--bone, var(--bone));
}
.ecsper-team-slider-section--bg {
	background: var(--wp--preset--color--bg, var(--bg));
}
.ecsper-team-slider-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-team-slider-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 auto 32px;
	max-width: 860px;
}
.ecsper-team-slider {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	text-align: left;
}
.ecsper-team-slider-track {
	display: flex;
	gap: 24px;
	padding-bottom: 12px;
}
.ecsper-team-slide {
	scroll-snap-align: start;
	flex: 0 0 240px;
}
.ecsper-team-slide .ecsper-team-card {
	height: 100%;
}
@media (max-width: 768px) {
	.ecsper-team-slide {
		flex: 0 0 200px;
	}
}
@media (max-width: 480px) {
	.ecsper-team-slide {
		flex: 0 0 180px;
	}
}

/* Individual team member profile (P7d, P9o overlay + achievements card) */
.ecsper-tm-profile { padding: 80px 24px; }
.ecsper-tm-inner { max-width: 1140px; margin: 0 auto; }
.ecsper-tm-grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 48px;
	align-items: start;
}
@media (max-width: 768px) {
	.ecsper-tm-grid { grid-template-columns: 1fr; }
}
.ecsper-tm-photo {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
}
.ecsper-tm-img {
	width: 100%;
	border-radius: 14px;
	object-fit: cover;
	display: block;
	aspect-ratio: 1 / 1;
}
.ecsper-tm-photo-role {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 28px 16px 14px;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.75), transparent);
	color: var(--wp--preset--color--paper, #fff);
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	line-height: 1.35;
}
.ecsper-tm-contact {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--line, #DDE1EA);
}
.ecsper-tm-contact h3 {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	margin: 0 0 8px;
	color: var(--ink);
}
.ecsper-tm-email {
	display: block;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink);
	text-decoration: none;
	margin-bottom: 12px;
}
.ecsper-tm-email:hover { color: var(--blue); }
.ecsper-tm-linkedin {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--wp--preset--color--bg, #F4F5F7);
	border-radius: 50%;
	color: var(--ink);
	transition: background 0.2s, color 0.2s;
}
.ecsper-tm-linkedin:hover {
	background: var(--wp--preset--color--blue, #0043A6);
	color: var(--wp--preset--color--paper, #FFFFFF);
}
.ecsper-tm-tagline {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	margin: 0 0 8px;
}
.ecsper-tm-name {
	font-family: var(--dsp);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 24px;
	line-height: 1.15;
}
.ecsper-tm-bio {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.7;
	color: var(--wp--preset--color--ink-2, var(--ink2));
}
.ecsper-tm-bio p { margin: 0 0 20px; }
.ecsper-tm-achievements {
	margin-top: 32px;
	padding: 24px 28px;
	background: var(--wp--preset--color--bg, var(--bg));
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-radius: 14px;
}
.ecsper-tm-achievements h2 {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 14px;
	color: var(--ink);
}
.ecsper-tm-achievements ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ecsper-tm-achievements li {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	padding-left: 20px;
	position: relative;
	margin-bottom: 8px;
}
.ecsper-tm-achievements li:last-child { margin-bottom: 0; }
.ecsper-tm-achievements li::before {
	content: "↘";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--ink-3, var(--ink3));
}

/* Individual partner page (P5b, has_page true) */
.ecsper-single-inner {
	max-width: 680px;
	text-align: center;
}
.ecsper-single-avatar {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bd);
	font-size: 28px;
	font-weight: 600;
	color: var(--blue);
	background: var(--blue-t);
	margin: 0 auto 24px;
}
.ecsper-single-avatar--photo {
	background: transparent;
	overflow: hidden;
}
.ecsper-single-avatar-img {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 50%;
	display: block;
}
.ecsper-single-logo {
	margin: 0 auto 24px;
}
.ecsper-single-logo-img {
	max-height: 64px;
	width: auto;
	display: block;
	margin: 0 auto;
}
.ecsper-single-name {
	font-family: var(--dsp);
	font-size: 36px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
	line-height: 1.2;
}
.ecsper-single-title {
	font-family: var(--bd);
	font-size: 16px;
	color: var(--ink3);
	margin: 0 0 6px;
}
.ecsper-single-org {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink2);
	margin: 0 0 20px;
}
.ecsper-single-bio {
	font-family: var(--bd);
	font-size: 16px;
	color: var(--ink2);
	line-height: 1.65;
	margin: 0 0 24px;
	text-align: left;
}
.ecsper-single-link {
	font-family: var(--bd);
	font-size: 14px;
	margin: 0 0 16px;
}
.ecsper-single-link a {
	color: var(--blue);
	text-decoration: none;
}
.ecsper-single-link a:hover {
	color: var(--blue-d);
}
.ecsper-single-back-wrap {
	margin: 24px 0 0;
}
.ecsper-single-back {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-single-back:hover {
	color: var(--blue-d);
}
@media (max-width: 480px) {
	.ecsper-single-name { font-size: 28px; }
}

/* Yoast breadcrumbs (P5c / P6k-fix-1 I-21 / P6l). Below header, above hero. */
.wp-site-header,
.ecsper-header,
header.wp-block-template-part {
	margin-bottom: 0 !important;
}
.ecsper-breadcrumb,
.yoast-breadcrumb,
.wpseo-breadcrumbs {
	background: var(--wp--preset--color--bg, #F4F5F7);
	margin-top: 0 !important;
	margin-left: 0;
	margin-right: 0;
	padding: 0;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	border-bottom: 1px solid var(--wp--preset--color--line, #DDE1EA);
}
.ecsper-breadcrumb > span,
.yoast-breadcrumb > span,
.wpseo-breadcrumbs > span {
	display: block;
	box-sizing: border-box;
	max-width: 1280px;
	margin: 0 auto;
	padding: 10px 24px;
}
.ecsper-breadcrumb a,
.yoast-breadcrumb a {
	color: var(--wp--preset--color--ink-2, var(--ink2));
	text-decoration: underline;
}
.ecsper-breadcrumb a:hover,
.yoast-breadcrumb a:hover {
	color: var(--wp--preset--color--blue, var(--blue));
}

/* Contact (COMPANY-001 §5, mockup_17, P8e 2/3 HubSpot + 1/3 address) */
.ecsper-contact-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-contact-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 48px;
	align-items: start;
}
.ecsper-contact-form,
.ecsper-contact-info {
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-radius: 14px;
	padding: 32px;
	background: var(--wp--preset--color--paper, #FFFFFF);
}
/* Contact form: no height constraint. HubSpot JS sets iframe height (P8g). */
.ecsper-contact-form {
	padding: 16px;
	min-height: auto;
	height: auto;
	overflow: visible;
}
.ecsper-contact-form .hs-form-frame,
.ecsper-contact-form .hs-form__body,
.ecsper-contact-form iframe {
	width: 100% !important;
	min-height: 700px;
	overflow: visible;
}
.ecsper-contact-form iframe[src*="hsforms"] {
	min-height: 700px !important;
}
.ecsper-contact-form-placeholder {
	text-align: center;
	padding: 48px 24px;
	color: var(--wp--preset--color--ink-3, var(--ink3));
}
.ecsper-contact-form-placeholder h3 {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 12px;
}
.ecsper-contact-form-placeholder p {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink2);
	margin: 0 0 12px;
}
.ecsper-contact-enquiry-types {
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
}
.ecsper-contact-enquiry-types li {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink2);
	padding: 6px 0 6px 20px;
	position: relative;
}
.ecsper-contact-enquiry-types li::before {
	content: "●";
	position: absolute;
	left: 0;
	color: var(--blue);
	font-size: 8px;
	top: 10px;
}
.ecsper-contact-form-note {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin: 0;
}
.ecsper-contact-address h3,
.ecsper-contact-social h3 {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 12px;
}
.ecsper-contact-address address {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 15px;
	line-height: 1.8;
	font-style: normal;
	color: var(--wp--preset--color--ink-2, var(--ink2));
}
.ecsper-social-links {
	display: flex;
	gap: 12px;
	margin-top: 12px;
}
.ecsper-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--wp--preset--color--bg, #F4F5F7);
	border-radius: 50%;
	color: var(--wp--preset--color--ink, var(--ink));
	transition: background 0.2s, color 0.2s;
}
.ecsper-social-link:hover {
	background: var(--wp--preset--color--blue, var(--blue));
	color: var(--wp--preset--color--paper, var(--paper));
}
.ecsper-contact-form-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 36px;
}
.ecsper-contact-form-title {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 24px;
}
.ecsper-contact-field { margin-bottom: 20px; }
.ecsper-contact-label {
	display: block;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--ink2);
	margin-bottom: 6px;
}
.ecsper-contact-input,
.ecsper-contact-textarea {
	width: 100%;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink);
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 12px 14px;
	outline: none;
	transition: border-color 0.15s ease;
}
.ecsper-contact-input:focus,
.ecsper-contact-textarea:focus { border-color: var(--blue); }
.ecsper-contact-textarea { min-height: 120px; resize: vertical; }
.ecsper-contact-submit {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--paper);
	background: var(--blue);
	border: none;
	padding: 14px 36px;
	border-radius: 100px;
	cursor: pointer;
	width: 100%;
}
.ecsper-contact-submit:hover { background: var(--blue-d); }
.ecsper-contact-info {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.ecsper-contact-map {
	margin-top: 24px;
	border-radius: 10px;
	overflow: hidden;
}
.ecsper-contact-map iframe {
	width: 100%;
	height: 200px;
	border: 0;
}
.ecsper-info-card {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
}
.ecsper-info-title {
	font-family: var(--dsp);
	font-size: 17px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-info-text {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.55;
	margin: 0 0 8px;
}
.ecsper-info-link {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-info-link:hover { text-decoration: underline; }

@media (max-width: 900px) {
	.ecsper-infra-grid,
	.ecsper-pillar-details,
	.ecsper-tk-products,
	.ecsper-forum-join { grid-template-columns: 1fr; }
	.ecsper-extend-grid { grid-template-columns: 1fr; }
	.ecsper-pillar-card--full { grid-column: 1; }
	.ecsper-temple-pillars { flex-wrap: wrap; }
	.ecsper-partner-strip { flex-direction: column; gap: 14px; }
	.ecsper-vanta { flex-direction: column; text-align: center; }
	.ecsper-tk-acard--primary { grid-template-columns: 1fr; text-align: center; }
	.ecsper-tk-score { margin: 0 auto; }
	.ecsper-tk-acard-facts { justify-content: center; }
	.ecsper-ev-card { grid-template-columns: 1fr; }
	.ecsper-ev-image { min-height: 100px; }
	.ecsper-event-speakers,
	.ecsper-event-related { grid-template-columns: 1fr; }
	.ecsper-event-agenda-item { grid-template-columns: 64px 1fr; gap: 14px; }
	.ecsper-ins-cards { grid-template-columns: 1fr 1fr; }
	.ecsper-ins-row,
	.ecsper-ins-row.ecsper-res-item { flex-wrap: nowrap; }
	.ecsper-founders-grid,
	.ecsper-contact-grid { grid-template-columns: 1fr; }
	.ecsper-advisors-grid { grid-template-columns: 1fr 1fr; }
	.ecsper-about-partners { flex-direction: column; gap: 16px; }
}
@media (max-width: 768px) {
	.ecsper-contact-grid { grid-template-columns: 1fr; }
	.ecsper-trust-sec { padding: 56px 20px; }
	.ecsper-trust-sec--extend { padding-bottom: 0; }
	.ecsper-ins-sec { padding: 36px 24px 52px; }
	.ecsper-temple-capstone,
	.ecsper-temple-entablature,
	.ecsper-temple-pillars,
	.ecsper-temple-foundation { margin: 0 12px; }
	.ecsper-std-grid { grid-template-columns: 1fr; }
	.ecsper-tk-acard--primary { padding: 32px 24px; }
	.ecsper-ins-cards { grid-template-columns: 1fr; }
	.ecsper-ins-row,
	.ecsper-ins-row.ecsper-res-item { flex-wrap: wrap; }
	.ecsper-ins-row-right { text-align: left; }
	.ecsper-ins-toolbar { flex-direction: column; align-items: flex-start; }
	.ecsper-forum-sponsors { padding: 56px 20px; }
	.ecsper-event-sec { padding: 52px 24px; }
	.ecsper-faq-sec,
	.ecsper-co-sec { padding: 52px 24px; }
	.ecsper-advisors-grid { grid-template-columns: 1fr; }
	.ecsper-founder-card { flex-direction: column; align-items: center; text-align: center; }
	.ecsper-contact-form-card { padding: 28px 22px; }
	.ecsper-contact-form { padding: 12px; }
}

/* ── Check Your Exposure placeholder ─────────────────────────────────────── */
.ecsper-exposure-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	margin-top: 8px;
}
.ecsper-exposure-cta {
	display: inline-block;
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--paper);
	background: var(--blue);
	padding: 14px 34px;
	border-radius: 100px;
	text-decoration: none;
	transition: background-color 150ms ease;
}
.ecsper-exposure-cta:hover {
	background: var(--blue-d);
	color: var(--paper);
	text-decoration: none;
}
.ecsper-exposure-back {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-exposure-back:hover {
	color: var(--blue-d);
}

/* ── Legal pages (page-wide + Gutenberg body) ────────────────────────────── */
.ecsper-legal {
	padding: 72px 32px 80px;
}
.ecsper-legal-bracket {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--blue);
	margin: 0 0 18px;
}
.ecsper-legal-title,
.ecsper-legal h1 {
	font-family: var(--dsp);
	font-size: clamp(30px, 4vw, 44px);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.15;
	margin: 0 0 12px;
}
.ecsper-legal-meta {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin: 0 0 32px;
}
.ecsper-legal h2 {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 32px 0 12px;
}
.ecsper-legal p,
.ecsper-legal li {
	font-family: var(--bd);
	font-size: 15px;
	color: var(--ink2);
	line-height: 1.7;
}
.ecsper-legal ul {
	margin: 0 0 16px 1.2em;
}
.ecsper-legal p a,
.ecsper-legal li a,
.ecsper-legal .wp-block-paragraph a {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--blue, var(--blue));
	text-underline-offset: 2px;
}
@media (max-width: 768px) {
	.ecsper-legal { padding: 52px 24px 64px; }
}

/* ── Mega-menu (CHARTER-WEB-001 §§3-8) ───────────────────────────────────── */
.ecsper-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.ecsper-nav-toggle-bar {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--ink);
	border-radius: 1px;
}
.ecsper-mega-bar {
	display: flex;
	align-items: center;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ecsper-mega-item {
	position: relative;
}
.ecsper-mega-trigger {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--ink2);
	background: none;
	border: 0;
	padding: 8px 0;
	cursor: pointer;
	white-space: nowrap;
}
.ecsper-mega-trigger:hover,
.ecsper-mega-item.is-open .ecsper-mega-trigger {
	color: var(--ink);
}
.ecsper-mega-panel {
	position: absolute;
	top: 100%;
	left: 0;
	width: auto;
	min-width: 240px;
	max-width: 560px;
	background: var(--wp--preset--color--paper, #FFFFFF);
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-radius: 12px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
	padding: 16px 0;
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.ecsper-mega-item:last-child .ecsper-mega-panel {
	left: auto;
	right: 0;
}
.ecsper-mega-item.is-open .ecsper-mega-panel,
.ecsper-mega-panel[aria-hidden="false"] {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}
.ecsper-mega-panel-inner {
	margin: 0;
	padding: 0;
}
.ecsper-mega-cols {
	display: grid;
	gap: 32px 48px;
}
.ecsper-mega-cols--2 { grid-template-columns: 1fr 1fr; }
.ecsper-mega-cols--3 { grid-template-columns: 1fr 1fr 1fr; }
.ecsper-mega-cols--4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.ecsper-mega-group {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink3);
	margin: 0 0 10px;
}
.ecsper-mega-note {
	font-family: var(--bd);
	font-size: 12px;
	font-style: italic;
	color: var(--ink3);
	margin: -4px 0 10px;
}
.ecsper-mega-panel .ecsper-mega-link {
	display: block;
	padding: 8px 24px;
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--ink, var(--ink));
	text-decoration: none;
	min-height: 0;
	transition: background 0.1s;
}
.ecsper-mega-panel .ecsper-mega-link:hover {
	background: var(--wp--preset--color--bg, #F4F5F7);
	color: var(--wp--preset--color--ink, var(--ink));
	text-decoration: none;
}
.ecsper-mega-link--hi {
	font-weight: 700;
	color: var(--ink);
}
.ecsper-mega-link--foot {
	color: var(--blue);
	font-size: 12px;
}
.ecsper-mega-badge {
	display: inline-block;
	font-family: var(--bd);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 100px;
}
.ecsper-mega-badge--coming {
	background: var(--purple-t);
	color: var(--purple);
}
.ecsper-mega-badge--road {
	background: var(--bg);
	color: var(--ink3);
}
.ecsper-mega-foot {
	margin-top: 24px;
	padding: 14px 16px;
	background: var(--bg);
	border-radius: 8px;
}
.ecsper-mega-foot .ecsper-mega-link {
	padding: 0;
	min-height: 0;
	color: var(--blue);
	font-size: 12px;
}
.ecsper-mega-list {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	min-width: 240px;
}
.ecsper-mega-heading--link {
	display: block;
	padding: 8px 24px;
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	text-transform: uppercase;
	text-decoration: none;
}
.ecsper-mega-heading--link:hover {
	color: var(--wp--preset--color--blue, var(--blue));
}
.ecsper-mega-divider {
	height: 1px;
	width: 100%;
	background: var(--wp--preset--color--line, #DDE1EA);
	margin: 8px 0;
}

@media (max-width: 899px) {
	.ecsper-header-inner,
	.ecsper-header-inner.ecsper-header-logo-left,
	.ecsper-header-inner.ecsper-header-logo-centre {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.ecsper-navwrap,
	.ecsper-header-nav,
	.ecsper-header-logo-left .ecsper-header-nav,
	.ecsper-header-logo-left .ecsper-navwrap {
		flex: 0 0 auto;
		order: 2;
		justify-content: flex-end;
		margin-left: auto;
	}
	.ecsper-brand .wp-block-site-logo img,
	.ecsper-header-logo img,
	.ecsper-header-logo svg {
		height: 36px;
		width: auto;
		max-width: none;
	}
	.ecsper-brand > .wp-block-site-title,
	.ecsper-brand > .wp-block-site-title.ecsper-header-logo,
	.ecsper-brand > .wp-block-site-title a {
		font-size: 36px;
	}
	.ecsper-header-actions {
		display: none !important;
	}
	.ecsper-brand,
	.ecsper-header-brand { order: 1; }
	.ecsper-nav-toggle {
		display: flex;
		order: 2;
		margin-left: auto;
	}
	.ecsper-mega {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--paper);
		border-bottom: 1px solid var(--lines);
		box-shadow: 0 16px 32px rgba(11, 14, 20, 0.06);
		padding: 8px 24px 20px;
		max-height: calc(100vh - 68px);
		overflow-y: auto;
	}
	.ecsper-mega.is-open { display: block; }
	.ecsper-mega-bar {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
	.ecsper-mega-trigger {
		width: 100%;
		min-height: 48px;
		text-align: left;
		padding: 12px 0;
	}
	.ecsper-mega-item {
		position: static;
	}
	.ecsper-mega-panel {
		position: static;
		left: auto;
		right: auto;
		width: auto;
		min-width: 0;
		max-width: none;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		padding: 0;
		opacity: 1;
		visibility: visible;
		pointer-events: none;
		transform: none;
		max-height: 0;
		overflow: hidden;
		transition: max-height 200ms ease;
	}
	.ecsper-mega-item.is-open .ecsper-mega-panel,
	.ecsper-mega-panel[aria-hidden="false"] {
		pointer-events: auto;
		max-height: 1600px;
		transform: none;
	}
	.ecsper-mega-panel-inner { padding: 0 0 12px; }
	.ecsper-mega-cols--2,
	.ecsper-mega-cols--3,
	.ecsper-mega-cols--4 { grid-template-columns: 1fr; gap: 20px; }
	.ecsper-mega-panel .ecsper-mega-link {
		min-height: 48px;
		padding: 12px 0;
	}
	.ecsper-mega-panel .ecsper-mega-link:hover {
		background: transparent;
	}
	.ecsper-mega-list { max-width: none; min-width: 0; }
}

/* ── P6c: featured images, related posts, event card links ─────────────── */
.ecsper-card-thumb {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--bg);
}
.ecsper-ev-image .ecsper-card-thumb {
	width: 100%;
	height: 100%;
	min-height: 180px;
	aspect-ratio: auto;
	border-radius: 0;
}
.ecsper-ins-card .ecsper-card-thumb,
.ecsper-related-card .ecsper-card-thumb {
	border-radius: 12px 12px 0 0;
}
.ecsper-card-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ecsper-ev-title-link {
	color: inherit;
	text-decoration: none;
}
.ecsper-ev-title-link:hover {
	color: var(--blue);
}
.ecsper-ev-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}
.ecsper-ev-view {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-ev-view:hover {
	text-decoration: underline;
}
.ecsper-related {
	background: var(--paper);
	padding: 80px 24px;
}
.ecsper-related-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-related-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin-bottom: 16px;
}
.ecsper-related-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--blue);
	margin-bottom: 16px;
	text-align: center;
}
.ecsper-related-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.ecsper-related-card {
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
}
.ecsper-related-card:hover {
	border-color: var(--blue);
	text-decoration: none;
	color: inherit;
}
.ecsper-related-body {
	padding: 24px 28px;
}
.ecsper-related-kicker {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--blue);
	margin-bottom: 8px;
}
.ecsper-related-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.3;
}
.ecsper-related-meta {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin-top: 8px;
}
.ecsper-related-excerpt {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink2);
	line-height: 1.55;
	margin: 10px 0 0;
}
@media (max-width: 768px) {
	.ecsper-related-grid {
		grid-template-columns: 1fr;
	}
	.ecsper-related {
		padding: 52px 24px;
	}
}

/* ── P7e: related insights on practice area pages ────────────────────────── */
.ecsper-related--insights {
	background: var(--bg);
}
.ecsper-related--insights .ecsper-related-grid {
	grid-template-columns: repeat(3, 1fr);
}
.ecsper-related--insights .ecsper-related-card {
	padding: 0;
}
.ecsper-related--insights .ecsper-related-body {
	padding: 24px;
}
.ecsper-related--insights .ecsper-related-meta {
	display: block;
	margin-top: 8px;
}
@media (max-width: 768px) {
	.ecsper-related--insights .ecsper-related-grid {
		grid-template-columns: 1fr;
	}
}

/* ── P6h: visual placeholders and featured image unification ─────────────── */
.ecsper-placeholder {
	background: linear-gradient(145deg, var(--wp--preset--color--bg, #F4F5F7) 0%, var(--wp--preset--color--line, #DDE1EA) 40%, var(--wp--preset--color--bg, #F4F5F7) 100%);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	box-shadow: 0 16px 48px rgba(0, 67, 166, 0.05);
	width: 100%;
}
.ecsper-placeholder-icon {
	width: 52px;
	height: 52px;
	border-radius: 13px;
	background: var(--wp--preset--color--paper, #FFFFFF);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.ecsper-placeholder-icon svg {
	width: 22px;
	height: 22px;
	color: var(--wp--preset--color--ink-3, #5F6672);
}
.ecsper-placeholder-label {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 11px;
	color: var(--wp--preset--color--ink-3, #5F6672);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.ecsper-placeholder-sub {
	font-size: 13px;
	color: var(--wp--preset--color--ink-3, #5F6672);
}

/* ── Unified hero (P6k-fix-1 I-05 / I-06; P6l all heroes centre) ─────────── */
.ecsper-hero {
	position: relative;
	overflow: hidden;
	padding: 96px 24px 80px;
	text-align: center !important;
}
.ecsper-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	filter: blur(4px);
	opacity: 0.12;
	transform: scale(1.1);
	pointer-events: none;
}
.ecsper-hero-content {
	position: relative;
	z-index: 1;
	max-width: 820px;
	margin: 0 auto;
	text-align: center;
}
.ecsper-hero-content * {
	text-align: center;
}
@media (max-width: 768px) {
	.ecsper-hero {
		padding: 64px 20px 56px;
	}
	.ecsper-hero-bg {
		filter: blur(6px);
		opacity: 0.10;
	}
}
.ecsper-insight-hero-title {
	font-family: var(--wp--preset--font-family--display, var(--dsp));
	font-size: clamp(28px, 3.5vw, 42px);
	font-weight: 400;
	line-height: 1.15;
	margin: 0 auto 16px;
	text-align: center;
}

.ecsper-section-paper { background: var(--wp--preset--color--paper, #FFFFFF); }
.ecsper-section-bg { background: var(--wp--preset--color--bg, #F4F5F7); }
.ecsper-section-bone { background: var(--wp--preset--color--bone, #F5F1EA); }

.ecsper-back-to-top {
	position: fixed;
	bottom: 32px;
	right: 32px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--wp--preset--color--blue, #0043A6);
	color: var(--wp--preset--color--paper, #FFFFFF);
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 999;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.15s ease;
	opacity: 0;
	transform: translateY(10px);
	pointer-events: none;
}
.ecsper-back-to-top.visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.ecsper-back-to-top:hover {
	background: var(--wp--preset--color--blue-d, #002F7A);
}
.ecsper-supplementary-img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
}
.ecsper-delivers-workflow,
.ecsper-delivers-visual,
.ecsper-pillars-visual {
	margin-top: 40px;
	clear: both;
}
.ecsper-product-card,
.ecsper-dcard {
	overflow: hidden;
}
.ecsper-product-card img,
.ecsper-dcard img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 8px 8px 0 0;
	object-fit: cover;
	max-height: 200px;
}
.ecsper-product-card .ecsper-card-thumb,
.ecsper-dcard .ecsper-card-thumb {
	border-radius: 14px 14px 0 0;
	margin: -1px -1px 16px;
	overflow: hidden;
	max-height: 200px;
}
.ecsper-res-item-thumb {
	flex: 0 0 120px;
	width: 120px;
	height: 80px;
	max-height: 80px;
	aspect-ratio: auto;
	margin-bottom: 0;
	border-radius: 8px;
	overflow: hidden;
}
.ecsper-res-item-thumb img,
.ecsper-res-item-thumb .ecsper-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* P6l / P7c: consistent section padding (R39). Heroes and CTA keep their own rhythm. */
.ecsper-section,
.ecsper-outcomes,
.ecsper-ch,
.ecsper-delivers,
.ecsper-trust-sec,
.ecsper-event-sec,
.ecsper-ov-sec,
.ecsper-faq-sec,
.ecsper-co-sec,
.ecsper-related,
.ecsper-sp,
.ecsper-legal,
.ecsper-forum-sponsors,
.ecsper-home-challenge,
.ecsper-home-delivers,
.ecsper-home-trust,
.ecsper-gap,
.ecsper-res,
.ecsper-conn,
.ecsper-cap,
section[class*="ecsper-"]:not(.ecsper-hero):not(.ecsper-banner):not(.ecsper-final-cta):not(.ecsper-insight-sources):not(.ecsper-tracker-cta) {
	padding-top: 80px;
	padding-bottom: 80px;
	padding-left: 24px;
	padding-right: 24px;
}
@media (max-width: 768px) {
	.ecsper-section,
	.ecsper-outcomes,
	.ecsper-ch,
	.ecsper-delivers,
	.ecsper-trust-sec,
	.ecsper-event-sec,
	.ecsper-ov-sec,
	.ecsper-faq-sec,
	.ecsper-co-sec,
	.ecsper-related,
	.ecsper-sp,
	.ecsper-legal,
	.ecsper-forum-sponsors,
	.ecsper-home-challenge,
	.ecsper-home-delivers,
	.ecsper-home-trust,
	.ecsper-gap,
	.ecsper-res,
	.ecsper-conn,
	.ecsper-cap,
	section[class*="ecsper-"]:not(.ecsper-hero):not(.ecsper-banner):not(.ecsper-final-cta):not(.ecsper-insight-sources):not(.ecsper-tracker-cta) {
		padding-top: 56px;
		padding-bottom: 56px;
		padding-left: 20px;
		padding-right: 20px;
	}
}
.ecsper-trust-sec--extend {
	padding-bottom: 0;
}
.ecsper-phero-name.ecsper-product-name-single {
	font-size: clamp(42px, 5.5vw, 60px);
}

/* ── P7a: site-blocks gap, hero box centre, mobile login, meta badge ─────── */
.wp-site-blocks > * + * {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}
.ecsper-breadcrumb,
.yoast-breadcrumb,
.wpseo-breadcrumbs {
	margin-bottom: 0 !important;
}
.ecsper-hero {
	margin-top: 0 !important;
}
.ecsper-phero-cta,
.ecsper-phero-tag,
.ecsper-phero-bracket,
.ecsper-ahero-cta,
.ecsper-rhero-nav,
.ecsper-hhero-ctas,
.ecsper-hero-meta,
.ecsper-hero-category {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.ecsper-hero-meta {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin-top: 12px;
	margin-bottom: 0;
}
.ecsper-hero-separator {
	margin: 0 8px;
	color: var(--wp--preset--color--ink-3, var(--ink3));
}
.ecsper-category-badge {
	display: inline-block;
	padding: 4px 16px;
	background: transparent;
	border: 1px solid var(--wp--preset--color--blue, var(--blue));
	color: var(--wp--preset--color--blue, var(--blue));
	border-radius: 100px;
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.ecsper-hero-category {
	margin-top: 12px;
}
.ecsper-mobile-menu-actions {
	display: none;
}
@media (max-width: 899px) {
	.ecsper-mobile-menu-actions {
		display: block;
	}
	.ecsper-mobile-login-btn {
		display: inline-block;
		width: auto;
		padding: 12px 0 0;
		background: none;
		color: var(--wp--preset--color--ink, var(--ink));
		text-align: left;
		border-radius: 0;
		border: none;
		border-top: 1px solid var(--wp--preset--color--line, var(--line));
		font-family: var(--wp--preset--font-family--sora, var(--bd));
		font-size: 14px;
		font-weight: 400;
		text-decoration: none;
		margin-top: 16px;
	}
	.ecsper-mobile-login-btn:hover {
		background: none;
		color: var(--wp--preset--color--ink, var(--ink));
		text-decoration: none;
	}
}

/* ── P7c: visual fixes (menu, resources, products, practice, padding, trust, forum) ─ */
.ecsper-product-tm,
sup.ecsper-product-tm {
	font-size: 0.5em;
	vertical-align: super;
	line-height: 0;
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-weight: 400;
}
.ecsper-conn-grid,
.ecsper-cap-grid {
	gap: 24px;
}
.ecsper-conn-card,
.ecsper-cap-card {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}
.ecsper-phero-cta-sub,
.ecsper-conn-cta-sub,
.ecsper-cta-sub {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}
.ecsper-res-item-thumb {
	position: relative;
	flex: 0 0 120px;
	width: 120px;
	height: 80px;
	overflow: hidden;
	border-radius: 8px;
}
.ecsper-card-overlay-badge {
	position: absolute;
	bottom: 6px;
	left: 6px;
	padding: 2px 10px;
	background: rgba(255, 255, 255, 0.75);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--ink, var(--ink));
	line-height: 1.4;
	z-index: 1;
}
.ecsper-res-item-body {
	flex: 1;
	min-width: 0;
}
.ecsper-res-item--toolkit .ecsper-res-item-meta,
.ecsper-tk-desc {
	display: none;
}
.ecsper-delivers-grid {
	width: 100%;
	align-items: start;
}
.ecsper-delivers-platform {
	align-items: start;
}
.ecsper-delivers-card,
.ecsper-dcard {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	min-height: 0;
	height: auto;
}
.ecsper-delivers-card img,
.ecsper-dcard img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	object-fit: cover;
}
.ecsper-dcard .ecsper-card-thumb {
	margin: 0 0 16px;
	max-width: 100%;
	border-radius: 8px;
}
.ecsper-vanta,
.ecsper-vanta-card {
	background: var(--wp--preset--color--ink, #0B0E14);
	color: var(--wp--preset--color--paper, #FFFFFF);
	padding: 32px;
	border-radius: 14px;
	border-color: transparent;
}
.ecsper-vanta-card .ecsper-vanta-title,
.ecsper-vanta-title {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(18px, 2vw, 24px);
	margin: 0 0 12px;
	color: var(--wp--preset--color--paper, #FFFFFF);
}
.ecsper-vanta-line {
	white-space: nowrap;
	font-size: clamp(12px, 1.5vw, 14px);
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin: 0 0 24px;
}
.ecsper-vanta .ecsper-vanta-line,
.ecsper-vanta-desc {
	white-space: nowrap;
	font-size: clamp(12px, 1.5vw, 14px);
	color: var(--wp--preset--color--paper, #FFFFFF);
}
.ecsper-vanta-link {
	color: var(--wp--preset--color--paper, #FFFFFF);
}
.ecsper-trust-assess-cta {
	box-sizing: border-box;
	width: 100%;
	max-width: 1140px;
	margin-left: auto;
	margin-right: auto;
}
.ecsper-trust-sec--extend {
	padding-bottom: 0;
}
.ecsper-forum-join-sec.ecsper-trust-sec--bg {
	background: var(--wp--preset--color--bg, #F4F5F7);
}
.ecsper-forum-join-sec.ecsper-trust-sec--bone {
	background: var(--wp--preset--color--bone, #F5F1EA);
}
@media (max-width: 900px) {
	.ecsper-delivers-grid {
		grid-template-columns: 1fr;
	}
	.ecsper-delivers-platform {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 768px) {
	.ecsper-delivers-grid {
		grid-template-columns: 1fr;
	}
	.ecsper-contact-grid {
		grid-template-columns: 1fr;
	}
}

/* Standard card (P8b). Scoped so Trust .ecsper-std-card is unchanged. */
.ecsper-std-card:has(.ecsper-std-card-grid) {
	background: var(--wp--preset--color--paper, #FFFFFF);
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-radius: 14px;
	padding: 32px;
	margin-bottom: 24px;
}

.ecsper-std-card-grid {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 28px;
	align-items: start;
}

@media (max-width: 768px) {
	.ecsper-std-card-grid {
		grid-template-columns: 1fr;
	}
}

.ecsper-std-card-img {
	width: 100%;
	border-radius: 10px;
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

.ecsper-std-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}

.ecsper-std-card-label {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--blue, #0043A6);
}

.ecsper-std-card-title {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(20px, 2.5vw, 28px);
	margin-bottom: 8px;
}

.ecsper-std-card-what,
.ecsper-std-card-section-text {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-2, var(--ink2));
}

.ecsper-std-card-section {
	border-top: 1px solid var(--wp--preset--color--line, #DDE1EA);
	padding-top: 20px;
	margin-top: 20px;
}

.ecsper-std-card-section-label {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--blue, var(--blue));
	margin-bottom: 10px;
}

.ecsper-std-card-features {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ecsper-std-card-features li {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	padding-left: 20px;
	position: relative;
	margin-bottom: 6px;
}

.ecsper-std-card-features li::before {
	content: "●";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--blue, var(--blue));
	font-size: 8px;
	top: 5px;
}

.ecsper-std-card-connections {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ecsper-std-card-conn {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	padding: 6px 0;
	border-bottom: 1px solid var(--wp--preset--color--line, #DDE1EA);
}

.ecsper-std-card-conn:last-child {
	border-bottom: none;
}

.ecsper-std-card-conn a {
	color: var(--wp--preset--color--ink, var(--ink));
	text-decoration: none;
}

.ecsper-std-card-conn a:hover {
	color: var(--wp--preset--color--blue, var(--blue));
}

.ecsper-badge {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 3px 10px;
	border-radius: 100px;
	text-transform: uppercase;
}

.ecsper-badge--available {
	background: var(--green-t);
	color: var(--green);
}

.ecsper-badge--coming {
	background: var(--amber-t);
	color: var(--warm-d);
}

.ecsper-badge--roadmap {
	background: var(--blue-t);
	color: var(--blue-d);
}

.ecsper-badge--sm {
	font-size: 9px;
	padding: 2px 8px;
}

.ecsper-std-card-cta {
	border-top: 1px solid var(--wp--preset--color--line, #DDE1EA);
	padding-top: 20px;
	margin-top: 20px;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.ecsper-std-card-more {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--blue, var(--blue));
	text-decoration: none;
}

.ecsper-std-card-more:hover {
	text-decoration: underline;
}

/* P8c: overview catalogues, sector archives, mega-menu sector links. */
.ecsper-overview-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-overview-head {
	font-family: var(--dsp);
	font-size: clamp(24px, 3vw, 36px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 16px;
}
.ecsper-overview-cards .ecsper-std-card:has(.ecsper-std-card-grid),
.ecsper-ov-cards .ecsper-std-card:has(.ecsper-std-card-grid) {
	margin-bottom: 0;
}
.ecsper-sector-products {
	background: var(--wp--preset--color--bg, #F4F5F7);
}
.ecsper-hero.ecsper-rhero {
	padding: 80px 24px;
}
.ecsper-sector-hero-inner {
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
}
.ecsper-rhero-title {
	font-family: var(--dsp);
	font-size: clamp(30px, 4vw, 44px);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.15;
	margin: 0 auto 16px;
	text-align: center;
}
.ecsper-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1.4;
	color: var(--blue);
	margin-bottom: 16px;
}
h2.ecsper-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1.4;
	color: var(--blue);
	margin: 0 0 16px;
}
a.ecsper-mega-heading,
a.ecsper-mega-group {
	display: inline-block;
	text-decoration: none;
	color: var(--ink3);
}
a.ecsper-mega-heading:hover,
a.ecsper-mega-group:hover {
	color: var(--blue);
}

/* Card v2: hero strip + two-column body (P8d). */
.ecsper-std-card--v2 {
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-radius: 14px;
	overflow: hidden;
	background: var(--wp--preset--color--paper, #FFFFFF);
	margin-bottom: 24px;
	padding: 0;
}

.ecsper-std-card-hero {
	position: relative;
	padding: 32px;
	background-size: cover;
	background-position: center;
	background-color: var(--wp--preset--color--bg, #F4F5F7);
	min-height: 120px;
	display: flex;
	align-items: flex-end;
}

.ecsper-std-card-hero-overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.ecsper-std-card-hero-content {
	position: relative;
	z-index: 1;
	width: 100%;
}

.ecsper-std-card-hero-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-bottom: 8px;
}

.ecsper-std-card--v2 .ecsper-std-card-title {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(20px, 2.5vw, 28px);
	margin: 0;
}

.ecsper-std-card--v2 .ecsper-std-card-what {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin: 0;
}

.ecsper-std-card-body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	border-top: 1px solid var(--wp--preset--color--line, #DDE1EA);
}

@media (max-width: 768px) {
	.ecsper-std-card-body {
		grid-template-columns: 1fr;
	}
	.ecsper-std-card-hero-top {
		flex-wrap: wrap;
	}
}

.ecsper-std-card-col1 {
	padding: 24px 32px;
	border-right: 1px solid var(--wp--preset--color--line, #DDE1EA);
}

@media (max-width: 768px) {
	.ecsper-std-card-col1 {
		border-right: none;
		border-bottom: 1px solid var(--wp--preset--color--line, #DDE1EA);
	}
}

.ecsper-std-card-col2 {
	padding: 24px 32px;
}

.ecsper-std-card--v2 .ecsper-std-card-section {
	border-top: none;
	padding-top: 0;
	margin-top: 0;
	margin-bottom: 20px;
}

.ecsper-std-card--v2 .ecsper-std-card-section:last-child {
	margin-bottom: 0;
}

.ecsper-std-card-conn-group {
	margin-bottom: 16px;
}

.ecsper-std-card-conn-heading {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 12px;
	font-weight: 600;
	color: var(--wp--preset--color--ink-3, var(--ink3));
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 6px;
	margin-top: 12px;
}

.ecsper-std-card-conn-group:first-of-type .ecsper-std-card-conn-heading {
	margin-top: 0;
}

.ecsper-std-card--v2 .ecsper-std-card-cta {
	border-top: 1px solid var(--wp--preset--color--line, #DDE1EA);
	padding: 16px 32px;
	margin-top: 0;
	display: flex;
	justify-content: flex-end;
}

.ecsper-overview-cards .ecsper-std-card--v2,
.ecsper-ov-cards .ecsper-std-card--v2 {
	margin-bottom: 24px;
}

/* Homepage Governance Gap + The Solution (P8d, P13a LL-13). */
.ecsper-home-gap {
	background: var(--wp--preset--color--bg, #F4F5F7);
}
.ecsper-home-solution {
	background: var(--wp--preset--color--paper, #FFFFFF);
}

.ecsper-home-head {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 400;
	color: var(--ink);
	margin: 0 auto 24px;
	max-width: 860px;
}

.ecsper-home-desc {
	font-family: var(--bd);
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink2);
	max-width: 720px;
	margin: 0 auto 12px;
}

.ecsper-home-sub {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 500;
	color: var(--ink);
	margin: 0 auto 8px;
}

.ecsper-gap-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	text-align: left;
	margin: 40px 0 0;
}

@media (max-width: 768px) {
	.ecsper-home-gap,
	.ecsper-home-solution {
		padding: 48px 24px;
	}
	.ecsper-gap-grid {
		grid-template-columns: 1fr;
	}
}

.ecsper-home-gap .ecsper-gap-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 28px 32px;
	text-align: left;
}
.ecsper-home-gap .ecsper-gap-card--accent {
	grid-column: 1 / -1;
	border: 1px solid var(--lines);
	border-left: 5px solid var(--red);
	border-radius: 4px 16px 16px 4px;
}
.ecsper-home-gap .ecsper-gap-num {
	color: var(--blue);
	font-weight: 600;
}
.ecsper-home-gap .ecsper-gap-card--accent .ecsper-gap-num {
	color: var(--red);
}
.ecsper-home-gap .ecsper-gap-card h3 {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 10px;
}

.ecsper-home-gap .ecsper-gap-card p {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0;
}
.ecsper-home-gap .ecsper-gap-key {
	font-weight: 700;
	color: var(--ink);
}
.ecsper-home-gap .ecsper-gap-key--red {
	color: var(--red);
}

.ecsper-gap-bridge {
	font-family: var(--dsp);
	font-size: clamp(18px, 2.4vw, 24px);
	font-style: normal;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.4;
	max-width: 720px;
	margin: 0 auto 36px;
}

.ecsper-gap-consequence {
	max-width: 760px;
	margin: 0 auto;
	padding: 32px;
	background: var(--wp--preset--color--bone, #F5F1EA);
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-radius: 14px;
	text-align: center;
}

.ecsper-gap-alert {
	width: 36px;
	height: 36px;
	margin: 0 auto 12px;
	border-radius: 50%;
	background: var(--wp--preset--color--amber-tint, #FFFBEB);
	color: var(--wp--preset--color--amber, #D97706);
	font-family: var(--bd);
	font-size: 18px;
	font-weight: 700;
	line-height: 36px;
}

.ecsper-gap-consequence h3 {
	font-family: var(--dsp);
	font-size: clamp(20px, 2.5vw, 28px);
	font-weight: 400;
	margin: 0 0 12px;
	color: var(--ink);
}

.ecsper-gap-consequence p {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.7;
	color: var(--ink2);
	margin: 0 0 20px;
}

.ecsper-gap-cta-sub {
	display: block;
	margin-top: 10px;
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
}

.ecsper-solution-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	text-align: center;
	margin-top: 40px;
}

@media (max-width: 768px) {
	.ecsper-solution-grid {
		grid-template-columns: 1fr;
	}
}

.ecsper-solution-card {
	background: var(--wp--preset--color--paper, #FFFFFF);
	border: 1px solid var(--wp--preset--color--line, #DDE1EA);
	border-radius: 14px;
	padding: 32px;
	text-align: center;
}

.ecsper-solution-card-header {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.ecsper-solution-card-header .ecsper-label {
	margin-bottom: 0;
}

.ecsper-solution-card h3 {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(20px, 2.5vw, 28px);
	margin-bottom: 12px;
}

.ecsper-solution-card p {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	line-height: 1.7;
	color: var(--wp--preset--color--ink-2, var(--ink2));
	margin-bottom: 20px;
}

.ecsper-solution-link {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--blue, var(--blue));
	text-decoration: none;
}

.ecsper-solution-link:hover {
	text-decoration: underline;
}

.ecsper-solution-card .ecsper-btn-warm,
.ecsper-solution-card .ecsper-btn-outline {
	margin-top: 4px;
}

/* Homepage Microsoft Partner statement (P9k). Geometric treatment only. */
.ecsper-home-partner-statement {
	position: relative;
	overflow: hidden;
	background: var(--wp--preset--color--ink, #0B0E14);
	isolation: isolate;
}
.ecsper-home-partner-statement::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 56px 56px;
	mask-image: radial-gradient(ellipse at center, #000 35%, transparent 80%);
}
.ecsper-home-partner-statement::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background:
		radial-gradient(ellipse at 20% 80%, rgba(0, 67, 166, 0.28) 0%, transparent 50%),
		radial-gradient(ellipse at 80% 20%, rgba(196, 112, 59, 0.16) 0%, transparent 45%);
	pointer-events: none;
}
.ecsper-partner-statement-inner {
	position: relative;
	z-index: 1;
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}
.ecsper-partner-statement-text {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: clamp(32px, 6vw, 56px);
	font-weight: 400;
	line-height: 1.15;
	color: #fff;
	margin: 0;
}

/* P9f: insight author byline and sources */
.ecsper-insight-hero-meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.ecsper-insight-byline {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 12px 0 0;
	text-align: left;
}

.ecsper-byline-photo,
.ecsper-byline-initials {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.ecsper-byline-initials {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--bg, #F4F5F7);
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: 14px;
	color: var(--wp--preset--color--ink, #0B0E14);
}

.ecsper-byline-text {
	display: flex;
	flex-direction: column;
}

.ecsper-byline-name {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--ink, #0B0E14);
	text-decoration: none;
}

.ecsper-byline-name:hover {
	color: var(--wp--preset--color--blue, #0043A6);
}

.ecsper-byline-role {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 12px;
	color: var(--wp--preset--color--ink-3, #5F6672);
}

.ecsper-insight-sources {
	margin-top: 40px;
	padding-top: 24px;
	padding-bottom: 0;
	padding-left: 0;
	padding-right: 0;
	border-top: 1px solid var(--wp--preset--color--line, #DDE1EA);
}

.ecsper-sources-heading {
	font-family: var(--wp--preset--font-family--georgia, var(--dsp));
	font-size: 18px;
	margin: 0 0 12px;
	color: var(--wp--preset--color--ink, #0B0E14);
}

.ecsper-sources-list {
	font-family: var(--wp--preset--font-family--sora, var(--bd));
	font-size: 13px;
	line-height: 1.7;
	color: var(--wp--preset--color--ink-2, #4B5563);
	padding-left: 20px;
	margin: 0;
}

.ecsper-sources-list a {
	color: var(--wp--preset--color--blue, #0043A6);
}

.ecsper-source-date {
	color: var(--wp--preset--color--ink-3, #5F6672);
}

/* AI Governance Tracker (P11a). Dark band scoped to .ecsper-tracker-section-dark. */
.ecsper-home-tracker {
	text-align: left;
}
.ecsper-tracker-section-dark {
	background: var(--ink);
}
.ecsper-tracker-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-home-tracker .ecsper-label {
	text-align: center;
	margin-bottom: 32px;
}
.ecsper-tracker-section-dark .ecsper-label,
.ecsper-tracker-section-dark h2.ecsper-label {
	color: var(--blue-l);
}
.ecsper-tracker-section-dark .ecsper-label--red,
.ecsper-tracker-section-dark h2.ecsper-label--red {
	color: var(--red);
}
.ecsper-home-tracker-cta {
	display: flex;
	justify-content: center;
	margin: 28px 0 0;
}
.ecsper-btn-capsule {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--red);
	color: var(--paper);
	border-radius: 100px;
	padding: 12px 24px;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.2;
	min-height: 44px;
	text-decoration: none;
}
.ecsper-btn-capsule:hover,
.ecsper-btn-capsule:focus {
	color: var(--paper);
	text-decoration: none;
}
.ecsper-tracker-grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 48px;
	align-items: center;
}
.ecsper-tracker-count {
	font-family: var(--dsp);
	font-size: clamp(56px, 7vw, 88px);
	font-weight: 400;
	line-height: 1;
	color: var(--ink);
	margin: 0 0 16px;
}
.ecsper-tracker-desc {
	font-family: var(--bd);
	font-size: 16px;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0 0 20px;
	max-width: 420px;
}
.ecsper-tracker-source,
.ecsper-tracker-more,
.ecsper-tracker-note,
.ecsper-tracker-chart-copy,
.ecsper-tracker-hero-meta,
.ecsper-tracker-case-sources {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.6;
	color: var(--ink3);
	margin: 0 0 12px;
}
.ecsper-tracker-more {
	margin-top: 8px;
}
.ecsper-tracker-latest {
	border: 1px solid var(--red);
	border-radius: 10px;
	padding: 14px 16px;
	background: color-mix(in srgb, var(--red) 8%, transparent);
	margin: 0 0 16px;
	max-width: 420px;
}
.ecsper-tracker-latest-title {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--red);
	margin: 0 0 6px;
}
.ecsper-tracker-latest-body {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.6;
	margin: 0;
}
.ecsper-tracker-visual .ecsper-tracker-source {
	margin-top: 12px;
	text-align: left;
}
.ecsper-tracker-more a,
.ecsper-tracker-source a,
.ecsper-tracker-bridge a,
.ecsper-tracker-hero-meta a,
.ecsper-tracker-cite a,
.ecsper-tracker-note a {
	color: var(--blue);
	text-decoration: underline;
}
.ecsper-tracker-visual {
	min-width: 0;
}
.ecsper-tracker-chart {
	width: 100%;
	height: auto;
	display: block;
}
.ecsper-home-tracker-chart-wrap {
	position: relative;
	width: 100%;
	height: 240px;
}
.ecsper-home-tracker-chart-canvas {
	width: 100% !important;
	height: 100% !important;
	display: block;
}
.ecsper-tracker-chart-label,
.ecsper-tracker-chart-axis {
	font-family: var(--bd);
	font-size: 11px;
	fill: var(--ink3);
}
.ecsper-tracker-chart-grid {
	stroke: rgba(255, 255, 255, 0.08);
	stroke-width: 1;
	fill: none;
}
.ecsper-tracker-note {
	margin-top: 16px;
}
.ecsper-tracker-section-dark .ecsper-tracker-count {
	color: #FFFFFF;
}
.ecsper-tracker-section-dark .ecsper-tracker-desc {
	color: rgba(255, 255, 255, 0.75);
}
.ecsper-tracker-section-dark .ecsper-tracker-source {
	color: rgba(255, 255, 255, 0.75);
}
.ecsper-tracker-section-dark .ecsper-tracker-source a {
	color: #FFFFFF;
	text-decoration: underline;
}
.ecsper-tracker-section-dark .ecsper-tracker-more a,
.ecsper-tracker-section-dark .ecsper-tracker-fulllink {
	color: var(--red);
	text-decoration: none;
}
.ecsper-tracker-section-dark .ecsper-tracker-more a:hover,
.ecsper-tracker-section-dark .ecsper-tracker-more a:focus,
.ecsper-tracker-section-dark .ecsper-tracker-fulllink:hover,
.ecsper-tracker-section-dark .ecsper-tracker-fulllink:focus {
	opacity: 0.8;
	text-decoration: underline;
}
.ecsper-tracker-section-dark .ecsper-tracker-latest-body,
.ecsper-tracker-section-dark .ecsper-tracker-latest-body a {
	color: var(--paper);
	text-decoration: none;
}
.ecsper-tracker-section-dark .ecsper-tracker-latest-body a:hover,
.ecsper-tracker-section-dark .ecsper-tracker-latest-body a:focus {
	text-decoration: underline;
}
.ecsper-tracker-section-dark .ecsper-tracker-bridge {
	color: rgba(255, 255, 255, 0.7);
}
.ecsper-tracker-section-dark .ecsper-tracker-bridge a {
	color: #FFFFFF;
	text-decoration: underline;
}
.ecsper-tracker-section-dark .ecsper-tracker-chart-label,
.ecsper-tracker-section-dark .ecsper-tracker-chart-axis {
	fill: rgba(255, 255, 255, 0.75);
}
.ecsper-tracker-section-dark .ecsper-tracker-chart-copy {
	color: rgba(255, 255, 255, 0.75);
}
.ecsper-tracker-bridge {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: baseline;
	gap: 8px;
	font-family: var(--dsp);
	font-size: clamp(18px, 2.4vw, 24px);
	font-style: normal;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.4;
	max-width: 1140px;
	margin: 40px auto 0;
	text-align: center;
}
.ecsper-tracker-bridge a {
	display: inline;
	margin-left: 0;
	white-space: nowrap;
	flex-shrink: 0;
	font-family: var(--bd);
	font-size: 15px;
	font-style: normal;
	font-weight: 600;
}

.ecsper-tracker-page-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-tracker-chart-sec,
.ecsper-tracker-stats-sec,
.ecsper-tracker-explore-sec,
.ecsper-tracker-risk-sec,
.ecsper-tracker-cases-sec,
.ecsper-tracker-method-sec {
	text-align: left;
}
.ecsper-tracker-chart-sec,
.ecsper-tracker-chart-grid {
	max-width: 100%;
	overflow-x: hidden;
}
.ecsper-tracker-chart-sec .ecsper-label,
.ecsper-tracker-explore-sec .ecsper-label,
.ecsper-tracker-risk-sec .ecsper-label,
.ecsper-tracker-cases-sec .ecsper-label,
.ecsper-tracker-method-sec .ecsper-label {
	margin-bottom: 24px;
}
.ecsper-tracker-chart-copy {
	max-width: 720px;
	margin-top: 20px;
	color: var(--ink2);
	font-size: 15px;
}
.ecsper-tracker-hero-meta {
	margin-top: 16px;
}
.ecsper-tracker-cases {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.ecsper-tracker-case {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
}
.ecsper-tracker-badge {
	display: inline-block;
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 100px;
	padding: 4px 10px;
	margin-bottom: 12px;
}
.ecsper-tracker-badge--red {
	background: var(--red-t);
	color: var(--red);
}
.ecsper-tracker-badge--amber {
	background: var(--amber-t);
	color: var(--warm-d);
}
.ecsper-tracker-badge--blue {
	background: var(--blue-t);
	color: var(--blue-d);
}
.ecsper-tracker-case-date {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink3);
	margin: 0 0 8px;
}
.ecsper-tracker-case-title {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 12px;
}
.ecsper-tracker-case-title a {
	color: inherit;
	text-decoration: none;
}
.ecsper-tracker-case-title a:hover,
.ecsper-tracker-case-title a:focus {
	color: var(--blue);
	text-decoration: underline;
}
.ecsper-tracker-case-footer {
	margin: auto 0 0;
	padding-top: 8px;
}
.ecsper-tracker-case-summary {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0 0 12px;
}
.ecsper-tracker-method {
	max-width: 720px;
}
.ecsper-tracker-method p {
	font-family: var(--bd);
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink2);
	margin: 0 0 16px;
}
.ecsper-tracker-cta {
	background: var(--blue);
	color: var(--paper);
	padding: 80px 24px;
	text-align: center;
}
.ecsper-tracker-cta-inner {
	max-width: 720px;
	margin: 0 auto;
}
.ecsper-tracker-cta h2 {
	font-family: var(--dsp);
	font-size: clamp(24px, 3vw, 36px);
	font-weight: 400;
	color: var(--paper);
	margin: 0 0 24px;
}
.ecsper-tracker-cta .ecsper-btn-primary {
	display: inline-block;
}

.ecsper-tracker-metrics {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 16px;
}
.ecsper-tracker-metrics .ecsper-tracker-metric {
	grid-column: span 2;
}
.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(5) {
	grid-column: 2 / span 2;
}
.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(6) {
	grid-column: 4 / span 2;
}
.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(7) {
	grid-column: 6 / span 2;
}
.ecsper-tracker-metric {
	background: var(--paper);
	border-radius: 12px;
	border: 1px solid var(--line);
	padding: 24px;
	display: flex;
	flex-direction: column;
}
.ecsper-tracker-metric-num {
	font-family: var(--dsp);
	font-size: 36px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-tracker-metric-pct {
	font-size: 20px;
}
.ecsper-tracker-metric-label {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.45;
	color: var(--ink3);
	margin: 0;
}
.ecsper-tracker-metric-source {
	font-family: var(--bd);
	font-size: 11px;
	line-height: 1.4;
	color: var(--ink3);
	margin: auto 0 0;
	padding-top: 12px;
}

.ecsper-tracker-present-bar {
	display: flex;
	justify-content: flex-end;
	max-width: 1140px;
	margin: 0 auto;
	padding: 12px 24px 0;
}
.ecsper-tracker-present-btn,
.ecsper-tx-cols-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	color: var(--ink2);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	min-height: 44px;
	padding: 12px 14px;
	cursor: pointer;
}
.ecsper-tracker-present-btn:hover,
.ecsper-tx-cols-btn:hover {
	color: var(--ink);
}
.ecsper-tracker-icon {
	display: block;
	flex-shrink: 0;
}
.ecsper-tracker-hero-count {
	display: none;
	font-family: var(--dsp);
	font-size: 32px;
	font-weight: 400;
	line-height: 1;
	color: var(--ink);
	margin: 0;
}
.ecsper-tracker-range {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0 0 24px;
}
.ecsper-tracker-range-btn {
	appearance: none;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.12);
	min-height: 44px;
	padding: 12px 14px;
	cursor: pointer;
}
.ecsper-tracker-range-btn + .ecsper-tracker-range-btn {
	margin-left: -1px;
}
.ecsper-tracker-range-btn:first-child {
	border-radius: 6px 0 0 6px;
}
.ecsper-tracker-range-btn:last-child {
	border-radius: 0 6px 6px 0;
}
.ecsper-tracker-range-btn.is-active {
	color: #FFFFFF;
	background: rgba(255, 255, 255, 0.15);
	border-color: rgba(255, 255, 255, 0.15);
	position: relative;
	z-index: 1;
}
.ecsper-tracker-highlights {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin: 0 0 28px;
}
.ecsper-tracker-highlight {
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 14px;
	background: transparent;
}
.ecsper-tracker-highlight-num {
	font-family: var(--dsp);
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
	color: #FFFFFF;
	margin: 0 0 6px;
}
.ecsper-tracker-highlight-label {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.6);
	margin: 0;
}
.ecsper-tracker-chart-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.ecsper-tracker-chart-panel--wide {
	grid-column: 1 / -1;
}
.ecsper-tracker-chart-title {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--blue-l);
	margin: 0 0 12px;
}
.ecsper-tracker-chart-wrap {
	position: relative;
	height: 250px;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}
.ecsper-tracker-chart-wrap canvas {
	width: 100% !important;
	max-width: 100%;
	height: 100% !important;
}
.ecsper-tracker-chart-wrap--field {
	height: 320px;
}

.ecsper-tracker-risks {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.ecsper-tracker-risk {
	background: var(--paper);
	border-radius: 4px 16px 16px 4px;
	border: 1px solid var(--lines);
	border-left: 5px solid var(--red);
	padding: 18px 24px;
	display: flex;
	flex-direction: column;
}
.ecsper-tracker-risk--red {
	border-left-color: var(--red);
}
.ecsper-tracker-risk--amber {
	border-left-color: var(--amber);
}
.ecsper-tracker-risk--blue {
	border-left-color: var(--blue);
}
.ecsper-tracker-risk-title {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-tracker-risk-question {
	font-family: var(--bd);
	font-size: 15px;
	font-style: normal;
	line-height: 1.45;
	color: var(--ink2);
	margin: 0 0 16px;
}
.ecsper-tracker-risk-evidence {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
}
.ecsper-tracker-risk-evidence li {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.55;
	color: var(--ink2);
	margin: 0 0 10px;
}
.ecsper-tracker-risk-evidence li:last-child {
	margin-bottom: 0;
}
.ecsper-tracker-risk-footer {
	margin: auto 0 0;
}
.ecsper-tracker-risk-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 12px 0;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	color: var(--blue);
	text-decoration: none;
}
.ecsper-tracker-risk-link::after {
	content: ' \2192';
}
.ecsper-tracker-risk-link:hover,
.ecsper-tracker-risk-link:focus {
	color: var(--blue-d);
	text-decoration: underline;
}

.ecsper-tx-filters {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-bottom: 16px;
	align-items: end;
}
.ecsper-tx-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	color: var(--ink3);
}
.ecsper-tx-field select,
.ecsper-tx-field input {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	min-height: 44px;
	padding: 12px 14px;
	width: 100%;
}
.ecsper-tx-reset {
	appearance: none;
	align-self: end;
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 7px 14px;
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	min-height: 44px;
	background: transparent;
	color: var(--ink2);
	cursor: pointer;
}
.ecsper-tx-reset:hover,
.ecsper-tx-reset:focus {
	color: var(--ink);
	border-color: var(--ink3);
}
.ecsper-tx-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 12px;
}
.ecsper-tx-count {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin: 0;
}
.ecsper-tx-cols {
	position: relative;
}
.ecsper-tx-cols-menu {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	min-width: 200px;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	padding: 10px 12px;
	z-index: 4;
}
.ecsper-tx-cols-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink);
	padding: 6px 0;
}
.ecsper-tx-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: var(--paper);
}
.ecsper-tx-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 720px;
}
.ecsper-tx-table th,
.ecsper-tx-table td {
	font-family: var(--bd);
	font-size: 13px;
	text-align: left;
	padding: 12px 14px;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
}
.ecsper-tx-table th {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink3);
	background: var(--bg);
	border-bottom: 1px solid var(--line);
	padding: 0;
}
.ecsper-tx-sort {
	appearance: none;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 44px;
	background: none;
	border: 0;
	padding: 12px 14px;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	color: inherit;
	cursor: pointer;
	white-space: nowrap;
}
.ecsper-tx-sort.is-active {
	color: var(--ink);
}
.ecsper-tx-sort-arrow {
	font-size: 10px;
	margin-left: 2px;
}
.ecsper-tx-table.is-hide-date [data-col="date"],
.ecsper-tx-table.is-hide-name [data-col="name"],
.ecsper-tx-table.is-hide-court [data-col="court"],
.ecsper-tx-table.is-hide-state [data-col="state"],
.ecsper-tx-table.is-hide-party [data-col="party"],
.ecsper-tx-table.is-hide-field [data-col="field"],
.ecsper-tx-table.is-hide-penalty [data-col="penalty"] {
	display: none;
}
.ecsper-tx-row {
	cursor: pointer;
}
.ecsper-tx-row--even {
	background: rgba(0, 0, 0, 0.02);
}
.ecsper-tx-row:hover,
.ecsper-tx-row:focus {
	background: rgba(0, 0, 0, 0.04);
	outline: none;
}
.ecsper-tx-empty {
	color: var(--ink3);
	text-align: center;
}
.ecsper-tx-detail td {
	background: #F4F5F7;
	padding: 16px 14px 20px;
}
.ecsper-tx-detail p {
	margin: 0 0 8px;
	color: var(--ink2);
	line-height: 1.55;
}
.ecsper-tx-detail p:last-child {
	margin-bottom: 0;
}
.ecsper-tx-detail span {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink3);
	margin-bottom: 2px;
}
.ecsper-tx-pill {
	display: inline-block;
	border-radius: 100px;
	padding: 4px 10px;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.3;
	white-space: nowrap;
}
.ecsper-tx-pill--lawyer {
	background: var(--red-t);
	color: var(--red);
}
.ecsper-tx-pill--prose {
	background: var(--bg);
	color: var(--ink2);
}
.ecsper-tx-pill--expert {
	background: var(--amber-t);
	color: var(--warm-d);
}
.ecsper-tx-pill--judge {
	background: var(--blue-t);
	color: var(--blue-d);
}
.ecsper-tx-pill--other {
	background: var(--bg);
	color: var(--ink2);
}
.ecsper-tx-pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 16px;
}
.ecsper-tx-page-btn {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	color: var(--blue);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	min-height: 44px;
	padding: 12px 14px;
	cursor: pointer;
}
.ecsper-tx-page-btn:disabled {
	color: var(--ink3);
	cursor: default;
}
.ecsper-tx-page {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	margin: 0;
}
.ecsper-tracker-cite {
	color: var(--ink3);
	font-size: 14px;
}
.ecsper-tracker-method a {
	color: var(--blue);
	text-decoration: underline;
}

@media (max-width: 900px) {
	.ecsper-tracker-grid,
	.ecsper-tracker-cases,
	.ecsper-tracker-chart-grid,
	.ecsper-tx-filters {
		grid-template-columns: 1fr;
	}
	.ecsper-tracker-latest {
		max-width: none;
	}
	.ecsper-tracker-chart-panel--wide {
		grid-column: auto;
	}
	.ecsper-tracker-metrics {
		grid-template-columns: 1fr 1fr;
	}
	.ecsper-tracker-metrics .ecsper-tracker-metric,
	.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(5),
	.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(6),
	.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(7) {
		grid-column: auto;
	}
}

@media (max-width: 768px) {
	.ecsper-tracker-present-bar {
		display: none;
	}
	body.ecsper-tracker-present .ecsper-tracker-present-bar {
		display: flex;
	}
	.ecsper-tracker-highlights,
	.ecsper-tracker-risks {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.ecsper-tracker-count {
		font-size: 48px;
	}
	.ecsper-tracker-bridge {
		display: block;
		flex-wrap: wrap;
		margin-top: 28px;
	}
	.ecsper-tracker-bridge a {
		display: inline;
		white-space: normal;
		margin: 0;
	}
	.ecsper-tracker-metrics,
	.ecsper-tracker-risks {
		grid-template-columns: 1fr;
	}
	.ecsper-tracker-metrics .ecsper-tracker-metric,
	.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(5),
	.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(6),
	.ecsper-tracker-metrics .ecsper-tracker-metric:nth-child(7) {
		grid-column: auto;
	}
	.ecsper-tracker-chart-wrap,
	.ecsper-tracker-chart-wrap--field {
		height: 240px;
	}
	.ecsper-tracker-range-btn {
		flex: 1 1 50%;
	}
	.ecsper-tracker-range-btn:first-child,
	.ecsper-tracker-range-btn:last-child {
		border-radius: 0;
	}
}

/* Presentation mode (P12c). Class is on body and the page wrapper so
   header/footer outside the wrapper can hide. */
body.ecsper-tracker-present .wp-site-header,
body.ecsper-tracker-present .ecsper-header,
body.ecsper-tracker-present header.wp-block-template-part,
body.ecsper-tracker-present .ecsper-nav,
body.ecsper-tracker-present .wp-site-footer,
body.ecsper-tracker-present .ecsper-footer,
body.ecsper-tracker-present footer.wp-block-template-part,
body.ecsper-tracker-present .ecsper-breadcrumb,
body.ecsper-tracker-present .yoast-breadcrumb,
body.ecsper-tracker-present .wpseo-breadcrumbs {
	display: none !important;
}
body.ecsper-tracker-present .ecsper-tracker-page-inner,
.ecsper-tracker-page.ecsper-tracker-present .ecsper-tracker-page-inner {
	max-width: 100%;
}
body.ecsper-tracker-present .ecsper-tracker-present-bar {
	max-width: none;
	padding-right: 32px;
}
body.ecsper-tracker-present .ecsper-tracker-page .ecsper-section,
body.ecsper-tracker-present .ecsper-tracker-page section[class*="ecsper-"]:not(.ecsper-hero):not(.ecsper-tracker-cta) {
	padding-top: 120px;
	padding-bottom: 120px;
}
body.ecsper-tracker-present .ecsper-tracker-hero-count {
	display: block;
}
body.ecsper-tracker-present .ecsper-tracker-hero-line {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 16px;
}
body.ecsper-tracker-present .ecsper-tracker-hero-count,
body.ecsper-tracker-present .ecsper-tracker-page .ecsper-rhero-head {
	margin: 0;
	width: auto;
	flex: 0 0 auto;
}
body.ecsper-tracker-present .ecsper-tracker-page .ecsper-rhero-desc,
body.ecsper-tracker-present .ecsper-tracker-page .ecsper-tracker-hero-meta {
	display: none;
}
body.ecsper-tracker-present .ecsper-tracker-metric-num {
	font-size: 48px;
}
body.ecsper-tracker-present .ecsper-tracker-chart-wrap {
	height: 350px;
}
body.ecsper-tracker-present .ecsper-tracker-chart-wrap--field {
	height: 420px;
}
body.ecsper-tracker-present .ecsper-tx-table th,
body.ecsper-tracker-present .ecsper-tx-table td {
	font-size: 15px;
	padding: 16px 16px;
}

/* P13a: circle gauges, stakeholders, combined risk/cases, unified stats, mobile explorer. */
.ecsper-gauge {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.ecsper-gauge-ring {
	position: relative;
	width: 72px;
	height: 72px;
}
.ecsper-gauge-svg {
	display: block;
	width: 72px;
	height: 72px;
}
.ecsper-gauge-num {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--dsp);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
}
.ecsper-gauge-label {
	font-family: var(--bd);
	font-size: 12px;
	line-height: 1.35;
	color: var(--ink3);
	text-align: center;
	margin: 0;
	max-width: 120px;
}
.ecsper-hhero-gauges-wrap,
.ecsper-hhero-stats-wrap {
	border-top: 1px solid rgba(0, 0, 0, 0.08);
	margin: 8px auto 28px;
	padding-top: 28px;
	max-width: 720px;
	width: 100%;
}
.ecsper-hhero-stats-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 24px 32px;
	width: 100%;
	box-sizing: border-box;
}
.ecsper-hhero-stats-title {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--blue);
	margin: 0 0 16px;
	text-align: center;
}
.ecsper-hhero-gauges,
.ecsper-hhero-stats {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: clamp(24px, 5vw, 48px);
	flex-wrap: wrap;
}
.ecsper-hhero-stat {
	text-align: center;
	min-width: 0;
}
.ecsper-hhero-stat-value {
	font-family: var(--dsp);
	font-size: clamp(36px, 5vw, 48px);
	font-weight: 400;
	line-height: 1;
}
.ecsper-hhero-stat-value--ink {
	color: var(--ink);
}
.ecsper-hhero-stat-value--red {
	color: var(--red);
}
.ecsper-hhero-stat-suffix {
	font-size: 0.6em;
}
.ecsper-hhero-stat-label {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	margin-top: 8px;
}
.ecsper-hhero-gauge-source,
.ecsper-stats-gauge-source,
.ecsper-hhero-stat-source {
	font-family: var(--bd);
	font-size: 12px;
	color: var(--ink3);
	text-align: center;
	margin: 16px 0 0;
}
.ecsper-hhero-stat-source a {
	color: var(--blue);
	text-decoration: none;
}
.ecsper-hhero-stat-source a:hover,
.ecsper-hhero-stat-source a:focus {
	text-decoration: underline;
}
.ecsper-home-stakeholders {
	background: var(--paper);
}
.ecsper-stake-lead {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink2);
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}
.ecsper-stake-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	text-align: center;
	margin-top: 32px;
}
.ecsper-stake-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 28px 24px;
}
.ecsper-stake-punch {
	font-family: var(--dsp);
	font-size: clamp(18px, 2.5vw, 24px);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.4;
	text-align: center;
	max-width: 720px;
	margin: 24px auto 0;
}
.ecsper-stake-icon {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--blue-t);
	color: var(--blue);
	display: grid;
	place-items: center;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	margin: 0 auto 12px;
}
.ecsper-stake-card h3 {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 8px;
}
.ecsper-stake-card p {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0;
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}
.ecsper-risk-cases-inner {
	max-width: 1140px;
	margin: 0 auto;
}
.ecsper-home-risk-cases .ecsper-label {
	text-align: center;
	margin-bottom: 28px;
}
.ecsper-risk-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
}
.ecsper-home-risk {
	padding: 16px 16px 16px 18px;
}
.ecsper-home-risk .ecsper-tracker-risk-question {
	margin-bottom: 0;
}
.ecsper-home-risk-scroll {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-height: 44px;
	margin: 24px auto 0;
	padding: 8px 12px;
	text-align: center;
	text-decoration: none;
	color: var(--ink2);
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.4;
}
.ecsper-home-risk-scroll:hover,
.ecsper-home-risk-scroll:focus {
	color: var(--ink);
	text-decoration: none;
}
.ecsper-home-risk-scroll-arrow {
	display: flex;
	color: var(--blue);
	animation: ecsper-bounce 2s ease-in-out infinite;
}
@keyframes ecsper-bounce {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(3px);
	}
}
@media (prefers-reduced-motion: reduce) {
	.ecsper-home-risk-scroll-arrow {
		animation: none;
	}
}
.ecsper-stats-tier + .ecsper-stats-tier {
	border-top: 1px solid var(--line);
	margin-top: 28px;
	padding-top: 28px;
}
.ecsper-stats-tier-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--blue);
	text-align: center;
	margin: 0 0 16px;
}
.ecsper-tracker-metrics--evidence,
.ecsper-tracker-metrics--pressure {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.ecsper-tracker-metrics--evidence .ecsper-tracker-metric,
.ecsper-tracker-metrics--pressure .ecsper-tracker-metric {
	grid-column: auto;
}
.ecsper-stats-gauges {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	flex-wrap: wrap;
}
.ecsper-stats-join {
	font-family: var(--dsp);
	font-size: 16px;
	font-style: normal;
	color: var(--ink3);
}
.ecsper-tx-sort-mobile,
.ecsper-tx-mobile-hint,
.ecsper-tx-cards {
	display: none;
}
.ecsper-tx--table .ecsper-tx-sort-mobile,
.ecsper-tx--table .ecsper-tx-mobile-hint,
.ecsper-tx--table .ecsper-tx-cards {
	display: none;
}
.ecsper-tx--cards .ecsper-tx-table-wrap,
.ecsper-tx--cards .ecsper-tx-cols {
	display: none;
}
.ecsper-tx--cards .ecsper-tx-sort-mobile,
.ecsper-tx--cards .ecsper-tx-cards {
	display: block;
}
.ecsper-tx--cards .ecsper-tx-mobile-hint {
	display: block;
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin: 0 0 12px;
}
.ecsper-tx--cards .ecsper-tx-sort-mobile {
	margin: 0 0 12px;
}
.ecsper-tx-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
	margin-bottom: 10px;
	cursor: pointer;
}
.ecsper-tx-card-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}
.ecsper-tx-card-date {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	color: var(--ink3);
}
.ecsper-tx-card-title {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 6px;
}
.ecsper-tx-card-sub {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	margin: 0 0 6px;
}
.ecsper-tx-card-penalty {
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	color: var(--red);
	margin: 0;
}
.ecsper-tx-card-detail {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}
.ecsper-tx-card-detail p {
	margin: 0 0 8px;
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.5;
	color: var(--ink2);
}
.ecsper-tx-card-detail p:last-child {
	margin-bottom: 0;
}
.ecsper-tx-card-detail span {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink3);
	margin-bottom: 2px;
}

@media (max-width: 767px) {
	.ecsper-tx-filters {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.ecsper-home-gap .ecsper-gap-grid,
	.ecsper-tracker-metrics--evidence,
	.ecsper-tracker-metrics--pressure {
		grid-template-columns: 1fr;
	}
	.ecsper-risk-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ecsper-home-gap .ecsper-gap-card--accent {
		grid-column: auto;
	}
}

@media (max-width: 480px) {
	.ecsper-gauge-ring,
	.ecsper-gauge-svg {
		width: 56px;
		height: 56px;
	}
	.ecsper-gauge-num {
		font-size: 13px;
	}
	.ecsper-hhero-gauges {
		gap: 16px;
	}
	.ecsper-hhero-stats-card {
		padding: 20px 16px;
	}
	.ecsper-hhero-stats {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}
	.ecsper-hhero-stat-value {
		font-size: 36px;
	}
	.ecsper-stake-grid,
	.ecsper-risk-grid {
		grid-template-columns: 1fr;
	}
	.ecsper-stats-join {
		width: 100%;
		text-align: center;
	}
}

/* P15b / P16a-fix: Ecsper AI Risk Tracker six-tab dashboard. */
.ecsper-tracker-page {
	overflow-x: hidden;
	--dash-text: #f4f0e9;
	--dash-muted: #8a97a8;
	--dash-subtle: #6b7a8d;
	--dash-panel: rgba(255, 255, 255, 0.04);
	--dash-panel-2: rgba(255, 255, 255, 0.03);
	--dash-border: rgba(255, 255, 255, 0.08);
	--dash-track: rgba(255, 255, 255, 0.08);
	--dash-expert-a: #1e1520;
	--dash-expert-b: #151520;
	--dash-expert-kicker: #ffabab;
	--dash-expert-pill: #ffc1c1;
	--dash-expert-border: rgba(183, 28, 28, 0.25);
	--dash-expert-pill-border: rgba(183, 28, 28, 0.3);
	background: var(--ink);
	color: var(--dash-text);
}
.ecsper-dash-hero,
.ecsper-dash-panel,
.ecsper-dash-block {
	background: var(--ink);
	color: var(--dash-text);
}
.ecsper-dash-hero {
	padding: 28px 24px 8px;
	overflow: hidden;
}
.ecsper-dash-topbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 32px;
}
.ecsper-dash-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}
.ecsper-dash-brand-capsule {
	display: inline-flex;
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 100px;
	padding: 6px 16px;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.5px;
	color: #f4f0e9;
	white-space: nowrap;
}
.ecsper-dash-exposure,
.ecsper-tracker-cta-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border-radius: 100px;
	background: var(--red);
	color: var(--paper);
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	max-width: 100%;
	box-sizing: border-box;
	white-space: normal;
	text-align: center;
}
.ecsper-dash-exposure:hover,
.ecsper-dash-exposure:focus {
	color: var(--paper);
	text-decoration: none;
	background: var(--red);
	filter: brightness(1.05);
}
.ecsper-dash-headline {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 40px;
	align-items: start;
}
.ecsper-dash-kicker {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--blue-l);
	margin: 0 0 12px;
}
.ecsper-dash-kicker--expert {
	color: var(--dash-expert-kicker);
	margin: 0;
}
.ecsper-dash-kicker--dark {
	color: var(--blue);
}
.ecsper-dash-count {
	font-family: var(--dsp);
	font-size: 72px;
	font-weight: 500;
	line-height: 0.95;
	color: var(--dash-text);
	margin: 0 0 16px;
}
.ecsper-dash-count-label,
.ecsper-dash-lede {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.55;
	color: var(--dash-muted);
	margin: 0 0 12px;
	max-width: 520px;
}
.ecsper-dash-growth {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 600;
	color: var(--red);
	margin: 0 0 10px;
}
.ecsper-dash-source {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	margin: 8px 0 0;
	font-family: var(--bd);
	font-size: 11px;
	line-height: 1.4;
	color: var(--dash-muted);
	text-decoration: underline;
	cursor: pointer;
	text-align: left;
}
.ecsper-dash-source:hover,
.ecsper-dash-source:focus {
	color: var(--blue-l);
}
.ecsper-dash-source--dark {
	color: var(--ink3);
}
.ecsper-dash-source--dark:hover,
.ecsper-dash-source--dark:focus {
	color: var(--blue);
}
.ecsper-dash-metrics {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 20px;
}
.ecsper-dash-metric {
	padding: 4px 0 4px 16px;
	border-left: 2px solid rgba(255, 255, 255, 0.16);
}
.ecsper-dash-metric-num {
	font-family: var(--dsp);
	font-size: 32px;
	font-weight: 500;
	line-height: 1;
	color: var(--dash-text);
	margin: 0 0 6px;
}
.ecsper-dash-metric-num.is-red,
.ecsper-dash-bar-num.is-red,
.ecsper-dash-expert-num.is-red {
	color: var(--red);
}
.ecsper-dash-bar-num.is-blue,
.ecsper-dash-expert-num.is-blue {
	color: var(--blue-l);
}
.ecsper-dash-metric-label,
.ecsper-dash-expert-label {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.4;
	color: var(--dash-muted);
	margin: 0;
}
.ecsper-tracker-page .ecsper-tracker-present-bar {
	padding: 8px 24px 0;
}
.ecsper-tracker-page .ecsper-tracker-present-btn {
	background: var(--dash-panel);
	border-color: var(--dash-border);
	color: var(--dash-muted);
}
.ecsper-tracker-page .ecsper-tracker-present-btn:hover {
	color: var(--dash-text);
}
.ecsper-dash-tabbar {
	display: flex;
	flex-wrap: nowrap;
	gap: 0;
	max-width: 1140px;
	margin: 0 auto;
	padding: 8px 24px 0;
	border-bottom: 1px solid var(--dash-border);
	overflow-x: auto;
}
.ecsper-dash-tab {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	color: var(--dash-muted);
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	padding: 12px 12px;
	min-height: 44px;
	cursor: pointer;
	white-space: nowrap;
}
.ecsper-dash-tab:hover,
.ecsper-dash-tab:focus {
	color: var(--dash-text);
}
.ecsper-dash-tab.is-active,
.ecsper-dash-tab[aria-selected="true"] {
	color: var(--dash-text);
	border-bottom-color: var(--blue-l);
}
.ecsper-dash-panel {
	padding: 36px 24px 48px;
}
.ecsper-dash-block + .ecsper-dash-block {
	margin-top: 8px;
}
.ecsper-dash-heading {
	font-family: var(--dsp);
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 400;
	color: var(--dash-text);
	margin: 0 0 24px;
}
.ecsper-dash-heading--dark {
	color: var(--ink);
}
.ecsper-dash-bars {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.ecsper-dash-bar-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--dash-text);
	margin-bottom: 8px;
}
.ecsper-dash-bar-num {
	font-family: var(--dsp);
	font-size: 28px;
	font-weight: 500;
}
.ecsper-dash-bar-track {
	height: 6px;
	border-radius: 3px;
	background: var(--dash-track);
	overflow: hidden;
}
.ecsper-dash-bar-fill {
	display: block;
	height: 100%;
	border-radius: 3px;
}
.ecsper-dash-bar-fill--blue {
	background: var(--blue-l);
}
.ecsper-dash-bar-fill--red {
	background: var(--red);
}
.ecsper-dash-expert {
	background: linear-gradient(110deg, var(--dash-expert-a), var(--dash-expert-b) 70%);
	border: 1px solid var(--dash-expert-border);
	border-radius: 12px;
	padding: 24px;
}
.ecsper-dash-expert-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}
.ecsper-dash-expert-pill {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 4px 12px;
	border-radius: 20px;
	border: 1px solid var(--dash-expert-pill-border);
	color: var(--dash-expert-pill);
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ecsper-dash-expert-primary,
.ecsper-dash-expert-support {
	display: grid;
	gap: 16px;
}
.ecsper-dash-expert-primary {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 8px 0 16px;
}
.ecsper-dash-expert-box {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(183, 28, 28, 0.2);
	border-radius: 10px;
	padding: 16px;
}
.ecsper-dash-expert-num {
	font-family: var(--dsp);
	font-size: 32px;
	font-weight: 500;
	line-height: 1;
	color: var(--dash-text);
	margin: 0 0 8px;
}
.ecsper-dash-expert-note {
	font-family: var(--bd);
	font-size: 12px;
	color: var(--dash-muted);
	margin: 0 0 16px;
}
.ecsper-dash-expert-support {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.ecsper-dash-risks {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}
.ecsper-dash-risk {
	appearance: none;
	text-align: left;
	background: var(--dash-panel-2);
	border: 1px solid var(--dash-border);
	border-radius: 9px;
	padding: 16px 14px;
	cursor: pointer;
	color: inherit;
	min-height: 44px;
}
.ecsper-dash-risk.is-active {
	border-color: var(--blue-l);
}
.ecsper-dash-risk-cat {
	display: block;
	font-family: var(--bd);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--dash-subtle);
	margin-bottom: 8px;
}
.ecsper-dash-risk-title {
	display: block;
	font-family: var(--bd);
	font-size: 13px;
	font-weight: 500;
	color: var(--dash-text);
	margin-bottom: 6px;
}
.ecsper-dash-risk-q {
	display: block;
	font-family: var(--bd);
	font-size: 11px;
	line-height: 1.45;
	color: var(--dash-muted);
}
.ecsper-dash-risk-detail {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.6;
	color: var(--dash-muted);
	margin: 16px 0 0;
	max-width: 860px;
}
.ecsper-dash-gap-divider {
	height: 1px;
	background: rgba(255, 255, 255, 0.06);
	margin: 32px 0;
}
.ecsper-dash-gap-pressure {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.ecsper-dash-gap-pressure-num {
	font-family: var(--dsp);
	font-size: 36px;
	font-weight: 500;
	line-height: 1;
	color: var(--red);
	margin: 0 0 8px;
}
.ecsper-dash-gap-pressure-label {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.45;
	color: var(--dash-muted);
	margin: 0;
}
.ecsper-tracker-page .ecsper-tracker-range {
	gap: 8px;
	margin: 0 0 16px;
}
.ecsper-tracker-page .ecsper-tracker-range-btn {
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 6px;
	padding: 7px 12px;
	min-height: 36px;
	font-size: 11px;
	color: var(--dash-muted);
	background: transparent;
	margin-left: 0;
}
.ecsper-tracker-page .ecsper-tracker-range-btn + .ecsper-tracker-range-btn {
	margin-left: 0;
}
.ecsper-tracker-page .ecsper-tracker-range-btn:first-child,
.ecsper-tracker-page .ecsper-tracker-range-btn:last-child {
	border-radius: 6px;
}
.ecsper-tracker-page .ecsper-tracker-range-btn.is-active {
	background: rgba(255, 255, 255, 0.06);
	color: var(--dash-text);
	border-color: rgba(255, 255, 255, 0.12);
}
.ecsper-tracker-chart-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
}
.ecsper-tracker-chart-tab {
	appearance: none;
	padding: 7px 12px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 6px;
	background: transparent;
	color: var(--dash-muted);
	font-family: var(--bd);
	font-size: 11px;
	min-height: 36px;
	cursor: pointer;
}
.ecsper-tracker-chart-tab.is-active {
	background: color-mix(in srgb, var(--blue-l) 12%, transparent);
	color: var(--blue-l);
	border-color: color-mix(in srgb, var(--blue-l) 25%, transparent);
}
.ecsper-tracker-page .ecsper-tracker-chart-copy {
	color: var(--dash-muted);
}
.ecsper-tracker-page .ecsper-tracker-chart-grid {
	grid-template-columns: 1fr;
}
.ecsper-tracker-page .ecsper-tracker-chart-panel--wide {
	grid-column: auto;
}
.ecsper-tracker-page .ecsper-tracker-cases {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ecsper-tracker-page .ecsper-tracker-case {
	background: var(--dash-panel-2);
	border: 1px solid var(--dash-border);
	border-radius: 10px;
	padding: 20px 18px;
}
.ecsper-tracker-page .ecsper-tracker-case-title {
	color: var(--dash-text);
}
.ecsper-tracker-page .ecsper-tracker-case-summary,
.ecsper-tracker-page .ecsper-tracker-case-sources,
.ecsper-tracker-page .ecsper-tracker-case-date {
	color: var(--dash-muted);
}
.ecsper-tracker-page .ecsper-tracker-risk-link {
	color: var(--blue-l);
}
.ecsper-tracker-page .ecsper-tracker-risk-link:hover,
.ecsper-tracker-page .ecsper-tracker-risk-link:focus {
	color: var(--blue-l);
}
.ecsper-tracker-page .ecsper-tracker-badge--red {
	background: color-mix(in srgb, var(--red) 16%, transparent);
	color: #ffc1c1;
}
.ecsper-tracker-page .ecsper-tracker-badge--amber {
	background: color-mix(in srgb, var(--amber) 16%, transparent);
	color: var(--amber);
}
.ecsper-tracker-page .ecsper-tracker-badge--blue {
	background: color-mix(in srgb, var(--blue-l) 16%, transparent);
	color: var(--blue-l);
}
.ecsper-dash-sources {
	margin: 8px 0 28px;
}
.ecsper-dash-source-row {
	padding: 18px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.ecsper-dash-source-name {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 700;
	color: var(--dash-text);
	margin: 0 0 8px;
}
.ecsper-dash-source-body {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.65;
	color: var(--dash-muted);
	margin: 0;
}
.ecsper-dash-read {
	border: 1px solid var(--dash-border);
	border-radius: 10px;
	padding: 12px 16px;
	margin: 0 0 24px;
	background: var(--dash-panel);
}
.ecsper-dash-read summary {
	cursor: pointer;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	color: var(--dash-text);
	min-height: 44px;
	display: flex;
	align-items: center;
}
.ecsper-dash-read p {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.65;
	color: var(--dash-muted);
	margin: 8px 0 0;
}
.ecsper-tracker-page .ecsper-tracker-method {
	max-width: 800px;
}
.ecsper-tracker-page .ecsper-tracker-method p,
.ecsper-tracker-page .ecsper-tracker-cite {
	color: var(--dash-muted);
}
.ecsper-tracker-page .ecsper-tracker-cite a {
	color: var(--blue-l);
	overflow-wrap: anywhere;
	word-break: break-word;
}
.ecsper-tracker-page .ecsper-tx-field {
	color: var(--dash-muted);
}
.ecsper-tracker-page .ecsper-tx-field select,
.ecsper-tracker-page .ecsper-tx-field input,
.ecsper-tracker-page .ecsper-tx-cols-btn,
.ecsper-tracker-page .ecsper-tx-page-btn,
.ecsper-tracker-page .ecsper-tx-reset,
.ecsper-tracker-explorer select,
.ecsper-tracker-explorer option {
	background: var(--ink, #0B0E14);
	color: #f4f0e9;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color-scheme: dark;
}
.ecsper-tracker-page .ecsper-tx-field option,
.ecsper-tracker-explorer option {
	background: #1a1d24;
	color: #f4f0e9;
}
.ecsper-tracker-penalty-note {
	font-family: var(--bd);
	font-size: 11px;
	line-height: 1.5;
	color: var(--dash-muted);
	margin: 12px 0 0;
}
.ecsper-tracker-page .ecsper-tx-count,
.ecsper-tracker-page .ecsper-tx-page,
.ecsper-tracker-page .ecsper-tx-mobile-hint {
	color: var(--dash-muted);
}
.ecsper-tracker-page .ecsper-tx-table-wrap,
.ecsper-tracker-page .ecsper-tx-card {
	background: var(--dash-panel);
	border-color: var(--dash-border);
}
.ecsper-tracker-page .ecsper-tx-table th {
	background: rgba(255, 255, 255, 0.03);
	color: var(--dash-subtle);
	border-bottom-color: var(--dash-border);
}
.ecsper-tracker-page .ecsper-tx-table th,
.ecsper-tracker-page .ecsper-tx-table td {
	border-bottom-color: var(--dash-border);
	color: var(--dash-text);
}
.ecsper-tracker-page .ecsper-tx-sort {
	color: inherit;
}
.ecsper-tracker-page .ecsper-tx-row--even {
	background: rgba(255, 255, 255, 0.02);
}
.ecsper-tracker-page .ecsper-tx-row:hover,
.ecsper-tracker-page .ecsper-tx-row:focus {
	background: rgba(255, 255, 255, 0.05);
}
.ecsper-tracker-page .ecsper-tx-detail td {
	background: rgba(255, 255, 255, 0.04);
}
.ecsper-tracker-page .ecsper-tx-detail p,
.ecsper-tracker-page .ecsper-tx-card-sub,
.ecsper-tracker-page .ecsper-tx-card-title {
	color: var(--dash-text);
}
.ecsper-tracker-page .ecsper-tx-cols-menu {
	background: var(--ink);
	border-color: var(--dash-border);
	color: var(--dash-text);
}
.ecsper-tracker-page .ecsper-tx-cols-item {
	color: var(--dash-text);
}
body.ecsper-tracker-present .ecsper-dash-tabbar {
	display: none !important;
}
body.ecsper-tracker-present .ecsper-dash-panel + .ecsper-dash-panel {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	margin-top: 40px;
	margin-bottom: 40px;
}
body.ecsper-tracker-present .ecsper-dash-count {
	font-size: clamp(56px, 8vw, 88px);
}

@media (max-width: 900px) {
	.ecsper-dash-headline,
	.ecsper-dash-bars,
	.ecsper-dash-expert-primary,
	.ecsper-dash-risks,
	.ecsper-dash-gap-pressure,
	.ecsper-dash-expert-support {
		grid-template-columns: 1fr 1fr;
	}
	.ecsper-dash-count {
		font-size: 56px;
	}
}

@media (max-width: 768px) {
	.ecsper-dash-topbar {
		align-items: flex-start;
	}
}

@media (max-width: 480px) {
	.ecsper-dash-headline,
	.ecsper-dash-metrics,
	.ecsper-dash-bars,
	.ecsper-dash-expert-support,
	.ecsper-dash-risks,
	.ecsper-dash-gap-pressure {
		grid-template-columns: 1fr;
	}
	.ecsper-dash-expert-primary {
		grid-template-columns: 1fr 1fr;
	}
	.ecsper-dash-count {
		font-size: 48px;
	}
	.ecsper-dash-topbar {
		flex-direction: column;
		align-items: stretch;
	}
	.ecsper-dash-exposure,
	.ecsper-tracker-cta-check {
		width: 100%;
	}
	.ecsper-dash-tabbar {
		padding-left: 12px;
		padding-right: 12px;
	}
}

/* === P16a Check Your Exposure assessment === */
body.ecsper-assessment-body {
	background: var(--bg);
}
.ecsper-assess {
	background: var(--bg);
	padding: 48px 24px 80px;
	letter-spacing: 0;
	word-spacing: normal;
}
.ecsper-assess-wrap {
	max-width: 680px;
	margin: 0 auto;
}
.ecsper-assess-prog {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 40px;
}
.ecsper-assess-prog-step {
	display: flex;
	align-items: center;
	gap: 8px;
}
.ecsper-assess-prog-dot {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 600;
	border: 2px solid var(--line);
	color: var(--ink3);
	background: var(--paper);
}
.ecsper-assess-prog-dot.is-active {
	background: var(--blue);
	border-color: var(--blue);
	color: var(--paper);
}
.ecsper-assess-prog-dot.is-done {
	background: var(--green);
	border-color: var(--green);
	color: var(--paper);
}
.ecsper-assess-prog-label {
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 500;
	color: var(--ink3);
}
.ecsper-assess-prog-label.is-active {
	color: var(--ink);
	font-weight: 600;
}
.ecsper-assess-prog-line {
	flex: 1;
	height: 2px;
	background: var(--line);
	border-radius: 2px;
}
.ecsper-assess-prog-line.is-done {
	background: var(--green);
}
.ecsper-assess-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 48px 44px;
	box-shadow: 0 4px 24px color-mix(in srgb, var(--ink) 4%, transparent);
}
.ecsper-assess-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin-bottom: 20px;
}
.ecsper-assess-kicker {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--blue);
	margin: 0 0 10px;
}
.ecsper-assess-headline {
	font-family: var(--dsp);
	font-size: clamp(24px, 3.5vw, 34px);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.15;
	letter-spacing: 0;
	margin: 0 0 12px;
}
.ecsper-assess-sub {
	font-family: var(--bd);
	font-size: 15px;
	font-weight: 400;
	color: var(--ink3);
	line-height: 1.6;
	margin: 0 0 28px;
	max-width: 520px;
}
.ecsper-assess-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 32px;
}
.ecsper-assess-meta-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
}
.ecsper-assess-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 22px;
}
.ecsper-assess-field label {
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
}
.ecsper-assess-helper {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	margin: 0 0 6px;
}
.ecsper-assess-field select,
.ecsper-assess-field input {
	padding: 12px 16px;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	font-size: 14px;
	font-family: var(--bd);
	color: var(--ink);
	background: var(--paper);
	outline: none;
	min-height: 44px;
}
.ecsper-assess-field select:focus,
.ecsper-assess-field input:focus {
	border-color: var(--blue);
}
.ecsper-assess-encourage {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
	text-align: center;
	margin: 8px 0 24px;
}
.ecsper-assess-actions {
	display: flex;
	justify-content: center;
	margin-top: 8px;
}
.ecsper-assess-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 32px;
	min-height: 44px;
	border-radius: 100px;
	border: none;
	background: var(--blue);
	color: var(--paper);
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	text-decoration: none;
}
.ecsper-assess-btn:hover {
	background: var(--blue-d);
	color: var(--paper);
}
.ecsper-assess-btn:disabled {
	background: var(--lines);
	color: var(--ink3);
	cursor: not-allowed;
}
.ecsper-assess-q {
	margin-bottom: 28px;
}
.ecsper-assess-q.is-invalid .ecsper-assess-qtext {
	color: var(--red);
}
.ecsper-assess-q.is-invalid .ecsper-assess-opts {
	outline: 2px solid var(--red);
	outline-offset: 4px;
	border-radius: 12px;
}
.ecsper-assess-qnum {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 500;
	color: var(--ink3);
	margin: 0 0 6px;
}
.ecsper-assess-qtext {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.3;
	margin: 0 0 14px;
}
.ecsper-assess-opts {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ecsper-assess-opt {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	background: var(--bg);
	border: 1.5px solid transparent;
	border-radius: 12px;
	cursor: pointer;
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 400;
	color: var(--ink2);
	text-align: left;
	width: 100%;
}
.ecsper-assess-opt:hover {
	border-color: var(--blue);
	background: var(--blue-t);
}
.ecsper-assess-opt.is-selected {
	border-color: var(--blue);
	background: var(--blue-t);
	color: var(--ink);
	font-weight: 500;
}
.ecsper-assess-radio {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid var(--line);
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ecsper-assess-opt.is-selected .ecsper-assess-radio {
	border-color: var(--blue);
	background: var(--blue);
}
.ecsper-assess-opt.is-selected .ecsper-assess-radio::after {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--paper);
}
.ecsper-assess-why {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	margin-top: 0;
	padding: 0 18px;
	background: var(--warm-t);
	border: 1px solid color-mix(in srgb, var(--warm) 15%, transparent);
	border-radius: 10px;
	transition: max-height 0.35s ease, opacity 0.25s ease, margin-top 0.25s ease, padding 0.25s ease;
}
.ecsper-assess-why.is-open {
	max-height: 280px;
	opacity: 1;
	margin-top: 12px;
	padding: 14px 18px;
}
.ecsper-assess-why-label {
	font-family: var(--bd);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--warm);
	margin: 0 0 6px;
}
.ecsper-assess-why-text {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink2);
	line-height: 1.55;
	margin: 0;
}
.ecsper-assess-qnote {
	font-family: var(--bd);
	font-size: 11px;
	font-style: italic;
	color: var(--ink3);
	margin: 6px 0 0;
}
.ecsper-assess-ring {
	width: 160px;
	height: 160px;
	margin: 0 auto 24px;
	position: relative;
}
.ecsper-assess-ring svg {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}
.ecsper-assess-ring-bg {
	fill: none;
	stroke: var(--lines);
	stroke-width: 10;
}
.ecsper-assess-ring-fill {
	fill: none;
	stroke: var(--warm);
	stroke-width: 10;
	stroke-linecap: round;
	transition: stroke-dashoffset 1.5s ease;
}
.ecsper-assess-ring-fill.band-critical { stroke: var(--red); }
.ecsper-assess-ring-fill.band-material { stroke: var(--warm); }
.ecsper-assess-ring-fill.band-strong { stroke: var(--green); }
.ecsper-assess-ring-val {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
}
.ecsper-assess-ring-num {
	font-family: var(--dsp);
	font-size: 42px;
	color: var(--ink);
	font-weight: 400;
	line-height: 1;
}
.ecsper-assess-ring-pct {
	font-size: 14px;
	color: var(--ink3);
}
.ecsper-assess-band {
	text-align: center;
	margin-bottom: 8px;
}
.ecsper-assess-band-pill {
	display: inline-block;
	padding: 6px 18px;
	border-radius: 100px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.ecsper-assess-band-pill.band-critical { background: var(--red-t); color: var(--red); }
.ecsper-assess-band-pill.band-material { background: var(--warm-t); color: var(--warm); }
.ecsper-assess-band-pill.band-strong { background: var(--green-t); color: var(--green); }
.ecsper-assess-alarm-head {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	text-align: center;
	margin: 0 0 16px;
}
.ecsper-assess-weakest {
	text-align: center;
	margin-bottom: 20px;
}
.ecsper-assess-weakest-label {
	display: block;
	font-size: 12px;
	color: var(--ink3);
	margin-bottom: 8px;
}
.ecsper-assess-weak {
	display: inline-block;
	padding: 4px 12px;
	background: var(--red-t);
	border-radius: 6px;
	font-size: 12px;
	color: var(--red);
	font-weight: 500;
	margin: 3px;
}
.ecsper-assess-bars {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 24px;
}
.ecsper-assess-bar-meta {
	display: flex;
	justify-content: space-between;
	font-family: var(--bd);
	font-size: 12px;
	color: var(--ink2);
	margin-bottom: 4px;
}
.ecsper-assess-bar-track {
	height: 8px;
	background: var(--bg);
	border-radius: 100px;
	overflow: hidden;
}
.ecsper-assess-bar-fill {
	height: 100%;
	width: 0;
	border-radius: 100px;
	transition: width 1.2s ease;
}
.ecsper-assess-bar-fill.is-0 { background: var(--red); }
.ecsper-assess-bar-fill.is-1 { background: var(--red); }
.ecsper-assess-bar-fill.is-2 { background: var(--warm); }
.ecsper-assess-bar-fill.is-3 { background: var(--green); }
.ecsper-assess-consequence {
	text-align: center;
	font-size: 14px;
	color: var(--ink2);
	line-height: 1.6;
	max-width: 480px;
	margin: 0 auto 8px;
	padding: 16px;
	background: var(--warm-t);
	border-radius: 10px;
	border: 1px solid color-mix(in srgb, var(--warm) 12%, transparent);
}
.ecsper-assess-relief {
	text-align: center;
	padding: 24px 0;
	border-top: 1px solid var(--lines);
	margin-top: 28px;
}
.ecsper-assess-relief-head {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--green);
	margin: 0 0 10px;
}
.ecsper-assess-relief p {
	font-size: 14px;
	color: var(--ink2);
	line-height: 1.6;
	max-width: 460px;
	margin: 0 auto;
}
.ecsper-assess-reg,
.ecsper-assess-match,
.ecsper-assess-rec {
	padding: 28px 0 0;
	border-top: 1px solid var(--lines);
	margin-top: 28px;
}
.ecsper-assess-reg-head,
.ecsper-assess-rec-head {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	text-align: center;
	margin: 0 0 6px;
}
.ecsper-assess-reg-sub,
.ecsper-assess-rec-sub,
.ecsper-assess-match-intro {
	font-size: 14px;
	color: var(--ink3);
	text-align: center;
	margin: 0 0 24px;
}
.ecsper-assess-form {
	display: flex;
	flex-direction: column;
	max-width: 400px;
	margin: 0 auto;
}
.ecsper-assess-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 12px;
	color: var(--ink3);
	line-height: 1.4;
	margin: 4px 0 8px;
}
.ecsper-assess-consent input {
	margin-top: 2px;
	accent-color: var(--blue);
}
.ecsper-assess-bonus {
	margin: 12px 0 8px;
	padding: 18px;
	background: var(--green-t);
	border-radius: 12px;
	border: 1px solid color-mix(in srgb, var(--green) 12%, transparent);
}
.ecsper-assess-bonus-head {
	font-size: 13px;
	color: var(--green);
	font-weight: 600;
	margin: 0 0 10px;
}
.ecsper-assess-bonus-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--ink2);
	padding: 4px 0;
}
.ecsper-assess-bonus-check {
	color: var(--green);
	font-weight: 700;
}
.ecsper-assess-reg-ok {
	text-align: center;
	font-size: 14px;
	color: var(--green);
	background: var(--green-t);
	border-radius: 10px;
	padding: 14px 16px;
}
.ecsper-assess-reg-error {
	text-align: center;
	font-size: 14px;
	color: var(--red);
	background: var(--red-t);
	border-radius: 10px;
	padding: 14px 16px;
	margin: 0 0 16px;
}
.ecsper-assess-rec-card {
	flex-wrap: wrap;
}
.ecsper-assess-rec-card-btn {
	flex: 1 1 100%;
	margin-top: 8px;
	box-sizing: border-box;
}
.ecsper-assess-session-link {
	text-align: center;
	margin: 16px 0 0;
}
.ecsper-assess-session-link a {
	color: var(--blue);
	font-size: 14px;
	font-weight: 500;
	text-decoration: underline;
}
.ecsper-assess-session-link a:hover {
	color: var(--blue-d);
}
.ecsper-assess-rec-cards {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.ecsper-assess-rec-card {
	padding: 20px 24px;
	border: 1.5px solid var(--line);
	border-radius: 14px;
	display: flex;
	align-items: center;
	gap: 16px;
}
.ecsper-assess-rec-card.is-primary {
	border-color: var(--blue);
	background: var(--blue-t);
}
.ecsper-assess-rec-icon {
	width: 44px;
	height: 44px;
	border-radius: 11px;
	flex-shrink: 0;
	background: var(--bg);
}
.ecsper-assess-rec-icon--review { background: var(--warm-t); }
.ecsper-assess-rec-icon--self { background: var(--blue-t); }
.ecsper-assess-rec-icon--briefing { background: var(--warm-t); }
.ecsper-assess-rec-icon--session { background: var(--green-t); }
.ecsper-assess-rec-body { flex: 1; }
.ecsper-assess-rec-body h4 {
	font-family: var(--dsp);
	font-size: 17px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 2px;
}
.ecsper-assess-rec-price {
	font-family: var(--bd);
	font-size: 13px;
	color: var(--ink3);
}
.ecsper-assess-rec-body p {
	font-size: 13px;
	color: var(--ink3);
	line-height: 1.45;
	margin: 0;
}
.ecsper-assess-rec-badge {
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 100px;
	flex-shrink: 0;
}
.ecsper-assess-rec-badge.is-rec { background: var(--blue); color: var(--paper); }
.ecsper-assess-rec-badge.is-alt { background: var(--bg); color: var(--ink3); }
.ecsper-assess-value {
	margin-top: 20px;
	padding: 18px;
	background: var(--bg);
	border-radius: 12px;
}
.ecsper-assess-value-head {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ink3);
	font-weight: 600;
	margin: 0 0 10px;
}
.ecsper-assess-value-items {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}
.ecsper-assess-value-item {
	flex: 1;
	min-width: 120px;
}
.ecsper-assess-value-item h5 {
	font-family: var(--dsp);
	font-size: 18px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 2px;
}
.ecsper-assess-value-item p {
	font-size: 12px;
	color: var(--ink3);
	margin: 0;
}
.ecsper-assess-rec-cta {
	text-align: center;
	margin-top: 28px;
}
.ecsper-assess-forward {
	margin-top: 24px;
	padding: 16px;
	background: var(--bone);
	border-radius: 10px;
	text-align: center;
	font-size: 13px;
	color: var(--ink3);
	line-height: 1.5;
}
.ecsper-assess-loading,
.ecsper-assess-noscript {
	text-align: center;
	color: var(--ink3);
	font-size: 14px;
}
@media (max-width: 768px) {
	.ecsper-assess { padding: 32px 16px 64px; }
	.ecsper-assess-card { padding: 32px 24px; }
	.ecsper-assess-meta { flex-direction: column; gap: 8px; }
	.ecsper-assess-prog-label { display: none; }
	.ecsper-assess-value-items { flex-direction: column; }
	.ecsper-assess-rec-card { flex-wrap: wrap; }
}
@media (max-width: 480px) {
	.ecsper-assess-card { padding: 28px 18px; border-radius: 16px; }
	.ecsper-assess-headline { font-size: 24px; }
}

/* P16a-fix: Governance Index tab. */
.ecsper-gov-index-intro,
.ecsper-gov-index-empty {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.6;
	color: var(--dash-muted);
	margin: 0 0 28px;
	max-width: 720px;
}
.ecsper-gov-index-empty {
	margin-bottom: 20px;
}
.ecsper-gov-index-actions {
	margin: 28px 0 0;
}
.ecsper-gov-index-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 22px;
	border-radius: 100px;
	background: var(--blue);
	color: var(--paper);
	font-family: var(--bd);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
}
.ecsper-gov-index-cta:hover,
.ecsper-gov-index-cta:focus {
	background: var(--blue-d);
	color: var(--paper);
	text-decoration: none;
}
.ecsper-gov-index-sub {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.55;
	color: var(--dash-muted);
	margin: 0 0 28px;
	max-width: 640px;
}
.ecsper-gov-index-overall {
	text-align: center;
	margin: 0 0 32px;
}
.ecsper-gov-index-score {
	font-family: var(--dsp);
	font-size: clamp(48px, 6vw, 72px);
	font-weight: 500;
	line-height: 0.95;
	color: var(--dash-text);
	margin: 0 0 10px;
}
.ecsper-gov-index-score-label {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--dash-muted);
	margin: 0;
}
.ecsper-gov-index-sectors {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0 0 32px;
}
.ecsper-gov-index-bar-row {
	display: flex;
	align-items: center;
	gap: 12px;
}
.ecsper-gov-index-bar-name {
	width: 150px;
	flex-shrink: 0;
	font-family: var(--bd);
	font-size: 14px;
	color: var(--dash-text);
}
.ecsper-gov-index-bar-track {
	flex: 1;
	height: 8px;
	border-radius: 4px;
	background: var(--dash-track);
	overflow: hidden;
}
.ecsper-gov-index-bar-fill {
	display: block;
	height: 100%;
	border-radius: 4px;
}
.ecsper-gov-index-bar-fill--low {
	background: var(--red);
}
.ecsper-gov-index-bar-fill--mid {
	background: var(--warm);
}
.ecsper-gov-index-bar-fill--high {
	background: var(--green);
}
.ecsper-gov-index-bar-num {
	width: 52px;
	flex-shrink: 0;
	text-align: right;
	font-family: var(--dsp);
	font-size: 16px;
	color: var(--dash-text);
}
.ecsper-gov-index-dims {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 24px;
}
.ecsper-gov-index-dim {
	background: var(--dash-panel-2);
	border: 1px solid var(--dash-border);
	border-radius: 9px;
	padding: 16px 14px;
}
.ecsper-gov-index-dim-name {
	font-family: var(--bd);
	font-size: 12px;
	line-height: 1.35;
	color: var(--dash-muted);
	margin: 0 0 8px;
}
.ecsper-gov-index-dim-score {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 500;
	color: var(--dash-text);
	margin: 0 0 10px;
}
.ecsper-gov-index-dim-track {
	height: 4px;
	border-radius: 2px;
	background: var(--dash-track);
	overflow: hidden;
}
.ecsper-gov-index-dim-fill {
	display: block;
	height: 100%;
	border-radius: 2px;
	background: var(--warm);
}
.ecsper-gov-index-dim-fill--low {
	background: var(--red);
}
.ecsper-gov-index-dim-fill--mid {
	background: var(--warm);
}
.ecsper-gov-index-dim-fill--high {
	background: var(--green);
}
.ecsper-gov-index-source,
.ecsper-gov-index-fresh {
	font-family: var(--bd);
	font-size: 12px;
	line-height: 1.5;
	color: var(--dash-muted);
	margin: 0 0 6px;
}
.ecsper-gov-index-fresh {
	margin-bottom: 0;
}
@media (max-width: 900px) {
	.ecsper-gov-index-dims {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 480px) {
	.ecsper-gov-index-bar-row {
		flex-wrap: wrap;
	}
	.ecsper-gov-index-bar-name,
	.ecsper-gov-index-bar-num {
		width: auto;
	}
	.ecsper-gov-index-bar-track {
		flex-basis: 100%;
		order: 3;
	}
	.ecsper-gov-index-dims {
		grid-template-columns: 1fr;
	}
}

/* P16c: Live governance report. */
.ecsper-report-body {
	background: var(--bg);
}
.ecsper-report {
	background: var(--bg);
	padding: 48px 24px 80px;
}
.ecsper-report-wrap {
	max-width: 760px;
	margin: 0 auto;
}
.ecsper-report-accent {
	width: 48px;
	height: 3px;
	background: var(--blue);
	margin-bottom: 16px;
}
.ecsper-report-label {
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--blue);
	margin: 0 0 10px;
}
.ecsper-report-title {
	font-family: var(--dsp);
	font-size: 28px;
	font-weight: 400;
	color: var(--ink);
	line-height: 1.2;
	margin: 0 0 12px;
}
.ecsper-report-sub {
	font-family: var(--bd);
	font-size: 14px;
	color: var(--ink3);
	line-height: 1.55;
	margin: 0 0 32px;
}
.ecsper-report-section-h {
	font-family: var(--dsp);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	margin: 0 0 20px;
}
.ecsper-report-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ecsper-report-exec {
	background: var(--paper);
	border-radius: 14px;
	border-left: 4px solid var(--blue);
	padding: 24px 28px;
	margin-bottom: 32px;
}
.ecsper-report-exec p {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.65;
	color: var(--ink2);
	margin: 0;
}
.ecsper-report-score,
.ecsper-report-dims,
.ecsper-report-regs,
.ecsper-report-priorities,
.ecsper-report-next,
.ecsper-report-share {
	background: var(--paper);
	border-radius: 14px;
	padding: 28px 28px 32px;
	margin-bottom: 24px;
}
.ecsper-report-dim {
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--lines);
}
.ecsper-report-dim:last-child {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: 0;
}
.ecsper-report-dim-title {
	font-family: var(--dsp);
	font-size: 20px;
	font-weight: 400;
	color: var(--ink);
	margin: 14px 0 8px;
}
.ecsper-report-dim-text {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0 0 12px;
}
.ecsper-report-action {
	background: var(--bg);
	border-radius: 12px;
	padding: 14px 16px;
}
.ecsper-report-action p {
	font-family: var(--bd);
	font-size: 13px;
	line-height: 1.55;
	color: var(--ink2);
	margin: 0;
}
.ecsper-report-reg-list {
	margin: 0;
	padding: 0 0 0 20px;
}
.ecsper-report-reg-list li {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.55;
	color: var(--ink2);
	margin: 0 0 10px;
}
.ecsper-report-priority-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	counter-reset: ecsper-pri;
}
.ecsper-report-priority-card {
	background: var(--bg);
	border-radius: 12px;
	padding: 18px 20px 18px 56px;
	position: relative;
}
.ecsper-report-priority-num {
	position: absolute;
	left: 18px;
	top: 18px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--blue);
	color: var(--paper);
	font-family: var(--bd);
	font-size: 12px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ecsper-report-priority-label {
	display: block;
	font-family: var(--bd);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--blue);
	margin-bottom: 6px;
}
.ecsper-report-priority-card p {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.55;
	color: var(--ink2);
	margin: 0;
}
.ecsper-report-share-copy {
	font-family: var(--bd);
	font-size: 15px;
	line-height: 1.6;
	color: var(--ink2);
	margin: 0 0 20px;
}
.ecsper-report-print-wrap {
	margin: 0 0 20px;
}
.ecsper-report-back {
	font-family: var(--bd);
	font-size: 14px;
	line-height: 1.55;
	color: var(--ink3);
	margin: 0 0 8px;
}
.ecsper-report-back a {
	color: var(--blue);
	font-weight: 500;
}
.ecsper-report-back a:hover {
	color: var(--blue-d);
}
.ecsper-assess-report-ready {
	text-align: center;
	font-size: 14px;
	color: var(--ink2);
	margin: 12px 0 0;
}
.ecsper-assess-report-ready a {
	color: var(--blue);
	font-weight: 600;
}
.ecsper-report-print-summary {
	display: none;
}
@media (max-width: 768px) {
	.ecsper-report { padding: 32px 16px 64px; }
	.ecsper-report-score,
	.ecsper-report-dims,
	.ecsper-report-regs,
	.ecsper-report-priorities,
	.ecsper-report-next,
	.ecsper-report-share,
	.ecsper-report-exec { padding: 22px 18px; }
	.ecsper-report-title { font-size: 24px; }
}
@media print {
	#wpadminbar,
	header,
	footer,
	.wp-site-blocks > header,
	.wp-block-template-part,
	.ecsper-report-chrome,
	.ecsper-report-screen,
	.ecsper-report-print-btn,
	.ecsper-report-cta,
	nav {
		display: none !important;
	}
	@page {
		size: A4;
		margin: 16mm;
	}
	.ecsper-report-body,
	.ecsper-report,
	.ecsper-report-wrap {
		background: #fff;
		padding: 0;
		margin: 0;
		max-width: none;
	}
	.ecsper-report-print-summary {
		display: block !important;
		color: #0B0E14;
		font-family: Georgia, 'Times New Roman', Times, serif;
	}
	.ecsper-report-print-summary .ecsper-report-accent {
		width: 48px;
		height: 3px;
		background: #0043A6;
		margin-bottom: 12px;
	}
	.ecsper-report-print-summary .ecsper-report-label {
		font-family: 'Sora', sans-serif;
		font-size: 11px;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: #0043A6;
		margin: 0 0 8px;
	}
	.ecsper-report-print-summary .ecsper-report-title {
		font-size: 24px;
		margin: 0 0 8px;
	}
	.ecsper-report-print-summary .ecsper-report-sub {
		font-family: 'Sora', sans-serif;
		font-size: 12px;
		color: #4B5563;
		margin: 0 0 16px;
	}
	.ecsper-report-print-score {
		display: flex;
		align-items: center;
		gap: 12px;
		margin: 0 0 18px;
		font-size: 28px;
	}
	.ecsper-report-print-summary h2 {
		font-size: 16px;
		margin: 16px 0 8px;
	}
	.ecsper-report-print-summary ol {
		margin: 0 0 8px;
		padding-left: 20px;
	}
	.ecsper-report-print-summary li,
	.ecsper-report-print-summary p {
		font-family: 'Sora', sans-serif;
		font-size: 12px;
		line-height: 1.45;
		margin: 0 0 6px;
		color: #0B0E14;
	}
}
