/**
 * Sterling — Main stylesheet
 *
 * Pure white + deep navy + oxblood. EB Garamond classical serif + IBM
 * Plex Sans. Legal-document composition: square corners, hair rules,
 * margin numerals, small-caps eyebrows.
 */

/* ============================================================
 * 1. Tokens
 * ============================================================ */
:root {
	--sterling-bg:           #FFFFFF;
	--sterling-paper:        #F9F7F2;
	--sterling-stone:        #EFEBE2;
	--sterling-navy:         #14213D;
	--sterling-navy-deep:    #0A1326;
	--sterling-navy-soft:    #2C3B5E;
	--sterling-oxblood:      #6B2D32;
	--sterling-oxblood-deep: #4A1F22;
	--sterling-oxblood-soft: #F0E2E3;
	--sterling-parchment:    #E8DFCC;
	--sterling-ink:          #0A0A0A;
	--sterling-ink-soft:     #2A2A2A;
	--sterling-ink-muted:    #5C5C5C;
	--sterling-ink-subtle:   #8A8A8A;
	--sterling-border:       #D9D4CA;
	--sterling-border-strong:#0A0A0A;
	--sterling-text-inv:     #FFFFFF;

	--sterling-serif: "EB Garamond", "Adobe Garamond Pro", "Cormorant Garamond", "Times New Roman", Georgia, serif;
	--sterling-sans:  "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--sterling-mono:  "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;

	--sterling-ease: cubic-bezier(0.4, 0, 0.2, 1);

	--sterling-container:        1280px;
	--sterling-container-narrow:  720px;
	--sterling-gutter:           2rem;
}

/* ============================================================
 * 2. Reset & base
 * ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; tab-size: 4; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	background: var(--sterling-bg);
	color: var(--sterling-ink);
	font-family: var(--sterling-sans);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img, svg, video, picture { max-width: 100%; display: block; }
img, video { height: auto; }

a { color: var(--sterling-navy); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: var(--sterling-border-strong); transition: color 200ms var(--sterling-ease), text-decoration-color 200ms var(--sterling-ease); }
a:hover, a:focus-visible { color: var(--sterling-oxblood); text-decoration-color: currentColor; }

h1, h2, h3 {
	font-family: var(--sterling-serif);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin: 0 0 0.5em;
	color: var(--sterling-navy);
}
h4, h5 { font-family: var(--sterling-serif); font-weight: 500; line-height: 1.2; margin: 0 0 0.5em; color: var(--sterling-navy); }
h6 { font-family: var(--sterling-sans); font-weight: 500; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; margin: 0 0 1em; color: var(--sterling-ink-muted); }

h1 { font-size: clamp(3rem, 6vw, 5rem); font-weight: 500; letter-spacing: -0.025em; line-height: 1.0; }
h2 { font-size: clamp(2.25rem, 5vw, 3.5rem); font-weight: 500; }
h3 { font-size: clamp(1.625rem, 3vw, 2.5rem); }
h4 { font-size: clamp(1.25rem, 2.5vw, 1.875rem); }

em { font-style: italic; }

p { margin: 0 0 1rem; }

hr { border: 0; height: 1px; background: var(--sterling-border-strong); margin: 3rem 0; }

code, kbd, samp { font-family: var(--sterling-mono); font-size: 0.85em; background: var(--sterling-paper); padding: 0.15em 0.4em; border: 1px solid var(--sterling-border); }
pre { overflow-x: auto; padding: 1.25rem; background: var(--sterling-paper); border: 1px solid var(--sterling-border); font-size: 0.875em; line-height: 1.6; }

blockquote { margin: 2rem 0; padding: 0.5rem 0 0.5rem 1.5rem; border-left: 2px solid var(--sterling-oxblood); font-family: var(--sterling-serif); font-style: italic; font-size: 1.5rem; color: var(--sterling-navy); line-height: 1.4; }

table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
th, td { padding: 0.875rem 1rem; border-bottom: 1px solid var(--sterling-border); text-align: start; }
th { font-family: var(--sterling-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; font-weight: 500; color: var(--sterling-ink-muted); }

:focus-visible { outline: 2px solid var(--sterling-oxblood); outline-offset: 3px; }

::selection { background: var(--sterling-navy); color: var(--sterling-text-inv); }

.sterling-mono { font-family: var(--sterling-mono); }

.sterling-link { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--sterling-navy); font-family: var(--sterling-sans); font-size: 0.8125rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.14em; text-decoration: none; padding-bottom: 2px; border-bottom: 1px solid var(--sterling-navy); }
.sterling-link:hover { color: var(--sterling-oxblood); border-bottom-color: var(--sterling-oxblood); }

/* ============================================================
 * 3. Containers
 * ============================================================ */
