/*!
 * EFLL Site Design - inner pages (inner.css)
 * Styles the `ei-` component markup produced by includes/inner*.php (contract: R/CONTRACT-inner.md)
 * so practice, city, team, company, campaign and policy pages read as Draft E.
 *
 * Scope: every rule starts with  body.efll-sd .efll-inner  (0-2-1), so a component rule is 0-3-1+
 * and beats Astra (`h1`, `.entry-content :where(h2)`, `p`, `ul`, `a:hover` <= 0-1-1) and the
 * Elementor kit (`.elementor-kit-931 h1|button` 0-1-1) without !important.
 * !important is used only in these places, each marked "!important:" below:
 *   1. WPForms inside .ei-consult (the eael-wpforms widget writes 0-5-x per-widget rules and WPForms
 *      modern writes its own vars/rules; same technique as the homepage .eh-form in home.css).
 *   2. Inline colour / font-family styles left inside text-editor HTML (e.g. style="color:#000000"
 *      on a dark band) - inline styles can only be beaten with !important.
 *   3. The Astra page-title/container neutraliser (Astra prints those with id-level selectors).
 *   4. @media print only (white paper for dark bands).
 *
 * Surfaces set colour tokens (--ei-*) and components read them, so every component works on
 * light (#f2f4f7), paper (#fff), dark (#0e1a2b / #08111d), hero, CTA and consult surfaces.
 * .ei-raw (pass-through Elementor widgets) is NOT restyled inside, except WPForms inside .ei-consult
 * and carousel slides/bullets on dark surfaces (kept readable).
 */

/* =============================================================================================
 * 0. Page frame: full-bleed, no sideways scroll, Astra containers neutralised
 * ============================================================================================= */
