/* =========================================================================
   Trusted Marketing — Theme styles
   Tokens + header + mega menu + mobile drawer
   ========================================================================= */

:root {
	--c-bg: #f4f1ec;
	--c-text: #1f2022;
	--c-text-muted: #75787b;
	--c-ink: #111;
	--c-accent: #CF4F24; /* arX Red */
	--c-muted-on-dark: #97999b;
	--c-border: rgba(17, 17, 17, 0.06);
	--c-border-strong: rgba(17, 17, 17, 0.12);

	--font-sans: 'Jost', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--font-mono: 'JetBrains Mono', 'SFMono-Regular', Menlo, Consolas, monospace;

	--header-h: 71px;
	--max-w: 1488px; /* outer content width before page gutters */
	--gutter: 88px;

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

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

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

a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
ol, ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; padding: 0;
	margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}
.skip-link:focus {
	clip: auto; height: auto; width: auto;
	background: var(--c-ink); color: var(--c-bg);
	padding: 12px 16px; left: 16px; top: 16px;
	position: fixed; z-index: 9999;
}

/* =========================================================================
   Promo bar (mobile only)
   ========================================================================= */
.promo-bar {
	display: none;
	background: #111;
	color: var(--c-bg);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.02em;
	align-items: center;
	justify-content: space-between;
	padding: 10px 16px;
	gap: 12px;
}
.promo-bar__link { display: inline-flex; align-items: center; gap: 8px; flex: 1; }
.promo-bar__text { opacity: 0.92; }
.promo-bar__arrow { opacity: 0.8; }
.promo-bar__dismiss {
	font-size: 20px;
	line-height: 1;
	color: var(--c-bg);
	opacity: 0.7;
}

/* =========================================================================
   Site header
   ========================================================================= */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--c-bg);
	border-bottom: 1px solid var(--c-border);
}
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}

.site-header__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	height: var(--header-h);
	display: flex;
	align-items: center;
	gap: 32px;
}

/* ---- Logo ---- */
.site-logo {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	line-height: 0;
}
.site-logo img {
	display: block;
	height: 50px;
	width: auto;
}

/* ---- Primary nav ---- */
.primary-nav { flex: 1; }
.primary-nav__list {
	display: flex;
	align-items: center;
	gap: 24px;
}
.primary-nav__link {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13.5px;
	letter-spacing: -0.005em;
	color: var(--c-text);
	padding: 8px 4px;
	position: relative;
	white-space: nowrap;
	transition: color 120ms var(--ease);
}
.primary-nav__link::after {
	content: "";
	position: absolute;
	left: 4px;
	right: 4px;
	bottom: 2px;
	height: 1px;
	background: var(--c-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 180ms var(--ease);
}
.primary-nav__item:hover .primary-nav__link,
.primary-nav__link[aria-expanded="true"] { color: var(--c-accent); }
.primary-nav__item:hover .primary-nav__link::after,
.primary-nav__link[aria-expanded="true"]::after { transform: scaleX(1); }

/* ---- Right-side actions ---- */
.site-header__actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-shrink: 0;
}
.header-search {
	width: 34px; height: 34px;
	display: inline-flex;
	align-items: center; justify-content: center;
	color: var(--c-text);
	border-radius: 4px;
	transition: background 120ms var(--ease);
}
.header-search:hover { background: rgba(17, 17, 17, 0.04); }

.header-phone {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--c-text-muted);
	text-transform: uppercase;
	white-space: nowrap;
	padding: 4px 8px;
}
.header-phone:hover { color: var(--c-text); }

.header-cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: var(--c-ink);
	color: var(--c-bg);
	padding: 11px 22px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	transition: background 140ms var(--ease);
}
.header-cta:hover { background: #000; }
.header-cta__arrow { transform: translateY(-1px); }

.mobile-toggle {
	display: none;
	width: 40px; height: 40px;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
}
.mobile-toggle__bar {
	display: block;
	width: 20px; height: 1.5px;
	background: var(--c-ink);
	transition: transform 200ms var(--ease), opacity 200ms var(--ease);
}

/* =========================================================================
   Mega menu panels
   ========================================================================= */
.mega {
	position: absolute;
	left: 0; right: 0;
	top: 100%;
	background: var(--c-bg);
	border-bottom: 1px solid var(--c-border);
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity 160ms var(--ease), transform 200ms var(--ease);
	pointer-events: none;
}
.mega[data-open="true"] {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.mega[hidden] { display: none; }

.mega__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 64px var(--gutter) 56px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 80px;
}
.mega__inner--right {
	grid-template-columns: 1fr;
	justify-items: end;
	padding-top: 24px;
	padding-bottom: 32px;
}

.mega__eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin-bottom: 18px;
}
.mega__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 38px;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin-bottom: 36px;
	max-width: 18ch;
}

.mega__list { display: flex; flex-direction: column; gap: 18px; }
.mega__list li {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 16px;
	align-items: start;
}
.mega__num {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--c-text-muted);
	padding-top: 2px;
}
.mega__num::after { content: " ·"; padding-left: 4px; opacity: 0.6; }
.mega__item-title {
	font-size: 15px;
	font-weight: 500;
	color: var(--c-ink);
	transition: color 120ms var(--ease);
}
.mega__item-title:hover { color: var(--c-accent); }
.mega__item-meta {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin-top: 4px;
}

/* Feature card (right column) */
.mega__feature { display: flex; flex-direction: column; }
.mega__feature-media {
	width: 100%;
	aspect-ratio: 16 / 10;
	background: #e7e2da center/cover no-repeat;
	margin-bottom: 22px;
}
.mega__feature-media--dark { background-color: #1a1a1a; }
.mega__feature-media--home-depot { background-image: linear-gradient(135deg, #f08c4a 0%, #c25a1c 100%); }
.mega__feature-media--lutron     { background-image: linear-gradient(135deg, #34495e 0%, #1b2733 100%); }
.mega__feature-media--tom-ford   { background-image: linear-gradient(135deg, #4a3525 0%, #1f150e 100%); }
.mega__feature-title {
	font-size: 17px;
	font-weight: 500;
	color: var(--c-ink);
	margin-bottom: 6px;
}
.mega__feature-subtitle {
	font-size: 13.5px;
	color: var(--c-text-muted);
	margin-bottom: 16px;
}
.mega__feature-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--c-ink);
	padding: 4px 0;
	border-bottom: 1px solid transparent;
}
.mega__feature-cta:hover { color: var(--c-accent); }
.mega__inline-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--c-text-muted);
	margin-top: 18px;
}
.mega__inline-cta:hover { color: var(--c-accent); }
.mega__intro-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin-top: 32px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--c-border);
	transition: color 120ms var(--ease), border-color 120ms var(--ease);
}
.mega__intro-cta:hover { color: var(--c-accent); border-color: var(--c-accent); }

/* Chip filters (used on Work panel) */
.mega__chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 22px; }
.mega__chip {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	font-size: 12px;
	color: var(--c-text);
	border: 1px solid var(--c-border-strong);
	transition: border-color 120ms var(--ease), color 120ms var(--ease);
}
.mega__chip:hover { border-color: var(--c-accent); color: var(--c-accent); }

/* Insights — tags + posts */
.mega__tags { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 24px; }
.mega__tag {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
}
.mega__tag:hover { color: var(--c-accent); }

.mega__feature--posts > .mega__post:first-of-type { margin-top: 22px; }
.mega__post { padding: 18px 0; border-top: 1px solid var(--c-border); }
.mega__post-date {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin-bottom: 8px;
}
.mega__post-title { font-size: 16px; font-weight: 500; color: var(--c-ink); margin-bottom: 8px; }
.mega__post-title a:hover { color: var(--c-accent); }
.mega__post-link {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; color: var(--c-text);
}
.mega__post-link:hover { color: var(--c-accent); }

/* About — compact right-aligned tri-panel */
.mega--about .mega__inner { padding: 28px var(--gutter) 40px; }
.mega__about-panel {
	display: grid;
	grid-template-columns: repeat(3, minmax(140px, 1fr));
	gap: 40px;
	padding: 24px 32px;
	max-width: 560px;
}
.mega__about-item h3 {
	font-size: 16px;
	font-weight: 500;
	color: var(--c-ink);
	margin-bottom: 6px;
}
.mega__about-item p {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.10em;
	color: var(--c-text-muted);
}
.mega__about-item:hover h3 { color: var(--c-accent); }

/* Footer row inside mega */
.mega__footer {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 18px var(--gutter);
	border-top: 1px solid var(--c-border);
	display: flex;
	justify-content: space-between;
	font-size: 13.5px;
}
.mega__footer-link {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--c-text);
}
.mega__footer-link:hover { color: var(--c-accent); }
.mega__footer-link--accent { color: var(--c-accent); }

/* =========================================================================
   Mobile drawer
   ========================================================================= */
.mobile-drawer {
	position: fixed;
	top: 0; right: 0;
	width: min(420px, 100vw);
	height: 100dvh;
	background: var(--c-bg);
	z-index: 200;
	transform: translateX(100%);
	transition: transform 240ms var(--ease);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}
.mobile-drawer[data-open="true"] { transform: none; }
.mobile-drawer[hidden] { display: flex; } /* override default so transitions work */

.mobile-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--c-border);
}
.mobile-drawer__close {
	font-size: 24px; line-height: 1; color: var(--c-ink);
	width: 32px; height: 32px;
	display: inline-flex; align-items: center; justify-content: center;
}

.mobile-nav { flex: 1; padding: 4px 0; }
.mobile-nav__item { border-bottom: 1px solid var(--c-border); }
.mobile-nav__row {
	display: flex; align-items: stretch;
}
.mobile-nav__label,
.mobile-nav__plain {
	flex: 1;
	display: flex; align-items: center;
	padding: 18px 20px;
	font-size: 17px;
	font-weight: 500;
	color: var(--c-ink);
}
.mobile-nav__toggle {
	width: 56px;
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--c-ink);
}
.mobile-nav__toggle[aria-expanded="true"] { background: rgba(17,17,17,0.04); }
.mobile-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.mobile-nav__toggle svg { transition: transform 200ms var(--ease); }
.mobile-nav__item:has(.mobile-nav__toggle[aria-expanded="true"]) { background: rgba(17,17,17,0.04); }

.mobile-nav__panel {
	background: rgba(17,17,17,0.03);
	padding: 4px 20px 18px 36px;
	display: flex; flex-direction: column; gap: 14px;
}
.mobile-nav__panel[hidden] { display: none; }
.mobile-nav__panel a {
	font-size: 15px;
	color: var(--c-text);
}

.mobile-drawer__footer {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px;
	padding: 18px 20px;
	border-top: 1px solid var(--c-border);
}
.mobile-drawer__phone {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--c-text-muted);
	text-transform: uppercase;
}
.mobile-drawer__cta {
	background: var(--c-ink);
	color: var(--c-bg);
	padding: 12px 18px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	display: inline-flex; align-items: center; gap: 8px;
}
.mobile-drawer__concept {
	background: #ece6dc;
	padding: 32px 20px;
	text-align: center;
}
.mobile-drawer__concept h4 {
	font-size: 22px;
	font-weight: 500;
	color: var(--c-ink);
}

.mobile-drawer__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(17, 17, 17, 0.45);
	z-index: 150;
	opacity: 0;
	transition: opacity 200ms var(--ease);
}
.mobile-drawer__backdrop[data-open="true"] { opacity: 1; }