.sterling-container { width: 100%; max-width: var(--sterling-container); margin-inline: auto; padding-inline: var(--sterling-gutter); }
.sterling-container--narrow { max-width: var(--sterling-container-narrow); }

/* ============================================================
 * 4. Buttons (squared, restrained — barrister style)
 * ============================================================ */
.sterling-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.875rem 1.625rem;
	border: 1px solid var(--sterling-navy);
	background: var(--sterling-navy);
	color: var(--sterling-text-inv);
	font-family: var(--sterling-sans);
	font-weight: 500;
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: background 200ms var(--sterling-ease), color 200ms var(--sterling-ease), border-color 200ms var(--sterling-ease);
}
.sterling-btn:hover { background: var(--sterling-oxblood); border-color: var(--sterling-oxblood); color: var(--sterling-text-inv); }

.sterling-btn--navy    { background: var(--sterling-navy); color: var(--sterling-text-inv); border-color: var(--sterling-navy); }
.sterling-btn--oxblood { background: var(--sterling-oxblood); color: var(--sterling-text-inv); border-color: var(--sterling-oxblood); }
.sterling-btn--outline { background: transparent; color: var(--sterling-navy); border-color: var(--sterling-navy); }
.sterling-btn--outline:hover { background: var(--sterling-navy); color: var(--sterling-text-inv); }

.sterling-btn--lg { padding: 1rem 2rem; font-size: 0.875rem; }

/* ============================================================
 * 5. Utility bar + header
 * ============================================================ */
.sterling-utility {
	background: var(--sterling-navy);
	color: var(--sterling-text-inv);
	font-family: var(--sterling-sans);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
}
.sterling-utility__inner { display: flex; justify-content: space-between; align-items: center; padding-block: 0.5rem; gap: 1rem; flex-wrap: wrap; }
.sterling-utility__text { margin: 0; text-transform: uppercase; }
.sterling-utility__contact { margin: 0; }
.sterling-utility__contact a { color: var(--sterling-text-inv); text-decoration: none; font-weight: 500; }
.sterling-utility__contact a:hover { color: var(--sterling-border); }

.sterling-header {
	position: relative;
	z-index: 50;
	background: var(--sterling-bg);
	border-bottom: 1px solid var(--sterling-navy);
}
.sterling--sticky-header .sterling-header { position: sticky; top: 0; }

.sterling-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 2rem;
	padding-block: 1.5rem;
}

.sterling-header__brand-mark { display: inline-flex; align-items: center; gap: 0.75rem; color: var(--sterling-navy); text-decoration: none; }
.sterling-header__brand-monogram {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 36px; height: 36px;
	background: var(--sterling-navy);
	color: var(--sterling-text-inv);
	font-family: var(--sterling-serif);
	font-weight: 500;
	font-size: 1.25rem;
	border: 1px solid var(--sterling-navy);
}
.sterling-header__brand-name {
	font-family: var(--sterling-serif);
	font-weight: 500;
	font-size: 1.375rem;
	letter-spacing: 0.02em;
	color: var(--sterling-navy);
}

.sterling-nav__list { list-style: none; padding: 0; margin: 0; display: flex; gap: 2.25rem; justify-content: center; }
.sterling-nav__list a {
	color: var(--sterling-navy);
	font-family: var(--sterling-sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	padding-block: 0.5rem;
	border-bottom: 1px solid transparent;
}
.sterling-nav__list a:hover, .sterling-nav__list .current-menu-item > a { color: var(--sterling-oxblood); border-bottom-color: var(--sterling-oxblood); }

.sterling-header__actions { display: flex; align-items: center; gap: 0.75rem; }
.sterling-header__cta { padding: 0.625rem 1.25rem; font-size: 0.6875rem; }

.sterling-mobile-toggle { display: none; padding: 0.5rem; background: transparent; border: 0; cursor: pointer; color: var(--sterling-navy); }
.sterling-mobile-toggle span { display: block; width: 22px; height: 1.5px; background: currentColor; margin: 5px 0; }

@media (max-width: 56em) {
	.sterling-nav { display: none; }
	.sterling-header__cta { display: none; }
	.sterling-mobile-toggle { display: inline-block; }
}

.sterling-mobile-nav { padding: 1.5rem var(--sterling-gutter); border-top: 1px solid var(--sterling-navy); background: var(--sterling-bg); }
.sterling-mobile-nav[hidden] { display: none; }
.sterling-mobile-nav__list { list-style: none; padding: 0; margin: 0; }
.sterling-mobile-nav__list a { display: block; padding: 1rem 0; font-family: var(--sterling-serif); font-size: 1.5rem; color: var(--sterling-navy); text-decoration: none; border-bottom: 1px solid var(--sterling-border); }

/* ============================================================
 * 6. Scales divider (classical typographic ornament)
 * ============================================================ */
.sterling-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-block: 2.5rem;
	color: var(--sterling-navy);
}
.sterling-divider__line { flex: 0 0 4rem; height: 1px; background: var(--sterling-navy); }
.sterling-divider__mark { font-family: var(--sterling-serif); font-size: 1.5rem; color: var(--sterling-oxblood); line-height: 1; }