body.efll-sd .efll-inner {
	/* palette */
	--ei-gold: #d4a72c;
	--ei-gold-hi: #e6c25a;
	--ei-gold-ink: #7a5a0c;   /* gold as TEXT on light: 5.8:1 on #f2f4f7 */
	--ei-gold-deep: #9c7411;  /* gold for LARGE numerals on light: 3.9:1 (AA large) */
	--ei-navy: #1b304b;
	--ei-ink: #0e1a2b;
	--ei-night: #08111d;
	--ei-abyss: #050b14;
	--ei-display: "Cinzel", Georgia, "Times New Roman", serif;
	--ei-accent-face: "Cormorant Garamond", Georgia, serif;
	--ei-cond: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
	--ei-body: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--ei-ease: cubic-bezier(.2, .7, .2, 1);

	/* default surface = paper (overridden by each section) */
	--ei-bg: #ffffff;
	--ei-fg: #33475f;
	--ei-head: #1b304b;
	--ei-muted: #4b5d74;
	--ei-eyebrow: #7a5a0c;
	--ei-accent: #9c7411;
	--ei-link: #1b304b;
	--ei-link-hover: #7a5a0c;
	--ei-line: #d5dce5;
	--ei-rule: rgba(156, 116, 17, .45);
	--ei-card-bg: #f7f8fa;
	--ei-card-line: #e1e6ed;
	--ei-focus: #1b304b;

	display: block;
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	overflow-x: hidden; /* fallback */
	overflow-x: clip;   /* no scroll container, keeps position:sticky usable inside */
	background: var(--ei-bg);
	color: var(--ei-fg);
	font-family: var(--ei-body);
	font-size: 17px;
	line-height: 1.7;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.efll-sd .efll-inner *,
body.efll-sd .efll-inner *::before,
body.efll-sd .efll-inner *::after {
	box-sizing: border-box;
}

/* Astra wraps the_content in .ast-container / #primary / article / .entry-content. On Elementor
 * "page builder" templates these are already full width; on any other template, free them so the
 * bands can run edge to edge. !important: Astra prints some of these from its dynamic CSS with
 * id selectors (#primary) and per-layout classes we cannot out-rank otherwise. */
body.efll-sd:has(.efll-inner) .site-content > .ast-container {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	display: block;
}
body.efll-sd:has(.efll-inner) #primary,
body.efll-sd:has(.efll-inner) .site-main,
body.efll-sd:has(.efll-inner) .site-main > article,
body.efll-sd:has(.efll-inner) .entry-content:has(> .efll-inner) {
	width: 100%;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	background: transparent;
}
/* our hero carries the page's h1; Astra's own title header would be a second one */
body.efll-sd:has(.efll-inner .ei-hero) .site-main > article > .entry-header {
	display: none !important;
}
body.efll-sd:has(.efll-inner) { overflow-x: hidden; }

/* =============================================================================================
 * 1. Surfaces (tokens) - light, paper, dark, hero, CTA, consult
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-sec--light {
	--ei-bg: #f2f4f7;
	--ei-card-bg: #ffffff;
	--ei-card-line: #d9e0e8;
}
body.efll-sd .efll-inner .ei-sec--paper {
	--ei-bg: #ffffff;
	--ei-card-bg: #f7f8fa;
	--ei-card-line: #e1e6ed;
}
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-hero, .ei-cta, .ei-consult) {
	--ei-bg: #0e1a2b;
	--ei-fg: #d9e0ea;
	--ei-head: #ffffff;
	--ei-muted: #9fb0c6;
	--ei-eyebrow: #e6c25a;
	--ei-accent: #d4a72c;
	--ei-link: #ffffff;
	--ei-link-hover: #e6c25a;
	--ei-line: #1c2b40;
	--ei-rule: rgba(212, 167, 44, .5);
	--ei-card-bg: #0b1626;
	--ei-card-line: #24364f;
	--ei-focus: #ffffff;
}
/* two dark bands in a row: the second drops to Draft E's deeper navy so the seam still reads */
body.efll-sd .efll-inner .ei-sec--dark + .ei-sec--dark { --ei-bg: #08111d; --ei-card-bg: #0e1a2b; }
body.efll-sd .efll-inner .ei-hero { --ei-bg: #08111d; }
body.efll-sd .efll-inner .ei-cta { --ei-bg: #050b14; }

/* =============================================================================================
 * 2. Layout: wrap, sections, flow spacing
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-wrap {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
}
@media (max-width: 479.98px) {
	body.efll-sd .efll-inner .ei-wrap { padding-inline: 16px; }
}

body.efll-sd .efll-inner :is(.ei-sec, .ei-cta) {
	position: relative;
	display: block;
	margin: 0;
	padding-block: 48px;
	background: var(--ei-bg);
	color: var(--ei-fg);
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner :is(.ei-sec, .ei-cta) { padding-block: 60px; }
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner :is(.ei-sec, .ei-cta) { padding-block: 72px; }
}
/* hairline between two light-family bands of the same colour */
body.efll-sd .efll-inner .ei-sec--light + .ei-sec--light,
body.efll-sd .efll-inner .ei-sec--paper + .ei-sec--paper { border-top: 1px solid #e1e6ed; }

/* vertical rhythm for whatever the composer stacks inside a wrap */
body.efll-sd .efll-inner :is(.ei-sec, .ei-cta) > .ei-wrap > * { margin-block: 0; }
body.efll-sd .efll-inner :is(.ei-sec, .ei-cta) > .ei-wrap > * + * { margin-top: 36px; }
@media (min-width: 1024px) {
	body.efll-sd .efll-inner :is(.ei-sec, .ei-cta) > .ei-wrap > * + * { margin-top: 48px; }
}

/* text colour + base type for plain elements the composer passes through (NOT inside .ei-raw) */
body.efll-sd .efll-inner :is(p, li, dd, dt, td, th, figcaption, address):where(:not(.ei-raw *)) {
	color: inherit;
	font-family: inherit;
}
body.efll-sd .efll-inner :is(h1, h2, h3, h4, h5, h6):where(:not(.ei-raw *)) {
	color: var(--ei-head);
	text-transform: none;
	margin: 0;
	clear: none;
}
body.efll-sd .efll-inner :is(h1, h2, h3):where(:not(.ei-raw *)) {
	font-family: var(--ei-display);
	font-weight: 700;
	letter-spacing: .005em;
	overflow-wrap: break-word;
}
body.efll-sd .efll-inner :is(h4, h5, h6):where(:not(.ei-raw *)) {
	font-family: var(--ei-cond);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.3;
}
body.efll-sd .efll-inner :is(strong, b):where(:not(.ei-raw *)) { font-weight: 600; color: inherit; }
body.efll-sd .efll-inner img:where(:not(.ei-raw *)) { max-width: 100%; height: auto; }

/* !important: old text-editor HTML sometimes carries inline colours/fonts (black spans on what is
 * now a dark band, Arial spans). Inline styles only lose to !important. Scoped to our text slots. */
body.efll-sd .efll-inner :is(.ei-prose, .ei-lede, .ei-sec-intro, .ei-card-text, .ei-faq-a, .ei-cta-text, .ei-consult-copy, .ei-bio-body, .ei-office, .ei-result-text, .ei-stat-label, .ei-checks, .ei-steps, .ei-quote) [style*="color"]:where(:not(.ei-raw *)) {
	color: inherit !important;
}
body.efll-sd .efll-inner :is(.ei-prose, .ei-lede, .ei-sec-intro, .ei-card-text, .ei-faq-a, .ei-cta-text, .ei-consult-copy, .ei-bio-body, .ei-office, .ei-result-text, .ei-checks, .ei-steps) [style*="font-family"]:where(:not(.ei-raw *)) {
	font-family: inherit !important;
}

/* =============================================================================================
 * 3. Type components: eyebrow, headings, lede, section head
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-eyebrow {
	display: block;
	margin: 0;
	color: var(--ei-eyebrow);
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: .28em;
	text-transform: uppercase;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-eyebrow { font-size: 15px; letter-spacing: .32em; }
}
body.efll-sd .efll-inner .ei-eyebrow a { color: inherit; text-decoration: none; }

body.efll-sd .efll-inner .ei-h1 {
	margin: 0;
	max-width: 22ch;
	color: var(--ei-head);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: clamp(32px, 5vw, 64px);
	line-height: 1.06;
	letter-spacing: .005em;
	text-transform: none;
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: manual;
}
body.efll-sd .efll-inner .ei-h2 {
	margin: 0;
	color: var(--ei-head);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: clamp(28px, 4vw, 52px);
	line-height: 1.08;
	letter-spacing: .005em;
	text-transform: none;
	text-wrap: balance;
	overflow-wrap: break-word;
}
/* Draft E accent: an <em> inside a display heading turns Cormorant italic gold ("Now, so do you.") */
body.efll-sd .efll-inner :is(.ei-h1, .ei-h2) :is(em, i) {
	font-family: var(--ei-accent-face);
	font-style: italic;
	font-weight: 500;
	font-size: 1.12em;
	letter-spacing: 0;
	color: var(--ei-accent);
}
body.efll-sd .efll-inner :is(.ei-h1, .ei-h2) a { color: inherit; text-decoration: none; }

body.efll-sd .efll-inner .ei-lede {
	max-width: 720px;
	color: var(--ei-fg);
	font-size: 18px;
	line-height: 1.65;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-lede { font-size: 20px; }
}
body.efll-sd .efll-inner :is(.ei-lede, .ei-sec-intro, .ei-cta-text) > * { margin: 0; }
body.efll-sd .efll-inner :is(.ei-lede, .ei-sec-intro, .ei-cta-text) > * + * { margin-top: .8em; }

body.efll-sd .efll-inner .ei-sec-head {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 820px;
}
body.efll-sd .efll-inner .ei-sec-head > * { margin: 0; }
body.efll-sd .efll-inner .ei-sec-intro {
	max-width: 720px;
	margin-top: 6px;
	color: var(--ei-fg);
	font-size: 18px;
	line-height: 1.65;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-sec-intro { font-size: 19px; }
}

/* =============================================================================================
 * 4. Links, focus, buttons, actions
 * ============================================================================================= */
body.efll-sd .efll-inner :is(.ei-prose, .ei-lede, .ei-sec-intro, .ei-card-text, .ei-faq-a, .ei-cta-text, .ei-consult-copy, .ei-bio-body, .ei-office, .ei-checks, .ei-steps, .ei-result-text, .ei-quote) a:where(:not([class*="ei-btn"], .ei-card-link)) {
	color: var(--ei-link);
	font-weight: 600;
	text-decoration-line: underline;
	text-decoration-color: var(--ei-gold);
	text-decoration-thickness: 2px;
	text-underline-offset: .22em;
}
body.efll-sd .efll-inner :is(.ei-prose, .ei-lede, .ei-sec-intro, .ei-card-text, .ei-faq-a, .ei-cta-text, .ei-consult-copy, .ei-bio-body, .ei-office, .ei-checks, .ei-steps, .ei-result-text, .ei-quote) a:where(:not([class*="ei-btn"], .ei-card-link)):hover {
	color: var(--ei-link-hover);
	text-decoration-color: currentColor;
}

/* focus: navy (light) / white (dark) ring inside a gold halo - same recipe as site.css */
body.efll-sd .efll-inner :is(a, summary, button, [tabindex]):where(:not(.ei-raw *)):focus-visible {
	outline: 2px solid var(--ei-focus);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(212, 167, 44, .6);
	border-radius: 2px;
}

body.efll-sd .efll-inner .ei-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 16px;
}
body.efll-sd .efll-inner .ei-actions > * { margin: 0; }

body.efll-sd .efll-inner a.ei-btn,
body.efll-sd .efll-inner .ei-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	max-width: 100%;
	margin: 0;
	padding: 14px 28px;
	border: 1px solid var(--ei-gold);
	border-radius: 2px;
	background: var(--ei-gold);
	color: var(--ei-night);
	box-shadow: none;
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 17px;
	line-height: 1.15;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	cursor: pointer;
}
body.efll-sd .efll-inner a.ei-btn:hover,
body.efll-sd .efll-inner .ei-btn:hover {
	background: var(--ei-gold-hi);
	border-color: var(--ei-gold-hi);
	color: var(--ei-night);
}
body.efll-sd .efll-inner .ei-btn :is(strong, b, span, i) { color: inherit; }
/* ghost = outline in the surface's ink: navy on light, white on dark */
body.efll-sd .efll-inner a.ei-btn.ei-btn--ghost,
body.efll-sd .efll-inner .ei-btn.ei-btn--ghost {
	background: transparent;
	border-color: currentColor;
	color: var(--ei-head);
}
body.efll-sd .efll-inner a.ei-btn.ei-btn--ghost:hover,
body.efll-sd .efll-inner .ei-btn.ei-btn--ghost:hover {
	background: var(--ei-head);
	border-color: var(--ei-head);
	color: var(--ei-bg);
}
/* light = Draft E hero "CALL" button: white text, white hairline, smoked glass - for photos/dark */
body.efll-sd .efll-inner a.ei-btn.ei-btn--light,
body.efll-sd .efll-inner .ei-btn.ei-btn--light {
	background: rgba(5, 11, 20, .55);
	border-color: rgba(255, 255, 255, .6);
	color: #ffffff;
}
body.efll-sd .efll-inner a.ei-btn.ei-btn--light:hover,
body.efll-sd .efll-inner .ei-btn.ei-btn--light:hover {
	background: #ffffff;
	border-color: #ffffff;
	color: var(--ei-night);
}
/* re-assert the focus halo after the button's own box-shadow:none (same specificity, later wins) */
body.efll-sd .efll-inner a.ei-btn:focus-visible,
body.efll-sd .efll-inner .ei-btn:focus-visible,
body.efll-sd .efll-inner a.ei-card-link:focus-visible {
	outline: 2px solid var(--ei-focus);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(212, 167, 44, .6);
}
@media (max-width: 479.98px) {
	/* full-width, thumb-friendly buttons on phones */
	body.efll-sd .efll-inner .ei-actions > .ei-btn { flex: 1 1 100%; }
}

/* =============================================================================================
 * 5. Hero
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	margin: 0;
	padding-block: 56px 52px;
	overflow: hidden;
	background-color: var(--ei-bg);
	background-image:
		radial-gradient(ellipse 80% 70% at 85% 0%, rgba(42, 68, 103, .55) 0%, rgba(8, 17, 29, 0) 70%),
		linear-gradient(180deg, #050b14 0%, #08111d 100%);
	color: var(--ei-fg);
	border-bottom: 1px solid rgba(212, 167, 44, .35);
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-hero { padding-block: 88px 80px; }
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-hero { padding-block: 112px 96px; min-height: 440px; }
}
/* photo hero: the image comes in as --ei-hero-img:url(...) on the section */
body.efll-sd .efll-inner .ei-hero.ei-hero--photo {
	min-height: 440px;
	background-image:
		linear-gradient(180deg, rgba(5, 11, 20, .78) 0%, rgba(5, 11, 20, .72) 40%, rgba(5, 11, 20, .94) 100%),
		var(--ei-hero-img, none);
	background-size: cover;
	background-position: 50% 35%;
	background-repeat: no-repeat;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-hero.ei-hero--photo { min-height: 520px; }
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-hero.ei-hero--photo {
		min-height: clamp(560px, 46vw, 680px);
		background-image:
			linear-gradient(90deg, rgba(5, 11, 20, .95) 0%, rgba(5, 11, 20, .82) 38%, rgba(5, 11, 20, .35) 72%, rgba(5, 11, 20, .25) 100%),
			linear-gradient(180deg, rgba(5, 11, 20, .55) 0%, rgba(5, 11, 20, 0) 30%, rgba(5, 11, 20, 0) 62%, rgba(5, 11, 20, .9) 100%),
			var(--ei-hero-img, none);
	}
}
/* thin gold sweep along the bottom edge, as on the Draft E consult strip */
body.efll-sd .efll-inner .ei-hero::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: min(320px, 40%);
	height: 1px;
	background: linear-gradient(90deg, var(--ei-gold), rgba(212, 167, 44, 0));
	pointer-events: none;
}
body.efll-sd .efll-inner .ei-hero > .ei-wrap {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: end;
	column-gap: 64px;
}
body.efll-sd .efll-inner .ei-hero > .ei-wrap > * { margin: 0; min-width: 0; }
body.efll-sd .efll-inner .ei-hero .ei-eyebrow { margin-bottom: 18px; }
body.efll-sd .efll-inner .ei-hero .ei-h1 { text-shadow: 0 4px 30px rgba(0, 0, 0, .45); }
body.efll-sd .efll-inner .ei-hero .ei-lede { margin-top: 22px; color: #d9e0ea; }
body.efll-sd .efll-inner .ei-hero .ei-actions { margin-top: 32px; }
body.efll-sd .efll-inner .ei-hero .ei-hero-aside {
	margin-top: 40px;
	padding: 24px 22px;
	border: 1px solid rgba(212, 167, 44, .4);
	border-top: 2px solid var(--ei-gold);
	border-radius: 2px;
	background: rgba(8, 17, 29, .72);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: var(--ei-fg);
}
body.efll-sd .efll-inner .ei-hero-aside > * { margin: 0; }
body.efll-sd .efll-inner .ei-hero-aside > * + * { margin-top: 16px; }
body.efll-sd .efll-inner .ei-hero-aside .ei-stat { flex-basis: 40%; }
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-hero > .ei-wrap:has(> .ei-hero-aside) {
		grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr);
	}
	body.efll-sd .efll-inner .ei-hero > .ei-wrap > :not(.ei-hero-aside) { grid-column: 1; }
	body.efll-sd .efll-inner .ei-hero .ei-hero-aside {
		grid-column: 2;
		grid-row: 1 / span 6;
		align-self: end;
		margin-top: 0;
		padding: 32px 30px;
	}
}

/* =============================================================================================
 * 6. Prose (text-editor HTML kept verbatim)
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-prose {
	max-width: 780px;
	color: var(--ei-fg);
	font-size: 17px;
	line-height: 1.75;
	overflow-wrap: break-word;
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-prose { font-size: 18px; }
}
body.efll-sd .efll-inner :is(.ei-split-main, .ei-card-text, .ei-bio-body, .ei-consult-copy, .ei-office, .ei-faq-a) .ei-prose { max-width: none; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office) > :where(*) { margin: 0; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-bio-body) > :where(* + *) { margin-top: 1.05em; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-bio-body) :is(h2, h3, h4, h5, h6):where(:not(:first-child)) { margin-top: 1.6em; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-bio-body) :is(h2, h3, h4, h5, h6) + * { margin-top: .55em; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-bio-body) h2 { font-size: clamp(24px, 2.6vw, 34px); line-height: 1.15; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-bio-body, .ei-faq-a) h3 { font-size: clamp(20px, 2vw, 25px); line-height: 1.22; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-bio-body, .ei-faq-a) h4 { font-size: 17px; color: var(--ei-eyebrow); }
body.efll-sd .efll-inner :is(.ei-prose, .ei-bio-body, .ei-faq-a) :is(h5, h6) { font-size: 15px; color: var(--ei-muted); }

/* bullets: gold diamonds; numbers: gold Barlow Condensed */
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office, .ei-lede, .ei-cta-text, .ei-consult-copy) ul:where(:not([class])) {
	list-style: none;
	margin-left: 0;
	padding-left: 0;
}
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office, .ei-lede, .ei-cta-text, .ei-consult-copy) ul:where(:not([class])) > li {
	position: relative;
	margin: 0;
	padding-left: 26px;
}
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office, .ei-lede, .ei-cta-text, .ei-consult-copy) ul:where(:not([class])) > li + li { margin-top: .5em; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office, .ei-lede, .ei-cta-text, .ei-consult-copy) ul:where(:not([class])) > li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: .68em;
	width: 7px;
	height: 7px;
	background: var(--ei-gold);
	transform: rotate(45deg);
}
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office) ol:where(:not([class])) {
	margin-left: 0;
	padding-left: 1.6em;
}
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office) ol:where(:not([class])) > li { margin: 0; padding-left: .3em; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office) ol:where(:not([class])) > li + li { margin-top: .5em; }
body.efll-sd .efll-inner :is(.ei-prose, .ei-faq-a, .ei-card-text, .ei-bio-body, .ei-office) ol:where(:not([class])) > li::marker {
	color: var(--ei-accent);
	font-family: var(--ei-cond);
	font-weight: 600;
}
body.efll-sd .efll-inner :is(.ei-prose, .ei-bio-body) blockquote {
	margin-inline: 0;
	padding: 4px 0 4px 22px;
	border: 0;
	border-left: 2px solid var(--ei-gold);
	background: none;
	color: var(--ei-head);
	font-family: var(--ei-accent-face);
	font-style: italic;
	font-size: 1.3em;
	line-height: 1.45;
}
body.efll-sd .efll-inner .ei-prose hr {
	height: 1px;
	margin-block: 2em;
	border: 0;
	background: var(--ei-rule);
}
body.efll-sd .efll-inner .ei-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: .94em;
}
body.efll-sd .efll-inner .ei-prose :is(th, td) {
	padding: 10px 12px;
	border: 0;
	border-bottom: 1px solid var(--ei-line);
	text-align: left;
	vertical-align: top;
}
body.efll-sd .efll-inner .ei-prose th {
	color: var(--ei-head);
	font-family: var(--ei-cond);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
body.efll-sd .efll-inner .ei-prose img { display: block; border-radius: 2px; }

/* =============================================================================================
 * 7. Split, media
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
	align-items: center;
}
body.efll-sd .efll-inner .ei-split > * { min-width: 0; margin: 0; }
body.efll-sd .efll-inner .ei-split-main > * { margin: 0; }
body.efll-sd .efll-inner .ei-split-main > * + * { margin-top: 22px; }
body.efll-sd .efll-inner .ei-split-main > .ei-actions { margin-top: 30px; }
body.efll-sd .efll-inner .ei-split-main .ei-h2 { font-size: clamp(28px, 3.3vw, 44px); }
body.efll-sd .efll-inner .ei-split-media > * { margin: 0; }
body.efll-sd .efll-inner .ei-split-media > * + * { margin-top: 20px; }
@media (min-width: 960px) {
	body.efll-sd .efll-inner .ei-split {
		grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
		gap: 72px;
	}
	body.efll-sd .efll-inner .ei-split.ei-split--rev { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
	body.efll-sd .efll-inner .ei-split.ei-split--rev > .ei-split-media { order: -1; }
}

body.efll-sd .efll-inner .ei-media {
	position: relative;
	display: block;
	margin: 0;
	padding: 0;
}
body.efll-sd .efll-inner .ei-media img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	border-radius: 2px;
	box-shadow: 0 40px 80px -40px rgba(3, 7, 13, .75);
}
body.efll-sd .efll-inner .ei-media a { display: block; }
/* Draft E corner bracket */
body.efll-sd .efll-inner .ei-media::before {
	content: "";
	position: absolute;
	z-index: 1;
	left: -10px;
	top: -10px;
	width: 88px;
	height: 88px;
	border-left: 2px solid var(--ei-gold);
	border-top: 2px solid var(--ei-gold);
	pointer-events: none;
}
body.efll-sd .efll-inner .ei-media figcaption {
	margin-top: 12px;
	color: var(--ei-muted);
	font-size: 14px;
	line-height: 1.5;
}

/* =============================================================================================
 * 8. Card grids
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	margin-left: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 640px) {
	body.efll-sd .efll-inner :is(.ei-grid--2, .ei-grid--3, .ei-grid--4) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body.efll-sd .efll-inner .ei-grid--2 { gap: 28px; }
}
@media (min-width: 1100px) {
	body.efll-sd .efll-inner .ei-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
}
body.efll-sd .efll-inner .ei-grid > * { min-width: 0; margin: 0; }

body.efll-sd .efll-inner .ei-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 30px 26px 28px;
	border: 1px solid var(--ei-card-line);
	border-top: 2px solid var(--ei-rule);
	border-radius: 2px;
	background: var(--ei-card-bg);
	color: var(--ei-fg);
}
body.efll-sd .efll-inner .ei-grid--4 .ei-card { padding: 26px 22px 24px; }
body.efll-sd .efll-inner .ei-card > * { margin: 0; }
body.efll-sd .efll-inner .ei-card-media { line-height: 0; }
body.efll-sd .efll-inner .ei-card-media img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: 2px;
}
body.efll-sd .efll-inner .ei-card-media :is(i, svg, .elementor-icon) {
	color: var(--ei-accent);
	fill: var(--ei-accent);
	font-size: 34px;
	line-height: 1;
}
body.efll-sd .efll-inner .ei-card-media svg { width: 36px; height: 36px; }
body.efll-sd .efll-inner .ei-card-title {
	margin: 0;
	color: var(--ei-head);
	font-family: var(--ei-display);
	font-weight: 600;
	font-size: clamp(19px, 1.7vw, 22px);
	line-height: 1.25;
	letter-spacing: .005em;
	text-transform: none;
}
body.efll-sd .efll-inner .ei-card-title a { color: inherit; text-decoration: none; }
body.efll-sd .efll-inner .ei-card-text { color: var(--ei-fg); font-size: 16px; line-height: 1.7; }
body.efll-sd .efll-inner .ei-card-text > * + * { margin-top: .8em; }
body.efll-sd .efll-inner a.ei-card-link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	min-height: 44px;
	margin-top: auto;
	padding-top: 6px;
	color: var(--ei-head);
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: underline;
	text-decoration-color: var(--ei-gold);
	text-decoration-thickness: 1px;
	text-underline-offset: .5em;
}
body.efll-sd .efll-inner a.ei-card-link::after { content: "\2192"; color: var(--ei-accent); letter-spacing: 0; }
body.efll-sd .efll-inner a.ei-card-link:hover { color: var(--ei-link-hover); }
/* whole card clickable when its only link is the card link / title link (stretched link) */
body.efll-sd .efll-inner .ei-card:has(> a.ei-card-link):not(:has(.ei-card-text a, .ei-card-title a, .ei-card-media a)) > a.ei-card-link::before,
body.efll-sd .efll-inner .ei-card:has(.ei-card-title a):not(:has(.ei-card-text a, a.ei-card-link, .ei-card-media a)) .ei-card-title a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
body.efll-sd .efll-inner a.ei-card {
	text-decoration: none;
}
@media (prefers-reduced-motion: no-preference) {
	body.efll-sd .efll-inner .ei-card { transition: border-color .25s ease, transform .35s var(--ei-ease), box-shadow .35s var(--ei-ease); }
}
body.efll-sd .efll-inner :is(a.ei-card, .ei-card:has(a.ei-card-link, .ei-card-title a)):hover {
	border-top-color: var(--ei-gold);
	box-shadow: 0 26px 50px -34px rgba(3, 7, 13, .55);
}
@media (prefers-reduced-motion: no-preference) {
	body.efll-sd .efll-inner :is(a.ei-card, .ei-card:has(a.ei-card-link, .ei-card-title a)):hover { transform: translateY(-3px); }
}

/* =============================================================================================
 * 9. Checklist, steps
 * ============================================================================================= */
body.efll-sd .efll-inner ul.ei-checks,
body.efll-sd .efll-inner .ei-checks {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 900px) {
	body.efll-sd .efll-inner .ei-checks:has(> li:nth-child(6)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.efll-sd .efll-inner :is(.ei-split-main, .ei-card, .ei-consult-copy, .ei-hero-aside, .ei-bio-body) .ei-checks { grid-template-columns: minmax(0, 1fr); }
}
body.efll-sd .efll-inner .ei-checks > li {
	position: relative;
	margin: 0;
	padding: 0 0 0 36px;
	color: var(--ei-fg);
	line-height: 1.6;
	list-style: none;
}
body.efll-sd .efll-inner .ei-checks > li::marker { content: none; }
body.efll-sd .efll-inner .ei-checks > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .1em;
	width: 22px;
	height: 22px;
	border: 1px solid var(--ei-rule);
	border-radius: 50%;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%239c7411' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-size: 16px 16px;
	background-position: center;
	background-repeat: no-repeat;
}
/* bright gold check on dark surfaces (the base rule above draws the deeper gold used on light) */
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-hero, .ei-cta, .ei-consult) .ei-checks > li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23d4a72c' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
body.efll-sd .efll-inner .ei-checks > li > :is(p, div) { margin: 0; }