body[data-drawer-open="true"] { overflow: hidden; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1024px) {
	:root { --gutter: 32px; }
	.mega__inner { padding: 48px 32px 40px; grid-template-columns: 1fr; gap: 48px; }
	.mega__heading { font-size: 30px; }
	.mega__footer { padding: 14px 32px; }
}

@media (max-width: 768px) {
	.promo-bar { display: flex; }
	.primary-nav,
	.header-phone,
	.header-search { display: none; }
	.mobile-toggle { display: inline-flex; }
	.site-header__inner { gap: 12px; padding: 0 20px; height: 64px; }
	.site-header__actions {
		gap: 10px;
		margin-left: auto;
	}
	.header-cta {
		padding: 9px 14px;
		font-size: 12px;
		letter-spacing: 0.08em;
	}
	.header-cta__arrow { display: none; }
	:root { --header-h: 64px; }
	.mega { display: none !important; } /* mega menu replaced by mobile drawer */
}

@media (max-width: 380px) {
	.header-cta { padding: 8px 10px; font-size: 11px; }
}

/* Site main fallback (used by index/page templates) */
.site-main { padding: 64px 0; }
.site-main .container {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
/* =========================================================================
   Footer
   ========================================================================= */
.site-footer { font-family: var(--font-sans); }

.footer-eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0;
}
.footer-eyebrow--small { letter-spacing: 0.04em; }
.footer-eyebrow--on-dark { color: var(--c-muted-on-dark); }

.accent { color: var(--c-accent); }

.btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	padding: 16px 32px;
	font-size: 15px;
	transition: background 140ms var(--ease), opacity 140ms var(--ease);
}
.btn--accent { background: var(--c-accent); color: var(--c-bg); }
.btn--accent:hover { background: #B23E18; }
.btn--small { padding: 13px 24px; font-size: 14px; }

/* ---------- Section 1: cream CTA ---------- */
.footer-cta { background: var(--c-bg); border-top: 1px solid var(--c-border); padding: 121px 0 80px; }
.footer-cta__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 1fr) 500px;
	gap: 80px;
	align-items: start;
}
.footer-cta__heading {
	font-family: var(--font-sans);
	font-weight: 300;
	font-size: 84px;
	line-height: 0.95;
	letter-spacing: -0.04em;
	color: var(--c-ink);
	margin: 40px 0 56px;
	max-width: 12ch;
}
.footer-cta__body {
	font-size: 18px;
	line-height: 1.55;
	color: var(--c-text);
	max-width: 560px;
}
.footer-cta__aside { display: flex; flex-direction: column; gap: 48px; }
.footer-ways { display: flex; flex-direction: column; gap: 24px; }
.footer-ways__row { display: flex; flex-direction: column; gap: 4px; }
.footer-ways__value {
	font-size: 16px;
	color: var(--c-ink);
	line-height: 1.5;
}
a.footer-ways__value:hover { color: var(--c-accent); }

/* ---------- Section 2: dark links ---------- */
.footer-links { background: #111; padding: 88px 0 64px; }
.footer-links__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: flex;
	flex-direction: column;
	gap: 64px;
}
.footer-brand { display: flex; flex-direction: column; gap: 24px; max-width: 360px; }
.footer-brand__logo { display: inline-block; line-height: 0; }
.footer-brand__logo img { display: block; height: 64px; width: auto; }
.footer-brand__tag {
	font-size: 14px;
	line-height: 1.5;
	color: var(--c-muted-on-dark);
}
.footer-cols {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 48px;
}
.footer-col h3 { margin-bottom: 24px; }
.footer-col ul { display: flex; flex-direction: column; gap: 12px; }
.footer-col a {
	font-size: 14px;
	color: var(--c-bg);
	transition: color 120ms var(--ease);
}
.footer-col a:hover { color: var(--c-accent); }

/* ---------- Section 3: newsletter ---------- */
.footer-newsletter {
	background: #111;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding: 65px 0 56px;
}
.footer-newsletter__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}
.footer-newsletter__lead { display: flex; flex-direction: column; gap: 16px; max-width: 510px; }
.footer-newsletter__heading {
	font-weight: 300;
	font-size: 36px;
	line-height: 1.1;
	letter-spacing: -0.025em;
	color: var(--c-bg);
}
.footer-newsletter__form {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 12px;
	align-items: stretch;
}
.footer-newsletter__form input[type="email"] {
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--c-bg);
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	padding: 12px 16px;
	min-width: 0;
	transition: border-color 140ms var(--ease), background 140ms var(--ease);
}
.footer-newsletter__form input[type="email"]::placeholder { color: rgba(255, 255, 255, 0.4); }
.footer-newsletter__form input[type="email"]:focus {
	outline: none;
	border-color: var(--c-accent);
	background: rgba(255, 255, 255, 0.14);
}
.footer-newsletter__form button { white-space: nowrap; }
.footer-newsletter__note {
	grid-column: 1 / -1;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--c-muted-on-dark);
}

/* ---------- Section 4: legal/social ---------- */
.footer-legal {
	background: #111;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding: 33px 0 32px;
}
.footer-legal__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}
.footer-legal__left {
	display: flex;
	gap: 24px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--c-muted-on-dark);
	flex-wrap: wrap;
}
.footer-legal__left a { color: var(--c-muted-on-dark); }
.footer-legal__left a:hover { color: var(--c-bg); }
.footer-legal__right { display: flex; gap: 24px; }
.footer-legal__right a {
	font-size: 13px;
	color: var(--c-muted-on-dark);
	transition: color 120ms var(--ease);
}
.footer-legal__right a:hover { color: var(--c-bg); }

/* ---------- Footer responsive ---------- */
@media (max-width: 1024px) {
	.footer-cta { padding: 72px 0 56px; }
	.footer-cta__inner { grid-template-columns: 1fr; gap: 56px; }
	.footer-cta__heading { font-size: 56px; }
	.footer-cols { grid-template-columns: repeat(2, 1fr); gap: 40px; }
	.footer-newsletter__inner { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 640px) {
	.footer-cta { padding: 56px 0 40px; }
	.footer-cta__heading { font-size: 40px; margin: 24px 0 32px; }
	.footer-cta__body { font-size: 16px; }
	.footer-links { padding: 56px 0 40px; }
	.footer-cols { grid-template-columns: 1fr; gap: 32px; }
	.footer-newsletter { padding: 48px 0 40px; }
	.footer-newsletter__heading { font-size: 26px; }
	.footer-newsletter__form { grid-template-columns: 1fr; }
	.footer-legal__inner { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* =========================================================================
   Homepage — Hero
   ========================================================================= */
.home-hero {
	background: var(--c-bg);
	padding: 58px 0 53px;
}
.home-hero__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: start;
}

.home-hero__lead { padding-top: 24px; }

.home-hero__eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 40px;
}

.home-hero__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(48px, 6.4vw, 96px);
	letter-spacing: -0.025em;
	line-height: 1.1;
	color: var(--c-ink);
	margin: 0 0 36px;
	max-width: 14ch;
}
.home-hero__heading .accent { color: var(--c-accent); }

.home-hero__body {
	font-size: 17px;
	line-height: 1.55;
	color: var(--c-text);
	max-width: 52ch;
	margin: 0 0 44px;
}

.home-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
}
.home-hero__ghost {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.04em;
	color: var(--c-ink);
	padding: 16px 8px;
	border-bottom: 1px solid var(--c-border-strong);
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.home-hero__ghost:hover {
	color: var(--c-accent);
	border-color: var(--c-accent);
}

.home-hero__media {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.home-hero__media img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 10px;
}

/* Hero slider */
.home-hero__slider {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #e7e2da;
	aspect-ratio: 4 / 5;
	border-radius: 10px;
}
.home-hero__slides {
	position: absolute;
	inset: 0;
}
.home-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 600ms ease;
}
.home-hero__slide.is-active {
	opacity: 1;
	visibility: visible;
}
.home-hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	aspect-ratio: auto;
}
.home-hero__slider-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.85);
	color: var(--c-text, #1a1a1a);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 200ms ease, background 200ms ease;
	z-index: 2;
}
.home-hero__slider:hover .home-hero__slider-btn,
.home-hero__slider:focus-within .home-hero__slider-btn {
	opacity: 1;
}
.home-hero__slider-btn:hover,
.home-hero__slider-btn:focus-visible {
	background: #fff;
	outline: none;
}
.home-hero__slider-btn:focus-visible {
	box-shadow: 0 0 0 2px var(--c-accent);
}
.home-hero__slider-btn--prev { left: 12px; }
.home-hero__slider-btn--next { right: 12px; }
.home-hero__slider-dots {
	position: absolute;
	bottom: 14px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	gap: 8px;
	padding: 6px 10px;
	background: rgba(0, 0, 0, 0.28);
	border-radius: 999px;
	z-index: 2;
}
.home-hero__slider-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	cursor: pointer;
	transition: background 200ms ease, transform 200ms ease;
}
.home-hero__slider-dot:hover { background: rgba(255, 255, 255, 0.8); }
.home-hero__slider-dot.is-active {
	background: #fff;
	transform: scale(1.25);
}
.home-hero__slider-dot:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--c-accent);
}
@media (prefers-reduced-motion: reduce) {
	.home-hero__slide { transition: none; }
}
@media (hover: none) {
	.home-hero__slider-btn { opacity: 1; }
}
.home-hero__media-placeholder {
	width: 100%;
	aspect-ratio: 4 / 5;
	background: #e7e2da;
	border-radius: 10px;
}
.home-hero__media-caption {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
}

@media (max-width: 1024px) {
	.home-hero { padding: 38px 0 43px; }
	.home-hero__inner { gap: 56px; grid-template-columns: 1fr; }
	.home-hero__lead { padding-top: 0; }
	.home-hero__heading { max-width: none; }
	.home-hero__media img,
	.home-hero__media-placeholder,
	.home-hero__slider { aspect-ratio: 16 / 11; }
}

@media (max-width: 640px) {
	.home-hero { padding: 24px 0 34px; }
	.home-hero__eyebrow { margin-bottom: 24px; }
	.home-hero__heading { font-size: clamp(40px, 11vw, 56px); margin-bottom: 24px; }
	.home-hero__body { font-size: 16px; margin-bottom: 32px; }
	.home-hero__ctas { gap: 12px; }
	.home-hero__ghost { padding: 14px 4px; }
}

/* =========================================================================
   Homepage — Stats strip
   ========================================================================= */
.home-stats {
	background: var(--c-bg);
	border-top: 1px solid var(--c-border);
	border-bottom: 1px solid var(--c-border);
	padding: 44px 0;
}
.home-stats__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.home-stats__grid {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 48px;
}
.home-stats__item {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.home-stats__value {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.4vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--c-ink);
	margin: 0;
}
.home-stats__label {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0;
	line-height: 1.5;
	max-width: 28ch;
}

@media (max-width: 900px) {
	.home-stats__grid { grid-template-columns: repeat(2, 1fr); gap: 36px 32px; }
}
@media (max-width: 480px) {
	.home-stats { padding: 32px 0; }
	.home-stats__grid { grid-template-columns: 1fr; gap: 24px; }
}

/* =========================================================================
   Homepage — Four practices. One team.
   ========================================================================= */
.home-practices {
	background: var(--c-bg);
	padding: 88px 0 96px;
}
.home-practices__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.home-practices__head {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: start;
	margin-bottom: 72px;
}
.home-practices__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 4.6vw, 64px);
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: var(--c-ink);
	margin: 0;
	max-width: 12ch;
}
.home-practices__heading .accent { color: var(--c-accent); }
.home-practices__intro {
	font-size: 16px;
	line-height: 1.6;
	color: var(--c-text-muted);
	max-width: 56ch;
	margin: 8px 0 0;
}

