/* ==========================================================================
   Boldface theme
   1. Tokens          8. Surfaces        15. FAQ & CTA       22. Forms
   2. Base            9. Services        16. Footer          23. About
   3. Utilities      10. Results         17. Page hero       24. Listings
   4. Buttons        11. Process         18. Service pages   25. Motion
   5. Header         12. Compare         19. Prose           26. Responsive
   6. Hero           13. Voices          20. Article
   7. Marquee        14. Insights        21. Contact
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--paper: #FFFFFF;
	--paper-raised: #FFFFFF;
	--soft: #F5F6F3;
	--stone: #EAECE7;
	--stone-2: #D8DBD3;
	--ink: #1B1D21;
	--ink-2: #24272C;
	--ink-3: #2E3238;
	--slate: #5A606A;
	--slate-on-ink: #A7ADB6;
	--marker: #E8C64A;
	--on-marker: #1B1D21;
	--marker-deep: #A9800F;
	--growth: #2F7A50;
	--error: #B23A24;
	--line: rgba(27, 29, 33, .12);
	--line-strong: rgba(27, 29, 33, .2);
	--line-on-ink: rgba(242, 243, 239, .12);
	--marker-wash: color-mix(in srgb, var(--marker) 20%, #fff);
	--marker-hl: color-mix(in srgb, var(--marker) 72%, transparent);

	--font-display: "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;
	--font-body: "Geist", "Segoe UI", system-ui, -apple-system, sans-serif;

	--fs-xs: .8125rem;
	--fs-s: .9375rem;
	--fs-base: 1.0625rem;
	--fs-m: 1.1875rem;
	--fs-l: 1.5rem;
	--fs-title: clamp(2rem, 1.15rem + 2.7vw, 3.5rem);
	--fs-hero: clamp(2.65rem, 1.35rem + 4.3vw, 5.1rem);

	--container: 1320px;
	--gutter: clamp(20px, 4vw, 48px);
	--section: clamp(84px, 10vw, 152px);
	--header-h: 72px;

	--r-s: 8px;
	--r-m: 14px;
	--r-l: 22px;
	--r-xl: 30px;

	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--ease-in-out: cubic-bezier(.65, 0, .35, 1);
	--shadow-raised: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 24px 48px -28px rgba(27, 29, 33, .28), 0 2px 6px -2px rgba(27, 29, 33, .06);
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 24px); }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
img, svg, video, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4, h5, h6 {
	margin: 0;
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.02em;
	font-optical-sizing: auto;
}
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
ul[class], ol[class], .mega ul, .mobile-menu ul, .site-footer ul { list-style: none; }
.mega ul, .mobile-menu ul { padding: 0; margin: 0; }
mark { background: none; color: inherit; }
address { font-style: normal; }
[hidden] { display: none !important; }
::selection { background: var(--marker); color: var(--on-marker); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 4px; }
.is-dark :focus-visible, .site-footer :focus-visible, .cta__panel :focus-visible, .mobile-menu :focus-visible { outline-color: var(--marker); }
.site-main:focus { outline: none; }

/* 3. Utilities ------------------------------------------------------------- */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.narrow { max-width: calc(760px + var(--gutter) * 2); }
.section { padding-block: var(--section); }
.section--tight { padding-block: clamp(48px, 6vw, 88px); }
.is-soft { background: var(--soft); }
.section:not(.is-dark):not(.is-soft) + .section:not(.is-dark):not(.is-soft):not(.section--tight) { padding-top: 0; }
.is-dark { background: var(--ink); color: var(--paper); }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
	position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 12px 18px;
	background: var(--ink); color: var(--paper); border-radius: var(--r-s); font-weight: 600;
	transform: translateY(-160%); transition: transform .2s var(--ease-out);
}
.skip-link:focus { transform: none; }
.bf-icon { flex-shrink: 0; }
.stars { display: inline-flex; gap: 1px; color: var(--marker-deep); vertical-align: -1px; }
.stars svg { fill: currentColor; }

.section-head { margin-bottom: clamp(44px, 6vw, 80px); }
.section-head--split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px 64px; align-items: end; }
.section-head--row { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; }
.section-title { font-size: var(--fs-title); line-height: 1.02; letter-spacing: -.032em; text-wrap: balance; max-width: 18ch; }
.section-head--split .section-title { max-width: 16ch; }
.section-lead { font-size: var(--fs-m); line-height: 1.55; color: var(--slate); max-width: 46ch; text-wrap: pretty; }
.is-dark .section-lead { color: var(--slate-on-ink); }

/* Split-word reveal (JS adds .split-word spans) */
.split-word { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.split-word > span { display: inline-block; will-change: transform; }

/* 4. Buttons & links ------------------------------------------------------- */
.btn {
	--mx: 0px; --my: 0px; --s: 1; --ox: 50%; --oy: 50%;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 24px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--font-body);
	font-size: .96875rem;
	font-weight: 600;
	letter-spacing: -.005em;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	touch-action: manipulation;
	transform: translate(var(--mx), var(--my)) scale(var(--s));
	transition: transform .45s var(--ease-out), color .3s var(--ease-out), border-color .3s;
}
.btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	clip-path: circle(0% at var(--ox) var(--oy));
	transition: clip-path .55s var(--ease-out);
}
.btn:hover::before, .btn:focus-visible::before { clip-path: circle(150% at var(--ox) var(--oy)); }
.btn:active { --s: .97; }
.btn--ink { background: var(--ink); color: var(--paper-raised); }
.btn--ink::before { background: var(--marker); }
.btn--ink:hover, .btn--ink:focus-visible { color: var(--on-marker); }
.btn--marker { background: var(--marker); color: var(--on-marker); }
.btn--marker::before { background: var(--paper-raised); }
.btn--marker:hover, .btn--marker:focus-visible { color: var(--ink); }
.btn--ghost { border-color: var(--line-strong); color: var(--ink); }
.btn--ghost::before { background: var(--ink); }
.btn--ghost:hover { color: var(--paper); }
.btn--sm { min-height: 42px; padding: 0 18px; font-size: .875rem; }
.btn--lg { min-height: 56px; padding: 0 30px; font-size: 1rem; }
.btn[disabled], .btn.is-loading { pointer-events: none; }

.link-underline {
	display: inline;
	padding: 2px 1px;
	border: 0;
	background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 100% / 100% 2px;
	color: inherit;
	font-weight: 600;
	text-decoration: none;
	transition: background-size .4s var(--ease-out), color .3s;
	cursor: pointer;
}
.link-underline:hover, .link-underline:focus-visible { background-size: 100% 100%; color: var(--on-marker); }
.link-underline--light { color: var(--paper); }

.icon-btn {
	display: inline-grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1px solid var(--line-strong);
	border-radius: 50%;
	background: transparent;
	color: inherit;
	transition: background .25s, color .25s, border-color .25s, transform .3s var(--ease-out);
}
.icon-btn:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.icon-btn:active { transform: scale(.94); }

/* 5. Header ---------------------------------------------------------------- */
.site-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	transition: transform .5s var(--ease-out), background-color .35s, box-shadow .35s;
}
.admin-bar .site-header { top: 32px; }
.site-header.is-scrolled, .site-header.mega-open {
	background: color-mix(in srgb, var(--paper) 84%, transparent);
	-webkit-backdrop-filter: blur(16px) saturate(1.3);
	backdrop-filter: blur(16px) saturate(1.3);
	box-shadow: 0 1px 0 var(--line);
}
.site-header.mega-open { background: var(--paper-raised); }
.site-header.is-hidden:not(.mega-open):not(.menu-open) { transform: translateY(calc(-100% - 40px)); }
.site-header__bar { height: var(--header-h); display: flex; align-items: center; gap: 40px; }
.site-header__brand { flex-shrink: 0; }
.site-header__brand .custom-logo { max-height: 40px; width: auto; }
.site-header__actions { margin-left: auto; display: flex; align-items: center; gap: 12px; }

.wordmark {
	position: relative;
	z-index: 0;
	display: inline-block;
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1;
	text-decoration: none;
	color: inherit;
}
.wordmark::after {
	content: "";
	position: absolute;
	z-index: -1;
	left: -3px;
	right: 38%;
	bottom: .02em;
	height: .46em;
	background: var(--marker);
	border-radius: 2px;
	transform-origin: left;
	transition: right .5s var(--ease-out);
}
.wordmark:hover::after { right: -3px; }

.nav { display: flex; align-items: center; gap: 4px; }
.nav__list { display: flex; gap: 4px; }
.nav__trigger, .nav__list a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	font-size: .9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: background .25s;
}
.nav__trigger:hover, .nav__list a:hover, .nav__trigger[aria-expanded="true"] { background: color-mix(in srgb, var(--ink) 7%, transparent); }
.nav__trigger .bf-icon { transition: transform .35s var(--ease-out); }
.nav__trigger[aria-expanded="true"] .bf-icon { transform: rotate(180deg); }
.nav__list .current-menu-item > a, .nav__list .current_page_item > a { background: color-mix(in srgb, var(--ink) 7%, transparent); }

.mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--paper-raised);
	box-shadow: 0 1px 0 var(--line), 0 40px 60px -40px rgba(27, 29, 33, .35);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	transition: opacity .3s var(--ease-out), transform .45s var(--ease-out), visibility 0s .45s;
}
.mega.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.mega__inner { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; padding-block: 36px 44px; }
.mega__groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.mega__group-title { font-size: var(--fs-xs); font-weight: 600; color: var(--slate); margin: 0 0 12px 10px; }
.mega__group { opacity: 0; transform: translateY(8px); transition: opacity .4s var(--ease-out), transform .5s var(--ease-out); }
.mega.is-open .mega__group { opacity: 1; transform: none; }
.mega.is-open .mega__group:nth-child(2) { transition-delay: .04s; }
.mega.is-open .mega__group:nth-child(3) { transition-delay: .08s; }
.mega.is-open .mega__group:nth-child(4) { transition-delay: .12s; }
.mega__link { display: flex; gap: 12px; align-items: flex-start; padding: 10px; border-radius: var(--r-m); text-decoration: none; transition: background .2s; }
.mega__link:hover { background: var(--soft); }
.mega__icon { flex-shrink: 0; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-raised); transition: background .25s, color .25s; }
.mega__link:hover .mega__icon { background: var(--ink); color: var(--marker); border-color: var(--ink); }
.mega__name { display: block; font-weight: 600; font-size: .9375rem; line-height: 1.3; }
.mega__desc { display: block; font-size: .8125rem; color: var(--slate); line-height: 1.4; margin-top: 2px; }
.mega__aside { align-self: start; display: grid; align-content: start; gap: 14px; padding: 24px; border-radius: var(--r-l); background: var(--ink); color: var(--paper); }
.mega__aside p { font-size: .9375rem; color: var(--slate-on-ink); }
.mega__aside .mega__aside-title { font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; line-height: 1.15; color: var(--paper); }
.mega__aside .btn { justify-self: start; }
.mega__all { font-size: .875rem; color: var(--slate-on-ink); }
.mega__all:hover { color: var(--paper); }