/* ============================================================
 * 7. Hero
 * ============================================================ */
.sterling-hero {
	padding-block: clamp(4rem, 9vw, 7rem);
	text-align: center;
	background: var(--sterling-bg);
	border-bottom: 1px solid var(--sterling-border);
}
.sterling-hero__inner { display: flex; flex-direction: column; align-items: center; }

.sterling-hero__eyebrow {
	margin: 0 0 2rem;
	font-family: var(--sterling-sans);
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--sterling-oxblood);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.sterling-hero__title {
	font-family: var(--sterling-serif);
	font-size: clamp(2.5rem, 5.5vw, 4.75rem);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -0.02em;
	margin: 0 0 2rem;
	color: var(--sterling-navy);
	max-width: 22ch;
}
.sterling-hero__title em { font-style: italic; font-weight: 400; color: var(--sterling-oxblood); }

.sterling-hero__lede {
	max-width: 38rem;
	margin: 0 0 0;
	font-size: 1.125rem;
	line-height: 1.65;
	color: var(--sterling-ink-soft);
}

.sterling-hero__cta { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: center; }

/* ============================================================
 * 8. Rankings strip
 * ============================================================ */
.sterling-rankings { padding-block: 3rem; background: var(--sterling-paper); border-bottom: 1px solid var(--sterling-border); }
.sterling-rankings__label { text-align: center; font-family: var(--sterling-sans); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-ink-muted); margin: 0 0 2rem; }
.sterling-rankings__list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: clamp(1.5rem, 3vw, 3rem); }
.sterling-rankings__list li { display: flex; flex-direction: column; gap: 0.375rem; text-align: center; min-width: 12rem; }
.sterling-rankings__name { font-family: var(--sterling-serif); font-size: 1.25rem; font-weight: 500; color: var(--sterling-navy); letter-spacing: -0.01em; }
.sterling-rankings__note { font-family: var(--sterling-sans); font-size: 0.75rem; color: var(--sterling-ink-muted); letter-spacing: 0.04em; }

/* ============================================================
 * 9. Sections (shared)
 * ============================================================ */
.sterling-section { padding-block: clamp(4rem, 8vw, 7rem); }
.sterling-section__header { max-width: 56rem; margin: 0 0 clamp(2.5rem, 5vw, 4rem); }
.sterling-section__eyebrow { margin: 0 0 1.25rem; font-family: var(--sterling-sans); font-size: 0.75rem; font-weight: 500; color: var(--sterling-oxblood); letter-spacing: 0.18em; text-transform: uppercase; }
.sterling-section__title { margin: 0 0 1.25rem; font-family: var(--sterling-serif); font-size: clamp(2.25rem, 5vw, 3.75rem); font-weight: 400; letter-spacing: -0.02em; line-height: 1.05; color: var(--sterling-navy); max-width: 26ch; }
.sterling-section__title em { font-style: italic; color: var(--sterling-oxblood); font-weight: 400; }
.sterling-section__lede { margin: 1.25rem 0 0; color: var(--sterling-ink-soft); font-size: 1.0625rem; line-height: 1.65; max-width: 40rem; }
.sterling-section__footer { display: flex; justify-content: center; margin-top: clamp(2.5rem, 4vw, 3.5rem); padding-top: 2.5rem; border-top: 1px solid var(--sterling-border); }

/* ============================================================
 * 10. Practice areas grid
 * ============================================================ */