body.efll-sd .efll-inner ol.ei-steps,
body.efll-sd .efll-inner .ei-steps {
	counter-reset: ei-step;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 40px 48px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.efll-sd .efll-inner .ei-steps > li {
	counter-increment: ei-step;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.efll-sd .efll-inner .ei-steps > li::marker { content: none; }
body.efll-sd .efll-inner .ei-steps > li::before {
	content: counter(ei-step, upper-roman);
	display: block;
	padding-bottom: 16px;
	border-bottom: 1px solid transparent;
	border-image: linear-gradient(90deg, var(--ei-gold), rgba(212, 167, 44, 0)) 1;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--ei-gold);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: clamp(64px, 7vw, 104px);
	line-height: .85;
}
@supports not (-webkit-text-stroke: 1px #000) {
	body.efll-sd .efll-inner .ei-steps > li::before { color: var(--ei-accent); }
}
body.efll-sd .efll-inner .ei-steps > li > * { margin: 0; }
body.efll-sd .efll-inner .ei-steps > li > :is(h3, h4) {
	color: var(--ei-head);
	font-family: var(--ei-display);
	font-weight: 600;
	font-size: clamp(20px, 2vw, 24px);
	line-height: 1.22;
	letter-spacing: .005em;
	text-transform: none;
}
body.efll-sd .efll-inner .ei-steps > li > div { color: var(--ei-fg); line-height: 1.7; }
body.efll-sd .efll-inner .ei-steps > li > div > * { margin: 0; }
body.efll-sd .efll-inner .ei-steps > li > div > * + * { margin-top: .8em; }

/* =============================================================================================
 * 10. Stats, results (Cinzel gold figures)
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 28px 24px;
	margin: 0;
}
body.efll-sd .efll-inner .ei-stat {
	display: flex;
	flex-direction: column;
	flex: 1 1 140px;
	gap: 8px;
	max-width: 100%; /* no min-width:0 - a long figure widens its cell (flex wraps) rather than overlapping */
	margin: 0;
	padding-left: 18px;
	border-left: 1px solid var(--ei-rule);
}
body.efll-sd .efll-inner .ei-stat-num {
	margin: 0;
	color: var(--ei-accent);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: clamp(32px, 3.6vw, 52px);
	line-height: 1;
	letter-spacing: .01em;
	white-space: nowrap;
	font-variant-numeric: lining-nums;
}
@media (max-width: 479.98px) {
	body.efll-sd .efll-inner .ei-stat-num { white-space: normal; overflow-wrap: anywhere; }
}
body.efll-sd .efll-inner .ei-hero-aside .ei-stat-num { font-size: clamp(28px, 2.6vw, 40px); }
body.efll-sd .efll-inner .ei-stat-label {
	margin: 0;
	color: var(--ei-muted);
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 14px;
	line-height: 1.35;
	letter-spacing: .18em;
	text-transform: uppercase;
}

