.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: #17352f;
	--efc-deep: #0d2924;
	--efc-green: #176f65;
	--efc-mint: #d9eee8;
	--efc-mint-soft: #eef7f4;
	--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;
	}
}