.sterling-practices {
	display: grid;
	gap: 0;
	grid-template-columns: 1fr;
	border: 1px solid var(--sterling-navy);
}
@media (min-width: 48em) { .sterling-practices { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 72em) { .sterling-practices { grid-template-columns: repeat(3, 1fr); } }

.sterling-practice-card {
	padding: 2.5rem;
	border-top: 1px solid var(--sterling-border);
	border-left: 0;
	background: var(--sterling-bg);
	transition: background 200ms var(--sterling-ease);
}
@media (min-width: 48em) { .sterling-practice-card:nth-child(odd)  { border-left: 0; } .sterling-practice-card:nth-child(even) { border-left: 1px solid var(--sterling-border); } }
@media (min-width: 72em) {
	.sterling-practice-card { border-left: 1px solid var(--sterling-border); }
	.sterling-practice-card:nth-child(3n+1) { border-left: 0; }
}
.sterling-practice-card:hover { background: var(--sterling-paper); }

.sterling-practice-card__num {
	margin: 0 0 1.5rem;
	font-family: var(--sterling-serif);
	font-size: 1.125rem;
	font-style: italic;
	color: var(--sterling-oxblood);
	letter-spacing: 0.05em;
}
.sterling-practice-card__title { margin: 0 0 1rem; font-family: var(--sterling-serif); font-size: 1.875rem; font-weight: 500; letter-spacing: -0.015em; line-height: 1.1; }
.sterling-practice-card__body { margin: 0 0 1.5rem; color: var(--sterling-ink-soft); font-size: 0.9375rem; line-height: 1.65; }
.sterling-practice-card__partners { margin: 0; padding-top: 1.25rem; border-top: 1px solid var(--sterling-border); font-family: var(--sterling-sans); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--sterling-ink-muted); }

/* ============================================================
 * 11. Case results (legal-document list)
 * ============================================================ */
.sterling-section--results { background: var(--sterling-paper); }
.sterling-cases { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--sterling-navy); }
.sterling-case {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	padding-block: 2rem;
	border-bottom: 1px solid var(--sterling-border);
}
@media (min-width: 64em) {
	.sterling-case {
		grid-template-columns: 240px 1fr 100px;
		gap: 3rem;
		align-items: baseline;
	}
}

.sterling-case__amount {
	margin: 0;
	font-family: var(--sterling-serif);
	font-size: clamp(2rem, 4vw, 2.875rem);
	font-weight: 400;
	letter-spacing: -0.02em;
	color: var(--sterling-navy);
	line-height: 1;
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.sterling-case__outcome {
	font-family: var(--sterling-sans);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--sterling-oxblood);
	font-weight: 500;
	padding: 0.25rem 0.625rem;
	border: 1px solid var(--sterling-oxblood);
}

.sterling-case__title { margin: 0 0 0.375rem; font-family: var(--sterling-serif); font-size: 1.375rem; font-weight: 500; letter-spacing: -0.01em; }
.sterling-case__title a { color: var(--sterling-navy); text-decoration: none; }
.sterling-case__title a:hover { color: var(--sterling-oxblood); }
.sterling-case__matter { margin: 0; color: var(--sterling-ink-soft); font-size: 0.9375rem; font-style: italic; font-family: var(--sterling-serif); }
.sterling-case__meta { margin: 0; display: flex; gap: 0.5rem; flex-wrap: wrap; color: var(--sterling-ink-muted); font-family: var(--sterling-sans); font-size: 0.8125rem; }
.sterling-case__year { margin: 0; font-family: var(--sterling-mono); font-size: 0.875rem; color: var(--sterling-ink-muted); text-align: end; align-self: start; }

/* ============================================================
 * 12. Attorneys grid (4 partner cards)
 * ============================================================ */
.sterling-attorneys-grid {
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr;
}
@media (min-width: 48em) { .sterling-attorneys-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 72em) { .sterling-attorneys-grid { grid-template-columns: repeat(4, 1fr); } }

.sterling-attorney-card { display: flex; flex-direction: column; }
.sterling-attorney-card__headshot { aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--sterling-border); background: var(--sterling-paper); }
.sterling-attorney-card__headshot img { width: 100%; height: 100%; object-fit: cover; }
.sterling-attorney-card__headshot svg { width: 100%; height: 100%; }
.sterling-attorney-card__body { padding-top: 1.5rem; }
.sterling-attorney-card__title { margin: 0 0 0.5rem; font-family: var(--sterling-sans); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-oxblood); }
.sterling-attorney-card__name { margin: 0 0 0.5rem; font-family: var(--sterling-serif); font-size: 1.375rem; font-weight: 500; letter-spacing: -0.01em; }
.sterling-attorney-card__name a { color: var(--sterling-navy); text-decoration: none; }
.sterling-attorney-card__name a:hover { color: var(--sterling-oxblood); }
.sterling-attorney-card__name span { font-family: var(--sterling-sans); font-weight: 400; font-size: 0.8125rem; color: var(--sterling-ink-muted); letter-spacing: 0.02em; }
.sterling-attorney-card__role { margin: 0 0 0.5rem; color: var(--sterling-ink-soft); font-size: 0.875rem; font-style: italic; font-family: var(--sterling-serif); }
.sterling-attorney-card__education { margin: 0.75rem 0 0; padding-top: 0.75rem; border-top: 1px solid var(--sterling-border); font-family: var(--sterling-sans); font-size: 0.75rem; color: var(--sterling-ink-muted); letter-spacing: 0.02em; }