.menu-toggle {
	display: none;
	position: relative;
	width: 46px;
	height: 46px;
	border: 1px solid var(--line-strong);
	border-radius: 50%;
	background: var(--paper-raised);
}
.menu-toggle__icon { position: absolute; inset: 0; display: grid; place-items: center; transition: opacity .2s, transform .35s var(--ease-out); }
.menu-toggle__icon--close { opacity: 0; transform: rotate(-90deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon--open { opacity: 0; transform: rotate(90deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon--close { opacity: 1; transform: none; }

.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 99;
	padding-top: var(--header-h);
	background: var(--ink);
	color: var(--paper);
	opacity: 0;
	visibility: hidden;
	clip-path: inset(0 0 100% 0);
	transition: clip-path .6s var(--ease-out), opacity .3s, visibility 0s .6s;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.mobile-menu.is-open { opacity: 1; visibility: visible; clip-path: inset(0); transition-delay: 0s; }
.mobile-menu__inner { padding: 24px var(--gutter) 40px; display: grid; gap: 8px; }
.mobile-menu__services summary, .mobile-menu__list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 0;
	border-bottom: 1px solid var(--line-on-ink);
	font-family: var(--font-display);
	font-size: 1.9rem;
	font-weight: 600;
	letter-spacing: -.02em;
	text-decoration: none;
	list-style: none;
	cursor: pointer;
}
.mobile-menu__services summary::-webkit-details-marker { display: none; }
.mobile-menu__services[open] summary .bf-icon { transform: rotate(45deg); }
.mobile-menu__services summary .bf-icon { transition: transform .3s var(--ease-out); }
.mobile-menu__group { margin: 20px 0 6px; font-size: var(--fs-xs); color: var(--slate-on-ink); font-weight: 600; }
.mobile-menu__services ul li a { display: block; padding: 8px 0; font-size: 1.0625rem; text-decoration: none; color: var(--paper); }
.mobile-menu__foot { display: grid; gap: 16px; margin-top: 28px; justify-items: start; }
.mobile-menu__contact { color: var(--slate-on-ink); }
.menu-open { overflow: hidden; }

/* 6. Hero ------------------------------------------------------------------ */
.hero {
	position: relative;
	min-height: 100dvh;
	display: flex;
	align-items: center;
	padding: calc(var(--header-h) + 56px) 0 clamp(48px, 6vw, 80px);
	overflow: hidden;
}
.hero__stage {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 60%;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 100%), linear-gradient(to bottom, #000 82%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 100%), linear-gradient(to bottom, #000 82%, transparent 100%);
	-webkit-mask-composite: source-in;
	mask-composite: intersect;
}
.hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.2s var(--ease-out); touch-action: pan-y; }
.hero.is-ready .hero__canvas { opacity: 1; }
.hero__fallback { position: absolute; inset: 20% 8% 22% 10%; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-raised); transform: perspective(1200px) rotateY(-14deg) rotateX(4deg); transition: opacity .8s; }
.hero__fallback span { position: absolute; display: block; border-radius: 6px; }
.hf__bar { inset: 0 0 auto; height: 11%; border-radius: 18px 18px 0 0 !important; background: var(--soft); border-bottom: 1px solid var(--line); }
.hf__bar i { display: inline-block; width: 9px; height: 9px; margin: 4% 0 0 8px; border-radius: 50%; background: var(--stone-2); }
.hf__head { left: 8%; top: 24%; width: 46%; height: 9%; background: var(--ink); }
.hf__line { left: 8%; top: 40%; width: 38%; height: 4%; background: var(--stone); }
.hf__line--s { top: 48%; width: 30%; }
.hf__btn { left: 8%; top: 60%; width: 20%; height: 9%; border-radius: 999px !important; background: var(--marker); }
.hf__img { right: 7%; top: 22%; width: 34%; height: 50%; background: var(--soft); border: 1px solid var(--line); }
.hero.is-ready .hero__fallback { opacity: 0; }
.hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: end; }
.hero__copy { max-width: 660px; }
.hero__title {
	font-size: var(--fs-hero);
	font-weight: 700;
	line-height: .98;
	letter-spacing: -.04em;
	text-wrap: balance;
}
.hero__text { margin-top: 28px; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.55; color: var(--slate); max-width: 50ch; text-wrap: pretty; }
.hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 28px; margin-top: 36px; }
.hero__proof { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 44px; font-size: .875rem; color: var(--slate); }
.hero__proof li { display: inline-flex; align-items: center; gap: 8px; }
.hero__proof li + li { padding-left: 24px; border-left: 1px solid var(--line-strong); }
.hero__proof strong { color: var(--ink); font-weight: 600; }

.query-card {
	--px: 0px; --py: 0px;
	justify-self: end;
	width: min(380px, 100%);
	padding: 16px;
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: var(--r-l);
	background: color-mix(in srgb, var(--paper-raised) 74%, transparent);
	-webkit-backdrop-filter: blur(18px) saturate(1.25);
	backdrop-filter: blur(18px) saturate(1.25);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 36px 70px -36px rgba(27, 29, 33, .4), 0 2px 8px -4px rgba(27, 29, 33, .1);
	transform: translate3d(var(--px), var(--py), 0);
	transition: transform .8s var(--ease-out);
}
.query-card__head { display: flex; justify-content: space-between; align-items: center; font-size: .78125rem; font-weight: 500; color: var(--slate); padding: 0 4px 12px; }
.query-card__live { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); font-weight: 600; }
.query-card__live i { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--growth); }
.query-card__live i::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid var(--growth); animation: ping 2.2s var(--ease-out) infinite; }
.query-card__search {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: var(--paper-raised);
	font-size: .9375rem;
	white-space: nowrap;
	overflow: hidden;
}
.query-card__search .bf-icon { color: var(--slate); }
.query-card__text { display: block; min-width: 0; overflow: hidden; white-space: nowrap; }
.query-card__caret { width: 1.5px; height: 1.15em; background: var(--ink); margin-left: -8px; animation: blink 1s steps(1) infinite; }
.query-card__rows { margin-top: 8px; }
.query-card__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 11px 4px;
	font-size: .875rem;
	border-top: 1px solid var(--line);
	transition: opacity .5s var(--ease-out), transform .6s var(--ease-out);
	transition-delay: calc(var(--d) * 110ms);
}
.query-card__row:first-child { border-top: 0; }
.query-card.is-typing .query-card__row { opacity: .25; transform: translateX(-6px); transition-delay: 0s; }
.query-card__value { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.query-card__value .bf-icon { width: 18px; height: 18px; padding: 3px; border-radius: 50%; background: var(--marker); color: var(--on-marker); stroke-width: 2.4; }

/* 7. Marquee --------------------------------------------------------------- */
.marquee { padding: 30px 0 34px; border-block: 1px solid var(--line); overflow: hidden; }
.marquee__label { font-size: var(--fs-xs); color: var(--slate); font-weight: 500; margin-bottom: 14px; }
.marquee__viewport { display: flex; width: max-content; }
.marquee__list { display: flex; flex-shrink: 0; animation: marquee 48s linear infinite; }
.marquee__list li {
	display: inline-flex;
	align-items: center;
	gap: clamp(22px, 3vw, 40px);
	padding-right: clamp(22px, 3vw, 40px);
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 1rem + 1.8vw, 2.5rem);
	font-weight: 500;
	letter-spacing: -.025em;
	white-space: nowrap;
}
.marquee__list li::after { content: ""; width: 10px; height: 10px; border-radius: 2px; background: var(--marker); transform: rotate(45deg); }

/* 8. Surfaces -------------------------------------------------------------- */
.surfaces__body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.surfaces__tabs { border-bottom: 1px solid var(--line); }
.surface-tab { position: relative; border-top: 1px solid var(--line); }
.surface-tab__btn {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 16px;
	width: 100%;
	padding: 22px 0;
	border: 0;
	background: none;
	text-align: left;
}
.surface-tab__abbr {
	min-width: 3.4ch;
	font-family: var(--font-display);
	font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem);
	font-weight: 700;
	letter-spacing: -.03em;
	line-height: 1;
	color: color-mix(in srgb, var(--ink) 35%, transparent);
	transition: color .35s;
}
.surface-tab__name { font-size: var(--fs-s); color: var(--slate); font-weight: 500; transition: color .35s; }
.surface-tab__btn:hover .surface-tab__abbr { color: color-mix(in srgb, var(--ink) 70%, transparent); }
.surface-tab.is-active .surface-tab__abbr { color: var(--ink); }
.surface-tab.is-active .surface-tab__name { color: var(--ink); }
.surface-tab__progress { position: absolute; left: 0; right: 0; top: -1px; height: 2px; overflow: hidden; }
.surface-tab__progress i { display: block; height: 100%; background: var(--ink); transform: scaleX(var(--p, 0)); transform-origin: left; }
.surface-tab:not(.is-active) .surface-tab__progress i { transform: scaleX(0); }
.surface-tab__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .55s var(--ease-out); }
.surface-tab.is-active .surface-tab__panel { grid-template-rows: 1fr; }
.surface-tab__panel-inner { overflow: hidden; }
.surface-tab__panel p { color: var(--slate); font-size: var(--fs-s); line-height: 1.65; max-width: 52ch; padding-bottom: 14px; }
.surface-tab__panel .link-underline { display: inline-block; margin-bottom: 26px; font-size: var(--fs-s); }

.device {
	position: sticky;
	top: calc(var(--header-h) + 32px);
	border: 1px solid var(--line);
	border-radius: var(--r-l);
	background: var(--paper-raised);
	box-shadow: var(--shadow-raised);
	overflow: hidden;
}
.device__bar { display: flex; align-items: center; gap: 14px; height: 46px; padding: 0 16px; border-bottom: 1px solid var(--line); background: var(--soft); }
.device__dots { display: flex; gap: 6px; }
.device__dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--stone-2); }
.device__url { flex: 1; min-width: 0; padding: 5px 14px; border-radius: 999px; background: var(--paper-raised); border: 1px solid var(--line); font-size: .78125rem; color: var(--slate); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: opacity .25s; }
.device__url.is-swapping { opacity: 0; }
.device__screen { position: relative; min-height: 480px; }
.mock {
	position: absolute;
	inset: 0;
	padding: clamp(18px, 2.5vw, 30px);
	opacity: 0;
	visibility: hidden;
	transition: opacity .35s var(--ease-out), visibility 0s .35s;
}
.mock.is-active { opacity: 1; visibility: visible; transition-delay: .05s, 0s; }
.m-in { opacity: 0; transform: translateY(12px); transition: opacity .5s var(--ease-out), transform .7s var(--ease-out); }
.mock.is-active .m-in { opacity: 1; transform: none; transition-delay: calc(var(--k, 0) * 90ms + 120ms); }

.hl {
	background-image: linear-gradient(var(--marker-hl), var(--marker-hl));
	background-repeat: no-repeat;
	background-position: 0 88%;
	background-size: 0% 82%;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding: 0 2px;
	transition: background-size 1s var(--ease-in-out) .55s;
}
.mock.is-active .hl, .hl.is-on { background-size: 100% 82%; }