.home-practices__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--c-border);
}
.home-practices__card {
	display: flex;
	flex-direction: column;
	padding: 32px 28px 28px 0;
	border-right: 1px solid var(--c-border);
}
.home-practices__card:first-child { padding-left: 0; }
.home-practices__card:last-child { padding-right: 0; border-right: 0; }
.home-practices__card:not(:first-child) { padding-left: 28px; }

.home-practices__num {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 22px;
}
.home-practices__title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.25;
	letter-spacing: -0.005em;
	color: var(--c-ink);
	margin: 0 0 16px;
	min-height: 2.5em;
}
.home-practices__body {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0 0 28px;
	flex: 1;
}
.home-practices__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13px;
	color: var(--c-ink);
	align-self: flex-start;
	padding-bottom: 4px;
	border-bottom: 1px solid transparent;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.home-practices__link:hover {
	color: var(--c-accent);
	border-color: var(--c-accent);
}

@media (max-width: 1024px) {
	.home-practices { padding: 64px 0 72px; }
	.home-practices__head { grid-template-columns: 1fr; gap: 32px; margin-bottom: 48px; }
	.home-practices__heading { max-width: none; }
	.home-practices__grid { grid-template-columns: repeat(2, 1fr); }
	.home-practices__card { padding: 32px 24px; }
	.home-practices__card:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--c-border); }
	.home-practices__card:nth-child(even) { padding-right: 0; border-right: 0; }
	.home-practices__card:nth-child(n+3) { border-top: 1px solid var(--c-border); }
	.home-practices__title { min-height: 0; }
}
@media (max-width: 640px) {
	.home-practices { padding: 48px 0 56px; }
	.home-practices__grid { grid-template-columns: 1fr; }
	.home-practices__card {
		padding: 28px 0 !important;
		border-right: 0 !important;
		border-top: 1px solid var(--c-border);
	}
	.home-practices__card:first-child { border-top: 0; }
}

/* =========================================================================
   Homepage — Brand logos band
   ========================================================================= */
.home-logos {
	background: #ece8e1;
	padding: 80px 0 72px;
}
.home-logos__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.home-logos__head {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: start;
	margin-bottom: 56px;
}
.home-logos__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 38px);
	letter-spacing: -0.015em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
	max-width: 22ch;
}
.home-logos__intro {
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 6px 0 0;
	max-width: 52ch;
}

.home-logos__marquee {
	position: relative;
	overflow: hidden;
	border-top: 1px solid var(--c-border);
	border-bottom: 1px solid var(--c-border);
	-webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}
.home-logos__track {
	display: flex;
	width: max-content;
	animation: home-logos-scroll 110s linear infinite;
}
.home-logos__marquee:hover .home-logos__track { animation-play-state: paused; }
.home-logos__group {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-shrink: 0;
}
.home-logos__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 110px;
	flex: 0 0 auto;
	padding: 24px 56px;
}
.home-logos__item a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity 140ms var(--ease);
}
.home-logos__item a:hover { opacity: 0.55; }
.home-logos__item img {
	width: 200px;
	height: 56px;
	object-fit: contain;
	display: block;
	filter: grayscale(100%);
	opacity: 0.72;
	transition: opacity 140ms var(--ease);
}
.home-logos__item:hover img { opacity: 1; }
.home-logos__name {
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--c-text-muted);
}
.home-logos__placeholder {
	display: block;
	width: 110px;
	height: 24px;
	background: rgba(17, 17, 17, 0.05);
	border-radius: 2px;
}

@keyframes home-logos-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.home-logos__track {
		animation: none;
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
	}
	.home-logos__group { flex-wrap: wrap; justify-content: center; }
	.home-logos__group[aria-hidden="true"] { display: none; }
}

@media (max-width: 1024px) {
	.home-logos { padding: 56px 0 48px; }
	.home-logos__head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; }
	.home-logos__heading { max-width: none; }
	.home-logos__item { padding: 20px 40px; }
}
@media (max-width: 480px) {
	.home-logos__item { min-height: 92px; padding: 16px 28px; }
	.home-logos__item img { width: 160px; height: 44px; }
}

/* =========================================================================
   Homepage — The work
   ========================================================================= */
.home-work {
	background: var(--c-bg);
	padding: 88px 0 96px;
}
.home-work__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.home-work__head {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: end;
	margin-bottom: 56px;
}
.home-work__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(48px, 5vw, 72px);
	letter-spacing: -0.02em;
	line-height: 1.02;
	color: var(--c-ink);
	margin: 0;
}
.home-work__heading .accent { color: var(--c-accent); }
.home-work__head-aside {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.home-work__intro {
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0;
	max-width: 56ch;
}
.home-work__see-all {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	align-self: flex-start;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13px;
	color: var(--c-ink);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.home-work__see-all:hover { color: var(--c-accent); border-color: var(--c-accent); }

.home-work__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px 32px;
}
.home-work__card { display: flex; }
.home-work__card-inner {
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: 100%;
	color: inherit;
}
a.home-work__card-inner:hover .home-work__title { color: var(--c-accent); }

.home-work__media {
	width: 100%;
	overflow: hidden;
	background: #e7e2da;
	margin-bottom: 8px;
}
.home-work__media img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 320ms var(--ease);
}
a.home-work__card-inner:hover .home-work__media img { transform: scale(1.02); }
.home-work__media-placeholder {
	width: 100%;
	aspect-ratio: 4 / 5;
	background: #e7e2da;
}

.home-work__eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0;
}
.home-work__title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.3;
	letter-spacing: -0.005em;
	color: var(--c-ink);
	margin: 0;
	transition: color 140ms var(--ease);
}
.home-work__body {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0;
}

@media (max-width: 1024px) {
	.home-work { padding: 64px 0 72px; }
	.home-work__head { grid-template-columns: 1fr; gap: 24px; align-items: start; margin-bottom: 40px; }
	.home-work__grid { grid-template-columns: repeat(2, 1fr); gap: 40px 24px; }
}
@media (max-width: 640px) {
	.home-work { padding: 48px 0 56px; }
	.home-work__grid { grid-template-columns: 1fr; gap: 36px; }
	.home-work__media img,
	.home-work__media-placeholder { aspect-ratio: 16 / 11; }
}

/* =========================================================================
   Homepage — Four phases (dark)
   ========================================================================= */
.home-phases {
	background: #111;
	color: var(--c-bg);
	padding: 96px 0 104px;
}
.home-phases__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.home-phases__head {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: start;
	margin-bottom: 80px;
}
.home-phases__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 4.6vw, 64px);
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: var(--c-bg);
	margin: 0;
	max-width: 14ch;
}
.home-phases__heading .accent { color: var(--c-accent); }
.home-phases__intro {
	font-size: 15px;
	line-height: 1.65;
	color: var(--c-muted-on-dark);
	margin: 8px 0 0;
	max-width: 56ch;
}

.home-phases__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.home-phases__item {
	display: flex;
	flex-direction: column;
	padding: 36px 28px 28px 0;
	border-right: 1px solid rgba(255, 255, 255, 0.08);
}
.home-phases__item:first-child { padding-left: 0; }
.home-phases__item:last-child { padding-right: 0; border-right: 0; }
.home-phases__item:not(:first-child) { padding-left: 28px; }

.home-phases__num {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 4.2vw, 56px);
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--c-bg);
	margin: 0 0 32px;
}
.home-phases__title {
	font-family: var(--font-mono);
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-bg);
	margin: 0 0 18px;
}
.home-phases__body {
	font-family: var(--font-sans);
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--c-muted-on-dark);
	margin: 0 0 28px;
	flex: 1;
}
.home-phases__duration {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin: 0;
}

@media (max-width: 1024px) {
	.home-phases { padding: 64px 0 72px; }
	.home-phases__head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 56px; }
	.home-phases__heading { max-width: none; }
	.home-phases__grid { grid-template-columns: repeat(2, 1fr); }
	.home-phases__item { padding: 36px 24px; }
	.home-phases__item:nth-child(odd) { padding-left: 0; }
	.home-phases__item:nth-child(even) { padding-right: 0; border-right: 0; }
	.home-phases__item:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, 0.08); }
}
@media (max-width: 640px) {
	.home-phases { padding: 48px 0 56px; }
	.home-phases__grid { grid-template-columns: 1fr; }
	.home-phases__item {
		padding: 32px 0 !important;
		border-right: 0 !important;
		border-top: 1px solid rgba(255, 255, 255, 0.08);
	}
	.home-phases__item:first-child { border-top: 0; padding-top: 0 !important; }
	.home-phases__num { font-size: 40px; margin-bottom: 20px; }
}

/* =========================================================================
   Homepage — Decision room
   ========================================================================= */
.home-decision {
	background: var(--c-bg);
	padding: 96px 0 104px;
}
.home-decision__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: 96px;
	align-items: start;
}

.home-decision__aside {
	padding-top: 12px;
	border-top: 1px solid var(--c-border);
}
.home-decision__eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 28px;
}
.home-decision__roles {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.home-decision__role {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 16px;
	align-items: baseline;
	padding: 14px 0;
	border-top: 1px solid var(--c-border);
}
.home-decision__role:first-child { border-top: 0; padding-top: 0; }
.home-decision__role-count {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	color: var(--c-accent);
}
.home-decision__role-label {
	font-family: var(--font-sans);
	font-size: 14.5px;
	color: var(--c-ink);
}

.home-decision__lead {
	padding-top: 12px;
}
.home-decision__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 48px);
	letter-spacing: -0.02em;
	line-height: 1.12;
	color: var(--c-ink);
	margin: 0 0 36px;
	max-width: 22ch;
}
.home-decision__heading .accent { color: var(--c-accent); }
.home-decision__body {
	font-size: 16px;
	line-height: 1.65;
	color: var(--c-text);
	margin: 0 0 24px;
	max-width: 62ch;
}
.home-decision__body:last-child { margin-bottom: 0; }

@media (max-width: 1024px) {
	.home-decision { padding: 64px 0 72px; }
	.home-decision__inner { grid-template-columns: 1fr; gap: 48px; }
	.home-decision__heading { max-width: none; }
}
@media (max-width: 640px) {
	.home-decision { padding: 48px 0 56px; }
	.home-decision__inner { gap: 32px; }
}

/* =========================================================================
   Homepage — FAQ accordion
   ========================================================================= */
.home-faq {
	background: var(--c-bg);
	padding: 88px 0 96px;
}
.home-faq__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: 96px;
	align-items: start;
}
.home-faq__head {
	position: sticky;
	top: calc(var(--header-h) + 24px);
}
.home-faq__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 48px);
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--c-ink);
	margin: 0 0 24px;
	max-width: 14ch;
}
.home-faq__heading .accent { color: var(--c-accent); }
.home-faq__intro {
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0;
	max-width: 42ch;
}

.home-faq__list {
	border-top: 1px solid var(--c-border-strong);
}
.home-faq__item {
	border-bottom: 1px solid var(--c-border-strong);
}
.home-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 17px;
	line-height: 1.4;
	color: var(--c-ink);
	transition: color 140ms var(--ease);
}
.home-faq__q::-webkit-details-marker { display: none; }
.home-faq__q:hover { color: var(--c-accent); }
.home-faq__q-text { flex: 1; }
.home-faq__q-icon {
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--c-text-muted);
	flex-shrink: 0;
	transition: color 140ms var(--ease);
}
.home-faq__item[open] .home-faq__q { color: var(--c-accent); }
.home-faq__item[open] .home-faq__q-icon { color: var(--c-accent); }
.home-faq__item[open] .home-faq__q-icon-v { display: none; }