/* ============================================================
 * 13. Press / publications list
 * ============================================================ */
.sterling-press { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--sterling-navy); }
.sterling-press__item {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	padding-block: 1.75rem;
	border-bottom: 1px solid var(--sterling-border);
}
@media (min-width: 56em) {
	.sterling-press__item {
		grid-template-columns: 180px 1fr 120px;
		gap: 2rem;
		align-items: baseline;
	}
}
.sterling-press__outlet { margin: 0; font-family: var(--sterling-serif); font-size: 1.0625rem; font-weight: 500; letter-spacing: -0.01em; color: var(--sterling-navy); }
.sterling-press__title { margin: 0 0 0.375rem; font-family: var(--sterling-serif); font-size: 1.25rem; font-weight: 400; line-height: 1.3; }
.sterling-press__byline { margin: 0; font-family: var(--sterling-sans); font-size: 0.8125rem; color: var(--sterling-ink-muted); }
.sterling-press__date { font-family: var(--sterling-mono); font-size: 0.8125rem; color: var(--sterling-ink-muted); text-align: end; }

/* ============================================================
 * 14. Consultation CTA
 * ============================================================ */
.sterling-section--consult { background: var(--sterling-navy); color: var(--sterling-text-inv); padding-block: clamp(5rem, 9vw, 8rem); }
.sterling-section--consult .sterling-divider { color: var(--sterling-text-inv); }
.sterling-section--consult .sterling-divider__line { background: rgba(255,255,255,0.4); }
.sterling-section--consult .sterling-divider__mark { color: var(--sterling-oxblood-soft); }

.sterling-consult { text-align: center; }
.sterling-consult__title {
	font-family: var(--sterling-serif);
	font-size: clamp(2.25rem, 5vw, 4rem);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--sterling-text-inv);
	margin: 0 0 1.5rem;
}
.sterling-consult__title em { font-style: italic; color: var(--sterling-oxblood-soft); }
.sterling-consult__body { max-width: 36rem; margin: 0 auto 3rem; color: rgba(255,255,255,0.82); font-size: 1.0625rem; line-height: 1.65; }

.sterling-consult__contacts {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	margin: 0 0 3rem;
	padding-block: 2.5rem;
	border-top: 1px solid rgba(255,255,255,0.18);
	border-bottom: 1px solid rgba(255,255,255,0.18);
}
@media (min-width: 56em) { .sterling-consult__contacts { grid-template-columns: repeat(3, 1fr); gap: 3rem; } }
.sterling-consult__contacts > div { text-align: center; }
.sterling-consult__label { margin: 0 0 0.75rem; font-family: var(--sterling-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-oxblood-soft); }
.sterling-consult__contacts p { margin: 0 0 0.25rem; color: rgba(255,255,255,0.85); font-family: var(--sterling-serif); font-size: 1.0625rem; line-height: 1.5; }
.sterling-consult__contacts a { color: var(--sterling-text-inv); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.3); }
.sterling-consult__contacts a:hover { color: var(--sterling-oxblood-soft); border-bottom-color: var(--sterling-oxblood-soft); }

.sterling-consult__cta { display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap; }
.sterling-consult__cta .sterling-btn--navy { background: var(--sterling-bg); color: var(--sterling-navy); border-color: var(--sterling-bg); }
.sterling-consult__cta .sterling-btn--navy:hover { background: var(--sterling-oxblood); color: var(--sterling-text-inv); border-color: var(--sterling-oxblood); }
.sterling-consult__cta .sterling-btn--outline { color: var(--sterling-text-inv); border-color: rgba(255,255,255,0.4); background: transparent; }
.sterling-consult__cta .sterling-btn--outline:hover { background: var(--sterling-text-inv); color: var(--sterling-navy); border-color: var(--sterling-text-inv); }

/* ============================================================
 * 15. Single attorney / practice
 * ============================================================ */