.mock-search { display: flex; align-items: center; gap: 10px; padding: 11px 16px; border: 1px solid var(--line); border-radius: 999px; background: var(--soft); font-size: .875rem; }
.mock-search .bf-icon { color: var(--slate); }
.serp { display: grid; gap: 10px; margin-top: 18px; }
.serp__result { position: relative; padding: 16px 18px; border-radius: var(--r-m); }
.serp__result--you { background: color-mix(in srgb, var(--marker) 9%, var(--paper-raised)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--marker) 55%, transparent) inset; }
.you-tag { position: absolute; top: 14px; right: 14px; padding: 3px 9px; border-radius: 999px; background: var(--ink); color: var(--paper); font-size: .6875rem; font-weight: 600; }
.you-tag--inline { position: static; margin-left: 4px; }
.serp__url { font-size: .78125rem; color: var(--slate); }
.serp__url span { opacity: .7; }
.serp__title { margin-top: 4px; font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.25; padding-right: 48px; }
.serp__rating { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: .78125rem; font-weight: 600; }
.serp__rating span:last-child { color: var(--slate); font-weight: 400; }
.serp__snippet { margin-top: 8px; font-size: .875rem; line-height: 1.55; color: color-mix(in srgb, var(--ink) 80%, transparent); }
.serp__result--ghost { display: grid; gap: 9px; padding: 18px; }
.serp__result--ghost i, .ghost-line { display: block; height: 9px; border-radius: 5px; background: var(--stone); }
.ghost-line { display: inline-block; vertical-align: middle; }
.ghost-line--dark { background: var(--ink); opacity: .85; height: 14px; }
.mock-note { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-size: .8125rem; color: var(--slate); }
.mock-note__pos { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: var(--marker); font-weight: 700; font-size: .875rem; }

.answer-box { margin-top: 18px; padding: 20px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--paper-raised); box-shadow: 0 16px 30px -24px rgba(27, 29, 33, .3); }
.answer-box__kicker { font-size: .78125rem; font-weight: 600; color: var(--slate); }
.answer-box__text { margin-top: 10px; font-size: 1.03rem; line-height: 1.6; }
.answer-box__src { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: .8125rem; color: var(--slate); }
.favicon { display: inline-block; width: 16px; height: 16px; border-radius: 4px; background: var(--ink); box-shadow: inset 0 -6px 0 var(--marker); flex-shrink: 0; }
.paa { margin-top: 18px; }
.paa__title { font-weight: 600; font-size: .875rem; margin-bottom: 4px; }
.paa__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 2px; border-top: 1px solid var(--line); font-size: .875rem; }
.paa__row .bf-icon { color: var(--slate); }

.chat { display: grid; gap: 14px; }
.chat__msg { font-size: .90625rem; line-height: 1.55; }
.chat__msg--user { justify-self: end; max-width: 82%; padding: 12px 16px; border-radius: 18px 18px 4px 18px; background: var(--ink); color: var(--paper); }
.chat__msg--ai { padding: 16px 18px; border: 1px solid var(--line); border-radius: 18px 18px 18px 4px; background: var(--paper-raised); }
.chat__ai-label { display: flex; align-items: center; gap: 6px; font-size: .78125rem; font-weight: 600; color: var(--slate); margin-bottom: 8px; }
ol.chat__list { list-style: decimal; padding-left: 20px; margin: 10px 0 0; }
.chat__list li { margin: 8px 0; padding-left: 4px; }
.chat__list li::marker { font-weight: 600; }
.cite { display: inline-grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; background: var(--stone); font-size: .625rem; font-weight: 700; vertical-align: 2px; }
.chat__sources { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; font-size: .75rem; color: var(--slate); }
.chip--you { background: var(--marker); border-color: transparent; color: var(--on-marker); font-weight: 600; }

.crawl { border: 1px solid var(--line); border-radius: var(--r-m); background: var(--paper-raised); padding: 6px 18px; }
.crawl__row { display: flex; align-items: center; gap: 12px; padding: 12px 0; font-size: .875rem; border-bottom: 1px dashed var(--line-strong); }
.crawl__row:last-child { border-bottom: 0; }
.crawl__ok { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--growth); color: #fff; flex-shrink: 0; }
.crawl__ok .bf-icon { stroke-width: 2.4; }
.entity { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 14px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--paper-raised); }
.entity__logo { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--ink); color: var(--marker); font-family: var(--font-display); font-weight: 800; }
.entity__name { font-family: var(--font-display); font-weight: 600; font-size: 1.0625rem; }
.entity__type { font-size: .8125rem; color: var(--slate); }
.entity__badge { margin-left: auto; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--growth) 13%, transparent); color: var(--growth); font-size: .75rem; font-weight: 600; }

.lp { position: relative; height: 210px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--paper-raised); overflow: hidden; }
.lp__hero { position: relative; z-index: 1; display: grid; gap: 12px; padding: 26px; }
.lp__btn { justify-self: start; margin-top: 8px; padding: 9px 16px; border-radius: 999px; background: var(--ink); color: var(--paper); font-size: .78125rem; font-weight: 600; }
.lp__heat { position: absolute; border-radius: 50%; filter: blur(18px); mix-blend-mode: multiply; animation: heat 3.6s ease-in-out infinite; }
.lp__heat--a { width: 150px; height: 110px; left: 4%; bottom: 8%; background: radial-gradient(circle, color-mix(in srgb, #E2563B 55%, transparent), color-mix(in srgb, var(--marker) 50%, transparent) 45%, transparent 70%); }
.lp__heat--b { width: 200px; height: 90px; left: 10%; top: 12%; background: radial-gradient(circle, color-mix(in srgb, var(--marker) 45%, transparent), transparent 70%); animation-delay: -1.8s; }
.kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.kpi { padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--paper-raised); }
.kpi__label { font-size: .75rem; color: var(--slate); font-weight: 500; }
.kpi__value { margin-top: 4px; font-family: var(--font-display); font-size: 1.65rem; font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; line-height: 1.1; }
.kpi__delta { margin-top: 2px; font-size: .75rem; font-weight: 600; color: var(--growth); }

/* 9. Services -------------------------------------------------------------- */
.services__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 88px); }
.services__sticky { position: sticky; top: calc(var(--header-h) + 40px); display: grid; gap: 24px; justify-items: start; }
.svc-group + .svc-group { margin-top: clamp(48px, 6vw, 72px); }
.svc-group__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px 24px; flex-wrap: wrap; margin-bottom: 14px; }
.svc-group__title { font-family: var(--font-body); font-size: var(--fs-s); font-weight: 600; letter-spacing: 0; }
.svc-group__text { font-size: .875rem; color: var(--slate); }
.svc-group__items { border-top: 1px solid var(--line-strong); }
.svc-row {
	--from: 100%;
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) minmax(0, 1.25fr) 42px;
	gap: 24px;
	align-items: center;
	padding: 22px 14px;
	border-bottom: 1px solid var(--line);
	overflow: hidden;
	text-decoration: none;
}
.svc-row__fill { position: absolute; inset: 0; z-index: -1; background: var(--marker-wash); transform: translateY(var(--from)); transition: transform .5s var(--ease-out); }
.svc-row.is-hover .svc-row__fill, .svc-row:focus-visible .svc-row__fill { transform: none; }
.svc-row__icon { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-raised); transition: background .3s, color .3s, border-color .3s, transform .5s var(--ease-out); }
.svc-row.is-hover .svc-row__icon { background: var(--ink); border-color: var(--ink); color: var(--marker); transform: rotate(-6deg); }
.svc-row__main { display: grid; gap: 2px; transition: transform .5s var(--ease-out); }
.svc-row.is-hover .svc-row__main { transform: translateX(6px); }
.svc-row__name { font-family: var(--font-display); font-size: clamp(1.35rem, 1rem + 1vw, 1.85rem); font-weight: 600; letter-spacing: -.025em; line-height: 1.1; }
.svc-row__long { font-size: .8125rem; color: var(--slate); }
.svc-row__short { font-size: var(--fs-s); color: var(--slate); line-height: 1.5; }
.svc-row__go { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line-strong); border-radius: 50%; transition: background .3s, color .3s, border-color .3s, transform .5s var(--ease-out); }
.svc-row.is-hover .svc-row__go { background: var(--ink); border-color: var(--ink); color: var(--paper); transform: rotate(45deg); }

/* 10. Results -------------------------------------------------------------- */
.results__pin { padding-block: var(--section); overflow: hidden; }
.results__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 64px; align-items: end; margin-bottom: clamp(44px, 6vw, 72px); }
.results__head-side { display: grid; gap: 20px; justify-items: start; }
.results { --track-pad: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter))); }
.results__viewport { scroll-padding-inline: var(--track-pad); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.results__viewport::-webkit-scrollbar { display: none; }
.results__viewport.is-pinned { overflow: visible; scroll-snap-type: none; }
.results__track {
	display: flex;
	gap: 24px;
	width: max-content;
	padding-left: var(--track-pad);
	padding-right: var(--track-pad);
	will-change: transform;
}
.case {
	--rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 50%;
	position: relative;
	flex: none;
	width: clamp(300px, 29vw, 420px);
	border: 1px solid var(--line-on-ink);
	border-radius: 26px;
	background: var(--ink-2);
	color: var(--paper);
	scroll-snap-align: start;
	transform: perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry));
	transition: transform .6s var(--ease-out), border-color .3s;
	transform-style: preserve-3d;
}
.case:hover { border-color: color-mix(in srgb, var(--marker) 40%, transparent); }
.case__inner { display: flex; flex-direction: column; height: 100%; padding: 28px; }
.case__meta { display: flex; justify-content: space-between; gap: 12px; font-size: .8125rem; color: var(--slate-on-ink); }
.case__meta span:last-child { color: var(--paper); font-weight: 600; }
.case__metric { margin-top: 36px; font-family: var(--font-display); font-size: clamp(3rem, 2rem + 3vw, 4.6rem); font-weight: 700; letter-spacing: -.045em; line-height: .92; font-variant-numeric: tabular-nums; transform: translateZ(30px); }
.case__label { margin-top: 10px; font-size: var(--fs-s); color: var(--slate-on-ink); max-width: 28ch; }
.case__chart { margin: 26px 0 22px; }
.spark { width: 100%; height: auto; overflow: visible; }
.spark__area { fill: color-mix(in srgb, var(--marker) 14%, transparent); }
.spark__line { fill: none; stroke: var(--marker); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.spark__dot { fill: var(--marker); stroke: var(--ink-2); stroke-width: 3; }
.js.motion .spark:not(.is-drawn) .spark__line { stroke-dashoffset: 1; }
.js.motion .spark:not(.is-drawn) .spark__dot, .js.motion .spark:not(.is-drawn) .spark__area { opacity: 0; }
.spark__line { transition: stroke-dashoffset 1.6s var(--ease-in-out); }
.spark__area, .spark__dot { transition: opacity .8s ease 1.1s; }
.case__summary { font-size: var(--fs-s); color: var(--slate-on-ink); line-height: 1.55; }
.case__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.case__tags li, .case__tags a { padding: 4px 11px; border: 1px solid var(--line-on-ink); border-radius: 999px; font-size: .78125rem; text-decoration: none; }
.case__tags--light li, .case__tags--light a { border-color: var(--line-strong); }
.case__tags--light a:hover { background: var(--ink); color: var(--paper); }
.case__link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 26px; font-weight: 600; font-size: var(--fs-s); text-decoration: none; }
.case__link .bf-icon { transition: transform .4s var(--ease-out); }
.case__link:hover .bf-icon { transform: translate(3px, -3px); }
.case__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.case__glare { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(circle at var(--gx) var(--gy), rgba(255, 255, 255, .13), transparent 45%); opacity: 0; transition: opacity .4s; }
.case:hover .case__glare { opacity: 1; }
.case--end { background: var(--marker); color: var(--on-marker); border-color: transparent; }
.case--end .case__inner { justify-content: flex-end; gap: 20px; min-height: 440px; }
.case--end .case__summary { color: color-mix(in srgb, var(--on-marker) 75%, transparent); }
.case__metric--end { margin: 0; font-size: clamp(2.2rem, 1.6rem + 1.8vw, 3.2rem); line-height: 1; }
.case--end .btn { align-self: flex-start; }

