.ef-page-main-surface {
	padding: 0;
}

.ef-page-surface {
	max-width: none;
	padding-top: 74px;
	padding-bottom: 100px;
}

.efc-library,
.efc-guide-page,
.efc-report-review,
.efc-professional-entry {
	--efc-ink: #233846;
	--efc-deep: #0a2d4f;
	--efc-green: #0b7835;
	--efc-mint: #dff3e5;
	--efc-mint-soft: #f0f7f2;
	--efc-cream: #f7f4ec;
	--efc-amber: #d99545;
	--efc-slate: #5e6d68;
	--efc-line: #d8dfda;
	--efc-serif: ui-serif, Georgia, Cambria, "Times New Roman", serif;
	color: var(--efc-ink);
}

.efc-page-hero {
	display: grid;
	grid-template-columns: 1fr 310px;
	align-items: end;
	gap: 70px;
	margin-bottom: 52px;
}

.efc-kicker {
	margin: 0;
	color: var(--efc-green);
	font-size: 11px !important;
	font-weight: 850;
	letter-spacing: .15em;
	line-height: 1.4 !important;
	text-transform: uppercase;
}

.efc-page-hero h1,
.efc-guide-intro h1 {
	max-width: 830px;
	margin: 15px 0 19px;
	color: var(--efc-deep);
	font-family: var(--efc-serif);
	font-size: clamp(46px, 5.7vw, 72px);
	font-weight: 500;
	letter-spacing: -.045em;
	line-height: .99;
}

.efc-page-hero-copy > p:last-child,
.efc-guide-intro > div:first-child > p:last-child {
	max-width: 760px;
	margin: 0;
	color: var(--efc-slate);
	font-size: 17px;
	line-height: 1.7;
}

.efc-catalog-count {
	display: flex;
	flex-direction: column;
	padding: 25px;
	border: 1px solid #cddbd6;
	background: var(--efc-mint-soft);
}

.efc-catalog-count strong {
	font-family: var(--efc-serif);
	font-size: 54px;
	font-weight: 500;
	line-height: .9;
}

.efc-catalog-count span {
	margin-top: 12px;
	font-size: 12px;
	font-weight: 800;
}

.efc-catalog-count small {
	margin-top: 5px;
	color: var(--efc-slate);
	font-size: 9px;
	line-height: 1.4;
}

.efc-guide-callout {
	display: grid;
	grid-template-columns: 54px 1fr auto;
	align-items: center;
	gap: 19px;
	margin-bottom: 33px;
	padding: 22px 25px;
	border-left: 4px solid var(--efc-green);
	background: var(--efc-mint-soft);
}

.efc-guide-symbol {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--efc-green);
	color: #fff;
	font-family: var(--efc-serif);
	font-size: 14px;
	font-weight: 700;
}

.efc-guide-callout > div {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.efc-guide-callout small,
.efc-secure-panel > small,
.efc-dialog-head small {
	color: var(--efc-green);
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .13em;
}

.efc-guide-callout strong {
	font-family: var(--efc-serif);
	font-size: 20px;
	font-weight: 600;
}

.efc-guide-callout p {
	margin: 0;
	color: var(--efc-slate);
	font-size: 10px;
}

.efc-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 18px;
	border: 0;
	border-radius: 7px;
	cursor: pointer;
	background: var(--efc-green);
	color: #fff !important;
	font-size: 11px;
	font-weight: 800;
	transition: transform .2s ease, background .2s ease;
}

.efc-action:hover {
	transform: translateY(-2px);
	background: var(--efc-deep);
}

.efc-library-controls {
	padding: 20px;
	border: 1px solid var(--efc-line);
	background: #fff;
}

.efc-search {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 16px;
	border: 1px solid #cdd8d4;
	border-radius: 7px;
	background: #fff;
}

.efc-search > span:first-child {
	color: var(--efc-green);
	font-family: var(--efc-serif);
	font-size: 27px;
	line-height: 1;
}

.efc-search input {
	width: 100%;
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--efc-ink);
	font-size: 13px;
}

.efc-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.efc-filters button {
	min-height: 36px;
	padding: 0 12px;
	border: 1px solid #cfd9d5;
	border-radius: 100px;
	cursor: pointer;
	background: #fff;
	color: #4f645f;
	font-size: 10px;
	font-weight: 740;
}

.efc-filters button:hover,
.efc-filters button.is-active {
	border-color: var(--efc-green);
	background: var(--efc-green);
	color: #fff;
}

.efc-library-summary {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 16px 2px;
	color: #768680;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .04em;
}

.efc-library-summary strong {
	color: var(--efc-green);
	font-family: var(--efc-serif);
	font-size: 17px;
}

.efc-test-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.efc-test-card {
	overflow: hidden;
	border: 1px solid var(--efc-line);
	background: #fff;
	transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.efc-test-card:hover {
	transform: translateY(-4px);
	border-color: #a8c5bc;
	box-shadow: 0 17px 42px rgba(16, 50, 43, .08);
}

.efc-test-card[hidden] {
	display: none;
}

.efc-test-image {
	position: relative;
	min-height: 220px;
	display: grid;
	place-items: center;
	padding: 26px;
	background: var(--efc-cream);
	border-bottom: 1px solid #e0ddd4;
}

.efc-test-image img {
	width: 100%;
	height: 165px;
	object-fit: contain;
	filter: drop-shadow(0 17px 17px rgba(13, 41, 36, .1));
}

.efc-test-image > span {
	position: absolute;
	left: 15px;
	top: 15px;
	padding: 6px 8px;
	border: 1px solid rgba(23, 111, 101, .18);
	border-radius: 100px;
	background: rgba(255, 255, 255, .9);
	color: var(--efc-green);
	font-size: 8px;
	font-weight: 800;
}

.efc-test-body {
	padding: 24px;
}

.efc-provider {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin: 0 !important;
	color: var(--efc-green) !important;
	font-size: 8px !important;
	font-weight: 850;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.efc-provider small {
	color: #81918c;
	font-size: 7px;
	letter-spacing: .04em;
	text-align: right;
}

.efc-test-body h3 {
	margin: 10px 0 11px;
	font-family: var(--efc-serif);
	font-size: 27px;
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1.1;
}

.efc-used-for {
	min-height: 61px;
	margin: 0 !important;
	color: var(--efc-slate) !important;
	font-size: 12px !important;
	line-height: 1.67 !important;
}

.efc-fit-line {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-height: 95px;
	margin-top: 17px;
	padding: 15px;
	border-left: 3px solid var(--efc-green);
	background: var(--efc-mint-soft);
}

.efc-fit-line small {
	color: var(--efc-green);
	font-size: 7px;
	font-weight: 850;
	letter-spacing: .12em;
}

.efc-fit-line span {
	font-family: var(--efc-serif);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.48;
}

.efc-card-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	min-height: 49px;
	padding: 13px 0;
	border-bottom: 1px solid var(--efc-line);
}

.efc-card-meta span {
	color: var(--efc-slate);
	font-size: 9px;
}

.efc-card-meta strong {
	flex: 0 0 auto;
	font-family: var(--efc-serif);
	font-size: 15px;
	font-weight: 600;
}

.efc-card-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-top: 17px;
}

.efc-detail-link {
	color: var(--efc-green) !important;
	font-size: 10px;
	font-weight: 800;
}

.efc-launch-note {
	color: #8b7961;
	font-size: 9px;
	font-weight: 760;
}

.efc-compare-toggle {
	min-height: 31px;
	padding: 0 10px;
	border: 1px solid #bfd1cb;
	border-radius: 5px;
	cursor: pointer;
	background: #fff;
	color: var(--efc-green);
	font-size: 9px;
	font-weight: 800;
}

.efc-compare-toggle:hover,
.efc-compare-toggle.is-selected {
	border-color: var(--efc-green);
	background: var(--efc-green);
	color: #fff;
}

.efc-no-results {
	margin-top: 20px;
	padding: 35px;
	border: 1px dashed #afc5be;
	background: var(--efc-mint-soft);
	color: var(--efc-slate);
	text-align: center;
	font-size: 13px;
}

.efc-compare-tray {
	position: sticky;
	z-index: 30;
	bottom: 18px;
	display: grid;
	grid-template-columns: 1fr auto auto;
	align-items: center;
	gap: 12px;
	max-width: 710px;
	margin: 25px auto 0;
	padding: 14px 15px 14px 19px;
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: 10px;
	background: var(--efc-deep);
	color: #fff;
	box-shadow: 0 20px 50px rgba(13, 41, 36, .25);
}

.efc-compare-tray[hidden] {
	display: none;
}

.efc-compare-tray > div {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.efc-compare-tray strong {
	font-size: 11px;
}

.efc-compare-tray small {
	color: #9fb8b2;
	font-size: 8px;
}

.efc-clear-compare {
	border: 0;
	cursor: pointer;
	background: transparent;
	color: #b9ccc7;
	font-size: 9px;
	font-weight: 760;
}

.efc-compare-dialog {
	width: min(1060px, calc(100% - 28px));
	max-height: min(780px, calc(100vh - 40px));
	padding: 0;
	border: 0;
	border-radius: 14px;
	background: #fff;
	color: var(--efc-ink);
	box-shadow: 0 30px 90px rgba(0, 0, 0, .28);
}

.efc-compare-dialog::backdrop {
	background: rgba(8, 28, 24, .72);
	backdrop-filter: blur(4px);
}

.efc-dialog-head {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 20px;
	padding: 24px 27px;
	border-bottom: 1px solid var(--efc-line);
	background: #fff;
}

.efc-dialog-head h2 {
	margin: 6px 0 0;
	font-family: var(--efc-serif);
	font-size: 30px;
	font-weight: 600;
}

.efc-dialog-head button {
	display: grid;
	place-items: center;
	width: 39px;
	height: 39px;
	border: 1px solid var(--efc-line);
	border-radius: 50%;
	cursor: pointer;
	background: #fff;
	color: var(--efc-green);
	font-size: 25px;
}

.efc-compare-output {
	overflow-x: auto;
	padding: 24px 27px 8px;
}

.efc-compare-table {
	width: 100%;
	min-width: 720px;
	border-collapse: collapse;
	table-layout: fixed;
}

.efc-compare-table th,
.efc-compare-table td {
	padding: 15px;
	border: 1px solid var(--efc-line);
	vertical-align: top;
	text-align: left;
}

.efc-compare-table th:first-child,
.efc-compare-table td:first-child {
	width: 145px;
	background: var(--efc-mint-soft);
	color: var(--efc-green);
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.efc-compare-table thead th:not(:first-child) {
	font-family: var(--efc-serif);
	font-size: 19px;
	font-weight: 600;
}

.efc-compare-table td {
	color: var(--efc-slate);
	font-size: 10px;
	line-height: 1.55;
}

.efc-compare-table a {
	color: var(--efc-green) !important;
	font-weight: 800;
}

.efc-dialog-note {
	margin: 15px 27px 26px !important;
	padding: 15px;
	border-left: 3px solid var(--efc-amber);
	background: #fff8ee;
	color: #74634d !important;
	font-size: 10px !important;
	line-height: 1.6 !important;
}

.efc-source-note {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 27px;
	margin-top: 47px;
	padding: 25px;
	border-top: 1px solid var(--efc-line);
	border-bottom: 1px solid var(--efc-line);
}

.efc-source-note strong {
	font-family: var(--efc-serif);
	font-size: 17px;
}

.efc-source-note p {
	margin: 0;
	color: var(--efc-slate);
	font-size: 11px;
	line-height: 1.7;
}

/* Featured cards */
.efc-featured-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.efc-test-card-featured .efc-test-image {
	min-height: 185px;
}

.efc-test-card-featured .efc-test-image img {
	height: 135px;
}

.efc-test-card-featured .efc-test-body {
	padding: 21px;
}

.efc-test-card-featured .efc-test-body h3 {
	font-size: 23px;
}

.efc-test-card-featured .efc-used-for {
	min-height: 76px;
}

.efc-test-card-featured .efc-fit-line {
	min-height: 112px;
}

/* EF Guide */
.efc-guide-intro {
	display: grid;
	grid-template-columns: 1fr 310px;
	align-items: end;
	gap: 72px;
	margin-bottom: 54px;
}

.efc-guide-principles {
	display: grid;
	border-top: 1px solid var(--efc-line);
}

.efc-guide-principles span {
	display: grid;
	grid-template-columns: 30px 1fr;
	gap: 10px;
	padding: 14px 0;
	border-bottom: 1px solid var(--efc-line);
	color: var(--efc-amber);
	font-family: var(--efc-serif);
	font-size: 12px;
}

.efc-guide-principles strong {
	color: var(--efc-ink);
	font-family: var(--efc-sans, "Segoe UI", sans-serif);
	font-size: 10px;
	font-weight: 760;
}

.efc-guide-workspace {
	overflow: hidden;
	max-width: 920px;
	margin-inline: auto;
	border: 1px solid var(--efc-line);
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 25px 70px rgba(16, 50, 43, .12);
}

.efc-guide-head {
	min-height: 77px;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 22px;
	border-bottom: 1px solid var(--efc-line);
}

.efc-guide-head .efc-guide-symbol {
	width: 40px;
	height: 40px;
	font-size: 11px;
}

.efc-guide-head > div {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.efc-guide-head strong {
	font-size: 12px;
}

.efc-guide-head small {
	color: var(--efc-slate);
	font-size: 8px;
}

.efc-guide-head small i {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 5px;
	border-radius: 50%;
	background: #30a07f;
}

.efc-guide-head em {
	margin-left: auto;
	color: var(--efc-green);
	font-size: 8px;
	font-style: normal;
	font-weight: 850;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.efc-guide-form {
	padding: 31px;
	background: #f7faf8;
}

.efc-guide-form label {
	display: block;
	margin-bottom: 11px;
	font-family: var(--efc-serif);
	font-size: 23px;
	font-weight: 600;
}

.efc-guide-form textarea {
	width: 100%;
	min-height: 155px;
	padding: 16px;
	resize: vertical;
	border: 1px solid #cbd9d4;
	border-radius: 8px;
	background: #fff;
	color: var(--efc-ink);
	font-size: 13px;
	line-height: 1.6;
}

.efc-guide-form > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 13px;
}

.efc-guide-form > div > small {
	max-width: 440px;
	color: #7b8c87;
	font-size: 8px;
	line-height: 1.5;
}

.efc-guide-response {
	padding: 29px 31px;
	border-top: 1px solid var(--efc-line);
	background: var(--efc-deep);
	color: #fff;
}

.efc-guide-response[hidden] {
	display: none;
}

.efc-guide-response > small {
	color: #f3c991;
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .13em;
}

.efc-guide-response h2 {
	margin: 9px 0 11px;
	font-family: var(--efc-serif);
	font-size: 26px;
	font-weight: 500;
}

.efc-guide-response p {
	margin: 0;
	color: #bdd0cb;
	font-size: 11px;
	line-height: 1.7;
}

.efc-guide-response > div {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 17px;
}

.efc-guide-response span {
	padding: 6px 8px;
	border-radius: 4px;
	background: rgba(255, 255, 255, .09);
	color: #d6e5e1;
	font-size: 8px;
	font-weight: 720;
}

.efc-guide-disclosure {
	max-width: 920px;
	margin: 20px auto 0 !important;
	padding-left: 15px;
	border-left: 3px solid var(--efc-amber);
	color: #7c8985 !important;
	font-size: 9px !important;
	line-height: 1.65 !important;
}

/* Secure report review */
.efc-secure-badge {
	display: grid;
	grid-template-columns: 47px 1fr;
	align-items: center;
	gap: 2px 13px;
	padding: 23px;
	border: 1px solid #b7d0c9;
	background: var(--efc-mint-soft);
}

.efc-secure-badge > span {
	grid-row: 1 / 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--efc-green);
	color: #fff;
	font-weight: 850;
}

.efc-secure-badge strong {
	font-size: 12px;
}

.efc-secure-badge small {
	color: var(--efc-slate);
	font-size: 8px;
	line-height: 1.4;
}

.efc-report-grid {
	display: grid;
	grid-template-columns: 1.12fr .88fr;
	align-items: start;
	gap: 70px;
}

.efc-report-steps ol {
	display: grid;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--efc-line);
}

.efc-report-steps li {
	display: grid;
	grid-template-columns: 55px 1fr;
	gap: 16px;
	padding: 23px 0;
	border-bottom: 1px solid var(--efc-line);
}

.efc-report-steps li > span {
	color: var(--efc-amber);
	font-family: var(--efc-serif);
	font-size: 14px;
}

.efc-report-steps li strong {
	font-family: var(--efc-serif);
	font-size: 20px;
	font-weight: 600;
}

.efc-report-steps li p {
	margin: 7px 0 0;
	color: var(--efc-slate);
	font-size: 11px;
	line-height: 1.7;
}

.efc-secure-panel {
	position: sticky;
	top: 112px;
	padding: 31px;
	background: var(--efc-deep);
	color: #fff;
}

.efc-secure-panel > small {
	color: #9accc1;
}

.efc-secure-panel h2 {
	margin: 13px 0 14px;
	font-family: var(--efc-serif);
	font-size: 31px;
	font-weight: 500;
	line-height: 1.1;
}

.efc-secure-panel > p {
	margin: 0 0 23px;
	color: #abc3bd;
	font-size: 11px;
	line-height: 1.7;
}

.efc-secure-panel .efc-action {
	background: #fff;
	color: var(--efc-deep) !important;
}

.efc-connection-pending {
	display: block;
	padding: 14px;
	border: 1px solid rgba(255, 255, 255, .2);
	color: #c8d8d4;
	font-size: 10px;
	font-weight: 750;
	text-align: center;
}

.efc-credit-note {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, .14);
}