.home-faq__a {
	padding: 0 0 28px;
	max-width: 64ch;
	color: var(--c-text);
	font-size: 15px;
	line-height: 1.7;
}
.home-faq__a p { margin: 0 0 12px; }
.home-faq__a p:last-child { margin-bottom: 0; }
.home-faq__a a {
	color: var(--c-accent);
	border-bottom: 1px solid currentColor;
}

@media (max-width: 1024px) {
	.home-faq { padding: 64px 0 72px; }
	.home-faq__inner { grid-template-columns: 1fr; gap: 40px; }
	.home-faq__head { position: static; }
	.home-faq__heading { max-width: none; }
}
@media (max-width: 640px) {
	.home-faq { padding: 48px 0 56px; }
	.home-faq__q { font-size: 16px; padding: 18px 0; }
}

/* =========================================================================
   Services Hub — shared eyebrow + section header tokens
   ========================================================================= */
.sh-eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 32px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.sh-eyebrow__num { color: var(--c-text); }
.sh-eyebrow__sep { opacity: 0.5; }
.sh-eyebrow--on-dark { color: var(--c-muted-on-dark); }
.sh-eyebrow--on-dark .sh-eyebrow__num { color: var(--c-bg); }

/* Breadcrumb */
.sh-crumbs {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding: 24px 0 16px;
}
.sh-crumbs ol {
	display: flex;
	gap: 10px;
	align-items: center;
}
.sh-crumbs li::after {
	content: "›";
	margin-left: 10px;
	opacity: 0.55;
}
.sh-crumbs li:last-child::after { content: none; }
.sh-crumbs a { color: var(--c-text-muted); transition: color 140ms var(--ease); }
.sh-crumbs a:hover { color: var(--c-accent); }
.sh-crumbs li[aria-current="page"] { color: var(--c-text); }

/* =========================================================================
   Services Hub — Hero
   ========================================================================= */
.sh-hero {
	background: var(--c-bg);
	padding: 0 0 64px;
}
.sh-hero__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.sh-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: 96px;
	align-items: start;
	padding-top: 24px;
}
.sh-hero__lead { padding-top: 8px; }
.sh-hero__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 4.8vw, 68px);
	letter-spacing: -0.025em;
	line-height: 1.04;
	color: var(--c-ink);
	margin: 0 0 32px;
	max-width: 16ch;
}
.sh-hero__heading .accent { color: var(--c-accent); }
.sh-hero__body {
	font-size: 16px;
	line-height: 1.65;
	color: var(--c-text);
	max-width: 64ch;
	margin: 0;
}

.sh-hero__specs {
	padding-top: 12px;
	border-top: 1px solid var(--c-border);
}
.sh-hero__specs dl {
	margin: 0;
	display: flex;
	flex-direction: column;
}
.sh-spec {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 20px;
	align-items: baseline;
	padding: 18px 0;
	border-top: 1px solid var(--c-border);
}
.sh-spec:first-child { border-top: 0; padding-top: 0; }
.sh-spec__label {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0;
}
.sh-spec__value {
	font-family: var(--font-sans);
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--c-ink);
	margin: 0;
}

@media (max-width: 1024px) {
	.sh-hero { padding-bottom: 48px; }
	.sh-hero__grid { grid-template-columns: 1fr; gap: 40px; }
	.sh-hero__heading { max-width: none; }
}
@media (max-width: 640px) {
	.sh-crumbs { padding: 16px 0 12px; }
	.sh-hero { padding-bottom: 32px; }
	.sh-spec { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; }
}

/* =========================================================================
   Services Hub — Handoffs (dark)
   ========================================================================= */
.sh-handoffs {
	background: #111;
	color: var(--c-bg);
	padding: 88px 0 104px;
}
.sh-handoffs__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.sh-handoffs__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 96px;
	align-items: start;
}
.sh-handoffs__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.8vw, 52px);
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--c-bg);
	margin: 0;
	max-width: 18ch;
}
.sh-handoffs__heading .accent { color: var(--c-accent); }
.sh-handoffs__body {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-top: 8px;
}
.sh-handoffs__body p {
	font-family: var(--font-sans);
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--c-muted-on-dark);
	margin: 0;
	max-width: 60ch;
}

@media (max-width: 1024px) {
	.sh-handoffs { padding: 64px 0 72px; }
	.sh-handoffs__grid { grid-template-columns: 1fr; gap: 32px; }
	.sh-handoffs__heading { max-width: none; }
}
@media (max-width: 640px) {
	.sh-handoffs { padding: 48px 0 56px; }
}

/* =========================================================================
   Services Hub — Four services (numbered rows)
   ========================================================================= */
.sh-four {
	background: var(--c-bg);
	padding: 88px 0 96px;
}
.sh-four__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.sh-four__head {
	margin-bottom: 64px;
	max-width: 64ch;
}
.sh-four__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
}
.sh-four__heading .accent { color: var(--c-accent); }

.sh-four__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--c-border-strong);
}
.sh-four__row {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr) auto;
	gap: 48px;
	align-items: center;
	padding: 32px 0;
	border-bottom: 1px solid var(--c-border-strong);
}
.sh-four__num {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: clamp(32px, 3vw, 40px);
	letter-spacing: -0.02em;
	color: var(--c-text-muted);
	line-height: 1;
}
.sh-four__main {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}
.sh-four__title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--c-ink);
	margin: 0;
}
.sh-four__summary {
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0;
	max-width: 72ch;
}
.sh-four__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13.5px;
	color: var(--c-ink);
	padding: 8px 0;
	white-space: nowrap;
	transition: color 140ms var(--ease);
}
.sh-four__link:hover { color: var(--c-accent); }

@media (max-width: 1024px) {
	.sh-four { padding: 64px 0 72px; }
	.sh-four__row { grid-template-columns: 56px 1fr; gap: 24px; row-gap: 12px; }
	.sh-four__link { grid-column: 1 / -1; padding-left: 80px; }
}
@media (max-width: 640px) {
	.sh-four { padding: 48px 0 56px; }
	.sh-four__row { grid-template-columns: 1fr; gap: 8px; }
	.sh-four__num { font-size: 24px; }
	.sh-four__link { padding-left: 0; }
}

/* =========================================================================
   Services Hub — Journey map
   ========================================================================= */
.sh-journey {
	background: #ece8e1;
	padding: 88px 0 96px;
}
.sh-journey__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.sh-journey__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 56px;
	max-width: 100%;
}
.sh-journey__head-lead { max-width: 56ch; }
.sh-journey__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
}
.sh-journey__heading .accent { color: var(--c-accent); }
.sh-journey__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	white-space: nowrap;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sh-journey__link:hover { color: var(--c-accent); border-color: var(--c-accent); }

.sh-journey__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--c-border-strong);
}
.sh-journey__col {
	display: flex;
	flex-direction: column;
	padding: 28px 24px 28px 0;
	border-right: 1px solid var(--c-border);
}
.sh-journey__col:first-child { padding-left: 0; }
.sh-journey__col:last-child { padding-right: 0; border-right: 0; }
.sh-journey__col:not(:first-child) { padding-left: 24px; }

.sh-journey__phase {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin: 0 0 28px;
	display: flex;
	gap: 8px;
	align-items: baseline;
}
.sh-journey__phase-name { color: var(--c-ink); }
.sh-journey__phase-sep { opacity: 0.6; }

.sh-journey__rows {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.sh-journey__row dt {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 6px;
}
.sh-journey__row dd {
	font-family: var(--font-sans);
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--c-ink);
	margin: 0;
}
.sh-journey__duration {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 17px;
	letter-spacing: -0.005em;
}

.sh-journey__total {
	margin: 56px auto 0;
	text-align: center;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--c-accent);
}

@media (max-width: 1024px) {
	.sh-journey { padding: 64px 0 72px; }
	.sh-journey__head { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 40px; }
	.sh-journey__grid { grid-template-columns: repeat(2, 1fr); }
	.sh-journey__col { padding: 28px 20px; }
	.sh-journey__col:nth-child(odd) { padding-left: 0; }
	.sh-journey__col:nth-child(even) { padding-right: 0; border-right: 0; }
	.sh-journey__col:nth-child(n+3) { border-top: 1px solid var(--c-border); }
}
@media (max-width: 640px) {
	.sh-journey { padding: 48px 0 56px; }
	.sh-journey__grid { grid-template-columns: 1fr; }
	.sh-journey__col {
		padding: 28px 0 !important;
		border-right: 0 !important;
		border-top: 1px solid var(--c-border);
	}
	.sh-journey__col:first-child { border-top: 0; padding-top: 0 !important; }
}

/* =========================================================================
   Services Hub — Engagement models
   ========================================================================= */
.sh-engage {
	background: var(--c-bg);
	padding: 88px 0 96px;
}
.sh-engage__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.sh-engage__head {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 96px;
	align-items: end;
	margin-bottom: 56px;
}
.sh-engage__head-lead { max-width: 26ch; }
.sh-engage__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
}
.sh-engage__heading .accent { color: var(--c-accent); }
.sh-engage__intro {
	font-size: 15px;
	line-height: 1.65;
	color: var(--c-text-muted);
	margin: 0;
	max-width: 52ch;
}

.sh-engage__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.sh-engage__card {
	background: #ece8e1;
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
}
.sh-engage__card-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 28px;
}
.sh-engage__num {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--c-text);
}
.sh-engage__tag {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-accent);
}
.sh-engage__title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 22px;
	letter-spacing: -0.01em;
	color: var(--c-ink);
	margin: 0 0 14px;
}
.sh-engage__body {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--c-text);
	margin: 0 0 28px;
	flex: 1;
}
.sh-engage__fit {
	padding-top: 20px;
	border-top: 1px solid var(--c-border-strong);
}
.sh-engage__fit-label {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 8px;
}
.sh-engage__fit-body {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0;
}

@media (max-width: 1024px) {
	.sh-engage { padding: 64px 0 72px; }
	.sh-engage__head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; align-items: start; }
	.sh-engage__head-lead { max-width: none; }
	.sh-engage__grid { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 640px) {
	.sh-engage { padding: 48px 0 56px; }
}

/* =========================================================================
   Services Hub — Industries we serve
   ========================================================================= */
.sh-industries {
	background: #ece8e1;
	padding: 72px 0 80px;
}
.sh-industries__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.sh-industries__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 40px;
}
.sh-industries__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 38px);
	letter-spacing: -0.015em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
}
.sh-industries__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	white-space: nowrap;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sh-industries__link:hover { color: var(--c-accent); border-color: var(--c-accent); }

.sh-industries__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}
.sh-industries__chip {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 20px;
	background: var(--c-bg);
	color: var(--c-ink);
	min-height: 116px;
	transition: background 140ms var(--ease), color 140ms var(--ease);
}
a.sh-industries__chip:hover { background: var(--c-ink); color: var(--c-bg); }
a.sh-industries__chip:hover .sh-industries__num { color: var(--c-bg); opacity: 0.7; }
.sh-industries__num {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	color: var(--c-text-muted);
}
.sh-industries__name {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 15.5px;
	line-height: 1.3;
	margin-top: auto;
}