/* 11. Process -------------------------------------------------------------- */
.process__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 88px); }
.process__sticky { position: sticky; top: calc(var(--header-h) + 40px); display: grid; gap: 24px; }
.steps { position: relative; padding-left: 76px; }
.steps__rail { position: absolute; left: 22px; top: 22px; bottom: 60px; width: 2px; background: var(--line); }
.steps__rail-fill { position: absolute; inset: 0; background: var(--ink); transform: scaleY(var(--progress, 0)); transform-origin: top; }
.no-motion-fill .steps__rail-fill, html:not(.motion) .steps__rail-fill { transform: none; }
.step { position: relative; padding-bottom: clamp(48px, 6vw, 76px); }
.step:last-child { padding-bottom: 0; }
.step__num {
	position: absolute;
	left: -76px;
	top: -2px;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1.5px solid var(--line-strong);
	border-radius: 50%;
	background: var(--paper);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.0625rem;
	transition: background .4s, border-color .4s, color .4s, transform .5s var(--ease-out);
}
.step.is-active .step__num, html:not(.motion) .step__num { background: var(--marker); border-color: var(--marker); color: var(--on-marker); }
.step.is-active .step__num { transform: scale(1.06); }
.step__when { font-size: .875rem; font-weight: 500; color: var(--slate); }
.step__title { margin-top: 4px; font-size: clamp(1.5rem, 1.2rem + .9vw, 2rem); font-weight: 600; letter-spacing: -.025em; }
.step__text { margin-top: 12px; color: var(--slate); max-width: 54ch; }
.step__items { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.step__items li { padding: 6px 13px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: .84375rem; font-weight: 500; background: var(--paper-raised); }

/* 12. Compare -------------------------------------------------------------- */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--paper-raised); }
.compare__table { width: 100%; min-width: 780px; border-collapse: separate; border-spacing: 0; text-align: left; }
.compare__table th, .compare__table td { padding: 18px 22px; border-bottom: 1px solid var(--line); vertical-align: top; }
.compare__table tbody tr:last-child > * { border-bottom: 0; }
.compare__table thead th { font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; letter-spacing: -.015em; padding-top: 22px; }
.compare__table tbody th { width: 21%; font-size: .9375rem; font-weight: 600; }
.compare__table tbody th, .compare__table thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--paper-raised); box-shadow: 1px 0 0 var(--line); }
.compare__table td { font-size: .9375rem; color: var(--slate); }
.compare__table .is-us { background: color-mix(in srgb, var(--marker) 13%, var(--paper-raised)); color: var(--ink); font-weight: 500; }
.compare__table thead .is-us { box-shadow: inset 0 3px 0 var(--marker); }

/* 13. Voices --------------------------------------------------------------- */
.voices__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 88px); align-items: start; }
.voices__controls { display: flex; align-items: center; gap: 16px; margin-top: 32px; }
.voices__count { font-size: .875rem; color: var(--slate); font-variant-numeric: tabular-nums; min-width: 4ch; text-align: center; }
.voices__stage { display: grid; }
.voice { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .5s var(--ease-out), transform .7s var(--ease-out), visibility 0s .5s; }
.voice.is-active { opacity: 1; visibility: visible; transform: none; transition-delay: .1s, .1s, 0s; }
.voice__mark { display: block; color: var(--marker-deep); opacity: .8; margin-bottom: 18px; }
.voice__quote { margin: 0; }
.voice__quote p { font-family: var(--font-display); font-size: clamp(1.5rem, 1rem + 1.55vw, 2.35rem); font-weight: 500; line-height: 1.24; letter-spacing: -.022em; text-wrap: pretty; }
.voice__by { display: flex; align-items: center; gap: 14px; margin-top: 32px; font-size: .9375rem; }
.voice__by strong { display: block; font-weight: 600; }
.voice__by span span { color: var(--slate); }
.monogram { display: inline-grid; place-items: center; flex-shrink: 0; width: 50px; height: 50px; border-radius: 50%; background: var(--marker); color: var(--on-marker); font-family: var(--font-display); font-weight: 700; letter-spacing: -.02em; }

/* 14. Insights & post cards ------------------------------------------------ */
.insights__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto 1fr; gap: 28px 48px; align-items: start; }
.insights__grid .post-card--feature { grid-row: span 2; }
.insights__grid .post-card:not(.post-card--feature) { grid-template-columns: 172px minmax(0, 1fr); align-items: center; }
.post-card { display: grid; gap: 18px; align-content: start; }
.post-card__cover { text-decoration: none; display: block; border-radius: var(--r-l); overflow: hidden; aspect-ratio: 16 / 10; background: var(--stone); }
.post-card--feature .post-card__cover { aspect-ratio: 16 / 10.5; }
.post-card__cover img, .post-card__cover .cover { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease-out); }
.post-card:hover .post-card__cover img, .post-card:hover .post-card__cover .cover { transform: scale(1.035); }
.post-card__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .8125rem; color: var(--slate); }
.post-card__meta a { text-decoration: none; font-weight: 600; color: var(--ink); }
.post-card__title { font-size: clamp(1.2rem, 1rem + .5vw, 1.45rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.2; margin-top: 6px; text-wrap: balance; }
.post-card--feature .post-card__title { font-size: clamp(1.6rem, 1.1rem + 1.4vw, 2.3rem); letter-spacing: -.03em; line-height: 1.08; }
.post-card__title a { text-decoration: none; background: linear-gradient(var(--marker), var(--marker)) no-repeat 0 92% / 0% .32em; transition: background-size .5s var(--ease-out); }
.post-card__title a:hover { background-size: 100% .32em; }
.post-card__excerpt { margin-top: 10px; color: var(--slate); font-size: var(--fs-s); max-width: 60ch; }

.cover { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; background: var(--ink); color: var(--paper); }
.cover__label { font-size: .78125rem; font-weight: 600; opacity: .8; }
.cover__bars { display: flex; align-items: flex-end; gap: 5%; height: 52%; width: min(100%, 360px); margin-left: auto; }
.cover__bars i { flex: 1; border-radius: 4px 4px 0 0; background: var(--ink-3); }
.cover__bars i:nth-child(1) { height: 22%; } .cover__bars i:nth-child(2) { height: 36%; } .cover__bars i:nth-child(3) { height: 31%; }
.cover__bars i:nth-child(4) { height: 52%; } .cover__bars i:nth-child(5) { height: 70%; } .cover__bars i:nth-child(6) { height: 100%; background: var(--marker); }
.cover--v1 { background: var(--stone); color: var(--ink); }
.cover--v1 .cover__bars i { background: var(--stone-2); }
.cover--v1 .cover__bars i:nth-child(6) { background: var(--ink); }
.cover--v2 { background: var(--marker); color: var(--on-marker); }
.cover--v2 .cover__bars i { background: color-mix(in srgb, var(--on-marker) 18%, transparent); }
.cover--v2 .cover__bars i:nth-child(6) { background: var(--ink); }
.cover--v2 .cover__bars { flex-direction: row-reverse; }

.empty { display: grid; gap: 12px; justify-items: start; padding: clamp(28px, 4vw, 48px); border: 1.5px dashed var(--line-strong); border-radius: var(--r-l); }
.empty__title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; }
.empty p:not(.empty__title) { color: var(--slate); max-width: 56ch; }