.sterling-attorney__hero { padding-block: clamp(3rem, 6vw, 5rem); border-bottom: 1px solid var(--sterling-border); }
.sterling-attorney__inner { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 64em) { .sterling-attorney__inner { grid-template-columns: 1.2fr 1fr; } }
.sterling-attorney__title { margin: 0 0 1rem; font-family: var(--sterling-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-oxblood); font-weight: 500; }
.sterling-attorney__name { margin: 0 0 0.5rem; font-family: var(--sterling-serif); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 400; letter-spacing: -0.02em; line-height: 1.0; }
.sterling-attorney__creds { font-family: var(--sterling-sans); font-size: 0.4em; font-weight: 400; color: var(--sterling-ink-muted); letter-spacing: 0.04em; }
.sterling-attorney__role { margin: 0 0 2rem; color: var(--sterling-ink-soft); font-size: 1.125rem; font-style: italic; font-family: var(--sterling-serif); }
.sterling-attorney__facts { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 0; padding: 1.5rem 0; border-block: 1px solid var(--sterling-border); }
.sterling-attorney__facts > div { display: flex; gap: 1rem; }
.sterling-attorney__facts dt { font-family: var(--sterling-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--sterling-ink-muted); min-width: 5rem; margin: 0; }
.sterling-attorney__facts dd { margin: 0; font-family: var(--sterling-serif); font-size: 1rem; color: var(--sterling-navy); }
.sterling-attorney__facts a { color: var(--sterling-navy); }
.sterling-attorney__headshot { border: 1px solid var(--sterling-border); aspect-ratio: 4/5; overflow: hidden; }
.sterling-attorney__bio { margin-block: clamp(2rem, 5vw, 3.5rem); }
.sterling-attorney__creds-block { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding: 2.5rem 0; border-top: 1px solid var(--sterling-navy); margin-top: 2.5rem; }
@media (min-width: 56em) { .sterling-attorney__creds-block { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.sterling-attorney__creds-block h3 { font-family: var(--sterling-serif); font-size: 1.25rem; font-weight: 500; margin: 0 0 1rem; padding-bottom: 0.625rem; border-bottom: 1px solid var(--sterling-border-strong); }

.sterling-practice__hero { padding-block: clamp(3rem, 6vw, 5rem) 0; }
.sterling-practice__eyebrow { margin: 0 0 1rem; font-family: var(--sterling-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-oxblood); font-weight: 500; }
.sterling-practice__title { margin: 0 0 1.5rem; font-family: var(--sterling-serif); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 400; letter-spacing: -0.02em; line-height: 1.0; }
.sterling-practice__lede { font-family: var(--sterling-serif); font-style: italic; font-size: 1.375rem; line-height: 1.5; color: var(--sterling-ink-soft); margin: 0 0 2rem; max-width: 38ch; }

/* ============================================================
 * 16. Archive / publication / essay
 * ============================================================ */
.sterling-archive-header { padding-block: clamp(3rem, 6vw, 5rem) 2rem; border-bottom: 1px solid var(--sterling-navy); margin-bottom: 0; }
.sterling-archive-header__eyebrow { margin: 0 0 1.25rem; font-family: var(--sterling-sans); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-oxblood); }
.sterling-archive-header__title { margin: 0; font-family: var(--sterling-serif); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 400; letter-spacing: -0.02em; }

.sterling-publications { list-style: none; padding: 0; margin: 0; }
.sterling-publication {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	padding-block: 2.25rem;
	border-bottom: 1px solid var(--sterling-border);
}
@media (min-width: 56em) { .sterling-publication { grid-template-columns: 1fr 200px; gap: 3rem; align-items: baseline; } }
.sterling-publication__eyebrow { margin: 0 0 0.625rem; font-family: var(--sterling-sans); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.14em; color: var(--sterling-oxblood); }
.sterling-publication__title { margin: 0 0 0.625rem; font-family: var(--sterling-serif); font-size: clamp(1.5rem, 2.5vw, 1.875rem); font-weight: 500; line-height: 1.2; letter-spacing: -0.01em; }
.sterling-publication__title a { color: var(--sterling-navy); text-decoration: none; }
.sterling-publication__title a:hover { color: var(--sterling-oxblood); }
.sterling-publication__excerpt { margin: 0 0 0.625rem; color: var(--sterling-ink-soft); font-size: 0.9375rem; line-height: 1.65; max-width: 36rem; }
.sterling-publication__meta { margin: 0; font-family: var(--sterling-sans); font-size: 0.75rem; color: var(--sterling-ink-muted); display: flex; gap: 0.5rem; }

.sterling-essay__hero { padding-block: clamp(3rem, 6vw, 5rem) 0; }
.sterling-essay__eyebrow { margin: 0 0 1rem; font-family: var(--sterling-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-oxblood); font-weight: 500; }
.sterling-essay__title { margin: 0 0 1.5rem; font-family: var(--sterling-serif); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 400; letter-spacing: -0.02em; line-height: 1.0; }
.sterling-essay__lede { font-family: var(--sterling-serif); font-style: italic; font-size: 1.375rem; line-height: 1.5; color: var(--sterling-ink-soft); margin: 0 0 2rem; max-width: 38ch; }
.sterling-essay__media { margin-block: 2.5rem; }

.sterling-prose > * + * { margin-top: 1rem; }
.sterling-prose h2 { margin: 3rem 0 1rem; font-family: var(--sterling-serif); font-size: 2rem; font-weight: 500; }
.sterling-prose h3 { margin: 2.25rem 0 0.75rem; font-family: var(--sterling-serif); font-size: 1.5rem; font-weight: 500; }
.sterling-prose p  { font-size: 1.0625rem; line-height: 1.75; color: var(--sterling-ink); }
.sterling-prose a  { color: var(--sterling-navy); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--sterling-oxblood); }
.sterling-prose a:hover { color: var(--sterling-oxblood); }