@media (max-width: 1024px) {
	.sh-industries__head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.sh-industries__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
	.sh-industries { padding: 48px 0 56px; }
	.sh-industries__grid { grid-template-columns: repeat(2, 1fr); }
	.sh-industries__chip { min-height: 96px; padding: 18px 16px; }
}

/* =========================================================================
   Services Hub — Service FAQs
   ========================================================================= */
.sh-faq {
	background: var(--c-bg);
	padding: 88px 0 96px;
}
.sh-faq__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: 96px;
	align-items: start;
}
.sh-faq__head {
	position: sticky;
	top: calc(var(--header-h) + 24px);
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.sh-faq__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
	max-width: 16ch;
}
.sh-faq__heading .accent { color: var(--c-accent); }
.sh-faq__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	align-self: flex-start;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sh-faq__link:hover { color: var(--c-accent); border-color: var(--c-accent); }

.sh-faq__list {
	border-top: 1px solid var(--c-border-strong);
}
.sh-faq__item {
	border-bottom: 1px solid var(--c-border-strong);
}
.sh-faq__q {
	display: grid;
	grid-template-columns: 56px 1fr 28px;
	gap: 16px;
	align-items: baseline;
	padding: 22px 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 17px;
	line-height: 1.4;
	color: var(--c-ink);
	transition: color 140ms var(--ease);
}
.sh-faq__q::-webkit-details-marker { display: none; }
.sh-faq__q:hover { color: var(--c-accent); }
.sh-faq__q-num {
	font-family: var(--font-mono);
	font-weight: 400;
	font-size: 11px;
	letter-spacing: 0.16em;
	color: var(--c-text-muted);
	padding-top: 2px;
}
.sh-faq__q-text { font-weight: 500; }
.sh-faq__q-icon {
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--c-text-muted);
	transition: color 140ms var(--ease);
}
.sh-faq__item[open] .sh-faq__q { color: var(--c-accent); }
.sh-faq__item[open] .sh-faq__q-num { color: var(--c-accent); }
.sh-faq__item[open] .sh-faq__q-icon { color: var(--c-accent); }
.sh-faq__item[open] .sh-faq__q-icon-v { display: none; }

.sh-faq__a {
	padding: 0 0 28px 72px;
	max-width: 72ch;
	color: var(--c-text);
	font-size: 15px;
	line-height: 1.7;
}
.sh-faq__a p { margin: 0 0 12px; }
.sh-faq__a p:last-child { margin-bottom: 0; }
.sh-faq__a a { color: var(--c-accent); border-bottom: 1px solid currentColor; }

@media (max-width: 1024px) {
	.sh-faq { padding: 64px 0 72px; }
	.sh-faq__inner { grid-template-columns: 1fr; gap: 40px; }
	.sh-faq__head { position: static; }
	.sh-faq__heading { max-width: none; }
}
@media (max-width: 640px) {
	.sh-faq { padding: 48px 0 56px; }
	.sh-faq__q { grid-template-columns: 40px 1fr 24px; font-size: 16px; padding: 18px 0; gap: 12px; }
	.sh-faq__a { padding-left: 52px; }
}

/* =========================================================================
   Service Detail — shared tokens
   ========================================================================= */
.sd-eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 32px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.sd-eyebrow__num { color: var(--c-text); }
.sd-eyebrow__sep { opacity: 0.5; }
.sd-eyebrow--on-dark { color: var(--c-muted-on-dark); }
.sd-eyebrow--on-dark .sd-eyebrow__num { color: var(--c-bg); }

.sd-crumbs {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding: 24px 0 16px;
}
.sd-crumbs ol { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.sd-crumbs li::after { content: "›"; margin-left: 10px; opacity: 0.55; }
.sd-crumbs li:last-child::after { content: none; }
.sd-crumbs a { color: var(--c-text-muted); transition: color 140ms var(--ease); }
.sd-crumbs a:hover { color: var(--c-accent); }
.sd-crumbs li[aria-current="page"] { color: var(--c-text); }

/* =========================================================================
   Service Detail — Hero
   ========================================================================= */
.sd-hero { background: var(--c-bg); padding: 0 0 72px; }
.sd-hero__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.sd-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: stretch;
	padding-top: 24px;
}
.sd-hero__lead { padding-top: 8px; display: flex; flex-direction: column; }
.sd-hero__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 4.8vw, 68px);
	letter-spacing: -0.025em;
	line-height: 1.04;
	color: var(--c-ink);
	margin: 0 0 32px;
	max-width: 14ch;
}
.sd-hero__heading .accent { color: var(--c-accent); }
.sd-hero__body {
	font-size: 16px;
	line-height: 1.65;
	color: var(--c-text);
	max-width: 56ch;
	margin: 0 0 36px;
}
.sd-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
	margin-top: auto;
}
.sd-hero__ghost {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.04em;
	color: var(--c-ink);
	padding: 16px 8px;
	border-bottom: 1px solid var(--c-border-strong);
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sd-hero__ghost:hover { color: var(--c-accent); border-color: var(--c-accent); }

.sd-hero__concept {
	min-height: 420px;
	display: flex;
	overflow: hidden;
}
.sd-hero__concept img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.sd-hero__concept-card {
	flex: 1;
	background: #efece6;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 32px 36px;
	color: var(--c-text-muted);
	min-height: 420px;
}
.sd-hero__concept-label {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0;
}
.sd-hero__concept-title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(36px, 3.4vw, 48px);
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--c-ink);
	margin: 0;
	align-self: center;
	text-align: center;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

@media (max-width: 1024px) {
	.sd-hero { padding-bottom: 56px; }
	.sd-hero__grid { grid-template-columns: 1fr; gap: 40px; }
	.sd-hero__heading { max-width: none; }
	.sd-hero__concept, .sd-hero__concept-card { min-height: 320px; }
}
@media (max-width: 640px) {
	.sd-crumbs { padding: 16px 0 12px; }
	.sd-hero { padding-bottom: 40px; }
}

/* =========================================================================
   Service Detail — Philosophy
   ========================================================================= */
.sd-phil { background: var(--c-bg); padding: 64px 0 72px; }
.sd-phil__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.sd-phil__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: start;
}
.sd-phil__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
	max-width: 22ch;
}
.sd-phil__heading .accent { color: var(--c-accent); }
.sd-phil__body { display: flex; flex-direction: column; gap: 18px; padding-top: 8px; }
.sd-phil__body p {
	font-family: var(--font-sans);
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--c-text);
	margin: 0;
	max-width: 60ch;
}

@media (max-width: 1024px) {
	.sd-phil { padding: 48px 0 56px; }
	.sd-phil__grid { grid-template-columns: 1fr; gap: 28px; }
	.sd-phil__heading { max-width: none; }
}

/* =========================================================================
   Service Detail — Engagement covers (numbered rows)
   ========================================================================= */
.sd-engage { background: #ece8e1; padding: 88px 0 96px; }
.sd-engage__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.sd-engage__head {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: end;
	margin-bottom: 48px;
}
.sd-engage__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
}
.sd-engage__intro {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0;
	max-width: 48ch;
}

.sd-engage__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-border-strong); }
.sd-engage__row {
	display: grid;
	grid-template-columns: 64px minmax(0, 0.42fr) minmax(0, 1fr);
	gap: 32px;
	align-items: baseline;
	padding: 24px 0;
	border-bottom: 1px solid var(--c-border);
}
.sd-engage__num {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	color: var(--c-text-muted);
}
.sd-engage__row-title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 18px;
	letter-spacing: -0.005em;
	color: var(--c-ink);
	margin: 0;
}
.sd-engage__row-body {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--c-text-muted);
	margin: 0;
	max-width: 72ch;
}

@media (max-width: 1024px) {
	.sd-engage { padding: 64px 0 72px; }
	.sd-engage__head { grid-template-columns: 1fr; gap: 16px; align-items: start; margin-bottom: 32px; }
	.sd-engage__row { grid-template-columns: 40px 1fr; row-gap: 6px; padding: 20px 0; }
	.sd-engage__row-body { grid-column: 2 / -1; }
}
@media (max-width: 640px) {
	.sd-engage__row { grid-template-columns: 32px 1fr; gap: 16px; }
}

/* =========================================================================
   Service Detail — Methodology
   ========================================================================= */
.sd-method { background: var(--c-bg); padding: 88px 0 96px; }
.sd-method__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.sd-method__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 96px;
	align-items: start;
}
.sd-method__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0 0 18px;
	max-width: 18ch;
}
.sd-method__heading .accent { color: var(--c-accent); }
.sd-method__intro {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 32px;
}
.sd-method__body { display: flex; flex-direction: column; gap: 16px; max-width: 60ch; }
.sd-method__body p {
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--c-text);
	margin: 0;
}

.sd-method__questions {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--c-border-strong);
}
.sd-method__q {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 16px;
	align-items: baseline;
	padding: 16px 0;
	border-bottom: 1px solid var(--c-border);
}
.sd-method__q-num {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	color: var(--c-accent);
}
.sd-method__q-text {
	font-family: var(--font-sans);
	font-size: 15px;
	line-height: 1.45;
	color: var(--c-ink);
}

@media (max-width: 1024px) {
	.sd-method { padding: 64px 0 72px; }
	.sd-method__grid { grid-template-columns: 1fr; gap: 40px; }
	.sd-method__heading { max-width: none; }
}

/* =========================================================================
   Service Detail — Framework (dark table)
   ========================================================================= */
.sd-fw { background: #111; color: var(--c-bg); padding: 96px 0 104px; }
.sd-fw__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.sd-fw__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(36px, 4vw, 56px);
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: var(--c-bg);
	margin: 0 0 56px;
	max-width: 18ch;
}
.sd-fw__heading .accent { color: var(--c-accent); }

.sd-fw__table { display: flex; flex-direction: column; }
.sd-fw__row {
	display: grid;
	grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.1fr) minmax(0, 1.3fr);
	gap: 32px;
	padding: 22px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	align-items: baseline;
}
.sd-fw__row:first-child { border-top: 1px solid rgba(255, 255, 255, 0.08); }
.sd-fw__row--head {
	padding: 14px 0;
}
.sd-fw__cell--head {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
}
.sd-fw__cell {
	font-family: var(--font-sans);
	font-size: 15px;
	line-height: 1.55;
	color: var(--c-muted-on-dark);
}
.sd-fw__cell--c1 {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-accent);
}

@media (max-width: 1024px) {
	.sd-fw { padding: 64px 0 72px; }
	.sd-fw__row,
	.sd-fw__row--head { grid-template-columns: 1fr; gap: 6px; padding: 20px 0; }
	.sd-fw__cell--head { display: none; }
	.sd-fw__row::before {
		display: none;
	}
}

/* =========================================================================
   Service Detail — Body Sections (flexible heading + body)
   ========================================================================= */