/* 15. FAQ & CTA ------------------------------------------------------------ */
.faq-section__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 88px); align-items: start; }
.faq-section__side { display: grid; gap: 24px; justify-items: start; position: sticky; top: calc(var(--header-h) + 40px); }
.faq { border-top: 1px solid var(--line-strong); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__q { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 0; cursor: pointer; list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q h3 { font-size: clamp(1.125rem, 1rem + .4vw, 1.3rem); font-weight: 600; letter-spacing: -.015em; line-height: 1.3; }
.faq__toggle { display: grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px; border: 1px solid var(--line-strong); border-radius: 50%; transition: transform .45s var(--ease-out), background .3s, color .3s; }
.faq__item[open] .faq__toggle { transform: rotate(45deg); background: var(--ink); color: var(--paper); border-color: var(--ink); }
.faq__q:hover .faq__toggle { border-color: var(--ink); }
.faq__a { overflow: hidden; }
.faq__a-inner p { padding: 0 56px 26px 0; color: var(--slate); max-width: 64ch; }

.cta { padding-bottom: clamp(64px, 8vw, 120px); }
.cta__panel {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 40px 64px;
	align-items: end;
	padding: clamp(36px, 6vw, 88px);
	border-radius: var(--r-xl);
	background: var(--ink);
	color: var(--paper);
	overflow: hidden;
}
.cta__field {
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(color-mix(in srgb, var(--paper) 14%, transparent) 1.2px, transparent 1.6px);
	background-size: 22px 22px;
	-webkit-mask-image: radial-gradient(ellipse 60% 90% at 100% 100%, #000 10%, transparent 75%);
	mask-image: radial-gradient(ellipse 60% 90% at 100% 100%, #000 10%, transparent 75%);
}
.cta__title { font-size: clamp(2.25rem, 1.3rem + 3.2vw, 4.25rem); line-height: .98; letter-spacing: -.04em; max-width: 14ch; text-wrap: balance; }
.cta__text { margin-top: 22px; color: var(--slate-on-ink); font-size: var(--fs-m); max-width: 44ch; }
.cta__actions { display: grid; gap: 26px; justify-items: start; }
.cta__alt { display: grid; gap: 10px; }
.cta__alt a { display: inline-flex; align-items: center; gap: 10px; color: var(--slate-on-ink); text-decoration: none; font-size: var(--fs-s); transition: color .2s; }
.cta__alt a:hover { color: var(--paper); }

/* 16. Footer --------------------------------------------------------------- */
.site-footer { background: var(--ink); color: var(--slate-on-ink); padding-top: clamp(64px, 8vw, 104px); overflow: hidden; }
.cta + .site-footer, .site-main + .site-footer { margin-top: 0; }
.site-footer__top { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px 64px; padding-bottom: 56px; }
.site-footer__about { display: grid; gap: 22px; align-content: start; justify-items: start; }
.site-footer__about .wordmark { color: var(--paper); font-size: 1.75rem; }
.site-footer__about p { max-width: 36ch; font-size: var(--fs-s); }
.social-links { display: flex; gap: 8px; }
.social-link { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line-on-ink); border-radius: 50%; color: var(--paper); transition: background .25s, color .25s; }
.social-link:hover { background: var(--marker); color: var(--on-marker); border-color: var(--marker); }
.site-footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.site-footer__heading { font-family: var(--font-body); font-size: .875rem; font-weight: 600; letter-spacing: 0; color: var(--paper); margin-bottom: 14px; }
.site-footer__col .site-footer__heading:not(:first-child) { margin-top: 28px; }
.footer__list li { margin: 7px 0; font-size: .90625rem; line-height: 1.45; }
.footer__list a, .site-footer__address a { text-decoration: none; transition: color .2s; }
.footer__list a:hover, .site-footer__address a:hover { color: var(--paper); }
.site-footer__address p { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; font-size: .90625rem; line-height: 1.45; }
.site-footer__address .bf-icon { margin-top: 1px; color: var(--marker); }
.site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; padding-block: 26px; border-top: 1px solid var(--line-on-ink); font-size: .8125rem; }
.site-footer__legal { display: flex; gap: 20px; margin-right: auto; }
.site-footer__legal a, .site-footer__top-link { text-decoration: none; }
.site-footer__legal a:hover, .site-footer__top-link:hover { color: var(--paper); }
.site-footer__mark { display: flex; justify-content: center; overflow: hidden; line-height: .74; margin-top: 8px; padding-top: 1vw; user-select: none; }
.site-footer__mark span {
	font-family: var(--font-display);
	font-size: clamp(3rem, calc(168vw / var(--chars, 8)), 22rem);
	font-weight: 800;
	letter-spacing: -.06em;
	color: var(--ink-2);
	white-space: nowrap;
	transform: translateY(var(--mark-y, 0%));
	text-shadow: 0 -1px 0 rgba(255, 255, 255, .04);
}

/* 17. Page hero ------------------------------------------------------------ */
.page-hero { padding: calc(var(--header-h) + clamp(48px, 7vw, 104px)) 0 clamp(48px, 6vw, 88px); border-bottom: 1px solid var(--line); }
.page-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px 72px; align-items: center; }
.page-hero__copy { max-width: 760px; }
.page-hero__copy--wide { max-width: 900px; }
.page-hero__group { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; font-size: .875rem; font-weight: 600; }
.page-hero__group::before { content: ""; width: 10px; height: 10px; border-radius: 2px; background: var(--marker); transform: rotate(45deg); }
.page-hero__title { font-size: clamp(2.5rem, 1.45rem + 3.5vw, 4.6rem); line-height: .99; letter-spacing: -.04em; text-wrap: balance; }
.page-hero__sub { display: block; margin-top: .35em; font-size: .4em; font-weight: 500; letter-spacing: -.015em; color: var(--slate); line-height: 1.2; }
.page-hero__lead { margin-top: 24px; font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); color: var(--slate); max-width: 58ch; line-height: 1.6; text-wrap: pretty; }
.page-hero__lead.definition { color: var(--ink); }
.page-hero__meta { margin-top: 18px; color: var(--slate); }
.page-hero .hero__actions { margin-top: 32px; }
.page-hero .case__tags { margin-top: 24px; }

.breadcrumbs { margin-bottom: 26px; font-size: .84375rem; color: var(--slate); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 6px; }
.breadcrumbs li + li::before { content: ""; width: 5px; height: 5px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); opacity: .6; margin-right: 4px; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { color: var(--ink); text-decoration: underline; }
.breadcrumbs [aria-current] { color: var(--ink); font-weight: 500; }

.specimen {
	--rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 50%;
	position: relative;
	justify-self: end;
	width: min(420px, 100%);
	aspect-ratio: 4 / 4.6;
	border-radius: 28px;
	background: var(--ink);
	color: var(--paper);
	transform: perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry));
	transition: transform .6s var(--ease-out);
	box-shadow: 0 40px 80px -40px rgba(27, 29, 33, .55);
	overflow: hidden;
}
.specimen__inner { position: relative; display: flex; flex-direction: column; height: 100%; padding: clamp(24px, 3vw, 36px); }
.specimen__icon { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 24px; background: var(--marker); color: var(--on-marker); }
.specimen__icon .bf-icon { width: 52px; height: 52px; stroke-width: 1.4; }
.specimen__stat { margin-top: auto; font-family: var(--font-display); font-size: clamp(3rem, 2rem + 3vw, 4.6rem); font-weight: 700; letter-spacing: -.045em; line-height: .95; font-variant-numeric: tabular-nums; }
.specimen__label { margin-top: 10px; color: var(--slate-on-ink); font-size: var(--fs-s); max-width: 30ch; }
.specimen__bars { position: absolute; top: clamp(24px, 3vw, 36px); right: clamp(24px, 3vw, 36px); display: flex; align-items: flex-end; gap: 5px; height: 70px; }
.specimen__bars i { width: 8px; border-radius: 3px 3px 0 0; background: var(--ink-3); animation: grow 2.8s var(--ease-in-out) infinite alternate; }
.specimen__bars i:nth-child(1) { height: 22%; animation-delay: -.2s; } .specimen__bars i:nth-child(2) { height: 34%; animation-delay: -.5s; }
.specimen__bars i:nth-child(3) { height: 30%; animation-delay: -.9s; } .specimen__bars i:nth-child(4) { height: 48%; animation-delay: -1.2s; }
.specimen__bars i:nth-child(5) { height: 60%; animation-delay: -1.5s; } .specimen__bars i:nth-child(6) { height: 78%; animation-delay: -1.8s; }
.specimen__bars i:nth-child(7) { height: 100%; background: var(--marker); animation-delay: -2.1s; }
.specimen--case { aspect-ratio: auto; }
.specimen--case .specimen__stat { margin-top: 0; }
.specimen--case .case__chart { margin-bottom: 0; }

/* 18. Service pages -------------------------------------------------------- */
.bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.bento__item { display: grid; align-content: start; gap: 12px; min-height: 210px; padding: clamp(22px, 2.4vw, 32px); border: 1px solid var(--line); border-radius: var(--r-l); background: var(--paper-raised); }
.bento__item h3 { font-size: 1.3rem; font-weight: 600; letter-spacing: -.02em; }
.bento__item p { color: var(--slate); font-size: var(--fs-s); }
.bento__item--0 { grid-column: span 2; background: var(--ink); color: var(--paper); border-color: var(--ink); }
.bento__item--0 h3 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem); letter-spacing: -.03em; }
.bento__item--0 p { color: var(--slate-on-ink); max-width: 44ch; }
.bento__item--4 { grid-column: span 2; background: var(--marker-wash); border-color: transparent; }
.bento__item--4 p { color: color-mix(in srgb, var(--ink) 72%, transparent); }

.mini-process { padding-top: 0; }
.mini-process .section-title { margin-bottom: 40px; }
.mini-process__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; counter-reset: none; }
.mini-process__list li { padding-top: 22px; border-top: 2px solid var(--ink); }
.mini-process__list .step__num { position: static; width: 38px; height: 38px; font-size: .9375rem; margin-bottom: 18px; background: var(--marker); border-color: var(--marker); color: var(--on-marker); }
.mini-process__list h3 { font-size: 1.3rem; font-weight: 600; letter-spacing: -.02em; }
.mini-process__list p { margin-top: 8px; color: var(--slate); font-size: var(--fs-s); }
.related { padding-top: 0; }
.related .section-title { margin-bottom: 32px; }

/* 19. Prose ---------------------------------------------------------------- */
.prose { font-size: 1.0625rem; line-height: 1.75; }
.prose > * + * { margin-top: 1.15em; }
.prose h2 { font-size: clamp(1.6rem, 1.3rem + .9vw, 2.1rem); letter-spacing: -.028em; margin-top: 2em; line-height: 1.12; scroll-margin-top: calc(var(--header-h) + 28px); }
.prose h3 { font-size: clamp(1.25rem, 1.1rem + .4vw, 1.45rem); margin-top: 1.7em; scroll-margin-top: calc(var(--header-h) + 28px); }
.prose h4 { font-size: 1.15rem; margin-top: 1.5em; }
.prose > :first-child { margin-top: 0; }
.prose a { text-decoration: underline; text-decoration-color: var(--marker); text-decoration-thickness: .16em; text-underline-offset: .2em; transition: background .2s; }
.prose a:hover { background: var(--marker-wash); }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin: .45em 0; padding-left: .2em; }
.prose li::marker { color: var(--slate); }
.prose ul li::marker { color: var(--marker-deep); }
.prose strong { font-weight: 650; }
.prose blockquote { margin-inline: 0; padding: 4px 0 4px 26px; border-left: 3px solid var(--marker); font-family: var(--font-display); font-size: 1.35rem; line-height: 1.4; letter-spacing: -.015em; }
.prose blockquote cite { display: block; margin-top: 10px; font-family: var(--font-body); font-size: .9375rem; font-style: normal; color: var(--slate); }
.prose img, .prose figure img { border-radius: var(--r-m); }
.prose figure { margin-inline: 0; }
.prose figcaption, .prose .wp-element-caption { margin-top: 10px; font-size: .875rem; color: var(--slate); }
.prose hr { border: 0; height: 1px; background: var(--line-strong); margin-block: 2.6em; }
.prose code { padding: .12em .4em; border-radius: 6px; background: var(--stone); font-size: .9em; }
.prose pre { padding: 20px 22px; border-radius: var(--r-m); background: var(--ink); color: var(--paper); overflow-x: auto; font-size: .9rem; line-height: 1.6; }
.prose pre code { background: none; padding: 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.prose th, .prose td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }
.prose th { font-weight: 600; background: var(--paper-raised); }
.prose .wp-block-table { overflow-x: auto; }
.prose .wp-block-button__link { display: inline-flex; padding: 14px 26px; border-radius: 999px; background: var(--ink); color: var(--paper); text-decoration: none; font-weight: 600; }
.prose .wp-block-button__link:hover { background: var(--marker); color: var(--on-marker); }
.prose .alignleft { float: left; margin: .3em 1.5em 1em 0; }
.prose .alignright { float: right; margin: .3em 0 1em 1.5em; }
.prose .aligncenter { margin-inline: auto; }
.prose--full > * { max-width: 760px; margin-inline: auto; padding-inline: var(--gutter); }
.prose--full > .alignwide { max-width: var(--container); }
.prose--full > .alignfull { max-width: none; padding-inline: 0; }
.canvas { padding-top: calc(var(--header-h) + 40px); padding-bottom: var(--section); }
.wide-figure { margin: 0 0 40px; border-radius: var(--r-l); overflow: hidden; }
.wide-figure img { width: 100%; }
.page-links { margin-top: 32px; display: flex; gap: 8px; }