/* ============================================================
 * 17. Footer
 * ============================================================ */
.sterling-footer {
	padding-block: clamp(3rem, 6vw, 5rem) 0;
	background: var(--sterling-paper);
	color: var(--sterling-ink);
	border-top: 1px solid var(--sterling-navy);
}
.sterling-footer__top { display: grid; gap: 3rem; grid-template-columns: 1fr; margin-bottom: 3rem; }
@media (min-width: 64em) { .sterling-footer__top { grid-template-columns: 1fr 1.5fr; align-items: start; } }

.sterling-footer__brand-name { display: flex; align-items: center; gap: 0.75rem; margin: 0 0 1.5rem; font-family: var(--sterling-serif); font-weight: 500; font-size: 1.5rem; letter-spacing: 0.02em; color: var(--sterling-navy); }
.sterling-footer__brand-monogram {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px;
	background: var(--sterling-navy); color: var(--sterling-text-inv);
	font-weight: 500; font-size: 1.125rem;
}
.sterling-footer__address { font-style: normal; color: var(--sterling-ink-soft); font-size: 0.9375rem; line-height: 1.7; margin: 0 0 1.5rem; }
.sterling-footer__address a { color: var(--sterling-navy); text-decoration: none; border-bottom: 1px solid var(--sterling-border); }
.sterling-footer__address a:hover { color: var(--sterling-oxblood); border-bottom-color: var(--sterling-oxblood); }

.sterling-footer__columns { display: grid; gap: 2.5rem; grid-template-columns: repeat(3, 1fr); }
.sterling-footer__column ul { list-style: none; padding: 0; margin: 0; }
.sterling-footer__column li + li { margin-top: 0.625rem; }
.sterling-footer__column a { color: var(--sterling-ink-soft); font-size: 0.9375rem; text-decoration: none; }
.sterling-footer__column a:hover { color: var(--sterling-oxblood); }
.sterling-footer__column-title, .sterling-footer__column .widget__title { margin: 0 0 1.25rem; font-family: var(--sterling-sans); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-navy); }

.sterling-footer__disclaimer { padding: 2rem 0; border-top: 1px solid var(--sterling-border); color: var(--sterling-ink-muted); font-size: 0.8125rem; line-height: 1.65; max-width: 60rem; font-family: var(--sterling-serif); font-style: italic; }

.sterling-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1.5rem; border-top: 1px solid var(--sterling-navy); flex-wrap: wrap; color: var(--sterling-ink-muted); font-family: var(--sterling-sans); font-size: 0.75rem; letter-spacing: 0.06em; }
.sterling-footer__legal { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.5rem; }
.sterling-footer__legal a { color: var(--sterling-ink-muted); text-decoration: none; text-transform: uppercase; }
.sterling-footer__legal a:hover { color: var(--sterling-oxblood); }

/* ============================================================
 * 18. Pagination, search, 404, comments
 * ============================================================ */
.sterling-pagination { margin-block: 3rem; }
.sterling-pagination .nav-links { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; }
.sterling-pagination .page-numbers { display: inline-flex; min-width: 2.5rem; height: 2.5rem; padding: 0 0.875rem; align-items: center; justify-content: center; background: var(--sterling-bg); border: 1px solid var(--sterling-navy); color: var(--sterling-navy); font-family: var(--sterling-sans); font-size: 0.8125rem; text-decoration: none; }
.sterling-pagination .page-numbers.current { background: var(--sterling-navy); color: var(--sterling-text-inv); }
.sterling-pagination .page-numbers:hover { background: var(--sterling-oxblood); color: var(--sterling-text-inv); border-color: var(--sterling-oxblood); }