.sd-body { background: var(--c-bg); padding: 72px 0 80px; }
.sd-body__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: flex;
	flex-direction: column;
	gap: 64px;
}
.sd-body__section {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 96px;
	align-items: start;
}
.sd-body__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 38px);
	letter-spacing: -0.015em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
	max-width: 22ch;
}
.sd-body__content {
	font-family: var(--font-sans);
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--c-text);
	max-width: 64ch;
}
.sd-body__content p { margin: 0 0 14px; }
.sd-body__content p:last-child { margin-bottom: 0; }
.sd-body__content ul,
.sd-body__content ol {
	list-style: disc;
	padding-left: 22px;
	margin: 0 0 14px;
	color: var(--c-text);
}
.sd-body__content ul li,
.sd-body__content ol li { margin-bottom: 6px; line-height: 1.55; }
.sd-body__content strong { font-weight: 500; color: var(--c-ink); }
.sd-body__content a { color: var(--c-accent); border-bottom: 1px solid currentColor; }
.sd-body__content table {
	border-collapse: collapse;
	width: 100%;
	margin: 0 0 18px;
	font-size: 14.5px;
}
.sd-body__content thead { background: rgba(17, 17, 17, 0.04); }
.sd-body__content th,
.sd-body__content td {
	text-align: left;
	padding: 10px 14px;
	border-bottom: 1px solid var(--c-border);
	vertical-align: top;
	line-height: 1.45;
}
.sd-body__content th {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	font-weight: 500;
	border-bottom-color: var(--c-border-strong);
}
.sd-body__content td:last-child { font-weight: 500; color: var(--c-ink); }
@media (max-width: 720px) {
	.sd-body__content table { font-size: 13px; }
	.sd-body__content th,
	.sd-body__content td { padding: 8px 8px; }
}

@media (max-width: 1024px) {
	.sd-body { padding: 56px 0 64px; }
	.sd-body__inner { gap: 48px; }
	.sd-body__section { grid-template-columns: 1fr; gap: 16px; }
	.sd-body__heading { max-width: none; }
}

/* =========================================================================
   Service Detail — Transition
   ========================================================================= */
.sd-trans { background: var(--c-bg); padding: 48px 0; border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); }
.sd-trans__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.sd-trans__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(22px, 2vw, 28px);
	letter-spacing: -0.015em;
	line-height: 1.2;
	color: var(--c-ink);
	margin: 8px 0 0;
}
.sd-trans__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	white-space: nowrap;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sd-trans__link:hover { color: var(--c-accent); border-color: var(--c-accent); }

@media (max-width: 640px) {
	.sd-trans__inner { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* =========================================================================
   Service Detail — Chips (shared by Industries + Display Types)
   ========================================================================= */
.sd-chips { background: var(--c-bg); padding: 72px 0 80px; }
.sd-chips--industries { background: #ece8e1; }
.sd-chips--display-types { background: var(--c-bg); }

.sd-chips__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.sd-chips__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 36px;
}
.sd-chips__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 38px);
	letter-spacing: -0.015em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
}
.sd-chips__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	white-space: nowrap;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sd-chips__link:hover { color: var(--c-accent); border-color: var(--c-accent); }

.sd-chips__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}
.sd-chips__grid[data-count="6"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.sd-chips__chip {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 20px;
	background: rgba(255, 255, 255, 0.6);
	color: var(--c-ink);
	min-height: 112px;
	transition: background 140ms var(--ease), color 140ms var(--ease);
}
.sd-chips--industries .sd-chips__chip { background: var(--c-bg); }
a.sd-chips__chip:hover { background: var(--c-ink); color: var(--c-bg); }
a.sd-chips__chip:hover .sd-chips__num { color: var(--c-bg); opacity: 0.7; }
.sd-chips__num {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	color: var(--c-text-muted);
}
.sd-chips__name {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 15.5px;
	line-height: 1.3;
	margin-top: auto;
}

@media (max-width: 1024px) {
	.sd-chips__head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.sd-chips__grid,
	.sd-chips__grid[data-count="6"] { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
	.sd-chips { padding: 48px 0 56px; }
	.sd-chips__grid,
	.sd-chips__grid[data-count="6"] { grid-template-columns: repeat(2, 1fr); }
	.sd-chips__chip { min-height: 96px; padding: 18px 16px; }
}

/* =========================================================================
   Service Detail — Case studies
   ========================================================================= */
.sd-cs { background: #ece8e1; padding: 88px 0 96px; }
.sd-cs__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.sd-cs__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 48px;
}
.sd-cs__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 38px);
	letter-spacing: -0.015em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
}
.sd-cs__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	white-space: nowrap;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sd-cs__link:hover { color: var(--c-accent); border-color: var(--c-accent); }

.sd-cs__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 32px;
}
.sd-cs__card-inner { display: flex; flex-direction: column; gap: 14px; color: inherit; }
a.sd-cs__card-inner:hover .sd-cs__card-title { color: var(--c-accent); }
.sd-cs__media { width: 100%; overflow: hidden; background: #e0dbd2; margin-bottom: 6px; }
.sd-cs__media img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 320ms var(--ease);
}
a.sd-cs__card-inner:hover .sd-cs__media img { transform: scale(1.02); }
.sd-cs__media-placeholder { width: 100%; aspect-ratio: 4 / 5; background: #e0dbd2; }
.sd-cs__card-eyebrow {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0;
}
.sd-cs__card-title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 18px;
	line-height: 1.3;
	letter-spacing: -0.005em;
	color: var(--c-ink);
	margin: 0;
	transition: color 140ms var(--ease);
}

@media (max-width: 1024px) {
	.sd-cs { padding: 64px 0 72px; }
	.sd-cs__head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.sd-cs__grid { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
}
@media (max-width: 640px) {
	.sd-cs { padding: 48px 0 56px; }
	.sd-cs__grid { grid-template-columns: 1fr; gap: 32px; }
	.sd-cs__media img,
	.sd-cs__media-placeholder { aspect-ratio: 16 / 11; }
}

/* =========================================================================
   Service Detail — FAQ
   ========================================================================= */
.sd-faq { background: var(--c-bg); padding: 88px 0 96px; }
.sd-faq__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: 96px;
	align-items: start;
}
.sd-faq__head {
	position: sticky;
	top: calc(var(--header-h) + 24px);
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.sd-faq__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0;
	max-width: 16ch;
}
.sd-faq__heading .accent { color: var(--c-accent); }
.sd-faq__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--c-border-strong);
	align-self: flex-start;
	transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.sd-faq__link:hover { color: var(--c-accent); border-color: var(--c-accent); }

.sd-faq__list { border-top: 1px solid var(--c-border-strong); }
.sd-faq__item { border-bottom: 1px solid var(--c-border-strong); }
.sd-faq__q {
	display: grid;
	grid-template-columns: 56px 1fr 28px;
	gap: 16px;
	align-items: baseline;
	padding: 22px 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 17px;
	line-height: 1.4;
	color: var(--c-ink);
	transition: color 140ms var(--ease);
}
.sd-faq__q::-webkit-details-marker { display: none; }
.sd-faq__q:hover { color: var(--c-accent); }
.sd-faq__q-num {
	font-family: var(--font-mono);
	font-weight: 400;
	font-size: 11px;
	letter-spacing: 0.16em;
	color: var(--c-text-muted);
	padding-top: 2px;
}
.sd-faq__q-icon {
	width: 28px; height: 28px;
	display: inline-flex;
	align-items: center; justify-content: center;
	color: var(--c-text-muted);
	transition: color 140ms var(--ease);
}
.sd-faq__item[open] .sd-faq__q,
.sd-faq__item[open] .sd-faq__q-num,
.sd-faq__item[open] .sd-faq__q-icon { color: var(--c-accent); }
.sd-faq__item[open] .sd-faq__q-icon-v { display: none; }

.sd-faq__a {
	padding: 0 0 28px 72px;
	max-width: 72ch;
	color: var(--c-text);
	font-size: 15px;
	line-height: 1.7;
}
.sd-faq__a p { margin: 0 0 12px; }
.sd-faq__a p:last-child { margin-bottom: 0; }
.sd-faq__a a { color: var(--c-accent); border-bottom: 1px solid currentColor; }

@media (max-width: 1024px) {
	.sd-faq { padding: 64px 0 72px; }
	.sd-faq__inner { grid-template-columns: 1fr; gap: 40px; }
	.sd-faq__head { position: static; }
	.sd-faq__heading { max-width: none; }
}
@media (max-width: 640px) {
	.sd-faq { padding: 48px 0 56px; }
	.sd-faq__q { grid-template-columns: 40px 1fr 24px; font-size: 16px; padding: 18px 0; gap: 12px; }
	.sd-faq__a { padding-left: 52px; }
}

/* =========================================================================
   FAQ Archive — /faq/
   ========================================================================= */
.faq-archive__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.faq-archive__hero { background: var(--c-bg); padding: 0 0 56px; }
.faq-archive__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 5vw, 64px);
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: var(--c-ink);
	margin: 0 0 24px;
	max-width: 22ch;
}
.faq-archive__heading .accent { color: var(--c-accent); }
.faq-archive__body {
	font-size: 17px;
	line-height: 1.6;
	color: var(--c-text);
	max-width: 60ch;
	margin: 0;
}
.faq-archive__body a { color: var(--c-accent); border-bottom: 1px solid currentColor; }

.faq-archive__list-wrap { background: var(--c-bg); padding: 24px 0 96px; }
.faq-archive__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.faq-archive__item { display: flex; }
.faq-archive__link {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: rgba(255, 255, 255, 0.55);
	padding: 32px 32px 28px;
	color: inherit;
	flex: 1;
	transition: background 140ms var(--ease);
}
.faq-archive__link:hover { background: rgba(255, 255, 255, 0.85); }
.faq-archive__q {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 22px;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--c-ink);
	margin: 0;
}
.faq-archive__a {
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--c-text-muted);
	margin: 0;
	flex: 1;
}
.faq-archive__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin-top: 4px;
}

@media (max-width: 900px) {
	.faq-archive__list { grid-template-columns: 1fr; gap: 16px; }
	.faq-archive__link { padding: 24px; }
}

/* =========================================================================
   FAQ Single — /faq/{slug}/
   ========================================================================= */
.faq-single__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.faq-single__hero {
	background: var(--c-bg);
	padding: 0 0 48px;
}
.faq-single__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(36px, 4.6vw, 60px);
	letter-spacing: -0.02em;
	line-height: 1.08;
	color: var(--c-ink);
	margin: 24px 0 32px;
	max-width: 22ch;
}
.faq-single__ai-answer {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.55;
	color: var(--c-text);
	margin: 0;
	max-width: 64ch;
	padding-left: 18px;
	border-left: 3px solid var(--c-accent);
}

.faq-single__body {
	background: var(--c-bg);
	padding: 32px 0 88px;
}
.faq-single__answer {
	max-width: 72ch;
	font-family: var(--font-sans);
	font-size: 16.5px;
	line-height: 1.75;
	color: var(--c-text);
}
.faq-single__answer h2 {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 28px;
	letter-spacing: -0.015em;
	line-height: 1.2;
	color: var(--c-ink);
	margin: 48px 0 16px;
}
.faq-single__answer h3 {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 21px;
	letter-spacing: -0.005em;
	line-height: 1.3;
	color: var(--c-ink);
	margin: 36px 0 12px;
}
.faq-single__answer h4 {
	font-family: var(--font-mono);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin: 28px 0 10px;
}
.faq-single__answer p { margin: 0 0 18px; }
.faq-single__answer ul,
.faq-single__answer ol { margin: 0 0 18px; padding-left: 22px; }
.faq-single__answer li { margin-bottom: 6px; line-height: 1.6; }
.faq-single__answer strong { font-weight: 500; color: var(--c-ink); }
.faq-single__answer a { color: var(--c-accent); border-bottom: 1px solid currentColor; }
.faq-single__answer blockquote {
	margin: 24px 0;
	padding: 16px 22px;
	border-left: 3px solid var(--c-accent);
	background: rgba(255, 255, 255, 0.5);
}
.faq-single__answer code,
.faq-single__answer pre {
	font-family: var(--font-mono);
	font-size: 14px;
	background: rgba(17, 17, 17, 0.05);
	padding: 2px 6px;
	border-radius: 3px;
}
.faq-single__answer pre {
	display: block;
	padding: 16px 20px;
	margin: 0 0 18px;
	overflow-x: auto;
}
.faq-single__answer table {
	border-collapse: collapse;
	width: 100%;
	margin: 0 0 24px;
	font-size: 15px;
}
.faq-single__answer th,
.faq-single__answer td {
	text-align: left;
	padding: 12px 14px;
	border-bottom: 1px solid var(--c-border);
	vertical-align: top;
}
.faq-single__answer th {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	font-weight: 500;
}