/* 20. Article -------------------------------------------------------------- */
.read-progress { position: fixed; inset: 0 0 auto; z-index: 101; height: 3px; pointer-events: none; }
.admin-bar .read-progress { top: 32px; }
.read-progress span { display: block; height: 100%; background: var(--marker); transform: scaleX(var(--p, 0)); transform-origin: left; }
.article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 26px; font-size: .875rem; color: var(--slate); }
.article__meta strong { color: var(--ink); font-weight: 600; }
.article__avatar { border-radius: 50%; width: 36px; height: 36px; }
.article__layout { display: grid; grid-template-columns: 230px minmax(0, 760px); justify-content: space-between; gap: 64px; padding-block: clamp(48px, 6vw, 80px); max-width: 1180px; }
.article__aside { position: sticky; top: calc(var(--header-h) + 32px); align-self: start; display: grid; gap: 32px; }
.toc__title { font-size: .8125rem; font-weight: 600; margin-bottom: 12px; }
.toc__list { display: grid; gap: 2px; border-left: 1px solid var(--line-strong); }
.toc__list a { display: block; padding: 6px 0 6px 16px; margin-left: -1px; border-left: 2px solid transparent; font-size: .875rem; line-height: 1.4; color: var(--slate); text-decoration: none; transition: color .2s, border-color .2s; }
.toc__list a:hover { color: var(--ink); }
.toc__list a.is-active { color: var(--ink); font-weight: 600; border-left-color: var(--marker); }
.toc__list .toc__sub a { padding-left: 30px; font-size: .8125rem; }
.share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.share .toc__title { width: 100%; margin-bottom: 4px; }
.share .icon-btn { width: 42px; height: 42px; }
.share .icon-btn.is-copied { background: var(--marker); border-color: var(--marker); color: var(--on-marker); }
.article__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.article__tags a { padding: 5px 12px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: .8125rem; text-decoration: none; }
.author-box { display: flex; gap: 18px; align-items: center; margin-top: 48px; padding: 24px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--paper-raised); }
.author-box img { border-radius: 50%; }
.author-box__name { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; }
.author-box p:not(.author-box__name) { color: var(--slate); font-size: var(--fs-s); margin-top: 4px; }
.post-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 40px; }
.post-list .post-card--feature { grid-column: 1 / -1; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: center; }
.post-list--two .post-card--feature { grid-template-columns: 1fr; }
.related-posts { padding-top: 0; }
.related-posts .section-title { margin-bottom: 40px; }
.widget { font-size: .9375rem; }
.widget__title { font-family: var(--font-body); font-size: .8125rem; font-weight: 600; letter-spacing: 0; margin-bottom: 12px; }

.comments { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--line); }
.comments__title, .comment-reply-title { font-size: 1.6rem; letter-spacing: -.025em; margin-bottom: 24px; }
.comments__list, .comments__list .children { list-style: none; padding: 0; }
.comments__list .children { padding-left: 32px; }
.comment-body { padding: 20px 0; border-bottom: 1px solid var(--line); }
.comment-author { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.comment-author img { border-radius: 50%; }
.comment-metadata { font-size: .8125rem; color: var(--slate); margin: 4px 0 10px; }
.comment-metadata a { text-decoration: none; }
.comment-form { display: grid; gap: 16px; }
.comment-form label { display: block; font-weight: 600; font-size: .875rem; margin-bottom: 6px; }
.comment-form-cookies-consent { display: flex; gap: 10px; align-items: flex-start; }
.comment-form-cookies-consent label { font-weight: 400; }

/* 21-22. Contact & forms --------------------------------------------------- */
.page-hero--contact { border-bottom: 0; }
.contact__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px clamp(40px, 6vw, 96px); align-items: start; }
.contact__info .page-hero__title { font-size: clamp(2.4rem, 1.4rem + 3vw, 4rem); }
.contact__next { display: grid; gap: 18px; margin-top: 40px; counter-reset: next; }
.contact__next li { position: relative; display: grid; gap: 2px; padding-left: 48px; counter-increment: next; font-size: var(--fs-s); }
.contact__next li::before { content: counter(next); position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--marker); color: var(--on-marker); font-family: var(--font-display); font-weight: 700; font-size: .875rem; }
.contact__next span { color: var(--slate); }
.contact__channels { display: grid; gap: 14px; margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); }
.contact__channels li { display: flex; gap: 12px; align-items: flex-start; font-size: var(--fs-s); }
.contact__channels a { text-decoration: none; font-weight: 500; }
.contact__channels a:hover { text-decoration: underline; text-decoration-color: var(--marker); text-decoration-thickness: 2px; }
.contact__channels .bf-icon { color: var(--slate); margin-top: 2px; }
.contact__form-wrap { position: relative; padding: clamp(24px, 4vw, 48px); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--paper-raised); box-shadow: var(--shadow-raised); }

.form { display: grid; gap: 22px; }
.form__row--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; }
.field { display: grid; gap: 8px; align-content: start; }
.field label { font-size: .90625rem; font-weight: 600; }
.req { color: var(--error); }
.field input, .field select, .field textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%;
	min-height: 52px;
	padding: 13px 16px;
	border: 1px solid var(--line-strong);
	border-radius: 12px;
	background: var(--paper-raised);
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color .2s, box-shadow .25s;
	-webkit-appearance: none;
	appearance: none;
}
.field textarea, .comment-form textarea { min-height: 140px; resize: vertical; }
.field select {
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%231B1D21' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}
.field input:hover, .field select:hover, .field textarea:hover { border-color: color-mix(in srgb, var(--ink) 40%, transparent); }
.field input:focus, .field select:focus, .field textarea:focus, .comment-form input:focus, .comment-form textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 4px color-mix(in srgb, var(--marker) 50%, transparent); }
.field__help { font-size: .8125rem; color: var(--slate); }
.field__error { font-size: .8125rem; color: var(--error); font-weight: 500; min-height: 0; }
.field__error:empty { display: none; }
.field.has-error input, .field.has-error textarea, .field.has-error select { border-color: var(--error); }
.field.has-error input:focus, .field.has-error textarea:focus { box-shadow: 0 0 0 4px color-mix(in srgb, var(--error) 18%, transparent); }
.form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__alert { padding: 12px 16px; border-left: 3px solid var(--error); border-radius: 8px; background: color-mix(in srgb, var(--error) 8%, var(--paper-raised)); font-size: .9375rem; }
.form__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 4px; }
.form__privacy { font-size: .8125rem; color: var(--slate); }
.btn__spinner { display: none; width: 18px; height: 18px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin .7s linear infinite; }
.btn.is-loading .btn__spinner { display: inline-block; }
.btn.is-loading .btn__label { opacity: .7; }
.form-success { display: grid; gap: 14px; justify-items: start; padding: clamp(12px, 2vw, 24px) 0; animation: success-in .7s var(--ease-out) both; }
.form-success:focus { outline: none; }
.form-success__icon { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--marker); color: var(--on-marker); }
.form-success__icon .bf-icon { stroke-width: 2.2; }
.form-success__title { font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.4rem); letter-spacing: -.03em; }
.form-success p { color: var(--slate); max-width: 44ch; }

.search-form { display: flex; align-items: center; gap: 10px; padding: 6px 6px 6px 18px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--paper-raised); transition: box-shadow .25s, border-color .2s; }
.search-form:focus-within { border-color: var(--ink); box-shadow: 0 0 0 4px color-mix(in srgb, var(--marker) 50%, transparent); }
.search-form .bf-icon { color: var(--slate); }
.search-form__input { flex: 1; min-width: 0; min-height: 42px; border: 0; background: transparent; font-size: 1rem; }
.search-form__input:focus { outline: none; }

/* 23. About ---------------------------------------------------------------- */
.values__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px clamp(32px, 5vw, 88px); }
.values__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 40px; margin: 0; }
.values__item dt { padding-top: 20px; border-top: 2px solid var(--ink); font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; letter-spacing: -.02em; }
.values__item dd { margin: 10px 0 0; color: var(--slate); }
.team__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; }
.team__member { display: grid; gap: 4px; padding-top: 24px; border-top: 1px solid var(--line-on-ink); }
.team__member .monogram { width: 60px; height: 60px; font-size: 1.15rem; margin-bottom: 14px; }
.team__name { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; letter-spacing: -.02em; color: var(--paper); }
.team__role { color: var(--slate-on-ink); font-size: var(--fs-s); }

/* 24. Listings, search, pagination, 404 ------------------------------------ */
.work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.case--grid { width: auto; }
.case--wide { grid-column: 1 / -1; }
.case--wide .case__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "meta meta" "metric chart" "label chart" "summary chart" "link chart"; column-gap: 48px; }
.case--wide .case__meta { grid-area: meta; }
.case--wide .case__metric { grid-area: metric; }
.case--wide .case__label { grid-area: label; }
.case--wide .case__summary { grid-area: summary; margin-top: 18px; }
.case--wide .case__link { grid-area: link; }
.case--wide .case__chart { grid-area: chart; align-self: end; margin: 36px 0 0; }
.search-results { display: grid; gap: 0; margin-top: 40px; }
.search-results li { padding: 24px 0; border-bottom: 1px solid var(--line); }
.search-results__type { font-size: .8125rem; color: var(--slate); font-weight: 600; }
.search-results h2 { font-size: 1.4rem; letter-spacing: -.02em; margin: 4px 0 6px; }
.search-results h2 a { text-decoration: none; }
.search-results h2 a:hover { text-decoration: underline; text-decoration-color: var(--marker); text-decoration-thickness: 3px; }
.search-results p { color: var(--slate); font-size: var(--fs-s); }
.pagination { margin-top: 56px; }
.pagination ul { display: flex; flex-wrap: wrap; gap: 8px; }
.pagination a, .pagination span { display: grid; place-items: center; min-width: 46px; height: 46px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .9375rem; transition: background .2s, color .2s; }
.pagination a:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pagination .current { background: var(--marker); border-color: var(--marker); color: var(--on-marker); }
.pagination .dots { border: 0; }
.not-found { padding: calc(var(--header-h) + clamp(56px, 8vw, 112px)) 0 var(--section); }
.not-found__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: center; }
.not-found__code { font-family: var(--font-display); font-weight: 800; font-size: clamp(5rem, 14vw, 11rem); line-height: .85; letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 1.5px var(--ink); margin-bottom: 20px; }
.not-found .search-form { margin-top: 32px; max-width: 520px; }
.not-found__links { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 28px; }
.not-found__bars { display: flex; align-items: flex-end; gap: 10px; height: 280px; padding: 24px; border-bottom: 2px solid var(--ink); }
.not-found__bars i { flex: 1; border-radius: 6px 6px 0 0; background: var(--stone-2); animation: grow 2.6s var(--ease-in-out) infinite alternate; }
.not-found__bars i:nth-child(odd) { animation-delay: -1.3s; }
.not-found__bars i:nth-child(1) { height: 40%; } .not-found__bars i:nth-child(2) { height: 62%; } .not-found__bars i:nth-child(3) { height: 30%; } .not-found__bars i:nth-child(4) { height: 78%; }
.not-found__bars i:nth-child(5) { height: 54%; } .not-found__bars i:nth-child(6) { height: 20%; } .not-found__bars i:nth-child(7) { height: 46%; } .not-found__bars i:nth-child(8) { height: 8%; background: var(--marker); }