.sterling-search-form { display: flex; gap: 0; max-width: 36rem; border: 1px solid var(--sterling-navy); background: var(--sterling-bg); }
.sterling-search-form__input { flex: 1; padding: 0.875rem 1.125rem; background: transparent; border: 0; color: var(--sterling-navy); font: inherit; font-family: var(--sterling-sans); outline: none; }
.sterling-search-form__submit { padding: 0.875rem 1.125rem; background: var(--sterling-navy); color: var(--sterling-text-inv); border: 0; cursor: pointer; font-family: var(--sterling-serif); font-size: 1.25rem; }

.sterling-404 { text-align: center; padding-block: clamp(4rem, 8vw, 7rem); max-width: 56rem; margin: 0 auto; }
.sterling-404__chip { display: inline-block; padding: 0.4rem 0.875rem; background: var(--sterling-paper); color: var(--sterling-oxblood); font-family: var(--sterling-sans); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.18em; margin: 0 0 2.5rem; border: 1px solid var(--sterling-oxblood); }
.sterling-404__title { margin: 0 0 1.5rem; font-family: var(--sterling-serif); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 400; letter-spacing: -0.02em; line-height: 1.0; }
.sterling-404__lede { color: var(--sterling-ink-soft); max-width: 36rem; margin: 0 auto 2.5rem; font-size: 1.0625rem; line-height: 1.65; }
.sterling-404__search { max-width: 32rem; margin: 0 auto 1.5rem; }
.sterling-404__actions { display: flex; gap: 0.625rem; justify-content: center; flex-wrap: wrap; }

.sterling-empty { padding: 4rem 0; text-align: center; }
.sterling-empty__title { font-family: var(--sterling-serif); font-size: 2rem; font-weight: 500; margin: 0 0 1rem; }
.sterling-empty__lede { color: var(--sterling-ink-soft); margin: 0 0 1.5rem; }

.sterling-comments { margin: 3rem 0; }
.sterling-comments__title { font-family: var(--sterling-serif); font-size: 1.5rem; font-weight: 500; margin: 0 0 1.5rem; }
.sterling-comments__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.sterling-comment-form { margin-top: 2.5rem; }
.sterling-comment-form__label { display: block; font-family: var(--sterling-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--sterling-oxblood); margin-bottom: 0.75rem; font-weight: 500; }
.sterling-comment-form p { display: flex; flex-direction: column; gap: 0.375rem; margin-bottom: 1.25rem; }
.sterling-comment-form input, .sterling-comment-form textarea { padding: 0.875rem; background: var(--sterling-bg); border: 1px solid var(--sterling-navy); color: var(--sterling-navy); font: inherit; font-family: var(--sterling-sans); }

/* ============================================================
 * 19. Dark (deep navy) scheme
 * ============================================================ */
html[data-sterling-scheme="dark"] {
	--sterling-bg:         #0A1326;
	--sterling-paper:      #0F1A33;
	--sterling-stone:      #142244;
	--sterling-ink:        #F5F2EC;
	--sterling-ink-soft:   #D9D4CA;
	--sterling-ink-muted:  #9A9485;
	--sterling-border:     #1F2E50;
	--sterling-text-inv:   #0A1326;
	--sterling-navy:       #F5F2EC;
}
html[data-sterling-scheme="dark"] .sterling-header { background: var(--sterling-bg); }
@media (prefers-color-scheme: dark) {
	html[data-sterling-scheme="auto"] {
		--sterling-bg:         #0A1326;
		--sterling-paper:      #0F1A33;
		--sterling-ink:        #F5F2EC;
		--sterling-ink-soft:   #D9D4CA;
		--sterling-ink-muted:  #9A9485;
		--sterling-border:     #1F2E50;
		--sterling-text-inv:   #0A1326;
		--sterling-navy:       #F5F2EC;
	}
}

/* ============================================================
 * 20. Reduced motion + a11y
 * ============================================================ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; padding: 0;
	overflow: hidden; position: absolute; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--sterling-navy); clip: auto !important; clip-path: none;
	color: var(--sterling-text-inv); display: block; font-size: 0.875rem; font-weight: 500;
	height: auto; width: auto; padding: 1rem 1.5rem; left: 0.5rem; top: 0.5rem;
	z-index: 100000;
}