.efc-credit-note strong {
	color: #f0c68f;
	font-family: var(--efc-serif);
	font-size: 15px;
	font-weight: 600;
}

.efc-credit-note small {
	color: #8fa9a3;
	font-size: 8px;
	line-height: 1.5;
}

/* Product alternatives */
.efc-alternative-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 17px;
}

.efc-alternative-grid article {
	min-height: 250px;
	display: flex;
	flex-direction: column;
	padding: 24px;
	border: 1px solid #cbdcd6;
	background: #fff;
}

.efc-alternative-grid small {
	color: var(--efc-green);
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.efc-alternative-grid h3 {
	margin: 25px 0 10px;
	font-family: var(--efc-serif);
	font-size: 22px;
	font-weight: 600;
}

.efc-alternative-grid p {
	margin: 0;
	color: var(--efc-slate);
	font-size: 11px;
	line-height: 1.65;
}

.efc-alternative-grid a,
.efc-alternative-grid article > span:last-child {
	margin-top: auto;
	padding-top: 22px;
	color: var(--efc-green) !important;
	font-size: 9px;
	font-weight: 800;
}

/* Checkout and customer order UI */
.efc-checkout-authorization {
	margin: 18px 0;
	padding: 18px;
	border: 1px solid #b8d1ca;
	border-left: 4px solid #176f65;
	background: #eef7f4;
}

.efc-checkout-authorization h3 {
	margin: 0 0 10px;
	font-family: Georgia, serif;
	font-size: 20px;
}

.efc-checkout-authorization .form-row {
	margin: 0 !important;
}

.efc-checkout-authorization label {
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
}

.efc-checkout-authorization > p:last-child {
	margin: 8px 0 0;
	color: #60736e;
	font-size: 9px;
}

.efc-order-credit-message {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 20px 0;
	padding: 18px;
	border-left: 4px solid #d99545;
	background: #fff8ee;
}

.efc-order-credit-message strong {
	font-family: Georgia, serif;
	font-size: 18px;
}

.efc-order-credit-message span {
	color: #6e6253;
	font-size: 10px;
	line-height: 1.55;
}

@media (max-width: 940px) {
	.efc-page-hero,
	.efc-guide-intro,
	.efc-report-grid { grid-template-columns: 1fr; gap: 32px; }
	.efc-catalog-count,
	.efc-secure-badge { max-width: 420px; }
	.efc-featured-grid { grid-template-columns: 1fr; }
	.efc-test-card-featured { display: grid; grid-template-columns: .72fr 1.28fr; }
	.efc-test-card-featured .efc-test-image { border-right: 1px solid #e0ddd4; border-bottom: 0; }
	.efc-test-card-featured .efc-used-for,
	.efc-test-card-featured .efc-fit-line { min-height: 0; }
	.efc-secure-panel { position: static; }
}

@media (max-width: 720px) {
	.ef-page-surface { padding-top: 55px; padding-bottom: 75px; }
	.efc-page-hero h1,
	.efc-guide-intro h1 { font-size: 45px; }
	.efc-guide-callout { grid-template-columns: 48px 1fr; }
	.efc-guide-callout .efc-action { grid-column: 1 / -1; }
	.efc-test-grid { grid-template-columns: 1fr; }
	.efc-library-summary { flex-direction: column; gap: 5px; }
	.efc-compare-tray { grid-template-columns: 1fr auto; }
	.efc-compare-tray .efc-action { grid-column: 1 / -1; }
	.efc-source-note { grid-template-columns: 1fr; gap: 9px; }
	.efc-test-card-featured { display: block; }
	.efc-test-card-featured .efc-test-image { border-right: 0; border-bottom: 1px solid #e0ddd4; }
	.efc-guide-head em { display: none; }
	.efc-guide-form { padding: 23px; }
	.efc-guide-form > div { align-items: stretch; flex-direction: column; }
	.efc-guide-response { padding: 24px; }
	.efc-alternative-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
	.efc-page-hero h1,
	.efc-guide-intro h1 { font-size: 40px; }
	.efc-page-hero-copy > p:last-child,
	.efc-guide-intro > div:first-child > p:last-child { font-size: 15px; }
	.efc-guide-callout { padding: 19px; }
	.efc-library-controls { padding: 13px; }
	.efc-test-body { padding: 20px; }
	.efc-provider { flex-direction: column; }
	.efc-provider small { text-align: left; }
	.efc-card-actions { align-items: flex-start; flex-direction: column; }
	.efc-compare-dialog { width: calc(100% - 14px); }
	.efc-dialog-head,
	.efc-compare-output { padding-left: 18px; padding-right: 18px; }
	.efc-guide-form label { font-size: 20px; }
	.efc-report-steps li { grid-template-columns: 38px 1fr; }
}

/* EF Guide v1.1: conversation, contextual help, voice input, and persistent access. */
.efc-guide-compact-heading {
	max-width: 920px;
	margin: 0 auto 22px;
}

.efc-guide-compact-heading h2 {
	margin: 7px 0 8px;
	font-family: var(--efc-serif);
	font-size: clamp(29px, 4vw, 42px);
	font-weight: 550;
	letter-spacing: -.035em;
	line-height: 1.05;
}

.efc-guide-compact-heading > p:last-child {
	max-width: 720px;
	margin: 0;
	color: var(--efc-slate);
	font-size: 13px;
	line-height: 1.65;
}

.efc-guide-conversation {
	display: flex;
	flex-direction: column;
	gap: 15px;
	max-height: 510px;
	overflow-y: auto;
	padding: 24px 28px;
	background: #fff;
	scrollbar-color: #b8ccc6 transparent;
}

.efc-guide-message {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	align-items: start;
	gap: 12px;
	max-width: 780px;
}

.efc-guide-message.is-user {
	align-self: flex-end;
	grid-template-columns: minmax(0, 1fr) 42px;
	max-width: 690px;
}

.efc-guide-message.is-user .efc-guide-avatar {
	grid-column: 2;
	grid-row: 1;
	background: #d8e9e4;
	color: var(--efc-deep);
	font-family: var(--efc-sans, "Segoe UI", sans-serif);
	font-size: 8px;
}

.efc-guide-message.is-user > div {
	grid-column: 1;
	grid-row: 1;
	border-color: #c5d8d2;
	background: var(--efc-mint-soft);
}

.efc-guide-avatar {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--efc-green);
	color: #fff;
	font-family: var(--efc-serif);
	font-size: 11px;
	font-weight: 700;
}

.efc-guide-message > div {
	padding: 15px 17px;
	border: 1px solid var(--efc-line);
	border-radius: 4px 14px 14px 14px;
	background: #fff;
}

.efc-guide-message.is-user > div {
	border-radius: 14px 4px 14px 14px;
}

.efc-guide-message small {
	display: block;
	margin-bottom: 5px;
	color: var(--efc-green);
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.efc-guide-message h3 {
	margin: 2px 0 10px;
	font-family: var(--efc-serif);
	font-size: 21px;
	font-weight: 600;
	letter-spacing: -.015em;
	line-height: 1.2;
}

.efc-guide-message p {
	margin: 0 0 9px !important;
	color: #445d57 !important;
	font-size: 12px !important;
	line-height: 1.67 !important;
}

.efc-guide-message p:last-child {
	margin-bottom: 0 !important;
}

.efc-guide-message ul {
	margin: 12px 0 10px;
	padding-left: 19px;
	color: #445d57;
	font-size: 11px;
	line-height: 1.6;
}

.efc-guide-message li + li {
	margin-top: 6px;
}

.efc-guide-follow-up {
	margin-top: 13px !important;
	padding: 11px 12px;
	border-left: 3px solid var(--efc-amber);
	background: #fff8ee;
	color: #675a4a !important;
}

.efc-guide-message-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.efc-guide-message-actions a,
.efc-guide-replay {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 11px;
	border: 1px solid #bad0c9;
	border-radius: 5px;
	background: #fff;
	color: var(--efc-green) !important;
	font-size: 9px;
	font-weight: 800;
}

.efc-guide-replay {
	margin-top: 10px;
	cursor: pointer;
}

.efc-guide-form {
	border-top: 1px solid var(--efc-line);
}

.efc-guide-form > .efc-guide-input-shell,
.efc-guide-form > .efc-guide-options,
.efc-guide-form > .efc-guide-submit-row {
	margin-top: 0;
}

.efc-guide-input-shell {
	position: relative;
	display: block !important;
}

.efc-guide-input-shell textarea {
	min-height: 132px;
	padding-right: 126px;
}

.efc-mic-button {
	position: absolute;
	right: 10px;
	bottom: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-width: 103px;
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid #adc8c0;
	border-radius: 7px;
	cursor: pointer;
	background: #fff;
	color: var(--efc-green);
	font-size: 9px;
	font-weight: 850;
}

.efc-mic-button:hover {
	border-color: var(--efc-green);
	background: var(--efc-mint-soft);
}

.efc-mic-button.is-listening {
	border-color: #a33f3f;
	background: #fff1f1;
	color: #8d2d2d;
	box-shadow: 0 0 0 4px rgba(163, 63, 63, .09);
}

.efc-mic-button.is-unavailable,
.efc-mic-button:disabled {
	cursor: not-allowed;
	opacity: .55;
}

.efc-mic-icon {
	position: relative;
	display: inline-block;
	width: 11px;
	height: 16px;
	border: 2px solid currentColor;
	border-radius: 7px;
}

.efc-mic-icon::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -6px;
	width: 13px;
	height: 7px;
	transform: translateX(-50%);
	border: 2px solid currentColor;
	border-top: 0;
	border-radius: 0 0 9px 9px;
}

.efc-mic-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -9px;
	width: 2px;
	height: 4px;
	transform: translateX(-50%);
	background: currentColor;
}

.efc-voice-status {
	min-height: 31px;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	margin-top: 7px !important;
	padding: 7px 10px;
	border-radius: 5px;
	background: #edf5f2;
	color: #536c66;
	font-size: 9px;
	line-height: 1.45;
}

.efc-voice-status[data-state="listening"] {
	background: #fff0f0;
	color: #8d2d2d;
}

.efc-voice-status[data-state="speaking"] {
	background: #eef1f9;
	color: #4e5c81;
}

.efc-voice-status[data-state="error"],
.efc-voice-status[data-state="unavailable"] {
	background: #fff8ee;
	color: #765c3b;
}

.efc-guide-options {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	flex-wrap: wrap;
	gap: 8px 18px !important;
	margin-top: 11px !important;
}

.efc-guide-options label {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	cursor: pointer;
	font-family: var(--efc-sans, "Segoe UI", sans-serif);
	font-size: 9px;
	font-weight: 700;
	line-height: 1.35;
}

.efc-guide-options input {
	width: 15px;
	height: 15px;
	accent-color: var(--efc-green);
}

.efc-guide-submit-row {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 20px !important;
	margin-top: 15px !important;
}

.efc-guide-submit-row > small {
	max-width: 490px;
	color: #778984;
	font-size: 8px;
	line-height: 1.5;
}

.efc-guide-suggestions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	padding: 15px 28px 20px;
	border-top: 1px solid #e4ebe8;
	background: #fff;
}

.efc-guide-suggestions > span {
	margin-right: 3px;
	color: #768781;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.efc-guide-suggestions button {
	min-height: 31px;
	padding: 0 10px;
	border: 1px solid #c8d8d3;
	border-radius: 100px;
	cursor: pointer;
	background: #fff;
	color: #4b655f;
	font-size: 8px;
	font-weight: 720;
}

.efc-guide-suggestions button:hover {
	border-color: var(--efc-green);
	background: var(--efc-mint-soft);
	color: var(--efc-green);
}

.efc-guide-mode-home,
.efc-guide-mode-product,
.efc-guide-mode-drawer {
	padding: 0;
}

.efc-guide-mode-home .efc-guide-workspace,
.efc-guide-mode-product .efc-guide-workspace,
.efc-guide-mode-drawer .efc-guide-workspace {
	max-width: none;
	margin: 0;
	box-shadow: none;
}

.efc-guide-mode-home .efc-guide-head,
.efc-guide-mode-product .efc-guide-head,
.efc-guide-mode-drawer .efc-guide-head {
	min-height: 65px;
}

.efc-guide-mode-home .efc-guide-conversation,
.efc-guide-mode-product .efc-guide-conversation,
.efc-guide-mode-drawer .efc-guide-conversation {
	max-height: 360px;
	padding: 19px 21px;
}

.efc-guide-mode-home .efc-guide-form,
.efc-guide-mode-product .efc-guide-form,
.efc-guide-mode-drawer .efc-guide-form {
	padding: 21px;
}

.efc-guide-mode-home .efc-guide-form label,
.efc-guide-mode-product .efc-guide-form label,
.efc-guide-mode-drawer .efc-guide-form label {
	font-size: 18px;
}

.efc-guide-mode-home .efc-guide-input-shell textarea,
.efc-guide-mode-product .efc-guide-input-shell textarea,
.efc-guide-mode-drawer .efc-guide-input-shell textarea {
	min-height: 112px;
}

.efc-guide-mode-home .efc-guide-suggestions,
.efc-guide-mode-product .efc-guide-suggestions,
.efc-guide-mode-drawer .efc-guide-suggestions {
	padding: 13px 21px 17px;
}

.efc-guide-launcher {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 9990;
	display: grid;
	grid-template-columns: 43px auto;
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 10px;
	min-width: 176px;
	min-height: 61px;
	padding: 8px 15px 8px 9px;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 14px;
	cursor: pointer;
	background: var(--efc-deep);
	color: #fff;
	box-shadow: 0 15px 45px rgba(8, 35, 30, .28);
}

.efc-guide-launcher > span {
	grid-row: 1 / 3;
	display: grid;
	place-items: center;
	width: 43px;
	height: 43px;
	border-radius: 50%;
	background: var(--efc-green);
	font-family: var(--efc-serif);
	font-size: 12px;
	font-weight: 700;
}

.efc-guide-launcher strong {
	align-self: end;
	font-size: 11px;
	line-height: 1.15;
	text-align: left;
}

.efc-guide-launcher small {
	align-self: start;
	color: #a9c3bc;
	font-size: 8px;
	text-align: left;
}

.efc-guide-launcher:hover {
	transform: translateY(-2px);
	background: #071f1b;
}

.efc-guide-drawer {
	position: fixed;
	inset: auto 20px 20px auto;
	width: min(620px, calc(100% - 28px));
	max-width: none;
	height: min(820px, calc(100vh - 40px));
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 16px;
	background: #fff;
	color: var(--efc-ink);
	box-shadow: 0 28px 90px rgba(0, 0, 0, .33);
}

.efc-guide-drawer::backdrop {
	background: rgba(7, 28, 24, .62);
	backdrop-filter: blur(3px);
}

.efc-guide-drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 62px;
	padding: 10px 15px;
	border-bottom: 1px solid var(--efc-line);
	background: var(--efc-deep);
	color: #fff;
}

.efc-guide-drawer-head > div {
	display: flex;
	align-items: center;
	gap: 9px;
}

.efc-guide-drawer-head > div > span {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--efc-green);
	font-family: var(--efc-serif);
	font-size: 10px;
}

.efc-guide-drawer-head strong {
	font-size: 12px;
}

.efc-guide-drawer-head button {
	display: grid;
	place-items: center;
	width: 37px;
	height: 37px;
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	cursor: pointer;
	background: transparent;
	color: #fff;
	font-size: 23px;
}

.efc-guide-drawer-body {
	height: calc(100% - 62px);
	overflow-y: auto;
	padding: 0;
}

.efc-guide-drawer .efc-guide-workspace {
	border: 0;
	border-radius: 0;
}