body.efll-sd .efll-inner .ei-results {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 40px;
	margin: 0;
	border-top: 1px solid var(--ei-rule);
}
@media (min-width: 560px) {
	body.efll-sd .efll-inner .ei-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
	body.efll-sd .efll-inner .ei-results { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
	body.efll-sd .efll-inner .ei-results:has(> .ei-result:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
body.efll-sd .efll-inner .ei-result {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 26px 0 24px;
	border-bottom: 1px solid var(--ei-line);
}
body.efll-sd .efll-inner .ei-result-amt {
	margin: 0;
	color: var(--ei-accent);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: clamp(28px, 2.8vw, 38px);
	line-height: 1.05;
	letter-spacing: .01em;
	font-variant-numeric: lining-nums;
	overflow-wrap: anywhere;
}
body.efll-sd .efll-inner .ei-result-text {
	margin: 0;
	color: var(--ei-muted);
	font-size: 15px;
	line-height: 1.6;
}
body.efll-sd .efll-inner .ei-result-text > * { margin: 0; }
body.efll-sd .efll-inner .ei-result-text :is(strong, b) { color: var(--ei-head); }

/* =============================================================================================
 * 11. Quote / testimonial
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-quote {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
	padding: 58px 0 0;
	border: 0;
	background: none;
}
body.efll-sd .efll-inner .ei-quote::before {
	content: "\201C";
	position: absolute;
	left: -4px;
	top: 0;
	height: 70px;
	color: var(--ei-gold);
	font-family: var(--ei-accent-face);
	font-size: 150px;
	line-height: .82;
	pointer-events: none;
}
body.efll-sd .efll-inner .ei-quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ei-head);
	font-family: var(--ei-accent-face);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(22px, 2.2vw, 29px);
	line-height: 1.38;
	quotes: none;
}
body.efll-sd .efll-inner .ei-quote blockquote::before,
body.efll-sd .efll-inner .ei-quote blockquote::after { content: none; }
body.efll-sd .efll-inner .ei-quote blockquote > * { margin: 0; font: inherit; color: inherit; }
body.efll-sd .efll-inner .ei-quote blockquote > * + * { margin-top: .6em; }
body.efll-sd .efll-inner .ei-quote figcaption {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	color: var(--ei-eyebrow);
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: .22em;
	text-transform: uppercase;
}
body.efll-sd .efll-inner .ei-quote figcaption::before {
	content: "";
	flex: 0 0 32px;
	height: 1px;
	background: var(--ei-gold);
}
/* a single quote standing alone in a section reads as a centred pull-quote */
body.efll-sd .efll-inner .ei-wrap > .ei-quote:only-child,
body.efll-sd .efll-inner .ei-sec-head + .ei-quote:last-child {
	max-width: 900px;
}

/* =============================================================================================
 * 12. FAQ (<details>, no JS)
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-faq {
	max-width: 920px;
	margin: 0;
	border-top: 1px solid var(--ei-rule);
}
body.efll-sd .efll-inner .ei-faq-item {
	margin: 0;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--ei-line);
	background: none;
}
body.efll-sd .efll-inner .ei-faq-item > summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 64px;
	margin: 0;
	padding: 18px 0;
	list-style: none;
	color: var(--ei-head);
	font-family: var(--ei-body);
	font-weight: 600;
	font-size: 18px;
	line-height: 1.4;
	cursor: pointer;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-faq-item > summary { font-size: 19px; padding: 22px 0; }
}
body.efll-sd .efll-inner .ei-faq-item > summary::-webkit-details-marker { display: none; }
body.efll-sd .efll-inner .ei-faq-item > summary::marker { content: ""; }
body.efll-sd .efll-inner .ei-faq-item > summary > * { margin: 0; font: inherit; color: inherit; text-transform: none; letter-spacing: 0; }
/* +/- indicator: two bars; the vertical one collapses when open */
body.efll-sd .efll-inner .ei-faq-item > summary::after {
	content: "";
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border: 1px solid var(--ei-rule);
	border-radius: 2px;
	background:
		linear-gradient(var(--ei-accent), var(--ei-accent)) center / 14px 2px no-repeat,
		linear-gradient(var(--ei-accent), var(--ei-accent)) center / 2px 14px no-repeat;
}
body.efll-sd .efll-inner .ei-faq-item[open] > summary::after {
	border-color: var(--ei-gold);
	background:
		linear-gradient(var(--ei-accent), var(--ei-accent)) center / 14px 2px no-repeat,
		linear-gradient(var(--ei-accent), var(--ei-accent)) center / 2px 0 no-repeat;
}
body.efll-sd .efll-inner .ei-faq-item > summary:hover,
body.efll-sd .efll-inner .ei-faq-item[open] > summary { color: var(--ei-link-hover); }
body.efll-sd .efll-inner .ei-faq-item > summary:focus-visible { box-shadow: 0 0 0 6px rgba(212, 167, 44, .6); }
body.efll-sd .efll-inner .ei-faq-a {
	padding: 0 0 26px;
	color: var(--ei-fg);
	font-size: 17px;
	line-height: 1.75;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-faq-a { padding-right: 56px; }
}

/* =============================================================================================
 * 13. CTA band
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-cta {
	overflow: hidden;
	isolation: isolate;
	background-image:
		radial-gradient(ellipse 70% 90% at 50% 0%, rgba(212, 167, 44, .13) 0%, rgba(5, 11, 20, 0) 62%),
		radial-gradient(ellipse 60% 80% at 50% 100%, rgba(42, 68, 103, .45) 0%, rgba(5, 11, 20, 0) 70%);
	border-top: 1px solid rgba(212, 167, 44, .45);
	text-align: center;
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-cta { padding-block: 104px; }
}
body.efll-sd .efll-inner .ei-cta > .ei-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 980px;
}
body.efll-sd .efll-inner .ei-cta > .ei-wrap > * + * { margin-top: 22px; }
body.efll-sd .efll-inner .ei-cta .ei-h2 { font-size: clamp(30px, 4.4vw, 58px); line-height: 1.06; }
body.efll-sd .efll-inner .ei-cta-text {
	max-width: 720px;
	color: var(--ei-fg);
	font-size: 18px;
	line-height: 1.65;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-cta-text { font-size: 19px; }
}
body.efll-sd .efll-inner .ei-cta .ei-actions { justify-content: center; }
body.efll-sd .efll-inner .ei-cta > .ei-wrap > .ei-actions { margin-top: 34px; }
body.efll-sd .efll-inner .ei-cta .ei-raw { width: 100%; text-align: left; }

/* =============================================================================================
 * 14. Consult panel (copy + WPForms)
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-consult {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	margin: 0;
	padding: 32px 20px;
	border: 1px solid #1c2b40;
	border-top: 2px solid var(--ei-gold);
	border-radius: 2px;
	background: #0e1a2b;
	color: var(--ei-fg);
	box-shadow: 0 50px 90px -50px rgba(3, 7, 13, .6);
}
@media (min-width: 640px) {
	body.efll-sd .efll-inner .ei-consult { padding: 44px 40px; }
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-consult {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		gap: 64px;
		padding: 56px;
	}
}
/* inside a dark band the panel steps one shade darker so it still reads as a panel */
body.efll-sd .efll-inner .ei-sec--dark .ei-consult { background: #08111d; }
body.efll-sd .efll-inner .ei-sec--dark + .ei-sec--dark .ei-consult { background: #0e1a2b; }
body.efll-sd .efll-inner .ei-consult-copy,
body.efll-sd .efll-inner .ei-consult-form { min-width: 0; margin: 0; }
body.efll-sd .efll-inner .ei-consult-copy > * { margin: 0; }
body.efll-sd .efll-inner .ei-consult-copy > * + * { margin-top: 16px; }
body.efll-sd .efll-inner .ei-consult-copy :is(h2, h3):where(:not(.ei-h2)) {
	font-size: clamp(28px, 3.4vw, 44px);
	line-height: 1.06;
}
body.efll-sd .efll-inner .ei-consult-copy .ei-h2 { font-size: clamp(28px, 3.4vw, 46px); }
/* a tel: link standing on its own in the copy (direct child, or alone in a <p> with no other
 * element) becomes the Draft E big gold number; tel links inside a sentence stay normal links */
body.efll-sd .efll-inner .ei-consult-copy > a[href^="tel:"]:where(:not([class*="ei-btn"])) {
	display: inline-block;
	color: var(--ei-gold);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: clamp(26px, 3vw, 36px);
	line-height: 1.2;
	padding-block: 2px; /* 44px target */
	text-decoration: none;
}
body.efll-sd .efll-inner .ei-consult-copy > a[href^="tel:"]:where(:not([class*="ei-btn"])):hover { color: var(--ei-gold-hi); }
body.efll-sd .efll-inner .ei-consult-form > .ei-raw { margin: 0; }

/* ---- WPForms #1000 inside the consult panel = Draft E .eh-form-full on dark ----------------------
 * !important: the eael-wpforms widget emits per-widget rules (.elementor-NNN .elementor-element-xxx
 * .eael-wpforms ..., 0-5-x) and WPForms modern ships its own field CSS; this mirrors home.css .eh-form,
 * which is proven on the live homepage with the same form. Layout/position of the honeypot field is
 * never touched (no display/position rules on .wpforms-field). */
body.efll-sd .efll-inner .ei-consult-form :is(.eael-contact-form, .eael-wpforms) {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-container {
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	background: none !important;
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-field-container {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
}
@media (min-width: 560px) {
	body.efll-sd .efll-inner .ei-consult-form .wpforms-field-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.efll-sd .efll-inner .ei-consult-form :is(.wpforms-field-name, .wpforms-field-textarea, .wpforms-field-checkbox, .wpforms-field-radio, .wpforms-field-select, .wpforms-field-html, .wpforms-field-gdpr-checkbox) { grid-column: 1 / -1; }
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-field {
	padding: 0 !important;
	margin: 0 !important;
	width: auto !important;
	max-width: none !important;
	float: none !important;
	clear: none !important;
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-field-label,
body.efll-sd .efll-inner .ei-consult-form .wpforms-field-sublabel {
	display: block;
	margin: 0 0 5px !important;
	color: #d9e0ea !important;
	font: 600 13px/1.4 "Barlow", system-ui, sans-serif !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-field-sublabel { font-weight: 400 !important; color: #9fb0c6 !important; margin: 4px 0 0 !important; }
body.efll-sd .efll-inner .ei-consult-form .wpforms-required-label { color: #e6c25a !important; }
body.efll-sd .efll-inner .ei-consult-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], select, textarea) {
	width: 100% !important;
	max-width: none !important;
	min-height: 46px !important;
	height: auto !important;
	margin: 0 !important;
	padding: 11px 12px !important;
	border: 1px solid rgba(255, 255, 255, .26) !important;
	border-radius: 2px !important;
	background: rgba(255, 255, 255, .06) !important;
	color: #ffffff !important;
	font: 400 16px/1.4 "Barlow", system-ui, sans-serif !important;
	box-shadow: none !important;
}
body.efll-sd .efll-inner .ei-consult-form select option { color: #08111d; background: #ffffff; }
body.efll-sd .efll-inner .ei-consult-form :is(input, textarea)::placeholder { color: #7f91a8 !important; opacity: 1; }
body.efll-sd .efll-inner .ei-consult-form :is(input, select, textarea):focus {
	border-color: #d4a72c !important;
	outline: 2px solid rgba(212, 167, 44, .45) !important;
	outline-offset: 0 !important;
}
body.efll-sd .efll-inner .ei-consult-form textarea { min-height: 120px !important; resize: vertical; }
body.efll-sd .efll-inner .ei-consult-form .wpforms-recaptcha-container { margin: 16px 0 0 !important; padding: 0 !important; }
body.efll-sd .efll-inner .ei-consult-form .wpforms-submit-container {
	margin: 18px 0 0 !important;
	padding: 0 !important;
	text-align: left !important;
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-submit {
	width: auto !important;
	min-height: 50px !important;
	height: auto !important;
	margin: 0 !important;
	padding: 15px 34px !important;
	border: 0 !important;
	border-radius: 2px !important;
	background: #d4a72c !important;
	color: #08111d !important;
	font: 600 18px/1 "Barlow Condensed", "Arial Narrow", sans-serif !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
	cursor: pointer;
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-submit:is(:hover, :active) { background: #e6c25a !important; color: #08111d !important; }
body.efll-sd .efll-inner .ei-consult-form .wpforms-submit:focus-visible {
	outline: 2px solid #ffffff !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px rgba(212, 167, 44, .6) !important;
}
@media (max-width: 479.98px) {
	body.efll-sd .efll-inner .ei-consult-form .wpforms-submit { width: 100% !important; }
}
body.efll-sd .efll-inner .ei-consult-form :is(label.wpforms-error, em.wpforms-error, .wpforms-error-container) {
	color: #ffb4a2 !important;
	font-size: 13px !important;
	background: none !important;
}
body.efll-sd .efll-inner .ei-consult-form :is(input, textarea, select).wpforms-error { border-color: #ffb4a2 !important; }
body.efll-sd .efll-inner .ei-consult-form .wpforms-confirmation-container-full {
	margin: 0 !important;
	padding: 18px 20px !important;
	border: 1px solid #d4a72c !important;
	border-radius: 2px !important;
	background: #13243a !important;
	color: #ffffff !important;
}
body.efll-sd .efll-inner .ei-consult-form .wpforms-confirmation-container-full * { color: inherit !important; }

/* =============================================================================================
 * 15. Team, bio
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-team {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px 16px;
	margin: 0;
}
@media (min-width: 768px) {
	body.efll-sd .efll-inner .ei-team { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
}
@media (min-width: 1100px) {
	body.efll-sd .efll-inner .ei-team { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
body.efll-sd .efll-inner .ei-person {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	margin: 0;
	color: var(--ei-head);
	text-decoration: none;
}
body.efll-sd .efll-inner .ei-person-photo {
	display: block;
	margin: 0 0 10px;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: #13243a;
	line-height: 0;
}
body.efll-sd .efll-inner .ei-person-photo img,
body.efll-sd .efll-inner img.ei-person-photo {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 20%;
	border-radius: 0;
	filter: grayscale(1) contrast(1.06) brightness(.94);
}
body.efll-sd .efll-inner img.ei-person-photo { aspect-ratio: 4 / 5; height: auto; }
@media (prefers-reduced-motion: no-preference) {
	body.efll-sd .efll-inner :is(.ei-person-photo img, img.ei-person-photo) { transition: filter .5s ease, transform .8s var(--ei-ease); }
}
body.efll-sd .efll-inner .ei-person:is(:hover, :focus-visible) :is(.ei-person-photo img, img.ei-person-photo) { filter: none; }
@media (prefers-reduced-motion: no-preference) {
	body.efll-sd .efll-inner .ei-person:hover :is(.ei-person-photo img, img.ei-person-photo) { transform: scale(1.03); }
}
body.efll-sd .efll-inner .ei-person-name {
	display: block;
	margin: 0;
	color: var(--ei-head);
	font-family: var(--ei-display);
	font-weight: 600;
	font-size: clamp(17px, 1.6vw, 21px);
	line-height: 1.2;
	text-transform: none;
}
body.efll-sd .efll-inner .ei-person:hover .ei-person-name { color: var(--ei-link-hover); }
body.efll-sd .efll-inner .ei-person-role {
	display: block;
	margin: 0;
	color: var(--ei-eyebrow);
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 13px;
	line-height: 1.35;
	letter-spacing: .2em;
	text-transform: uppercase;
}

body.efll-sd .efll-inner .ei-bio {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
	align-items: start;
	margin: 0;
}
@media (min-width: 900px) {
	body.efll-sd .efll-inner .ei-bio { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; }
}
body.efll-sd .efll-inner .ei-bio-photo {
	position: relative;
	min-width: 0;
	max-width: 520px;
	margin: 0;
	padding: 0 20px 20px 0;
}
body.efll-sd .efll-inner .ei-bio-photo::before {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 82%;
	height: 86%;
	border: 1px solid var(--ei-gold);
	pointer-events: none;
}
body.efll-sd .efll-inner .ei-bio-photo img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
	box-shadow: 0 40px 80px -40px rgba(3, 7, 13, .7);
}
@media (min-width: 900px) {
	body.efll-sd .efll-inner .ei-bio-photo { position: sticky; top: 24px; }
}
body.efll-sd .efll-inner .ei-bio-body {
	min-width: 0;
	color: var(--ei-fg);
	font-size: 17px;
	line-height: 1.75;
}
@media (min-width: 1024px) {
	body.efll-sd .efll-inner .ei-bio-body { font-size: 18px; }
}

/* =============================================================================================
 * 16. Offices
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-offices {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
	gap: 1px;
	margin: 0;
	padding: 1px;
}
body.efll-sd .efll-inner .ei-office {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 30px 26px;
	outline: 1px solid var(--ei-line); /* outlines of neighbours share the 1px gap = single hairline grid */
	background: var(--ei-bg);
	color: var(--ei-fg);
	font-size: 16px;
	line-height: 1.6;
	font-style: normal;
}
body.efll-sd .efll-inner :is(.ei-sec--light) .ei-office { background: #ffffff; }
body.efll-sd .efll-inner .ei-office > * { margin: 0; }
body.efll-sd .efll-inner .ei-office :is(h2, h3, h4) {
	color: var(--ei-head);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: 23px;
	line-height: 1.2;
	letter-spacing: .005em;
	text-transform: none;
}
body.efll-sd .efll-inner .ei-office :is(h2, h3, h4) a { color: inherit; text-decoration: none; }
body.efll-sd .efll-inner .ei-office :is(h5, h6) {
	color: var(--ei-eyebrow);
	font-size: 13px;
	letter-spacing: .26em;
}

/* =============================================================================================
 * 17. Raw pass-through (Elementor widgets kept as rendered)
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-raw {
	display: block;
	width: 100%;
	min-width: 0;
	max-width: 100%;
}
body.efll-sd .efll-inner .ei-raw iframe { max-width: 100%; }
body.efll-sd .efll-inner .ei-raw .elementor-widget:last-child { margin-block-end: 0; }

/* Carousels on dark surfaces: slides become light cards (the office/team cards inside were built for
 * light sections; navy headings must not land on navy) and the swiper chrome is lightened. */
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-hero, .ei-cta, .ei-consult) .ei-raw :is(.bdt-ep-review-card-carousel-item, .elementor-testimonial-wrapper, .eael-testimonial-item, .wpr-testimonial-item) {
	background-color: #ffffff;
	color: #33475f;
	border-radius: 2px;
}
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-hero, .ei-cta, .ei-consult) .ei-raw .swiper-pagination-bullet {
	background: #9fb0c6;
	opacity: .55;
}
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-hero, .ei-cta, .ei-consult) .ei-raw .swiper-pagination-bullet-active {
	background: #d4a72c;
	opacity: 1;
}
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-hero, .ei-cta, .ei-consult) .ei-raw :is(.bdt-navigation-prev, .bdt-navigation-next, .elementor-swiper-button, .swiper-button-prev, .swiper-button-next) {
	color: #ffffff;
	fill: #ffffff;
}
/* WPForms outside the consult panel but on a dark band: switch WPForms' own label vars to light
 * (vars only - widget-specific colours still win, nothing else inside the widget changes). */
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-cta) .ei-raw div.wpforms-container:not(.ei-consult *) {
	--wpforms-label-color: #d9e0ea;
	--wpforms-label-sublabel-color: #9fb0c6;
	--wpforms-label-error-color: #ffb4a2;
}

/* =============================================================================================
 * 18. Motion
 * ============================================================================================= */
@media (prefers-reduced-motion: no-preference) {
	body.efll-sd .efll-inner :is(.ei-btn, .ei-card-link, .ei-person-name, .ei-faq-item > summary, .ei-prose a, .ei-office a) {
		transition: color .2s ease, background-color .2s ease, border-color .2s ease, text-decoration-color .2s ease;
	}
}
@media (prefers-reduced-motion: reduce) {
	body.efll-sd .efll-inner *,
	body.efll-sd .efll-inner *::before,
	body.efll-sd .efll-inner *::after {
		transition: none;
		animation: none;
	}
}

/* =============================================================================================
 * 19. Print: drop the dark bands so pages print legibly
 * ============================================================================================= */
@media print {
	/* !important: print-only override of the band backgrounds */
	body.efll-sd .efll-inner :is(.ei-sec, .ei-hero, .ei-cta, .ei-consult) {
		background: #ffffff !important;
		color: #000000 !important;
		--ei-fg: #000000;
		--ei-head: #000000;
		--ei-muted: #333333;
	}
}

/* =============================================================================================
 * Icons and small graphics (composer adds --icon when the image is a small PNG/SVG, not a photo).
 * Keeps 100-512px icon files from stretching to the full card or column width.
 * ============================================================================================= */
body.efll-sd .efll-inner .ei-card-media.ei-card-media--icon {
	margin: 0 0 4px;
	line-height: 0;
}
body.efll-sd .efll-inner .ei-card-media.ei-card-media--icon img {
	display: block;
	width: 64px;
	height: 64px;
	max-width: 64px;
	object-fit: contain;
	border-radius: 0;
	box-shadow: none;
}
body.efll-sd .efll-inner .ei-media.ei-media--icon {
	width: auto;
	max-width: 112px;
}
body.efll-sd .efll-inner .ei-media.ei-media--icon::before { display: none; }
body.efll-sd .efll-inner .ei-media.ei-media--icon img {
	width: 112px;
	height: 112px;
	max-width: 100%;
	object-fit: contain;
	border-radius: 0;
	box-shadow: none;
}
body.efll-sd .efll-inner .ei-split-media:has(> .ei-media--icon:only-child) { align-self: center; }
@media (max-width: 767px) {
	body.efll-sd .efll-inner .ei-card-media.ei-card-media--icon img { width: 56px; height: 56px; max-width: 56px; }
	body.efll-sd .efll-inner .ei-media.ei-media--icon,
	body.efll-sd .efll-inner .ei-media.ei-media--icon img { width: 88px; height: auto; max-width: 88px; }
}

/* =============================================================================================
 * Icon styles (approved Oct 8): icon card grids are numbered 01/02/03 (C); lone icons, contact
 * groups and anything that is not a one-colour icon sit in a thin gold frame (B). One-colour
 * icons are redrawn from their own file in the section's gold via --ei-icon (set by composer).
 * ============================================================================================= */
/* -- B · framed -- */
body.efll-sd .efll-inner .ei-icon--frame {
	position: relative;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	max-width: none;
	margin: 0 0 12px;
	padding: 0;
	line-height: 0;
	border: 1px solid var(--ei-rule);
	background: color-mix(in srgb, var(--ei-accent) 7%, transparent);
}
body.efll-sd .efll-inner .ei-media.ei-icon--frame { width: 96px; height: 96px; }
body.efll-sd .efll-inner .ei-icon--frame::before,
body.efll-sd .efll-inner .ei-media.ei-media--icon.ei-icon--frame::before {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	left: -5px;
	top: -5px;
	width: 18px;
	height: 18px;
	border-left: 2px solid var(--ei-accent);
	border-top: 2px solid var(--ei-accent);
	pointer-events: none;
}
body.efll-sd .efll-inner .ei-card-media.ei-card-media--icon.ei-icon--frame img { width: 34px; height: 34px; max-width: 34px; object-fit: contain; }
body.efll-sd .efll-inner .ei-card-media.ei-card-media--icon.ei-icon--frame:not(.ei-icon--mono) img { width: 50px; height: 50px; max-width: 50px; }
body.efll-sd .efll-inner .ei-media.ei-media--icon.ei-icon--frame img { width: 52px; height: 52px; max-width: 52px; object-fit: contain; box-shadow: none; }
body.efll-sd .efll-inner .ei-media.ei-media--icon.ei-icon--frame:not(.ei-icon--mono) img { width: 76px; height: 76px; max-width: 76px; }
body.efll-sd .efll-inner .ei-icon--frame.ei-icon--mono img { opacity: 0; }
body.efll-sd .efll-inner .ei-icon--frame.ei-icon--mono::after {
	content: "";
	position: absolute;
	inset: 15px;
	pointer-events: none;
	background: var(--ei-accent);
	-webkit-mask: var(--ei-icon) center / contain no-repeat;
	mask: var(--ei-icon) center / contain no-repeat;
}
body.efll-sd .efll-inner .ei-media.ei-icon--frame.ei-icon--mono::after { inset: 22px; }

/* -- C · numbered -- */
body.efll-sd .efll-inner .ei-grid--num { counter-reset: ei-card; }
body.efll-sd .efll-inner .ei-grid--num > .ei-card { counter-increment: ei-card; }
body.efll-sd .efll-inner .ei-icon--num {
	position: relative;
	width: auto;
	height: auto;
	margin: 0 0 16px;
	padding: 0 0 14px;
	line-height: 1;
	border-bottom: 1px solid var(--ei-rule);
}
body.efll-sd .efll-inner .ei-icon--num img {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	max-width: 1px !important;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	opacity: 0;
}
body.efll-sd .efll-inner .ei-icon--num::after {
	content: counter(ei-card, decimal-leading-zero);
	display: block;
	color: var(--ei-accent);
	font-family: var(--ei-display);
	font-weight: 600;
	font-size: clamp(34px, 3vw, 44px);
	line-height: 1;
	letter-spacing: .02em;
}
@media (max-width: 767px) {
	body.efll-sd .efll-inner .ei-icon--frame { width: 56px; height: 56px; }
	body.efll-sd .efll-inner .ei-media.ei-icon--frame { width: 80px; height: 80px; max-width: 80px; }
	body.efll-sd .efll-inner .ei-card-media.ei-card-media--icon.ei-icon--frame img { width: 30px; height: 30px; max-width: 30px; }
	body.efll-sd .efll-inner .ei-media.ei-media--icon.ei-icon--frame img { width: 44px; height: 44px; max-width: 44px; }
	body.efll-sd .efll-inner .ei-icon--frame.ei-icon--mono::after { inset: 13px; }
	body.efll-sd .efll-inner .ei-media.ei-icon--frame.ei-icon--mono::after { inset: 18px; }
	body.efll-sd .efll-inner .ei-icon--num::after { font-size: 34px; }
}
/* filled badge icons (glyph on a solid disc): keep the drawing, tone it from orange to brand gold */
body.efll-sd .efll-inner .ei-icon--frame.ei-icon--badge img { filter: grayscale(1) sepia(1) saturate(2.4) hue-rotate(-6deg) brightness(.92); }
body.efll-sd .efll-inner :is(.ei-sec--dark, .ei-hero, .ei-cta, .ei-consult) .ei-icon--frame.ei-icon--badge img { filter: grayscale(1) sepia(1) saturate(2.6) hue-rotate(-4deg) brightness(1.08); }