.faq-single__related {
	background: #ece8e1;
	padding: 64px 0 80px;
}
.faq-single__related-list {
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
	border-top: 1px solid var(--c-border-strong);
}
.faq-single__related-list li {
	border-bottom: 1px solid var(--c-border-strong);
}
.faq-single__related-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 20px 0;
	color: var(--c-ink);
	transition: color 140ms var(--ease);
}
.faq-single__related-list a:hover { color: var(--c-accent); }
.faq-single__related-q {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 17px;
	line-height: 1.35;
}

@media (max-width: 640px) {
	.faq-single__hero { padding-bottom: 32px; }
	.faq-single__heading { font-size: clamp(32px, 9vw, 44px); }
	.faq-single__ai-answer { font-size: 17px; }
	.faq-single__body { padding: 24px 0 56px; }
	.faq-single__related { padding: 48px 0 56px; }
}

/* =========================================================================
   Insights — archive (/insights/) + insight cards
   ========================================================================= */
.insights-archive__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.insights-archive__hero { background: var(--c-bg); padding: 0 0 48px; }
.insights-archive__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 5vw, 64px);
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: var(--c-ink);
	margin: 24px 0;
	max-width: 22ch;
}
.insights-archive__heading .accent { color: var(--c-accent); }
.insights-archive__body {
	font-size: 17px;
	line-height: 1.6;
	color: var(--c-text);
	max-width: 60ch;
	margin: 0;
}

.insights-archive__why {
	background: #ece8e1;
	padding: 64px 0;
}
.insights-archive__why-heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 38px);
	letter-spacing: -0.015em;
	color: var(--c-ink);
	margin: 0 0 24px;
	max-width: 26ch;
}
.insights-archive__why-heading .accent { color: var(--c-accent); }
.insights-archive__why-body { display: flex; flex-direction: column; gap: 16px; max-width: 70ch; }
.insights-archive__why-body p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--c-text); }

.insights-archive__featured,
.insights-archive__list-wrap { background: var(--c-bg); padding: 72px 0; }
.insights-archive__section-heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 38px);
	letter-spacing: -0.015em;
	color: var(--c-ink);
	margin: 12px 0 32px;
}
.insights-archive__featured-grid,
.insights-archive__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.insight-card { display: flex; }
.insight-card__link {
	display: flex;
	flex-direction: column;
	gap: 12px;
	background: rgba(255, 255, 255, 0.55);
	padding: 28px 28px 24px;
	color: inherit;
	flex: 1;
	transition: background 140ms var(--ease);
}
.insight-card__link:hover { background: rgba(255, 255, 255, 0.85); }
.insight-card__topic {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin: 0;
}
.insight-card__title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.25;
	letter-spacing: -0.005em;
	color: var(--c-ink);
	margin: 0;
}
.insight-card__excerpt {
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--c-text-muted);
	margin: 0;
	flex: 1;
}
.insight-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin-top: 4px;
}

@media (max-width: 1024px) {
	.insights-archive__featured-grid,
	.insights-archive__list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.insights-archive__featured-grid,
	.insights-archive__list { grid-template-columns: 1fr; }
	.insights-archive__featured,
	.insights-archive__list-wrap { padding: 48px 0; }
}

/* =========================================================================
   Insight Single — reuses FAQ-single styles for body content
   ========================================================================= */
.insight-single__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.insight-single__hero { background: var(--c-bg); padding: 0 0 48px; }
.insight-single__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(36px, 4.6vw, 60px);
	letter-spacing: -0.02em;
	line-height: 1.08;
	color: var(--c-ink);
	margin: 24px 0 32px;
	max-width: 24ch;
}
.insight-single__ai-answer {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.55;
	color: var(--c-text);
	margin: 0;
	max-width: 64ch;
	padding-left: 18px;
	border-left: 3px solid var(--c-accent);
}
.insight-single__body { background: var(--c-bg); padding: 32px 0 88px; }

/* =========================================================================
   Contact page — two-column intake
   ========================================================================= */
.contact-hero__lead { padding-top: 8px; max-width: 64ch; }

.contact-intake {
	background: var(--c-bg);
	padding: 56px 0 96px;
	border-top: 1px solid var(--c-border);
}
.contact-intake__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}
.contact-intake__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(30px, 3.2vw, 40px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--c-ink);
	margin: 0 0 16px;
}
.contact-intake__intro {
	font-size: 15px;
	line-height: 1.65;
	color: var(--c-text-muted);
	margin: 0 0 32px;
	max-width: 56ch;
}

/* Intake form */
.intake-form { display: block; }
.intake-form__note {
	font-size: 12.5px;
	color: var(--c-text-muted);
	background: rgba(207, 79, 36, 0.06);
	padding: 10px 12px;
	border-left: 3px solid var(--c-accent);
	margin: 0 0 28px;
}
.intake-form__note strong { color: var(--c-ink); font-weight: 500; }

.intake-form__alert {
	font-size: 13.5px;
	line-height: 1.5;
	padding: 14px 16px;
	margin: 0 0 28px;
	border-left: 3px solid var(--c-ink);
}
.intake-form__alert p { margin: 0 0 6px; }
.intake-form__alert p:last-child { margin-bottom: 0; }
.intake-form__alert ul { margin: 4px 0 0 18px; padding: 0; }
.intake-form__alert li { margin: 2px 0; }
.intake-form__alert--success {
	background: rgba(35, 110, 60, 0.06);
	border-left-color: #236e3c;
	color: var(--c-ink);
}
.intake-form__alert--error {
	background: rgba(178, 38, 38, 0.06);
	border-left-color: #b22626;
	color: var(--c-ink);
}

.intake-form__row { display: block; margin-bottom: 24px; }
.intake-form__row--two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.intake-form__row label { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.intake-form__label {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 14px;
	color: var(--c-ink);
	letter-spacing: -0.005em;
}
.intake-form__label em { color: var(--c-accent); font-style: normal; font-weight: 500; }
.intake-form input[type="text"],
.intake-form input[type="email"],
.intake-form input[type="tel"],
.intake-form input[type="file"],
.intake-form select,
.intake-form textarea {
	font-family: var(--font-sans);
	font-size: 15px;
	color: var(--c-ink);
	background: #fff;
	border: 1px solid var(--c-border-strong);
	padding: 12px 14px;
	width: 100%;
	border-radius: 0;
	box-shadow: none;
	transition: border-color 140ms var(--ease);
}
.intake-form input::placeholder,
.intake-form textarea::placeholder { color: var(--c-text-muted); }
.intake-form input:focus,
.intake-form select:focus,
.intake-form textarea:focus { outline: none; border-color: var(--c-accent); }
.intake-form select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%2375787b' stroke-width='1.6' d='M1 1.5l5 5 5-5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
}
.intake-form textarea { resize: vertical; min-height: 120px; }
.intake-form input[type="file"] { padding: 10px 12px; background: rgba(255,255,255,0.6); }
.intake-form__hint {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	color: var(--c-text-muted);
	text-transform: uppercase;
}
.intake-form__submit { width: 100%; justify-content: center; padding: 18px 24px; font-size: 15px; }

/* Sidebar cards */
.contact-intake__sidebar { display: flex; flex-direction: column; gap: 24px; }
.contact-card {
	background: #efece6;
	padding: 28px 28px 26px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.contact-card__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 22px;
	letter-spacing: -0.01em;
	color: var(--c-ink);
	margin: 0;
}
.contact-card__body { font-size: 14.5px; line-height: 1.6; color: var(--c-text); margin: 0; }
.contact-card__label {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 14px;
	color: var(--c-ink);
	margin: 8px 0 -4px;
}
.contact-card__book-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 14px;
	color: var(--c-accent);
	background: transparent;
	border: 2px solid var(--c-accent);
	padding: 14px 20px;
	width: 100%;
	text-align: center;
	transition: background 140ms var(--ease), color 140ms var(--ease);
}
.contact-card__book-btn:hover { background: var(--c-accent); color: var(--c-bg); }

.contact-card__list { margin: 4px 0 0; }
.contact-card__row { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-bottom: 4px; }
.contact-card__row dt { font-family: var(--font-sans); font-weight: 500; font-size: 14px; color: var(--c-ink); margin: 0; }
.contact-card__row dd { font-family: var(--font-sans); font-size: 14px; margin: 0; }
.contact-card__row dd a { color: var(--c-accent); font-weight: 500; transition: color 140ms var(--ease); }
.contact-card__row dd a:hover { color: #B23E18; }
.contact-card__hours {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	color: var(--c-text-muted);
	display: block;
	margin-top: 2px;
}

/* Numbered steps card */
.contact-card__steps { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.contact-card__step { display: grid; grid-template-columns: 32px 1fr; gap: 14px; align-items: baseline; }
.contact-card__step-num {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--c-accent);
	color: var(--c-bg);
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 1;
}
.contact-card__step-text { line-height: 1.55; }
.contact-card__step-title { font-family: var(--font-sans); font-size: 14.5px; color: var(--c-text); margin: 0; }
.contact-card__step-title strong { color: var(--c-ink); font-weight: 500; }

/* Office card (dark) */
.contact-card--office { background: var(--c-ink); color: var(--c-bg); }
.contact-card--office .contact-card__heading { color: var(--c-bg); }
.contact-card__office-lines p {
	font-family: var(--font-sans);
	font-size: 15px;
	line-height: 1.5;
	color: var(--c-bg);
	margin: 0 0 4px;
}
.contact-card__office-lines p:last-child { margin-bottom: 0; }
.contact-card__office-tagline {
	font-family: var(--font-sans);
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--c-muted-on-dark);
	margin: 12px 0 0;
}