.efc-guide-drawer .efc-guide-head {
	display: none;
}

.efc-guide-drawer .efc-guide-conversation {
	max-height: 330px;
}

@media (max-width: 720px) {
	.efc-guide-conversation {
		padding: 18px;
	}
	.efc-guide-message,
	.efc-guide-message.is-user {
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
		max-width: none;
		gap: 0;
	}
	.efc-guide-avatar {
		display: none;
	}
	.efc-guide-message.is-user > div {
		grid-column: 1;
	}
	.efc-guide-message > div {
		padding: 13px 14px;
	}
	.efc-guide-message h3 {
		font-size: 19px;
	}
	.efc-guide-input-shell textarea {
		padding-right: 16px;
		padding-bottom: 60px;
	}
	.efc-mic-button {
		left: 10px;
		right: auto;
	}
	.efc-guide-submit-row {
		align-items: stretch !important;
		flex-direction: column;
	}
	.efc-guide-submit-row .efc-action {
		width: 100%;
	}
	.efc-guide-suggestions {
		align-items: stretch;
		flex-direction: column;
	}
	.efc-guide-suggestions button {
		min-height: 37px;
		text-align: left;
	}
	.efc-guide-launcher {
		right: 12px;
		bottom: 12px;
		min-width: 0;
		grid-template-columns: 41px auto;
		padding-right: 12px;
	}
	.efc-guide-drawer {
		inset: 7px;
		width: calc(100% - 14px);
		height: calc(100vh - 14px);
		border-radius: 12px;
	}
	.efc-guide-drawer .efc-guide-conversation {
		max-height: 300px;
	}
}

@media (max-width: 430px) {
	.efc-guide-launcher strong,
	.efc-guide-launcher small {
		display: none;
	}
	.efc-guide-launcher {
		display: grid;
		grid-template-columns: 45px;
		width: 59px;
		height: 59px;
		min-height: 59px;
		padding: 7px;
		border-radius: 50%;
	}
	.efc-guide-launcher > span {
		grid-row: auto;
		width: 43px;
		height: 43px;
	}
	.efc-guide-options {
		align-items: flex-start !important;
		flex-direction: column;
	}
}


/* Professional entry remains separate from the homeowner checkout. */
.efc-professional-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 0 0 34px;
}

.efc-professional-grid article {
	min-height: 270px;
	padding: 28px;
	border: 1px solid var(--efc-line);
	background: #fff;
}

.efc-professional-grid article > span,
.efc-professional-cta small {
	color: var(--efc-green);
	font-size: 9px;
	font-weight: 850;
	letter-spacing: .14em;
}

.efc-professional-grid h2 {
	margin: 23px 0 13px;
	font-family: var(--efc-serif);
	font-size: 29px;
	font-weight: 550;
	letter-spacing: -.025em;
	line-height: 1.08;
}

.efc-professional-grid p,
.efc-professional-cta p {
	margin: 0;
	color: var(--efc-slate);
	font-size: 12px;
	line-height: 1.75;
}

.efc-professional-cta {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 42px;
	padding: 32px;
	background: var(--efc-deep);
	color: #fff;
}

.efc-professional-cta h2 {
	margin: 10px 0 9px;
	font-family: var(--efc-serif);
	font-size: 31px;
	font-weight: 520;
	line-height: 1.1;
}

.efc-professional-cta p {
	max-width: 760px;
	color: #b5cac5;
}

.efc-professional-cta .efc-action {
	min-width: 210px;
	background: #fff;
	color: var(--efc-deep) !important;
}

.efc-professional-pending {
	display: flex;
	min-width: 260px;
	flex-direction: column;
	gap: 8px;
	padding: 16px 18px;
	border: 1px solid rgba(255, 255, 255, .2);
}

.efc-professional-pending strong {
	font-size: 11px;
}

.efc-professional-pending a {
	color: #f2cb98;
	font-size: 10px;
	font-weight: 780;
}

@media (max-width: 900px) {
	.efc-professional-grid {
		grid-template-columns: 1fr;
	}
	.efc-professional-grid article {
		min-height: 0;
	}
	.efc-professional-cta {
		grid-template-columns: 1fr;
	}
	.efc-professional-cta .efc-action,
	.efc-professional-pending {
		width: 100%;
		min-width: 0;
	}
}

/* Report Review sales page — v1.2.0 */
.efc-report-review {
	padding-bottom: 24px;
}

.efc-review-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(350px, .72fr);
	align-items: center;
	gap: 64px;
	margin-bottom: 76px;
	padding: 50px;
	border: 1px solid #d6ddd9;
	background: linear-gradient(135deg, var(--efc-cream) 0%, #f0f7f4 100%);
}

.efc-review-hero h1 {
	max-width: 820px;
	margin: 15px 0 20px;
	font-family: var(--efc-serif);
	font-size: clamp(47px, 5vw, 70px);
	font-weight: 520;
	letter-spacing: -.045em;
	line-height: .99;
}

.efc-review-hero-lede {
	max-width: 760px;
	margin: 0;
	color: #4d625d;
	font-size: 16px;
	line-height: 1.75;
}

.efc-review-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 11px;
	margin-top: 29px;
}

.efc-secondary-action {
	display: inline-flex;
	min-height: 46px;
	align-items: center;
	justify-content: center;
	padding: 0 18px;
	border: 1px solid var(--efc-green);
	border-radius: 7px;
	color: var(--efc-green) !important;
	font-size: 11px;
	font-weight: 800;
	transition: background .2s ease, transform .2s ease;
}

.efc-secondary-action:hover {
	transform: translateY(-2px);
	background: var(--efc-mint-soft);
}

.efc-review-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
	color: #526660;
	font-size: 9px;
	font-weight: 750;
}

.efc-review-trust li::before {
	content: "✓ ";
	color: var(--efc-green);
}

.efc-review-boundary {
	max-width: 760px;
	margin: 19px 0 0;
	padding-left: 13px;
	border-left: 3px solid var(--efc-amber);
	color: #798681;
	font-size: 9px;
	line-height: 1.6;
}

.efc-review-hero-sample {
	padding: 15px;
	border: 1px solid #c9d7d2;
	background: #fff;
	box-shadow: 0 25px 65px rgba(16, 50, 43, .15);
	transform: rotate(1deg);
}

.efc-review-sample-label,
.efc-review-sample-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.efc-review-sample-label {
	padding: 2px 2px 12px;
	color: var(--efc-green);
	font-size: 8px;
	font-weight: 850;
	letter-spacing: .1em;
}

.efc-review-sample-label strong {
	padding: 5px 7px;
	border-radius: 999px;
	background: var(--efc-mint-soft);
	font-size: 8px;
	letter-spacing: 0;
}

.efc-review-hero-sample > a {
	display: block;
	overflow: hidden;
	max-height: 455px;
	border: 1px solid var(--efc-line);
	background: #f6f6f4;
}

.efc-review-hero-sample img {
	width: 100%;
	height: auto;
}

.efc-review-sample-footer {
	padding: 13px 2px 0;
	font-size: 9px;
}

.efc-review-sample-footer a {
	color: var(--efc-green) !important;
	font-weight: 800;
}

.efc-review-problem,
.efc-review-section-head {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	align-items: end;
	gap: 70px;
}

.efc-review-problem {
	margin-bottom: 44px;
}

.efc-review-problem h2,
.efc-review-section-head h2,
.efc-review-audience h2,
.efc-review-governance h2,
.efc-review-faq h2,
.efc-review-secure-next h2 {
	margin: 13px 0 0;
	font-family: var(--efc-serif);
	font-size: clamp(35px, 4vw, 51px);
	font-weight: 530;
	letter-spacing: -.035em;
	line-height: 1.07;
}

.efc-review-problem > p,
.efc-review-section-head > p {
	margin: 0;
	color: var(--efc-slate);
	font-size: 13px;
	line-height: 1.78;
}

.efc-review-benefit-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-bottom: 96px;
	border: 1px solid var(--efc-line);
}

.efc-review-benefit-grid article {
	min-height: 275px;
	display: flex;
	flex-direction: column;
	padding: 27px;
	border-right: 1px solid var(--efc-line);
	background: #fff;
}

.efc-review-benefit-grid article:last-child {
	border-right: 0;
}

.efc-review-benefit-grid article > span {
	color: var(--efc-amber);
	font-family: var(--efc-serif);
	font-size: 14px;
}

.efc-review-benefit-grid h2 {
	margin: auto 0 11px;
	font-family: var(--efc-serif);
	font-size: 23px;
	font-weight: 600;
	line-height: 1.12;
}

.efc-review-benefit-grid p {
	margin: 0;
	color: var(--efc-slate);
	font-size: 10px;
	line-height: 1.65;
}

.efc-review-pricing,
.efc-review-sample-section,
.efc-review-process-section,
.efc-review-faq {
	padding: 88px 0;
	border-top: 1px solid var(--efc-line);
}

.efc-review-section-head {
	margin-bottom: 43px;
}

.efc-review-price-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	max-width: 1030px;
	margin-inline: auto;
}

.efc-review-price-grid article {
	display: flex;
	min-height: 580px;
	flex-direction: column;
	padding: 38px;
	border: 1px solid var(--efc-line);
	background: #fff;
}

.efc-review-price-grid article.is-primary {
	border: 2px solid var(--efc-green);
	background: linear-gradient(180deg, #f0f8f5 0%, #fff 45%);
}

.efc-review-price-label {
	margin: 0;
	color: var(--efc-green);
	font-size: 9px;
	font-weight: 850;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.efc-review-price-grid h3 {
	margin: 17px 0 20px;
	font-family: var(--efc-serif);
	font-size: 34px;
	font-weight: 560;
	letter-spacing: -.03em;
	line-height: 1.08;
}

.efc-review-price {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding: 17px 0;
	border-top: 1px solid var(--efc-line);
	border-bottom: 1px solid var(--efc-line);
}

.efc-review-price strong {
	font-family: var(--efc-serif);
	font-size: 45px;
	font-weight: 560;
}

.efc-review-price span {
	max-width: 180px;
	color: var(--efc-slate);
	font-size: 9px;
	line-height: 1.45;
}

.efc-review-price-grid ul,
.efc-review-audience ul,
.efc-review-governance ul {
	margin: 23px 0 29px;
	padding: 0;
	list-style: none;
}

.efc-review-price-grid li,
.efc-review-audience li,
.efc-review-governance li {
	position: relative;
	padding: 8px 0 8px 23px;
	color: #415853;
	font-size: 11px;
	line-height: 1.55;
}

.efc-review-price-grid li::before,
.efc-review-audience li::before,
.efc-review-governance li::before {
	position: absolute;
	left: 0;
	content: "✓";
	color: var(--efc-green);
	font-weight: 900;
}

.efc-review-price-grid article > .efc-action,
.efc-review-price-grid article > .efc-secondary-action {
	width: 100%;
	margin-top: auto;
}

.efc-review-sample-section {
	position: relative;
	margin-inline: calc(50% - 50vw);
	padding-inline: max(20px, calc((100vw - 1180px) / 2));
	background: var(--efc-cream);
}

.efc-review-sample-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.efc-review-sample-grid figure {
	margin: 0;
	padding: 12px;
	border: 1px solid #d7d3c8;
	background: #fff;
	box-shadow: 0 17px 43px rgba(25, 55, 48, .08);
}

.efc-review-sample-grid figure > a {
	display: block;
	overflow: hidden;
	max-height: 420px;
	border: 1px solid var(--efc-line);
	background: #f5f5f3;
}

.efc-review-sample-grid img {
	width: 100%;
}

.efc-review-sample-grid figcaption {
	display: flex;
	min-height: 84px;
	flex-direction: column;
	gap: 6px;
	padding: 15px 7px 5px;
}

.efc-review-sample-grid figcaption strong {
	font-family: var(--efc-serif);
	font-size: 19px;
	font-weight: 600;
}

.efc-review-sample-grid figcaption span {
	color: var(--efc-slate);
	font-size: 9px;
	line-height: 1.55;
}

.efc-review-center {
	display: flex;
	justify-content: center;
	margin-top: 31px;
}

.efc-review-audience {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
	padding: 88px 0;
}

.efc-review-audience article {
	padding: 38px;
	border: 1px solid var(--efc-line);
	background: #fff;
}

.efc-review-process-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	border: 1px solid var(--efc-line);
	list-style: none;
}

.efc-review-process-list li {
	min-height: 260px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 27px;
	border-right: 1px solid var(--efc-line);
}

.efc-review-process-list li:last-child {
	border-right: 0;
}

.efc-review-process-list li > span {
	color: var(--efc-amber);
	font-family: var(--efc-serif);
	font-size: 14px;
}

.efc-review-process-list li > div {
	margin-top: auto;
}

.efc-review-process-list strong {
	font-family: var(--efc-serif);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.13;
}

.efc-review-process-list p {
	margin: 9px 0 0;
	color: var(--efc-slate);
	font-size: 10px;
	line-height: 1.65;
}

.efc-review-governance {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	align-items: center;
	gap: 70px;
	margin-inline: calc(50% - 50vw);
	padding: 78px max(20px, calc((100vw - 1180px) / 2));
	background: var(--efc-deep);
	color: #fff;
}

.efc-review-governance h2 {
	color: #fff;
}

.efc-review-governance p {
	margin: 18px 0 0;
	color: #adc3bd;
	font-size: 13px;
	line-height: 1.8;
}

.efc-review-governance ul {
	margin: 0;
	padding: 30px;
	border: 1px solid rgba(255, 255, 255, .15);
	background: rgba(255, 255, 255, .05);
}

.efc-review-governance li {
	color: #d7e4e0;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.efc-review-governance li:last-child {
	border-bottom: 0;
}

.efc-review-governance li::before {
	color: #f0c68f;
}

.efc-review-faq {
	display: grid;
	grid-template-columns: .7fr 1.3fr;
	gap: 75px;
}

.efc-review-faq > div:last-child {
	border-top: 1px solid var(--efc-line);
}

.efc-review-faq details {
	border-bottom: 1px solid var(--efc-line);
}

.efc-review-faq summary {
	position: relative;
	padding: 21px 39px 21px 0;
	cursor: pointer;
	font-family: var(--efc-serif);
	font-size: 19px;
	font-weight: 600;
	list-style: none;
}

.efc-review-faq summary::-webkit-details-marker {
	display: none;
}

.efc-review-faq summary::after {
	position: absolute;
	right: 4px;
	content: "+";
	color: var(--efc-green);
	font-family: sans-serif;
}

.efc-review-faq details[open] summary::after {
	content: "−";
}

.efc-review-faq details p {
	margin: -2px 0 21px;
	padding-right: 28px;
	color: var(--efc-slate);
	font-size: 11px;
	line-height: 1.75;
}

.efc-review-secure-next {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	align-items: center;
	gap: 65px;
	margin-top: 10px;
	padding: 48px;
	background: var(--efc-deep);
	color: #fff;
	scroll-margin-top: 110px;
}

.efc-review-secure-next h2 {
	color: #fff;
}

.efc-review-secure-next p {
	margin: 16px 0 0;
	color: #adc3bd;
	font-size: 12px;
	line-height: 1.75;
}

.efc-review-secure-actions {
	display: flex;
	flex-direction: column;
	gap: 11px;
}

.efc-review-secure-actions .efc-action {
	background: #fff;
	color: var(--efc-deep) !important;
}

.efc-secondary-action.is-light {
	border-color: rgba(255, 255, 255, .5);
	color: #fff !important;
}

.efc-secondary-action.is-light:hover {
	background: rgba(255, 255, 255, .08);
}

.efc-secure-case-link {
	padding: 8px 0;
	color: #f0c68f !important;
	font-size: 10px;
	font-weight: 800;
}

.efc-review-secure-next .efc-connection-pending {
	line-height: 1.6;
}

@media (max-width: 1050px) {
	.efc-review-benefit-grid,
	.efc-review-process-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.efc-review-benefit-grid article:nth-child(2),
	.efc-review-process-list li:nth-child(2) {
		border-right: 0;
	}
	.efc-review-benefit-grid article:nth-child(-n+2),
	.efc-review-process-list li:nth-child(-n+2) {
		border-bottom: 1px solid var(--efc-line);
	}
}

@media (max-width: 900px) {
	.efc-review-hero,
	.efc-review-problem,
	.efc-review-section-head,
	.efc-review-audience,
	.efc-review-governance,
	.efc-review-faq,
	.efc-review-secure-next {
		grid-template-columns: 1fr;
	}
	.efc-review-hero {
		padding: 34px;
	}
	.efc-review-hero-sample {
		max-width: 520px;
		margin-inline: auto;
		transform: none;
	}
	.efc-review-price-grid {
		grid-template-columns: 1fr;
	}
	.efc-review-price-grid article {
		min-height: 0;
	}
	.efc-review-problem,
	.efc-review-section-head,
	.efc-review-governance,
	.efc-review-faq,
	.efc-review-secure-next {
		gap: 35px;
	}
}

@media (max-width: 650px) {
	.efc-review-hero {
		margin-bottom: 58px;
		padding: 26px 21px;
	}
	.efc-review-hero h1 {
		font-size: 43px;
	}
	.efc-review-actions {
		align-items: stretch;
		flex-direction: column;
	}
	.efc-review-benefit-grid,
	.efc-review-process-list,
	.efc-review-sample-grid {
		grid-template-columns: 1fr;
	}
	.efc-review-benefit-grid article,
	.efc-review-process-list li {
		min-height: 220px;
		border-right: 0;
		border-bottom: 1px solid var(--efc-line);
	}
	.efc-review-benefit-grid article:last-child,
	.efc-review-process-list li:last-child {
		border-bottom: 0;
	}
	.efc-review-pricing,
	.efc-review-sample-section,
	.efc-review-process-section,
	.efc-review-faq,
	.efc-review-audience {
		padding-top: 65px;
		padding-bottom: 65px;
	}
	.efc-review-price-grid article,
	.efc-review-audience article {
		padding: 27px 22px;
	}
	.efc-review-price-grid h3 {
		font-size: 29px;
	}
	.efc-review-price strong {
		font-size: 39px;
	}
	.efc-review-sample-grid figure > a {
		max-height: 470px;
	}
	.efc-review-governance,
	.efc-review-secure-next {
		padding-top: 58px;
		padding-bottom: 58px;
	}
	.efc-review-faq summary {
		font-size: 17px;
	}
}

/* --------------------------------------------------------------------------
 * Version 1.3.0 — EVA conversation, readability, feedback, and voice mode
 * -------------------------------------------------------------------------- */
.efc-guide-workspace {
	max-width: 1080px;
}

.efc-guide-conversation {
	min-height: 300px;
	max-height: 600px;
	gap: 20px;
	padding: 30px 34px;
}

.efc-guide-message {
	grid-template-columns: 50px minmax(0, 1fr);
	gap: 15px;
	max-width: 900px;
}

.efc-guide-message.is-user {
	grid-template-columns: minmax(0, 1fr) 50px;
	max-width: 800px;
}

.efc-guide-avatar {
	width: 48px;
	height: 48px;
	font-size: 12px;
}

.efc-guide-message.is-user .efc-guide-avatar {
	font-size: 10px;
}

.efc-guide-message > div {
	padding: 20px 22px;
}

.efc-guide-message small {
	margin-bottom: 7px;
	font-size: 11px;
	letter-spacing: .07em;
}

.efc-guide-message h3 {
	margin: 3px 0 13px;
	font-size: 25px;
	line-height: 1.18;
}

.efc-guide-message p {
	margin: 0 0 12px !important;
	font-size: 16px !important;
	line-height: 1.68 !important;
}

.efc-guide-message ul {
	margin: 16px 0 13px;
	padding-left: 24px;
	font-size: 15px;
	line-height: 1.65;
}

.efc-guide-message li + li {
	margin-top: 8px;
}

.efc-guide-follow-up {
	margin-top: 17px !important;
	padding: 14px 16px;
	font-size: 15px !important;
}

.efc-guide-message-actions {
	gap: 10px;
	margin-top: 16px;
}

.efc-guide-message-actions a,
.efc-guide-replay {
	min-height: 42px;
	padding: 0 15px;
	font-size: 12px;
	line-height: 1.25;
}

.efc-guide-replay {
	margin-top: 13px;
}

.efc-conversation-method {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(220px, .55fr);
	gap: 13px;
	padding: 22px 28px 0;
	border-top: 1px solid var(--efc-line);
	background: #fff;
}

.efc-start-voice,
.efc-type-choice {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 88px;
	padding: 16px 18px;
	border: 1px solid #b8cec7;
	border-radius: 10px;
	cursor: pointer;
	background: #f6fbf9;
	color: var(--efc-deep);
	text-align: left;
	transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
}

.efc-start-voice:hover,
.efc-type-choice:hover {
	transform: translateY(-1px);
	border-color: var(--efc-green);
	background: #eff8f5;
	box-shadow: 0 10px 26px rgba(10, 63, 52, .08);
}

.efc-start-voice.is-active {
	border-color: #a34343;
	background: #fff3f3;
	box-shadow: 0 0 0 4px rgba(163, 67, 67, .08);
}

.efc-start-voice.is-unavailable {
	cursor: not-allowed;
	opacity: .68;
}

.efc-start-voice > span:last-child,
.efc-type-choice > span:last-child,
.efc-type-choice {
	min-width: 0;
}

.efc-start-voice strong,
.efc-type-choice strong {
	display: block;
	margin-bottom: 4px;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
}

.efc-start-voice small,
.efc-type-choice small {
	display: block;
	color: #5b726c;
	font-size: 13px;
	font-weight: 550;
	line-height: 1.45;
}

.efc-voice-button-icon {
	display: grid;
	place-items: center;
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--efc-green);
	color: #fff;
}