/* 25. Motion --------------------------------------------------------------- */
@keyframes marquee { to { transform: translateX(-100%); } }
@keyframes blink { 50% { opacity: 0; } }
@keyframes ping { 0% { transform: scale(.6); opacity: .9; } 80%, 100% { transform: scale(1.6); opacity: 0; } }
@keyframes heat { 50% { transform: scale(1.15) translate(6px, -4px); opacity: .75; } }
@keyframes grow { from { transform: scaleY(.72); } to { transform: scaleY(1); } }
.specimen__bars i, .not-found__bars i { transform-origin: bottom; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes success-in { from { opacity: 0; transform: translateY(14px) scale(.98); } }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes rise-card { from { opacity: 0; transform: translate3d(0, 40px, 0) scale(.96); } to { opacity: 1; transform: translate3d(var(--px), var(--py), 0); } }

/* The one orchestrated moment: hero load sequence. */
.motion .hero__title { animation: rise 1s var(--ease-out) .05s both; }
.motion .hero__text { animation: rise 1s var(--ease-out) .18s both; }
.motion .hero__actions { animation: rise 1s var(--ease-out) .3s both; }
.motion .hero__proof { animation: rise 1s var(--ease-out) .42s both; }
.motion .query-card { animation: rise-card 1.2s var(--ease-out) .65s both; }
.motion .page-hero__copy > * { animation: rise .9s var(--ease-out) both; }
.motion .page-hero__copy > :nth-child(2) { animation-delay: .06s; }
.motion .page-hero__copy > :nth-child(3) { animation-delay: .12s; }
.motion .page-hero__copy > :nth-child(n + 4) { animation-delay: .18s; }
.motion .page-hero .specimen { animation: rise 1.1s var(--ease-out) .2s both; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
	.marquee__viewport { width: auto; flex-wrap: wrap; }
	.marquee__list[aria-hidden] { display: none; }
	.marquee__list { flex-wrap: wrap; flex-shrink: 1; width: 100%; row-gap: 4px; padding-inline: var(--gutter); }
	.marquee__list li { font-size: 1.25rem; }
	.query-card__live i::after { display: none; }
	.hl { background-size: 100% 82%; }
}

/* 26. Responsive ----------------------------------------------------------- */
@media (max-width: 1280px) {
	.mega__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
	.site-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
	.nav, .site-header__cta { display: none; }
	.menu-toggle { display: block; }
	.site-header.menu-open { background: var(--ink); box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; color: var(--paper); }
	.site-header.menu-open .menu-toggle { background: var(--ink-2); border-color: var(--line-on-ink); color: var(--paper); }
	.mega { display: none; }

	.hero { display: flex; flex-direction: column; min-height: 0; padding-top: calc(var(--header-h) + 40px); padding-bottom: 24px; }
	.hero__inner { order: 1; grid-template-columns: 1fr; gap: 0; }
	.hero__stage { order: 2; position: relative; inset: auto; width: 100%; height: clamp(360px, 62vw, 520px); margin-top: 8px; -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%); -webkit-mask-composite: source-over; mask-composite: add; }
	.section-head--split, .results__head, .surfaces__body, .services__grid, .process__grid, .voices__grid, .faq-section__grid, .cta__panel, .site-footer__top, .page-hero__grid, .contact__grid, .values__grid, .not-found__grid { grid-template-columns: 1fr; }
	.services__sticky, .process__sticky, .faq-section__side { position: static; }
	.device { position: relative; top: 0; }
	.specimen { justify-self: start; max-width: 380px; aspect-ratio: 4 / 3.6; }
	.article__layout { grid-template-columns: 1fr; gap: 0; }
	.article__aside { position: static; order: 2; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--line); }
	.article__aside .toc { display: none; }
	.bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bento__item--0, .bento__item--4 { grid-column: span 2; }
	.mini-process__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.insights__grid { grid-template-columns: 1fr; }
	.insights__grid .post-card--feature { grid-row: auto; }
	.not-found__bars { display: none; }
}

@media (max-width: 782px) {
	.admin-bar .site-header, .admin-bar .read-progress { top: 46px; }
}
@media (max-width: 600px) {
	.admin-bar .site-header { top: 0; position: fixed; }
	.admin-bar .read-progress { top: 0; }
}