@media (max-width: 1024px) {
	.contact-intake__inner { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 640px) {
	.contact-intake { padding: 40px 0 64px; }
	.intake-form__row--two { grid-template-columns: 1fr; }
	.contact-card { padding: 24px 22px; }
}

/* =========================================================================
   Surface patterns (utility classes — apply to any container)
   ========================================================================= */
.bg-stripes {
	background-image: repeating-linear-gradient(
		45deg,
		transparent 0 14px,
		rgba(255, 255, 255, 0.025) 14px 15px
	);
}
.bg-stripes-light {
	background-image: repeating-linear-gradient(
		45deg,
		transparent 0 14px,
		rgba(17, 17, 17, 0.035) 14px 15px
	);
}
.bg-x-pattern {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><g stroke='%2375787b' stroke-width='1.5' stroke-linecap='round' opacity='0.55'><line x1='32' y1='32' x2='48' y2='48'/><line x1='48' y1='32' x2='32' y2='48'/></g></svg>");
	background-size: 80px 80px;
}
.bg-paper-dot {
	background-image: radial-gradient(circle, rgba(17, 17, 17, 0.07) 1px, transparent 1.5px);
	background-size: 18px 18px;
}
.bg-paper-line {
	background-image: repeating-linear-gradient(
		0deg,
		transparent 0 27px,
		rgba(17, 17, 17, 0.06) 27px 28px
	);
}

/* Dark-variant breadcrumbs (used on case-studies + dark hero contexts) */
.sd-crumbs--on-dark { color: var(--c-muted-on-dark); }
.sd-crumbs--on-dark a { color: var(--c-muted-on-dark); }
.sd-crumbs--on-dark a:hover { color: var(--c-accent); }
.sd-crumbs--on-dark li[aria-current="page"] { color: var(--c-bg); }
.sd-crumbs--on-dark li::after { color: var(--c-muted-on-dark); }

/* =========================================================================
   Case Studies — archive (/case-studies/) + single (dark editorial)
   ========================================================================= */
.case-studies-archive,
.case-study-single {
	background: #0d0d0d;
	color: var(--c-bg);
}
.cs-archive__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.cs-archive__hero { padding: 8px 0 56px; }
.cs-archive__chapter {
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 32px 0 36px;
	display: inline-flex;
	gap: 10px;
}
.cs-archive__chapter-num { color: var(--c-bg); }
.cs-archive__chapter-sep { opacity: 0.6; }

.cs-archive__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr);
	gap: 56px;
	align-items: start;
	margin-bottom: 36px;
}
.cs-archive__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(48px, 6vw, 88px);
	letter-spacing: -0.025em;
	line-height: 1;
	color: var(--c-bg);
	margin: 0;
	max-width: 14ch;
}
.cs-archive__heading .accent { color: var(--c-accent); }
.cs-archive__hero-right {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	line-height: 1.65;
	margin: 0;
	max-width: 32ch;
	text-align: right;
	padding-top: 6px;
}
.cs-archive__hero-body {
	font-family: var(--font-sans);
	font-size: 19px;
	line-height: 1.55;
	color: var(--c-bg);
	max-width: 64ch;
	margin: 0 0 8px;
}
.cs-archive__hero-body .accent { color: var(--c-accent); }

/* Featured editorial spread */
.cs-archive__feature { padding: 32px 0 56px; }
.cs-feature {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	background: #131313;
	border: 1px solid rgba(255, 255, 255, 0.05);
	padding: 36px;
	color: inherit;
	transition: border-color 200ms var(--ease);
}
a.cs-feature:hover { border-color: rgba(207, 79, 36, 0.4); }
.cs-feature--static { cursor: default; }
.cs-feature__media {
	background-color: #1a1a1a;
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
}
.cs-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cs-feature__media-label {
	position: absolute;
	top: 24px;
	left: 24px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
}
.cs-feature__media-caption {
	position: absolute;
	bottom: 24px;
	left: 24px;
	padding: 6px 12px;
	background: rgba(0, 0, 0, 0.6);
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-bg);
	margin: 0;
}

.cs-feature__body { display: flex; flex-direction: column; gap: 28px; padding-top: 6px; }
.cs-feature__meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
}
.cs-feature__meta div { display: flex; flex-direction: column; gap: 6px; }
.cs-feature__meta dt {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
}
.cs-feature__meta dd {
	font-family: var(--font-sans);
	font-size: 15px;
	color: var(--c-bg);
	margin: 0;
}

.cs-feature__headline {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(28px, 3.4vw, 44px);
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--c-bg);
	margin: 0;
	max-width: 22ch;
}
.cs-feature__headline .accent { color: var(--c-accent); }

.cs-feature__block {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.cs-feature__block-label {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
}
.cs-feature__block-body { font-size: 15px; line-height: 1.65; color: var(--c-bg); margin: 0; }

.cs-feature__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.cs-feature__stats:has(> .cs-feature__stat:nth-child(4)) {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
.cs-feature__stat { display: flex; flex-direction: column; gap: 6px; }
.cs-feature__stat-value {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3vw, 42px);
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--c-accent);
	margin: 0;
}
.cs-feature__stat-label {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
	line-height: 1.45;
}

/* Card grid */
.cs-archive__grid-wrap { padding: 24px 0 88px; }
.cs-archive__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.cs-card { display: flex; }
.cs-card__link {
	display: flex;
	flex-direction: column;
	flex: 1;
	background: #131313;
	border: 1px solid rgba(255, 255, 255, 0.05);
	color: inherit;
	overflow: hidden;
	transition: border-color 200ms var(--ease), transform 200ms var(--ease);
}
.cs-card__link:hover {
	border-color: rgba(207, 79, 36, 0.4);
	transform: translateY(-2px);
}
.cs-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	background-color: #1a1a1a;
	overflow: hidden;
}
.cs-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cs-card__media-head {
	position: absolute;
	top: 16px;
	left: 16px;
	right: 16px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}
.cs-card__num {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
}
.cs-card__sector {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-bg);
	background: var(--c-accent);
	padding: 5px 10px;
}
.cs-card__media-caption {
	position: absolute;
	bottom: 16px;
	left: 16px;
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
}

.cs-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 12px; }
.cs-card__client {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
}
.cs-card__headline {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 18px;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--c-bg);
	margin: 0;
}
.cs-card__headline .accent { color: var(--c-accent); }

.cs-card__stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.cs-card__stat { display: flex; flex-direction: column; gap: 4px; }
.cs-card__stat-value {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 22px;
	letter-spacing: -0.015em;
	line-height: 1;
	color: var(--c-bg);
	margin: 0;
}
.cs-card__stat-label {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
	line-height: 1.4;
}

@media (max-width: 1024px) {
	.cs-archive__hero-grid { grid-template-columns: 1fr; gap: 24px; }
	.cs-archive__hero-right { text-align: left; max-width: none; padding-top: 0; }
	.cs-feature { grid-template-columns: 1fr; gap: 32px; padding: 28px; }
	.cs-archive__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) {
	.cs-feature__stats:has(> .cs-feature__stat:nth-child(4)) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
}
@media (max-width: 640px) {
	.cs-archive__hero { padding-bottom: 32px; }
	.cs-archive__feature { padding-bottom: 32px; }
	.cs-archive__grid { grid-template-columns: 1fr; }
	.cs-feature__meta { grid-template-columns: 1fr; gap: 12px; }
	.cs-feature__stats,
	.cs-feature__stats:has(> .cs-feature__stat:nth-child(4)) { grid-template-columns: 1fr; gap: 16px; }
}

.cs-single__body {
	max-width: 72ch;
	color: var(--c-bg);
	font-family: var(--font-sans);
	font-size: 16.5px;
	line-height: 1.75;
}
.cs-single__body h2 {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 28px;
	letter-spacing: -0.015em;
	line-height: 1.2;
	color: var(--c-bg);
	margin: 48px 0 16px;
}
.cs-single__body h3 {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 20px;
	letter-spacing: -0.005em;
	color: var(--c-bg);
	margin: 36px 0 12px;
}
.cs-single__body h4 {
	font-family: var(--font-mono);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin: 28px 0 10px;
}
.cs-single__body p { margin: 0 0 18px; color: var(--c-bg); }
.cs-single__body ul,
.cs-single__body ol { margin: 0 0 18px; padding-left: 22px; color: var(--c-bg); }
.cs-single__body li { margin-bottom: 6px; line-height: 1.6; }
.cs-single__body strong { color: var(--c-bg); font-weight: 500; }
.cs-single__body a { color: var(--c-accent); border-bottom: 1px solid currentColor; }
.cs-single__body blockquote {
	margin: 24px 0;
	padding: 16px 22px;
	border-left: 3px solid var(--c-accent);
	background: rgba(255, 255, 255, 0.03);
}
.cs-single__body table {
	border-collapse: collapse;
	width: 100%;
	margin: 0 0 24px;
	font-size: 15px;
}
.cs-single__body th,
.cs-single__body td {
	text-align: left;
	padding: 12px 14px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	vertical-align: top;
	color: var(--c-bg);
}
.cs-single__body th {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	font-weight: 500;
}

/* Shared single-page section wrapper */
.cs-section { padding: 64px 0; border-top: 1px solid rgba(255, 255, 255, 0.06); }
.cs-section__eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0 0 18px;
}
.cs-section__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 48px);
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--c-bg);
	margin: 0 0 32px;
	max-width: 22ch;
}
.cs-section__heading .accent { color: var(--c-accent); }
.cs-section--body { padding: 80px 0 56px; }

/* Pull quote */
.cs-section--quote { padding: 64px 0; }
.cs-quote { max-width: 56ch; margin: 0 auto; text-align: center; padding: 32px 0; }
.cs-quote__mark {
	font-family: var(--font-sans);
	font-size: 80px;
	line-height: 0.7;
	color: var(--c-accent);
	margin: 0 0 4px;
}
.cs-quote__text {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(22px, 2.4vw, 32px);
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: var(--c-bg);
	margin: 0 0 20px;
}
.cs-quote__attr {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
}

/* Approach phases */
.cs-phases {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.cs-phase {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 28px 32px 28px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	border-right: 1px solid rgba(255, 255, 255, 0.08);
}
.cs-phase:nth-child(even) { padding-right: 0; padding-left: 32px; border-right: 0; }
.cs-phase__num {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--c-accent);
}
.cs-phase__title {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 22px;
	letter-spacing: -0.01em;
	color: var(--c-bg);
	margin: 0;
}
.cs-phase__body { font-size: 15px; line-height: 1.65; color: var(--c-muted-on-dark); margin: 0; }

/* Gallery */
.cs-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cs-gallery__item { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.cs-gallery__item--wide { grid-column: 1 / -1; }
.cs-gallery__media {
	width: 100%;
	background-color: #1a1a1a;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.cs-gallery__item--wide .cs-gallery__media { aspect-ratio: 16 / 9; }
.cs-gallery__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cs-gallery__caption {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-muted-on-dark);
	margin: 0;
}

.cs-section--related { padding-bottom: 96px; }

@media (max-width: 900px) {
	.cs-phases { grid-template-columns: 1fr; }
	.cs-phase,
	.cs-phase:nth-child(even) { padding: 24px 0; border-right: 0; padding-left: 0; }
	.cs-gallery { grid-template-columns: 1fr; }
}

/* =========================================================================
   Legal pages + Sitemap
   ========================================================================= */
.legal-page__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.legal-page__hero { background: var(--c-bg); padding: 0 0 32px; border-bottom: 1px solid var(--c-border); }
.legal-page__heading {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(40px, 5vw, 60px);
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: var(--c-ink);
	margin: 24px 0 16px;
}
.legal-page__effective {
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-text-muted);
	margin: 0 0 16px;
}
.legal-page__intro {
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.6;
	color: var(--c-text);
	max-width: 64ch;
	margin: 0;
}
.legal-page__body { background: var(--c-bg); padding: 56px 0 88px; }

.sitemap-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px 32px;
	max-width: 100%;
}
.sitemap-grid__col { min-width: 0; }
.sitemap-grid__heading {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin: 0 0 14px;
}
.sitemap-grid__list { list-style: none; padding: 0; margin: 0; }
.sitemap-grid__list li { padding: 6px 0; border-bottom: 1px solid var(--c-border); }
.sitemap-grid__list a {
	font-family: var(--font-sans);
	font-size: 15px;
	color: var(--c-ink);
	transition: color 140ms var(--ease);
}
.sitemap-grid__list a:hover { color: var(--c-accent); }
@media (max-width: 900px) {
	.sitemap-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.sitemap-grid { grid-template-columns: 1fr; }
}