.efc-start-voice.is-active .efc-voice-button-icon {
	background: #9c3d3d;
}

.efc-voice-session {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr) auto;
	align-items: center;
	gap: 13px;
	margin: 15px 28px 0;
	padding: 13px 15px;
	border: 1px solid #f0c4c4;
	border-radius: 9px;
	background: #fff5f5;
	color: #642f2f;
}

.efc-voice-session[hidden] {
	display: none;
}

.efc-voice-session-pulse {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #a33f3f;
	box-shadow: 0 0 0 0 rgba(163, 63, 63, .35);
	animation: efc-voice-pulse 1.8s infinite;
}

@keyframes efc-voice-pulse {
	0% { box-shadow: 0 0 0 0 rgba(163, 63, 63, .35); }
	70% { box-shadow: 0 0 0 9px rgba(163, 63, 63, 0); }
	100% { box-shadow: 0 0 0 0 rgba(163, 63, 63, 0); }
}

.efc-voice-session strong,
.efc-voice-session small {
	display: block;
}

.efc-voice-session strong {
	font-size: 14px;
	line-height: 1.3;
}

.efc-voice-session small {
	margin-top: 2px;
	font-size: 12px;
	line-height: 1.45;
}

.efc-voice-session button {
	min-height: 38px;
	padding: 0 12px;
	border: 1px solid #c78d8d;
	border-radius: 6px;
	cursor: pointer;
	background: #fff;
	color: #7d3030;
	font-size: 11px;
	font-weight: 800;
}

.efc-guide-form {
	padding: 25px 28px 28px;
}

.efc-guide-form label {
	font-size: 22px;
	line-height: 1.25;
}

.efc-guide-input-shell textarea,
.efc-guide-mode-home .efc-guide-input-shell textarea,
.efc-guide-mode-product .efc-guide-input-shell textarea,
.efc-guide-mode-drawer .efc-guide-input-shell textarea {
	min-height: 145px;
	padding: 17px 18px;
	font-size: 16px;
	line-height: 1.55;
}

.efc-voice-status {
	min-height: 44px;
	margin-top: 11px !important;
	padding: 10px 13px;
	font-size: 13px;
	line-height: 1.5;
}

.efc-voice-settings {
	margin-top: 12px;
	padding: 0;
}

.efc-voice-settings summary {
	width: fit-content;
	cursor: pointer;
	color: #526b65;
	font-size: 12px;
	font-weight: 800;
}

.efc-guide-options {
	gap: 11px 24px !important;
	margin-top: 12px !important;
	padding: 13px 15px;
	border-radius: 7px;
	background: #f6f9f8;
}

.efc-guide-options label {
	font-size: 13px;
	line-height: 1.45;
}

.efc-guide-options input {
	width: 18px;
	height: 18px;
}

.efc-guide-submit-row {
	margin-top: 18px !important;
}

.efc-guide-submit-row > small {
	font-size: 11px;
	line-height: 1.55;
}

.efc-guide-submit-row .efc-action {
	min-height: 48px;
	padding-inline: 20px;
	font-size: 13px;
}

.efc-guide-suggestions {
	gap: 9px;
	padding: 18px 28px 23px;
}

.efc-guide-suggestions > span {
	font-size: 10px;
}

.efc-guide-suggestions button {
	min-height: 39px;
	padding: 0 13px;
	font-size: 12px;
	line-height: 1.3;
}

.efc-guide-mode-home .efc-guide-conversation,
.efc-guide-mode-product .efc-guide-conversation,
.efc-guide-mode-drawer .efc-guide-conversation {
	min-height: 280px;
	max-height: 520px;
	padding: 27px 28px;
}

.efc-guide-mode-home .efc-guide-form,
.efc-guide-mode-product .efc-guide-form,
.efc-guide-mode-drawer .efc-guide-form {
	padding: 24px 28px 28px;
}

.efc-guide-feedback {
	margin: 0;
	padding: 22px 28px 28px;
	border-top: 1px solid var(--efc-line);
	background: #f5f9f7;
}

.efc-guide-feedback[hidden],
.efc-feedback-form[hidden],
.efc-feedback-reason[hidden],
.efc-feedback-thanks[hidden],
.efc-feedback-question[hidden] {
	display: none;
}

.efc-feedback-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.efc-feedback-question strong,
.efc-feedback-question small {
	display: block;
}

.efc-feedback-question strong {
	font-size: 16px;
	line-height: 1.35;
}

.efc-feedback-question small {
	margin-top: 3px;
	color: #61746f;
	font-size: 12px;
	line-height: 1.45;
}

.efc-feedback-question > div:last-child {
	display: flex;
	gap: 9px;
	flex: 0 0 auto;
}

.efc-feedback-question button {
	min-height: 42px;
	padding: 0 14px;
	border: 1px solid #b8ccc6;
	border-radius: 7px;
	cursor: pointer;
	background: #fff;
	color: var(--efc-deep);
	font-size: 13px;
	font-weight: 800;
}

.efc-feedback-form {
	display: grid;
	gap: 14px;
	max-width: 760px;
}

.efc-feedback-form label > span {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 800;
}

.efc-feedback-form select,
.efc-feedback-form textarea {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid #b9ccc6;
	border-radius: 7px;
	background: #fff;
	font: inherit;
	font-size: 14px;
}

.efc-feedback-form .efc-feedback-transcript {
	display: grid;
	grid-template-columns: 19px minmax(0, 1fr);
	align-items: start;
	gap: 9px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.5;
}

.efc-feedback-form .efc-feedback-transcript input {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--efc-green);
}

.efc-feedback-form > small,
.efc-feedback-thanks {
	color: #60736e;
	font-size: 12px;
	line-height: 1.5;
}

.efc-feedback-form .efc-action {
	justify-self: start;
	min-height: 43px;
}

.efc-guide-drawer {
	width: min(760px, calc(100% - 28px));
	height: min(900px, calc(100vh - 28px));
}

.efc-guide-drawer .efc-guide-conversation {
	max-height: 430px;
}

.efc-guide-launcher {
	min-width: 198px;
	min-height: 67px;
}

.efc-guide-launcher strong {
	font-size: 13px;
}

.efc-guide-launcher small {
	font-size: 10px;
}

@media (max-width: 760px) {
	.efc-guide-conversation,
	.efc-guide-mode-home .efc-guide-conversation,
	.efc-guide-mode-product .efc-guide-conversation,
	.efc-guide-mode-drawer .efc-guide-conversation {
		min-height: 250px;
		max-height: 500px;
		padding: 20px 18px;
	}
	.efc-guide-message,
	.efc-guide-message.is-user {
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
		max-width: none;
		gap: 0;
	}
	.efc-guide-avatar {
		display: none;
	}
	.efc-guide-message.is-user > div {
		grid-column: 1;
	}
	.efc-guide-message > div {
		padding: 17px 16px;
	}
	.efc-guide-message h3 {
		font-size: 22px;
	}
	.efc-guide-message p {
		font-size: 15px !important;
	}
	.efc-guide-message ul {
		font-size: 14px;
	}
	.efc-conversation-method {
		grid-template-columns: 1fr;
		padding: 17px 17px 0;
	}
	.efc-start-voice,
	.efc-type-choice {
		min-height: 78px;
	}
	.efc-voice-session {
		grid-template-columns: 15px minmax(0, 1fr);
		margin: 13px 17px 0;
	}
	.efc-voice-session button {
		grid-column: 1 / -1;
		width: 100%;
	}
	.efc-guide-form,
	.efc-guide-mode-home .efc-guide-form,
	.efc-guide-mode-product .efc-guide-form,
	.efc-guide-mode-drawer .efc-guide-form {
		padding: 21px 17px 24px;
	}
	.efc-guide-form label,
	.efc-guide-mode-home .efc-guide-form label,
	.efc-guide-mode-product .efc-guide-form label,
	.efc-guide-mode-drawer .efc-guide-form label {
		font-size: 19px;
	}
	.efc-guide-submit-row {
		align-items: stretch !important;
		flex-direction: column;
	}
	.efc-guide-submit-row .efc-action {
		width: 100%;
	}
	.efc-guide-suggestions {
		align-items: stretch;
		flex-direction: column;
		padding: 16px 17px 20px;
	}
	.efc-guide-suggestions button {
		min-height: 43px;
		text-align: left;
	}
	.efc-guide-feedback {
		padding: 20px 17px 23px;
	}
	.efc-feedback-question {
		align-items: stretch;
		flex-direction: column;
	}
	.efc-feedback-question > div:last-child {
		width: 100%;
	}
	.efc-feedback-question button {
		flex: 1;
	}
	.efc-guide-drawer .efc-guide-conversation {
		max-height: 410px;
	}
}

/* Version 1.3.0 response structure and feedback details. */
.efc-guide-summary {
	margin: 0 0 15px !important;
	padding: 15px 17px;
	border-left: 4px solid var(--efc-green);
	border-radius: 0 7px 7px 0;
	background: #edf7f4;
	color: #153f37;
	font-size: 16px !important;
	font-weight: 760;
	line-height: 1.58 !important;
}

.efc-guide-quick-replies {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px;
	margin: 17px 0 4px;
}

