/*!
 * EFLL Site Design - V2 attorney profile (team-* bio pages). Markup: includes/v2-team.php.
 *
 *   .ei-pro-hero   dark profile header: portrait in a 300px left rail (hangs into the next band on
 *                  desktop), eyebrow + name + title line(s), the page's buttons and social icons.
 *   .ei-pro-body   paper band: the same left rail holds the "At a glance" panel (sticky), the right
 *                  column holds the biography at a readable measure (~68ch) with a Cinzel drop cap.
 *
 * Every rule is scoped to body.efll-sd.efll-v2 .efll-inner--profile (only the V2 bio composer emits
 * that class), so nothing here can touch another page. Tokens come from inner.css (--ei-*).
 * The social-icons widget is an Elementor pass-through (.ei-raw); its per-widget CSS is 0-4-x, the
 * selectors below are 0-5-x, so no !important is needed.
 */

body.efll-sd.efll-v2 .efll-inner--profile {
	--pro-rail: 300px;
	--pro-gap: 64px;
	--pro-hang: 88px;
}

/* =============================================================================================
 * 1. Profile header
 * ============================================================================================= */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero {
	z-index: 2;
	display: block;
	min-height: 0;
	padding-block: 36px 40px;
	overflow: visible;
	background-image:
		radial-gradient(ellipse 70% 90% at 90% 0%, rgba(42, 68, 103, .5) 0%, rgba(8, 17, 29, 0) 70%),
		linear-gradient(180deg, #050b14 0%, #08111d 100%);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero::after { width: min(420px, 60%); }

body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head {
	display: grid;
	grid-template-columns: 108px minmax(0, 1fr);
	grid-template-areas:
		"photo id"
		"cta   cta";
	align-items: center;
	gap: 26px 20px;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head:not(:has(> .ei-pro-photo)) {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "id" "cta";
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > * { margin: 0; min-width: 0; }

/* portrait: the page's own photo, cropped to a 4:5 frame with a gold hairline offset behind it */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > .ei-pro-photo {
	grid-area: photo;
	position: relative;
	align-self: start;
	aspect-ratio: 4 / 5;
	margin: 0;
	padding: 0;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-photo::before {
	content: "";
	position: absolute;
	inset: 8px -8px -8px 8px;
	border: 1px solid var(--ei-gold);
	pointer-events: none;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-photo img {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 22%;
	border-radius: 0;
	background: #0e1a2b;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-photo a { display: block; height: 100%; }

body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > .ei-pro-id { grid-area: id; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-id > * { margin: 0; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero .ei-eyebrow { margin: 0 0 10px; font-size: 12px; letter-spacing: .3em; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero .ei-h1 {
	max-width: 16ch;
	font-size: clamp(28px, 8vw, 40px);
	line-height: 1.04;
	text-shadow: none;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-roles { margin-top: 12px; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-roles .ei-pro-role {
	margin: 0;
	color: #d9e0ea;
	font-family: var(--ei-cond);
	font-weight: 500;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-roles .ei-pro-role + .ei-pro-role { margin-top: 4px; color: #9fb0c6; }

body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > .ei-pro-cta {
	grid-area: cta;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 24px;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-cta > * { margin: 0; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-cta .ei-actions { flex: 1 1 100%; }

/* social icons (Elementor social-icons widget kept as rendered): quiet hairline squares */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social .ei-raw { width: auto; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social .elementor-widget-container { line-height: 1; font-size: 0; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social .elementor-social-icons-wrapper {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 8px;
	margin: 0;
	padding: 0;
	text-align: left;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social .elementor-grid-item {
	display: block;
	margin: 0;
	padding: 0;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social a.elementor-social-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(217, 224, 234, .24);
	border-radius: 2px;
	background: transparent;
	color: #d9e0ea;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	transition: border-color .2s var(--ei-ease), color .2s var(--ei-ease), background-color .2s var(--ei-ease);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social a.elementor-social-icon svg {
	width: 16px;
	height: 16px;
	max-width: none;
	max-height: none;
	fill: currentColor;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social a.elementor-social-icon:hover {
	border-color: var(--ei-gold);
	background: rgba(212, 167, 44, .08);
	color: var(--ei-gold-hi);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social a.elementor-social-icon:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(212, 167, 44, .6);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-social .elementor-screen-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (min-width: 600px) {
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head { grid-template-columns: 148px minmax(0, 1fr); gap: 28px 32px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero .ei-h1 { font-size: clamp(36px, 6vw, 52px); }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-roles .ei-pro-role { font-size: 16px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-cta .ei-actions { flex: 0 1 auto; }
}

@media (min-width: 900px) {
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero { padding-block: 72px 64px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head {
		grid-template-columns: var(--pro-rail) minmax(0, 1fr);
		grid-template-areas:
			"photo id"
			"photo cta";
		grid-template-rows: 1fr auto;
		align-items: end;
		column-gap: var(--pro-gap);
		row-gap: 32px;
	}
	/* the portrait hangs below the band into the biography rail */
	/* the portrait spans the whole header height and hangs below the band into the biography rail;
	 * its height follows the header (object-fit keeps the crop), its width is the rail */
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > .ei-pro-photo {
		align-self: stretch;
		width: 100%;
		min-height: 360px;
		aspect-ratio: auto;
		margin-bottom: calc(-1 * (var(--pro-hang) + 64px));
	}
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-photo::before { inset: 14px -14px -14px 14px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > .ei-pro-id { align-self: end; padding-top: 24px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero .ei-eyebrow { margin-bottom: 16px; font-size: 14px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero .ei-h1 { font-size: clamp(48px, 5vw, 68px); }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-roles { position: relative; margin-top: 22px; padding-top: 20px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-roles::before {
		content: "";
		position: absolute;
		left: 0;
		top: 0;
		width: 56px;
		height: 2px;
		background: var(--ei-gold);
	}
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-roles .ei-pro-role { font-size: 18px; letter-spacing: .16em; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > .ei-pro-cta { gap: 20px 28px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-cta .ei-actions + .ei-pro-social {
		padding-left: 28px;
		border-left: 1px solid rgba(217, 224, 234, .16);
	}
}

/* =============================================================================================
 * 2. Biography band: glance rail + prose
 * ============================================================================================= */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-body { z-index: 1; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-grid > * { margin: 0; min-width: 0; }

/* the biography: one readable column */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio { max-width: 68ch; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio > * { margin: 0; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio > * + * { margin-top: 24px; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio > .ei-pro-bio-title {
	display: flex;
	align-items: center;
	gap: 16px;
	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;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio > .ei-pro-bio-title::after {
	content: "";
	flex: 1 1 auto;
	max-width: 160px;
	height: 1px;
	background: var(--ei-rule);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio .ei-prose {
	max-width: none;
	color: #33475f;
	font-size: 17px;
	line-height: 1.78;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio .ei-prose strong,
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio .ei-prose b { color: var(--ei-navy); }
/* opening paragraph = the profile's lede, with a Cinzel drop cap */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio > .ei-prose:first-of-type > p:first-child {
	color: var(--ei-navy);
	font-size: 19px;
	line-height: 1.66;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio > .ei-prose:first-of-type > p:first-child::first-letter {
	float: left;
	margin: .08em .12em 0 0;
	color: var(--ei-gold-deep);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: 3.35em;
	line-height: .82;
}
@media (min-width: 1024px) {
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio .ei-prose { font-size: 18px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio > .ei-prose:first-of-type > p:first-child { font-size: 21px; }
}

/* "At a glance" panel */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-glance {
	position: relative;
	padding: 26px 22px 22px;
	border: 1px solid #e1e6ed;
	border-top: 2px solid var(--ei-gold);
	border-radius: 2px;
	background: #f2f4f7;
	color: var(--ei-fg);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-glance > * { margin: 0; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-glance-title {
	color: var(--ei-navy);
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: 20px;
	line-height: 1.2;
	letter-spacing: .02em;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-facts { margin: 14px 0 0; padding: 0; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-fact {
	margin: 0;
	padding: 14px 0;
	border-top: 1px solid #d9e0e8;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-fact:last-child { padding-bottom: 2px; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-fact dt {
	margin: 0 0 6px;
	color: var(--ei-eyebrow);
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 13px;
	line-height: 1.3;
	letter-spacing: .2em;
	text-transform: uppercase;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-fact dd {
	margin: 0;
	padding: 0;
	color: var(--ei-navy);
	font-size: 16px;
	line-height: 1.45;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-fact dd + dd { margin-top: 8px; }
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-fact-main {
	display: block;
	font-weight: 600;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-fact-sub {
	display: block;
	margin-top: 3px;
	color: var(--ei-muted);
	font-size: 14px;
	line-height: 1.45;
}
body.efll-sd.efll-v2 .efll-inner--profile :is(.ei-pro-fact-main, .ei-pro-fact-sub, .ei-pro-tags li)::first-letter { text-transform: uppercase; }
body.efll-sd.efll-v2 .efll-inner--profile ul.ei-pro-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
}
body.efll-sd.efll-v2 .efll-inner--profile ul.ei-pro-tags > li {
	margin: 0;
	padding: 5px 10px;
	border: 1px solid #d5dce5;
	border-radius: 2px;
	background: #ffffff;
	color: var(--ei-navy);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
}
body.efll-sd.efll-v2 .efll-inner--profile ul.ei-pro-tags > li::before { content: none; display: none; }

/* firm phone (shown only when the page already carries a tel: link) */
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-call { margin-top: 18px; }
body.efll-sd.efll-v2 .efll-inner--profile a.ei-pro-call-link {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-height: 44px;
	padding: 14px 18px;
	border-radius: 2px;
	background: #0e1a2b;
	color: #ffffff;
	text-decoration: none;
	transition: background-color .2s var(--ei-ease);
}
body.efll-sd.efll-v2 .efll-inner--profile a.ei-pro-call-link:hover { background: #1b304b; color: #ffffff; }
body.efll-sd.efll-v2 .efll-inner--profile a.ei-pro-call-link:focus-visible {
	outline: 2px solid var(--ei-navy);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(212, 167, 44, .6);
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-call-kicker {
	color: var(--ei-gold-hi);
	font-family: var(--ei-cond);
	font-weight: 600;
	font-size: 12px;
	line-height: 1.3;
	letter-spacing: .24em;
	text-transform: uppercase;
}
body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-call-num {
	color: #ffffff;
	font-family: var(--ei-display);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.2;
	letter-spacing: .02em;
}

@media (min-width: 600px) and (max-width: 899.98px) {
	/* tablet: facts in two columns so the panel stays short */
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-facts {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 28px;
	}
}

@media (min-width: 900px) {
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-grid {
		grid-template-columns: var(--pro-rail) minmax(0, 1fr);
		column-gap: var(--pro-gap);
	}
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-grid--solo { grid-template-columns: minmax(0, 1fr); }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-grid--solo > .ei-pro-bio { margin-left: calc(var(--pro-rail) + var(--pro-gap)); }
	/* the rail starts under the hanging portrait; stays in view while the biography scrolls */
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero:has(.ei-pro-photo) + .ei-pro-body .ei-pro-glance {
		margin-top: calc(var(--pro-hang) - 24px);
	}
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-glance { position: sticky; top: 24px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-bio { padding-top: 4px; }
}
@media (min-width: 900px) and (max-height: 760px) {
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-glance { position: relative; top: auto; }
}

@media (prefers-reduced-motion: reduce) {
	body.efll-sd.efll-v2 .efll-inner--profile :is(a.elementor-social-icon, a.ei-pro-call-link) { transition: none; }
}

@media print {
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-hero > .ei-pro-head > .ei-pro-photo { margin-bottom: 0; max-width: 220px; }
	body.efll-sd.efll-v2 .efll-inner--profile .ei-pro-glance { position: static; }
}