@media (max-width: 768px) {
	:root { --header-h: 64px; }
	body { font-size: 1rem; }
	.svc-row { grid-template-columns: 42px minmax(0, 1fr) 36px; gap: 6px 16px; padding: 18px 8px; }
	.svc-row__icon { width: 42px; height: 42px; }
	.svc-row__short { grid-column: 2 / 3; grid-row: 2; font-size: .875rem; }
	.svc-row__go { grid-column: 3; grid-row: 1; width: 36px; height: 36px; }
	.surface-tab__btn { flex-wrap: wrap; gap: 4px 14px; }
	.device__screen { min-height: 470px; }
	.kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
	.kpi { padding: 12px; }
	.kpi__value { font-size: 1.3rem; }
	.case { width: min(84vw, 360px); }
	.steps { padding-left: 60px; }
	.step__num { left: -60px; width: 40px; height: 40px; }
	.steps__rail { left: 19px; }
	.post-list, .work-grid, .values__list, .team__list { grid-template-columns: 1fr; }
	.post-list .post-card--feature { grid-template-columns: 1fr; gap: 18px; }
	.case--wide .case__inner { display: flex; }
	.case--wide .case__chart { margin: 26px 0 22px; }
	.form__row--2 { grid-template-columns: 1fr; }
	.insights__grid .post-card:not(.post-card--feature) { grid-template-columns: 120px minmax(0, 1fr); gap: 16px; }
	.faq__a-inner p { padding-right: 0; }
	.hero__proof li + li { padding-left: 0; border-left: 0; }
	.site-footer__cols { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	.site-footer__bottom { flex-direction: column; align-items: flex-start; }
	.site-footer__legal { margin-right: 0; }
}

@media (max-width: 480px) {
	.bento { grid-template-columns: 1fr; }
	.bento__item--0, .bento__item--4 { grid-column: auto; }
	.mini-process__list { grid-template-columns: 1fr; }
	.site-footer__cols { grid-template-columns: 1fr; }
	.chat__msg--user { max-width: 92%; }
	.hero__actions .btn { width: 100%; }
	.cta__actions .btn { width: 100%; }
}

@media print {
	.site-header, .mobile-menu, .cta, .site-footer__mark, .hero__stage, .read-progress, .article__aside { display: none !important; }
	body { background: #fff; }
}


/* 27. White-theme sections (v1.1) ----------------------------------------- */
.chip-soft { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: var(--soft); border: 1px solid var(--line); font-size: .8125rem; font-weight: 600; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0; }
.tags li { padding: 4px 11px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: .78125rem; font-weight: 500; background: #fff; }
.is-dark .tags li { background: transparent; border-color: var(--line-on-ink); }

/* Trust: client brands + achievements */
.trust { padding: 44px 0 0; border-top: 1px solid var(--line); overflow: hidden; }
.trust__label { font-family: var(--font-body); font-size: .875rem; font-weight: 600; letter-spacing: 0; color: var(--slate); margin-bottom: 22px; }
.logos li::after { display: none !important; }
.logos li { padding-right: clamp(36px, 5vw, 72px); }
.logo__word { font-family: var(--font-display); font-size: clamp(1.35rem, 1rem + 1.1vw, 1.9rem); font-weight: 700; letter-spacing: -.03em; color: #A3A8AF; transition: color .3s; white-space: nowrap; }
.logo:hover .logo__word { color: var(--ink); }
.logo img { height: 40px; width: auto; filter: grayscale(1); opacity: .65; transition: opacity .3s, filter .3s; }
.logo:hover img { filter: none; opacity: 1; }
.achievements { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 44px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.achievement { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 6px; padding: 30px 28px 32px; }
.achievement + .achievement { border-left: 1px solid var(--line); }
.achievement:first-child { padding-left: 0; }
.achievement dd { margin: 0; font-family: var(--font-display); font-size: clamp(2.3rem, 1.5rem + 2.6vw, 3.8rem); font-weight: 700; letter-spacing: -.045em; line-height: 1; font-variant-numeric: tabular-nums; }
.achievement:nth-child(2) dd { background: linear-gradient(transparent 62%, var(--marker) 62%, var(--marker) 92%, transparent 92%); justify-self: start; align-self: flex-start; padding: 0 4px; }
.achievement dt { font-size: .9375rem; color: var(--slate); font-weight: 500; }

/* Why choose us */
.why__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 88px); }
.why__sticky { position: sticky; top: calc(var(--header-h) + 40px); display: grid; gap: 24px; justify-items: start; }
.why__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.why-item { display: grid; align-content: start; gap: 12px; padding: clamp(22px, 2.4vw, 30px); border: 1px solid var(--line); border-radius: 22px; background: #fff; transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .3s; }
.why-item:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -30px rgba(27, 29, 33, .35); border-color: var(--line-strong); }
.why-item__icon { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 6px; border-radius: 14px; background: var(--soft); border: 1px solid var(--line); transition: background .3s, color .3s; }
.why-item:hover .why-item__icon { background: var(--marker); border-color: var(--marker); color: var(--on-marker); }
.why-item h3 { font-size: 1.25rem; font-weight: 600; letter-spacing: -.02em; }
.why-item p { color: var(--slate); font-size: .9375rem; }
.why-item--feature { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr); column-gap: 22px; background: var(--ink); color: var(--paper); border-color: var(--ink); }
.why-item--feature .why-item__icon { grid-row: span 2; background: var(--marker); border-color: var(--marker); color: var(--on-marker); margin: 0; }
.why-item--feature h3 { font-size: clamp(1.35rem, 1.1rem + .8vw, 1.75rem); align-self: end; }
.why-item--feature p { color: var(--slate-on-ink); max-width: 56ch; }

/* Results: case cards with KPI rings */
.results__head-side { display: grid; gap: 18px; justify-items: start; }
.cases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.cases--single { grid-template-columns: minmax(0, 760px); }
.case-card { position: relative; display: flex; flex-direction: column; gap: 16px; padding: clamp(24px, 3vw, 40px); border: 1px solid var(--line); border-radius: 28px; background: #fff; box-shadow: 0 1px 2px rgba(27, 29, 33, .04); transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out), border-color .3s; }
.case-card:hover { transform: translateY(-6px); box-shadow: 0 40px 70px -40px rgba(27, 29, 33, .35); border-color: color-mix(in srgb, var(--marker) 70%, transparent); }
.case-card__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.case-card__client { font-family: var(--font-display); font-size: 1.5rem; font-weight: 800; letter-spacing: -.035em; }
.case-card__title { margin-top: 10px; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.95rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.12; text-wrap: balance; }
.case-card__summary { color: var(--slate); font-size: .9375rem; max-width: 58ch; }
.case-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: auto; padding-top: 22px; border-top: 1px solid var(--line); }
.case-card__link { display: inline-flex; align-items: center; gap: 12px; font-weight: 600; font-size: .9375rem; text-decoration: none; }
.case-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.case-card__go { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--ink); color: var(--paper); transition: transform .5s var(--ease-out), background .3s, color .3s; }
.case-card:hover .case-card__go { transform: rotate(45deg); background: var(--marker); color: var(--on-marker); }

.rings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 8px 0 0; padding: 0; list-style: none; }
.ring { display: grid; justify-items: center; gap: 10px; padding: 18px 8px 16px; border-radius: 18px; background: var(--soft); text-align: center; }
.ring__dial { position: relative; display: grid; place-items: center; width: clamp(84px, 8vw, 108px); aspect-ratio: 1; }
.ring__dial svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.ring__track { fill: none; stroke: var(--stone-2); stroke-width: 7; }
.ring__bar { fill: none; stroke: var(--marker); stroke-width: 7; stroke-linecap: round; stroke-dasharray: var(--v) 100; transition: stroke-dasharray 1.6s var(--ease-in-out); }
.js.motion [data-kpis]:not(.is-in) .ring__bar { stroke-dasharray: 0 100; }
.ring__value { position: relative; font-family: var(--font-display); font-size: clamp(1.1rem, .9rem + .6vw, 1.4rem); font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.ring__label { font-size: .8125rem; color: var(--slate); font-weight: 500; line-height: 1.3; }
.case .rings, .specimen .rings { margin: 22px 0; }
.case .ring, .specimen .ring { background: rgba(255, 255, 255, .05); }
.case .ring__track, .specimen .ring__track { stroke: var(--ink-3); }
.case .ring__label, .specimen .ring__label { color: var(--slate-on-ink); }
.case .ring__bar, .specimen .ring__bar { stroke-dasharray: var(--v) 100 !important; }

/* Funnel */
.funnel__stages { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; list-style: none; margin: 0; padding: 0; }
.stage__shape { display: grid; place-content: center; justify-items: center; gap: 4px; height: clamp(150px, 15vw, 210px); text-align: center; clip-path: polygon(0 var(--a), 100% var(--b), 100% calc(100% - var(--b)), 0 calc(100% - var(--a))); transition: transform .6s var(--ease-out), filter .3s; }
.stage:hover .stage__shape { transform: translateY(-6px); }
.stage__num { font-size: .8125rem; font-weight: 600; opacity: .65; }
.stage__name { font-size: clamp(1.15rem, .95rem + .8vw, 1.6rem); font-weight: 700; letter-spacing: -.025em; }
.stage--0 { --a: 0%; --b: 8%; } .stage--0 .stage__shape { background: var(--stone); }
.stage--1 { --a: 8%; --b: 16%; } .stage--1 .stage__shape { background: var(--stone-2); }
.stage--2 { --a: 16%; --b: 24%; } .stage--2 .stage__shape { background: var(--ink); color: var(--paper); }
.stage--3 { --a: 24%; --b: 32%; } .stage--3 .stage__shape { background: var(--marker); color: var(--on-marker); }
.stage__text { margin: 22px 0 14px; padding-right: 14px; color: var(--slate); font-size: .9375rem; }

/* Reporting + dashboard */
.reporting__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.report-list { display: grid; gap: 22px; margin-top: 40px; list-style: none; padding: 0; }
.report-list li { display: flex; gap: 16px; align-items: flex-start; }
.report-list__icon { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-on-ink); color: var(--marker); }
.report-list h3 { font-size: 1.125rem; font-weight: 600; letter-spacing: -.015em; color: var(--paper); }
.report-list p { margin-top: 4px; color: var(--slate-on-ink); font-size: .9375rem; }
.dash { margin: 0; padding: clamp(20px, 2.4vw, 28px); border: 1px solid var(--line-on-ink); border-radius: 28px; background: var(--ink-2); box-shadow: 0 50px 90px -50px rgba(0, 0, 0, .7); }
.dash__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.dash__title { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .9375rem; }
.dash__title .bf-icon { color: var(--marker); }
.dash__chip { padding: 5px 11px; border: 1px solid var(--line-on-ink); border-radius: 999px; font-size: .75rem; color: var(--slate-on-ink); }
.dash__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.dash__kpi { padding: 16px; border-radius: 16px; background: var(--ink-3); }
.dash__kpi p { font-size: .75rem; color: var(--slate-on-ink); }
.dash__kpi strong { display: block; margin-top: 4px; font-family: var(--font-display); font-size: clamp(1.4rem, 1rem + 1.2vw, 2rem); font-weight: 700; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.dash__kpi:first-child strong { color: var(--marker); }
.dash__chart { color: var(--marker); padding: 16px 16px 10px; border-radius: 16px; background: var(--ink-3); }
.dash__chart svg { width: 100%; height: 130px; overflow: visible; }
.dash__line { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; transition: stroke-dashoffset 2s var(--ease-in-out); }
.js.motion [data-dash]:not(.is-in) .dash__line { stroke-dashoffset: 1; }
.dash__area { transition: opacity 1s ease 1s; }
.js.motion [data-dash]:not(.is-in) .dash__area { opacity: 0; }
.dash__months { display: flex; justify-content: space-between; margin-top: 8px; font-size: .71875rem; color: var(--slate-on-ink); }
.dash__bars { display: grid; gap: 12px; margin-top: 20px; list-style: none; padding: 0; }
.dash__bars li { display: grid; grid-template-columns: 96px minmax(0, 1fr) 44px; align-items: center; gap: 12px; font-size: .8125rem; color: var(--slate-on-ink); }
.dash__track { height: 8px; border-radius: 999px; background: var(--ink-3); overflow: hidden; }
.dash__track i { display: block; height: 100%; width: var(--w); border-radius: inherit; background: var(--marker); transform-origin: left; transition: transform 1.4s var(--ease-out) .3s; }
.js.motion [data-dash]:not(.is-in) .dash__track i { transform: scaleX(0); }
.dash__bars strong { text-align: right; color: var(--paper); font-weight: 600; }
.dash__note { margin-top: 18px; font-size: .75rem; color: var(--slate-on-ink); }

/* Local expertise + industries */
.local__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; margin-top: 32px; list-style: none; padding: 0; }
.checks--stack { grid-template-columns: 1fr; }
.checks li { display: flex; align-items: center; gap: 10px; font-weight: 500; font-size: .9375rem; }
.checks__icon { display: grid; place-items: center; flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--marker); color: var(--on-marker); }
.checks__icon .bf-icon { stroke-width: 2.4; }
.industries { padding: clamp(24px, 3vw, 40px); border: 1px solid var(--line); border-radius: 28px; background: #fff; box-shadow: var(--shadow-raised); }
.industries__head h3 { font-size: 1.5rem; font-weight: 600; letter-spacing: -.025em; }
.industries__head p { margin-top: 6px; color: var(--slate); font-size: .9375rem; }
.industries__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; margin-top: 22px; list-style: none; padding: 0; }
.industries__list li { display: flex; align-items: center; gap: 12px; padding: 14px 2px; border-bottom: 1px solid var(--line); font-weight: 500; font-size: .9375rem; transition: transform .4s var(--ease-out); }
.industries__list li .bf-icon { color: var(--slate); transition: color .3s; }
.industries__list li:hover { transform: translateX(4px); }
.industries__list li:hover .bf-icon { color: var(--marker-deep); }

/* Reviews wall */
.reviews__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.rating { display: grid; gap: 12px; justify-items: start; margin-top: 32px; padding: 28px; border-radius: 24px; background: var(--soft); border: 1px solid var(--line); }
.rating__score { font-family: var(--font-display); font-size: clamp(3.4rem, 2.4rem + 3vw, 5rem); font-weight: 800; letter-spacing: -.055em; line-height: .9; }
.rating__score span { font-size: .32em; color: var(--slate); font-weight: 600; letter-spacing: 0; margin-left: 4px; }
.stars--lg { gap: 3px; }
.rating__text { color: var(--slate); font-size: .9375rem; max-width: 32ch; }
.reviews__wall { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; height: 660px; overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%); }
.reviews__track { display: grid; gap: 18px; animation: reviews-up 60s linear infinite; }
.reviews__col--down .reviews__track { animation-direction: reverse; animation-duration: 68s; }
.reviews__wall:hover .reviews__track { animation-play-state: paused; }
@keyframes reviews-up { to { transform: translateY(calc(-50% - 9px)); } }
.review { display: grid; gap: 14px; margin: 0; padding: 22px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 1px 2px rgba(27, 29, 33, .04); }
.review__quote { margin: 0; }
.review__quote p { font-size: .96875rem; line-height: 1.6; }
.review__by { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--line); font-size: .9375rem; }
.review__by .monogram { width: 40px; height: 40px; font-size: .875rem; }
.review__by strong { display: block; font-weight: 600; }
.review__by span span { color: var(--slate); font-size: .8125rem; }

/* Contact band */
.form-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; letter-spacing: -.025em; margin-bottom: 22px; }
.contact-band .contact__info { display: grid; gap: 0; align-content: start; }
.contact-band .checks { margin-top: 28px; }
.contact-band .contact__channels { margin-top: 32px; }

@media (prefers-reduced-motion: reduce) {
	.reviews__wall { height: auto; -webkit-mask-image: none; mask-image: none; }
	.review--dup { display: none; }
}

@media (max-width: 1080px) {
	.why__grid, .reporting__grid, .local__grid, .reviews__grid { grid-template-columns: 1fr; }
	.why__sticky { position: static; }
	.achievements { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.achievement:nth-child(3) { border-left: 0; padding-left: 0; }
	.achievement:nth-child(n + 3) { border-top: 1px solid var(--line); }
	.cases { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
	.why__list { grid-template-columns: 1fr; }
	.why-item--feature { grid-template-columns: 1fr; }
	.why-item--feature .why-item__icon { grid-row: auto; }
	.funnel__stages { grid-template-columns: 1fr; gap: 6px; }
	.stage__shape { height: 96px; clip-path: polygon(var(--a) 0, calc(100% - var(--a)) 0, calc(100% - var(--b)) 100%, var(--b) 100%); }
	.stage--0 { --a: 0%; --b: 5%; } .stage--1 { --a: 5%; --b: 10%; } .stage--2 { --a: 10%; --b: 15%; } .stage--3 { --a: 15%; --b: 20%; }
	.stage { margin-bottom: 18px; }
	.stage__text { margin-top: 14px; }
	.rings { gap: 8px; }
	.ring { padding: 14px 4px 12px; }
	.dash__kpis { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
	.dash__kpi { padding: 12px; }
	.dash__bars li { grid-template-columns: 80px minmax(0, 1fr) 40px; }
	.checks, .industries__list { grid-template-columns: 1fr; }
	.reviews__wall { display: flex; height: auto; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-mask-image: none; mask-image: none; padding-bottom: 8px; scrollbar-width: none; }
	.reviews__col, .reviews__track { display: contents; }
	.reviews__track { animation: none; }
	.review { flex: 0 0 84%; scroll-snap-align: start; }
	.review--dup { display: none; }
}
.reporting__copy .section-lead, .local__copy .section-lead, .contact__info .section-lead, .reviews__side .section-lead { margin-top: 22px; }

.faq-updated { font-size: .8125rem; color: var(--slate); }