.efc-guide-quick-replies button {
	min-height: 47px;
	padding: 10px 13px;
	border: 1px solid #b9cec7;
	border-radius: 7px;
	cursor: pointer;
	background: #fff;
	color: var(--efc-deep);
	font-size: 13px;
	font-weight: 750;
	line-height: 1.35;
	text-align: left;
	transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.efc-guide-quick-replies button:hover,
.efc-guide-quick-replies button:focus-visible {
	transform: translateY(-1px);
	border-color: var(--efc-green);
	background: #f0f8f5;
}

.efc-feedback-categories {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 14px;
	padding: 14px 15px;
	border: 1px solid #d6e2de;
	border-radius: 8px;
	background: #fff;
}

.efc-feedback-categories[hidden] {
	display: none;
}

.efc-feedback-categories > strong {
	grid-column: 1 / -1;
	margin-bottom: 3px;
	font-size: 14px;
}

.efc-feedback-categories label {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: start;
	gap: 8px;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.45;
}

.efc-feedback-categories input {
	width: 17px;
	height: 17px;
	margin-top: 1px;
	accent-color: var(--efc-green);
}

.efc-feedback-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.efc-feedback-error {
	margin: 0;
	color: #8f2929;
	font-size: 12px;
	font-weight: 700;
}

.efc-voice-status[data-state="listening"],
.efc-voice-status[data-state="ready"] {
	border-color: #afd0c7;
	background: #edf8f5;
	color: #1b594f;
}

.efc-voice-status[data-state="processing"],
.efc-voice-status[data-state="speaking"] {
	border-color: #d7c49b;
	background: #fff9ec;
	color: #655020;
}

.efc-voice-status[data-state="error"],
.efc-voice-status[data-state="unavailable"] {
	border-color: #e2b7b7;
	background: #fff2f2;
	color: #7f3030;
}

@media (max-width: 760px) {
	.efc-guide-quick-replies,
	.efc-feedback-categories {
		grid-template-columns: 1fr;
	}
	.efc-guide-quick-replies button {
		min-height: 49px;
	}
	.efc-feedback-categories > strong {
		grid-column: auto;
	}
}

/* Version 1.3.0 final readability and feedback refinements. */
.efc-voice-session strong {
	font-size: 15px;
}

.efc-voice-session small,
.efc-voice-status {
	font-size: 14px;
}

.efc-voice-session button,
.efc-guide-suggestions button,
.efc-guide-message-actions a,
.efc-guide-replay {
	font-size: 13px;
}

.efc-guide-suggestions > span {
	font-size: 12px;
}

.efc-feedback-categories [data-efc-feedback-for][hidden] {
	display: none !important;
}

/* ========================================================================== 
   Exposure Framework Commerce 1.4.0
   Testing-first commerce, full-dialogue EVA, professional conversion, and
   current reader-specific sample-report architecture.
   ========================================================================== */
.efc-shop-page,
.efc-guide-page,
.efc-report-review-page,
.efc-professional-page {
	--efc-ink: #233846;
	--efc-deep: #0a2d4f;
	--efc-green: #0b7835;
	--efc-mint: #dff3e5;
	--efc-soft: #f0f7f2;
	--efc-cream: #f7f4ec;
	--efc-amber: #d99545;
	--efc-slate: #536762;
	--efc-line: #cedbd6;
	--efc-serif: ui-serif, Georgia, Cambria, "Times New Roman", serif;
	max-width: 1280px;
	margin: 0 auto;
	padding: 70px 30px 110px;
	color: var(--efc-ink);
}

.efc-shop-page *, .efc-guide-page *, .efc-report-review-page *, .efc-professional-page *, .efc-guide * { box-sizing: border-box; }
.efc-shop-page h1, .efc-guide-page h1, .efc-report-review-page h1, .efc-professional-page h1,
.efc-shop-page h2, .efc-guide-page h2, .efc-report-review-page h2, .efc-professional-page h2,
.efc-guide h2, .efc-guide h3 { color: var(--efc-deep); font-family: var(--efc-serif); font-weight: 500; letter-spacing: -.025em; }
.efc-shop-page p, .efc-guide-page p, .efc-report-review-page p, .efc-professional-page p { line-height: 1.65; }

.efc-action,
.efc-secondary-action,
.efc-card-action,
.efc-guide-continue {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 19px;
	border: 1px solid var(--efc-green);
	border-radius: 5px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.25;
	text-decoration: none !important;
	transition: transform .16s ease, background .16s ease, color .16s ease;
}
.efc-action { background: var(--efc-green); color: #fff !important; }
.efc-secondary-action { background: #fff; color: var(--efc-green) !important; }
.efc-action:hover, .efc-secondary-action:hover, .efc-card-action:hover, .efc-guide-continue:hover { transform: translateY(-1px); }

/* Test shop. */
.efc-shop-hero,
.efc-professional-hero,
.efc-review-hero,
.efc-guide-page-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
	gap: 54px;
	align-items: end;
	margin-bottom: 34px;
}
.efc-guide-page-hero { display: block; max-width: 900px; }
.efc-shop-hero h1, .efc-professional-hero h1, .efc-review-hero h1, .efc-guide-page-hero h1 {
	max-width: 850px;
	margin: 12px 0 16px;
	font-size: clamp(40px, 5vw, 68px);
	line-height: 1.01;
}
.efc-shop-hero p, .efc-professional-hero > p, .efc-review-hero > div > p, .efc-guide-page-hero > p:last-child {
	max-width: 790px;
	margin: 0;
	color: var(--efc-slate);
	font-size: 17px;
}
.efc-shop-hero-actions, .efc-review-hero-actions { display: flex; flex-direction: column; gap: 11px; }
.efc-shop-principle {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin: 34px 0 46px;
	border: 1px solid var(--efc-line);
	background: var(--efc-line);
}
.efc-shop-principle > div { min-height: 170px; padding: 22px; background: #fff; }
.efc-shop-principle strong { display: block; margin-bottom: 10px; font-family: var(--efc-serif); font-size: 24px; font-weight: 500; }
.efc-shop-principle span { color: var(--efc-slate); font-size: 14px; line-height: 1.55; }
.efc-library-controls { position: sticky; top: 70px; z-index: 8; margin-bottom: 25px; padding: 18px; border: 1px solid var(--efc-line); background: rgba(255,255,255,.97); box-shadow: 0 12px 25px rgba(13,41,36,.06); }
.efc-library-controls label > span { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.efc-library-search { width: 100%; min-height: 50px; padding: 11px 14px; border: 1px solid #aebfba; border-radius: 4px; font-size: 16px; }
.efc-category-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.efc-category-filters button { min-height: 38px; padding: 7px 12px; border: 1px solid var(--efc-line); border-radius: 999px; background: #fff; color: var(--efc-ink); font-size: 12px; font-weight: 750; cursor: pointer; }
.efc-category-filters button.is-active { border-color: var(--efc-green); background: var(--efc-green); color: #fff; }
.efc-availability-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--efc-line); }
.efc-availability-filters button { min-height: 38px; padding: 7px 12px; border: 1px solid var(--efc-line); border-radius: 8px; background: #fff; color: var(--efc-ink); font-size: 12px; font-weight: 800; cursor: pointer; }
.efc-availability-filters button.is-active { border-color: var(--efc-ink); background: var(--efc-ink); color: #fff; }
.efc-test-grid, .efc-featured-test-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.efc-test-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--efc-line); border-radius: 8px; background: #fff; box-shadow: 0 9px 22px rgba(13,41,36,.055); }
.efc-test-card[hidden] { display: none !important; }
.efc-test-image-wrap { position: relative; min-height: 205px; background: var(--efc-soft); overflow: hidden; }
.efc-test-image-wrap img { width: 100%; height: 205px; object-fit: contain; padding: 17px; }
.efc-domain-pill { position: absolute; left: 13px; bottom: 12px; max-width: calc(100% - 26px); padding: 7px 10px; border-radius: 999px; background: rgba(13,41,36,.91); color: #fff; font-size: 11px; font-weight: 800; }
.efc-test-card-body { display: flex; flex: 1; flex-direction: column; padding: 20px; }
.efc-test-card-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--efc-green); font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.efc-test-card h3 { margin: 10px 0 8px; font-family: var(--efc-serif); font-size: 27px; font-weight: 500; line-height: 1.08; }
.efc-test-purpose { margin: 0 0 14px; color: var(--efc-slate); font-size: 14px; }
.efc-test-question { margin-top: 0; padding: 13px 14px; border-left: 3px solid var(--efc-amber); background: #fff8ed; }
.efc-test-question small { display: block; margin-bottom: 4px; color: #6d5938; font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.efc-test-question p { margin: 0; font-size: 13px; line-height: 1.48; }
.efc-test-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 17px; }
.efc-test-commerce-summary { display: grid; gap: 6px; margin: 12px 0; padding: 11px 12px; border-radius: 9px; background: #eef8f1; color: var(--efc-ink); font-size: 12px; line-height: 1.45; }
.efc-test-commerce-summary strong { color: var(--efc-green); }
.efc-card-ask { display: inline-flex; min-height: 40px; align-items: center; margin-top: 8px; color: var(--efc-ink); font-size: 12px; font-weight: 800; }
.efc-return-label-option { margin: 14px 0; padding: 13px 14px; border: 1px solid var(--efc-line); border-radius: 10px; background: #f8fbf9; }
.efc-return-label-option label { display: flex; align-items: flex-start; gap: 9px; }
.efc-return-label-option input { margin-top: 3px; }
.efc-return-label-option p { margin: 7px 0 0 26px; color: var(--efc-muted, #4d6663); font-size: 12px; line-height: 1.45; }
.efc-test-price { display: flex; flex-direction: column; }
.efc-test-price strong { font-size: 22px; }
.efc-test-price small { color: var(--efc-slate); font-size: 10px; }

.efc-staging-cart-notice {
	display: flex;
	align-items: baseline;
	gap: 8px 14px;
	width: min(1180px, calc(100% - 40px));
	margin: 24px auto 0;
	padding: 10px 13px;
	border: 1px solid #c9d9d4;
	border-left: 3px solid var(--efc-green);
	background: var(--efc-soft);
	color: var(--efc-ink);
	font-size: 13px;
}
.efc-staging-cart-notice strong { white-space: nowrap; }

.wc-block-cart-items__row .wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #ffffff;
}

.wc-block-cart-item__quantity {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
}

.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
	margin: 0;
}

.wc-block-cart-item__remove-link {
	min-height: 24px;
	color: var(--efc-green);
	font-weight: 700;
	text-underline-offset: 3px;
}

@media (max-width: 680px) {
	.efc-staging-cart-notice { align-items: flex-start; flex-direction: column; gap: 3px; width: calc(100% - 30px); }
}

@media (max-width: 1080px) and (min-width: 681px) {
	.efc-test-grid,
	.efc-featured-test-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
	.efc-test-grid,
	.efc-featured-test-grid { grid-template-columns: minmax(0, 1fr); }
	.efc-test-card-footer { align-items: flex-end; }
	.efc-card-action { flex: 0 0 auto; }
}
.efc-card-action { min-height: 42px; padding: 9px 12px; background: var(--efc-green); color: #fff !important; font-size: 12px; }
.efc-card-pending { color: var(--efc-slate); font-size: 12px; font-weight: 750; }
.efc-compare-check { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #e3e9e6; font-size: 12px; font-weight: 750; }
.efc-compare-check input { width: 18px; height: 18px; accent-color: var(--efc-green); }
.efc-no-results { padding: 30px; text-align: center; font-weight: 700; }
.efc-compare-tray { position: fixed; right: 22px; bottom: 22px; z-index: 90; width: min(420px, calc(100vw - 44px)); padding: 16px; border: 1px solid #9ebbb2; border-radius: 8px; background: #fff; box-shadow: 0 18px 45px rgba(13,41,36,.2); }
.efc-compare-tray[hidden], .efc-compare-modal[hidden] { display: none !important; }
.efc-compare-tray > div:first-child { display: flex; justify-content: space-between; }
.efc-compare-items { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.efc-compare-items span { padding: 5px 8px; border-radius: 999px; background: var(--efc-soft); font-size: 11px; }
.efc-compare-tray button { margin-right: 7px; padding: 8px 11px; border: 1px solid var(--efc-green); border-radius: 4px; background: var(--efc-green); color: #fff; font-weight: 750; cursor: pointer; }
.efc-compare-tray .efc-compare-clear { background: #fff; color: var(--efc-green); }
.efc-compare-modal { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 24px; background: rgba(10,31,27,.78); }
.efc-compare-dialog { position: relative; width: min(1100px, 100%); max-height: 90vh; overflow: auto; padding: 28px; border-radius: 8px; background: #fff; }
.efc-compare-close { position: absolute; top: 8px; right: 11px; border: 0; background: transparent; font-size: 30px; cursor: pointer; }
.efc-compare-table-wrap { overflow-x: auto; }
.efc-compare-table-wrap table { width: 100%; border-collapse: collapse; font-size: 13px; }
.efc-compare-table-wrap th, .efc-compare-table-wrap td { min-width: 180px; padding: 11px; border: 1px solid var(--efc-line); text-align: left; vertical-align: top; }
.efc-compare-table-wrap thead th { background: var(--efc-deep); color: #fff; }
body.efc-modal-open { overflow: hidden; }

/* Full-dialogue EVA. */
.efc-guide {
	--efc-ink: #233846;
	--efc-deep: #0a2d4f;
	--efc-green: #0b7835;
	--efc-soft: #f0f7f2;
	--efc-line: #cedbd6;
	--efc-amber: #d99545;
	--efc-slate: #536762;
	--efc-serif: ui-serif, Georgia, Cambria, "Times New Roman", serif;
	width: 100%;
	padding: 24px;
	border: 1px solid var(--efc-line);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 15px 40px rgba(13,41,36,.08);
	color: var(--efc-ink);
}
.efc-guide-page .efc-guide { margin-top: 28px; }
.efc-guide-header { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding-bottom: 18px; border-bottom: 1px solid #e0e8e4; }
.efc-guide-avatar { display: grid; flex: 0 0 auto; width: 50px; height: 50px; place-items: center; border-radius: 50%; background: var(--efc-green); color: #fff; font-family: var(--efc-serif); font-size: 15px; font-weight: 700; }
.efc-guide-header h2 { margin: 2px 0 0; font-size: 30px; line-height: 1.05; }
.efc-guide-beta { margin: 4px 0 0 !important; color: var(--efc-slate); font-size: 12px; font-weight: 700; }
.efc-guide-session-actions { display: flex; gap: 7px; }
.efc-guide-session-actions button { min-height: 38px; padding: 7px 10px; border: 1px solid var(--efc-line); border-radius: 4px; background: #fff; color: var(--efc-green); font-size: 12px; font-weight: 800; cursor: pointer; }
.efc-guide-intro { max-width: 900px; margin: 18px 0 13px !important; color: var(--efc-slate); font-size: 16px; }
.efc-guide-mode-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.efc-guide-mode-tabs button { min-height: 40px; padding: 8px 14px; border: 1px solid var(--efc-line); border-radius: 999px; background: #fff; color: var(--efc-ink); font-size: 13px; font-weight: 800; cursor: pointer; }
.efc-guide-mode-tabs button.is-active { border-color: var(--efc-green); background: var(--efc-green); color: #fff; }
.efc-guide-suggestions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 17px; }
.efc-guide-suggestions button { padding: 8px 11px; border: 1px solid #bad1ca; border-radius: 5px; background: var(--efc-soft); color: var(--efc-ink); font-size: 13px; font-weight: 700; line-height: 1.35; cursor: pointer; }
.efc-guide-conversation { display: flex; flex-direction: column; gap: 18px; min-height: 120px; padding: 4px 0 18px; overflow: visible !important; max-height: none !important; }
.efc-guide-mode-full .efc-guide-conversation { min-height: 340px; }
.efc-guide-mode-home .efc-guide-conversation,
.efc-guide-mode-product .efc-guide-conversation,
.efc-guide-mode-drawer .efc-guide-conversation { max-height: 680px !important; overflow-y: auto !important; padding-right: 7px; }
.efc-guide-message { display: flex; gap: 12px; max-width: 100%; scroll-margin-top: 90px; }
.efc-guide-message-user { align-self: flex-end; width: min(720px, 88%); flex-direction: column; gap: 4px; padding: 15px 17px; border: 1px solid #bcd3cc; border-radius: 15px 15px 3px 15px; background: #edf7f4; }
.efc-guide-message-user p { margin: 0; font-size: 16px; line-height: 1.55; }
.efc-message-label { color: var(--efc-green); font-size: 11px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.efc-guide-message-assistant { width: 100%; align-items: flex-start; }
.efc-guide-answer { min-width: 0; flex: 1; padding: 19px 21px; border: 1px solid var(--efc-line); border-radius: 4px 16px 16px 16px; background: #fff; }
.efc-guide-answer h3 { margin: 4px 0 9px; font-size: clamp(23px, 2.7vw, 31px); line-height: 1.14; }
.efc-guide-answer p, .efc-guide-answer li { font-size: 16px; line-height: 1.62; }
.efc-answer-direct { margin: 0 0 10px; }
.efc-guide-answer ul { margin: 8px 0 12px; padding-left: 23px; }
.efc-answer-boundary, .efc-answer-follow-up { margin-top: 12px; padding: 13px 15px; border-left: 3px solid var(--efc-amber); background: #fff8ed; }
.efc-answer-boundary strong, .efc-answer-follow-up strong { display: block; margin-bottom: 3px; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.efc-answer-boundary p, .efc-answer-follow-up p { margin: 0; font-size: 15px; }
.efc-answer-follow-up { border-left-color: var(--efc-green); background: var(--efc-soft); }
.efc-answer-details { margin-top: 12px; }
.efc-answer-details summary { color: var(--efc-green); font-weight: 850; cursor: pointer; }
.efc-answer-sources { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 11px; margin-top: 13px; padding-top: 11px; border-top: 1px solid #e1e8e5; }
.efc-answer-sources strong { font-size: 12px; }
.efc-answer-sources a { color: var(--efc-green); font-size: 12px; font-weight: 750; }
.efc-answer-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.efc-answer-actions a, .efc-answer-actions button { min-height: 42px; padding: 9px 12px; border: 1px solid var(--efc-green); border-radius: 4px; background: #fff; color: var(--efc-green); font-size: 13px; font-weight: 800; text-decoration: none; cursor: pointer; }
.efc-answer-actions a:first-child { background: var(--efc-green); color: #fff; }
.efc-read-aloud { margin-top: 14px; padding: 9px 12px; border: 1px solid #aac5bc; border-radius: 4px; background: #fff; color: var(--efc-green); font-size: 13px; font-weight: 750; cursor: pointer; }
.efc-guide-form { position: sticky; bottom: 0; z-index: 5; margin-top: 4px; padding: 16px 0 2px; background: linear-gradient(to bottom, rgba(255,255,255,.75), #fff 25%); }
.efc-guide-form > label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 850; }
.efc-guide-input-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.efc-guide-input-row textarea { min-height: 92px; resize: vertical; padding: 13px 14px; border: 1px solid #a8bdb7; border-radius: 5px; color: var(--efc-ink); font: inherit; font-size: 16px; line-height: 1.5; }
.efc-guide-send { min-width: 118px; border: 1px solid var(--efc-green); border-radius: 5px; background: var(--efc-green); color: #fff; font-size: 15px; font-weight: 850; cursor: pointer; }
.efc-voice-start, .efc-voice-active { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 15px; padding: 16px; border: 1px solid #b9d2ca; border-radius: 7px; background: var(--efc-soft); }
.efc-voice-start[hidden], .efc-voice-active[hidden] { display: none !important; }
.efc-voice-start strong, .efc-voice-active strong { display: block; font-size: 16px; }
.efc-voice-start p { margin: 3px 0 0; color: var(--efc-slate); font-size: 14px; }
.efc-voice-start-button, .efc-voice-end-button { min-height: 49px; padding: 10px 16px; border: 1px solid var(--efc-green); border-radius: 5px; background: var(--efc-green); color: #fff; font-size: 14px; font-weight: 850; white-space: nowrap; cursor: pointer; }
.efc-voice-end-button { background: #fff; color: var(--efc-green); }
.efc-voice-status { display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 3px 9px; }
.efc-voice-status small { grid-column: 2; color: var(--efc-slate); font-size: 13px; }
.efc-voice-pulse { grid-row: 1 / 3; width: 14px; height: 14px; border-radius: 50%; background: var(--efc-green); box-shadow: 0 0 0 0 rgba(23,111,101,.5); animation: efcPulse 1.6s infinite; }
@keyframes efcPulse { 70% { box-shadow: 0 0 0 9px rgba(23,111,101,0); } 100% { box-shadow: 0 0 0 0 rgba(23,111,101,0); } }
.efc-guide-boundary { margin: 14px 0 0 !important; color: var(--efc-slate); font-size: 12px !important; }
.efc-guide-continue { margin-top: 14px; background: #fff; color: var(--efc-green) !important; }
.efc-guide-feedback { margin-top: 20px; padding: 20px; border: 1px solid var(--efc-line); border-radius: 8px; background: var(--efc-cream, #f7f4ec); }
.efc-guide-feedback[hidden], .efc-feedback-form[hidden] { display: none !important; }
.efc-guide-feedback h3 { margin: 0 0 12px; font-size: 24px; }
.efc-feedback-rating { display: flex; gap: 9px; }
.efc-feedback-rating button { min-height: 44px; padding: 9px 15px; border: 1px solid var(--efc-green); border-radius: 5px; background: #fff; color: var(--efc-green); font-weight: 850; cursor: pointer; }
.efc-feedback-rating button.is-selected { background: var(--efc-green); color: #fff; }
.efc-feedback-form { display: grid; gap: 12px; margin-top: 15px; }
.efc-feedback-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.efc-feedback-categories label { display: flex; gap: 7px; font-size: 13px; }
.efc-feedback-form textarea { width: 100%; padding: 10px; border: 1px solid #a8bdb7; font-size: 15px; }
.efc-feedback-form button[type="submit"] { width: fit-content; min-height: 42px; padding: 9px 14px; border: 0; border-radius: 4px; background: var(--efc-green); color: #fff; font-weight: 850; }
.efc-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.efc-floating-guide { position: fixed; right: 20px; bottom: 20px; z-index: 100; display: grid; grid-template-columns: 42px auto; column-gap: 10px; align-items: center; min-width: 190px; padding: 11px 14px; border: 1px solid #9dbcb2; border-radius: 999px; background: #fff; color: #17352f; text-decoration: none; box-shadow: 0 13px 34px rgba(13,41,36,.18); }
.efc-floating-guide > span { grid-row: 1 / 3; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #176f65; color: #fff; font-family: Georgia, serif; font-size: 12px; font-weight: 800; }
.efc-floating-guide strong { align-self: end; font-size: 13px; }
.efc-floating-guide small { align-self: start; color: #536762; font-size: 11px; }

/* Professional page. */
.efc-professional-hero { grid-template-columns: 1fr; max-width: 980px; }
.efc-professional-trust { width: fit-content; margin-top: 20px; padding: 11px 14px; border: 1px solid #b6d0c8; background: var(--efc-soft); font-size: 13px; font-weight: 750; }
.efc-professional-role-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 44px 0 68px; }
.efc-professional-role-grid article { display: flex; flex-direction: column; min-height: 280px; padding: 25px; border: 1px solid var(--efc-line); background: #fff; }
.efc-professional-role-grid article > span { color: var(--efc-green); font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.efc-professional-role-grid h2 { margin: 13px 0 11px; font-size: 30px; line-height: 1.1; }
.efc-professional-role-grid p { color: var(--efc-slate); font-size: 15px; }
.efc-professional-role-grid a { margin-top: auto; color: var(--efc-green); font-size: 13px; font-weight: 850; }
.efc-professional-workflow, .efc-professional-capabilities, .efc-professional-deliverable, .efc-professional-security, .efc-professional-portal { margin-top: 70px; padding-top: 50px; border-top: 1px solid var(--efc-line); }
.efc-professional-workflow h2, .efc-professional-capabilities h2, .efc-professional-deliverable h2, .efc-professional-security h2, .efc-professional-portal h2 { margin: 9px 0 15px; font-size: clamp(32px, 4vw, 48px); line-height: 1.08; }
.efc-professional-workflow ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; padding: 0; list-style: none; background: var(--efc-line); border: 1px solid var(--efc-line); }
.efc-professional-workflow li { padding: 20px; background: #fff; }
.efc-professional-workflow li > span { display: block; margin-bottom: 20px; color: var(--efc-green); font-size: 12px; font-weight: 900; }
.efc-professional-workflow strong { display: block; margin-bottom: 7px; font-family: var(--efc-serif); font-size: 21px; font-weight: 500; }
.efc-professional-workflow p { margin: 0; color: var(--efc-slate); font-size: 13px; }
.efc-professional-capabilities { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; }
.efc-professional-capabilities ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.efc-professional-capabilities li { padding: 13px 14px; border: 1px solid var(--efc-line); background: var(--efc-soft); font-size: 14px; font-weight: 700; }
.efc-professional-deliverable { display: grid; grid-template-columns: minmax(260px,.75fr) 1.25fr; gap: 65px; align-items: center; }
.efc-professional-deliverable img { width: 100%; border: 1px solid var(--efc-line); box-shadow: 0 16px 40px rgba(13,41,36,.12); }
.efc-professional-security, .efc-professional-portal { display: grid; grid-template-columns: 1fr .8fr; gap: 60px; }
.efc-professional-security ul { margin: 0; padding: 0; list-style: none; }
.efc-professional-security li { margin-bottom: 8px; padding: 12px; border-left: 3px solid var(--efc-green); background: var(--efc-soft); }
.efc-professional-portal > div:last-child { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.efc-homeowner-return { margin-top: 8px; color: var(--efc-green); font-size: 12px; font-weight: 750; }
.efc-connection-pending { display: block; padding: 12px 14px; border: 1px solid #dfc895; background: #fff8e8; color: #5e512f; font-size: 12px; font-weight: 750; }

/* Report review. */
.efc-review-hero { grid-template-columns: 1.2fr .8fr; }
.efc-review-benefit-list { padding: 24px; border: 1px solid var(--efc-line); background: var(--efc-soft); }
.efc-review-benefit-list > strong { display: block; margin-bottom: 10px; font-family: var(--efc-serif); font-size: 25px; font-weight: 500; }
.efc-review-benefit-list ul { margin: 0; padding-left: 20px; }
.efc-review-benefit-list li { margin-bottom: 7px; font-size: 14px; }
.efc-review-pricing { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin: 50px 0; }
.efc-review-pricing article { padding: 27px; border: 1px solid var(--efc-line); background: #fff; }
.efc-review-pricing h2 { margin: 7px 0; font-size: 50px; }
.efc-review-fit, .efc-review-governance, .efc-review-secure-next { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; margin-top: 68px; padding-top: 45px; border-top: 1px solid var(--efc-line); }
.efc-review-fit h2, .efc-review-governance h2, .efc-review-secure-next h2 { margin: 8px 0 14px; font-size: clamp(31px,4vw,47px); line-height: 1.08; }
.efc-review-fit ul, .efc-review-governance ul { margin: 0; padding: 0; list-style: none; }
.efc-review-fit li, .efc-review-governance li { margin-bottom: 8px; padding: 12px 14px; border-left: 3px solid var(--efc-green); background: var(--efc-soft); }
.efc-current-sample, .efc-review-process-section { margin-top: 72px; padding-top: 48px; border-top: 1px solid var(--efc-line); }
.efc-review-section-head { display: grid; grid-template-columns: 1fr .75fr; gap: 55px; align-items: end; margin-bottom: 28px; }
.efc-review-section-head h2 { margin: 8px 0 0; font-size: clamp(32px,4vw,48px); line-height: 1.08; }
.efc-review-section-head > p { color: var(--efc-slate); }
.efc-sample-output-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-bottom: 22px; }
.efc-sample-output-grid article { display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--efc-line); background: #fff; }
.efc-sample-output-grid img { width: 100%; aspect-ratio: 8.5 / 11; object-fit: cover; object-position: top; border: 1px solid #e1e5e3; }
.efc-sample-output-grid h3 { margin: 15px 0 7px; font-family: var(--efc-serif); font-size: 25px; font-weight: 500; }
.efc-sample-output-grid p { color: var(--efc-slate); font-size: 13px; }
.efc-sample-output-grid a { margin-top: auto; color: var(--efc-green); font-size: 13px; font-weight: 850; }
.efc-review-process-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin: 0; padding: 0; border: 1px solid var(--efc-line); background: var(--efc-line); list-style: none; }
.efc-review-process-list li { padding: 20px; background: #fff; }
.efc-review-process-list li > span { display: block; margin-bottom: 18px; color: var(--efc-green); font-size: 12px; font-weight: 900; }
.efc-review-process-list strong { font-family: var(--efc-serif); font-size: 21px; font-weight: 500; }
.efc-review-process-list p { color: var(--efc-slate); font-size: 13px; }

@media (max-width: 980px) {
	.efc-shop-hero, .efc-review-hero, .efc-professional-capabilities, .efc-professional-deliverable, .efc-professional-security, .efc-professional-portal, .efc-review-fit, .efc-review-governance, .efc-review-secure-next, .efc-review-section-head { grid-template-columns: 1fr; gap: 28px; }
	.efc-shop-principle { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.efc-test-grid, .efc-featured-test-grid, .efc-professional-role-grid, .efc-sample-output-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.efc-professional-workflow ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.efc-review-process-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
	.efc-shop-page, .efc-guide-page, .efc-report-review-page, .efc-professional-page { padding: 48px 17px 85px; }
	.efc-shop-hero h1, .efc-professional-hero h1, .efc-review-hero h1, .efc-guide-page-hero h1 { font-size: 40px; }
	.efc-shop-principle, .efc-test-grid, .efc-featured-test-grid, .efc-professional-role-grid, .efc-professional-workflow ol, .efc-professional-capabilities ul, .efc-review-pricing, .efc-sample-output-grid, .efc-review-process-list { grid-template-columns: 1fr; }
	.efc-library-controls { top: 54px; }
	.efc-guide { padding: 16px; border-radius: 8px; }
	.efc-guide-header { grid-template-columns: 44px minmax(0,1fr); }
	.efc-guide-header .efc-guide-avatar { width: 42px; height: 42px; }
	.efc-guide-header h2 { font-size: 25px; }
	.efc-guide-session-actions { grid-column: 1 / -1; justify-content: flex-end; }
	.efc-guide-message-user { width: 94%; }
	.efc-guide-message-assistant { gap: 7px; }
	.efc-guide-message-assistant > .efc-guide-avatar { width: 38px; height: 38px; font-size: 11px; }
	.efc-guide-answer { padding: 15px; }
	.efc-guide-answer h3 { font-size: 23px; }
	.efc-guide-answer p, .efc-guide-answer li { font-size: 15px; }
	.efc-guide-input-row { grid-template-columns: 1fr; }
	.efc-guide-send { min-height: 48px; }
	.efc-voice-start, .efc-voice-active { align-items: stretch; flex-direction: column; }
	.efc-feedback-categories { grid-template-columns: 1fr; }
	.efc-floating-guide { right: 12px; bottom: 12px; }
}

/* 1.4 final dialogue corrections: the assistant badge is not an answer card, and
   the full-page composer never overlays the conversation on small screens. */
.efc-guide-message-assistant > .efc-guide-avatar {
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--efc-green);
	color: #fff;
}
.efc-guide-mode-full .efc-guide-form { position: static; }

@media (max-width: 680px) {
	.efc-guide-form,
	.efc-guide-mode-home .efc-guide-form,
	.efc-guide-mode-product .efc-guide-form,
	.efc-guide-mode-drawer .efc-guide-form { position: static; }
	.efc-guide { max-width: 100%; overflow: hidden; }
	.efc-guide-message, .efc-guide-answer, .efc-guide-message-user { min-width: 0; }
}
.efc-disabled-action {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 15px;
	border: 1px solid #9fb7b0;
	border-radius: 4px;
	background: #e8efec;
	color: #52635f;
	font-size: 13px;
	font-weight: 850;
	cursor: not-allowed;
}
.efc-disabled-action.is-secondary { background: #fff; }


/* ========================================================================== 
   Exposure Framework Commerce 1.5.1
   Kitchen-table EVA, tighter page starts, and progressive answer detail.
   ========================================================================== */
.ef-page-surface {
	padding-top: 28px;
}

.efc-shop-page,
.efc-guide-page,
.efc-report-review-page,
.efc-professional-page {
	padding-top: 30px;
}

.efc-shop-hero,
.efc-professional-hero,
.efc-review-hero,
.efc-guide-page-hero {
	margin-bottom: 24px;
}

.efc-shop-hero h1,
.efc-professional-hero h1,
.efc-review-hero h1,
.efc-guide-page-hero h1 {
	margin-top: 7px;
}

.efc-guide-page .efc-guide {
	margin-top: 18px;
}

.efc-guide-intro {
	max-width: 820px;
	margin: 14px 0 11px !important;
	font-size: 17px;
	line-height: 1.58;
}

.efc-guide-mode-tabs {
	margin-top: 4px;
}

.efc-guide-mode-tabs button {
	font-size: 14px;
}

.efc-guide-conversation {
	gap: 15px;
}

.efc-guide-mode-full .efc-guide-conversation {
	min-height: 250px;
	max-height: none !important;
	overflow: visible !important;
}

.efc-guide-answer {
	padding: 18px 20px;
}

.efc-guide-answer h3 {
	margin-bottom: 8px;
	font-size: clamp(22px, 2.5vw, 29px);
}

.efc-guide-answer p,
.efc-guide-answer li {
	font-size: 16px;
	line-height: 1.58;
}

.efc-answer-direct {
	max-width: 850px;
}

.efc-answer-follow-up {
	margin-top: 14px;
	padding: 13px 15px;
	border-left-color: var(--efc-green);
	background: var(--efc-soft);
}

.efc-answer-follow-up strong {
	font-size: 11px;
	letter-spacing: .075em;
}

.efc-answer-more {
	margin-top: 14px;
	border: 1px solid #bad1ca;
	border-radius: 6px;
	background: #fbfdfc;
}

.efc-answer-more summary {
	position: relative;
	padding: 13px 42px 13px 15px;
	color: var(--efc-green);
	font-size: 14px;
	font-weight: 850;
	line-height: 1.4;
	cursor: pointer;
	list-style: none;
}

.efc-answer-more summary::-webkit-details-marker {
	display: none;
}

.efc-answer-more summary::after {
	content: '+';
	position: absolute;
	top: 50%;
	right: 15px;
	translate: 0 -50%;
	font-size: 22px;
	font-weight: 500;
}

.efc-answer-more[open] summary::after {
	content: '-';
}

.efc-answer-more > div {
	padding: 0 15px 15px;
	border-top: 1px solid #e0e8e4;
}

.efc-answer-more > div > p:first-child,
.efc-answer-more > div > ul:first-child {
	margin-top: 13px;
}

.efc-answer-boundary {
	margin-top: 13px;
}

.efc-answer-actions {
	margin-top: 12px;
}

.efc-read-aloud {
	margin-top: 12px;
}

.efc-guide-mode-full .efc-guide-form {
	position: static;
	margin-top: 12px;
	padding-top: 13px;
	border-top: 1px solid #e0e8e4;
	background: #fff;
}

@media (max-width: 680px) {
	.ef-page-surface {
		padding-top: 18px;
	}
	.efc-shop-page,
	.efc-guide-page,
	.efc-report-review-page,
	.efc-professional-page {
		padding: 22px 17px 78px;
	}
	.efc-shop-hero,
	.efc-professional-hero,
	.efc-review-hero,
	.efc-guide-page-hero {
		margin-bottom: 18px;
	}
	.efc-guide-page .efc-guide {
		margin-top: 14px;
	}
	.efc-guide-intro {
		font-size: 16px;
	}
	.efc-guide-answer {
		padding: 14px;
	}
	.efc-guide-answer h3 {
		font-size: 22px;
	}
	.efc-guide-answer p,
	.efc-guide-answer li {
		font-size: 15.5px;
	}
	.efc-answer-more summary {
		font-size: 13.5px;
	}
}

/* EVA 2.0 server-guided foundation; EVA 2.1 adds the guided homeowner journey. */
.efc-guide.is-processing .efc-guide-form::after {
  content: "MEL is organizing what you said...";
  display: block;
  margin-top: .65rem;
  font-size: .92rem;
  color: var(--efc-muted, #4d6663);
}
.efc-guide.is-processing .efc-guide-send,
.efc-guide.is-processing textarea {
  opacity: .72;
  cursor: wait;
}
.efc-reasoning-badge {
  display: inline-flex;
  margin-left: .45rem;
  padding: .13rem .42rem;
  border: 1px solid #b8d2cc;
  border-radius: 999px;
  background: #edf7f4;
  color: #285f57;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: none;
  vertical-align: middle;
}
.efc-follow-up-reason {
  display: block;
  margin-top: .45rem;
  color: #526a67;
  font-size: .88rem;
  line-height: 1.45;
}
.efc-understands-card,
.efc-conversation-outcome {
  margin-top: 1rem;
  padding: 1rem 1.05rem;
  border: 1px solid #b9cec9;
  border-radius: 14px;
  background: #f5faf8;
}
.efc-understands-card h4,
.efc-conversation-outcome h4 {
  margin: 0 0 .75rem;
  color: #173f38;
  font-size: 1.05rem;
}
.efc-understands-group {
  margin-top: .65rem;
}
.efc-understands-group strong,
.efc-conversation-outcome strong {
  color: #274d47;
  font-size: .9rem;
}
.efc-understands-group ul,
.efc-conversation-outcome ul {
  margin: .35rem 0 0 1.15rem;
}
.efc-understands-group li,
.efc-conversation-outcome li {
  margin: .25rem 0;
  line-height: 1.45;
}
.efc-understands-group.is-denied {
  padding-left: .7rem;
  border-left: 3px solid #8ab4aa;
}
.efc-understands-group.is-unknown {
  padding-left: .7rem;
  border-left: 3px solid #d7a34e;
}
.efc-understands-question {
  margin: .8rem 0 .45rem;
  font-weight: 700;
  color: #173f38;
}
.efc-summary-actions {
  margin-top: .35rem;
}
.efc-conversation-outcome {
  border-color: #d4c08d;
  background: #fffaf0;
}
.efc-conversation-outcome > div + div {
  margin-top: .7rem;
}
@media (max-width: 680px) {
  .efc-understands-card,
  .efc-conversation-outcome {
    padding: .85rem;
  }
  .efc-reasoning-badge {
    display: none;
  }
}

/* ========================================================================== 
   Exposure Framework Commerce 1.7.0 / EVA 2.1 Guided Homeowner Journey
   Conversation-led layout, persistent editable situation map, action ladder,
   browser-only Environmental Brief, and repair-focused feedback.
   ========================================================================== */
.efc-guide-page {
	max-width: 1440px;
}

.efc-guide-page-hero {
	max-width: 980px;
	margin-bottom: 18px;
}

.efc-guide-page-hero h1 {
	font-size: clamp(38px, 4.6vw, 62px);
}

.efc-guide {
	padding: 22px;
}

.efc-guide-header {
	grid-template-columns: 52px minmax(0, 1fr) auto;
	padding-bottom: 15px;
}

.efc-guide-header h2 {
	font-size: 28px;
}

.efc-guide-intro {
	max-width: 970px;
	margin: 15px 0 14px !important;
	color: var(--efc-ink);
	font-size: 17px;
	line-height: 1.62;
}

.efc-guide-starters {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 9px;
	margin: 0 0 20px;
}

.efc-guide-starters button {
	min-height: 58px;
	padding: 12px 14px;
	border: 1px solid #bad1ca;
	border-radius: 8px;
	background: #f8fbfa;
	color: var(--efc-ink);
	text-align: left;
	transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.efc-guide-starters button:hover,
.efc-guide-starters button:focus-visible {
	border-color: var(--efc-green);
	background: var(--efc-soft);
	transform: translateY(-1px);
}

.efc-guide-starters strong {
	display: block;
	font-size: 14px;
	line-height: 1.3;
}

.efc-guide.has-conversation .efc-guide-starters {
	display: none;
}

.efc-guide-workspace {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(285px, 345px);
	gap: 22px;
	align-items: start;
}

.efc-guide-main {
	min-width: 0;
}

.efc-guide-mode-home .efc-guide-workspace,
.efc-guide-mode-product .efc-guide-workspace,
.efc-guide-mode-drawer .efc-guide-workspace {
	grid-template-columns: 1fr;
}

.efc-guide-mode-home .efc-case-map,
.efc-guide-mode-product .efc-case-map,
.efc-guide-mode-drawer .efc-case-map {
	display: none;
}

.efc-guide-mode-full .efc-guide-conversation {
	min-height: 310px;
	max-height: none !important;
	overflow: visible !important;
}

.efc-guide-conversation {
	gap: 16px;
	padding-top: 2px;
}

.efc-guide-message-user {
	width: min(680px, 88%);
	padding: 13px 15px;
	border-radius: 14px 14px 3px 14px;
}

.efc-guide-message-user p {
	font-size: 16px;
}

.efc-guide-message-assistant {
	gap: 9px;
}

.efc-guide-message-assistant > .efc-guide-avatar {
	width: 42px;
	height: 42px;
	font-size: 12px;
}

.efc-guide-answer {
	max-width: 850px;
	padding: 17px 19px;
	border-radius: 4px 13px 13px 13px;
	box-shadow: 0 6px 18px rgba(13, 41, 36, .035);
}

.efc-guide-answer h3 {
	max-width: 760px;
	margin: 4px 0 8px;
	font-size: clamp(23px, 2.35vw, 28px);
	line-height: 1.17;
}

.efc-guide-answer p,
.efc-guide-answer li {
	max-width: 760px;
	font-size: 17px;
	line-height: 1.58;
}

.efc-answer-direct {
	margin-bottom: 8px;
}

.efc-answer-reason {
	margin: 8px 0 0 !important;
	color: var(--efc-slate);
	font-size: 14px !important;
}

.efc-answer-boundary {
	margin: 10px 0 0 !important;
	padding: 10px 12px;
	border: 1px solid #ead5a6;
	border-left: 3px solid var(--efc-amber);
	border-radius: 4px;
	background: #fffaf0;
	font-size: 14px !important;
}

.efc-answer-next {
	margin-top: 12px;
	padding: 12px 14px;
	border-left: 3px solid var(--efc-green);
	background: var(--efc-soft);
}

.efc-answer-next strong {
	display: block;
	margin-bottom: 3px;
	font-size: 11px;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.efc-answer-next p {
	margin: 0;
	font-size: 15.5px;
}

.efc-answer-follow-up {
	margin-top: 13px;
	padding: 12px 14px;
	border-left: 3px solid var(--efc-green);
	background: #f3f8f6;
}

.efc-answer-follow-up strong {
	font-size: 11px;
	letter-spacing: .075em;
	text-transform: uppercase;
}

.efc-answer-follow-up p {
	margin: 3px 0 0;
	font-size: 16px;
}

.efc-follow-up-reason {
	margin-top: 6px;
	font-size: 13px;
}

.efc-answer-actions {
	gap: 7px;
	margin-top: 12px;
}

.efc-answer-actions a,
.efc-answer-actions button {
	min-height: 40px;
	padding: 8px 11px;
	border-radius: 5px;
	font-size: 13px;
}

.efc-answer-commercial {
	margin: 12px 0 0 !important;
	padding-top: 10px;
	border-top: 1px solid #e2e9e6;
	color: var(--efc-slate);
	font-size: 12.5px !important;
}

.efc-answer-more {
	margin-top: 12px;
}

.efc-answer-more summary {
	padding: 11px 40px 11px 13px;
	font-size: 13px;
}

.efc-read-aloud {
	margin-top: 10px;
	min-height: 34px;
	padding: 6px 10px;
	font-size: 12px;
}

.efc-action-ladder {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 13px;
}

.efc-action-ladder-item {
	padding: 11px 12px;
	border: 1px solid var(--efc-line);
	border-radius: 6px;
	background: #fff;
}

.efc-action-ladder-item h4 {
	margin: 0 0 4px;
	font-family: inherit;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.efc-action-ladder-item p {
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
}

.efc-action-ladder-item.is-now { border-left: 3px solid #2d897c; background: #f2faf7; }
.efc-action-ladder-item.is-next { border-left: 3px solid #3d6f98; background: #f3f7fb; }
.efc-action-ladder-item.is-avoid { border-left: 3px solid var(--efc-amber); background: #fff9ef; }
.efc-action-ladder-item.is-professional { border-left: 3px solid #6f6b8f; background: #f7f6fa; }

.efc-conversation-outcome {
	margin-top: 13px;
	padding: 13px 14px;
	border-radius: 7px;
}

.efc-environmental-brief {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 14px;
	padding: 13px 14px;
	border: 1px solid #9fc3ba;
	border-radius: 7px;
	background: #edf7f4;
}

.efc-environmental-brief h4 {
	margin: 2px 0 4px;
	font-family: var(--efc-serif);
	font-size: 21px;
	font-weight: 500;
}

.efc-environmental-brief p {
	margin: 0;
	font-size: 13px;
}

.efc-environmental-brief button {
	flex: 0 0 auto;
	min-height: 39px;
	padding: 8px 11px;
	border: 1px solid var(--efc-green);
	border-radius: 5px;
	background: #fff;
	color: var(--efc-green);
	font-weight: 800;
	cursor: pointer;
}

.efc-case-map {
	position: sticky;
	top: 78px;
	max-height: calc(100vh - 100px);
	overflow: auto;
	border: 1px solid #b8cec8;
	border-radius: 10px;
	background: #f8fbfa;
	box-shadow: 0 8px 22px rgba(13, 41, 36, .05);
}


.efc-case-map-toggle {
	display: none;
	width: 100%;
	padding: 12px 14px;
	border: 0;
	background: #f8fbfa;
	color: var(--efc-ink);
	text-align: left;
	cursor: pointer;
}

.efc-case-map-toggle span {
	display: block;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.efc-case-map-toggle strong {
	display: block;
	margin-top: 2px;
	font-size: 14px;
}

.efc-case-map-body { display: block; }

.efc-case-map-empty,
.efc-case-map-inner {
	padding: 17px;
}

.efc-case-map-empty h3,
.efc-case-map-head h3 {
	margin: 4px 0 8px;
	font-size: 23px;
	line-height: 1.15;
}

.efc-case-map-empty p,
.efc-case-map-head small {
	color: var(--efc-slate);
	font-size: 13px;
	line-height: 1.5;
}

.efc-case-map-progress {
	height: 6px;
	margin: 9px 0;
	overflow: hidden;
	border-radius: 999px;
	background: #dfe9e6;
}

.efc-case-map-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--efc-green);
}

.efc-case-map-topic {
	display: grid;
	gap: 2px;
	margin: 14px 0;
	padding: 11px 12px;
	border-left: 3px solid var(--efc-green);
	background: #edf7f4;
}

.efc-case-map-topic span {
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.efc-case-map-topic small {
	color: var(--efc-slate);
	font-size: 11px;
}

.efc-case-map-section {
	margin-top: 15px;
}

.efc-case-map-section h4 {
	margin: 0 0 7px;
	font-family: inherit;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.efc-case-map-section ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.efc-case-map-section li {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
	padding: 8px 0;
	border-top: 1px solid #e0e8e5;
	font-size: 12.5px;
	line-height: 1.42;
}

.efc-case-map-section li:first-child { border-top: 0; }
.efc-case-map-section.is-denied li::before { content: "✓"; color: var(--efc-green); font-weight: 900; }
.efc-case-map-section.is-unknown li::before { content: "?"; color: #9a6b27; font-weight: 900; }
.efc-case-map-section.is-inferred li::before { content: "~"; color: #6f6b8f; font-weight: 900; }
.efc-case-map-section.is-denied li span,
.efc-case-map-section.is-unknown li span,
.efc-case-map-section.is-inferred li span { flex: 1; }

.efc-case-fact-edit {
	flex: 0 0 auto;
	padding: 2px 5px;
	border: 0;
	background: transparent;
	color: var(--efc-green);
	font-size: 10px;
	font-weight: 850;
	text-decoration: underline;
	cursor: pointer;
}

.efc-case-map-editor {
	position: sticky;
	bottom: 0;
	margin: 15px -17px -17px;
	padding: 13px 17px;
	border-top: 1px solid #b8cec8;
	background: #fff;
}

.efc-case-map-editor[hidden] { display: none !important; }
.efc-case-map-editor label { display: grid; gap: 5px; font-size: 11px; font-weight: 850; }
.efc-case-map-editor input { width: 100%; min-height: 40px; padding: 8px 9px; border: 1px solid #9fb8b1; font-size: 14px; }
.efc-case-map-editor form > div { display: flex; gap: 7px; margin-top: 8px; }
.efc-case-map-editor button { min-height: 34px; padding: 6px 9px; border: 1px solid var(--efc-green); border-radius: 4px; background: var(--efc-green); color: #fff; font-size: 11px; font-weight: 850; cursor: pointer; }
.efc-case-map-editor .efc-case-map-cancel { background: #fff; color: var(--efc-green); }

.efc-guide-form {
	position: static;
	margin-top: 13px;
	padding-top: 14px;
	border-top: 1px solid #e0e8e4;
	background: #fff;
}

.efc-guide-form > label {
	font-size: 14px;
}

.efc-guide-commerce-note,
.efc-guide-human-help {
	margin-top: 12px !important;
	padding: 11px 13px;
	border: 1px solid #d5e1dd;
	border-radius: 6px;
	background: #fafcfc;
	font-size: 12.5px !important;
	line-height: 1.5;
}

.efc-guide-human-help {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	align-items: center;
}

.efc-guide-human-help a {
	color: var(--efc-green);
	font-weight: 800;
}

.efc-voice-actions {
	display: flex;
	gap: 8px;
}

.efc-voice-stop-button,
.efc-voice-end-button {
	min-height: 44px;
	padding: 9px 13px;
	border: 1px solid var(--efc-green);
	border-radius: 5px;
	background: #fff;
	color: var(--efc-green);
	font-weight: 850;
	cursor: pointer;
}

.efc-voice-stop-button {
	background: var(--efc-green);
	color: #fff;
}

.efc-guide-feedback h3 {
	font-size: 23px;
}

.efc-feedback-rating {
	flex-wrap: wrap;
}

.efc-feedback-rating button {
	min-width: 92px;
}

.efc-feedback-comment-label {
	display: grid;
	gap: 6px;
	font-size: 13px;
	font-weight: 800;
}

.efc-feedback-repair {
	width: fit-content;
	min-height: 40px;
	padding: 8px 12px;
	border: 1px solid var(--efc-green);
	border-radius: 4px;
	background: #fff;
	color: var(--efc-green);
	font-weight: 850;
	cursor: pointer;
}

.efc-feedback-repair[hidden] { display: none !important; }

@media (max-width: 1060px) {
	.efc-guide-workspace {
		grid-template-columns: minmax(0, 1fr) 290px;
		gap: 16px;
	}
	.efc-guide-starters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.efc-guide-workspace {
		grid-template-columns: 1fr;
	}
	.efc-case-map {
		position: static;
		max-height: none;
		order: -1;
	}
	.efc-case-map-inner,
	.efc-case-map-empty {
		padding: 14px;
	}
	.efc-case-map-toggle {
		display: block;
	}
	.efc-case-map-body {
		display: none;
		border-top: 1px solid #dce7e3;
	}
	.efc-case-map.is-open .efc-case-map-body {
		display: block;
	}
	.efc-case-map.is-open .efc-case-map-toggle {
		background: #edf7f4;
	}
}

@media (max-width: 680px) {
	.efc-guide {
		padding: 14px;
	}
	.efc-guide-starters {
		grid-template-columns: 1fr;
	}
	.efc-guide-header {
		grid-template-columns: 42px minmax(0, 1fr);
	}
	.efc-guide-header h2 {
		font-size: 24px;
	}
	.efc-guide-answer {
		padding: 14px;
	}
	.efc-guide-answer h3 {
		font-size: 22px;
	}
	.efc-guide-answer p,
	.efc-guide-answer li {
		font-size: 16px;
	}
	.efc-action-ladder {
		grid-template-columns: 1fr;
	}
	.efc-environmental-brief,
	.efc-guide-human-help,
	.efc-voice-active,
	.efc-voice-start {
		align-items: stretch;
		flex-direction: column;
	}
	.efc-environmental-brief button,
	.efc-voice-actions,
	.efc-voice-actions button {
		width: 100%;
	}
	.efc-voice-actions {
		flex-direction: column;
	}
	.efc-case-map {
		display: block;
	}
}

/* EVA 2.1 mobile readability release gate. Keep the complete homeowner answer at 16px or larger. */
@media (max-width: 680px) {
	/* Do not reserve a transcript-sized blank panel before the first mobile turn. */
	.efc-guide-mode-full .efc-guide-conversation:empty {
		min-height: 0;
		padding: 0;
	}
	.efc-guide .efc-guide-message-assistant .efc-guide-answer p,
	.efc-guide .efc-guide-message-assistant .efc-guide-answer li,
	.efc-guide .efc-guide-message-assistant .efc-guide-answer .efc-answer-direct,
	.efc-guide .efc-guide-input-row textarea {
		font-size: 16px !important;
	}
}

/* EVA 2.1.1 voice and recognition repair. */
.efc-voice-start-actions { display: grid; justify-items: end; gap: 8px; min-width: 220px; }
.efc-voice-settings { width: min(100%, 280px); color: var(--efc-slate); font-size: 12px; }
.efc-voice-settings summary { width: fit-content; margin-left: auto; color: var(--efc-green); font-size: 12px; font-weight: 800; cursor: pointer; }
.efc-voice-settings[open] { padding: 10px; border: 1px solid #c7d8d2; border-radius: 5px; background: #fff; }
.efc-voice-settings[open] summary { margin: 0 0 9px auto; }
.efc-voice-settings label { display: grid; gap: 5px; font-weight: 800; }
.efc-voice-select { width: 100%; min-height: 40px; padding: 7px 9px; border: 1px solid #a8bdb7; border-radius: 4px; background: #fff; color: var(--efc-ink); font-size: 13px; }
.efc-voice-test-button { width: 100%; min-height: 39px; margin-top: 8px; border: 1px solid var(--efc-green); border-radius: 4px; background: #fff; color: var(--efc-green); font-size: 12px; font-weight: 850; cursor: pointer; }
.efc-voice-heard { grid-column: 2; min-height: 19px; margin: 5px 0 0 !important; color: var(--efc-ink) !important; font-size: 13px !important; font-weight: 700; }
.efc-voice-heard:empty { display: none; }
@media (max-width: 680px) {
  .efc-voice-start-actions { width: 100%; min-width: 0; justify-items: stretch; }
  .efc-voice-settings { width: 100%; }
  .efc-voice-settings summary { margin-left: 0; }
}
.efc-interpreted-message { margin: 8px 0 12px !important; padding: 8px 10px; border-left: 3px solid #7aa99d; background: #f1f7f5; color: var(--efc-slate); font-size: 13px !important; }


/* EVA 2.1.2 reliable voice and microphone diagnostics. */
.efc-mic-test-button {
  width: 100%;
  min-height: 39px;
  margin-top: 8px;
  border: 1px solid #8caea5;
  border-radius: 4px;
  background: #f7fbfa;
  color: var(--efc-green);
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
}
.efc-voice-diagnostic {
  margin: 9px 0 0 !important;
  padding: 9px 11px;
  border: 1px solid #b9d2ca;
  border-radius: 5px;
  background: #f1f7f5;
  color: var(--efc-ink);
  font-size: 13px !important;
  font-weight: 700;
  line-height: 1.45;
}
.efc-voice-diagnostic[hidden] { display: none !important; }
.efc-voice-diagnostic[data-state="processing"] { border-color: #d7c49b; background: #fff9ec; color: #655020; }
.efc-voice-diagnostic[data-state="warning"] { border-color: #d7c49b; background: #fff9ec; color: #655020; }
.efc-voice-diagnostic[data-state="error"] { border-color: #d5aaa8; background: #fff2f1; color: #8b2c28; }
.efc-voice-diagnostic[data-state="success"] { border-color: #a9cec3; background: #edf8f5; color: #1b594f; }

/* MEL v2 staging consent and recoverable transport states. */
.efc-guide-form > .efc-guide-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 10px 0 0;
	color: var(--efc-slate);
	font-size: 12px;
	font-weight: 650;
	line-height: 1.45;
}
.efc-guide-consent input { flex: 0 0 auto; margin-top: 3px; }

/* Checkout handoff gate: visible only for a Review that still needs its
 * first-party cart-origin binding. Ordinary kit-only checkout is unaffected. */
.mel-origin-guard {
  box-sizing: border-box;
  width: 100%;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid #9bb8d0;
  border-radius: 8px;
  background: #eef6fb;
  color: #0b2740;
  font-size: 15px;
  line-height: 1.5;
}
.mel-origin-guard[data-origin-status="failed"] {
  border-color: #b84a4a;
  background: #fff4f4;
}
.mel-origin-guard button {
  margin-left: 8px;
  color: #0a4f7a;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.mel-origin-guard button:focus-visible { outline: 3px solid #2a78a8; outline-offset: 3px; }
[data-mel-origin-blocked="true"] { cursor: not-allowed; }
.efc-guide-message-status {
	margin: 10px 0;
	padding: 13px 15px;
	border: 1px solid #d7c49b;
	border-radius: 6px;
	background: #fff9ec;
	color: #655020;
}
.efc-guide-message-status p { margin: 4px 0 0; }
.efc-eva-retry {
	margin-top: 10px;
	padding: 8px 12px;
	border: 1px solid var(--efc-green);
	border-radius: 4px;
	background: #fff;
	color: var(--efc-green);
	font-weight: 800;
	cursor: pointer;
}
@media (max-width: 680px) {
	.efc-guide-input-row textarea { min-height: 110px; font-size: 16px; }
	.efc-guide-message-status, .efc-eva-retry { width: 100%; }
}

/* 2.0.0-alpha.10: canonical product-card hierarchy and independent controls. */
.efc-card-image-link {
	display: grid;
	width: 100%;
	height: 205px;
	place-items: center;
	color: inherit;
	text-decoration: none;
}

.efc-test-image-wrap .efc-card-image-link img {
	height: 205px;
}

.efc-card-title-link {
	color: inherit;
	text-decoration: none;
}

.efc-card-title-link:hover,
.efc-card-view-details:hover {
	text-decoration: underline;
}

.efc-test-card h3 {
	overflow-wrap: anywhere;
}

.efc-card-primary-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.efc-card-primary-link:hover .efc-test-purpose {
	color: var(--efc-ink);
}

.efc-card-view-details {
	display: inline-flex;
	min-height: 38px;
	align-items: center;
	margin-top: 2px;
	color: var(--efc-green);
	font-size: 12px;
	font-weight: 850;
	text-decoration: none;
}

.efc-test-card :is(.efc-card-image-link, .efc-card-title-link, .efc-card-primary-link, .efc-card-action, .efc-card-ask, .efc-card-view-details, .efc-compare-input):focus-visible {
	outline: 3px solid #f0a629;
	outline-offset: 3px;
}

.efc-test-card .efc-card-image-link:focus-visible {
	outline-offset: -4px;
}

/* The existing detail link is the keyboard target; card whitespace is pointer-activated. */
.efc-shop-page .mel-library-card.has-card-link { position: relative; }
.efc-shop-page .mel-library-card.has-card-link { cursor: pointer; }
/* The theme's card display rule is important; filtered cards must still hide. */
.mel-site .efc-shop-page .efc-test-card[hidden] { display: none !important; }
.efc-shop-page .mel-library-card.has-card-link .efc-compare-check {
	cursor: pointer;
}
.mel-site .efc-shop-page.mel-approved-library .mel-library-card.has-card-link:hover,
.mel-site .efc-shop-page.mel-approved-library .mel-library-card.has-card-link:focus-within {
	border-color: #216ba5;
	box-shadow: 0 0 0 3px rgba(33, 107, 165, .23), 0 9px 22px rgba(8, 47, 83, .1);
}
.efc-shop-page .mel-library-card.has-card-link:has(.efc-card-action:focus-visible) {
	outline: 3px solid #216ba5;
	outline-offset: 3px;
}
.efc-shop-page .mel-library-card :is(.efc-card-action, .efc-compare-input):focus-visible {
	outline: 3px solid #216ba5;
	outline-offset: 3px;
}

.efc-test-card-footer {
	min-height: 62px;
}

.efc-card-action {
	text-align: center;
}

@media (max-width: 420px) {
	.efc-test-card-footer {
		align-items: stretch;
		flex-direction: column;
	}

	.efc-card-action {
		justify-content: center;
		width: 100%;
	}
}

/* Shared catalogue rows: cards in each visual row use the same content tracks. */
.efc-test-card-spacer { display: block; min-height: 1px; }

@supports (grid-template-rows: subgrid) {
	.efc-test-grid,
	.efc-featured-test-grid {
		grid-auto-flow: row;
		grid-auto-rows: auto;
		row-gap: 0;
	}

	.efc-test-card {
		display: grid;
		grid-row: span 11;
		grid-template-rows: subgrid;
		margin-bottom: 20px;
	}

	.efc-test-image-wrap { grid-row: 1; }

	.efc-test-card-body {
		display: grid;
		grid-row: 2 / span 10;
		grid-template-rows: subgrid;
	}

	.efc-test-card-meta { grid-row: 1; }
	.efc-test-card h3 { grid-row: 2; }
	.efc-card-primary-link {
		display: grid;
		grid-row: 3 / span 3;
		grid-template-rows: subgrid;
	}
	.efc-test-card-body > .efc-test-purpose { grid-row: 3; }
	.efc-test-card-body > .efc-test-commerce-summary { grid-row: 4; }
	.efc-test-card-body > .efc-test-question { grid-row: 5; }
	.efc-card-primary-link > .efc-test-purpose { grid-row: 1; }
	.efc-card-primary-link > .efc-test-commerce-summary { grid-row: 2; }
	.efc-card-primary-link > .efc-test-question { grid-row: 3; }
	.efc-test-card-spacer { grid-row: 6; }
	.efc-test-card-footer { grid-row: 7; }
	.efc-card-ask { grid-row: 8; }
	.efc-card-view-details { grid-row: 9; }
	.efc-compare-check { grid-row: 10; }

}

/* Approved light purchase treatment, including WooCommerce async states. */
.efc-card-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid var(--efc-green);
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 4px 12px rgba(8, 115, 56, .08);
	color: var(--efc-green) !important;
	font-weight: 850;
	text-decoration: none;
}

.efc-card-action:hover {
	border-color: #087338;
	background: #eef8f1;
	color: #075c2d !important;
}

.efc-card-action:focus-visible {
	border-color: #087338;
	background: #fff;
	color: #075c2d !important;
	outline: 3px solid #f0a629;
	outline-offset: 3px;
}

.efc-card-action:is(.loading, .disabled, :disabled, [aria-disabled="true"]) {
	border-color: #b8c8c0;
	background: #f4f7f5;
	box-shadow: none;
	color: #62756c !important;
	cursor: not-allowed;
	opacity: 1;
}

.efc-card-action.loading { position: relative; padding-right: 34px; }
.efc-card-action.loading::after { right: 11px; color: #62756c; }

/* Recorded homeowner Library presentation; no commerce/readiness rules here.
 * Source: preview73-wpvibe-read-capture/assets/homeowner-catalogue.css and
 * mel-unified-interior.css. Scoped to the restored Library only. */
.mel-site .efc-shop-page.mel-approved-library .efc-shop-hero {
	display: block;
	padding: clamp(24px, 3vw, 40px);
	margin-bottom: 28px;
}
.mel-site .efc-shop-page.mel-approved-library .efc-shop-hero h1 {
	max-width: 860px;
	font-size: clamp(32px, 3.5vw, 48px);
	line-height: 1.12;
}
.mel-site .efc-shop-page.mel-approved-library .efc-shop-hero p:last-child {
	max-width: 850px;
	margin-bottom: 0;
}
.mel-site .efc-shop-page.mel-approved-library :is(.mel-catalogue-question, .mel-catalogue-browse-title) {
	font-family: var(--mel-serif, Georgia, serif);
	color: #082f53;
	font-size: clamp(26px, 3vw, 36px);
	margin: 28px 0 16px;
}
.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-routes {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 32px;
}
.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-route {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 19px;
	border: 1px solid #d4e1eb;
	border-radius: 12px;
	background: #fff;
	color: inherit;
	text-decoration: none;
}
.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-route strong { color: #082f53; font-size: 17px; }
.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-route span { font-size: 14px; line-height: 1.5; }
.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-route em { margin-top: auto; font-style: normal; font-weight: 750; color: #216ba5; }
.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-route:focus-visible { outline: 3px solid #216ba5; outline-offset: 3px; }
.mel-site .efc-shop-page.mel-approved-library .mel-library-card { height: auto; min-height: 0; border-color: #d4e1eb; background: #fff; box-shadow: none; }
.mel-site .efc-shop-page.mel-approved-library .efc-test-card-body { padding: clamp(20px, 2vw, 28px); }
.mel-site .efc-shop-page.mel-approved-library .efc-test-card h3 { font-size: clamp(22px, 2vw, 25px); line-height: 1.2; }
.mel-site .efc-shop-page.mel-approved-library .efc-test-question { border: 0; padding: 0; background: transparent; }
.mel-site .efc-shop-page.mel-approved-library .efc-test-card-footer { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: auto; }
.mel-site .efc-shop-page.mel-approved-library .efc-card-action { border-color: #082f53; background: #082f53; color: #fff !important; }
.mel-site .efc-shop-page.mel-approved-library .efc-card-action:hover { border-color: #216ba5; background: #216ba5; color: #fff !important; }
.mel-site .efc-shop-page.mel-approved-library .efc-card-action:focus-visible { outline: 3px solid #216ba5; outline-offset: 3px; }
/* Reserve the tallest title and summary tracks at desktop/tablet widths so
   each row's question label begins on the same horizontal line. */
@media (min-width: 681px) {
	.mel-site .efc-shop-page.mel-approved-library .mel-library-card h3 { min-height: 60px; }
	.mel-site .efc-shop-page.mel-approved-library .mel-library-card .efc-test-purpose { min-height: 93px; }
}
/* Keep the comparison controls above the fixed MEL launcher, not underneath it. */
.mel-site .efc-shop-page.mel-approved-library .efc-compare-tray { bottom: 100px; }
@media (max-width: 900px) {
	.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.mel-site .efc-shop-page.mel-approved-library .mel-catalogue-routes { grid-template-columns: 1fr; }
}

/* The full guide and popup inherit the installed consolidated theme tokens. */
.mel-site .efc-guide,
.mel-site .efc-guide-page {
	--efc-ink: var(--mel-ink, #233846);
	--efc-deep: var(--mel-navy, #0a2d4f);
	--efc-green: var(--mel-green-dark, #0b7835);
	--efc-soft: var(--mel-soft, #f3f7f5);
	--efc-slate: var(--mel-muted, #5c707b);
	--efc-line: var(--mel-line, #d7e1de);
	--efc-serif: var(--mel-serif, Georgia, serif);
	font-family: var(--mel-sans, "Segoe UI", Arial, sans-serif);
}
.mel-site .efc-guide-header,
.mel-site .efc-guide-answer { border-color: var(--mel-line, #d7e1de); }
.mel-site .efc-guide-message-user {
	border-color: var(--mel-line, #d7e1de);
	background: var(--mel-green-soft, #e7f5eb);
	color: var(--mel-ink, #233846);
}
.mel-site .efc-guide-send {
	background: var(--mel-navy, #0a2d4f);
	border: 1px solid var(--mel-navy, #0a2d4f);
	color: #fff;
}
.mel-site .efc-guide :is(button, textarea, a):focus-visible {
	outline: 3px solid var(--mel-green-dark, #0b7835);
	outline-offset: 3px;
}
.mel-site .efc-owner-review-preference {
	margin-top: 14px;
	padding: 14px 16px;
	border-left: 4px solid var(--mel-navy, #0a2d4f);
	background: var(--mel-soft, #f3f7f5);
	color: var(--mel-ink, #233846);
}
.mel-site .efc-owner-review-notice { margin: 0 0 5px; font-weight: 750; }
.mel-site .efc-owner-review-detail { margin: 0 0 10px; font-size: 14px; }
@media (max-width: 600px) {
	.mel-site .efc-owner-review-preference { padding: 12px; }
}
