/* ==========================================================================
   Whitehardt — front-end styles that theme.json can't express.
   Tokens come from theme.json (--wp--preset--*); short aliases below.
   ========================================================================== */

:root {
	--ink: var(--wp--preset--color--ink);
	--midnight: var(--wp--preset--color--midnight);
	--navy: var(--wp--preset--color--navy);
	--navy-light: var(--wp--preset--color--navy-light);
	--steel: var(--wp--preset--color--steel);
	--fog: var(--wp--preset--color--fog);
	--mist: var(--wp--preset--color--mist);
	--paper: var(--wp--preset--color--paper);
	--text: var(--wp--preset--color--body);
	--orange: var(--wp--preset--color--orange);
	--ember: var(--wp--preset--color--ember);
	--rust: var(--wp--preset--color--rust);
	--stone: var(--wp--preset--color--stone);
	--tan: var(--wp--preset--color--tan);
	--signal: var(--wp--preset--color--signal);
	--periwinkle: var(--wp--preset--color--periwinkle);
	--line-dark: var(--wp--custom--line--dark);
	--line-light: var(--wp--custom--line--light);
	--r-s: var(--wp--custom--radius--s);
	--r-m: var(--wp--custom--radius--m);
	--r-l: var(--wp--custom--radius--l);
	--ease: var(--wp--custom--ease);
	--grad-signal: var(--wp--preset--gradient--signal);
	--mono: var(--wp--preset--font-family--mono);
	--serif: var(--wp--preset--font-family--serif);

	/* Hot Tort Report channel colours (the report's own palette, lifted for dark backgrounds). */
	--c-whii: #c9ad8f;
	--c-tv: #e08d3c;
	--c-meta: #7f93e0;
	--c-ppc: #b27fc6;
}

/* ---------- Base ------------------------------------------------------- */

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

html { scroll-padding-top: calc(var(--wp--custom--header-height) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
	font-variant-numeric: lining-nums proportional-nums;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

::selection { background: var(--orange); color: var(--ink); }

:where(a, button, input, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--ember);
	outline-offset: 3px;
	border-radius: 4px;
}

a { text-underline-offset: .18em; text-decoration-thickness: 1px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}

/* An italic word inside a heading is the brand's serif accent. */
:where(h1, h2, h3, .wp-block-post-title) em {
	font-family: var(--serif);
	font-style: italic;
	font-weight: 500;
	letter-spacing: -0.02em;
	padding-right: .06em;
}
:where(.is-style-section-ink, .is-style-section-midnight, .wh-dark) :where(h1, h2) em {
	background: linear-gradient(100deg, var(--ember) 10%, var(--tan) 55%, var(--signal) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
:where(.is-style-section-paper, .is-style-section-white, body) :where(h1, h2) em { color: var(--rust); }

/* ---------- Header ------------------------------------------------------ */

/* The whole header part sticks, offset by the ticker's height so the ticker scrolls away
   and only the nav row stays pinned (--wh-ticker-h is measured in front.js). */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--wh-ticker-h, 0px));
	z-index: 60;
}

.wh-header {
	background: var(--ink); /* solid at the top of the page; glass once content scrolls under it */
	-webkit-backdrop-filter: saturate(150%) blur(18px); backdrop-filter: saturate(150%) blur(18px);
	-webkit-backdrop-filter: saturate(150%) blur(18px);
	border-bottom: 1px solid var(--line-dark);
	color: var(--mist);
	transition: background .3s var(--ease), border-color .3s var(--ease);
}
.wh-header.is-scrolled { background: rgba(10, 15, 30, .9); }
.wh-header > .wp-block-group { min-height: var(--wp--custom--header-height); }

.wh-header .wp-block-site-logo img { width: auto; height: 24px; max-width: none; } /* source PNG is 493×46: stays sharp on 2× screens up to ~23px */

.wh-header .wp-block-site-logo a { display: block; padding: 8px 0; }

.wh-header .wp-block-navigation { gap: .25rem; }
.wh-header .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--mist);
	padding: .55rem .8rem;
	border-radius: 999px;
	text-decoration: none;
	transition: color .2s, background .2s;
}
.wh-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.wh-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: #fff;
	background: rgba(255, 255, 255, .06);
}
.wh-header .wp-block-navigation-submenu__toggle,
.wh-header .wp-block-navigation__submenu-icon { color: var(--fog); }

.wh-header .wp-block-navigation__submenu-container {
	background: rgba(18, 26, 51, .97) !important;
	border: 1px solid var(--line-dark) !important;
	border-radius: var(--r-m);
	padding: .5rem !important;
	min-width: 270px !important;
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6);
	-webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
/* Each dropdown item: label over description. Core makes these a flex row with a long selector,
   so this matches its specificity. */
.wh-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item { width: 100%; }
.wh-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .2rem;
	width: 100%;
	border-radius: var(--r-s);
	padding: .7rem .9rem !important;
	font-weight: 600;
	line-height: 1.25;
	white-space: normal;
}
.wh-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
	background: rgba(255, 255, 255, .06);
	color: #fff;
}
.wh-header .wp-block-navigation__submenu-container .wp-block-navigation-item__label { color: #fff; }
.wh-header .wp-block-navigation__submenu-container .wp-block-navigation-item__description {
	display: block;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 450;
	line-height: 1.4;
	color: var(--fog);
}
.wh-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover .wp-block-navigation-item__description { color: var(--mist); }

.wh-header .wh-header__cta .wp-block-button__link { padding: .7em 1.2em; font-size: var(--wp--preset--font-size--x-small); }

/* Mobile overlay */
.wh-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--ink) !important;
	color: #fff !important;
	padding: 1.25rem clamp(1.25rem, 4vw, 3rem);
}
.wh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; gap: .25rem; }
.wh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.35rem;
	padding: .45rem 0 !important;
	background: none !important;
}
.wh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: none !important;
	border: 0 !important;
	box-shadow: none;
	padding: 0 0 .5rem 1rem !important;
}
.wh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; color: var(--fog); }
.wh-header .wp-block-navigation__responsive-container-open,
.wh-header .wp-block-navigation__responsive-container-close { color: #fff; }

@media (max-width: 1080px) {
	.wh-header .wp-block-site-logo img { height: 21px; }
}

/* ---------- Type utilities --------------------------------------------- */

.is-style-wh-eyebrow,
.wh-eyebrow {
	font-family: var(--mono);
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: flex-start;
	gap: .6em;
	color: var(--rust);
}
.is-style-wh-eyebrow::before {
	content: "";
	margin-top: .55em; /* centred on the first line when the label wraps */
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 18%, transparent);
	flex: none;
}
:where(.is-style-section-ink, .is-style-section-midnight, .wh-dark) .is-style-wh-eyebrow { color: var(--ember); }

.is-style-wh-lede {
	font-size: var(--wp--preset--font-size--large) !important;
	line-height: 1.5;
	font-weight: 450;
	max-width: 46ch;
}
:where(.is-style-section-ink, .is-style-section-midnight, .wh-dark) .is-style-wh-lede { color: #c9cede; }
.has-text-align-center.is-style-wh-lede { margin-inline: auto; }

.wh-mono { font-family: var(--mono); letter-spacing: .02em; }
.wh-balance { text-wrap: balance; }
:where(h1, h2, h3) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }

/* ---------- Buttons ------------------------------------------------------ */

.wp-block-button__link { transition: background .2s var(--ease), color .2s, transform .2s var(--ease), box-shadow .2s; }
.wp-block-button:not(.is-style-wh-link) .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button__link::after { transition: transform .2s var(--ease); }

.wp-block-button.is-style-wh-ghost .wp-block-button__link {
	background: transparent;
	color: inherit;
	box-shadow: inset 0 0 0 1px currentColor;
}
.wp-block-button.is-style-wh-ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, .08); color: inherit; }
:where(.is-style-section-paper, .is-style-section-white) .wp-block-button.is-style-wh-ghost .wp-block-button__link:hover { background: rgba(27, 32, 52, .06); }

.wp-block-button.is-style-wh-link .wp-block-button__link {
	background: none;
	padding: .2em 0;
	color: inherit;
	border-radius: 0;
	box-shadow: inset 0 -1px 0 currentColor;
}
.wp-block-button.is-style-wh-link .wp-block-button__link::after { content: "→"; display: inline-block; margin-left: .4em; }
.wp-block-button.is-style-wh-link .wp-block-button__link:hover::after { transform: translateX(4px); }

/* ---------- Sections & backgrounds ------------------------------------- */

.wh-section { position: relative; isolation: isolate; overflow: clip; }

/* Hero: night gradient, broadcast rings, dot matrix, grain. */
.wh-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	background: var(--wp--preset--gradient--night);
}
.wh-hero::before {
	/* broadcast rings, centred behind the console on wide screens */
	content: "";
	position: absolute;
	inset: -30% -25% -30% 30%;
	z-index: -1;
	background:
		repeating-radial-gradient(circle at 50% 50%, rgba(143, 160, 230, .10) 0 1px, transparent 1px 64px);
	mask-image: radial-gradient(closest-side, #000 20%, transparent 75%);
	-webkit-mask-image: radial-gradient(closest-side, #000 20%, transparent 75%);
	animation: wh-rings 14s ease-in-out infinite;
}
.wh-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(40% 50% at 8% 100%, rgba(188, 112, 32, .28), transparent 70%),
		radial-gradient(30% 40% at 95% 10%, rgba(80, 101, 172, .30), transparent 70%),
		radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1.2px) 0 0 / 22px 22px;
	mask-image: linear-gradient(to bottom, #000 60%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent);
	pointer-events: none;
}
@keyframes wh-rings { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }

.wh-hero h1 { font-size: clamp(2.75rem, 5.1vw, 5.25rem); line-height: 1; letter-spacing: -.045em; }

/* A thin animated signal line used under section headers and in the hero. */
.wh-signal-line {
	height: 1px;
	border: 0;
	background: linear-gradient(90deg, transparent, var(--orange) 20%, var(--tan) 50%, var(--signal) 80%, transparent);
	background-size: 200% 100%;
	animation: wh-signal 6s linear infinite;
	opacity: .7;
	margin: 0;
}
@keyframes wh-signal { from { background-position: 100% 0; } to { background-position: -100% 0; } }


/* Channel chips */
.wh-chips { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0; list-style: none; }
.wh-chips li {
	font-family: var(--mono);
	font-size: .75rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: .45rem .8rem;
	border-radius: 999px;
	border: 1px solid var(--line-dark);
	color: var(--mist);
	background: rgba(255, 255, 255, .03);
}
.wh-chips li.is-new { border-color: rgba(143, 160, 230, .45); color: #fff; background: rgba(80, 101, 172, .18); }
.wh-chips li.is-new::before { content: "✦ "; color: var(--signal); }

/* ---------- Cards -------------------------------------------------------- */

.is-style-wh-card {
	background: #fff;
	border: 1px solid var(--line-light);
	border-radius: var(--r-l);
	box-shadow: var(--wp--preset--shadow--soft);
	transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.is-style-wh-card:hover { transform: translateY(-3px); box-shadow: var(--wp--preset--shadow--lift); }

.is-style-wh-glass {
	position: relative;
	background: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .02));
	border: 1px solid var(--line-dark);
	border-radius: var(--r-l);
	transition: transform .35s var(--ease), border-color .35s, background .35s;
}
.is-style-wh-glass:hover { border-color: rgba(255, 255, 255, .16); transform: translateY(-3px); }
.is-style-wh-glass.is-featured,
.is-style-wh-glass.wh-featured {
	border-color: transparent;
	background:
		linear-gradient(180deg, rgba(36, 46, 80, .9), rgba(18, 26, 51, .9)) padding-box,
		linear-gradient(140deg, var(--orange), var(--tan) 45%, var(--signal)) border-box;
	border: 1px solid transparent;
}

/* Card internals */
.wh-card-icon { margin: 0 0 1.1rem !important; }
.wh-card-icon img { width: 44px !important; height: 44px !important; padding: 10px; border-radius: 12px; background: rgba(227, 154, 78, .1); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .25); }
.is-style-section-paper .wh-card-icon img, .is-style-wh-card .wh-card-icon img { background: rgba(188, 112, 32, .08); }
.wh-card-link { margin-top: auto !important; }
.wh-card-link a {
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
	display: inline-flex;
	gap: .4em;
	align-items: center;
}
.wh-card-link a::after { content: "→"; transition: transform .2s var(--ease); }
.wh-card-link a:hover::after { transform: translateX(4px); }

/* Make a card's link cover the whole card. */
.wh-stretch { position: relative; }
.wh-stretch .wh-card-link a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }

.wh-tag {
	font-family: var(--mono);
	font-size: .6875rem !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--signal) !important;
	padding: .3rem .6rem;
	border: 1px solid rgba(143, 160, 230, .4);
	border-radius: 999px;
	width: fit-content;
}

/* Bento grid */
.wh-bento { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem !important; }
.wh-bento > * { margin: 0 !important; grid-column: span 4; display: flex; flex-direction: column; }
.wh-bento > .wh-span-6 { grid-column: span 6; }
.wh-bento > .wh-span-8 { grid-column: span 8; }
.wh-bento > .wh-span-12 { grid-column: 1 / -1; }
@media (max-width: 1080px) { .wh-bento > *, .wh-bento > .wh-span-8 { grid-column: span 6; } }
@media (max-width: 680px) { .wh-bento > *, .wh-bento > .wh-span-6, .wh-bento > .wh-span-8 { grid-column: 1 / -1; } }

/* Numbered process */
.wh-steps { counter-reset: wh-step; position: relative; }
.wh-steps > .wp-block-column { position: relative; padding-top: 2.75rem; }
.wh-steps > .wp-block-column::before {
	counter-increment: wh-step;
	content: "0" counter(wh-step);
	position: absolute;
	top: 0;
	left: 0;
	font-family: var(--mono);
	font-size: .8125rem;
	letter-spacing: .1em;
	color: var(--rust);
	background: var(--paper);
	padding-right: .75rem;
}
.wh-steps > .wp-block-column::after {
	content: "";
	position: absolute;
	top: .55rem;
	left: 2.6rem;
	right: -2rem;
	height: 1px;
	background: linear-gradient(90deg, var(--orange), transparent);
	opacity: .5;
}
.wh-steps > .wp-block-column:last-child::after { right: 0; background: linear-gradient(90deg, var(--orange), var(--signal)); }
@media (max-width: 781px) { .wh-steps > .wp-block-column::after { right: 0; } }

/* Big metric */
.wh-metric { border-top: 1px solid var(--line-dark); padding-top: 1.25rem; }
.wh-metric .wh-metric__n { font-size: var(--wp--preset--font-size--xx-large); font-weight: 700; letter-spacing: -.04em; line-height: 1; margin: 0; color: #fff; }
.wh-metric p:not(.wh-metric__n) { color: var(--fog); margin-top: .5rem; font-size: var(--wp--preset--font-size--small); }
:where(.is-style-section-paper, .is-style-section-white) .wh-metric { border-color: var(--line-light); }
:where(.is-style-section-paper, .is-style-section-white) .wh-metric .wh-metric__n { color: var(--ink); }

/* Check list */
.is-style-wh-checks { list-style: none; padding-left: 0 !important; }
.is-style-wh-checks li { position: relative; padding-left: 1.75rem; margin-bottom: .55rem; }
.is-style-wh-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: .9rem;
	height: .9rem;
	border-radius: 50%;
	background: radial-gradient(circle, var(--orange) 0 3px, transparent 3.5px), rgba(188, 112, 32, .15);
}

/* ---------- Hot Tort Report: score card & summary ---------------------- */

.wh-score--full {
	--pad: clamp(1.25rem, 3vw, 1.75rem);
	background: linear-gradient(180deg, #242E50, #121A33);
	border: 1px solid var(--line-dark);
	border-radius: var(--r-l);
	padding: var(--pad);
	color: var(--mist);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6);
}
.wh-score__head { display: flex; align-items: baseline; gap: .75rem; margin-bottom: 1.25rem; }
.wh-score__rank { font-family: var(--mono); font-size: .8125rem; color: var(--ember); letter-spacing: .08em; }
.wh-score__name { font-weight: 700; color: #fff; font-size: var(--wp--preset--font-size--large); letter-spacing: -.01em; line-height: 1.2; }
.wh-score__name a { color: inherit; text-decoration: none; }
.wh-score__name a:hover { color: var(--ember); }
.wh-score__total { display: flex; align-items: flex-end; gap: .9rem; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line-dark); }
.wh-score__value {
	font-size: clamp(3.25rem, 6vw, 4.75rem);
	line-height: .85;
	font-weight: 700;
	letter-spacing: -.05em;
	background: linear-gradient(120deg, #fff 30%, var(--tan));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.wh-score__label { font-family: var(--mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fog); padding-bottom: .35rem; }
.wh-score__bars { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.wh-score__bar { display: grid; grid-template-columns: 3.25rem 1fr 2.5rem; align-items: center; gap: .85rem; }
.wh-score__k { font-family: var(--mono); font-size: .8125rem; color: var(--mist); letter-spacing: .04em; }
.wh-score__v { font-family: var(--mono); font-size: .8125rem; color: #fff; text-align: right; }
.wh-score__track { position: relative; height: 10px; border-radius: 99px; background: rgba(255, 255, 255, .07); overflow: hidden; }
.wh-score__fill {
	position: absolute;
	inset: 0 auto 0 0;
	width: calc(var(--v) * 100%);
	border-radius: inherit;
	background: var(--c, var(--c-tv));
	box-shadow: 0 0 18px -2px var(--c, var(--c-tv));
	transform-origin: left;
}
.wh-score__bar--whii { --c: var(--c-whii); }
.wh-score__bar--tv { --c: var(--c-tv); }
.wh-score__bar--meta { --c: var(--c-meta); }
.wh-score__bar--ppc { --c: var(--c-ppc); }

/* Report summary panel */
.wh-htr {
	background: linear-gradient(180deg, rgba(36, 46, 80, .55), rgba(10, 15, 30, .75));
	border: 1px solid var(--line-dark);
	border-radius: var(--r-l);
	padding: clamp(1rem, 2.5vw, 1.5rem);
	color: var(--mist);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 40px 90px -35px rgba(0, 0, 0, .7);
}
.wh-htr--leader { padding: .6rem; }
.wh-htr--leader .wh-score--full { box-shadow: none; }
.wh-htr__bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .35rem .5rem 1rem; }
.wh-htr--leader .wh-htr__bar { padding: .6rem .9rem .75rem; }
.wh-htr__title { font-family: var(--mono); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; display: inline-flex; align-items: center; gap: .55rem; }
.wh-htr__title::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 4px rgba(61, 220, 132, .15); animation: wh-pulse 2.4s ease-in-out infinite; }
.wh-htr__meta { font-family: var(--mono); font-size: .75rem; color: var(--fog); text-align: right; }
.wh-htr__rows { list-style: none; margin: 0; padding: 0; }
.wh-htr__more { display: inline-flex; gap: .5em; margin: 1rem .5rem .25rem; font-weight: 700; font-size: var(--wp--preset--font-size--small); color: var(--ember); text-decoration: none; }
.wh-htr__more:hover { color: #fff; }
.wh-htr--leader .wh-htr__more { margin: .9rem .9rem .6rem; }
@keyframes wh-pulse { 50% { box-shadow: 0 0 0 7px rgba(61, 220, 132, 0); } }

.wh-score--row {
	display: grid;
	grid-template-columns: 2.25rem 1fr minmax(60px, 34%) 3rem;
	align-items: center;
	gap: .9rem;
	padding: .85rem .5rem;
	border-top: 1px solid var(--line-dark);
}
.wh-score--row .wh-score__rank { color: var(--fog); }
.wh-score--row:first-child .wh-score__rank { color: var(--ember); }
.wh-score--row .wh-score__name { font-size: var(--wp--preset--font-size--medium); font-weight: 600; }
.wh-score--row .wh-score__value { font-size: 1.25rem; font-family: var(--mono); font-weight: 500; letter-spacing: 0; text-align: right; background: none; color: #fff; }
.wh-score__meter { height: 6px; border-radius: 99px; background: rgba(255, 255, 255, .07); overflow: hidden; }
.wh-score__meter span { display: block; height: 100%; width: calc(var(--total) * 100%); border-radius: inherit; background: var(--grad-signal); transform-origin: left; }
@media (max-width: 520px) { .wh-score--row { grid-template-columns: 2rem 1fr 3rem; } .wh-score__meter { display: none; } }

/* Edition badge */
.wh-edition {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .55rem;
	font-family: var(--mono);
	font-size: .75rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .5rem .9rem;
	border: 1px solid var(--line-dark);
	border-radius: 999px;
	color: var(--mist);
	background: rgba(255, 255, 255, .04);
}
.wh-edition__live { width: 7px; height: 7px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 4px rgba(61, 220, 132, .15); animation: wh-pulse 2.4s ease-in-out infinite; }
.wh-edition__sep { opacity: .4; }

/* Bars animate in when revealed (only when JS is running and motion is OK). */
@media (prefers-reduced-motion: no-preference) {
	.js .wh-score__fill, .js .wh-score__meter span { transform: scaleX(0); transition: transform 1.1s var(--ease); }
	.js .is-visible .wh-score__fill, .js .is-visible .wh-score__meter span,
	.js .wh-score.is-visible .wh-score__fill { transform: scaleX(1); }
	.js .wh-score__bar:nth-child(2) .wh-score__fill { transition-delay: .08s; }
	.js .wh-score__bar:nth-child(3) .wh-score__fill { transition-delay: .16s; }
	.js .wh-score__bar:nth-child(4) .wh-score__fill { transition-delay: .24s; }
}

/* ---------- Client firms marquee -------------------------------------- */

.wh-firms {
	display: flex;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.wh-firms__track {
	display: flex;
	flex: none;
	gap: 3.5rem;
	padding: 0 1.75rem;
	margin: 0;
	list-style: none;
	animation: wh-marquee 55s linear infinite;
}
.wh-firms:hover .wh-firms__track { animation-play-state: paused; }
.wh-firms__track li {
	white-space: nowrap;
	font-family: var(--serif);
	font-size: clamp(1.15rem, 1.8vw, 1.5rem);
	font-weight: 500;
	color: var(--fog);
	letter-spacing: .01em;
}
.wh-firms__track li::after { content: "✦"; font-size: .6em; margin-left: 3.5rem; color: var(--orange); opacity: .6; vertical-align: middle; }
@keyframes wh-marquee { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .wh-firms__track { animation: none; } .wh-firms { overflow-x: auto; } }

/* ---------- Testimonials ----------------------------------------------- */

.wh-quote {
	margin: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1.75rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: #fff;
	border: 1px solid var(--line-light);
	border-radius: var(--r-l);
	box-shadow: var(--wp--preset--shadow--soft);
}
.wh-quote__text { margin: 0; padding: 0; border: 0; }
.wh-quote__text p {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.45;
	font-weight: 500;
	color: var(--ink);
	letter-spacing: -.01em;
}
.wh-quote__text::before { content: "“"; display: block; font-family: var(--serif); font-weight: 600; color: var(--orange); font-size: 4.5rem; line-height: 1; height: 2.6rem; margin-bottom: .25rem; }
.wh-quote--long .wh-quote__text p { font-size: 1.125rem; line-height: 1.55; }
.wh-quote__by { display: flex; align-items: center; gap: .85rem; }
.wh-quote__avatar {
	width: 44px; height: 44px; flex: none;
	display: grid; place-items: center;
	border-radius: 50%;
	font-family: var(--mono); font-size: .8125rem; font-weight: 600;
	color: #fff;
	background: linear-gradient(140deg, var(--navy-light), var(--steel));
}
.wh-quote__name { display: block; font-weight: 700; color: var(--ink); }
.wh-quote__firm { display: block; font-size: var(--wp--preset--font-size--small); color: #5b6178; }

.wh-quotes--grid, .wh-quotes--wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 1rem; }
.wh-quotes--wall { display: block; columns: 3 320px; column-gap: 1rem; }
.wh-quotes--wall .wh-quote { break-inside: avoid; margin-bottom: 1rem; }

.wh-quotes--carousel .wh-quotes__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(88%, 520px);
	column-gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding: .25rem .25rem 1.5rem;
	align-items: stretch; /* equal-height cards; the name sits on the bottom edge of each */
}
.wh-quotes--carousel .wh-quotes__track::-webkit-scrollbar { display: none; }
.wh-quotes--carousel .wh-quote { scroll-snap-align: start; }
.wh-quotes__nav { display: flex; gap: .5rem; justify-content: flex-end; }
.wh-quotes__btn {
	width: 48px; height: 48px;
	border-radius: 50%;
	border: 1px solid var(--line-light);
	background: #fff;
	color: var(--ink);
	font-size: 1.1rem;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.wh-quotes__btn:hover { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---------- Team -------------------------------------------------------- */

.wh-team { list-style: none; margin: 0; padding: 0; }
.wh-team--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 2rem 1.25rem; }
@media (max-width: 600px) { .wh-team--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem .85rem; } .wh-person__name { font-size: .9375rem; } .wh-person__role { font-size: .8125rem; } }
.wh-person__link { display: block; text-decoration: none; color: inherit; }
.wh-person__photo { display: block; aspect-ratio: 4 / 5; border-radius: var(--r-m); overflow: hidden; background: var(--navy); margin-bottom: .9rem; }
.wh-person__img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.05); transition: filter .5s var(--ease), transform .6s var(--ease); }
.wh-person__link:hover .wh-person__img { filter: grayscale(0); transform: scale(1.03); }
.wh-person__img--initials { display: grid; place-items: center; font-family: var(--serif); font-size: 2.5rem; color: var(--stone); filter: none; }
.wh-person__name { display: block; font-weight: 700; color: var(--ink); line-height: 1.25; }
.wh-person__role { display: block; font-size: var(--wp--preset--font-size--small); color: #5b6178; margin-top: .2rem; line-height: 1.35; }
:where(.is-style-section-ink, .is-style-section-midnight) .wh-person__name { color: #fff; }
:where(.is-style-section-ink, .is-style-section-midnight) .wh-person__role { color: var(--fog); }

.wh-team--strip { display: flex; flex-wrap: wrap; }
.wh-person--strip { width: 64px; height: 64px; margin-right: -10px; border-radius: 50%; overflow: hidden; border: 3px solid var(--ink); background: var(--navy); }
.wh-person--strip .wh-person__img { filter: grayscale(.85); }
.wh-person--strip:hover { z-index: 1; transform: translateY(-4px); transition: transform .25s var(--ease); }
.wh-person--strip:hover .wh-person__img { filter: none; }

/* ---------- Work reel --------------------------------------------------- */

.wh-work { list-style: none; margin: 0; padding: 0; }
.wh-work--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1.5rem 1rem; }
.wh-work--rail {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(78%, 400px);
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 1rem;
	scrollbar-width: thin;
	scrollbar-color: var(--steel) transparent;
}
.wh-spot { scroll-snap-align: start; }
.wh-spot__play {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	padding: 0;
	border-radius: var(--r-m);
	overflow: hidden;
	background: var(--navy);
	cursor: pointer;
}
.wh-spot__img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.02); transition: transform .6s var(--ease), filter .4s; filter: saturate(.85) brightness(.85); }
.wh-spot__play:hover .wh-spot__img { transform: scale(1.07); filter: saturate(1) brightness(.95); }
.wh-spot__icon {
	position: absolute;
	left: 50%; top: 50%;
	width: 58px; height: 58px;
	translate: -50% -50%;
	border-radius: 50%;
	background: rgba(10, 15, 30, .55);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35);
	transition: background .25s, transform .25s var(--ease);
}
.wh-spot__icon::after { content: ""; position: absolute; left: 54%; top: 50%; translate: -50% -50%; border-style: solid; border-width: 9px 0 9px 15px; border-color: transparent transparent transparent #fff; }
.wh-spot__play:hover .wh-spot__icon { background: var(--orange); transform: scale(1.08); }
.wh-spot__title { display: block; margin-top: .75rem; font-weight: 600; color: #fff; }
.wh-spot__cat { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fog); margin-top: .2rem; }
:where(.is-style-section-paper, .is-style-section-white) .wh-spot__title { color: var(--ink); }

/* ---------- Subscribe -------------------------------------------------- */

.wh-subscribe__form { display: flex; gap: .5rem; padding: .4rem; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid var(--line-dark); max-width: 520px; }
.wh-subscribe__form input { flex: 1; min-width: 0; background: transparent; border: 0; color: #fff; padding: .8rem 1.1rem; font: inherit; }
.wh-subscribe__form input::placeholder { color: var(--fog); }
.wh-subscribe__btn { border: 0; border-radius: 999px; padding: .8rem 1.4rem; background: var(--orange); color: var(--ink); font: inherit; font-weight: 700; font-size: var(--wp--preset--font-size--small); }
.wh-subscribe__btn:disabled { opacity: 1; cursor: not-allowed; }
:where(.is-style-section-paper, .is-style-section-white) .wh-subscribe__form { background: #fff; border-color: var(--line-light); }
:where(.is-style-section-paper, .is-style-section-white) .wh-subscribe__form input { color: var(--ink); }

/* Gravity Forms inside the subscribe block, matched to the design. */
.wh-subscribe .gform_wrapper .gform_fields { gap: .5rem !important; }
.wh-subscribe .gform_wrapper input[type=email] { border-radius: 999px !important; padding: .9rem 1.2rem !important; }
.wh-subscribe .gform_wrapper .gform-button { border-radius: 999px !important; background: var(--orange) !important; color: var(--ink) !important; font-weight: 700 !important; }

/* ---------- FAQ (details) ------------------------------------------------ */

.wp-block-details summary { cursor: pointer; font-weight: 700; font-size: var(--wp--preset--font-size--large); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-family: var(--mono); font-weight: 400; color: var(--orange); transition: transform .25s var(--ease); }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: .75rem; max-width: 70ch; }

/* ---------- Page hero (simple pages) ------------------------------------ */

.wh-page-hero { padding-block: clamp(4rem, 9vw, 7.5rem) clamp(2.5rem, 5vw, 4rem); }
.wh-page-hero .wp-block-post-title { color: #fff; font-size: var(--wp--preset--font-size--huge); }

/* ---------- Article -------------------------------------------------------- */

.wh-article .wp-block-post-content > * { margin-block: 0 1.25rem; }
.wh-article .wp-block-post-content :where(h2, h3) { margin-top: 2.5rem; }
.wh-article .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--x-large); }

.wh-post-card { height: 100%; }
.wh-post-card .wp-block-post-featured-image img { border-radius: var(--r-m); aspect-ratio: 16 / 10; object-fit: cover; }
.wh-post-card .wp-block-post-title a { text-decoration: none; color: var(--ink); }
.wh-post-card .wp-block-post-title a:hover { color: var(--rust); }

/* ---------- Footer -------------------------------------------------------- */

.wh-footer { color: var(--fog); }
.wh-footer a { color: var(--mist); text-decoration: none; }
.wh-footer a:hover { color: #fff; }
.wh-footer .wp-block-site-logo img { height: 18px; width: auto; }
.wh-footer h2, .wh-footer h3 { color: #fff; }
.wh-footer .wh-footer__heading { font-family: var(--mono); font-size: .75rem !important; letter-spacing: .14em; text-transform: uppercase; color: var(--fog); font-weight: 500; margin-bottom: 1rem; }
.wh-footer .wp-block-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; font-size: var(--wp--preset--font-size--small); }
.wh-footer .wp-block-social-links { margin-top: var(--wp--preset--spacing--40) !important; }
.wh-footer .wh-footer__legal { border-top: 1px solid var(--line-dark); font-size: var(--wp--preset--font-size--x-small); }
.wh-footer .wp-block-social-links .wp-social-link { background: rgba(255, 255, 255, .06) !important; color: var(--mist) !important; transition: background .2s, color .2s; }
.wh-footer .wp-block-social-links .wp-social-link:hover { background: var(--orange) !important; color: var(--ink) !important; transform: none; }

/* ---------- Reveal on scroll --------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
	.js .wh-reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
	.js .wh-reveal.is-visible { opacity: 1; transform: none; }
	.js .wh-reveal-children > * { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
	.js .wh-reveal-children.is-visible > * { opacity: 1; transform: none; }
	.js .wh-reveal-children.is-visible > :nth-child(2) { transition-delay: .07s; }
	.js .wh-reveal-children.is-visible > :nth-child(3) { transition-delay: .14s; }
	.js .wh-reveal-children.is-visible > :nth-child(4) { transition-delay: .21s; }
	.js .wh-reveal-children.is-visible > :nth-child(5) { transition-delay: .28s; }
	.js .wh-reveal-children.is-visible > :nth-child(6) { transition-delay: .35s; }
	.js .wh-reveal-children.is-visible > :nth-child(7) { transition-delay: .42s; }
	.js .wh-reveal-children.is-visible > :nth-child(8) { transition-delay: .49s; }
	.js .wh-reveal-children.is-visible > :nth-child(n+9) { transition-delay: .56s; }
}

/* In the editor everything is visible. */
.editor-styles-wrapper .wh-reveal, .editor-styles-wrapper .wh-reveal-children > * { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .wh-score__fill, .editor-styles-wrapper .wh-score__meter span { transform: none !important; }

/* ---------- Header: report ticker & services mega menu ------------------ */

.wh-topbar { background: var(--ink); border-bottom: 1px solid var(--line-dark); }
.wh-htr--ticker { margin: 0; text-align: center; font-size: .8125rem; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.wh-htr--ticker a {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: .2rem .65rem;
	padding: .55rem 0;
	color: var(--mist);
	text-decoration: none;
}
.wh-htr__dot { width: 7px; height: 7px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 4px rgba(61, 220, 132, .15); animation: wh-pulse 2.4s ease-in-out infinite; }
.wh-htr__ticker-label { font-family: var(--mono); letter-spacing: .1em; text-transform: uppercase; font-size: .72rem; color: #fff; }
.wh-htr__ticker-sep { color: var(--steel); }
.wh-htr__ticker-lead b { font-family: var(--mono); color: var(--ember); font-weight: 600; margin-left: .25rem; }
.wh-htr__ticker-cta { color: var(--ember); font-weight: 700; }
.wh-htr--ticker a:hover .wh-htr__ticker-cta { color: #fff; }
@media (max-width: 600px) { .wh-htr__ticker-sep, .wh-htr__ticker-lead { display: none; } }

@media (min-width: 782px) {
	.wh-header .wh-nav-services > .wp-block-navigation__submenu-container {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .1rem .25rem;
		width: 620px !important;
	}
	.wh-header .wp-block-navigation__submenu-container { min-width: 300px !important; }
}

/* ---------- Layout seams ------------------------------------------------- */

/* Header, main and footer butt together; designed pages stack full-bleed sections with no gaps. */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wh-main { margin-block: 0; }
.wh-canvas > * + * { margin-block-start: 0; }
.wh-canvas > .alignfull:first-child { margin-top: 0; }

/* Default card padding (cards are groups/columns with the Card or Glass style). */
.is-style-wh-card, .is-style-wh-glass { padding: clamp(1.5rem, 3vw, 2.25rem); }

/* Founders' pledge */
.wh-pledge { border-left-color: var(--orange); margin: 0; }
.wh-pledge p { font-family: var(--serif); font-style: italic; font-size: var(--wp--preset--font-size--x-large); line-height: 1.3; color: #fff; font-weight: 500; letter-spacing: -.01em; }
.wh-pledge cite { display: block; margin-top: 1rem; font-style: normal; font-family: var(--mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fog); }

/* ---------- Hot Tort Report page --------------------------------------- */

.wh-torts { padding-block: var(--wp--preset--spacing--40); }
.wh-tort { padding-block: var(--wp--preset--spacing--70); }
.wh-tort + .wh-tort { border-top: 1px solid var(--line-light); }
.wh-tort__text > * + * { margin-block-start: 1rem; }
.wh-tort__text h2 { font-size: var(--wp--preset--font-size--xx-large); margin-block-start: .5rem; }
/* The tort's rank: a large serif "#2" with "of 10" beside it */
.wh-tort__rank { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .9rem; margin: 0; }
.wh-tort__rank b { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: clamp(3rem, 5.5vw, 4.5rem); line-height: 1.05; letter-spacing: -.02em; color: var(--orange); padding-inline-end: .08em; }
.wh-tort__rank span { font-family: var(--mono); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rust); }
/* ...and in the report's "On this page" bar, each tort's rank in orange before its name */
.wh-subnav--ranks .wh-subnav__list a span { font-family: var(--wp--preset--font-family--sans); font-size: .875rem; font-weight: 800; color: var(--ember); }
.wh-tort__text p { max-width: 64ch; }
.wh-tort__text .wp-block-buttons { margin-top: 1.75rem; }
@media (min-width: 782px) {
	.wh-tort__score { position: sticky; top: calc(var(--wp--custom--header-height) + 24px); align-self: flex-start; }
}
.wh-tort .wh-score--full { box-shadow: var(--wp--preset--shadow--lift); }

.wh-legend__item { border-top: 2px solid var(--c); padding-top: 1rem; }
.wh-legend__item--whii { --c: var(--c-whii); }
.wh-legend__item--tv { --c: var(--c-tv); }
.wh-legend__item--meta { --c: var(--c-meta); }
.wh-legend__item--ppc { --c: var(--c-ppc); }
.wh-legend__k { font-family: var(--mono); font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--ink); margin-bottom: .35rem; }
.wh-legend p:not(.wh-legend__k) { color: #4b5167; }

/* Team strip: the "+N more" bubble */
.wh-person--more { display: grid; place-items: center; background: var(--navy-light); color: #fff; font-family: var(--mono); font-size: .8125rem; font-weight: 600; }
.wh-person--more a { color: inherit; text-decoration: none; width: 100%; height: 100%; display: grid; place-items: center; }

/* Featured card with an illustration beside the copy */
@media (min-width: 900px) {
	.wh-has-demo { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); column-gap: clamp(1.5rem, 3vw, 2.75rem); align-content: start; }
	.wh-has-demo > * { grid-column: 1; }
	.wh-has-demo > .wh-ai-demo { grid-column: 2; grid-row: 1 / span 6; align-self: center; }
}

/* "AI answer" illustration: a question, an assistant reply that names the firm */
.wh-ai-demo {
	position: relative;
	border-radius: var(--r-m);
	padding: 1rem;
	background: rgba(10, 15, 30, .55);
	border: 1px solid var(--line-dark);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7);
	display: grid;
	gap: .75rem;
	margin: 1rem 0 0 !important;
}
.wh-ai-demo > * { margin: 0 !important; }
.wh-ai-demo__label { font-family: var(--mono); font-size: .6875rem !important; letter-spacing: .12em; text-transform: uppercase; color: var(--fog) !important; display: flex; justify-content: space-between; }
.wh-ai-demo__q {
	justify-self: end;
	max-width: 85%;
	background: var(--navy-light);
	color: #fff !important;
	padding: .65rem .9rem;
	border-radius: 14px 14px 4px 14px;
	font-size: var(--wp--preset--font-size--small) !important;
}
.wh-ai-demo__a {
	max-width: 95%;
	background: rgba(255, 255, 255, .04);
	border: 1px solid var(--line-dark);
	color: var(--mist) !important;
	padding: .75rem .9rem;
	border-radius: 14px 14px 14px 4px;
	font-size: var(--wp--preset--font-size--small) !important;
	line-height: 1.55;
}
.wh-ai-demo__a::before { content: "✦ "; color: var(--signal); }
.wh-ai-demo__a mark, .wh-ai-demo__a strong { background: linear-gradient(90deg, rgba(188,112,32,.35), rgba(143,160,230,.25)); color: #fff; padding: .05em .3em; border-radius: 4px; font-weight: 700; }
.wh-ai-demo__src { display: flex; gap: .4rem; flex-wrap: wrap; font-family: var(--mono); font-size: .6875rem !important; color: var(--fog) !important; }

/* Phones: tighter service cards so the grid doesn't become a long scroll. */
@media (max-width: 680px) {
	.wh-bento { gap: .75rem !important; }
	.wh-bento .is-style-wh-glass { padding: 1.25rem; }
	.wh-bento .wh-card-icon { margin-bottom: .25rem !important; }
	.wh-bento .wh-card-icon img { width: 36px !important; height: 36px !important; padding: 8px; }
	.wh-bento h3 { font-size: 1.1875rem !important; }
}

/* ---------- AI page: five layers ------------------------------------------ */

.wh-layers { border-top: 1px solid var(--line-dark); }
.wh-layer {
	display: grid !important;
	grid-template-columns: 5.5rem minmax(0, 1fr) minmax(0, 1.5fr) 12.5rem;
	align-items: baseline;
	gap: 1.5rem 2rem;
	padding: 2rem 0;
	border-bottom: 1px solid var(--line-dark);
	position: relative;
	transition: background .3s var(--ease);
}
.wh-layer > * { margin: 0 !important; }
.wh-layer::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 2px;
	background: var(--grad-signal);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .5s var(--ease);
}
.wh-layer:hover::before { transform: scaleY(1); }
.wh-layer__n { font-family: var(--mono); font-size: 2.25rem !important; line-height: 1; color: var(--steel); padding-left: 1rem; transition: color .3s; }
.wh-layer:hover .wh-layer__n { color: var(--ember); }
.wh-layer h3 { font-size: var(--wp--preset--font-size--x-large); }
.wh-layer p:not(.wh-layer__n):not(.wh-card-link) { color: #c9cede; }
.wh-layer .wh-card-link { white-space: nowrap; justify-self: end; }
@media (max-width: 900px) {
	.wh-layer { grid-template-columns: 3.5rem minmax(0, 1fr); }
	.wh-layer > :nth-child(n+3) { grid-column: 2; }
	.wh-layer__n { font-size: 1.5rem !important; padding-left: .5rem; }
}

.wh-ai-demo--large { padding: 1.25rem; gap: 1rem; }
.wh-ai-demo--large .wh-ai-demo__q, .wh-ai-demo--large .wh-ai-demo__a { font-size: var(--wp--preset--font-size--medium) !important; }

/* ---------- Contact form ---------------------------------------------------- */

.wh-form { background: #fff; border: 1px solid var(--line-light); border-radius: var(--r-l); padding: clamp(1.5rem, 3.5vw, 2.5rem); box-shadow: var(--wp--preset--shadow--lift); color: var(--text); }
.wh-form__title { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 1.25rem; color: var(--ink); }
.wh-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.wh-form__field { margin: 0; display: grid; gap: .4rem; }
.wh-form__field.is-wide { grid-column: 1 / -1; }
.wh-form__field label { font-family: var(--mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #5b6178; }
.wh-form__field input, .wh-form__field textarea { font: inherit; padding: .85rem 1rem; border: 1px solid var(--line-light); border-radius: var(--r-s); background: var(--paper); color: var(--ink); }
.wh-form__btn { justify-self: start; border: 0; border-radius: 999px; padding: .95rem 1.8rem; background: var(--orange); color: var(--ink); font: inherit; font-weight: 700; }
@media (max-width: 600px) { .wh-form__grid { grid-template-columns: 1fr; } }
.wh-form .gform_wrapper input:not([type=submit]), .wh-form .gform_wrapper textarea, .wh-form .gform_wrapper select { border-radius: var(--r-s) !important; }
.wh-form .gform_wrapper .gform-button, .wh-form .gform_wrapper [type=submit] { border-radius: 999px !important; background: var(--orange) !important; color: var(--ink) !important; font-weight: 700 !important; border: 0 !important; padding: .95rem 1.8rem !important; }

/* Cards stacked inside a column */
.wp-block-columns.wh-stack { flex-direction: column; }
.wp-block-columns.wh-stack > .wp-block-column { flex-basis: auto !important; width: 100%; }

/* White Heart Legal mark on the dark hero */
.wh-whl-logo img { filter: drop-shadow(0 30px 60px rgba(80, 101, 172, .35)); max-width: 100%; height: auto; aspect-ratio: 964 / 669; } /* the file's shape, so its space is kept before it loads */

/* Contact details */
.wh-contact { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1.5rem; border-top: 1px solid var(--line-dark); padding-top: 1.5rem; }
.wh-contact > * { margin: 0 !important; }
.wh-contact__k { font-family: var(--mono); font-size: .75rem !important; letter-spacing: .12em; text-transform: uppercase; color: var(--fog) !important; margin-bottom: .35rem !important; }
.wh-contact__item p:not(.wh-contact__k) { color: #fff; margin: 0; }

/* ---------- Long-form pages: article + sticky side card ----------------- */

.wh-prose > * { margin-block: 0 1.15rem; }
.wh-prose > :first-child { margin-top: 0; }
.wh-prose h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 3rem; color: var(--ink); }
.wh-prose h3 { font-size: var(--wp--preset--font-size--large); margin-top: 2rem; color: var(--ink); letter-spacing: -.01em; }
.wh-prose h4 { font-size: var(--wp--preset--font-size--medium); margin-top: 1.5rem; }
.wh-prose p, .wh-prose li { max-width: 68ch; }
.wh-prose ul, .wh-prose ol { padding-left: 1.25em; }
.wh-prose li { margin-bottom: .45rem; }
.wh-prose ul li::marker { color: var(--orange); }
.wh-prose .wp-block-embed { margin-block: 2rem; border-radius: var(--r-m); overflow: hidden; }
.wh-prose .wp-block-quote { margin-block: 2rem; }

.wh-aside { display: grid; gap: 1.25rem; align-content: start; }
@media (min-width: 782px) {
	.wh-aside { position: sticky; top: calc(var(--wp--custom--header-height) + 24px); align-self: flex-start; }
}
.wh-aside__card { border-radius: var(--r-l); }
.wh-aside__related { padding: 0 .25rem; }
.wh-aside__related .wh-footer__heading { color: #5b6178; font-family: var(--mono); font-size: .75rem !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; }
.wh-aside__related ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line-light); }
.wh-aside__related li { border-bottom: 1px solid var(--line-light); margin: 0; }
.wh-aside__related a { display: flex; justify-content: space-between; padding: .7rem 0; text-decoration: none; color: var(--ink); font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.wh-aside__related a::after { content: "→"; color: var(--orange); transition: transform .2s var(--ease); }
.wh-aside__related a:hover { color: var(--rust); }
.wh-aside__related a:hover::after { transform: translateX(3px); }

/* Side card on long-form pages: solid, since it sits on a light background */
.wh-aside__card.is-style-wh-glass { background: radial-gradient(120% 90% at 100% 0%, var(--navy-light), var(--ink) 70%); border-color: transparent; color: var(--mist); }
.wh-aside__card h3 { color: #fff; }

/* Category labels on post cards: inline list, dot only once */
.wp-block-post-terms.is-style-wh-eyebrow { display: block; }
.wp-block-post-terms.is-style-wh-eyebrow::before { display: inline-block; margin: 0 .6em .1em 0; vertical-align: middle; }
.wp-block-post-terms.is-style-wh-eyebrow a { color: inherit; text-decoration: none; }
.wp-block-post-terms__separator { opacity: .5; }

/* Score card never breaks the number or the rank */
.wh-score__value, .wh-score__rank { white-space: nowrap; }
.wh-score__total { flex-wrap: wrap; row-gap: .4rem; }

/* ---------- Capabilities: featured AI card + compact service tiles -------- */

.wh-featured-ai { padding: clamp(1.5rem, 3vw, 2.25rem) !important; }
@media (min-width: 900px) {
	.wh-featured-ai.wh-has-demo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.wh-featured-ai .wh-ai-demo { margin: 0 !important; }
}

.wh-tiles {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1rem !important;
}
.wh-tiles > * { margin: 0 !important; }
.wh-tile { position: relative; padding: 1.35rem 1.35rem 1.5rem !important; }
.wh-tile > * + * { margin-top: .6rem !important; }
.wh-tile .wh-card-icon { margin: 0 0 1rem !important; }
.wh-tile .wh-card-icon img { width: 36px !important; height: 36px !important; padding: 8px; border-radius: 10px; }
.wh-tile__title { font-size: 1.125rem !important; line-height: 1.25; letter-spacing: -.01em; }
.wh-tile__title a { color: #fff; text-decoration: none; }
.wh-tile__title a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole tile is the link */
.wh-tile__text { line-height: 1.5; margin-bottom: 0; }
.wh-tile::after {
	content: "↗";
	position: absolute;
	top: 1.25rem;
	right: 1.35rem;
	color: var(--fog);
	transition: color .2s, transform .25s var(--ease);
}
.wh-tile:hover::after { color: var(--ember); transform: translate(2px, -2px); }
.wh-tile:has(:focus-visible) { border-color: var(--ember); }

@media (max-width: 1080px) { .wh-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Phones: tiles become list rows, icon on the left */
@media (max-width: 600px) {
	.wh-tiles { grid-template-columns: 1fr; gap: .5rem; }
	.wh-tile { display: grid !important; grid-template-columns: 36px minmax(0, 1fr); column-gap: .9rem; align-items: start; padding: 1rem 2.5rem 1rem 1rem !important; }
	.wh-tile > * + * { margin-top: 0 !important; }
	.wh-tile .wh-card-icon { grid-row: 1 / span 2; margin: 0 !important; }
	.wh-tile__title, .wh-tile__text { grid-column: 2; }
	.wh-tile__text { margin-top: .2rem !important; }
	.wh-tile::after { top: 1rem; right: 1rem; }
	.wh-featured-ai .wh-ai-demo__src { display: none; }
}

/* ---------- Client logo slider ------------------------------------------- */

.wh-firms--logos .wh-firms__track { gap: 3.25rem; align-items: center; animation-duration: 70s; }
.wh-firms--logos .wh-firms__track li::after { content: none; }
.wh-firms--logos li { display: flex; align-items: center; }
.wh-firms__logo {
	display: block;
	width: 168px;
	height: 52px;
	object-fit: contain;
	transition: opacity .25s, filter .25s;
}
/* Transparent logos: grayscale, inverted for the dark band, so mixed brand colors read as one set
   while badges and knocked-out letters keep their detail. */
.wh-firms__logo.is-mono, .wh-firms__logo.is-silhouette { filter: grayscale(1) invert(1) brightness(1.15) contrast(1.15); opacity: .62; }
/* Logos on their own solid background: muted, as-is. */
.wh-firms__logo.is-tile { filter: grayscale(1) contrast(1.1); opacity: .6; width: auto; max-width: 168px; border-radius: 4px; }
.wh-firms--logos li:hover .wh-firms__logo { opacity: 1; }
@media (max-width: 600px) { .wh-firms__logo { width: 124px; height: 40px; } .wh-firms--logos .wh-firms__track { gap: 2.25rem; } }

/* ---------- Hero report card: one surface, not a card in a card ----------- */

.wh-htr--leader { padding: 0; overflow: hidden; }
.wh-htr--leader .wh-htr__bar { padding: 1.1rem 1.5rem; border-bottom: 1px solid var(--line-dark); background: rgba(255, 255, 255, .025); }
.wh-htr--leader .wh-score--full {
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 1.5rem 1.5rem .5rem;
}
.wh-htr--leader .wh-htr__more { margin: .75rem 1.5rem 1.4rem; }

@media (max-width: 600px) { .wh-header .wp-block-site-logo img { height: 19px; } }

/* ---------- Channel orbit (hero visual) ------------------------------------ */

.wh-orbit {
	--dur-in: 64s;
	--dur-out: 110s;
	position: relative;
	width: 100%;
	max-width: 600px;
	aspect-ratio: 1;
	margin-inline: auto;
	isolation: isolate;
}
.wh-orbit::before { /* soft glow behind the whole system */
	content: "";
	position: absolute;
	inset: 12%;
	z-index: -1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(188, 112, 32, .22), rgba(80, 101, 172, .18) 45%, transparent 70%);
	filter: blur(20px);
}
.wh-orbit__grid { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.wh-orbit__grid circle { fill: none; stroke: rgba(255, 255, 255, .09); stroke-width: .35; }
.wh-orbit__grid circle.is-dotted { stroke: rgba(143, 160, 230, .3); stroke-dasharray: .5 2.5; stroke-linecap: round; }

.wh-orbit__ring { position: absolute; border-radius: 50%; animation: wh-orbit-spin var(--dur) linear infinite; }
.wh-orbit__ring--inner { --dur: var(--dur-in); inset: 18%; }               /* radius 32% = grid r 64 */
.wh-orbit__ring--outer { --dur: var(--dur-out); inset: 6%; animation-direction: reverse; } /* radius 44% = grid r 88 */

.wh-orbit__spokes { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.wh-orbit__spoke {
	stroke: rgba(227, 154, 78, .75);
	stroke-width: 1.6;
	stroke-linecap: round;
	vector-effect: non-scaling-stroke;
	stroke-dasharray: 5 95;
	animation: wh-orbit-packet 12s linear infinite;
}
.wh-orbit__spoke.is-highlight { stroke: var(--signal); }

.wh-orbit__ring ul { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.wh-orbit__ring li { position: absolute; inset: 0; transform: rotate(var(--a)); pointer-events: none; }
.wh-orbit__ring li > b { /* zero-size anchor on the ring; counter-rotates so the label stays upright */
	position: absolute;
	left: 50%;
	top: 0;
	width: 0;
	height: 0;
	transform: rotate(calc(-1 * var(--a)));
	animation: wh-orbit-counter var(--dur) linear infinite;
}
.wh-orbit__ring--outer li > b { animation-direction: reverse; }

.wh-orbit__node {
	position: absolute;
	transform: translate(-50%, -50%);
	white-space: nowrap;
	font-family: var(--mono);
	font-weight: 500;
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--mist);
	padding: .5rem .85rem;
	border-radius: 999px;
	background: rgba(18, 26, 51, .9);
	border: 1px solid rgba(255, 255, 255, .13);
	box-shadow: 0 12px 30px -12px rgba(0, 0, 0, .7);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.wh-orbit__node::before { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 .5em .1em 0; border-radius: 50%; background: var(--ember); vertical-align: middle; }
.wh-orbit__node.is-highlight { color: #fff; border-color: rgba(143, 160, 230, .65); background: rgba(58, 74, 140, .55); box-shadow: 0 0 28px rgba(143, 160, 230, .45); }
.wh-orbit__node.is-highlight::before { content: "✦"; width: auto; height: auto; background: none; color: var(--signal); }

.wh-orbit__core {
	position: absolute;
	inset: 35%;
	display: grid;
	place-items: center;
	border-radius: 50%;
	/* frosted glass disc with a hairline gradient edge and an ember glow from below */
	border: 1px solid transparent;
	background:
		radial-gradient(90% 70% at 50% 115%, rgba(227, 154, 78, .42), transparent 70%) padding-box,
		linear-gradient(rgba(14, 20, 38, .8), rgba(14, 20, 38, .8)) padding-box,
		conic-gradient(from 210deg, rgba(227, 154, 78, .95), rgba(227, 154, 78, .1) 25%, rgba(143, 160, 230, .9) 55%, rgba(143, 160, 230, .1) 80%, rgba(227, 154, 78, .95)) border-box;
	-webkit-backdrop-filter: blur(18px) saturate(120%); backdrop-filter: blur(18px) saturate(120%);
	-webkit-backdrop-filter: blur(18px) saturate(120%);
	box-shadow: 0 0 70px -12px rgba(188, 112, 32, .55), 0 0 120px 10px rgba(80, 101, 172, .16), inset 0 1px 0 rgba(255, 255, 255, .06);
}
.wh-orbit__core::before { /* turning halo */
	content: "";
	position: absolute;
	inset: -16%;
	border-radius: 50%;
	background: conic-gradient(from 0deg, transparent 0 10%, rgba(143, 160, 230, .8) 22%, transparent 34% 55%, rgba(227, 154, 78, .8) 70%, transparent 82%);
	-webkit-mask: radial-gradient(circle, transparent 66.5%, #000 67.2%, #000 68.2%, transparent 69%);
	mask: radial-gradient(circle, transparent 66.5%, #000 67.2%, #000 68.2%, transparent 69%);
	animation: wh-orbit-spin 9s linear infinite;
}
.wh-orbit__core::after { /* pulse */
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 1px solid rgba(227, 154, 78, .5);
	animation: wh-orbit-pulse 3.4s ease-out infinite;
}
.wh-orbit__core span::before { /* signal dot */
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	margin: 0 auto .7rem;
	border-radius: 50%;
	background: var(--ember);
	box-shadow: 0 0 0 4px rgba(227, 154, 78, .18), 0 0 16px 2px rgba(227, 154, 78, .7);
	animation: wh-core-dot 2.4s ease-in-out infinite;
}
@keyframes wh-core-dot { 50% { box-shadow: 0 0 0 9px rgba(227, 154, 78, 0), 0 0 22px 4px rgba(227, 154, 78, .45); } }
.wh-orbit__core span {
	position: relative;
	max-width: 6.5em;
	font-family: var(--mono);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1.35;
	text-transform: uppercase;
	text-align: center;
	color: #fff;
	text-shadow: 0 1px 10px rgba(10, 15, 30, .6);
}

@keyframes wh-orbit-spin { from { rotate: 0deg; } to { rotate: 360deg; } }
@keyframes wh-orbit-counter { from { rotate: 0deg; } to { rotate: -360deg; } }
/* travel in the first 22% of the cycle (about 2.6s, the old speed), then rest unseen; invisible at both ends of the loop */
@keyframes wh-orbit-packet { 0% { stroke-dashoffset: 0; opacity: 0; } 2% { opacity: 1; } 20% { opacity: 1; } 22% { stroke-dashoffset: -100; opacity: 0; } 100% { stroke-dashoffset: -100; opacity: 0; } }
@keyframes wh-orbit-pulse { from { transform: scale(1); opacity: .8; } to { transform: scale(1.9); opacity: 0; } }

.wh-orbit:hover .wh-orbit__ring, .wh-orbit:hover .wh-orbit__ring li > b { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
	.wh-orbit *, .wh-orbit *::before, .wh-orbit *::after { animation: none !important; }
}
@media (max-width: 600px) {
	.wh-orbit { max-width: 380px; }
	.wh-orbit__node { font-size: .6rem; padding: .4rem .6rem; letter-spacing: .08em; }
	.wh-orbit__core span { font-size: .6rem; }
}

/* ======================================================================
   Video sections (core Cover blocks with a looping video)
   ====================================================================== */

.wh-dark { color: var(--mist); }
.wh-dark :where(h1, h2, h3, h4) { color: #fff; }
.wp-block-cover .wp-block-cover__video-background { filter: saturate(.8) contrast(1.04); }

/* Hero: full-bleed founders loop, dark where the type sits */
.wp-block-cover.wh-hero--video { min-height: min(88vh, 860px); align-items: center; }
.wh-hero--video .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(90deg, rgba(10, 15, 30, .96) 0%, rgba(10, 15, 30, .86) 36%, rgba(10, 15, 30, .5) 68%, rgba(10, 15, 30, .62) 100%),
		linear-gradient(0deg, rgba(10, 15, 30, .95) 0%, transparent 30%),
		radial-gradient(60% 70% at 78% 50%, rgba(80, 101, 172, .28), transparent 70%) !important;
}
.wh-hero--video h1 { font-size: clamp(2.75rem, 5.1vw, 5.25rem); line-height: 1; letter-spacing: -.045em; }
.wh-hero--video .wh-orbit__node { background: rgba(10, 15, 30, .78); }
@media (max-width: 781px) { .wp-block-cover.wh-hero--video { min-height: 0; } }

/* Practices: two tall video panels */
.wh-panels > .wp-block-column { display: flex; }
.wp-block-cover.wh-panel {
	width: 100%;
	min-height: 560px;
	border-radius: var(--r-l);
	overflow: hidden;
	padding: clamp(1.5rem, 3.5vw, 2.75rem);
	align-items: flex-end;
}
.wh-panel .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(0deg, rgba(10, 15, 30, .96) 8%, rgba(10, 15, 30, .55) 52%, rgba(10, 15, 30, .2) 100%) !important;
	transition: background .4s;
}
.wh-panel .wp-block-cover__video-background { transition: transform 1.2s var(--ease); }
.wh-panel:hover .wp-block-cover__video-background { transform: scale(1.05); }
.wh-panel .wp-block-cover__inner-container { width: 100%; }
.wh-panel .wp-block-cover__inner-container > * { margin-block: 0 1rem !important; max-width: 34rem; margin-inline: 0 !important; }
.wh-panel__title { font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--huge) !important; font-weight: 700; line-height: 1 !important; letter-spacing: -.035em; color: #fff; }
.wh-panel__text { color: #c9cede; font-size: var(--wp--preset--font-size--medium); }
.wh-panel .wh-chips { margin-bottom: 1.5rem !important; }
.wh-panel .wh-chips li { background: rgba(10, 15, 30, .45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
@media (max-width: 781px) { .wp-block-cover.wh-panel { min-height: 480px; } }

/* Founders: video card beside the pledge and numbers */
.wh-founders > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-cover.wh-founders__video { flex: 1; min-height: 420px; border-radius: var(--r-l); overflow: hidden; padding: 1.5rem; }
.wh-founders__video .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(0deg, rgba(10, 15, 30, .85), transparent 40%) !important; }
.wh-founders__caption { font-family: var(--mono); font-size: .75rem !important; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin: 0 !important; }
.wh-founders__caption::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--ember); margin-right: .6em; vertical-align: middle; }
.wh-founders__side { justify-content: space-between; }
.wh-pledge-card { padding: clamp(1.5rem, 3vw, 2.25rem) !important; }
.wh-pledge-card .wh-pledge { border: 0; padding: 0; margin: 0 0 1.5rem; }
.wh-pledge-card .wh-pledge p { font-size: var(--wp--preset--font-size--x-large); line-height: 1.3; }
.wh-pledge-card .wh-pledge p::before { content: "“"; display: block; font-family: var(--serif); font-style: normal; font-size: 3.5rem; line-height: .7; color: var(--orange); margin-bottom: .5rem; }
.wh-pledge-by { gap: .85rem !important; align-items: center !important; }
.wh-pledge-by__img { margin: 0 !important; }
.wh-pledge-by__img img { border-radius: 50%; border: 2px solid rgba(227, 154, 78, .6); }
.wh-pledge-by__name { margin: 0; color: #fff; font-weight: 700; line-height: 1.3; }
.wh-pledge-by__name span { font-family: var(--mono); font-size: .72rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--fog); }
.wh-founders__stats { margin: 0 !important; }

/* Team: wall of portraits */
.wh-team--wall {
	display: grid;
	grid-template-columns: repeat(9, minmax(0, 1fr));
	gap: .6rem;
}
.wh-person--wall :is(a, .wh-person__frame) { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; background: var(--navy); color: #fff; text-decoration: none; }
.wh-person--wall .wh-person__img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05) brightness(.9); transition: filter .4s var(--ease), transform .6s var(--ease); }
.wh-person--wall :is(a, .wh-person__frame):hover .wh-person__img, .wh-person--wall a:focus-visible .wh-person__img { filter: none; transform: scale(1.04); }
.wh-person__cap {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2rem .6rem .55rem;
	background: linear-gradient(0deg, rgba(10, 15, 30, .9), transparent);
	font-size: .75rem;
	line-height: 1.25;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .3s, transform .3s var(--ease);
}
.wh-person__cap b { display: block; font-size: .8125rem; }
.wh-person__cap span { color: var(--fog); }
.wh-person--wall :is(a, .wh-person__frame):hover .wh-person__cap, .wh-person--wall a:focus-visible .wh-person__cap { opacity: 1; transform: none; }
.wh-person--more a { display: grid; place-content: center; text-align: center; gap: .35rem; background: linear-gradient(160deg, var(--orange), #8a4f12); }
.wh-person--more a > span { font-size: clamp(1.5rem, 2.4vw, 2.25rem); font-weight: 700; letter-spacing: -.03em; }
.wh-person--more small { font-family: var(--mono); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
.wh-person--more .is-t, .wh-person--more .is-m { display: none; }
@media (max-width: 1080px) {
	.wh-team--wall { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.wh-team--wall > li:nth-child(n+12):not(.wh-person--more) { display: none; }
	.wh-person--more .is-d { display: none; } .wh-person--more .is-t { display: inline; }
}
@media (max-width: 600px) {
	.wh-team--wall { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
	.wh-team--wall > li:nth-child(n+8):not(.wh-person--more) { display: none; }
	.wh-person--more .is-t { display: none; } .wh-person--more .is-m { display: inline; }
	.wh-person__cap { display: none; }
}

/* ======================================================================
   How we use AI: step illustrations
   ====================================================================== */

.wh-steps--visual { position: relative; }
.wh-steps--visual > .wp-block-column { padding-top: 0; display: flex; flex-direction: column; }
.wh-steps--visual > .wp-block-column::before {
	position: static;
	order: 1;
	background: none;
	padding: 0;
	margin: 1.4rem 0 .4rem;
}
.wh-steps--visual > .wp-block-column::after { display: none; }
.wh-steps--visual > .wp-block-column > * { order: 2; }
.wh-steps--visual > .wp-block-column > .wh-aiv { order: 0; }
/* the line the pulse travels along, behind the screens */
@media (min-width: 782px) {
	.wh-steps--visual::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 78px;
		height: 2px;
		background: linear-gradient(90deg, transparent, var(--orange) 15%, var(--tan) 50%, var(--signal) 85%, transparent);
		opacity: .35;
	}
	.wh-steps--visual::after {
		content: "";
		position: absolute;
		top: 74px;
		left: 0;
		width: 90px;
		height: 10px;
		border-radius: 10px;
		background: radial-gradient(closest-side, rgba(227, 154, 78, .95), transparent);
		filter: blur(1px);
		animation: wh-aiv-travel 5s linear infinite;
	}
}
@keyframes wh-aiv-travel { from { transform: translateX(-90px); } to { transform: translateX(min(1320px, 100vw)); } }

.wh-aiv {
	position: relative;
	z-index: 1;
	height: 156px;
	border-radius: 18px;
	padding: 1rem 1rem .9rem;
	background: radial-gradient(120% 120% at 100% 0%, #242E50, #0A0F1E 70%);
	border: 1px solid rgba(255, 255, 255, .08);
	box-shadow: 0 24px 50px -24px rgba(10, 15, 30, .55);
	overflow: hidden;
	color: var(--mist);
}
.wh-aiv__label { position: absolute; top: .8rem; left: 1rem; font-family: var(--mono); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fog); z-index: 2; }
.wh-aiv__label::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #3ddc84; margin-right: .5em; vertical-align: middle; box-shadow: 0 0 0 3px rgba(61, 220, 132, .15); }

/* listen */
.wh-aiv__bars { position: absolute; inset: 2.4rem 1rem .9rem; display: flex; align-items: flex-end; gap: 3px; }
.wh-aiv__bars i { flex: 1; height: var(--h); border-radius: 2px; background: linear-gradient(0deg, var(--orange), var(--tan) 60%, var(--signal)); transform-origin: bottom; animation: wh-aiv-eq 1.6s ease-in-out infinite alternate; animation-delay: calc(-1 * var(--d)); opacity: .9; }
@keyframes wh-aiv-eq { from { transform: scaleY(.25); } to { transform: scaleY(1); } }

/* predict */
.wh-aiv__chart { position: absolute; inset: 2.3rem 0 0 0; width: 100%; height: calc(100% - 2.3rem); }
.wh-aiv__grid { stroke: rgba(255, 255, 255, .07); stroke-width: 1; vector-effect: non-scaling-stroke; fill: none; }
.wh-aiv__area { fill: rgba(188, 112, 32, .16); }
.wh-aiv__line { fill: none; stroke: var(--ember); stroke-width: 2.2; vector-effect: non-scaling-stroke; stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: wh-aiv-draw 5s var(--ease) infinite; } /* px: non-scaling strokes measure dashes on screen */
.wh-aiv__fore { fill: none; stroke: var(--signal); stroke-width: 2; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; opacity: 0; animation: wh-aiv-fore 5s ease infinite; }
.wh-aiv__dot { fill: #fff; opacity: 0; animation: wh-aiv-fore 5s ease infinite; filter: drop-shadow(0 0 4px var(--ember)); }
@keyframes wh-aiv-draw { 0% { stroke-dashoffset: 1000; } 45%, 100% { stroke-dashoffset: 0; } }
@keyframes wh-aiv-fore { 0%, 45% { opacity: 0; } 55%, 92% { opacity: 1; } 100% { opacity: 0; } }

/* create */
.wh-aiv__stack { position: absolute; inset: 2.5rem 1rem .9rem; }
.wh-aiv__card {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 62%;
	height: 78%;
	border-radius: 10px;
	background: #1F2846;
	border: 1px solid rgba(255, 255, 255, .12);
	padding: .5rem;
	display: grid;
	grid-template-columns: 34% 1fr;
	grid-template-rows: repeat(3, 1fr);
	gap: 4px 6px;
	animation: wh-aiv-cycle 6s ease-in-out infinite;
}
.wh-aiv__card:nth-child(2) { animation-delay: -2s; }
.wh-aiv__card:nth-child(3) { animation-delay: -4s; }
.wh-aiv__card b { grid-row: 1 / -1; border-radius: 6px; background: linear-gradient(140deg, var(--steel), var(--navy-light)); }
.wh-aiv__card i { display: block; height: 5px; align-self: center; border-radius: 4px; background: rgba(255, 255, 255, .22); }
.wh-aiv__card i.is-short { width: 60%; }
.wh-aiv__card span { position: absolute; top: -.6rem; right: -.4rem; font-family: var(--mono); font-size: .62rem; font-weight: 600; padding: .15rem .45rem; border-radius: 99px; background: var(--steel); color: #fff; }
.wh-aiv__card.is-win { border-color: rgba(227, 154, 78, .7); }
.wh-aiv__card.is-win span { background: var(--orange); color: var(--ink); }
@keyframes wh-aiv-cycle {
	0%, 28% { transform: translate(0, 0) scale(1); opacity: 1; z-index: 3; }
	33%, 61% { transform: translate(18%, -12%) scale(.92); opacity: .7; z-index: 2; }
	66%, 95% { transform: translate(36%, -24%) scale(.84); opacity: .45; z-index: 1; }
	100% { transform: translate(0, 0) scale(1); opacity: 1; z-index: 3; }
}

/* prove */
.wh-aiv__flowwrap { position: absolute; inset: 2.3rem .8rem .6rem; }
.wh-aiv__chans span { position: absolute; left: 0; transform: translateY(-50%); font-family: var(--mono); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mist); padding: .12rem .4rem; border-radius: 6px; background: rgba(255, 255, 255, .06); }
.wh-aiv__flows { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.wh-aiv__flow { fill: none; stroke: rgba(143, 160, 230, .28); stroke-width: 1; vector-effect: non-scaling-stroke; }
.wh-aiv__pkt { fill: var(--ember); filter: drop-shadow(0 0 3px var(--ember)); }
.wh-aiv__signed { position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-family: var(--mono); font-size: .62rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); background: var(--ember); padding: .3rem .55rem; border-radius: 99px; box-shadow: 0 0 18px rgba(227, 154, 78, .5); animation: wh-pulse-soft 2.4s ease-in-out infinite; }
@keyframes wh-pulse-soft { 50% { box-shadow: 0 0 4px rgba(227, 154, 78, .2); } }

@media (prefers-reduced-motion: reduce) {
	.wh-aiv *, .wh-steps--visual::after { animation: none !important; }
	.wh-aiv__line { stroke-dashoffset: 0; }
	.wh-aiv__fore, .wh-aiv__dot { opacity: 1; }
}

/* ======================================================================
   Testimonials: firm logo + signature
   ====================================================================== */

.wh-quote { position: relative; gap: 1.25rem; }
.wh-quote::after { content: "”"; position: absolute; top: .6rem; right: 1.4rem; font-family: var(--serif); font-size: 6rem; line-height: 1; color: var(--orange); opacity: .14; pointer-events: none; }
.wh-quote__text::before { content: none; }
.wh-quote__brand { display: flex; align-items: center; min-height: 48px; }
.wh-quote__logo { width: auto; max-width: 190px; height: 44px; object-fit: contain; object-position: left center; }
.wh-quote__firmtext { font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--ink); }
.wh-quote__by { display: block; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line-light); }
.wh-quote__name {
	display: block;
	font-family: var(--wp--preset--font-family--script);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.1;
	color: var(--ink);
	letter-spacing: 0;
}
.wh-quote__firm { display: block; margin-top: .25rem; font-family: var(--mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #6b7187; }
.wh-quote__avatar { display: none; }

/* Signature: room for the script's long descenders before the firm line */
.wh-quote__name { line-height: 1.25; padding-bottom: .45rem; }
.wh-quote__firm { margin-top: .4rem; }

/* Phones: scale the orbit so the outer labels stay inside the screen */
@media (max-width: 600px) {
	.wh-hero--video .wh-orbit { transform: scale(.8); margin-block: -10% -6%; }
}

/* Client name styles (Testimonials block setting) */
.wh-quotes--name-serif .wh-quote__name { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.5rem; line-height: 1.2; letter-spacing: -.01em; padding: 0; }
.wh-quotes--name-plain .wh-quote__name { font-family: inherit; font-weight: 700; font-size: 1.0625rem; line-height: 1.3; padding: 0; }
/* Signature: firm line first, so the script's descenders fall into the card's padding instead of onto text */
.wh-quotes--name-signature .wh-quote__by { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: .35rem; text-align: left; }
.wh-quotes--name-signature .wh-quote__name { font-size: 1.6rem; line-height: 1.5; padding: 0; }
.wh-quotes--name-signature .wh-quote__firm { margin-top: 0; }

/* ======================================================================
   Service tile illustrations (compact .wh-aiv)
   ====================================================================== */

.wh-aiv--compact { height: 92px; padding: .7rem .8rem; border-radius: 12px; background: linear-gradient(160deg, #1a2342, #0A0F1E 75%); box-shadow: none; }

/* TV: daypart lanes + playhead */
.wh-aiv__sched { position: absolute; inset: .75rem .8rem; display: grid; gap: 7px; align-content: center; }
.wh-aiv__lane { position: relative; height: 14px; border-radius: 4px; background: rgba(255, 255, 255, .05); }
.wh-aiv__lane i { position: absolute; top: 2px; bottom: 2px; border-radius: 3px; background: rgba(143, 160, 230, .45); }
.wh-aiv__lane i.is-hot { background: var(--orange); box-shadow: 0 0 10px rgba(227, 154, 78, .5); }
.wh-aiv__playhead { position: absolute; top: -4px; bottom: -4px; width: 2px; left: 0; background: #fff; box-shadow: 0 0 8px #fff; border-radius: 2px; animation: wh-sweep 4.5s linear infinite; }
@keyframes wh-sweep { 0% { left: 0; opacity: 0; } 6% { opacity: 1; } 92% { opacity: 1; } 100% { left: 100%; opacity: 0; } }

/* YouTube: player, progress, skip */
.wh-aiv__player { position: absolute; inset: .55rem .7rem; border-radius: 8px; background: linear-gradient(135deg, #2a3561, #121A33); overflow: hidden; }
.wh-aiv__play { position: absolute; left: 50%; top: 44%; translate: -50% -50%; width: 26px; height: 26px; border-radius: 50%; background: rgba(255, 255, 255, .14); }
.wh-aiv__play::after { content: ""; position: absolute; left: 55%; top: 50%; translate: -50% -50%; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent #fff; }
.wh-aiv__adpill { position: absolute; left: 8px; bottom: 12px; font-family: var(--mono); font-size: .58rem; font-weight: 600; padding: .05rem .35rem; border-radius: 4px; background: #f2c94c; color: var(--ink); }
.wh-aiv__skip { position: absolute; right: 8px; bottom: 10px; font-size: .62rem; font-weight: 600; padding: .2rem .5rem; border-radius: 4px; background: rgba(10, 15, 30, .8); border: 1px solid rgba(255, 255, 255, .25); color: #fff; opacity: 0; animation: wh-skip 5s ease infinite; }
.wh-aiv__progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255, 255, 255, .15); }
.wh-aiv__progress b { display: block; height: 100%; width: 100%; background: #f2c94c; transform-origin: left; animation: wh-progress 5s linear infinite; }
@keyframes wh-progress { 0% { transform: scaleX(0); opacity: 1; } 86% { transform: scaleX(1); opacity: 1; } 96%, 100% { transform: scaleX(1); opacity: 0; } }
@keyframes wh-skip { 0%, 55% { opacity: 0; transform: translateX(6px); } 62%, 95% { opacity: 1; transform: none; } 100% { opacity: 0; } }

/* Social: scrolling feed + heart */
.wh-aiv__feed { position: absolute; inset: .55rem 2.2rem .55rem .8rem; overflow: hidden; mask-image: linear-gradient(transparent, #000 20%, #000 80%, transparent); -webkit-mask-image: linear-gradient(transparent, #000 20%, #000 80%, transparent); }
.wh-aiv__feedtrack { display: grid; gap: 6px; animation: wh-feed 6s linear infinite; }
.wh-aiv__post { display: grid; grid-template-columns: 16px 1fr; grid-template-rows: 1fr 1fr; gap: 3px 7px; height: 22px; }
.wh-aiv__post b { grid-row: 1 / -1; align-self: center; width: 16px; height: 16px; border-radius: 50%; background: linear-gradient(140deg, var(--steel), var(--periwinkle)); }
.wh-aiv__post i { border-radius: 3px; background: rgba(255, 255, 255, .2); }
.wh-aiv__post i.is-short { width: 55%; background: rgba(255, 255, 255, .1); }
@keyframes wh-feed { to { transform: translateY(-84px); } } /* three posts: 3 × (22px + 6px gap) */
.wh-aiv__heart { position: absolute; right: .8rem; top: 50%; translate: 0 -50%; font-size: 1.1rem; color: #ff5a7a; animation: wh-heart 2.2s ease-in-out infinite; text-shadow: 0 0 12px rgba(255, 90, 122, .6); }
@keyframes wh-heart { 0%, 60%, 100% { transform: scale(1); opacity: .5; } 70% { transform: scale(1.45); opacity: 1; } 80% { transform: scale(.95); opacity: 1; } }

/* Search: typing query, ad result highlighted */
.wh-aiv__search { position: absolute; left: .8rem; right: .8rem; top: .6rem; height: 24px; border-radius: 99px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .1); display: flex; align-items: center; padding: 0 .6rem; }
.wh-aiv__q { font-size: .66rem; color: #fff; white-space: nowrap; overflow: hidden; display: inline-block; }
.wh-aiv__q span { display: inline-block; overflow: hidden; vertical-align: bottom; border-right: 1px solid var(--ember); animation: wh-type 5s steps(21) infinite, wh-caret .7s step-end infinite; width: 21ch; font-family: var(--mono); font-size: .62rem; }
@keyframes wh-type { 0% { width: 0; } 45%, 90% { width: 21ch; } 100% { width: 0; } }
@keyframes wh-caret { 50% { border-color: transparent; } }
.wh-aiv__result { position: absolute; left: .8rem; right: .8rem; height: 16px; border-radius: 4px; display: flex; align-items: center; gap: 6px; padding: 0 .4rem; }
.wh-aiv__result i { flex: 1; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .18); }
.wh-aiv__result.is-ad { top: 42px; background: rgba(188, 112, 32, .18); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .45); animation: wh-adglow 5s ease infinite; }
.wh-aiv__result.is-ad em { font-style: normal; font-family: var(--mono); font-size: .55rem; font-weight: 700; color: var(--ember); }
.wh-aiv__result:not(.is-ad) { top: 64px; }
@keyframes wh-adglow { 0%, 45% { opacity: .35; } 55%, 92% { opacity: 1; } 100% { opacity: .35; } }

/* Creative: film strip */
.wh-aiv__film { position: absolute; inset: .7rem 0; overflow: hidden; background: rgba(0, 0, 0, .35); border-block: 6px dotted rgba(255, 255, 255, .18); }
.wh-aiv__filmtrack { display: flex; gap: 6px; height: 100%; padding: 4px 0; width: max-content; animation: wh-film 8s linear infinite; }
.wh-aiv__filmtrack i { width: 52px; border-radius: 3px; background: linear-gradient(135deg, var(--navy-light), var(--steel)); }
.wh-aiv__filmtrack i.is-hot { background: linear-gradient(135deg, var(--orange), #8a4f12); }
@keyframes wh-film { to { transform: translateX(calc(-50% - 3px)); } } /* half the track + half the 6px gap = exactly ten frames */

/* Intake: ringing + waveform */
.wh-aiv__call { position: absolute; left: .8rem; top: .65rem; display: flex; align-items: center; gap: .5rem; }
.wh-aiv__ring { width: 10px; height: 10px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 0 rgba(61, 220, 132, .6); animation: wh-ring 1.6s ease-out infinite; }
@keyframes wh-ring { to { box-shadow: 0 0 0 10px rgba(61, 220, 132, 0); } }
.wh-aiv__live { font-family: var(--mono); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mist); }
.wh-aiv__wave { position: absolute; left: .8rem; right: .8rem; bottom: .7rem; height: 40px; display: flex; align-items: center; gap: 3px; }
.wh-aiv__wave i { flex: 1; height: var(--h); border-radius: 2px; background: linear-gradient(0deg, var(--orange), var(--tan)); animation: wh-aiv-eq 1.2s ease-in-out infinite alternate; animation-delay: calc(-1 * var(--d)); }

/* BI: bars + trend */
.wh-aiv__cols { position: absolute; left: .8rem; right: .8rem; bottom: .65rem; top: .7rem; display: flex; align-items: flex-end; gap: 6px; }
.wh-aiv__cols i { flex: 1; height: var(--h); border-radius: 3px 3px 0 0; background: linear-gradient(0deg, rgba(80, 101, 172, .5), rgba(143, 160, 230, .9)); transform-origin: bottom; animation: wh-cols 5s var(--ease) infinite; animation-delay: calc(var(--i) * .12s); }
@keyframes wh-cols { 0% { transform: scaleY(0); } 35%, 90% { transform: scaleY(1); } 100% { transform: scaleY(0); } }
.wh-aiv__trend { position: absolute; left: .8rem; top: .7rem; width: calc(100% - 1.6rem); height: calc(100% - 1.35rem); overflow: visible; }
.wh-aiv__trend path { fill: none; stroke: var(--ember); stroke-width: 2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 4px rgba(227, 154, 78, .6)); }
.wh-aiv__trend { animation: wh-trend 5s ease-in-out infinite; }
@keyframes wh-trend { 0% { clip-path: inset(-20% 100% -20% 0); opacity: 0; } 4% { opacity: 1; } 30% { clip-path: inset(-20% 100% -20% 0); } 62%, 88% { clip-path: inset(-20% -2% -20% 0); opacity: 1; } 96%, 100% { clip-path: inset(-20% -2% -20% 0); opacity: 0; } }

/* Consulting: checklist */
.wh-aiv__checks { position: absolute; inset: .7rem .8rem; display: grid; gap: 7px; align-content: center; }
.wh-aiv__check { display: grid; grid-template-columns: 14px 1fr; gap: 8px; align-items: center; }
.wh-aiv__check span { width: 14px; height: 14px; border-radius: 4px; border: 1px solid rgba(255, 255, 255, .3); position: relative; }
.wh-aiv__check span::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; font-size: .6rem; font-weight: 700; color: var(--ink); background: var(--ember); border-radius: 3px; transform: scale(0); animation: wh-tick 6s ease infinite; }
.wh-aiv__check i { height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .2); }
.wh-aiv__check.is-b i { width: 75%; } .wh-aiv__check.is-c i { width: 55%; }
.wh-aiv__check.is-b span::after { animation-delay: .6s; } .wh-aiv__check.is-c span::after { animation-delay: 1.2s; }
@keyframes wh-tick { 0%, 15% { transform: scale(0); } 22%, 85% { transform: scale(1); } 100% { transform: scale(0); } }

@media (prefers-reduced-motion: reduce) {
	.wh-aiv--compact *, .wh-aiv--compact *::before, .wh-aiv--compact *::after { animation: none !important; }
	.wh-aiv__q span { width: 21ch; }
	.wh-aiv__skip { opacity: 1; }
	.wh-aiv__check span::after { transform: scale(1); }
	.wh-aiv__trend { animation: none; clip-path: none; opacity: 1; }
}

/* ======================================================================
   Capabilities: tiles with illustrations, cursor spotlight, live AI card
   ====================================================================== */

.wh-tile .wh-aiv { margin: 0 0 1.1rem !important; }
.wh-tile::before { /* cursor spotlight (position from front.js) */
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 0%), rgba(227, 154, 78, .13), transparent 60%);
	opacity: 0;
	transition: opacity .3s;
	pointer-events: none;
}
.wh-tile:hover::before { opacity: 1; }
.wh-tile::after { top: auto; bottom: 1.2rem; }

/* Featured card: slowly turning gradient edge */
@property --wh-angle { syntax: "<angle>"; initial-value: 140deg; inherits: false; }
.is-style-wh-glass.wh-featured-ai {
	background:
		linear-gradient(180deg, rgba(36, 46, 80, .92), rgba(18, 26, 51, .92)) padding-box,
		conic-gradient(from var(--wh-angle), var(--orange), var(--tan) 25%, var(--signal) 50%, rgba(143, 160, 230, .15) 70%, var(--orange)) border-box;
	animation: wh-edge 10s linear infinite;
}
@keyframes wh-edge { to { --wh-angle: 500deg; } }

/* AI answer streaming (front.js) */
.wh-ai-demo.is-live .wh-ai-demo__q { animation: wh-pop .4s var(--ease) both; }
.wh-ai-demo__typing { display: inline-flex; gap: 4px; padding: .7rem .9rem; border-radius: 14px 14px 14px 4px; background: rgba(255, 255, 255, .04); border: 1px solid var(--line-dark); width: fit-content; }
.wh-ai-demo__typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--signal); animation: wh-dots 1s ease-in-out infinite; }
.wh-ai-demo__typing i:nth-child(2) { animation-delay: .15s; } .wh-ai-demo__typing i:nth-child(3) { animation-delay: .3s; }
@keyframes wh-dots { 0%, 100% { opacity: .3; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
@keyframes wh-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
.wh-ai-demo__a .wh-w { opacity: 0; animation: wh-word .25s ease forwards; }
.wh-ai-demo__a strong.wh-w { animation: wh-word .25s ease forwards, wh-flash 1.2s ease .25s; }
@keyframes wh-word { to { opacity: 1; } }
@keyframes wh-flash { 0% { box-shadow: 0 0 0 0 rgba(227, 154, 78, .7); } 100% { box-shadow: 0 0 0 10px rgba(227, 154, 78, 0); } }
.wh-ai-demo.is-live .wh-ai-demo__src { transition: opacity .5s; }
.wh-ai-demo.is-live:not(.is-done) .wh-ai-demo__src { opacity: 0; }

/* Phones: two tiles across, illustration + title (the description goes) */
@media (max-width: 600px) {
	.wh-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
	.wh-tile { display: block !important; padding: .7rem .7rem .9rem !important; }
	.wh-tile .wh-aiv { height: 76px; margin-bottom: .7rem !important; }
	.wh-tile__title { font-size: .9375rem !important; }
	.wh-tile__text { display: none; }
	.wh-tile::after { display: none; }
}

/* ======================================================================
   Calm by default: one moving thing at a time
   - service tiles rest on a still, muted frame and animate only on hover/focus
   - the featured card's edge stays put
   ====================================================================== */

.wh-tile .wh-aiv { filter: saturate(.3) brightness(.9); opacity: .78; transition: filter .45s var(--ease), opacity .45s var(--ease); }
.wh-tile:hover .wh-aiv, .wh-tile:has(:focus-visible) .wh-aiv, .wh-tile.is-active .wh-aiv { filter: none; opacity: 1; }

/* At rest: no animation, and a representative frame (several animations start from an empty frame) */
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv *,
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv *::before,
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv *::after { animation: none !important; }
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv__playhead { left: 38%; }
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv__progress b { transform: scaleX(.6); }
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv__skip { opacity: 1; }
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv__q span { width: 21ch; border-right-color: transparent; }
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv__check span::after { transform: scale(1); }
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv__trend { animation: none; clip-path: none; opacity: 1; }
.wh-tile:not(:hover):not(:has(:focus-visible)):not(.is-active) .wh-aiv__heart { opacity: .7; }

/* Featured card: static gradient edge, no icon (the "New" tag carries it) */
.is-style-wh-glass.wh-featured-ai { animation: none; }
.wh-featured-ai > .wh-card-icon { display: none; }

/* AI answer: the bubble keeps its final size while it "types"; typing is just three dots */
.wh-ai-demo__typing { display: inline-flex; gap: 4px; padding: 0; margin-left: .15rem; background: none; border: 0; vertical-align: middle; }

/* ---------- Orbit center: a signal source, not an object ------------------
   No filled disc (it read as a hole in the video). One hairline gradient ring,
   pulses rippling outward, and a soft edgeless glow behind the label. */
.wh-orbit__core {
	background: radial-gradient(closest-side, rgba(10, 15, 30, .55), rgba(10, 15, 30, .2) 70%, transparent) !important;
	border: 0 !important;
	box-shadow: none !important;
	-webkit-backdrop-filter: none !important; backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}
.wh-orbit__core::before { /* the one crisp ring, slowly turning */
	inset: 6% !important;
	background: conic-gradient(from 0deg, rgba(227, 154, 78, .9), rgba(227, 154, 78, .05) 30%, rgba(143, 160, 230, .85) 55%, rgba(143, 160, 230, .05) 80%, rgba(227, 154, 78, .9)) !important;
	-webkit-mask: radial-gradient(circle, transparent 69.2%, #000 69.6%, #000 70.6%, transparent 71%) !important;
	mask: radial-gradient(circle, transparent 69.2%, #000 69.6%, #000 70.6%, transparent 71%) !important;
	animation: wh-orbit-spin 18s linear infinite !important;
}
.wh-orbit__core::after { display: none; }
.wh-orbit__pulse {
	position: absolute;
	inset: 22%;
	border-radius: 50%;
	border: 1px solid rgba(227, 154, 78, .55);
	opacity: 0;
	animation: wh-ripple 6s cubic-bezier(.2, .6, .3, 1) infinite;
}
.wh-orbit__pulse:nth-child(2) { animation-delay: 2s; border-color: rgba(201, 173, 143, .45); }
.wh-orbit__pulse:nth-child(3) { animation-delay: 4s; border-color: rgba(143, 160, 230, .5); }
@keyframes wh-ripple { 0% { transform: scale(.6); opacity: 0; } 15% { opacity: .9; } 100% { transform: scale(2.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .wh-orbit__pulse { display: none; } }

/* ---------- Service tiles as a slider ------------------------------------- */

.wh-tiles.wh-tiles--slider {
	display: flex !important;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	padding-bottom: 2px;
	--fade-l: 6%;
	--fade-r: 82%;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--fade-l), #000 var(--fade-r), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--fade-l), #000 var(--fade-r), transparent);
	cursor: grab;
}
.wh-tiles--slider::-webkit-scrollbar { display: none; }
/* fade only the edge that has more tiles behind it */
.wh-tiles--slider.is-start { --fade-l: 0%; }
.wh-tiles--slider.is-end { --fade-r: 100%; }
.wh-tiles--slider.is-start.is-end { -webkit-mask-image: none; mask-image: none; cursor: auto; }
.wh-tiles--slider.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.wh-tiles--slider.is-dragging * { pointer-events: none; }
.wh-tiles--slider:focus-visible { outline: 2px solid var(--ember); outline-offset: 6px; border-radius: 20px; }
.wh-tiles--slider > * { flex: 0 0 calc((100% - 3rem) / 3.35); scroll-snap-align: start; }
@media (max-width: 1080px) { .wh-tiles--slider > * { flex-basis: calc((100% - 1rem) / 2.2); } }
@media (max-width: 600px) {
	.wh-tiles.wh-tiles--slider { gap: .75rem; }
	.wh-tiles--slider > * { flex-basis: 80%; }
	.wh-tiles--slider .wh-tile { padding: 1rem 1rem 1.2rem !important; }
	.wh-tiles--slider .wh-tile .wh-aiv { height: 92px; }
	.wh-tiles--slider .wh-tile__text { display: block; }
	.wh-tiles--slider .wh-tile__title { font-size: 1.0625rem !important; }
}

.wh-slider__nav { display: flex; align-items: center; gap: .6rem; margin-top: 1.5rem !important; }
.wh-slider__nav[hidden] { display: none; }
.wh-slider__bar { position: relative; flex: 1; height: 2px; margin-right: 1rem; border-radius: 2px; background: var(--line-dark); overflow: hidden; }
.wh-slider__bar span { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 2px; background: var(--grad-signal); transition: left .15s linear; }
.wh-slider__btn {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid var(--line-dark);
	background: rgba(255, 255, 255, .04);
	color: #fff;
	font-size: 1.05rem;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s, opacity .2s;
}
.wh-slider__btn:hover:not(:disabled) { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.wh-slider__btn:disabled { opacity: .3; cursor: default; }

/* ---------- Capabilities: breathing room (desktop + tablet) --------------- */
@media (min-width: 601px) {
	.wh-tiles.wh-tiles--slider { gap: 1.5rem; margin-top: var(--wp--preset--spacing--50) !important; }
	.wh-tiles--slider > * { flex-basis: calc((100% - 4.5rem) / 3.35); }
	.wh-tiles--slider .wh-tile { padding: 1.75rem 1.9rem 2rem !important; }
	.wh-tiles--slider .wh-tile .wh-aiv { height: 104px; margin-bottom: 1.6rem !important; }
	.wh-tiles--slider .wh-tile__text { padding-right: 2.25rem; margin-top: .5rem !important; }
	.wh-tiles--slider .wh-tile::after { right: 1.9rem; bottom: 2rem; }
	.wh-slider__nav { margin-top: 2.25rem !important; }
}
@media (min-width: 601px) and (max-width: 1080px) {
	.wh-tiles--slider > * { flex-basis: calc((100% - 1.5rem) / 2.2); }
}

/* ---------- Section intros: one size and color everywhere ---------------- */
.wh-section-intro {
	font-size: 1.1875rem !important;
	line-height: 1.6;
	max-width: 46ch;
	color: #4b5167;
	margin-bottom: 0; /* top margin comes from the layout's gap */
}
:where(.is-style-section-ink, .is-style-section-midnight, .wh-dark) .wh-section-intro { color: #aab1c7; }

/* ---------- Predict: a steady left-to-right reveal (replaces the dash trick) */
.wh-aiv__line { stroke-dasharray: none; stroke-dashoffset: 0; }
.wh-aiv--predict .wh-aiv__line,
.wh-aiv--predict .wh-aiv__area { animation: wh-predict-draw 7s ease-in-out infinite; }
.wh-aiv--predict .wh-aiv__fore { opacity: 1; animation: wh-predict-fore 7s ease-in-out infinite; }
.wh-aiv--predict .wh-aiv__dot { animation: wh-predict-dot 7s ease-in-out infinite; }
@keyframes wh-predict-draw {
	0% { clip-path: inset(0 100% 0 0); opacity: 1; }
	55% { clip-path: inset(0 0 0 0); }
	88% { clip-path: inset(0 0 0 0); opacity: 1; }
	97%, 100% { clip-path: inset(0 0 0 0); opacity: 0; }
}
@keyframes wh-predict-fore {
	0%, 55% { clip-path: inset(0 100% 0 0); opacity: 1; }
	72% { clip-path: inset(0 0 0 0); }
	88% { clip-path: inset(0 0 0 0); opacity: 1; }
	97%, 100% { clip-path: inset(0 0 0 0); opacity: 0; }
}
@keyframes wh-predict-dot {
	0%, 52% { opacity: 0; }
	60%, 88% { opacity: 1; }
	97%, 100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.wh-aiv--predict .wh-aiv__line, .wh-aiv--predict .wh-aiv__area, .wh-aiv--predict .wh-aiv__fore { clip-path: none; opacity: 1; }
	.wh-aiv--predict .wh-aiv__dot { opacity: 1; }
}

/* ---------- Steps pulse: travels from the first card to the last, never past either end */
@media (min-width: 782px) {
	.wh-steps--visual::after { left: 0; transform: none; animation: wh-steps-pulse 6s linear infinite; }
}
@keyframes wh-steps-pulse {
	from { left: 0; }
	to { left: calc(100% - 90px); } /* both ends sit under a card, so it emerges from Listen and ends in Prove */
}

/* ---------- Work reel: same slider treatment as the service tiles -------- */
.wh-work--rail {
	--fade-l: 6%;
	--fade-r: 86%;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	padding-bottom: 0;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--fade-l), #000 var(--fade-r), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--fade-l), #000 var(--fade-r), transparent);
	cursor: grab;
}
.wh-work--rail::-webkit-scrollbar { display: none; }
.wh-work--rail.is-start { --fade-l: 0%; }
.wh-work--rail.is-end { --fade-r: 100%; }
.wh-work--rail.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.wh-work--rail.is-dragging * { pointer-events: none; }
.wh-work--rail:focus-visible { outline: 2px solid var(--ember); outline-offset: 6px; border-radius: 20px; }

/* ---------- Who we are (v2): video + open pledge, then the team drifting past */
.wp-block-cover.wh-founders__video { flex: none; min-height: 0 !important; aspect-ratio: 16 / 10; }
.wh-founders__side { justify-content: center; gap: 1.75rem; }
.wh-founders__side > * { margin: 0 !important; } /* spacing comes from the gap */
.wh-founders__side .wh-pledge-by { margin-top: -.5rem !important; } /* name sits closer to its quote than the stats do */
.wh-pledge--open { border: 0; padding: 0; margin: 0; position: relative; }
.wh-pledge--open::before {
	content: "“";
	display: block;
	font-family: var(--serif);
	font-size: 4.5rem;
	line-height: .6;
	height: 2.1rem;
	color: var(--orange);
}
.wh-pledge--open p { font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.28; color: #fff; }
.wh-pledge-by { gap: .85rem !important; }
.wh-founders__stats .wh-metric { padding-top: 1.1rem; }
.wh-founders__stats .wh-metric__n { font-size: clamp(2rem, 3vw, 2.75rem); }

.wh-team-marquee {
	display: flex;
	overflow: hidden;
	margin-top: var(--wp--preset--spacing--70) !important;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.wh-team-marquee__track {
	display: flex;
	flex: none;
	gap: .75rem;
	padding: 0 .375rem;
	margin: 0;
	list-style: none;
	animation: wh-marquee var(--dur, 200s) linear infinite;
}
.wh-team-marquee:hover .wh-team-marquee__track,
.wh-team-marquee:focus-within .wh-team-marquee__track { animation-play-state: paused; }
.wh-team-marquee .wh-person--wall { width: 150px; flex: none; }
@media (max-width: 600px) { .wh-team-marquee .wh-person--wall { width: 104px; } .wh-team-marquee__track { gap: .5rem; } }
@media (prefers-reduced-motion: reduce) { .wh-team-marquee { overflow-x: auto; } .wh-team-marquee__track { animation: none; } }

.wh-team-cta { justify-content: center; margin-top: var(--wp--preset--spacing--50) !important; }

/* Rounded video cards: clip the corners directly (a filtered video can escape border-radius + overflow in Chrome) */
.wp-block-cover.wh-founders__video, .wp-block-cover.wh-panel { clip-path: inset(0 round var(--r-l)); }
/* ...and round the video element itself, without a filter (a filter puts it on its own layer, which escapes the clip) */
.wh-founders__video .wp-block-cover__video-background,
.wh-panel .wp-block-cover__video-background { border-radius: inherit; filter: none; }
.wh-founders__video, .wh-panel { isolation: isolate; }

/* ---------- Footer: call to action with the contact form ----------------- */
.wh-footer-cta h2 { line-height: 1.04; }
.wh-footer-contacts { display: grid; grid-template-columns: repeat(2, max-content); gap: 1.25rem 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line-dark); }
.wh-footer-contacts p { margin: 0; display: grid; gap: .3rem; font-size: var(--wp--preset--font-size--small); }
.wh-footer-contacts__k { font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fog); }
.wh-footer .wh-footer-contacts a { color: #fff; }
.wh-footer .wh-footer-contacts a:hover { color: var(--ember); }
@media (max-width: 600px) { .wh-footer-contacts { grid-template-columns: 1fr; } }
.page-contact-us .wh-footer-cta { display: none; } /* that page is the form */

/* Contact form, dark variant (footer) */
.wh-form--dark { background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .02)); border-color: var(--line-dark); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6); color: var(--mist); }
.wh-form--dark .wh-form__title { color: #fff; }
.wh-form--dark .wh-form__field label { color: var(--fog); }
.wh-form--dark .wh-form__field input, .wh-form--dark .wh-form__field textarea { background: rgba(10, 15, 30, .55); border-color: var(--line-dark); color: #fff; }
.wh-form--dark .wh-form__field :is(input, textarea):focus { outline: none; border-color: var(--ember); box-shadow: 0 0 0 3px rgba(227, 154, 78, .18); }
.wh-form .wh-form__field :is(input, textarea):focus { outline: none; border-color: var(--orange); box-shadow: 0 0 0 3px rgba(188, 112, 32, .15); }
.wh-form__btn { cursor: pointer; transition: background .2s, transform .2s var(--ease); }
.wh-form__btn:hover { background: var(--ember); transform: translateY(-1px); }
.wh-form--dark .gform_wrapper .gfield_label, .wh-form--dark .gform_wrapper legend { color: var(--fog) !important; }


/* Footer form: compact, and the copy column centered against it */
.wh-footer-cta { align-items: center !important; }
.wh-form--dark { padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.wh-form--dark .wh-form__grid { gap: .85rem 1rem; }
.wh-form--dark .wh-form__field { gap: .3rem; }
.wh-form--dark .wh-form__field :is(input, textarea) { padding: .7rem .9rem; }
.wh-form--dark .wh-form__btn { padding: .85rem 1.6rem; }
@media (max-width: 600px) {
	.wh-form__grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
	.wh-form__field.is-half-m-wide { grid-column: 1 / -1; }
}

/* Form fields fill their grid cell (inputs otherwise keep their intrinsic width and overflow on phones) */
.wh-form__field { min-width: 0; }
.wh-form__field :is(input, textarea) { width: 100%; max-width: 100%; }

/* ======================================================================
   Buttons & inputs: a little more room
   ====================================================================== */
.wh-header .wh-header__cta .wp-block-button__link { padding: .85em 1.5em; }
.wh-subscribe__btn, .wh-form__btn { padding: 1.05rem 1.9rem; }
.wh-form__field :is(input, textarea) { padding: 1rem 1.15rem; }

/* ======================================================================
   "What we do": tighter card padding (gaps between cards unchanged)
   ====================================================================== */
.wh-featured-ai { padding: clamp(1.25rem, 2.2vw, 1.75rem) !important; }
@media (min-width: 601px) {
	.wh-tiles--slider .wh-tile { padding: 1.35rem 1.5rem 1.6rem !important; }
	.wh-tiles--slider .wh-tile .wh-aiv { margin-bottom: 1.25rem !important; }
	.wh-tiles--slider .wh-tile::after { right: 1.5rem; bottom: 1.6rem; }
}

/* ======================================================================
   Gravity Forms (the real forms 1 and 3), matched to the design
   Scoped to our blocks; .gravity-theme is the live site's form theme.
   ====================================================================== */

/* -- Shared: contact form (.wh-form) -- */
.wh-form .gform_wrapper.gravity-theme { margin: 0; }
.wh-form .gravity-theme .gform_fields { row-gap: 1rem; column-gap: 1rem; }
.wh-form .gravity-theme .gfield_label,
.wh-form .gravity-theme legend.gfield_label {
	font-family: var(--mono);
	font-size: .72rem !important;
	font-weight: 500 !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin-bottom: .55rem !important;
}
.wh-form .gravity-theme .gfield_required { color: var(--orange); }
.wh-form .gravity-theme :is(input[type=text], input[type=email], input[type=tel], input[type=url], input[type=number], textarea, select) {
	font: inherit;
	font-size: 1rem !important;
	padding: 1rem 1.15rem !important;
	border-radius: 12px !important;
	border: 1px solid var(--line-light) !important;
	background: var(--paper) !important;
	color: var(--ink) !important;
	width: 100% !important;
	line-height: 1.4;
	transition: border-color .2s, box-shadow .2s;
}
.wh-form .gform_wrapper.gravity-theme .gfield textarea.textarea { min-height: 120px; height: 120px; resize: vertical; } /* beats GF's textarea.medium (192px) */
.wh-form .gravity-theme :is(input, textarea)::placeholder { color: #7b8197; opacity: 1; }
.wh-form .gravity-theme :is(input, textarea, select):focus { outline: none; border-color: var(--orange) !important; box-shadow: 0 0 0 3px rgba(188, 112, 32, .18); }

/* checkbox groups as toggle chips */
.wh-form .gravity-theme .gfield--type-checkbox { border: 0; padding: 0; margin: 0; }
.wh-form .gravity-theme .gfield_checkbox { display: flex !important; flex-wrap: wrap; gap: .5rem; }
.wh-form .gravity-theme .gchoice { margin: 0 !important; position: relative; }
.wh-form .gravity-theme .gchoice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.wh-form .gravity-theme .gchoice label {
	display: inline-flex !important;
	align-items: center;
	gap: .45rem;
	margin: 0 !important;
	padding: .55rem .9rem;
	border-radius: 999px;
	border: 1px solid var(--line-light);
	background: var(--paper);
	font-size: .875rem !important;
	font-weight: 500;
	color: var(--ink);
	transition: background .2s, border-color .2s, color .2s;
}
.wh-form .gravity-theme .gchoice label::before { content: "+"; font-family: var(--mono); color: var(--orange); }
.wh-form .gravity-theme .gchoice input:checked + label { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.wh-form .gravity-theme .gchoice input:checked + label::before { content: "✓"; color: var(--ink); }
.wh-form .gravity-theme .gchoice input:focus-visible + label { outline: 2px solid var(--ember); outline-offset: 2px; }

/* submit */
.wh-form .gravity-theme .gform_footer { margin: 1.25rem 0 0 !important; padding: 0 !important; }
.wh-form .gravity-theme .gform_footer :is(button, input[type=submit]) {
	border: 0 !important;
	border-radius: 999px !important;
	padding: 1.05rem 2rem !important;
	background: var(--orange) !important;
	color: var(--ink) !important;
	font: inherit;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	cursor: pointer;
	transition: background .2s, transform .2s var(--ease);
}
.wh-form .gravity-theme .gform_footer :is(button, input[type=submit]):hover { background: var(--ember) !important; transform: translateY(-1px); }

/* validation */
.wh-form .gravity-theme .gform_validation_errors { border-radius: 12px; }
/* on the dark form, the "problem with your submission" box is a red tint like the field messages, not a white card */
.wh-form--dark .gravity-theme .gform_validation_errors { background: rgba(209, 73, 91, .12); border: 1px solid rgba(255, 138, 154, .45); box-shadow: none; }
.wh-form--dark .gravity-theme .gform_validation_errors > h2 { color: #ff8a9a; }
.wh-form--dark .gravity-theme .gform_validation_errors > h2 .gform-icon { border-color: #ff8a9a; color: #ff8a9a; }
.wh-form .gravity-theme .gfield_validation_message { background: none !important; border: 0 !important; padding: .35rem 0 0 !important; color: #d1495b; font-size: .8125rem; }
.wh-form .gravity-theme .gfield_error :is(input, textarea) { border-color: #d1495b !important; }

/* -- Dark variant (footer) -- */
.wh-form--dark {
	background: linear-gradient(180deg, #19223f, #111930) !important; /* solid: the footer grid must not show through */
	border: 1px solid rgba(255, 255, 255, .1);
}
.wh-form--dark .gravity-theme :is(.gfield_label, legend.gfield_label) { color: var(--fog); }
.wh-form--dark .gravity-theme :is(input[type=text], input[type=email], input[type=tel], textarea, select) {
	background: rgba(10, 15, 30, .65) !important;
	border-color: rgba(255, 255, 255, .1) !important;
	color: #fff !important;
}
.wh-form--dark .gravity-theme :is(input, textarea)::placeholder { color: #737b96; }
.wh-form--dark .gravity-theme :is(input, textarea, select):focus { border-color: var(--ember) !important; box-shadow: 0 0 0 3px rgba(227, 154, 78, .18); }
.wh-form--dark .gravity-theme .gchoice label { background: rgba(10, 15, 30, .5); border-color: rgba(255, 255, 255, .12); color: var(--mist); }
.wh-form--dark .gravity-theme .gchoice input:checked + label { background: var(--orange); border-color: var(--orange); color: var(--ink); }

/* -- Newsletter (form 3, button inline): one pill -- */
.wh-subscribe .gform_wrapper.gravity-theme { margin: 0; max-width: 540px; }
.wh-subscribe .gravity-theme .gform_fields {
	display: flex !important;
	align-items: center;
	gap: .4rem !important;
	padding: .4rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid var(--line-dark);
	transition: border-color .2s, box-shadow .2s;
}
.wh-subscribe .gravity-theme .gform_fields:focus-within { border-color: rgba(227, 154, 78, .6); box-shadow: 0 0 0 3px rgba(227, 154, 78, .12); }
.wh-subscribe .gravity-theme .gfield--type-email { flex: 1; min-width: 0; }
.wh-subscribe .gravity-theme .gfield--type-submit { flex: none; }
.wh-subscribe .gravity-theme input[type=email] {
	width: 100% !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: #fff !important;
	font: inherit;
	font-size: 1rem !important;
	padding: .95rem 1.15rem !important;
	outline: none;
}
.wh-subscribe .gravity-theme input[type=email]::placeholder { color: var(--fog); opacity: 1; }
.wh-subscribe .gravity-theme :is(.gform-button, button[type=submit], input[type=submit]) {
	border: 0 !important;
	border-radius: 999px !important;
	padding: 1.05rem 1.6rem !important;
	background: var(--orange) !important;
	color: var(--ink) !important;
	font: inherit;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	white-space: nowrap;
	cursor: pointer;
	transition: background .2s;
}
.wh-subscribe .gravity-theme :is(.gform-button, button[type=submit]):hover { background: var(--ember) !important; }
.wh-subscribe .gravity-theme .gform_footer:empty, .wh-subscribe .gravity-theme .gform_footer { margin: 0 !important; padding: 0 !important; }
.wh-subscribe .gravity-theme .gfield_validation_message { position: absolute; margin-top: .9rem; background: none !important; border: 0 !important; padding: 0 !important; color: #ff8a9a; font-size: .8125rem; }
.wh-subscribe .gravity-theme .gform_validation_errors { display: none; }
.wh-subscribe .gform_confirmation_message { color: #fff; padding: .9rem 1.2rem; border-radius: 999px; background: rgba(61, 220, 132, .12); border: 1px solid rgba(61, 220, 132, .35); }
:where(.is-style-section-paper, .is-style-section-white) .wh-subscribe .gravity-theme .gform_fields { background: #fff; border-color: var(--line-light); }
:where(.is-style-section-paper, .is-style-section-white) .wh-subscribe .gravity-theme input[type=email] { color: var(--ink) !important; }
@media (max-width: 420px) {
	.wh-subscribe .gravity-theme input[type=email] { padding-inline: .9rem !important; }
	.wh-subscribe .gravity-theme :is(.gform-button, button[type=submit]) { padding-inline: 1.15rem !important; }
}

/* Gravity Forms polish */
.wh-form .gravity-theme .gfield_checkbox .gchoice { padding: 0 !important; }
.wh-form .gravity-theme .gform_required_legend { font-size: .8125rem; color: #6b7187; margin: 0 0 1.1rem; }
.wh-form--dark .gravity-theme .gform_required_legend { color: var(--fog); }
.wh-form .gravity-theme .gform_required_legend .gfield_required { color: var(--orange); }
/* Contact page: the footer's form is hidden there, so don't leave its space either */
.page-contact-us .wh-footer, .page-thank-you .wh-footer { padding-top: var(--wp--preset--spacing--50) !important; }


/* ======================================================================
   Service index ("What we do"): a list on the left, one stage on the right
   ====================================================================== */
.wh-svc {
	--list: 42%;
	--gap: clamp(2rem, 5vw, 4.5rem);
	--pad: clamp(1.5rem, 3vw, 2.5rem);
	position: relative;
	min-height: 600px;
	counter-reset: wh-svc;
	border-top: 1px solid var(--line-dark);
}
.wh-svc > * { margin: 0 !important; }
.wh-svc__item { width: var(--list); border-bottom: 1px solid var(--line-dark); box-shadow: inset 2px 0 0 transparent; transition: box-shadow .3s var(--ease); }
.wh-svc__item.is-active { box-shadow: inset 2px 0 0 var(--orange); }

/* titles (front.js wraps each in a button) */
.wh-svc__title { margin: 0 !important; font-size: clamp(1.125rem, 1.55vw, 1.4rem) !important; font-weight: 600; letter-spacing: -.015em; line-height: 1.25; }
.wh-svc__title, .wh-svc__toggle { display: flex; align-items: center; gap: .9rem; width: 100%; }
.wh-svc__toggle { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: .9rem; width: 100%; padding: 1.05rem 1rem 1.05rem 1.25rem; cursor: pointer; color: #8a92ad; transition: color .25s; }
.wh-svc__title::before, .wh-svc__toggle::before { counter-increment: wh-svc; content: counter(wh-svc, decimal-leading-zero); font-family: var(--mono); font-size: .75rem; font-weight: 500; letter-spacing: .06em; color: var(--steel); transition: color .25s; flex: none; width: 1.5rem; }
.wh-svc__title:has(.wh-svc__toggle)::before { content: none; counter-increment: none; }
.wh-svc__item:hover .wh-svc__toggle { color: #c9cede; }
.wh-svc__item.is-active .wh-svc__toggle { color: #fff; }
.wh-svc__item.is-active .wh-svc__toggle::before { color: var(--ember); }
.wh-svc__toggle:focus-visible { outline: 2px solid var(--ember); outline-offset: -2px; border-radius: 6px; }
.wh-svc__new { font-family: var(--mono); font-size: .625rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--signal); padding: .25rem .5rem; border: 1px solid rgba(143, 160, 230, .45); border-radius: 999px; }

/* the stage */
.wh-svc__visual {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: calc(var(--list) + var(--gap));
	padding: var(--pad) var(--pad) 9.5rem;
	display: grid;
	place-items: center;
	border-radius: var(--r-l);
	border: 1px solid rgba(255, 255, 255, .08);
	background:
		radial-gradient(70% 60% at 75% 15%, rgba(80, 101, 172, .26), transparent 70%),
		radial-gradient(60% 50% at 15% 100%, rgba(188, 112, 32, .16), transparent 70%),
		radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.2px) 0 0 / 20px 20px,
		#0d1428;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transition: opacity .45s var(--ease), visibility 0s linear .45s;
}
.wh-svc__item.is-active .wh-svc__visual { opacity: 1; visibility: visible; transition: opacity .45s var(--ease); }

/* the caption: description + link, at the bottom of the stage */
.wh-svc__desc, .wh-svc__link {
	position: absolute;
	z-index: 2;
	left: calc(var(--list) + var(--gap) + var(--pad));
	right: var(--pad);
	opacity: 0;
	visibility: hidden;
	transition: opacity .35s var(--ease), transform .45s var(--ease), visibility 0s linear .35s;
	transform: translateY(6px);
}
.wh-svc__desc { bottom: calc(var(--pad) + 2.4rem); max-width: 50ch; color: #c2c8d8; font-size: 1rem; line-height: 1.6; }
.wh-svc__link { bottom: var(--pad); }
.wh-svc__item.is-active :is(.wh-svc__desc, .wh-svc__link) { opacity: 1; visibility: visible; transform: none; transition: opacity .35s var(--ease) .1s, transform .45s var(--ease) .1s; }

/* illustrations on the stage: the small service illustrations, scaled up, without their own frame */
.wh-svc__visual .wh-aiv { width: 300px; height: 168px; flex: none; margin: 0 !important; transform: scale(1.75); background: none; border: 0; box-shadow: none; overflow: visible; }
.wh-svc__visual .wh-ai-demo { width: min(460px, 100%); margin: 0 !important; background: rgba(10, 15, 30, .6); }
.wh-svc__item:not(.is-active) .wh-svc__visual :is(*, *::before, *::after) { animation-play-state: paused !important; }
@media (max-width: 1240px) { .wh-svc__visual .wh-aiv { transform: scale(1.4); } }

/* phones & tablets: an accordion; the open service shows its caption and illustration inline */
@media (max-width: 1100px) {
	.wh-svc { min-height: 0; }
	.wh-svc__item { width: auto; }
	.wh-svc__desc, .wh-svc__link, .wh-svc__visual { position: static; opacity: 1; visibility: visible; transform: none; display: none; }
	.wh-svc__item.is-active :is(.wh-svc__desc, .wh-svc__link) { display: block; }
	.wh-svc__item.is-active .wh-svc__visual { display: grid; }
	.wh-svc__desc { margin: -.25rem 1rem 0 3.65rem !important; font-size: .9375rem; }
	.wh-svc__link { margin: .75rem 1rem 0 3.65rem !important; }
	.wh-svc__visual { margin: 1.25rem 1rem 1.25rem 1.25rem !important; padding: 1.25rem; min-height: 220px; border-radius: var(--r-m); }
	.wh-svc__visual .wh-aiv { transform: scale(1.05); }
	.no-js .wh-svc__item :is(.wh-svc__desc, .wh-svc__link) { display: block; }
}
@media (max-width: 420px) { .wh-svc__visual .wh-aiv { transform: scale(.92); } }
@media (min-width: 1101px) {
	/* the stage spans exactly the list's height; no inherited block margins on the absolutely placed parts */
	.wh-svc { min-height: 0; }
	.wh-svc__item > :is(.wh-svc__visual, .wh-svc__desc, .wh-svc__link) { margin: 0 !important; }
}

/* service index: no top rule across the stage; only the list column carries dividers */
.wh-svc { border-top: 0; }
.wh-svc__item:first-child { border-top: 1px solid var(--line-dark); }
/* a soft glow instead of grid lines behind this section */
.is-style-section-midnight:has(> .wh-svc) { background-image: radial-gradient(60% 50% at 85% 60%, rgba(80, 101, 172, .12), transparent 70%); }

/* ---------- The work: quieter cards ---------------------------------------- */
.wh-spot__cat { display: none; } /* nearly every spot is "Local"; the label was noise */
.wh-spot__title { margin-top: .9rem; font-size: 1.0625rem; letter-spacing: -.005em; }
.wh-spot__play { transition: box-shadow .35s var(--ease), transform .35s var(--ease); }
.wh-spot__play:hover { box-shadow: 0 0 0 1px rgba(227, 154, 78, .55), 0 24px 50px -24px rgba(188, 112, 32, .55); transform: translateY(-2px); }
.wh-spot__play:focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; }

/* Predict: stay transparent across the loop point. Opacity runs on the compositor and clip-path on the
   main thread, so they can be a frame apart at the wrap; with opacity 0 on both sides of it, nothing flashes. */
@keyframes wh-predict-draw {
	0% { clip-path: inset(0 100% 0 0); opacity: 0; }
	4% { opacity: 1; }
	55% { clip-path: inset(0 0 0 0); }
	88% { opacity: 1; }
	96%, 100% { clip-path: inset(0 0 0 0); opacity: 0; }
}
@keyframes wh-predict-fore {
	0% { clip-path: inset(0 100% 0 0); opacity: 0; }
	4% { opacity: 1; }
	55% { clip-path: inset(0 100% 0 0); }
	72% { clip-path: inset(0 0 0 0); }
	88% { opacity: 1; }
	96%, 100% { clip-path: inset(0 0 0 0); opacity: 0; }
}

/* ======================================================================
   Hot Tort Report: featured #1 with channel mix, then ranks 2–5
   ====================================================================== */
.wh-htr--feature { padding: 0; overflow: hidden; background: linear-gradient(180deg, #18213d, #0f1629); }
.wh-htr--feature .wh-htr__bar { padding: 1.1rem 1.6rem; border-bottom: 1px solid var(--line-dark); background: rgba(255, 255, 255, .02); }

.wh-htrf__lead { padding: 1.6rem 1.6rem 1.5rem; border-bottom: 1px solid var(--line-dark); background: radial-gradient(80% 120% at 100% 0%, rgba(188, 112, 32, .14), transparent 60%); }
.wh-htrf__leadhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; margin-bottom: 1.25rem; }
.wh-htrf__kicker { display: block; font-family: var(--mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ember); margin-bottom: .45rem; }
.wh-htrf__name { display: block; font-size: clamp(1.4rem, 2.2vw, 1.9rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.15; color: #fff; text-decoration: none; }
.wh-htrf__name:hover { color: var(--ember); }
.wh-htrf__score { display: flex; align-items: baseline; gap: .4rem; flex: none; }
.wh-htrf__score b { font-size: clamp(2.75rem, 4.6vw, 3.75rem); line-height: .9; font-weight: 700; letter-spacing: -.05em; background: linear-gradient(120deg, #fff 30%, var(--tan)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.wh-htrf__score span { font-family: var(--mono); font-size: .8125rem; color: var(--fog); }

/* stacked channel bar: each segment is that channel's share of the 17-point maximum */
.wh-chanbar { display: flex; gap: 2px; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .06); overflow: hidden; }
.wh-chanbar--lg { height: 14px; gap: 3px; }
.wh-chanbar__seg { display: block; width: calc(var(--w) * 1%); background: var(--c); border-radius: 2px; transform-origin: left; }
.wh-chanbar__seg--whii { --c: var(--c-whii); } .wh-chanbar__seg--tv { --c: var(--c-tv); } .wh-chanbar__seg--meta { --c: var(--c-meta); } .wh-chanbar__seg--ppc { --c: var(--c-ppc); }
@media (prefers-reduced-motion: no-preference) {
	.js .wh-htr--feature .wh-chanbar__seg { transform: scaleX(0); transition: transform .9s var(--ease); }
	.js .wh-htr--feature.is-visible .wh-chanbar__seg { transform: scaleX(1); }
	.js .wh-htr--feature.is-visible .wh-htrf__row:nth-child(2) .wh-chanbar__seg { transition-delay: .08s; }
	.js .wh-htr--feature.is-visible .wh-htrf__row:nth-child(3) .wh-chanbar__seg { transition-delay: .16s; }
	.js .wh-htr--feature.is-visible .wh-htrf__row:nth-child(4) .wh-chanbar__seg { transition-delay: .24s; }
}

.wh-htrf__vals { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.wh-htrf__val { display: flex; align-items: baseline; justify-content: space-between; gap: .4rem; padding: .5rem .7rem; border-radius: 8px; background: rgba(255, 255, 255, .04); border-top: 2px solid var(--c); }
.wh-htrf__val span { font-family: var(--mono); font-size: .7rem; letter-spacing: .06em; color: var(--fog); }
.wh-htrf__val b { font-family: var(--mono); font-size: .875rem; font-weight: 500; color: #fff; }
.wh-htrf__val--whii { --c: var(--c-whii); } .wh-htrf__val--tv { --c: var(--c-tv); } .wh-htrf__val--meta { --c: var(--c-meta); } .wh-htrf__val--ppc { --c: var(--c-ppc); }

.wh-htrf__rows { list-style: none; margin: 0; padding: .4rem 1.6rem; }
.wh-htrf__row { display: grid; grid-template-columns: 1.75rem minmax(0, 1fr) minmax(90px, 32%) 2.75rem; align-items: center; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line-dark); }
.wh-htrf__row:last-child { border-bottom: 0; }
.wh-htrf__rank { font-family: var(--mono); font-size: .75rem; color: var(--steel); }
.wh-htrf__rowname { color: #e6e9f2; font-weight: 600; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wh-htrf__rowname:hover { color: var(--ember); }
.wh-htrf__total { font-family: var(--mono); font-size: 1rem; color: #fff; text-align: right; }

.wh-htrf__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem 1.5rem; padding: 1rem 1.6rem 1.25rem; border-top: 1px solid var(--line-dark); }
.wh-htrf__foot .wh-htr__more { margin: 0; }
.wh-htrf__legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.wh-htrf__key { display: inline-flex; align-items: center; gap: .45rem; font-family: var(--mono); font-size: .7rem; letter-spacing: .06em; color: var(--fog); }
.wh-htrf__key::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--c); }
.wh-htrf__key--whii { --c: var(--c-whii); } .wh-htrf__key--tv { --c: var(--c-tv); } .wh-htrf__key--meta { --c: var(--c-meta); } .wh-htrf__key--ppc { --c: var(--c-ppc); }

@media (max-width: 600px) {
	.wh-htr--feature .wh-htr__bar { flex-direction: column; align-items: flex-start; gap: .3rem; padding: 1rem 1.15rem; }
	.wh-htr--feature .wh-htr__meta { text-align: left; }
	.wh-htrf__lead { padding: 1.25rem 1.15rem; }
	.wh-htrf__vals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wh-htrf__rows { padding: .25rem 1.15rem; }
	.wh-htrf__row { grid-template-columns: 1.5rem minmax(0, 1fr) 2.5rem; row-gap: .5rem; }
	.wh-htrf__row .wh-chanbar { grid-column: 2 / -1; grid-row: 2; }
	.wh-htrf__foot { padding: 1rem 1.15rem 1.15rem; }
}
@media (max-width: 600px) { .wh-htrf__rowname { white-space: normal; overflow: visible; } }

/* Report panel, simplified: one channel bar (on #1) with an inline key; plain rows below */
.wh-htrf__lead { background: none; }
.wh-htrf__vals { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; margin-top: .9rem; grid-template-columns: none; }
.wh-htrf__vals .wh-htrf__key { font-size: .75rem; }
.wh-htrf__vals .wh-htrf__key b { font-weight: 500; color: #fff; margin-left: .15rem; }
.wh-htrf__row { grid-template-columns: 1.75rem minmax(0, 1fr) auto; }
.wh-htrf__foot { justify-content: flex-end; }
@media (max-width: 600px) { .wh-htrf__row { grid-template-columns: 1.5rem minmax(0, 1fr) auto; } }
.wh-htrf__rowname { line-height: 1.3; }
@media (max-width: 600px) { .wh-htrf__vals { gap: .4rem 1rem; } }

/* ======================================================================
   Footer: a balanced call to action, tidier links
   ====================================================================== */
html { background: var(--wp--preset--color--ink); } /* overscroll past either end of the page shows ink, not paper */

/* Copy column spans the form's height: headline level with its top, a client quote level with its bottom */
@media (min-width: 782px) {
	.wh-footer-cta { align-items: stretch !important; }
	.wh-footer-cta > .wp-block-column:first-child { display: flex; flex-direction: column; }
	.wh-footer-cta .wh-footer-quote { margin-top: auto !important; padding-top: var(--wp--preset--spacing--50); } /* quote + emails sit together at the bottom */
	.wh-footer-cta .wh-footer-quote + .wh-footer-contacts { margin-top: var(--wp--preset--spacing--40) !important; }
}
@media (max-width: 781px) { .wh-footer-cta .wh-footer-quote.wh-quotes { display: none; } }
.wh-footer-quote.wh-quotes { display: block; }
.wh-footer-quote .wh-quote {
	display: grid;
	gap: 1rem;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.wh-footer-quote .wh-quote::after { content: none; }

.wh-footer-quote .wh-quote__text p { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.2; letter-spacing: -.01em; color: #fff; }
.wh-footer-quote .wh-quote__text p::before { content: "“"; color: var(--ember); }
.wh-footer-quote .wh-quote__text p::after { content: "”"; color: var(--ember); }
.wh-footer-quote .wh-quote__brand { display: none; }
.wh-footer-quote .wh-quote__by { margin: 0; padding: 0; border: 0; }
.wh-footer .wh-footer-quote .wh-quote__name { font-size: .9375rem; font-weight: 600; color: #fff; }
.wh-footer .wh-footer-quote .wh-quote__firm { color: var(--fog); }

/* Contact form: no "required fields" note (the labels it explains are visually hidden); a shorter message box */
.wh-form .gform_required_legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.wh-form--dark .gform_wrapper.gravity-theme .gfield textarea.textarea { min-height: 100px; height: 100px; }
/* On phones, name and city/state stay in pairs; phone and email get the full width */
@media (max-width: 640px) {
	.wh-form .gravity-theme .gform_fields { grid-template-columns: repeat(12, 1fr) !important; }
	.wh-form .gravity-theme .gfield--type-text.gfield--width-half { grid-column: span 6 !important; }
}

/* Link columns: a grid, so the newsletter field is never squeezed */
.wh-footer .wp-block-site-logo img { height: 22px; }
.wh-footer__nav.wp-block-columns { display: grid !important; grid-template-columns: 1.35fr 1fr 1fr 1.35fr; gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50); }
.wh-footer__nav > .wp-block-column { flex-basis: auto !important; min-width: 0; }
/* Tablets: brand and the two lists in a row; the report sign-up as a strip beneath, on the same columns */
@media (min-width: 782px) and (max-width: 1199px) {
	.wh-footer__nav.wp-block-columns { grid-template-columns: 1.3fr 1fr 1fr; }
	.wh-footer__nav > .wp-block-column:nth-child(4) { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: center; row-gap: .6rem; padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--line-dark); }
	.wh-footer__nav > .wp-block-column:nth-child(4) > * { margin: 0 !important; grid-column: 1; }
	.wh-footer__nav > .wp-block-column:nth-child(4) > .wh-footer__heading { grid-row: 1; align-self: end; }
	.wh-footer__nav > .wp-block-column:nth-child(4) > p { grid-row: 2; align-self: start; }
	.wh-footer__nav > .wp-block-column:nth-child(4) > .wh-subscribe { grid-column: 2 / -1; grid-row: 1 / span 2; }
}
@media (max-width: 781px) {
	.wh-footer__nav.wp-block-columns { grid-template-columns: 1fr 1fr; row-gap: var(--wp--preset--spacing--60); }
	.wh-footer__nav > .wp-block-column:nth-child(n) { grid-column: auto; grid-row: auto; }
	.wh-footer__nav > .wp-block-column:first-child, .wh-footer__nav > .wp-block-column:last-child { grid-column: 1 / -1; }
}
.wh-subscribe__jump { display: inline-flex; gap: .5rem; align-items: center; font-weight: 600; font-size: var(--wp--preset--font-size--small); color: var(--ember) !important; }
.wh-subscribe__jump:hover { color: #fff !important; }
/* Call to action: a larger closing headline so the copy carries the same weight as the form; the form a touch tighter */
.wh-footer-cta > .wp-block-column:first-child h2 { font-size: clamp(2.5rem, 4.7vw, 4.75rem) !important; line-height: 1.02; letter-spacing: -.035em; }
.wh-form--dark .gform_wrapper.gravity-theme .gform_fields { row-gap: .85rem; }
.wh-form--dark .gravity-theme :is(input[type=text], input[type=email], input[type=tel]) { padding: .85rem 1.05rem !important; }
.wh-form--dark .gravity-theme .gchoice label { padding: .5rem .85rem; }
/* Footer form chips: a little smaller, so the services fit on one row at desktop widths */
.wh-form--dark .gravity-theme .gfield_checkbox { gap: .4rem; }
.wh-form--dark .gravity-theme .gchoice label { padding: .45rem .75rem; font-size: .8125rem !important; gap: .35rem; }
/* Footer address: labelled like the contacts above, and a map link */
.wh-footer .wh-footer-address { display: grid; gap: .35rem; margin-top: var(--wp--preset--spacing--40) !important; font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.wh-footer .wh-footer-address a { color: var(--mist); }
.wh-footer .wh-footer-address a:hover { color: #fff; }

/* ======================================================================
   Spot lightbox: the reel's videos play big, over a dimmed page
   ====================================================================== */
html.has-lightbox { overflow: hidden; }
.wh-lightbox {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: clamp(4rem, 7vh, 5.5rem) clamp(1rem, 4vw, 3rem) clamp(1.5rem, 5vh, 3rem);
	border: 0;
	background: transparent;
	color: var(--mist);
	overflow: hidden;
}
.wh-lightbox[open] { display: grid; place-items: center; }
.wh-lightbox::backdrop { background: rgba(4, 7, 15, .94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.wh-lightbox__stage { position: relative; isolation: isolate; width: min(1280px, 100%, calc((100dvh - 12rem) * var(--ar, 1.7778))); }
.wh-lightbox__glow { position: absolute; inset: -6% -4% 10%; z-index: -1; background: center / cover no-repeat; filter: blur(80px) saturate(1.3); opacity: .32; pointer-events: none; }
.wh-lightbox__frame {
	position: relative;
	aspect-ratio: var(--ar, 16 / 9);
	border-radius: var(--r-m);
	overflow: hidden;
	background: #000 center / cover no-repeat;
	box-shadow: 0 60px 120px -50px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .08);
}
.wh-lightbox__frame :is(iframe, video, img) { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: contain; background: #000; }
.wh-lightbox__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; margin-top: 1.25rem; }
.wh-lightbox__title { margin: 0; font-family: var(--serif); font-style: italic; font-size: clamp(1.125rem, 2vw, 1.5rem); line-height: 1.25; color: #fff; }
.wh-lightbox__nav { display: flex; align-items: center; gap: .5rem; flex: none; }
.wh-lightbox__count { margin-right: .5rem; font-family: var(--mono); font-size: .75rem; letter-spacing: .12em; color: var(--fog); }
.wh-lightbox__btn, .wh-lightbox__close {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .18);
	background: rgba(255, 255, 255, .04);
	color: #fff;
	font: inherit;
	font-size: 1.05rem;
	line-height: 1;
	cursor: pointer;
	transition: background .2s, border-color .2s, color .2s;
}
.wh-lightbox__btn:hover, .wh-lightbox__close:hover { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.wh-lightbox :is(button):focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; }
.wh-lightbox__close { position: absolute; top: clamp(.75rem, 2.5vh, 1.5rem); right: clamp(.75rem, 2.5vw, 1.5rem); font-size: 1.6rem; font-weight: 300; }
.wh-lightbox.is-single .wh-lightbox__nav { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.wh-lightbox[open] .wh-lightbox__stage { animation: wh-lb-in .5s var(--ease) both; }
	.wh-lightbox[open]::backdrop { animation: wh-lb-fade .35s ease both; }
}
@keyframes wh-lb-in { from { opacity: 0; transform: translateY(16px) scale(.97); } }
@keyframes wh-lb-fade { from { opacity: 0; } }

/* ======================================================================
   Testimonials carousel: runs off the right edge of the page and fades, like the team row
   ====================================================================== */
.wh-quotes--carousel {
	/* the gap between the wide column and the window edge */
	--bleed: max(var(--wp--style--root--padding-right, 1rem), (100vw - var(--wp--style--global--wide-size, 1320px)) / 2);
}
.wh-quotes--carousel .wh-quotes__track {
	margin-inline: calc(-1 * var(--bleed));
	padding-inline: var(--bleed);
	scroll-padding-inline: var(--bleed); /* cards still snap to the column's left edge */
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--bleed), #000 calc(100% - max(var(--bleed), 12vw)), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--bleed), #000 calc(100% - max(var(--bleed), 12vw)), transparent);
}
.wp-block-group:has(> .wh-quotes--carousel) { overflow-x: clip; } /* never a sideways page scroll, whatever the scrollbar width */
/* Quote text a step smaller */
.wh-quote__text p { font-size: 1.1875rem; line-height: 1.55; }
.wh-quote--long .wh-quote__text p { font-size: 1.0625rem; line-height: 1.6; }

/* ======================================================================
   Service team ("crew"): who's doing what on this service
   ====================================================================== */
.wh-crew { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
@media (min-width: 1100px) {
	.wh-crew--n3 { grid-template-columns: repeat(3, 1fr); }
	.wh-crew--n4 { grid-template-columns: repeat(4, 1fr); }
	.wh-crew--n5 { grid-template-columns: repeat(5, 1fr); }
}
.wh-crew__card { display: flex; flex-direction: column; min-width: 0; border-radius: var(--r-l); overflow: hidden; background: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .02)); border: 1px solid var(--line-dark); }
.wh-crew__photo { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; background: var(--navy); }
.wh-crew__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; transition: transform .7s var(--ease); }
.wh-crew__card:hover .wh-crew__img { transform: scale(1.03); }
.wh-crew__img--initials { display: grid; place-items: center; font-family: var(--serif); font-size: 3rem; color: var(--tan); }
.wh-crew__body { display: grid; align-content: start; gap: .4rem; padding: 1.15rem 1.25rem 1.4rem; }
.wh-crew__name { margin: 0; font-size: 1.125rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.25; color: #fff; }
.wh-crew__role { margin: 0; font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; color: var(--ember); }
.wh-crew__tenure { margin: 0; font-size: .8125rem; color: var(--fog); }
.wh-crew__bio { margin: .45rem 0 0; font-size: .9375rem; line-height: 1.6; color: var(--mist); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.wh-crew__card.is-open .wh-crew__bio { display: block; -webkit-line-clamp: unset; }
.wh-crew__more { justify-self: start; margin-top: .15rem; padding: 0; border: 0; background: none; color: var(--ember); font: inherit; font-size: .8125rem; font-weight: 600; cursor: pointer; }
.wh-crew__more:hover { color: #fff; }
.wh-crew__more:focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; border-radius: 2px; }
/* On light sections */
:where(.is-style-section-paper, .is-style-section-white) .wh-crew__card { background: #fff; border-color: var(--line-light); box-shadow: var(--wp--preset--shadow--soft); }
:where(.is-style-section-paper, .is-style-section-white) .wh-crew__name { color: var(--ink); }
:where(.is-style-section-paper, .is-style-section-white) .wh-crew__role { color: var(--rust); }
:where(.is-style-section-paper, .is-style-section-white) .wh-crew__tenure { color: #6b7187; }
:where(.is-style-section-paper, .is-style-section-white) .wh-crew__bio { color: var(--body); }
:where(.is-style-section-paper, .is-style-section-white) .wh-crew__more { color: var(--rust); }

/* ======================================================================
   Service pages
   ====================================================================== */
/* Hero: the service's illustration on a stage, the team's faces under the buttons */
.wh-svc-hero__stage {
	display: grid;
	place-items: center;
	min-height: clamp(280px, 28vw, 400px);
	padding: 2rem;
	border-radius: var(--r-l);
	border: 1px solid rgba(255, 255, 255, .08);
	overflow: hidden;
	background:
		radial-gradient(70% 60% at 75% 15%, rgba(80, 101, 172, .26), transparent 70%),
		radial-gradient(60% 50% at 15% 100%, rgba(188, 112, 32, .16), transparent 70%),
		radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.2px) 0 0 / 20px 20px,
		#0d1428;
}
.wh-svc-hero__stage > .wh-aiv { width: 300px; height: 168px; margin: 0 !important; transform: scale(1.5); background: none; border: 0; box-shadow: none; overflow: visible; }
.wh-svc-hero__stage > .wh-ai-demo { width: min(520px, 100%); margin: 0 !important; background: rgba(10, 15, 30, .6); }
.wh-svc-hero__stage > .wh-aiv { transform: scale(1.75); }
@media (max-width: 1240px) { .wh-svc-hero__stage > .wh-aiv { transform: scale(1.45); } }
@media (max-width: 1100px) { .wh-svc-hero__stage > .wh-aiv { transform: scale(1.2); } }
@media (max-width: 781px) { .wh-svc-hero__stage { min-height: 230px; padding: 1.25rem; } .wh-svc-hero__stage > .wh-aiv { transform: scale(1.05); } }
.wh-svc-hero__team { gap: .9rem !important; margin-top: var(--wp--preset--spacing--40) !important; }
.wh-svc-hero__team .wh-team--strip { flex: none; margin: 0; padding: 0 10px 0 0; list-style: none; }
.wh-svc-hero__team .wh-person--strip { width: 44px; height: 44px; border-width: 2px; }
.wh-svc-hero__team .wh-person--strip .wh-person__img { width: 100%; height: 100%; object-fit: cover; filter: none; }
.wh-svc-hero__team p { margin: 0; font-size: var(--wp--preset--font-size--small); line-height: 1.45; color: var(--fog); }
.wh-svc-hero__team p span { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; }
.wh-svc-hero__team a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.wh-svc-hero__team a:hover { color: var(--ember); border-color: var(--ember); }
/* a big team on a narrow screen: the names drop below the faces instead of squeezing into a column */
.wh-svc-hero__team { flex-wrap: wrap !important; }
.wh-svc-hero__team p { flex: 1 1 9rem; }

/* Short subsections as cards */
.wh-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1rem; }
.wh-prose .wh-feature-grid { margin-top: 1.5rem; }
.wh-feature-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.wh-feature { padding: 1.4rem 1.5rem 1.5rem; border-radius: var(--r-m); background: #fff; border: 1px solid var(--line-light); box-shadow: var(--wp--preset--shadow--soft); }
.wh-feature > * { margin: 0; }
.wh-feature > * + * { margin-top: .6rem; }
.wh-feature h3, .wh-prose .wh-feature h3 { margin-top: 0; font-size: 1.1875rem; line-height: 1.25; color: var(--ink); }
.wh-feature p, .wh-feature li { font-size: .9375rem; line-height: 1.6; }
.wh-feature-grid--3 .wh-feature { padding: 1.75rem; }
.wh-feature-grid--3 .wh-feature h3 { font-size: 1.375rem; }

/* Related services: dark cards with each service's illustration */
.wh-related { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1rem; }

/* Answer (AI search): a question, and the assistant's reply naming the firm */
.wh-aiv__ask { position: absolute; top: .6rem; right: .8rem; max-width: 72%; padding: .28rem .6rem; border-radius: 10px 10px 2px 10px; background: rgba(143, 160, 230, .16); border: 1px solid rgba(143, 160, 230, .3); font-family: var(--mono); font-size: .58rem; line-height: 1.4; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wh-aiv__reply { position: absolute; top: 2.35rem; left: .8rem; right: 1.6rem; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: .5rem .6rem; border-radius: 10px 10px 10px 2px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.wh-aiv__reply i { flex: 1 0 40%; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .2); }
.wh-aiv__reply i.is-short { flex: 0 0 38%; }
.wh-aiv__reply b { padding: .08rem .35rem; border-radius: 4px; font-family: var(--mono); font-size: .55rem; font-weight: 700; color: var(--ember); background: rgba(188, 112, 32, .18); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .45); animation: wh-adglow 5s ease infinite; }

/* Article: a call to action between chapters, and long checklists on a panel */
.wh-inline-cta__copy { flex: 1 1 320px; }
.wh-inline-cta__copy > * { margin: 0; max-width: 52ch; }
.wh-inline-cta__copy > * + * { margin-top: .4rem; }
.wh-prose .wh-inline-cta__title { font-size: clamp(1.375rem, 2.2vw, 1.75rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; color: #fff; }
.wh-prose .wh-inline-cta p:not(.wh-inline-cta__title) { color: var(--mist); }
.wh-prose .wh-checks-panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 2rem; max-width: none; padding: 1.5rem 1.6rem !important; border-radius: var(--r-m); background: #fff; border: 1px solid var(--line-light); }
.wh-prose .wh-checks-panel li { margin: 0; max-width: none; font-size: .9375rem; line-height: 1.5; }
@media (max-width: 600px) { .wh-prose .wh-checks-panel { grid-template-columns: 1fr; } }

/* A single video poster: the Creative hero, and videos inside page copy */
.wh-spot--single { margin: 0; }
.wh-prose .wh-spot--single { margin-block: 1.75rem; }
.wh-spot--single .wh-spot__icon { width: 68px; height: 68px; }
.wh-svc-hero__stage:has(> .wh-spot) { padding: 0; min-height: 0; }
.wh-svc-hero__stage > .wh-spot { width: 100%; }
.wh-svc-hero__stage > .wh-spot .wh-spot__play { border-radius: 0; }
.wh-svc-hero__stage > .wh-spot .wh-spot__icon { width: 84px; height: 84px; }

/* Social ads: a row of previews (first frame only); each opens in the lightbox */
.wh-media-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(190px, 31%); gap: .9rem; margin-top: 1.5rem !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.wh-media-rail::-webkit-scrollbar { display: none; }
.wh-media-rail > .wh-spot { margin: 0; scroll-snap-align: start; }
.wh-media-rail .wh-spot__play { aspect-ratio: 4 / 5; border-radius: var(--r-m); }
.wh-media-rail .wh-spot--image .wh-spot__icon { display: none; }
@media (max-width: 600px) { .wh-media-rail { grid-auto-columns: 64%; } }
.wh-prose .wh-media-rail + .wh-slider__nav { margin-top: 1rem; }

/* Radio sample */
.wh-audio-card { display: grid; gap: .75rem; max-width: 560px; margin-top: 1.5rem !important; padding: 1.2rem 1.4rem 1.3rem; border-radius: var(--r-m); background: #fff; border: 1px solid var(--line-light); box-shadow: var(--wp--preset--shadow--soft); }
.wh-audio-card > * { margin: 0 !important; }
.wh-prose .wh-audio-card__label { font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rust); }
.wh-audio-card audio { display: block; width: 100%; }
/* Slider controls on light sections */
:where(.is-style-section-paper, .is-style-section-white) .wh-slider__bar { background: var(--line-light); }
:where(.is-style-section-paper, .is-style-section-white) .wh-slider__btn { background: #fff; border-color: var(--line-light); color: var(--ink); }
:where(.is-style-section-paper, .is-style-section-white) .wh-slider__btn:hover:not(:disabled) { background: var(--ink); border-color: var(--ink); color: #fff; }

@media (min-width: 700px) { .wh-feature-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .wh-prose .wh-feature-grid:not(.wh-feature-grid--two) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Careers */

/* ======================================================================
   Interior pages: shared pieces
   ====================================================================== */
/* A section over a dimmed B-roll loop */
.wp-block-cover.wh-video-section { min-height: 0; align-items: stretch; }
.wh-video-section .wp-block-cover__background { background: linear-gradient(180deg, rgba(18, 26, 51, .9), rgba(10, 15, 30, .94)) !important; opacity: 1 !important; }
.wh-video-section .wp-block-cover__video-background { filter: saturate(.7); }
.wh-video-section .wp-block-cover__inner-container { width: 100%; }
.wh-video-section .wp-block-cover__inner-container > .alignwide { max-width: var(--wp--style--global--wide-size); margin-inline: auto; }


/* Launch process: a numbered timeline */
.wh-timeline { display: grid; gap: 1rem; counter-reset: none; }
.wh-timeline__step { position: relative; display: grid; grid-template-columns: 4.5rem 1fr; column-gap: 1.5rem; padding: clamp(1.25rem, 2.5vw, 2rem); border-radius: var(--r-l); background: #fff; border: 1px solid var(--line-light); box-shadow: var(--wp--preset--shadow--soft); }
.wh-timeline__step > * { grid-column: 2; margin: 0 !important; }
.wh-timeline__step > * + * { margin-top: .75rem !important; }
.wh-timeline__step > .wh-timeline__n { grid-column: 1; grid-row: 1 / span 9; align-self: start; font-family: var(--serif); font-style: italic; font-size: 2.75rem; line-height: 1; color: var(--orange); }
.wh-timeline__step h3 { font-size: 1.375rem; }
@media (max-width: 600px) { .wh-timeline__step { grid-template-columns: 1fr; } .wh-timeline__step > * { grid-column: 1; } .wh-timeline__step > .wh-timeline__n { grid-row: auto; font-size: 2rem; } }
.wh-flowchart img { display: block; width: 100%; height: auto; border-radius: var(--r-m); border: 1px solid var(--line-light); background: #fff; }

/* White Heart Legal: Kevin's photo and signature */
.wh-founder-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: var(--r-l); }
.wh-signature img { display: block; height: auto; filter: invert(1) brightness(1.6); opacity: .85; }
.wh-whl-logo img { display: block; margin-inline: auto; }

/* Contact: the map */
.wh-map { overflow: hidden; border-radius: var(--r-m); border: 1px solid var(--line-dark); aspect-ratio: 16 / 10; }
.wh-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.4) invert(.92) hue-rotate(180deg) contrast(.9); }

/* Local: the social ads row under the TV reel */
.wh-social-row { margin-top: var(--wp--preset--spacing--70) !important; }
.wh-social-row .wh-media-rail { grid-auto-columns: minmax(180px, 18%); }
@media (max-width: 900px) { .wh-social-row .wh-media-rail { grid-auto-columns: minmax(170px, 40%); } }

/* About pages: a photo on the hero stage, inline photos, the buildings, loops, galleries */
.wh-svc-hero__stage:has(> .wh-stage-photo) { padding: 0; min-height: 0; }
.wh-svc-hero__stage > .wh-stage-photo { width: 100%; margin: 0; }
.wh-svc-hero__stage > .wh-stage-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.wh-prose .wh-inline-photo { margin-block: 1.75rem !important; }
.wh-inline-photo img { display: block; width: 100%; border-radius: var(--r-m); }
.wh-prose figcaption { margin-top: .6rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: #6b7187; text-align: left; }
.wh-buildings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-block: 1.5rem !important; }
.wh-buildings .wh-building { margin: 0; }
.wh-buildings .wh-building img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.wh-buildings figcaption { text-align: center; }
@media (max-width: 600px) { .wh-buildings { gap: .6rem; } }
.wh-loop-video { margin-block: 1.5rem !important; }
.wh-loop-video video { display: block; width: 100%; border-radius: var(--r-m); }
.wh-gallery.wp-block-gallery { gap: .75rem !important; }
.wh-gallery.wp-block-gallery .wp-block-image img { border-radius: var(--r-s); }
.wh-prose .wh-checks-panel--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .wh-prose .wh-checks-panel--three { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .wh-prose .wh-checks-panel--three { grid-template-columns: 1fr; } }

ul.wh-related { list-style: none; margin: 0; padding: 0; }

/* Testimonial logos: square marks get more height so they read at the same size as wordmarks */
.wh-quote__logo { max-height: 44px; }
.wh-quote__brand img[width][height] { height: 44px; }

/* ======================================================================
   Mass tort pricing
   ====================================================================== */
.wh-tort-pricing__updated { margin: 0 0 1rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: #6b7187; }
.wh-tort-pricing__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 1rem; }
.wh-tort-card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-l); background: #fff; border: 1px solid var(--line-light); box-shadow: var(--wp--preset--shadow--soft); }
.wh-tort-card__photo { margin: 0; aspect-ratio: 16 / 7; overflow: hidden; background: var(--navy); }
.wh-tort-card__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wh-tort-card__body { display: flex; flex-direction: column; gap: 1rem; flex: 1; padding: 1.15rem 1.25rem 1.3rem; }
.wh-tort-card__name { margin: 0; font-size: 1.1875rem; line-height: 1.2; color: var(--ink); }
.wh-tort-card__stats { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1rem; margin: 0; }
.wh-tort-card__stat { margin: 0; padding-top: .6rem; border-top: 1px solid var(--line-light); }
.wh-tort-card__stat dt { font-family: var(--mono); font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; color: #6b7187; line-height: 1.4; }
.wh-tort-card__stat dd { margin: .25rem 0 0; font-weight: 700; font-size: 1.0625rem; line-height: 1.25; color: var(--ink); font-variant-numeric: tabular-nums; }
.wh-tort-card__stat dd small { display: block; margin-top: .15rem; font-weight: 400; font-size: .6875rem; color: #8a90a4; }
.wh-tort-card__btn { margin-top: auto; align-self: flex-start; padding: .55rem 1rem; border-radius: 999px; border: 1px solid var(--line-light); background: var(--paper); color: var(--ink); font: inherit; font-size: .8125rem; font-weight: 600; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.wh-tort-card__btn:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.wh-tort-card__note { margin: 0; padding-top: .6rem; border-top: 1px solid var(--line-light); font-size: .9375rem; line-height: 1.5; color: var(--body); }
.wh-tort-card:not(:has(.wh-tort-card__photo)) .wh-tort-card__body { padding-top: 1.4rem; }
/* White Heart Legal: the "powered by" logo and Kevin's signature are dark artwork; show them light on dark sections */
.wh-hero .wh-whl-logo img { filter: brightness(0) invert(1); opacity: .92; }
.is-style-section-midnight .wh-signature img, .wh-dark .wh-signature img { filter: brightness(0) invert(1); opacity: .8; }
.wh-badge img { opacity: .9; }

/* Team grid: tenure on the photo; cards with a bio open it in place */
button.wh-person__link { display: block; width: 100%; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
div.wh-person__link { display: block; }
.wh-person__photo { position: relative; }
.wh-person__tenure { position: absolute; left: .6rem; bottom: .6rem; padding: .2rem .5rem; border-radius: 999px; background: rgba(10, 15, 30, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-family: var(--mono); font-size: .625rem; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
button.wh-person__link:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; border-radius: var(--r-m); }
.wh-person { scroll-margin-top: calc(var(--wp--custom--header-height) + 24px); }
.wh-person:target .wh-person__photo { box-shadow: 0 0 0 3px var(--orange); }
.wh-bio { width: min(720px, calc(100vw - 2rem)); max-height: min(85vh, 640px); overflow: auto; padding: 0; border: 0; border-radius: var(--r-l); background: #fff; color: var(--body); box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .6); }
.wh-bio:popover-open { display: grid; grid-template-columns: 40% 1fr; }
.wh-bio::backdrop { background: rgba(10, 15, 30, .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.wh-bio__img { display: block; width: 100%; height: 100%; min-height: 320px; object-fit: cover; object-position: 50% 20%; }
.wh-bio__text { padding: 2rem 2rem 1.75rem; align-self: center; }
.wh-bio__text p { margin: 0 0 .75rem; font-size: .9375rem; line-height: 1.65; }
/* the bio's own text color: a bio opened from a dark section (a service page's team) would take its light text */
.wh-bio .wh-bio__text p:not([class]) { color: var(--wp--preset--color--body); }
.wh-bio .wh-bio__name { margin: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.2; color: var(--ink); }
.wh-bio .wh-bio__role { margin: .35rem 0 .2rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rust); }
.wh-bio .wh-bio__tenure { margin: 0 0 1rem; font-size: .8125rem; color: #6b7187; }
.wh-bio__close { position: absolute; top: .9rem; right: .9rem; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line-light); background: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.wh-bio__close:hover { background: var(--ink); color: #fff; }
/* phones: the photo keeps its shape above the text (a percentage height would let it collapse to a strip) */
@media (max-width: 600px) { .wh-bio:popover-open { grid-template-columns: 1fr; } .wh-bio__img { height: auto; min-height: 0; aspect-ratio: 3 / 2; } }
.wh-team.wh-team--pair { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 560px; margin-inline: auto 0; }
/* Hot Tort Report page: alternate the ten write-ups so the long page has rhythm */
.wh-tort:nth-child(even of .wh-tort) { background: #fff; }
.wh-tort .is-style-wh-ghost .wp-block-button__link { color: var(--ink); border-color: rgba(10, 15, 30, .35); }
.wh-tort .is-style-wh-ghost .wp-block-button__link:hover { background: var(--ink); border-color: var(--ink); color: #fff; }

/* Blog: dates beside the category; the newest post leads at double size (twelve posts fill five rows) */
.wh-post-card__meta { gap: .4rem 1rem !important; align-items: center; }
.wh-post-card__meta > * { margin: 0 !important; }
.wh-post-card__date { font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: #6b7187; }
/* Nashville recommendations: the address line on each place card */
.wh-place__addr { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .06em; line-height: 1.5; color: #6b7187; }

/* ======================================================================
   Related services & the services list: dark cards, each service's own animated illustration,
   all cards in a row the same height with "Explore" on the bottom edge
   ====================================================================== */
.wh-related { align-items: stretch; }

/* ======================================================================
   Teams on every page: one card size on one grid, whatever the headcount
   ====================================================================== */
.wh-crew, .wh-crew.wh-crew--n1, .wh-crew.wh-crew--n2, .wh-crew.wh-crew--n3, .wh-crew.wh-crew--n4, .wh-crew.wh-crew--n5 {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	max-width: none;
	justify-content: start;
}
@media (max-width: 600px) {
	.wh-crew, .wh-crew.wh-crew--n1, .wh-crew.wh-crew--n2, .wh-crew.wh-crew--n3, .wh-crew.wh-crew--n4, .wh-crew.wh-crew--n5 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
	.wh-crew__body { padding: .9rem .9rem 1rem; }
	.wh-crew__name { font-size: 1rem; }
}
.wh-crew .wh-crew__card { flex-direction: column; }
.wh-crew .wh-crew__photo { flex: none; aspect-ratio: 4 / 5; min-height: 0; }
.wh-crew .wh-crew__body { display: flex; flex-direction: column; flex: 1; gap: .4rem; padding: 1.1rem 1.2rem 1.25rem; }
.wh-crew .wh-crew__name { font-size: 1.125rem; }
.wh-crew__more { margin-top: auto; padding-top: .55rem; align-self: flex-start; }
.wh-crew__more::after { content: " +"; }
.wh-head-link .wp-block-buttons { justify-content: flex-end; }
/* Teams: six to a row on desktop; the row closes with the rest of the team */
.wh-crew, .wh-crew.wh-crew--n1, .wh-crew.wh-crew--n2, .wh-crew.wh-crew--n3, .wh-crew.wh-crew--n4, .wh-crew.wh-crew--n5 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); }
@media (max-width: 600px) { .wh-crew, .wh-crew.wh-crew--n1, .wh-crew.wh-crew--n2, .wh-crew.wh-crew--n3, .wh-crew.wh-crew--n4, .wh-crew.wh-crew--n5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* SEO: local results, the firm pinned and ranked first */
.wh-aiv__map { position: absolute; top: .6rem; left: .8rem; right: .8rem; height: 30px; border-radius: 8px; background: linear-gradient(135deg, rgba(143, 160, 230, .14), rgba(143, 160, 230, .04)), repeating-linear-gradient(35deg, transparent 0 9px, rgba(255, 255, 255, .05) 9px 10px); }
.wh-aiv__map i { position: absolute; top: 7px; width: 9px; height: 9px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: rgba(255, 255, 255, .35); }
.wh-aiv__map i:nth-child(1) { left: 22%; } .wh-aiv__map i:nth-child(2) { left: 52%; top: 12px; } .wh-aiv__map i:nth-child(3) { left: 78%; top: 6px; }
.wh-aiv__map i.is-you { background: var(--ember); box-shadow: 0 0 0 0 rgba(227, 154, 78, .5); animation: wh-pin 2.8s ease-out infinite; }
@keyframes wh-pin { 0% { box-shadow: 0 0 0 0 rgba(227, 154, 78, .55); } 70%, 100% { box-shadow: 0 0 0 10px rgba(227, 154, 78, 0); } }
.wh-aiv__ranks { position: absolute; left: .8rem; right: .8rem; top: 2.65rem; display: grid; gap: 4px; }
.wh-aiv__ranks span { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 6px; height: 14px; padding: 0 .35rem; border-radius: 4px; }
.wh-aiv__ranks b { font-family: var(--mono); font-size: .52rem; color: var(--fog); }
.wh-aiv__ranks i { height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .18); }
.wh-aiv__ranks em { font-style: normal; font-size: .5rem; letter-spacing: -.05em; color: rgba(255, 255, 255, .35); }
.wh-aiv__ranks .is-you { background: rgba(188, 112, 32, .16); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .4); animation: wh-adglow 5s ease infinite; }
.wh-aiv__ranks .is-you b, .wh-aiv__ranks .is-you em { color: var(--ember); }

/* Organic social: a profile, posts appearing one by one */
.wh-aiv__profile { position: absolute; top: .6rem; left: .8rem; right: .8rem; display: flex; align-items: center; gap: 7px; }
.wh-aiv__avatar { flex: none; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg, var(--ember), var(--signal)); }
.wh-aiv__handle { flex: 1; display: grid; gap: 3px; }
.wh-aiv__handle i { height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .25); width: 70%; }
.wh-aiv__handle i + i { width: 45%; background: rgba(255, 255, 255, .12); }
.wh-aiv__follow { font-family: var(--mono); font-size: .5rem; padding: .15rem .4rem; border-radius: 99px; color: var(--ink); background: var(--ember); }
.wh-aiv__posts { position: absolute; top: 2.35rem; left: .8rem; right: .8rem; bottom: .6rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; }
.wh-aiv__posts i { border-radius: 3px; background: rgba(255, 255, 255, .06); animation: wh-post 5.4s ease infinite; animation-delay: var(--d); }
.wh-aiv__posts i:nth-child(3n+1) { --c: rgba(227, 154, 78, .5); } .wh-aiv__posts i:nth-child(3n+2) { --c: rgba(143, 160, 230, .5); } .wh-aiv__posts i:nth-child(3n) { --c: rgba(201, 173, 143, .45); }
@keyframes wh-post { 0%, 8% { background: rgba(255, 255, 255, .06); } 18%, 85% { background: var(--c); } 100% { background: rgba(255, 255, 255, .06); } }

/* Video: a viewfinder, recording */
.wh-aiv__finder { position: absolute; inset: .55rem .8rem; border-radius: 6px; background: radial-gradient(80% 90% at 50% 60%, rgba(143, 160, 230, .12), transparent 70%); }
.wh-aiv__finder::before, .wh-aiv__finder::after { content: ""; position: absolute; width: 12px; height: 12px; border: 1.5px solid rgba(255, 255, 255, .5); }
.wh-aiv__finder::before { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.wh-aiv__finder::after { bottom: 0; right: 0; border-left: 0; border-top: 0; }
.wh-aiv__rec { position: absolute; top: 4px; left: 18px; font-family: var(--mono); font-size: .52rem; letter-spacing: .1em; color: #fff; }
.wh-aiv__rec::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 4px; border-radius: 50%; background: #ff4d5e; vertical-align: 1px; animation: wh-rec 1.4s steps(1) infinite; }
@keyframes wh-rec { 50% { opacity: .15; } }
@property --wh-sec { syntax: '<integer>'; initial-value: 0; inherits: false; }
.wh-aiv__tc { position: absolute; top: 4px; right: 18px; font-family: var(--mono); font-size: .52rem; color: var(--fog); }
.wh-aiv__tc b { font-weight: 400; counter-reset: sec var(--wh-sec); animation: wh-tc 30s steps(30) infinite; }
.wh-aiv__tc b::after { content: counter(sec, decimal-leading-zero); }
@keyframes wh-tc { from { --wh-sec: 0; } to { --wh-sec: 30; } }
.wh-aiv__cross { position: absolute; left: 50%; top: 52%; width: 16px; height: 16px; translate: -50% -50%; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; }
.wh-aiv__levels { position: absolute; right: 18px; bottom: 6px; display: flex; align-items: flex-end; gap: 2px; height: 22px; }
.wh-aiv__levels i { width: 3px; height: var(--h); border-radius: 1px; background: linear-gradient(to top, #3ddc84, var(--ember)); transform-origin: bottom; animation: wh-lvl 1.2s ease-in-out infinite alternate; animation-delay: var(--d); }
@keyframes wh-lvl { from { transform: scaleY(.35); } to { transform: scaleY(1); } }

/* Contracts: a retainer, signed */
.wh-aiv__doc { position: absolute; inset: .55rem 22% .55rem 22%; padding: .55rem .6rem; border-radius: 5px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); display: grid; align-content: start; gap: 4px; }
.wh-aiv__doc > i { height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .2); }
.wh-aiv__doc > i.is-short { width: 60%; }
.wh-aiv__sig { width: 70%; height: 22px; margin-top: 4px; fill: none; stroke: var(--ember); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 200; stroke-dashoffset: 200; animation: wh-sign 5s ease infinite; }
@keyframes wh-sign { 0%, 10% { stroke-dashoffset: 200; opacity: 0; } 12% { opacity: 1; } 55%, 90% { stroke-dashoffset: 0; opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.wh-aiv__stamp { position: absolute; right: -14px; bottom: 6px; padding: .12rem .4rem; border-radius: 4px; font-family: var(--mono); font-size: .5rem; font-weight: 700; color: var(--ink); background: #3ddc84; transform: rotate(-6deg) scale(0); animation: wh-stamp 5s ease infinite; }
@keyframes wh-stamp { 0%, 55% { transform: rotate(-6deg) scale(0); } 62%, 90% { transform: rotate(-6deg) scale(1); } 100% { transform: rotate(-6deg) scale(0); } }
@media (prefers-reduced-motion: reduce) { .wh-aiv__map i.is-you, .wh-aiv__posts i, .wh-aiv__rec::before, .wh-aiv__tc b, .wh-aiv__levels i, .wh-aiv__sig, .wh-aiv__stamp { animation: none; } .wh-aiv__sig { stroke-dashoffset: 0; } .wh-aiv__stamp { transform: rotate(-6deg); } .wh-aiv__posts i { background: var(--c); } }
/* Grids built from flow-layout groups: WordPress's block gap adds a top margin to every child after the first,
   which pushed all but the first card down (uneven rows). The grid's own gap does the spacing. */
:is(.wh-related, .wh-feature-grid, .wh-buildings, .wh-timeline, .wh-media-rail, .wh-tort-pricing__grid, .wh-crew) > * { margin-block: 0 !important; }
/* Teams: the same card size on every page (six to a row on wide screens), centred over the "Meet the whole team" link */
.wh-crew { --per: 2; }
.wh-crew, .wh-crew.wh-crew--n1, .wh-crew.wh-crew--n2, .wh-crew.wh-crew--n3, .wh-crew.wh-crew--n4, .wh-crew.wh-crew--n5 {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(.75rem, 1.6vw, 1.5rem);
}
.wh-crew > .wh-crew__card { flex: 0 0 calc((100% - (var(--per) - 1) * clamp(.75rem, 1.6vw, 1.5rem)) / var(--per)); }
@media (min-width: 601px) { .wh-crew { --per: 3; } }
@media (min-width: 900px) { .wh-crew { --per: 4; } }
@media (min-width: 1240px) { .wh-crew { --per: 6; } }
/* "How we use AI": the four screens a little taller (the pulse line stays at their middle) */
.wh-steps--visual > .wp-block-column > .wh-aiv { height: 184px; }
@media (min-width: 782px) {
	.wh-steps--visual::before { top: 92px; }
	.wh-steps--visual::after { top: 88px; }
}

/* Testimonials grid: cards in a row share one height; long quotes clip at nine lines with "Read more" */
.wh-quotes--grid:not(.wh-footer-quote) { grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); align-items: stretch; }
.wh-quotes--grid:not(.wh-footer-quote) .wh-quote__text p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 9; overflow: hidden; font-size: 1.0625rem; line-height: 1.6; }
.wh-quotes--grid .wh-quote.is-open .wh-quote__text p { display: block; -webkit-line-clamp: unset; }
.wh-quote__more { align-self: flex-start; margin-top: -.75rem; padding: 0; border: 0; background: none; font: inherit; font-size: .875rem; font-weight: 600; color: var(--rust); cursor: pointer; }
.wh-quote__more:hover { color: var(--ink); }
.wh-quote__more[hidden] { display: none; }
/* Footer: a little more room under the legal line now the wordmark is gone */
.wh-footer { padding-bottom: var(--wp--preset--spacing--50) !important; }

/* Header dropdowns: centred under their own parent item (core pins them to the parent's right edge in a right-aligned menu) */
@media (min-width: 782px) {
	.wh-header .wp-block-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container {
		left: 50% !important;
		right: auto !important;
		transform: translateX(-50%);
		margin-top: .35rem;
	}
	/* an invisible bridge over that gap, so the menu stays open while the pointer moves down into it */
	.wh-header .wp-block-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -.6rem; height: .6rem; }
}
/* ...except the last one on narrower screens, where centring would push it off the right edge */
@media (min-width: 782px) and (max-width: 1299px) {
	.wh-header .wp-block-navigation .wp-block-navigation__container > .has-child:last-child > .wp-block-navigation__submenu-container {
		left: auto !important;
		right: 0 !important;
		transform: none;
	}
}

/* ======================================================================
   Dark form (footer, Contact page): a light glass panel with a title, softly filled fields, quieter chips, a full-width button
   ====================================================================== */
.wh-form.wh-form--dark {
	padding: clamp(1.5rem, 3vw, 2.5rem) !important;
	border-radius: var(--r-l);
	background:
		radial-gradient(120% 70% at 100% 0%, rgba(80, 101, 172, .16), transparent 60%),
		linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .02)) !important;
	border: 1px solid rgba(255, 255, 255, .09) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 50px 100px -50px rgba(0, 0, 0, .75) !important;
}
.wh-form.wh-form--dark .wh-form__title { margin: 0 0 1.4rem; font-size: clamp(1.375rem, 2vw, 1.625rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; color: #fff; }
.wh-form.wh-form--dark .gform_wrapper.gravity-theme .gform_fields { row-gap: .75rem !important; column-gap: .75rem !important; }
.wh-form.wh-form--dark .gravity-theme :is(input[type=text], input[type=email], input[type=tel], textarea, select) {
	padding: .8rem 1rem !important;
	border-radius: 10px !important;
	border: 1px solid rgba(255, 255, 255, .08) !important;
	background: rgba(255, 255, 255, .045) !important;
	font-size: .9375rem !important;
	color: #fff !important;
	transition: border-color .2s, background .2s, box-shadow .2s;
}
.wh-form.wh-form--dark .gravity-theme :is(input, textarea)::placeholder { color: #8b93ad; }
.wh-form.wh-form--dark .gravity-theme :is(input[type=text], input[type=email], input[type=tel], textarea):hover { border-color: rgba(255, 255, 255, .16) !important; }
.wh-form.wh-form--dark .gravity-theme :is(input, textarea, select):focus { background: rgba(255, 255, 255, .07) !important; border-color: rgba(227, 154, 78, .7) !important; box-shadow: 0 0 0 3px rgba(227, 154, 78, .14); }
.wh-form.wh-form--dark .gform_wrapper.gravity-theme .gfield textarea.textarea { min-height: 92px; height: 92px; }
/* choice groups: the label a quiet caption, the chips outlined until chosen */
.wh-form.wh-form--dark .gravity-theme .gfield--type-checkbox { margin-top: .5rem !important; }
.wh-form.wh-form--dark .gravity-theme legend.gfield_label { margin-bottom: .6rem !important; font-size: .6875rem !important; color: #8b93ad !important; }
.wh-form.wh-form--dark .gravity-theme .gfield_checkbox { gap: .4rem !important; }
.wh-form.wh-form--dark .gravity-theme .gchoice label { padding: .42rem .8rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .12); background: transparent; font-size: .8125rem !important; color: var(--mist); }
.wh-form.wh-form--dark .gravity-theme .gchoice label:hover { border-color: rgba(227, 154, 78, .5); color: #fff; }
.wh-form.wh-form--dark .gravity-theme .gchoice input:checked + label { background: var(--orange); border-color: var(--orange); color: var(--ink); }
/* the button: full width, the panel's last line */
.wh-form.wh-form--dark .gravity-theme .gform_footer { margin-top: 1.25rem !important; }
.wh-form.wh-form--dark .gravity-theme .gform_footer :is(button, input[type=submit]) { width: 100% !important; justify-content: center; padding: 1rem 1.5rem !important; }
.wh-form.wh-form--dark .gravity-theme .gfield_checkbox { gap: .35rem !important; }
.wh-form.wh-form--dark .gravity-theme .gchoice label { padding: .4rem .7rem; font-size: .78rem !important; gap: .3rem; }


/* ======================================================================
   Partners & platforms: the headline above, then one full-width strip of five large cells
   (the strip's background shows through 1px gaps as the dividers, at any column count)
   ====================================================================== */
.wh-proof-band__head { align-items: center; margin-bottom: var(--wp--preset--spacing--50) !important; text-align: center; }
.wh-proof-band__head > * { margin: 0 !important; }
.wh-proof-band h2 { font-size: clamp(1.875rem, 3.4vw, 3rem) !important; line-height: 1.08; }
.wh-proof { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; padding: 0; border-radius: var(--r-l); background: var(--line-light); border: 1px solid var(--line-light); overflow: hidden; }
.wh-proof > * { margin: 0 !important; }
.wh-proof__tile { display: grid; place-items: center; height: clamp(150px, 15vw, 200px); padding: 1.5rem; background: #fff; transition: background .3s; }
.wh-proof__tile a { display: grid; place-items: center; width: 100%; height: 100%; }
.wh-proof__tile img { display: block; width: auto; max-width: 86%; object-fit: contain; transition: transform .4s var(--ease); }
.wh-proof__tile--meta img { height: clamp(48px, 5vw, 72px); }
.wh-proof__tile--google img { height: clamp(80px, 8vw, 116px); }
.wh-proof__tile--ispot img { height: clamp(38px, 3.8vw, 56px); }
.wh-proof__tile--salesforce img { height: clamp(64px, 6.4vw, 94px); }
.wh-proof__tile--nielsen img { height: clamp(42px, 4.2vw, 62px); }
.wh-proof__tile:hover { background: #fbfaf7; }
.wh-proof__tile:hover img { transform: scale(1.04); }
.wh-proof-band { border-top: 1px solid var(--line-light); }
:where(.is-style-section-paper) + .wh-proof-band, .wh-proof-band + :where(.is-style-section-paper) { border-top: 0; }
/* tablets: three over two */
@media (max-width: 900px) and (min-width: 601px) { .wh-proof { grid-template-columns: repeat(6, minmax(0, 1fr)); } .wh-proof__tile { grid-column: span 2; } .wh-proof__tile:nth-child(n+4) { grid-column: span 3; } }
@media (max-width: 600px) { .wh-proof { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wh-proof__tile { height: 120px; } .wh-proof__tile:last-child { grid-column: 1 / -1; } }

/* ======================================================================
   Work reel: runs off the right edge of the window and fades, like the testimonials;
   the first spot still lines up with the heading. (The arrows and progress bar stay in the column.)
   ====================================================================== */
.wh-work--rail {
	--bleed: max(var(--wp--style--root--padding-right, 1rem), (100vw - var(--wp--style--global--wide-size, 1320px)) / 2);
	width: 100vw;
	max-width: 100vw !important;
	margin-inline: calc(50% - 50vw) !important;
	padding-inline: var(--bleed);
	scroll-padding-inline: var(--bleed);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--bleed), #000 calc(100% - max(var(--bleed), 12vw)), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--bleed), #000 calc(100% - max(var(--bleed), 12vw)), transparent);
}
/* scrolled to the end, the last spot isn't faded */
.wh-work--rail.is-end { -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--bleed)); mask-image: linear-gradient(90deg, transparent, #000 var(--bleed)); }
.wp-block-group:has(> .wh-work--rail) { overflow-x: clip; }


/* ======================================================================
   "Works well with": on the dark band, each service's animation on its own stage (at the size it was drawn for),
   with the title, summary and "Explore" beneath, no card box: the whole item is the link
   ====================================================================== */
.wh-related { gap: clamp(1.5rem, 3vw, 2.5rem) !important; }
.wh-related__card { position: relative; display: flex; flex-direction: column; gap: .5rem; height: 100%; }
.wh-related__card > * { margin: 0 !important; }
.wh-related__stage {
	container-type: inline-size;
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 9;
	margin-bottom: .9rem !important;
	border-radius: var(--r-l);
	border: 1px solid rgba(255, 255, 255, .08);
	overflow: hidden;
	background:
		radial-gradient(70% 60% at 75% 15%, rgba(80, 101, 172, .26), transparent 70%),
		radial-gradient(60% 50% at 15% 100%, rgba(188, 112, 32, .16), transparent 70%),
		radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.2px) 0 0 / 20px 20px,
		#0d1428;
	transition: border-color .35s, box-shadow .35s var(--ease);
}
/* the service illustrations are drawn as small tiles (about 300 × 110); centred, then scaled to the stage's width */
.wh-related__stage .wh-aiv { flex: none; width: 300px; height: 168px; margin: 0 !important; background: none; border: 0; box-shadow: none; overflow: visible; transform: scale(.7); }
.wh-related__stage .wh-aiv--compact { height: 112px; }
/* the illustration keeps roughly 12% clear space either side at every size */
@container (min-width: 300px) { .wh-related__stage .wh-aiv { transform: scale(.8); } }
@container (min-width: 340px) { .wh-related__stage .wh-aiv { transform: scale(.92); } }
@container (min-width: 380px) { .wh-related__stage .wh-aiv { transform: scale(1.04); } }
@container (min-width: 420px) { .wh-related__stage .wh-aiv { transform: scale(1.16); } }
/* three across down to tablets, then one column */
@media (min-width: 782px) { .wh-related { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 781px) { .wh-related { grid-template-columns: 1fr !important; } }
.wh-related__card h3 { font-size: 1.25rem; line-height: 1.25; letter-spacing: -.01em; }
.wh-related__card h3 a { color: #fff; text-decoration: none; }
.wh-related__card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-l); }
.wh-related__card p { font-size: .9375rem; line-height: 1.55; color: var(--fog); }
.wh-related__card .wh-related__more { margin-top: auto !important; padding-top: .55rem; font-size: .875rem; font-weight: 600; color: var(--ember); }
.wh-related__more::after { content: "→"; display: inline-block; margin-left: .4rem; transition: transform .25s var(--ease); }
.wh-related__card:hover .wh-related__stage { border-color: rgba(227, 154, 78, .45); box-shadow: 0 30px 60px -36px rgba(188, 112, 32, .55); }
.wh-related__card:hover .wh-related__more::after { transform: translateX(4px); }
.wh-related__card:has(a:focus-visible) .wh-related__stage { outline: 2px solid var(--ember); outline-offset: 3px; }


/* ======================================================================
   Interior pages: chapters as full-width sections, with a pinned "On this page" bar
   ====================================================================== */
.wh-subnav { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--wh-nav-h, 76px)); z-index: 30; margin-block: 0 !important; background: rgba(10, 15, 30, .94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-block: 1px solid var(--line-dark); }
.wh-subnav__inner { gap: 1.5rem !important; min-height: 56px; }
.wh-subnav__list { flex: 1; min-width: 0; display: flex; gap: .15rem; margin: 0 !important; padding: 0 !important; list-style: none; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.wh-subnav__list::-webkit-scrollbar { display: none; }
.wh-subnav__list li { flex: none; margin: 0; }
.wh-subnav__list a { position: relative; display: flex; align-items: center; gap: .5rem; padding: 1.1rem .8rem; font-size: .875rem; color: var(--fog); text-decoration: none; white-space: nowrap; transition: color .2s; }
.wh-subnav__list a span { font-family: var(--mono); font-size: .6875rem; color: #6b7391; transition: color .2s; }
.wh-subnav__list a::after { content: ""; position: absolute; left: .8rem; right: .8rem; bottom: 0; height: 2px; border-radius: 2px; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.wh-subnav__list a:hover { color: #fff; }
.wh-subnav__list a.is-current { color: #fff; }
.wh-subnav__list a.is-current span { color: var(--ember); }
.wh-subnav__list a.is-current::after { transform: scaleX(1); }
.wh-subnav__list a:focus-visible { outline: 2px solid var(--ember); outline-offset: -4px; border-radius: 6px; }
.wh-subnav__cta { flex: none; margin: 0 !important; }
.wh-subnav__cta .wp-block-button__link { padding: .65em 1.25em !important; font-size: .8125rem; }
@media (max-width: 781px) { .wh-subnav__cta { display: none; } .wh-subnav__list a { padding: .95rem .7rem; } }
html:has(.wh-subnav) { scroll-padding-top: calc(var(--wh-nav-h, 76px) + 56px + 20px); }

.wh-chapter-sec { position: relative; }
.wh-chapter__n { margin: 0 0 .75rem !important; font-family: var(--serif); font-style: italic; font-size: clamp(2.5rem, 4.2vw, 3.75rem); line-height: .9; color: var(--orange); }
.wh-chapter-sec h2 { margin: 0; font-size: clamp(1.875rem, 3vw, 2.75rem); line-height: 1.08; letter-spacing: -.03em; }
@media (min-width: 782px) { .wh-chapter-split__head { position: sticky; top: calc(var(--wh-nav-h, 76px) + 56px + 40px); align-self: flex-start; } }
.wh-chapter-split__body { font-size: 1.0625rem; }
.wh-chapter-split__body > p:first-child { font-size: 1.25rem; line-height: 1.55; color: var(--ink); letter-spacing: -.005em; }
.wh-chapter-split__body > * + * { margin-top: 1.1rem; }
.wh-chapter-split__body h3 { margin-top: 2.25rem !important; }
.wh-chapter-head { margin-bottom: var(--wp--preset--spacing--60) !important; }
.wh-chapter-head .wh-prose > * + * { margin-top: 1rem; }
.wh-chapter-after { margin-top: var(--wp--preset--spacing--50) !important; }
.wh-overview { max-width: 980px; }
.wh-overview > p:first-child { font-size: clamp(1.25rem, 2vw, 1.625rem); line-height: 1.5; letter-spacing: -.01em; color: var(--ink); max-width: none; }
.wh-overview > * + * { margin-top: 1.1rem; }
/* the call-to-action band between chapters */
.wh-cta-band { gap: 1.5rem 3rem !important; }
.wh-cta-band__copy { flex: 1 1 420px; }
.wh-cta-band__copy > * { margin: 0; max-width: 56ch; }
.wh-cta-band__copy > * + * { margin-top: .5rem; }
.wh-cta-band__title { font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 700; line-height: 1.1; letter-spacing: -.03em; color: #fff; }
.wh-cta-band__title em { font-family: var(--serif); font-style: italic; font-weight: 500; color: var(--ember); }
.wh-cta-band__copy p:not(.wh-cta-band__title):not(.is-style-wh-eyebrow) { color: var(--mist); font-size: 1.0625rem; }

/* The bar's list scrolls sideways when the chapters don't fit: fade its edges, and keep the scroll origin on the list */
.wh-subnav__list { position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 48px), transparent); scroll-padding-inline: 24px; }
.wh-subnav__list.is-start { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); }
.wh-subnav__list.is-fit { -webkit-mask-image: none; mask-image: none; }
.wh-subnav__list li:first-child a { padding-left: 0; }
.wh-subnav__list li:first-child a::after { left: 0; }
/* Cards across a full-width chapter: as many columns as cards up to four, otherwise three; long cards two to a row */
@media (min-width: 1100px) {
	.wh-chapter-sec .wh-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wh-chapter-sec .wh-feature-grid--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wh-chapter-sec .wh-feature-grid--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.wh-chapter-sec .wh-feature-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 700px) and (max-width: 1099px) { .wh-chapter-sec .wh-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* Small teams (one or two people, .wh-crew-split): heading on the left, the people side by side on the right,
   as the same portrait cards bigger teams use, a little larger */
.wh-crew__excerpt { display: none; }
.wh-crew-split .wh-crew { display: grid !important; grid-template-columns: repeat(2, minmax(0, 300px)); justify-content: end; gap: clamp(.75rem, 1.6vw, 1.5rem); }
.wh-crew-split .wh-crew--n1 { grid-template-columns: minmax(0, 300px); }
.wh-crew-split .wh-crew > .wh-crew__card { flex: none; }
.wh-crew-split .wh-crew__name { font-size: 1.25rem !important; }
@media (max-width: 781px) { .wh-crew-split .wh-crew { justify-content: start; } }
@media (max-width: 600px) { .wh-crew-split .wh-crew { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wh-crew-split .wh-crew--n1 { grid-template-columns: minmax(0, 260px); } }
.wh-crew-split .wh-crew.wh-crew--n1 { justify-content: center; } /* one person sits in the middle of the column, not off at the edge */
/* Feature cards: an icon above the title */
.wh-feature > .wh-card-icon { margin: 0 0 1rem !important; }
.wh-feature > .wh-card-icon + h3 { margin-top: 0 !important; }

/* Three people in the split: three across in the right column; on narrower laptops and tablets the heading sits above them */
.wh-crew-split .wh-crew.wh-crew--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: stretch; }
@media (max-width: 1199px) and (min-width: 782px) {
	.wh-crew-split:has(.wh-crew--n3) { flex-wrap: wrap !important; }
	.wh-crew-split:has(.wh-crew--n3) > .wp-block-column { flex-basis: 100% !important; }
	.wh-crew-split .wh-crew.wh-crew--n3 { grid-template-columns: repeat(3, minmax(0, 260px)); justify-content: start; }
}
@media (max-width: 600px) {
	.wh-crew-split .wh-crew.wh-crew--n3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wh-crew-split .wh-crew--n3 > .wh-crew__card:last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - .4rem); }
}

/* "How we use AI": the line and its pulse run behind the screens, so keep them hidden until the screens have
   finished fading in (otherwise the pulse shows through the first screen on the first run) */
@media (min-width: 782px) {
	.js .wh-steps--visual.wh-reveal-children::before,
	.js .wh-steps--visual.wh-reveal-children::after { opacity: 0; transition: opacity .5s ease; }
	.js .wh-steps--visual.wh-reveal-children:not(.is-visible)::after { animation-play-state: paused; }
	.js .wh-steps--visual.wh-reveal-children.is-visible::before { opacity: .35; transition-delay: .9s; }
	.js .wh-steps--visual.wh-reveal-children.is-visible::after { opacity: 1; transition-delay: .9s; }
}
/* Four or five people fill the row on wide screens (one column each); six or more, six to a row */
@media (min-width: 1100px) {
	.wh-crew.wh-crew--n4 { --per: 4; }
	.wh-crew.wh-crew--n5 { --per: 5; }
}
/* More than five people: rows of even length at the five-across card size, centred. Each card spans two of ten (or
   six) narrow columns; the team block marks where each row's first card starts (--sw wide, --st tablet). */
@media (min-width: 601px) and (max-width: 899px) {
	.wh-crew.wh-crew--balanced { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.wh-crew--balanced > .wh-crew__card { grid-column: var(--st, auto) / span 2; }
}
@media (min-width: 900px) {
	.wh-crew.wh-crew--balanced { display: grid !important; grid-template-columns: repeat(10, minmax(0, 1fr)); }
	.wh-crew--balanced > .wh-crew__card { grid-column: var(--sw, auto) / span 2; }
}
/* Six or seven people on a wide screen: one row of slightly smaller cards across the full width, not a short second row
   (narrower, the balanced rows above: seven across would squeeze the names) */
@media (min-width: 1360px) {
	.wh-crew.wh-crew--row { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
	.wh-crew--row > .wh-crew__card { grid-column: auto; }
	.wh-crew--row .wh-crew__body { padding: .95rem 1rem 1.05rem; }
	.wh-crew.wh-crew--row .wh-crew__name { font-size: 1rem; }
	.wh-crew--row .wh-crew__role { font-size: .625rem; letter-spacing: .08em; }
	.wh-crew--row .wh-crew__tenure, .wh-crew--row .wh-crew__more { font-size: .75rem; }
}
.wh-crew.alignwide { max-width: var(--wp--style--global--wide-size, 1320px) !important; } /* the row keeps the page's wide column (an earlier 'max-width: none' widened it 12px each side) */


/* Consulting: a firm review. Four areas tick off in turn while the score ring fills; all reset together,
   invisibly, at the end of the 6s loop */
.wh-aiv--consulting .wh-aiv__label { top: .55rem; left: .8rem; }
.wh-aiv__review { position: absolute; left: .8rem; right: 5.4rem; top: 1.75rem; bottom: .55rem; display: grid; grid-template-rows: repeat(4, 1fr); gap: 3px; align-content: center; }
.wh-aiv__rrow { display: grid; grid-template-columns: 11px 4.2em 1fr; align-items: center; gap: 6px; }
.wh-aiv__rrow span { position: relative; width: 11px; height: 11px; border-radius: 3px; border: 1px solid rgba(255, 255, 255, .3); }
.wh-aiv__rrow span::after { content: "✓"; position: absolute; inset: -1px; display: grid; place-items: center; border-radius: 3px; font-size: .5rem; font-weight: 700; color: var(--ink); background: var(--ember); transform: scale(0); }
.wh-aiv__rrow em { font-style: normal; font-family: var(--mono); font-size: .5rem; letter-spacing: .06em; text-transform: uppercase; color: var(--fog); }
.wh-aiv__rrow i { height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .14); }
.wh-aiv__rrow.is-2 i { width: 80%; } .wh-aiv__rrow.is-3 i { width: 65%; } .wh-aiv__rrow.is-4 i { width: 88%; }
.wh-aiv__rrow.is-1 span::after { animation: wh-rv1 6s ease infinite; }
.wh-aiv__rrow.is-2 span::after { animation: wh-rv2 6s ease infinite; }
.wh-aiv__rrow.is-3 span::after { animation: wh-rv3 6s ease infinite; }
.wh-aiv__rrow.is-4 span::after { animation: wh-rv4 6s ease infinite; }
@keyframes wh-rv1 { 0%, 12% { transform: scale(0); } 17%, 85% { transform: scale(1); } 92%, 100% { transform: scale(0); } }
@keyframes wh-rv2 { 0%, 22% { transform: scale(0); } 27%, 85% { transform: scale(1); } 92%, 100% { transform: scale(0); } }
@keyframes wh-rv3 { 0%, 32% { transform: scale(0); } 37%, 85% { transform: scale(1); } 92%, 100% { transform: scale(0); } }
@keyframes wh-rv4 { 0%, 42% { transform: scale(0); } 47%, 85% { transform: scale(1); } 92%, 100% { transform: scale(0); } }
.wh-aiv__gauge { position: absolute; right: .8rem; top: 50%; width: 58px; height: 58px; translate: 0 -38%; }
.wh-aiv__gauge svg { display: block; width: 100%; height: 100%; transform: rotate(-90deg); }
.wh-aiv__gauge circle { fill: none; stroke-width: 3.5; }
.wh-aiv__gauge .is-track { stroke: rgba(255, 255, 255, .1); }
.wh-aiv__gauge .is-fill { stroke: var(--ember); stroke-linecap: round; stroke-dasharray: 100 100; stroke-dashoffset: 100; animation: wh-gauge 6s ease infinite; filter: drop-shadow(0 0 4px rgba(227, 154, 78, .45)); }
@keyframes wh-gauge { 0%, 12% { stroke-dashoffset: 100; } 17% { stroke-dashoffset: 75; } 27% { stroke-dashoffset: 50; } 37% { stroke-dashoffset: 25; } 47%, 85% { stroke-dashoffset: 0; } 92%, 100% { stroke-dashoffset: 100; } }
@property --wh-pct { syntax: '<integer>'; initial-value: 0; inherits: false; }
.wh-aiv__gauge b { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--mono); font-size: .62rem; font-weight: 500; color: #fff; counter-reset: pct var(--wh-pct); animation: wh-pct 6s ease infinite; }
.wh-aiv__gauge b::after { content: counter(pct) "%"; }
@keyframes wh-pct { 0%, 12% { --wh-pct: 0; } 17% { --wh-pct: 25; } 27% { --wh-pct: 50; } 37% { --wh-pct: 75; } 47%, 85% { --wh-pct: 100; } 92%, 100% { --wh-pct: 0; } }
@media (prefers-reduced-motion: reduce) { .wh-aiv__rrow span::after, .wh-aiv__gauge .is-fill, .wh-aiv__gauge b { animation: none; } .wh-aiv__rrow span::after { transform: scale(1); } .wh-aiv__gauge .is-fill { stroke-dashoffset: 0; } .wh-aiv__gauge b { --wh-pct: 100; } }
/* the service heroes: small illustrations get a tile-sized box so they sit in the middle of the stage */
.wh-svc-hero__stage > .wh-aiv--compact { height: 116px; }
/* long service names: a smaller hero headline, so the copy and the stage stay in balance */
.wh-svc-hero--long h1 { font-size: clamp(2.25rem, 3.9vw, 3.75rem) !important; line-height: 1.04; }


/* Call-to-action band between chapters: warm and cool glows, faint concentric rings on the right (the hero's orbit,
   still), three proof points, the button with the email beside it */
.wh-cta-band-sec { position: relative; isolation: isolate; overflow: hidden; background:
	radial-gradient(45% 120% at 0% 100%, rgba(188, 112, 32, .22), transparent 70%),
	radial-gradient(40% 90% at 85% 0%, rgba(80, 101, 172, .3), transparent 70%),
	var(--wp--preset--color--ink) !important; }
.wh-cta-band-sec::before { content: ""; position: absolute; z-index: -1; top: 50%; right: -180px; width: 720px; aspect-ratio: 1; translate: 0 -50%; border-radius: 50%;
	background: repeating-radial-gradient(circle, transparent 0 58px, rgba(255, 255, 255, .07) 58px 59px);
	-webkit-mask-image: radial-gradient(circle, #000 35%, transparent 70%); mask-image: radial-gradient(circle, #000 35%, transparent 70%); pointer-events: none; }
.wh-cta-band { gap: 2rem 4rem !important; }
.wh-cta-band__copy { flex: 1 1 640px; max-width: 780px; }
.wh-cta-band__copy > * { margin: 0 !important; }
.wh-cta-band__copy > * + * { margin-top: .75rem !important; }
.wh-cta-band__title { font-size: clamp(2rem, 3.6vw, 3.25rem) !important; }
.wh-cta-band__copy .wh-cta-band__points { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1.25rem !important; padding: 0; }
.wh-cta-band__points li { margin: 0; font-size: .9375rem; color: #fff; }
.wh-cta-band__action { display: grid; justify-items: center; gap: .75rem; }
.wh-cta-band__action > * { margin: 0 !important; }
.wh-cta-band__action .wp-block-button__link { padding: 1.1rem 2.1rem !important; font-size: 1rem; box-shadow: 0 18px 40px -16px rgba(188, 112, 32, .7); }
.wh-cta-band__alt { font-size: .875rem; color: var(--fog); }
.wh-cta-band__alt a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .3); }
.wh-cta-band__alt a:hover { color: var(--ember); border-color: var(--ember); }
@media (max-width: 781px) { .wh-cta-band-sec::before { right: -360px; } .wh-cta-band__action { justify-items: start; } }
.wh-cta-band__copy > .wh-cta-band__points { max-width: none; }


/* Careers: copy on the left; on the right a team photo with the Great Place to Work badge over its corner */
.wh-careers__visual { position: relative; margin: 0 0 1.5rem 1.5rem !important; }
.wh-careers__visual > * { margin: 0 !important; }
.wh-careers__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; border-radius: var(--r-l); filter: grayscale(.15); }
.wh-careers__visual .wh-gptw { position: absolute; left: -1.5rem; bottom: -1.5rem; }
.wh-careers__visual .wh-gptw img { display: block; width: clamp(88px, 9vw, 128px) !important; height: auto; filter: drop-shadow(0 20px 30px rgba(0, 0, 0, .45)); }
@media (max-width: 781px) { .wh-careers__visual { margin: 0 0 1.25rem .75rem !important; } .wh-careers__visual .wh-gptw { left: -.75rem; bottom: -1.25rem; } }

/* Social ads run off the right edge like the work reel: full width on Local, from the copy column in Creative */
.wh-social-row .wh-media-rail {
	--bleed: max(var(--wp--style--root--padding-right, 1rem), (100vw - var(--wp--style--global--wide-size, 1320px)) / 2);
	width: 100vw;
	margin-inline: calc(50% - 50vw) !important;
	padding-inline: var(--bleed);
	scroll-padding-inline: var(--bleed);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--bleed), #000 calc(100% - max(var(--bleed), 12vw)), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 var(--bleed), #000 calc(100% - max(var(--bleed), 12vw)), transparent);
}
.wh-chapter-split__body .wh-media-rail {
	--bleed: max(var(--wp--style--root--padding-right, 1rem), (100vw - var(--wp--style--global--wide-size, 1320px)) / 2);
	margin-right: calc(-1 * var(--bleed)) !important;
	padding-right: var(--bleed);
	-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - max(var(--bleed), 10vw)), transparent);
	mask-image: linear-gradient(90deg, #000 calc(100% - max(var(--bleed), 10vw)), transparent);
}
:is(.wh-social-row, .wh-chapter-split__body) .wh-media-rail.is-end { -webkit-mask-image: none; mask-image: none; }
.wh-chapter-sec:has(.wh-media-rail), .wp-block-group:has(> .wh-social-row) { overflow-x: clip; }


/* Mass tort pricing, as spec sheets: a photo strip, the name, one row per figure (label left, value right),
   then the criteria link along the bottom edge */
.wh-tort-pricing__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 1199px) { .wh-tort-pricing__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 859px) { .wh-tort-pricing__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px) { .wh-tort-pricing__grid { grid-template-columns: 1fr; } }
.wh-tort-card { position: relative; }
.wh-tort-card__photo { aspect-ratio: 2 / 1; }
.wh-tort-card__initials { display: grid; place-items: center; width: 100%; height: 100%; font-family: var(--serif); font-style: italic; font-size: 2.75rem; color: var(--tan); background: radial-gradient(80% 90% at 80% 0%, rgba(80, 101, 172, .4), transparent 70%), linear-gradient(160deg, #1a2342, #0A0F1E 80%); }
.wh-tort-card__body { gap: .85rem; padding: 1.1rem 1.2rem 0; }
.wh-tort-card__name { font-size: 1.125rem; }
.wh-tort-card__stats { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; }
.wh-tort-card__stat { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; padding: .5rem 0; border-top: 1px solid var(--line-light); }
.wh-tort-card__stat dt { flex: 1 1 auto; min-width: 0; font-size: .625rem; line-height: 1.35; }
.wh-tort-card__stat dd { flex: none; margin: 0; font-size: .9375rem; text-align: right; }
.wh-tort-card__stat dd[title] { cursor: help; text-decoration: underline dotted rgba(10, 15, 30, .25); text-underline-offset: 3px; }
.wh-tort-card__note { padding-top: .5rem; font-size: .875rem; color: #4b5167; }
.wh-tort-card__btn { margin-top: auto; align-self: stretch; display: flex; justify-content: space-between; align-items: center; padding: .85rem 1.2rem; border: 0; border-top: 1px solid var(--line-light); border-radius: 0; background: #fbfaf7; color: var(--rust); font-size: .8125rem; font-weight: 600; text-align: left; }
.wh-tort-card__btn span { transition: transform .25s var(--ease); }
.wh-tort-card__btn:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.wh-tort-card__btn:hover span { transform: translateX(3px); }
/* the body ends above the button; the button spans the card's full width */
.wh-tort-card__body { flex: 1 0 auto; padding-bottom: 1rem; }

/* ======================================================================
   Launch process: five colour-coded stages, each name running up its left edge (as on the original)
   ====================================================================== */
.wh-stages { display: grid; gap: 1.5rem; }
.wh-stages > * { margin: 0 !important; }
.wh-stage { --st: #4258b8; --st-bg: #eef1fb; display: grid; grid-template-columns: 72px minmax(0, 1fr); border: 1.5px solid var(--st); border-radius: var(--r-l); background: var(--st-bg); overflow: hidden; }
.wh-stage--red { --st: #b8322f; --st-bg: #fbefee; }
.wh-stage--green { --st: #2e8a57; --st-bg: #edf7f1; }
.wh-stage--orange { --st: #BC7020; --st-bg: #fbf2e8; }
.wh-stage--teal { --st: #1a8aa3; --st-bg: #eaf5f8; }
.wh-stage > * { margin: 0 !important; }
.wh-stage__side { display: flex; flex-direction: column; align-items: center; gap: .9rem; padding: 1.5rem 0; border-right: 1.5px solid color-mix(in srgb, var(--st) 30%, transparent); }
.wh-stage__side > * { margin: 0 !important; }
.wh-stage__n { font-family: var(--serif); font-style: italic; font-size: 1.75rem; line-height: 1; color: var(--st); }
.wh-stage__label { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--mono); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--st); white-space: nowrap; }
.wh-stage__body { padding: clamp(1.5rem, 3vw, 2.5rem); }
.wh-stage__body > * + * { margin-top: 1.25rem !important; }
.wh-stage__k { margin: 0; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--st); }
.wh-stage .is-style-wh-checks li { font-size: .9375rem; line-height: 1.55; }
.wh-stage .is-style-wh-checks li::before { background: var(--st) !important; box-shadow: none !important; }
@media (max-width: 781px) {
	.wh-stage { grid-template-columns: 1fr; }
	.wh-stage__side { flex-direction: row; justify-content: flex-start; padding: 1rem 1.25rem; border-right: 0; border-bottom: 1.5px solid color-mix(in srgb, var(--st) 30%, transparent); }
	.wh-stage__label { writing-mode: horizontal-tb; transform: none; }
}
/* pills */
.wh-pill { margin: 0; padding: .65rem 1.3rem; border-radius: 999px; background: var(--st); color: #fff; font-size: .9375rem; font-weight: 600; line-height: 1.3; text-align: center; }
.wh-pill--outline { background: #fff; color: var(--st); box-shadow: inset 0 0 0 2px var(--st); text-transform: uppercase; font-size: .8125rem; letter-spacing: .04em; }
.wh-pill--head { justify-self: center; align-self: center; width: fit-content; margin-inline: auto !important; }
.wh-pills { display: flex; flex-direction: column; align-items: center; gap: .55rem; }
.wh-pills > * { margin: 0 !important; }
.wh-pills--big .wh-pill--big { width: min(100%, 640px); padding: 1.4rem 2rem; font-size: 1.0625rem; font-weight: 600; border-radius: 48px; }
/* the decision path */
.wh-flow { display: flex; flex-direction: column; align-items: center; gap: 0; }
.wh-flow > * { position: relative; margin: 0 !important; }
.wh-flow > * + * { margin-top: 1.6rem !important; }
.wh-flow > * + *::before { content: ""; position: absolute; left: 50%; top: -1.6rem; height: 1.6rem; width: 2px; background: color-mix(in srgb, var(--st) 55%, transparent); }
.wh-pill--q { padding: .85rem 1.6rem; font-size: 1.125rem; background: #1F2846; }
.wh-pill--small { padding: .55rem 1.1rem; font-size: .875rem; background: #1F2846; }
.wh-pill--wide { min-width: 9rem; background: #1F2846; }
.wh-flow__branch { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2.5rem; align-items: start; }
.wh-flow__branch > * { display: flex; flex-direction: column; align-items: center; gap: .6rem; margin: 0 !important; }
.wh-flow__branch > * > * { margin: 0 !important; }
.wh-flow__tag { margin: 0; padding: .2rem .7rem; border-radius: 999px; border: 1.5px solid color-mix(in srgb, var(--st) 55%, transparent); font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--st); background: #fff; }
.wh-flow__row { display: flex; align-items: center; gap: .6rem; padding: .3rem .3rem .3rem 1rem; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1.5px #1F2846; }
.wh-flow__row > * { margin: 0 !important; }
.wh-flow__k { font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: #1F2846; white-space: nowrap; }
.wh-flow__opts { display: flex; gap: .75rem; }
.wh-flow__opts > * { margin: 0 !important; }
.wh-flow__opt { display: grid; place-items: center; width: 4.5rem; height: 4.5rem; border-radius: 50%; background: #1F2846; color: #fff; font-weight: 700; font-size: 1rem; }
.wh-flow__end { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: center; }
.wh-flow__end > * { margin: 0 !important; }
/* WH logistics: two-by-two tiles, filled and outlined */
.wh-tiles2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; max-width: 820px; margin-inline: auto !important; }
.wh-tiles2 > * { margin: 0 !important; }
.wh-tile-step { display: grid; place-items: center; min-height: 120px; padding: 1.25rem 1.5rem; border-radius: var(--r-m); border: 2px solid var(--st); background: #fff; color: var(--st); font-size: .9375rem; font-weight: 600; line-height: 1.45; text-align: center; }
.wh-tile-step.is-filled { background: var(--st); color: #fff; }
@media (max-width: 600px) { .wh-tiles2 { grid-template-columns: 1fr; } }
/* Launch: the diagonal split panel, then an outlined box */
.wh-split { position: relative; display: grid; grid-template-rows: auto auto; gap: 2.5rem; max-width: 820px; margin-inline: auto !important; padding: 1.75rem 2rem; border-radius: var(--r-m); background: linear-gradient(to bottom right, var(--st) calc(50% - 1px), rgba(255, 255, 255, .85) 50%, var(--st) calc(50% + 1px)); color: #fff; }
.wh-split > * { margin: 0 !important; max-width: 52%; font-size: 1rem; font-weight: 600; line-height: 1.5; }
.wh-split__b { justify-self: end; text-align: right; }
.wh-boxnote { max-width: 820px; margin-inline: auto !important; padding: 1.25rem 1.75rem; border-radius: var(--r-m); border: 2px solid var(--st); color: var(--st); font-size: .9375rem; font-weight: 600; line-height: 1.55; text-align: center; }
@media (max-width: 600px) { .wh-split { background: var(--st); gap: 1rem; } .wh-split > * { max-width: none; } .wh-split__b { text-align: left; justify-self: start; } }
.wh-split { min-height: 280px; gap: 5rem; align-content: space-between; }
.wh-split > * { max-width: 40%; }
@media (max-width: 600px) { .wh-split { min-height: 0; gap: 1rem; } .wh-split > * { max-width: none; } }
/* Contact: the map as a full-width band under the details and form */
.wh-map.wh-map--band { aspect-ratio: auto; height: clamp(280px, 32vw, 420px); border: 0; border-radius: 0; margin: 0 !important; }
.wp-site-blocks .wh-map--band { width: 100%; max-width: none; }
.wh-map.wh-map--band { width: 100vw !important; margin-left: calc(50% - 50vw) !important; }

/* ======================================================================
   Hot Tort Report page: the featured #1 in the hero, the intro with the video, the ranking beside the legend,
   then each tort as a band: number, name and scores in one row, the write-up in two columns beneath
   ====================================================================== */
.wh-htr--featured { padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.wh-htr--featured .wh-htr__title { color: var(--ember); }
.wh-htr--featured .wh-htr__title::before { content: "★ "; }
.wh-htr--featured .wh-score--full { margin: 1rem 0 0; padding: 0; background: none; border: 0; box-shadow: none; }
.wh-htr--featured .wh-score__name { font-size: clamp(1.375rem, 2.2vw, 1.75rem); }
.wh-htr-intro .wh-spot--single .wh-spot__play { border-radius: var(--r-l); box-shadow: 0 40px 80px -40px rgba(10, 15, 30, .45); }
.wh-htr-intro__note { font-size: .875rem !important; color: #6b7187; padding-top: .75rem; border-top: 1px solid var(--line-light); }
/* ranking + legend on midnight */
.is-style-section-midnight .wh-legend__item { padding-top: .85rem; }
.is-style-section-midnight .wh-legend__k { color: #fff; }
.is-style-section-midnight .wh-legend p:not(.wh-legend__k):not(.is-style-wh-eyebrow) { color: var(--fog); }
.wh-legend > .wh-legend__item { margin-top: 1.1rem !important; }
/* each tort */
.wh-tort { padding-block: var(--wp--preset--spacing--80); border-top: 0 !important; }
.wh-tort__head { margin-bottom: var(--wp--preset--spacing--50) !important; }
.wh-tort__n { margin: 0 0 .4rem !important; font-family: var(--serif); font-style: italic; font-size: clamp(3rem, 5vw, 4.5rem); line-height: .9; color: var(--orange); }
.wh-tort__head h2 { margin: .4rem 0 0; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.05; letter-spacing: -.03em; }
.wh-tort__head .wh-score__head { display: none; }
.wh-tort__score { position: static !important; }
.wh-tort__score .wh-score--full { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 1.25rem 1.75rem; padding: 1.4rem 1.6rem; }
.wh-tort__score .wh-score__total { margin: 0; }
.wh-tort__score .wh-score__bars { margin: 0; }
.wh-tort__body { columns: 2 340px; column-gap: clamp(2rem, 4vw, 3.5rem); }
.wh-tort__body > p { margin: 0 0 1.1rem; break-inside: avoid-column; font-size: 1.0625rem; line-height: 1.7; }
.wh-tort__body > p:first-child { font-size: 1.1875rem; color: var(--ink); }
.wh-tort__foot { gap: 1rem 2rem !important; margin-top: var(--wp--preset--spacing--40) !important; padding-top: 1.25rem; border-top: 1px solid var(--line-light); }
.wh-tort__foot > * { margin: 0 !important; }
.wh-tort__foot p { font-size: .9375rem; color: #4b5167; }
@media (max-width: 781px) { .wh-tort__score .wh-score--full { grid-template-columns: 1fr; } }
.wh-htr--featured .wh-htr__title::before { content: none; }
.page-hot-tort-report .wh-htr--console .wh-htr__more { display: none; }
.wh-tort__score .wh-score__total { border: 0 !important; padding: 0 !important; }

/* Our Culture */
.wh-culture__lead { font-size: 1.25rem !important; line-height: 1.55; color: var(--ink); }
.wh-culture__story .wh-prose > * + * { margin-top: 1.1rem; }
.wh-culture__founders { margin: 0 !important; }
.wh-culture__founders img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 40% 30%; border-radius: var(--r-l); box-shadow: 0 40px 80px -40px rgba(10, 15, 30, .45); }
.wh-culture__founders figcaption { margin-top: .75rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: #6b7187; }
.wh-culture__quote { margin: 0 !important; font-family: var(--serif); font-style: italic; font-size: clamp(1.625rem, 3vw, 2.5rem); line-height: 1.3; letter-spacing: -.01em; color: #fff; text-align: center; }
.wh-culture__quote::before { content: "“"; color: var(--ember); }
.wh-culture__quote::after { content: "”"; color: var(--ember); }
.wh-years .wh-media-rail { grid-auto-columns: minmax(200px, 19%); }
.wh-years .wh-media-rail .wh-spot__play { aspect-ratio: 4 / 5; }
.wh-culture__story h2 { font-size: clamp(2rem, 3.6vw, 3rem) !important; line-height: 1.05; letter-spacing: -.03em; margin-top: .5rem !important; }


/* ======================================================================
   Insights: topic chips; the newest post as a full-width feature (image beside the words);
   then white cards three across; pagination as buttons
   ====================================================================== */
.wp-block-post-template:has(.wh-post-card) { gap: clamp(1rem, 2vw, 1.5rem) !important; }
.wh-post-card { display: flex !important; flex-direction: column; gap: .65rem !important; height: 100%; padding-bottom: 1.4rem; border-radius: var(--r-l); background: #fff; border: 1px solid var(--line-light); overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.wh-post-card > * { margin: 0 !important; }
.wh-post-card > :not(.wp-block-post-featured-image) { padding-inline: 1.4rem; }
.wh-post-card .wp-block-post-featured-image { margin-bottom: .5rem !important; }
.wh-post-card .wp-block-post-featured-image img { border-radius: 0; }
.wh-post-card .wp-block-post-title { font-size: 1.1875rem !important; line-height: 1.3; letter-spacing: -.01em; }
.wh-post-card .wp-block-post-excerpt__excerpt { margin: 0; color: #4b5167; }
.wh-post-card__more { margin-top: auto !important; padding-top: .4rem; font-size: .875rem; font-weight: 600; color: var(--rust); text-decoration: none; }
.wh-post-card__more::after { content: " →"; }
.wh-post-card:hover { transform: translateY(-3px); box-shadow: 0 24px 50px -30px rgba(10, 15, 30, .35); }
.wp-block-query-pagination { gap: .4rem; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 2.75rem; height: 2.75rem; padding: 0 1rem; border-radius: 999px; border: 1px solid var(--line-light); background: #fff; font-size: .875rem; font-weight: 600; color: var(--ink); text-decoration: none; }
.wp-block-query-pagination .page-numbers.current { background: var(--ink); border-color: var(--ink); color: #fff; }
.wp-block-query-pagination .page-numbers.dots { border: 0; background: none; min-width: 1rem; padding: 0; }
.wp-block-query-pagination a:hover { border-color: var(--ink); }
.wp-block-query-pagination-numbers { display: flex; gap: .4rem; }

/* Footer polish: links a step quieter than headings-white, a small arrow on hover, the "&" the same colour as its words,
   the logo level with the column headings, a slimmer sign-up pill */
.wh-footer .wh-footer__nav .wp-block-list li { color: var(--mist); }
.wh-footer .wh-footer__nav .wp-block-list a { color: var(--mist); transition: color .2s; }
.wh-footer .wh-footer__nav .wp-block-list a::after { content: "→"; display: inline-block; margin-left: .35rem; opacity: 0; transform: translateX(-4px); color: var(--ember); transition: opacity .2s, transform .25s var(--ease); }
.wh-footer .wh-footer__nav .wp-block-list a:hover { color: #fff; }
.wh-footer .wh-footer__nav .wp-block-list a:hover::after { opacity: 1; transform: none; }
.wh-footer .wh-footer__nav .wp-block-list { gap: .7rem; }
.wh-footer .wh-footer__heading { margin-bottom: 1.25rem !important; }
.wh-footer .wh-footer__nav .wp-block-site-logo { margin-top: -2px !important; }
.wh-footer .wh-footer__nav > .wp-block-column:first-child > p:not(.wh-footer-address) { font-size: .9375rem; line-height: 1.65; color: var(--fog); max-width: 34ch; }
.wh-footer .wh-subscribe .gravity-theme .gform_fields { padding: .3rem !important; }
.wh-footer .wh-subscribe .gravity-theme input[type=email] { padding: .75rem 1rem !important; font-size: .9375rem !important; }
.wh-footer .wh-subscribe .gravity-theme :is(.gform-button, button[type=submit], input[type=submit]) { padding: .75rem 1.3rem !important; font-size: .875rem !important; }
.wh-footer .wp-block-social-links .wp-social-link { width: 38px; height: 38px; }


/* Report write-ups (v3): the text on the left; the score card and a metrics panel on the right, in view while reading */
.wh-tort__text > * + * { margin-top: 1.1rem; }
.wh-tort__text h2 { margin-top: .4rem !important; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.05; letter-spacing: -.03em; }
.wh-tort__text > p:not(.wh-tort__n):not(.is-style-wh-eyebrow) { max-width: 64ch; font-size: 1.0625rem; line-height: 1.7; }
.wh-tort__text > h2 + p { font-size: 1.1875rem !important; color: var(--ink); }
.wh-tort__side { display: flex; flex-direction: column; gap: 1rem; }
.wh-tort__side > * { margin: 0 !important; }
@media (min-width: 782px) { .wh-tort__side { position: sticky; top: calc(var(--wh-nav-h, 76px) + 24px); align-self: flex-start; } }
.wh-tort__side .wh-score__head { display: none; }
.wh-tort__metrics { padding: 1.4rem 1.6rem; border-radius: var(--r-l); background: #fff; border: 1px solid var(--line-light); }
.is-style-section-white .wh-tort__metrics { background: var(--paper); }
.wh-tort__metrics > * { margin: 0 !important; }
.wh-tort__metrics > * + * { margin-top: .75rem !important; }
.wh-tort__metrics p { font-size: .9375rem; line-height: 1.55; color: var(--ink); }
.wh-tort__metrics strong { font-family: var(--mono); font-size: .6875rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rust); margin-right: .35rem; }
.wh-tort__metrics .wh-tort__note { color: #4b5167; }
.wh-tort__metrics p.is-style-wh-eyebrow { color: var(--rust); }

/* ======================================================================
   Lists in article text (service and About pages, blog posts)
   Numbered lists: step cards, an orange serif number on each, two per row once there are four or more.
   Plain bullet lists: the same orange marker as the check lists.
   ====================================================================== */
:where(.wh-prose, .wh-article .wp-block-post-content) ol[class="wp-block-list"] { list-style: none; counter-reset: wh-ol; display: grid; gap: .75rem; margin-block: 1.5rem !important; padding: 0 !important; max-width: none; }
:where(.wh-prose, .wh-article .wp-block-post-content) ol[class="wp-block-list"]:has(> li:nth-child(4)) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
:where(.wh-prose, .wh-article .wp-block-post-content) ol[class="wp-block-list"] > li {
	counter-increment: wh-ol;
	position: relative;
	margin: 0;
	max-width: none;
	padding: 1.1rem 1.25rem 1.15rem 4.1rem;
	border-radius: var(--r-m);
	background: #fff;
	border: 1px solid var(--line-light);
	font-size: .9375rem;
	line-height: 1.6;
	color: var(--body);
}
:where(.wh-prose, .wh-article .wp-block-post-content) ol[class="wp-block-list"] > li::before {
	content: counter(wh-ol, decimal-leading-zero);
	position: absolute;
	left: 1.15rem;
	top: .8rem;
	font-family: var(--serif);
	font-style: italic;
	font-size: 1.75rem;
	line-height: 1;
	color: var(--orange);
}
:where(.is-style-section-white) :where(.wh-prose, .wh-article .wp-block-post-content) ol[class="wp-block-list"] > li { background: var(--paper); }
:where(.wh-prose, .wh-article .wp-block-post-content) ul[class="wp-block-list"] { list-style: none; padding-left: 0 !important; }
:where(.wh-prose, .wh-article .wp-block-post-content) ul[class="wp-block-list"] > li { position: relative; padding-left: 1.75rem; margin-bottom: .55rem; }
:where(.wh-prose, .wh-article .wp-block-post-content) ul[class="wp-block-list"] > li::before { content: ""; position: absolute; left: 0; top: .45em; width: .9rem; height: .9rem; border-radius: 50%; background: radial-gradient(circle, var(--orange) 0 3px, transparent 3.5px), rgba(188, 112, 32, .15); }

/* Our New Home: the three homes as a timeline (round photo, year, story), the table, captions */
.wh-newhome__cap { margin: .75rem 0 0 !important; font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: #6b7187; }
.wh-homes { position: relative; display: grid; gap: clamp(2rem, 4vw, 3.5rem); }
.wh-homes > * { margin: 0 !important; }
.wh-home { position: relative; display: grid; grid-template-columns: clamp(140px, 22%, 260px) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.wh-home > * { margin: 0 !important; }
.wh-home__photo img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 6px #fff, 0 0 0 7px var(--line-light), 0 30px 60px -30px rgba(10, 15, 30, .45); }
.wh-home__text > * + * { margin-top: .9rem; }
.wh-home__year { margin: 0 !important; font-family: var(--serif); font-style: italic; font-size: clamp(2.25rem, 3.5vw, 3rem); line-height: 1; color: var(--orange); }
.wh-home__text h3 { margin-top: .35rem !important; font-size: clamp(1.5rem, 2.4vw, 2rem); letter-spacing: -.02em; }
.wh-home__text p { max-width: 70ch; }
/* the line joining the three photos */
@media (min-width: 701px) {
	.wh-homes::before { content: ""; position: absolute; top: 2rem; bottom: 2rem; left: calc(clamp(140px, 22%, 260px) / 2); width: 2px; background: linear-gradient(var(--orange), var(--tan), var(--signal)); opacity: .45; }
}
@media (max-width: 700px) { .wh-home { grid-template-columns: 1fr; } .wh-home__photo { max-width: 180px; } }
.wh-table-video video { aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-l); }
.wh-table-build .wh-spot__play { border-radius: var(--r-m); }
.wh-prose > .is-style-wh-eyebrow + h2.wp-block-heading { font-size: clamp(2rem, 3.6vw, 3rem) !important; line-height: 1.05; letter-spacing: -.03em; margin-top: .5rem !important; }


/* Report write-ups: the score, metrics and tort-to-tort links as one card (dark score on top, light metrics below) */
.wh-tort__side { gap: 0; border-radius: var(--r-l); box-shadow: 0 40px 80px -45px rgba(10, 15, 30, .45); }
.wh-tort__side .wh-score--full { border-radius: var(--r-l) var(--r-l) 0 0; box-shadow: none !important; }
.wh-tort__side .wh-tort__metrics { border-radius: 0; border-top: 0; background: #fff !important; }
.wh-tort__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 0 !important; padding: .9rem 1.6rem 1rem; border: 1px solid var(--line-light); border-top: 1px dashed var(--line-light); border-radius: 0 0 var(--r-l) var(--r-l); background: #fff; }
.wh-tort__nav a { display: grid; gap: .1rem; font-size: .8125rem; font-weight: 600; line-height: 1.3; color: var(--ink); text-decoration: none; }
.wh-tort__nav a span { font-family: var(--mono); font-size: .625rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--rust); }
.wh-tort__nav a:hover { color: var(--rust); }
.wh-tort__next { justify-self: end; text-align: right; }
/* movement since last month */
.wh-score__move { flex-basis: 100%; display: inline-flex; align-items: center; gap: .35rem; width: fit-content; padding: .25rem .6rem; border-radius: 999px; font-family: var(--mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mist); background: rgba(255, 255, 255, .08); }
.wh-score__move b { font-size: .625rem; }
.wh-score__move.is-up { color: #6ee7a8; background: rgba(61, 220, 132, .12); }
.wh-score__move.is-down { color: #ff8a9a; background: rgba(255, 90, 122, .12); }
.wh-score__move.is-new { color: var(--ember); background: rgba(227, 154, 78, .14); }
.wh-tort__score .wh-score__total, .wh-tort__side .wh-score__total { flex-wrap: wrap; }


/* Our Culture: benefits as icon tiles, six to a row, the last row centred */
.wh-perks { --cols: 6; display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; }
.wh-perks > .wh-perk { flex: 0 0 calc((100% - (var(--cols) - 1) * .9rem) / var(--cols)); display: flex; flex-direction: column; gap: .85rem; margin: 0 !important; padding: 1.25rem 1.2rem 1.35rem; border-radius: var(--r-m); background: var(--paper); border: 1px solid var(--line-light); transition: transform .3s var(--ease), border-color .3s; }
.wh-perk > * { margin: 0 !important; }
.wh-perk p { font-size: .9375rem; font-weight: 600; line-height: 1.35; color: var(--ink); }
.wh-perk .wh-card-icon img { background: #fff !important; }
.wh-perk:hover { transform: translateY(-2px); border-color: rgba(188, 112, 32, .35); }
@media (max-width: 1199px) { .wh-perks { --cols: 4; } }
@media (max-width: 781px) { .wh-perks { --cols: 3; } }
@media (max-width: 560px) { .wh-perks { --cols: 2; } }
.wh-benefits-video .wh-spot__play { border-radius: var(--r-l); }
/* the statement band, centred */
.wh-culture__statement .wh-culture__quote, .wh-culture__statement .wh-culture__label { margin-inline: auto !important; max-width: 980px; }
.wh-culture__label { display: block; width: fit-content; margin-bottom: 1.25rem !important; }
/* report: the movement chip on its own line, as wide as its words */
.wh-score__total:has(.wh-score__move)::after { content: ""; flex-basis: 100%; order: 2; }
.wh-score__move { order: 3; flex: 0 0 auto; flex-basis: auto; }
.wh-culture__label::before { display: none !important; } .wh-culture__label { margin-inline: auto !important; }


/* Team: tenure as a round seal on the portrait, the years large; ten years or more in orange */
.wh-person__tenure { left: auto !important; right: .6rem; bottom: .6rem; display: grid; place-items: center; align-content: center; width: 58px; height: 58px; padding: 0 !important; border-radius: 50% !important; background: rgba(10, 15, 30, .82) !important; box-shadow: 0 0 0 2px rgba(255, 255, 255, .85); font-size: .5rem !important; line-height: 1.1; letter-spacing: .08em; text-align: center; }
.wh-person__tenure b { display: block; font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.375rem; letter-spacing: -.01em; line-height: 1; text-transform: none; }
@media (max-width: 600px) { .wh-person__tenure { width: 48px; height: 48px; } .wh-person__tenure b { font-size: 1.125rem; } }

/* Founders: two large cards, the portrait beside name, title and bio */
.wh-founders-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.wh-founder { display: grid; grid-template-columns: minmax(0, 44%) minmax(0, 1fr); margin: 0; border-radius: var(--r-l); overflow: hidden; background: linear-gradient(160deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02)); border: 1px solid var(--line-dark); }
.wh-founder__photo { margin: 0; min-height: 100%; }
.wh-founder__img { display: block; width: 100%; height: 100%; min-height: 360px; object-fit: cover; object-position: 50% 20%; }
.wh-founder__body { display: flex; flex-direction: column; justify-content: center; gap: .6rem; padding: clamp(1.5rem, 3vw, 2.25rem); }
.wh-founder__body > * { margin: 0; }
.wh-founder__role { font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ember); }
.wh-founder__name { font-size: clamp(1.75rem, 2.8vw, 2.5rem); line-height: 1.05; letter-spacing: -.03em; color: #fff; }
.wh-founder__bio { margin-top: .4rem !important; font-size: .9375rem; line-height: 1.65; color: var(--mist); }
@media (max-width: 1099px) { .wh-founders-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .wh-founder { grid-template-columns: 1fr; } .wh-founder__img { min-height: 0; aspect-ratio: 4 / 3; } }

/* By the numbers band */
.wh-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.wh-facts > .wh-fact { margin: 0 !important; padding-left: 1.25rem; border-left: 2px solid rgba(227, 154, 78, .5); }
.wh-fact > * { margin: 0 !important; }
.wh-fact__n { font-family: var(--serif); font-style: italic; font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 1; color: #fff; }
.wh-fact__t { margin-top: .5rem !important; font-size: .875rem; line-height: 1.45; color: var(--fog); }
@media (max-width: 781px) { .wh-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wh-facts-band { border-block: 1px solid var(--line-dark); }

/* Team grid: rows of five (four, three, two as the screen narrows), the last row starting at the left */
.wh-team--grid:not(.wh-team--pair) { --per: 5; --gx: 1.25rem; display: flex !important; flex-wrap: wrap; justify-content: center; gap: 2rem var(--gx); }
.wh-team--grid:not(.wh-team--pair) > .wh-person { flex: 0 0 calc((100% - (var(--per) - 1) * var(--gx)) / var(--per)); min-width: 0; }
@media (max-width: 1099px) { .wh-team--grid:not(.wh-team--pair) { --per: 4; } }
@media (max-width: 860px) { .wh-team--grid:not(.wh-team--pair) { --per: 3; } }
@media (max-width: 600px) { .wh-team--grid:not(.wh-team--pair) { --per: 2; --gx: .85rem; } }
/* Tort pricing: the criteria link is the card's flush bottom edge; the update date as a live chip */
.wh-tort-card__btn { margin: 0 !important; flex: none; width: 100%; border-radius: 0 0 var(--r-l) var(--r-l) !important; padding: 1rem 1.2rem !important; }
.wh-tort-pricing__updated { display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 1.5rem !important; padding: .5rem 1rem .5rem .85rem; border-radius: 999px; background: #fff; border: 1px solid var(--line-light); font-family: var(--mono); font-size: .75rem !important; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink) !important; }
.wh-tort-pricing__updated::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #2fbf71; box-shadow: 0 0 0 4px rgba(47, 191, 113, .18); }
.wh-tort-pricing__updated span { color: #6b7187; font-weight: 500; }


/* Hero figures (Mass Torts): under the buttons, the home page's metric style */
.wh-hero-metrics { margin-top: var(--wp--preset--spacing--50) !important; }
.wh-hero-metrics .wh-metric { padding-top: 1rem; }
.wh-hero-metrics .wh-metric__n { font-size: clamp(1.5rem, 2.2vw, 2rem) !important; }
.wh-hero-metrics .wh-metric p:not(.wh-metric__n) { margin-top: .35rem !important; font-size: .8125rem; line-height: 1.35; }
@media (max-width: 600px) { .wh-hero-metrics { flex-wrap: wrap !important; row-gap: 1rem; } .wh-hero-metrics > .wp-block-column { flex-basis: calc(50% - 1rem) !important; } }



/* Long reviews: the opening lines on the card (fading out), the whole review in a pop-up */
.wh-quote--clamp .wh-quote__text p { display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 7 !important; overflow: hidden; }
.wh-quote--clamp .wh-quote__more { display: inline-flex !important; align-self: flex-start; margin-top: -.5rem; }
.wh-quote__more[hidden] { display: none !important; }
.wh-quote-pop { width: min(680px, calc(100vw - 2rem)); max-height: min(85vh, 720px); overflow: auto; padding: 2.25rem 2.5rem 2rem; border: 0; border-radius: var(--r-l); background: #fff; color: var(--body); box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .6); }
.wh-quote-pop::backdrop { background: rgba(10, 15, 30, .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.wh-quote-pop__brand { margin-bottom: 1.25rem; }
.wh-quote-pop__brand .wh-quote__logo { height: 44px; width: auto; max-width: 220px; object-fit: contain; }
.wh-quote-pop blockquote { margin: 0; padding: 0; border: 0; }
.wh-quote-pop blockquote p { margin: 0; font-size: 1.1875rem; line-height: 1.65; color: var(--ink); }
.wh-quote-pop blockquote p::before { content: "“"; color: var(--orange); }
.wh-quote-pop blockquote p::after { content: "”"; color: var(--orange); }
.wh-quote-pop__by { margin: 1.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line-light); }
.wh-quote-pop__by b { display: block; font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.5rem; color: var(--ink); }
.wh-quote-pop__by span { display: block; margin-top: .25rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: #6b7187; }
.wh-quote-pop__close { position: absolute; top: 1rem; right: 1rem; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line-light); background: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.wh-quote-pop__close:hover { background: var(--ink); color: #fff; }
/* the report's sticky score card clears the "On this page" bar */
html:has(.wh-subnav) .wh-tort__side { top: calc(var(--wh-nav-h, 76px) + 56px + 24px); }

/* Team grid: rows fill from the left (no centred last row) */
.wh-team--grid:not(.wh-team--pair) { justify-content: flex-start !important; }

/* Tenure: a frosted pill on the portrait's bottom-left, the years in a white chip */
.wh-person__tenure {
	top: auto !important; left: .65rem !important; right: auto !important; bottom: .65rem !important;
	display: inline-flex !important; align-items: center; gap: .45rem;
	width: auto !important; height: auto !important;
	padding: .25rem .65rem .25rem .25rem !important;
	border-radius: 999px !important;
	background: rgba(10, 15, 30, .55) !important;
	backdrop-filter: blur(10px) saturate(1.4); -webkit-backdrop-filter: blur(10px) saturate(1.4);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18) !important;
	font-family: var(--mono); font-size: .5625rem !important; font-weight: 500; letter-spacing: .12em; line-height: 1; text-transform: uppercase; color: #fff !important;
}
.wh-person__tenure b { display: inline-grid; place-items: center; min-width: 2.1rem; height: 1.45rem; padding: 0 .4rem; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--ink); font-family: var(--wp--preset--font-family--sans); font-style: normal; font-weight: 800; font-size: .75rem; letter-spacing: -.01em; }
@media (max-width: 600px) { .wh-person__tenure { bottom: .45rem !important; left: .45rem !important; } .wh-person__tenure b { min-width: 1.8rem; height: 1.3rem; font-size: .6875rem; } }
/* Calls & Cases: a "C&C" tag on the portrait's top-left in their colors (callsandcases.com: a blue speech bubble, heavy white type) */
.wh-person__badge { position: absolute; top: .65rem; left: .65rem; padding: .35rem .6rem; border-radius: 999px; background: linear-gradient(100deg, #4fa3dc, #2c90ce 60%, #3973a4); box-shadow: 0 2px 8px rgba(20, 44, 66, .3); font-family: var(--wp--preset--font-family--sans); font-size: .6875rem; font-weight: 900; letter-spacing: .04em; line-height: 1; color: #fff; text-shadow: 0 1px 1px rgba(20, 44, 66, .35); }
.wh-person__badge::after { content: ""; position: absolute; left: .55rem; bottom: -5px; width: 8px; height: 6px; background: #3b9bd6; clip-path: polygon(0 0, 100% 0, 10% 100%); }
/* gray with the portrait, in color with it on hover */
.wh-person__badge { filter: grayscale(1); transition: filter .5s var(--ease); }
.wh-person__link:hover .wh-person__badge { filter: none; }
@media (max-width: 600px) { .wh-person__badge { top: .45rem; left: .45rem; padding: .3rem .5rem; font-size: .625rem; } }

/* Founders: one wide card each, alternating sides, with room for the bio */
.wh-founders-grid { grid-template-columns: 1fr !important; gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.wh-founder { grid-template-columns: minmax(0, 40%) minmax(0, 1fr) !important; }
.wh-founder:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 40%) !important; }
.wh-founder:nth-child(even) .wh-founder__photo { order: 2; }
.wh-founder__img { min-height: 420px !important; max-height: 520px; }
.wh-founder__body { padding: clamp(1.75rem, 4vw, 3.5rem) !important; gap: .75rem !important; }
.wh-founder__name { font-size: clamp(2rem, 3.4vw, 3rem) !important; }
.wh-founder__bio { max-width: 58ch; font-size: 1.0625rem !important; line-height: 1.7 !important; }
@media (max-width: 700px) { .wh-founder, .wh-founder:nth-child(even) { grid-template-columns: 1fr !important; } .wh-founder:nth-child(even) .wh-founder__photo { order: 0; } .wh-founder__img { min-height: 0 !important; aspect-ratio: 4 / 3; } }

/* How the score works: each channel as its own small card (colour, name and range, then what it measures), two by two */
.wh-legend__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: var(--wp--preset--spacing--40) !important; }
.wh-legend__grid > .wh-legend__item { margin: 0 !important; padding: 1rem 1.1rem 1.15rem !important; border: 0 !important; border-radius: var(--r-m); background: linear-gradient(180deg, color-mix(in srgb, var(--c) 16%, transparent), rgba(255, 255, 255, .02) 75%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), inset 0 2px 0 var(--c); }
.wh-legend__item > * { margin: 0 !important; }
.wh-legend__item > * + * { margin-top: .45rem !important; }
.wh-legend__grid .wh-legend__k { display: flex; align-items: center; gap: .5rem; font-size: .75rem; }
.wh-legend__grid .wh-legend__k::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 2px; background: var(--c); box-shadow: 0 0 10px var(--c); }
.wh-legend__grid .wh-legend__item p:not(.wh-legend__k) { font-size: .875rem !important; line-height: 1.5; }
@media (max-width: 600px) { .wh-legend__grid { grid-template-columns: 1fr; } }

/* Header nav: each top item keeps its label and chevron together, with clear space between items;
   a line grows under the label on hover and stays, in orange, under the section you're in; a hairline sets the quote button apart. */
@media (min-width: 782px) {
	.wh-header .wp-block-navigation .wp-block-navigation__container { gap: .4rem; }
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item { position: relative; padding: .55rem 1rem; border-radius: 999px; transition: background-color .2s; }
	.wh-header .wp-block-navigation .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { position: relative; padding: 0; background: none !important; }
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item.is-current > .wp-block-navigation-item__content { color: #fff; }
	.wh-header .wp-block-navigation__container > .has-child > .wp-block-navigation-submenu__toggle { margin-left: .35rem; padding: 0; }
	.wh-header .wp-block-navigation__container > .has-child > .wp-block-navigation-submenu__toggle svg { transition: transform .25s var(--ease); }
	.wh-header .wp-block-navigation__container > .has-child:hover > .wp-block-navigation-submenu__toggle svg,
	.wh-header .wp-block-navigation__container > .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
	.wh-header .wh-header__cta { position: relative; margin-left: .5rem; padding-left: 1.5rem; }
	.wh-header .wh-header__cta::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 24px; background: rgba(255, 255, 255, .14); transform: translateY(-50%); }
	.wh-header .wh-header__cta .wp-block-button__link::after { content: "→"; display: inline-block; margin-left: .5rem; transition: transform .2s var(--ease); }
	.wh-header .wh-header__cta .wp-block-button__link:hover::after { transform: translateX(3px); }
}
.is-style-section-midnight .wh-legend > .is-style-wh-eyebrow { color: var(--ember); }
#ranking > .wp-block-columns { align-items: center !important; }

/* Branding options: the two choices as full-bleed colour panels (your firm in deep red, White Heart Legal in slate),
   each logo on its own colour with a faint oversized copy bleeding off the edge, and a large "or" on the seam. */
.wh-versus { position: relative; gap: 0 !important; margin-top: var(--wp--preset--spacing--70) !important; margin-bottom: 0 !important; }
.wh-versus > .wh-versus__side { position: relative; isolation: isolate; overflow: hidden; display: flex; justify-content: center; margin: 0 !important; padding: clamp(3.5rem, 7vw, 6.5rem) clamp(1.5rem, 5vw, 5rem) clamp(4rem, 7.5vw, 7rem) !important; color: #fff; }
.wh-versus__side--firm { --mark: url("../images/branding-your-firm-logo.webp"); background: radial-gradient(90% 80% at 30% 10%, #a51f2e 0%, #76121c 45%, #3a080e 100%); }
.wh-versus__side--whl { --mark: url("../images/branding-whl-logo.webp"); background: radial-gradient(90% 80% at 70% 10%, #706e7d 0%, #4e4c57 45%, #1c1b23 100%); }
.wh-versus__side::before { content: ""; position: absolute; z-index: -1; width: 70%; aspect-ratio: 1; bottom: -22%; background: var(--mark) center / contain no-repeat; opacity: .07; transform: rotate(-8deg); transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.wh-versus__side--firm::before { left: -18%; }
.wh-versus__side--whl::before { right: -18%; transform: rotate(8deg); }
.wh-versus__side:hover::before { transform: rotate(-4deg) scale(1.04); }
.wh-versus__side--whl:hover::before { transform: rotate(4deg) scale(1.04); }
.wh-versus__side::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 40% at 50% 100%, rgba(0, 0, 0, .35), transparent 70%); pointer-events: none; }
.wh-versus__inner { display: flex; flex-direction: column; align-items: center; gap: 1.1rem; max-width: 34rem; text-align: center; }
.wh-versus__inner > * { margin: 0 !important; }
.wh-versus__logo img { display: block; width: auto; height: clamp(120px, 12vw, 168px); filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.wh-versus__side:hover .wh-versus__logo img { transform: translateY(-4px); }
.wh-versus__logo { margin-bottom: .6rem !important; }
.wh-versus__k { display: inline-flex; align-items: center; gap: .75rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
.wh-versus__k::before, .wh-versus__k::after { content: ""; width: 1.75rem; height: 1px; background: rgba(255, 255, 255, .35); }
.wh-versus__side h3 { font-size: clamp(2.25rem, 4vw, 3.5rem) !important; line-height: 1; letter-spacing: -.035em; color: #fff; }
.wh-versus__text { max-width: 42ch; font-size: 1.0625rem; line-height: 1.65; color: rgba(255, 255, 255, .8); }
.wh-versus .is-style-wh-checks { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: .4rem !important; }
.wh-versus .is-style-wh-checks li { margin: 0; padding: .5rem .95rem .5rem 2.05rem; border-radius: 999px; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-size: .875rem; font-weight: 500; color: #fff; }
.wh-versus .is-style-wh-checks li::before { top: 50%; left: .55rem; width: 1.1rem; height: 1.1rem; transform: translateY(-50%); background: rgba(255, 255, 255, .95) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.4l2.6 2.6L12 5.4' fill='none' stroke='%230a0f1e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / .7rem no-repeat; box-shadow: none; }
.wh-versus .wp-block-buttons { margin-top: .9rem !important; }
.wh-versus .wp-block-button__link { background: #fff !important; color: var(--ink) !important; box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .6); }
.wh-versus .wp-block-button__link::after { content: "→"; display: inline-block; margin-left: .5rem; transition: transform .2s var(--ease); }
.wh-versus .wp-block-button__link:hover { background: var(--ink) !important; color: #fff !important; }
.wh-versus .wp-block-button__link:hover::after { transform: translateX(3px); }
/* "or", on the seam */
.wh-versus::after {
	content: "or"; position: absolute; left: 50%; top: 50%; z-index: 3; transform: translate(-50%, -50%);
	display: grid; place-items: center; width: clamp(4.5rem, 6.5vw, 6rem); aspect-ratio: 1; padding-bottom: .35rem; border-radius: 50%;
	background: var(--paper); box-shadow: 0 0 0 8px rgba(244, 241, 236, .18), 0 0 0 1px rgba(10, 15, 30, .08), 0 24px 50px -16px rgba(0, 0, 0, .65);
	font-family: var(--serif); font-style: italic; font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1; color: var(--rust);
}
@media (max-width: 781px) {
	.wh-versus { display: grid !important; grid-template-columns: 1fr; } /* each panel its own height when stacked: no gap above the button */
	.wh-versus > .wh-versus__side { padding-block: 3.5rem 4rem !important; }
}
/* the two buttons line up: each panel's words fill its height and the button sits at the foot */
.wh-versus > .wh-versus__side { align-items: stretch; }
.wh-versus__inner { justify-content: flex-start; }
.wh-versus .wp-block-buttons { margin-top: auto !important; padding-top: .9rem; }
@media (max-width: 781px) { .wh-versus > .wh-versus__side--whl { padding-top: 5rem !important; } }

/* Tort pricing toolbar: when it was updated, and grid or list */
.wh-tort-pricing__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin-bottom: 1.5rem; }
.wh-tort-pricing__bar .wh-tort-pricing__updated { margin: 0 !important; }
.wh-tort-pricing__views { display: inline-flex; gap: .2rem; padding: .25rem; border-radius: 999px; background: #fff; border: 1px solid var(--line-light); }
.wh-tort-pricing__views[hidden] { display: none; }
.wh-tort-pricing__views button { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .95rem; border: 0; border-radius: 999px; background: transparent; font: inherit; font-size: .8125rem; font-weight: 600; color: #4b5167; cursor: pointer; transition: background-color .2s, color .2s; }
.wh-tort-pricing__views svg { width: 14px; height: 14px; fill: currentColor; }
.wh-tort-pricing__views button:hover { color: var(--ink); }
.wh-tort-pricing__views button[aria-pressed="true"] { background: var(--ink); color: #fff; }

/* List view: a row per tort (thumbnail, name, the four figures in columns, criteria). Scoped to the card body:
   each card also holds its criteria pop-up, which has its own figures. */
.wh-tort-pricing[data-view="list"] .wh-tort-pricing__grid { grid-template-columns: 1fr !important; gap: .6rem; }
.wh-tort-pricing[data-view="list"] .wh-tort-card { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 0 1.5rem; padding: .6rem 1rem .6rem .6rem; border-radius: var(--r-m); }
.wh-tort-pricing[data-view="list"] .wh-tort-card__photo { aspect-ratio: auto; height: 76px; border-radius: 10px; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__initials { font-size: 1.5rem; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__body { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(0, 3fr); align-items: center; gap: .5rem 1.5rem; padding: 0 !important; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__name { font-size: 1.125rem; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__body > .wh-tort-card__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__body .wh-tort-card__stat { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .3rem; padding: 0 0 0 1rem; border-top: 0; border-left: 1px solid var(--line-light); }
.wh-tort-pricing[data-view="list"] .wh-tort-card__body .wh-tort-card__stat dd { font-size: 1rem; text-align: left; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__body > .wh-tort-card__note { border-top: 0; padding: 0; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__btn { width: auto; gap: .6rem; padding: .7rem 1.15rem !important; border: 1px solid var(--line-light); border-radius: 999px !important; background: var(--paper); white-space: nowrap; }
.wh-tort-pricing[data-view="list"] .wh-tort-card__btn:hover { background: var(--ink); color: #fff; }
@media (max-width: 1099px) {
	.wh-tort-pricing[data-view="list"] .wh-tort-card__body { grid-template-columns: 1fr; }
	.wh-tort-pricing[data-view="list"] .wh-tort-card__photo { height: 100%; min-height: 76px; }
}
@media (max-width: 700px) {
	.wh-tort-pricing[data-view="list"] .wh-tort-card { grid-template-columns: 76px minmax(0, 1fr); gap: .75rem 1rem; }
	.wh-tort-pricing[data-view="list"] .wh-tort-card__photo { height: 76px; min-height: 0; }
	.wh-tort-pricing[data-view="list"] .wh-tort-card__body > .wh-tort-card__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem 1rem; }
	.wh-tort-pricing[data-view="list"] .wh-tort-card__btn { grid-column: 1 / -1; justify-content: space-between; }
}

/* Qualifying criteria pop-up: the tort on a dark side panel (photo, figures, a way to talk to the team);
   the criteria as numbered steps on a rail, AND / OR between them, options as chips or check rows; a tab per set */
.wh-crit { width: min(1080px, calc(100vw - 2rem)); height: min(780px, calc(100vh - 3rem)); margin: auto; padding: 0; border: 0; border-radius: var(--r-l); overflow: hidden; background: #fff; color: var(--ink); box-shadow: 0 60px 120px -40px rgba(5, 8, 20, .75); }
.wh-crit:popover-open { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); animation: wh-crit-in .35s cubic-bezier(.2, .7, .2, 1); }
@keyframes wh-crit-in { from { opacity: 0; transform: translateY(14px) scale(.985); } }
.wh-crit::backdrop { background: rgba(8, 11, 24, .62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.wh-crit__aside { display: flex; flex-direction: column; min-height: 0; overflow: auto; background: radial-gradient(90% 50% at 0% 100%, rgba(188, 112, 32, .18), transparent 70%), linear-gradient(170deg, #1b2244 0%, #0a0f1e 100%); color: #fff; }
.wh-crit__photo { position: relative; flex: none; margin: 0; aspect-ratio: 16 / 11; }
.wh-crit__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wh-crit__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 15, 30, 0) 35%, #161c38 100%); }
.wh-crit__head { position: relative; padding: 1.75rem 1.75rem 0; }
.wh-crit__photo + .wh-crit__head { margin-top: -3.25rem; }
.wh-crit__eyebrow { margin: 0; font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ember); }
.wh-crit__name { margin: .45rem 0 0; font-size: clamp(1.75rem, 2.4vw, 2.25rem); line-height: 1.05; letter-spacing: -.025em; color: #fff; }
.wh-crit .wh-crit__stats { margin: 1.4rem 1.75rem 0; }
.wh-crit .wh-crit__stats .wh-tort-card__stat { padding: .7rem 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.wh-crit .wh-crit__stats dt { color: var(--fog); }
.wh-crit .wh-crit__stats dd { color: #fff; font-size: 1rem; text-decoration-color: rgba(255, 255, 255, .3); }
.wh-crit__aside .wh-tort-card__note { margin: 1.4rem 1.75rem 0; padding-top: .9rem; border-top: 1px solid rgba(255, 255, 255, .1); color: var(--fog); }
.wh-crit__cta { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: auto 1.75rem 1.75rem; padding: .9rem 1.25rem; border-radius: 999px; background: var(--orange); color: var(--ink); font-size: .9375rem; font-weight: 600; text-decoration: none; transition: background-color .2s; }
.wh-crit__cta:hover { background: var(--ember); }
.wh-crit__cta span { transition: transform .2s var(--ease); }
.wh-crit__cta:hover span { transform: translateX(3px); }
.wh-crit__main { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.75rem) 2.5rem; }
.wh-crit__close { position: absolute; top: 1rem; right: 1rem; z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 50%; border: 1px solid var(--line-light); background: #fff; color: var(--ink); font-size: 1.375rem; line-height: 1; cursor: pointer; transition: background-color .2s, color .2s; }
.wh-crit__close:hover { background: var(--ink); color: #fff; }
/* tabs */
.wh-crit__tabs { display: flex; gap: .3rem; margin: 0 3.25rem 1.75rem 0; padding: .3rem; border-radius: 14px; background: var(--paper); }
.wh-crit__tab { flex: 1 1 0; display: grid; gap: .15rem; padding: .6rem .9rem; border: 0; border-radius: 10px; background: transparent; font: inherit; font-size: .9375rem; font-weight: 600; line-height: 1.25; color: #4b5167; text-align: center; cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.wh-crit__tab small { font-size: .6875rem; font-weight: 500; color: #8a90a4; }
.wh-crit__tab:hover { color: var(--ink); }
.wh-crit__tab[aria-selected="true"] { background: #fff; color: var(--ink); box-shadow: 0 1px 0 rgba(10, 15, 30, .05), 0 8px 18px -10px rgba(10, 15, 30, .35); }
.wh-crit__tab[aria-selected="true"] small { color: var(--rust); }
/* steps */
.wh-crit__steps { list-style: none; margin: 0; padding: 0; }
.wh-crit__step { position: relative; margin: 0; padding: 0 0 1.75rem 3.4rem; }
.wh-crit__step:last-child { padding-bottom: 0; }
.wh-crit__step:not(:last-child)::before { content: ""; position: absolute; left: calc(1.05rem - 1px); top: 2.35rem; bottom: .25rem; width: 2px; border-radius: 2px; background: linear-gradient(180deg, rgba(188, 112, 32, .45), var(--line-light)); }
.wh-crit__n { position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--ink); color: #fff; font-family: var(--mono); font-size: .75rem; font-weight: 600; }
.wh-crit__join { position: absolute; left: calc(1.05rem - 1.4rem); top: .15rem; display: grid; place-items: center; width: 2.8rem; height: 1.6rem; border-radius: 999px; background: var(--orange); color: var(--ink); font-family: var(--mono); font-size: .625rem; font-weight: 700; letter-spacing: .1em; box-shadow: 0 0 0 4px #fff; }
.wh-crit__join--or { background: #5b6ed8; color: #fff; }
.wh-crit__cond { margin: 0; padding-top: .3rem; font-size: 1.0625rem; line-height: 1.55; color: var(--ink); }
.wh-crit :is(.wh-crit__cond, .wh-crit__checks) strong { display: inline-block; padding: .05em .45em; border-radius: 5px; background: var(--ink); color: #fff; font-family: var(--mono); font-size: .6875rem; font-weight: 600; letter-spacing: .06em; line-height: 1.5; vertical-align: .1em; }
.wh-crit__chips, .wh-crit__checks { list-style: none; margin: .9rem 0 0; padding: 0; }
.wh-crit__chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.wh-crit__chips li { margin: 0; padding: .45rem .9rem; border-radius: 999px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line-light); font-size: .875rem; font-weight: 500; line-height: 1.3; }
.wh-crit__checks { display: grid; gap: .45rem; }
.wh-crit__checks.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wh-crit__checks li { position: relative; margin: 0; padding: .65rem .9rem .65rem 2.45rem; border-radius: 10px; background: var(--paper); font-size: .9375rem; line-height: 1.45; }
.wh-crit__checks li::before { content: ""; position: absolute; left: .8rem; top: .78rem; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: rgba(188, 112, 32, .14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.4l2.6 2.6L12 5.4' fill='none' stroke='%23bc7020' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / .65rem no-repeat; }
.wh-crit__step:has(+ .wh-crit__step:not(.has-join))::before { background: var(--line-light); }
@media (max-width: 781px) {
	.wh-crit { height: calc(100vh - 2rem); overflow: auto; overscroll-behavior: contain; }
	.wh-crit:popover-open { display: block; }
	.wh-crit__aside { overflow: visible; }
	.wh-crit__photo { aspect-ratio: 16 / 8; }
	.wh-crit .wh-crit__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
	.wh-crit__cta { margin: 1.4rem 1.25rem 1.5rem; }
	.wh-crit__head { padding-inline: 1.25rem; }
	.wh-crit .wh-crit__stats, .wh-crit__aside .wh-tort-card__note { margin-inline: 1.25rem; }
	.wh-crit__main { overflow: visible; padding: 1.5rem 1.25rem 2rem; }
	.wh-crit__tabs { margin-right: 0; flex-wrap: wrap; }
	.wh-crit__checks.is-two { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .wh-crit:popover-open { animation: none; } }
.wh-crit__label { display: flex; align-items: center; min-height: 40px; margin: -.15rem 3.25rem 1.5rem 0; font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rust); }
.wh-tort-pricing[data-view="list"] .wh-tort-card__btn { align-self: center; }
@media (max-width: 781px) { .wh-crit .wh-crit__stats .wh-tort-card__stat { flex-direction: column; align-items: flex-start; gap: .3rem; } .wh-crit .wh-crit__stats dd { text-align: left; } }

/* Report side card, lower half: the figures as two tiles, the common criteria as an accented note,
   then the note and a full-width button; prev / next as two link cells */
.wh-tort__side .wh-tort__metrics { padding: 1.5rem 1.6rem 1.6rem; }
.wh-tort__metrics > .is-style-wh-eyebrow { margin-bottom: 1rem !important; }
.wh-tort__figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 0 !important; }
.wh-tort__figures > * { margin: 0 !important; }
.wh-tort__fig { display: grid; gap: .35rem; padding: .85rem 1rem .9rem; border-radius: 12px; background: var(--paper); font-size: 1.1875rem !important; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; color: var(--ink) !important; font-variant-numeric: tabular-nums; }
.wh-tort__fig:only-child { grid-column: 1 / -1; }
.wh-tort__fig span, .wh-tort__crit span { font-family: var(--mono); font-size: .625rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--rust); }
.wh-tort__metrics .wh-tort__crit { margin-top: .75rem !important; padding: .95rem 1.1rem 1rem; border-left: 3px solid var(--orange); border-radius: 0 12px 12px 0; background: linear-gradient(90deg, rgba(227, 154, 78, .1), rgba(227, 154, 78, .02)); font-size: .9375rem !important; line-height: 1.6; color: #33384d !important; }
.wh-tort__crit span { display: block; margin-bottom: .35rem; }
.wh-tort__metrics .wh-tort__note { margin-top: 1.25rem !important; padding-top: 1.1rem; border-top: 1px dashed var(--line-light); font-size: .875rem !important; color: #4b5167 !important; }
.wh-tort__metrics > .is-style-wh-eyebrow + .wh-tort__note { margin-top: 0 !important; padding-top: 0; border-top: 0; }
.wh-tort__cta { margin-top: .75rem !important; }
.wh-tort__cta .wp-block-button { width: 100%; }
.wh-tort__cta .wp-block-button__link { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: .85rem 1.25rem; border-radius: 999px; background: var(--ink) !important; color: #fff !important; font-size: .9375rem; }
.wh-tort__cta .wp-block-button__link::after { content: "→"; transition: transform .2s var(--ease); }
.wh-tort__cta .wp-block-button__link:hover { background: var(--orange) !important; color: var(--ink) !important; }
.wh-tort__cta .wp-block-button__link:hover::after { transform: translateX(3px); }
.wh-tort__side .wh-tort__nav { gap: 0; padding: 0; border-top: 1px solid var(--line-light); }
.wh-tort__nav a { gap: .3rem; padding: 1rem 1.6rem 1.1rem; font-size: .875rem; transition: background-color .2s, color .2s; }
.wh-tort__nav a:hover { background: var(--paper); color: var(--ink); }
.wh-tort__nav a span { transition: transform .2s var(--ease); }
.wh-tort__nav .wh-tort__prev:hover span { transform: translateX(-3px); }
.wh-tort__nav .wh-tort__next:hover span { transform: translateX(3px); }
.wh-tort__nav .wh-tort__next { justify-self: stretch; border-left: 1px solid var(--line-light); }
@media (max-width: 600px) { .wh-tort__nav a { padding: .9rem 1.1rem 1rem; } }
.wh-tort__nav > :first-child:empty + .wh-tort__next { grid-column: 1 / -1; border-left: 0; }

@media (min-width: 782px) {
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.45rem; height: 2px; border-radius: 2px; background: rgba(255, 255, 255, .35); transform: scaleX(0); transition: transform .3s var(--ease), background-color .3s; }
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content::after { transform: scaleX(1); }
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item.is-current > .wp-block-navigation-item__content::after { transform: scaleX(1); background: var(--orange); }
}
/* the page you're on, inside a dropdown: the same orange line, under its label */
.wh-header .wp-block-navigation__submenu-container .wp-block-navigation-item.is-current .wp-block-navigation-item__label { text-decoration: underline 2px var(--orange); text-underline-offset: .22em; text-decoration-skip-ink: none; }
.wh-header .wp-block-navigation__submenu-container .wp-block-navigation-item.is-current .wp-block-navigation-item__description { margin-top: .3rem; }
.wh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.is-current > .wp-block-navigation-item__content { color: var(--ember) !important; }
.wh-svc-hero h1 { overflow-wrap: normal; word-break: normal; hyphens: manual; }

/* Our New Home, the table: the loop film fills the left column's height; the "building our table" film overlaps its corner */
.wh-table { align-items: stretch !important; }
.wh-table > .wh-table__media { position: relative; min-height: 460px; }
.wh-table__media > .wh-table-video { position: absolute; inset: 0 3.5rem 3.5rem 0; margin: 0 !important; overflow: hidden; border-radius: var(--r-l); }
.wh-table__media > .wh-table-video video { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 0; }
.wh-table__media > .wh-table-build { position: absolute; right: 0; bottom: 0; width: min(46%, 320px); margin: 0 !important; border-radius: var(--r-m); box-shadow: 0 0 0 6px #121a33, 0 30px 60px -20px rgba(0, 0, 0, .75); }
.wh-table > .wp-block-column:last-child { align-self: center; }
@media (max-width: 781px) {
	.wh-table > .wh-table__media { min-height: 0; padding-bottom: 0; }
	.wh-table__media > .wh-table-video { position: relative; inset: auto; }
	.wh-table__media > .wh-table-video video { aspect-ratio: 16 / 10; }
	.wh-table__media > .wh-table-build { position: relative; width: 62%; margin: -3.5rem 0 0 auto !important; }
}

/* ======================================================================
   Phones and tablets (under 1024px): the header is the logo, a compact quote button and a menu button;
   the menu is a full-screen dialog (built by front.js from the header's navigation).
   ====================================================================== */
.wh-burger { display: none; }
@media (max-width: 1023px) {
	.wh-js .wh-header .wp-block-navigation { display: none !important; }
	/* the menu button's place, kept until front.js puts the button there */
	.wh-js .wh-header > .wp-block-group > :last-child:not(:has(> .wh-burger))::after { content: ""; flex: none; width: 44px; height: 44px; }
	.wh-header .wh-header__cta { display: block; margin: 0; padding: 0; }
	.wh-header .wh-header__cta::before { display: none; }
	.wh-header .wh-header__cta .wp-block-button__link { padding: .62em 1.1em !important; font-size: .8125rem; }
	.wh-burger { position: relative; display: grid; flex: none; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .04); cursor: pointer; transition: background-color .2s, border-color .2s; }
	.wh-burger:hover { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .3); }
	.wh-burger span { position: absolute; left: 13px; right: 13px; top: 50%; height: 1.5px; border-radius: 2px; background: #fff; transition: transform .3s cubic-bezier(.2, .7, .2, 1), left .3s; }
	.wh-burger span:first-child { transform: translateY(-4px); }
	.wh-burger span:last-child { left: 18px; transform: translateY(3.5px); }
	.wh-burger:hover span:last-child { left: 13px; }
}
@media (max-width: 559px) { .wh-header .wh-header__cta { display: none; } }
html.has-mnav { overflow: hidden; }

.wh-mnav { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; overflow: hidden; }
.wh-mnav::backdrop { background: transparent; }
.wh-mnav__inner {
	position: absolute; inset: 0; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain;
	padding: 0 var(--wp--style--root--padding-right, 1.25rem) max(1.75rem, env(safe-area-inset-bottom)) var(--wp--style--root--padding-left, 1.25rem);
	background: radial-gradient(80% 45% at 100% 0%, rgba(80, 101, 172, .38), transparent 70%), radial-gradient(70% 40% at 0% 100%, rgba(188, 112, 32, .22), transparent 70%), #0a0f1e;
	clip-path: circle(0 at var(--ox, 100%) var(--oy, 0));
	transition: clip-path .6s cubic-bezier(.7, 0, .2, 1);
}
.wh-mnav.is-open .wh-mnav__inner { clip-path: circle(160vmax at var(--ox, 100%) var(--oy, 0)); }
.wh-mnav.is-closing .wh-mnav__inner { transition-duration: .42s; }
.wh-mnav__bar { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; min-height: var(--wp--custom--header-height, 76px); margin: 0 calc(-1 * var(--wp--style--root--padding-right, 1.25rem)) 0 calc(-1 * var(--wp--style--root--padding-left, 1.25rem)); padding: 0 var(--wp--style--root--padding-right, 1.25rem) 0 var(--wp--style--root--padding-left, 1.25rem); background: rgba(10, 15, 30, .85); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.wh-mnav__bar .wp-block-site-logo img { display: block; width: auto; height: 21px; }
.wh-mnav__close { position: relative; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); cursor: pointer; }
.wh-mnav__close span { position: absolute; left: 13px; right: 13px; top: 50%; height: 1.5px; border-radius: 2px; background: #fff; transform: rotate(45deg); transition: transform .45s cubic-bezier(.2, .7, .2, 1) .15s; }
.wh-mnav__close span:last-child { transform: rotate(-45deg); }
.wh-mnav:not(.is-open) .wh-mnav__close span { transform: rotate(0); }
.wh-mnav__close:hover { background: #fff; }
.wh-mnav__close:hover span { background: var(--ink); }
/* the list */
.wh-mnav__list { list-style: none; margin: clamp(1rem, 4vh, 2.5rem) 0 0; padding: 0; }
.wh-mnav__item { border-bottom: 1px solid rgba(255, 255, 255, .09); }
.wh-mnav__top { display: flex; align-items: center; gap: 1rem; width: 100%; padding: clamp(.9rem, 2.4vh, 1.25rem) 0; border: 0; background: none; color: #fff; font: inherit; font-size: clamp(1.75rem, 7vw, 2.75rem); font-weight: 600; line-height: 1.1; letter-spacing: -.035em; text-align: left; text-decoration: none; cursor: pointer; }
.wh-mnav__n { align-self: flex-start; min-width: 1.75rem; margin-top: .5em; font-family: var(--mono); font-size: .6875rem; font-weight: 500; letter-spacing: .12em; color: var(--ember); }
.wh-mnav__label { flex: 1; min-width: 0; }
.wh-mnav__item.is-current .wh-mnav__label { text-decoration: underline 3px var(--orange); text-underline-offset: .2em; }
.wh-mnav__plus, .wh-mnav__go { position: relative; flex: none; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .18); transition: background-color .25s, border-color .25s, transform .35s cubic-bezier(.2, .7, .2, 1); }
.wh-mnav__plus::before, .wh-mnav__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; margin: -.75px 0 0 -6px; border-radius: 2px; background: #fff; transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.wh-mnav__plus::after { transform: rotate(90deg); }
.wh-mnav__top[aria-expanded="true"] .wh-mnav__plus { background: var(--orange); border-color: var(--orange); }
.wh-mnav__top[aria-expanded="true"] .wh-mnav__plus::before, .wh-mnav__top[aria-expanded="true"] .wh-mnav__plus::after { background: var(--ink); }
.wh-mnav__top[aria-expanded="true"] .wh-mnav__plus::after { transform: rotate(0); }
.wh-mnav__go::after { content: "→"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 1rem; font-weight: 500; letter-spacing: 0; }
.wh-mnav__top:hover .wh-mnav__plus, .wh-mnav__top:hover .wh-mnav__go { border-color: rgba(255, 255, 255, .45); }
.wh-mnav__top:hover .wh-mnav__go { transform: translateX(3px); }
/* sub-lists open with a height animation */
.wh-mnav__sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s cubic-bezier(.2, .7, .2, 1); }
.wh-mnav__top[aria-expanded="true"] + .wh-mnav__sub { grid-template-rows: 1fr; }
.wh-mnav__sub > div { min-height: 0; overflow: hidden; }
.wh-mnav__sub ul { list-style: none; margin: 0; padding: 0 0 1.25rem 2.75rem; display: grid; gap: .1rem 1.5rem; }
.wh-mnav__sub li { margin: 0; }
.wh-mnav__sub a { display: block; padding: .55rem .75rem .6rem; margin-left: -.75rem; border-radius: 10px; color: #fff; text-decoration: none; transition: background-color .2s; }
.wh-mnav__sub a:hover { background: rgba(255, 255, 255, .06); }
.wh-mnav__sub b { display: block; font-size: 1.0625rem; font-weight: 600; line-height: 1.3; }
.wh-mnav__sub a span { display: block; margin-top: .15rem; font-size: .8125rem; line-height: 1.4; color: var(--fog); }
.wh-mnav__sub li.is-current b { text-decoration: underline 2px var(--orange); text-underline-offset: .2em; text-decoration-skip-ink: none; }
.wh-mnav__sub li.is-current a span { margin-top: .35rem; }
@media (min-width: 640px) { .wh-mnav__sub ul.is-long { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* the foot: the quote button, then two quiet rows (the report; the socials and the office), so the menu stays the weight */
.wh-mnav__foot { display: grid; margin-top: auto; padding-top: 2rem; }
.wh-mnav__foot > * { margin: 0; }
.wh-mnav__cta { display: flex; align-items: center; justify-content: center; gap: .6rem; margin-bottom: .75rem !important; padding: .85rem 1.3rem; border-radius: 999px; background: var(--orange); color: var(--ink); font-size: 1rem; font-weight: 600; text-decoration: none; transition: background-color .2s; }
.wh-mnav__cta:hover { background: var(--ember); }
.wh-mnav__cta span { transition: transform .25s var(--ease); }
.wh-mnav__cta:hover span { transform: translateX(3px); }
.wh-mnav__htr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 1rem; row-gap: .2rem; padding: .9rem 0; border-top: 1px solid rgba(255, 255, 255, .09); color: #fff; text-decoration: none; }
.wh-mnav__htr-k { grid-column: 1; font-family: var(--mono); font-size: .625rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fog); }
.wh-mnav__htr-lead { grid-column: 1; min-width: 0; font-size: .9375rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wh-mnav__htr-lead b { margin-left: .35rem; font-family: var(--mono); font-weight: 500; color: var(--ember); }
/* "Read the report" stays the link's words; what shows is the menu's own round arrow */
.wh-mnav__htr-go { grid-column: 2; grid-row: 1 / span 2; position: relative; width: 2.1rem; height: 2.1rem; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .18); font-size: 0; color: transparent; transition: border-color .25s, transform .35s cubic-bezier(.2, .7, .2, 1); }
.wh-mnav__htr-go::after { content: "→"; position: absolute; inset: 0; display: grid; place-items: center; font-size: .9375rem; color: #fff; }
.wh-mnav__htr:hover .wh-mnav__htr-go { border-color: rgba(255, 255, 255, .45); transform: translateX(3px); }
.wh-mnav__where { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.25rem; padding-top: .9rem; border-top: 1px solid rgba(255, 255, 255, .09); }
.wh-mnav__address { margin: 0; font-size: .8125rem; line-height: 1.45; color: var(--fog); text-align: right; }
.wh-mnav__address .wh-footer-contacts__k { display: none; }
.wh-mnav__address a { color: inherit; text-decoration: none; }
.wh-mnav .wp-block-social-links { display: flex; gap: .25rem; margin: 0 0 0 -.5rem; padding: 0; list-style: none; }
.wh-mnav .wp-social-link { margin: 0; border-radius: 50%; background: none; }
.wh-mnav .wp-social-link a { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border-radius: 50%; color: var(--fog); transition: color .2s, background-color .2s; }
.wh-mnav .wp-social-link a:hover { color: #fff; background: rgba(255, 255, 255, .06); }
.wh-mnav .wp-social-link svg { width: 17px; height: 17px; fill: currentColor; }
@media (max-width: 389px) { .wh-mnav__address { text-align: left; } }
@media (min-width: 640px) { .wh-mnav__cta { justify-self: start; min-width: 22rem; } }
/* the rows arrive one after another */
.wh-mnav__item, .wh-mnav__foot > * { opacity: 0; transform: translateY(16px); transition: opacity .45s ease, transform .55s cubic-bezier(.2, .7, .2, 1); }
.wh-mnav.is-open :is(.wh-mnav__item, .wh-mnav__foot > *) { opacity: 1; transform: none; transition-delay: calc(.18s + var(--i, 0) * .045s); }
.wh-mnav.is-closing :is(.wh-mnav__item, .wh-mnav__foot > *) { transition-duration: .2s; transition-delay: 0s; }
@media (prefers-reduced-motion: reduce) {
	.wh-mnav__inner { clip-path: none !important; transition: none; }
	.wh-mnav__item, .wh-mnav__foot > * { opacity: 1; transform: none; transition: none; }
}

/* Report side card: the way to the national team as one quiet strip (what you'll get, and an arrow) */
.wh-tort__metrics .wh-tort__ask-note { color: #4b5167; font-size: .9375rem; line-height: 1.55; }
.wh-tort__metrics * + .wh-tort__ask-note { margin-top: 1.25rem !important; padding-top: 1.1rem; border-top: 1px solid var(--line-light); }
.wh-tort__metrics .wh-tort__ask { margin-top: .9rem !important; }
.wh-tort__ask .wp-block-button__link { display: inline-flex; align-items: center; gap: .1rem; }
/* the ask: an outline button sized to its words under its note, not a full-width one competing with the scores */
.wh-tort__ask .is-style-wh-ghost .wp-block-button__link { gap: .45rem; padding: .7rem 1.3rem; font-size: .9375rem; }
/* a narrow score card (phones, small tablets): the label keeps to one line */
.wh-tort__ask { container-type: inline-size; }
@container (max-width: 270px) { .wh-tort__ask .wp-block-button__link { padding-inline: .75rem; font-size: .875rem; white-space: nowrap; } }
.wh-tort__ask .wp-block-button__link::after { content: "→"; transition: transform .25s var(--ease); }
.wh-tort__ask .wp-block-button__link:hover::after { transform: translateX(3px); }

/* Video player (our own files, in the lightbox): a big play button while paused; a glass bar with play/pause,
   time, an orange scrubber (with what's loaded behind it), mute and full screen; the bar fades out while watching */
.wh-player { position: absolute; inset: 0; overflow: hidden; background: #000; color: #fff; outline: none; --ui: rgba(10, 15, 30, .55); }
.wh-lightbox__frame .wh-player video, .wh-player video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #000; cursor: pointer; }
.wh-player.is-idle, .wh-player.is-idle video { cursor: none; }
.wh-player::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 38%; background: linear-gradient(180deg, transparent, rgba(5, 8, 20, .75)); pointer-events: none; transition: opacity .35s; }
.wh-player__big { position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; place-items: center; width: clamp(64px, 9vw, 92px); aspect-ratio: 1; padding: 0; border: 0; border-radius: 50%; background: var(--orange); color: var(--ink); box-shadow: 0 0 0 10px rgba(227, 154, 78, .2), 0 20px 50px -10px rgba(0, 0, 0, .7); transform: translate(-50%, -50%) scale(.85); opacity: 0; pointer-events: none; cursor: pointer; transition: opacity .3s, transform .35s cubic-bezier(.2, .7, .2, 1), background-color .2s; }
.wh-player__big svg { width: 38%; height: 38%; margin-left: 6%; fill: currentColor; }
.wh-player.is-paused:not(.is-loading) .wh-player__big { opacity: 1; transform: translate(-50%, -50%); pointer-events: auto; }
.wh-player__big:hover { background: var(--ember); }
.wh-player__spin { position: absolute; left: 50%; top: 50%; z-index: 2; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .15); border-top-color: var(--orange); opacity: 0; animation: wh-spin .8s linear infinite; transition: opacity .2s; pointer-events: none; }
.wh-player.is-loading .wh-player__spin { opacity: 1; }
@keyframes wh-spin { to { transform: rotate(360deg); } }
.wh-player__bar { position: absolute; left: clamp(.5rem, 1.5vw, 1rem); right: clamp(.5rem, 1.5vw, 1rem); bottom: clamp(.5rem, 1.5vw, 1rem); z-index: 3; display: flex; align-items: center; gap: clamp(.35rem, 1vw, .75rem); padding: .4rem .65rem .4rem .4rem; border-radius: 999px; background: var(--ui); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); transition: opacity .35s, transform .35s cubic-bezier(.2, .7, .2, 1); }
.wh-player.is-idle:not(.is-paused) .wh-player__bar { opacity: 0; transform: translateY(8px); pointer-events: none; }
.wh-player.is-idle:not(.is-paused)::after { opacity: 0; }
.wh-player__btn { display: grid; place-items: center; flex: none; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer; transition: background-color .2s, color .2s; }
.wh-player__btn:hover, .wh-player__btn:focus-visible { background: rgba(255, 255, 255, .14); }
.wh-player__btn svg { width: 20px; height: 20px; fill: currentColor; }
.wh-player__toggle { background: #fff; color: var(--ink); }
.wh-player__toggle:hover, .wh-player__toggle:focus-visible { background: var(--orange); color: var(--ink); }
.wh-player__toggle svg { width: 18px; height: 18px; }
.wh-player.is-paused .wh-player__toggle svg:last-child, .wh-player:not(.is-paused) .wh-player__toggle svg:first-child { display: none; }
.wh-player.is-muted .wh-player__mute svg:first-child, .wh-player:not(.is-muted) .wh-player__mute svg:last-child { display: none; }
.wh-player__time { flex: none; display: inline-flex; gap: .3rem; font-family: var(--mono); font-size: .75rem; letter-spacing: .02em; color: var(--mist); font-variant-numeric: tabular-nums; }
.wh-player__time b { font-weight: 500; color: #fff; }
.wh-player__time i { font-style: normal; opacity: .5; }
.wh-player__track { position: relative; flex: 1; min-width: 60px; height: 22px; cursor: pointer; touch-action: none; outline: none; }
.wh-player__track::before, .wh-player__buf, .wh-player__fill { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 4px; margin-top: -2px; border-radius: 4px; transform-origin: left; transition: height .2s, margin-top .2s; }
.wh-player__track::before { background: rgba(255, 255, 255, .18); }
.wh-player__buf { background: rgba(255, 255, 255, .28); transform: scaleX(0); }
.wh-player__fill { background: linear-gradient(90deg, var(--orange), var(--ember)); transform: scaleX(0); }
.wh-player__track:hover :is(.wh-player__buf, .wh-player__fill), .wh-player__track:hover::before, .wh-player.is-seeking .wh-player__track :is(.wh-player__buf, .wh-player__fill), .wh-player__track:focus-visible::before { height: 6px; margin-top: -3px; }
.wh-player__knob { position: absolute; top: 50%; left: 0; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(227, 154, 78, .45), 0 2px 6px rgba(0, 0, 0, .4); transform: scale(0); transition: transform .2s cubic-bezier(.2, .7, .2, 1); pointer-events: none; }
.wh-player__track:hover .wh-player__knob, .wh-player.is-seeking .wh-player__knob, .wh-player__track:focus-visible .wh-player__knob { transform: scale(1); }
@media (max-width: 560px) { .wh-player__time span, .wh-player__time i { display: none; } .wh-player__btn { width: 34px; height: 34px; } .wh-player__big { width: 56px; box-shadow: 0 0 0 6px rgba(227, 154, 78, .2), 0 12px 30px -8px rgba(0, 0, 0, .7); } }
@media (prefers-reduced-motion: reduce) { .wh-player__spin { animation-duration: 2s; } }

/* Visiting Nashville: each person's picks. Portrait with a badge for the kind of pick, their line, pinned on the left;
   the places as numbered cards (address, note, directions) on the right; each person in their own accent */
.wh-nash { --acc: #bc7020; --wash: rgba(227, 154, 78, .12); --icon: url("../images/icons/coffee.svg"); align-items: flex-start !important; }
.wh-nash--meal { --acc: #c2413b; --wash: rgba(194, 65, 59, .1); --icon: url("../images/icons/meal.svg"); }
.wh-nash--glass { --acc: #5b6ed8; --wash: rgba(91, 110, 216, .1); --icon: url("../images/icons/glass.svg"); }
.wh-nash--bag { --acc: #17897f; --wash: rgba(31, 168, 156, .1); --icon: url("../images/icons/bag.svg"); }
.wh-host { display: flex; flex-direction: column; gap: .75rem; }
.wh-host > * { margin: 0 !important; }
@media (min-width: 782px) { .wh-host { position: sticky; top: calc(var(--wh-nav-h, 76px) + 56px + 2rem); } }
.wh-host__face { position: relative; width: 132px; margin-bottom: .75rem !important; }
.wh-host__face > * { margin: 0 !important; }
.wh-host__photo img, .wh-host__initials { display: grid; place-items: center; width: 132px; height: 132px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; box-shadow: 0 0 0 5px #fff, 0 0 0 6px var(--line-light), 0 24px 40px -22px rgba(10, 15, 30, .55); }
.wh-host__photo img { filter: grayscale(1); transition: filter .5s; }
.wh-nash:hover .wh-host__photo img { filter: grayscale(0); }
.wh-host__initials { background: radial-gradient(80% 90% at 80% 0%, rgba(80, 101, 172, .45), transparent 70%), linear-gradient(160deg, #1a2342, #0a0f1e 80%); font-family: var(--serif); font-style: italic; font-size: 2.75rem; color: var(--tan, #d8c3a5); }
.wh-host__face::before { content: ""; position: absolute; z-index: 1; right: -4px; bottom: -4px; width: 46px; height: 46px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 0 4px #fff, 0 10px 20px -8px rgba(10, 15, 30, .5); }
.wh-host__face::after { content: ""; position: absolute; z-index: 2; right: 8px; bottom: 8px; width: 22px; height: 22px; background: #fff; -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.wh-host__k { display: flex; align-items: center; gap: .6rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--acc); }
.wh-host__k span { font-family: var(--serif); font-style: italic; font-size: 1.5rem; letter-spacing: 0; text-transform: none; line-height: 1; }
.wh-host__name { font-size: clamp(2rem, 3.4vw, 3rem) !important; line-height: 1.02; letter-spacing: -.035em; }
.wh-host__line { font-family: var(--serif); font-style: italic; font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.3; color: #4b5167; max-width: 22ch; }
.wh-places { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.wh-places > * { margin: 0 !important; }
.wh-place { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: 1.4rem 1.4rem 1.2rem; border-radius: var(--r-l); background: #fff; box-shadow: inset 0 0 0 1px var(--line-light), 0 22px 40px -32px rgba(10, 15, 30, .4); overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s; }
.is-style-section-white .wh-place { background: var(--paper); }
.wh-place::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--acc); transform: scaleX(.18); transform-origin: left; transition: transform .45s var(--ease); }
.wh-place:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--acc) 35%, transparent), 0 30px 50px -30px rgba(10, 15, 30, .45); }
.wh-place:hover::before { transform: scaleX(1); }
.wh-place > * { margin: 0 !important; }
.wh-place__n { font-family: var(--serif); font-style: italic; font-size: 1.375rem; line-height: 1; color: var(--acc); }
.wh-place__name { font-size: 1.3125rem !important; line-height: 1.2; letter-spacing: -.015em; }
.wh-place__addr { position: relative; padding-left: 1.2rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .04em; line-height: 1.5; color: #6b7187; }
.wh-place__addr::before { content: ""; position: absolute; left: 0; top: .15em; width: .85rem; height: .85rem; background: currentColor; -webkit-mask: url("../images/icons/pin.svg") center / contain no-repeat; mask: url("../images/icons/pin.svg") center / contain no-repeat; }
.wh-place__addr span { display: block; color: var(--acc); }
.wh-place__note { margin-top: .25rem !important; font-size: .9375rem; line-height: 1.6; color: #33384d; }
.wh-place__go { margin-top: auto !important; padding-top: .75rem; }
.wh-place__go a { display: inline-flex; align-items: center; gap: .4rem; font-size: .8125rem; font-weight: 600; color: var(--ink); text-decoration: none; }
.wh-place__go a::after { content: "↗"; display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--wash); color: var(--acc); font-size: .8125rem; transition: background-color .2s, color .2s, transform .2s; }
.wh-place__go a:hover::after { background: var(--acc); color: #fff; transform: translate(1px, -1px); }
@media (max-width: 1099px) { .wh-places { grid-template-columns: 1fr; } }
@media (max-width: 781px) { .wh-host { flex-direction: column; } .wh-host__face { width: 104px; } .wh-host__photo img, .wh-host__initials { width: 104px; height: 104px; } .wh-host__line { max-width: none; } .wh-places { grid-template-columns: 1fr; } }
@media (min-width: 600px) and (max-width: 781px) { .wh-places { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* an odd one out takes the whole row, so no card sits beside a gap */
@media (min-width: 600px) { .wh-places > .wh-place:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 782px) and (max-width: 1099px) { .wh-places > .wh-place:last-child:nth-child(odd) { grid-column: auto; } }

/* ======================================================================
   Responsive pass (audit at 26 widths, 320–2560)
   ====================================================================== */
/* Heroes with a visual stack below 1024px: side by side, the visual squeezed its contents (tort names one letter wide) */
@media (max-width: 1023px) {
	.wh-hero > .wp-block-columns { flex-wrap: wrap !important; }
	.wh-hero > .wp-block-columns > .wp-block-column { flex-basis: 100% !important; flex-grow: 1; }
	.wh-hero > .wp-block-columns > .wp-block-column + .wp-block-column { max-width: none; }
}
/* hero figures: four across, two by two on phones */
.wh-hero-metrics { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem clamp(1rem, 2.5vw, 2rem) !important; }
.wh-hero-metrics > .wp-block-column { flex: none !important; width: auto !important; min-width: 0; margin: 0 !important; }
@media (max-width: 600px) { .wh-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wh-score__name, .wh-score__name a { overflow-wrap: normal; word-break: normal; hyphens: none; }
/* footer: intro over the form below 1024px (side by side, the emails ran into the form) */
@media (max-width: 1023px) {
	.wh-footer-cta { flex-wrap: wrap !important; }
	.wh-footer-cta > .wp-block-column { flex-basis: 100% !important; }
	.wh-footer-cta > .wp-block-column:first-child .wh-footer-quote { margin-top: var(--wp--preset--spacing--50) !important; padding-top: 0; }
}
.wh-footer-contacts a { overflow-wrap: anywhere; }
/* report card headers: the date drops under the label rather than squeezing it */
.wh-htr__bar { flex-wrap: wrap; row-gap: .25rem; }
.wh-htr__bar > :first-child { white-space: nowrap; }
/* launch stages on the smallest phones */
@media (max-width: 420px) {
	.wh-stage__body { padding: 1.25rem 1rem; }
	.wh-stage__side { padding: .85rem 1rem; gap: .6rem; }
	.wh-stage__label { font-size: .6875rem; letter-spacing: .1em; white-space: normal; }
	.wh-pill { padding: .6rem 1rem; font-size: .875rem; }
	.wh-pill--q { padding: .75rem 1.1rem; font-size: 1rem; }
	.wh-pill--wide { min-width: 0; }
	.wh-flow__row { gap: .4rem; padding-left: .75rem; }
	.wh-flow__opts { gap: .5rem; }
	.wh-flow__opt { width: 3.75rem; height: 3.75rem; font-size: .875rem; }
	.wh-flow, .wh-flow__branch, .wh-flow__row { max-width: 100%; }
}
/* the native audio player has a minimum width; let the card hold it on small phones */
.wh-audio-card { min-width: 0; max-width: 100%; }
@media (max-width: 420px) { .wh-audio-card { padding: 1rem .75rem; } .wh-audio-card audio { min-width: 0; } }
/* forms: the submit button runs the full width on phones */
/* AI demo label: two words that shouldn't break */
.wh-ai-demo__label { flex-wrap: wrap; gap: .25rem 1rem; }
.wh-ai-demo__label > * { white-space: nowrap; }
/* tenure: 10px is the smallest type on the site */
.wh-person__tenure { font-size: .625rem !important; }
/* footer links: a comfortable tap height on phones */
@media (max-width: 781px) { .wh-footer .wh-footer__nav .wp-block-list a { display: inline-block; padding-block: .35rem; } .wh-footer .wh-footer__nav .wp-block-list li { margin: 0; } }
/* contact details (in the column beside the form): two by two, each row's labels and values level with each other
   (a label that wraps pushes its row's values down together); one column on phones */
.wh-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; row-gap: .35rem !important; column-gap: 1.5rem !important; }
.wh-contact > .wh-contact__item { display: grid; grid-template-rows: subgrid; grid-row: span 2; align-content: start; margin-bottom: 1.1rem !important; }
.wh-contact__item > * { margin: 0 !important; }
.wh-contact__item > .wh-contact__k { align-self: end; }
@media (max-width: 520px) { .wh-contact { grid-template-columns: 1fr; } }
.wh-contact a { overflow-wrap: normal; word-break: normal; white-space: nowrap; }
.wh-contact__item a[href*="maps"] { white-space: normal; }
/* the quote form's button on the smallest phones: one line */
@media (max-width: 400px) { .wh-form .gravity-theme .gform_footer :is(button, input[type=submit]), .wh-form.wh-form--dark .gravity-theme .gform_footer :is(button, input[type=submit]) { width: 100% !important; padding-inline: .75rem !important; font-size: .875rem !important; } }
.wh-firms--logos .wh-firms__track { animation-duration: 95s; } /* a touch slower: logos should drift, not scroll */
/* short screens (phones on their side): smaller menu rows so more of the menu fits at once */
@media (max-height: 560px) {
	.wh-mnav__top { font-size: clamp(1.375rem, 6vh, 1.875rem); padding-block: .7rem; }
	.wh-mnav__list { margin-top: .5rem; }
	.wh-mnav__n { margin-top: .35em; }
	.wh-mnav__plus, .wh-mnav__go { width: 2.1rem; height: 2.1rem; }
}

/* Our Culture benefits: one warm panel in the site's own language (mono labels, orange accents, white tiles);
   three sets, one row each on a wide screen; the tiles arrive one after another */
.wh-perk-sets {
	position: relative; isolation: isolate; overflow: hidden; display: grid; gap: clamp(1.75rem, 3vw, 2.5rem);
	padding: clamp(1.5rem, 4vw, 3.25rem); border-radius: var(--r-l); color: var(--ink);
	background: radial-gradient(55% 70% at 100% 0%, rgba(227, 154, 78, .14), transparent 70%), radial-gradient(45% 60% at 0% 100%, rgba(80, 101, 172, .08), transparent 70%), var(--paper);
	box-shadow: inset 0 0 0 1px var(--line-light);
}
.wh-perk-sets > * { margin: 0 !important; }
.wh-perk-set { display: grid; gap: 1rem; }
.wh-perk-set > * { margin: 0 !important; }
.wh-perk-set__head { display: flex; align-items: center; gap: .75rem; }
.wh-perk-set__head span { display: inline-flex; align-items: center; gap: .65rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rust); white-space: nowrap; }
.wh-perk-set__head span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(227, 154, 78, .18); }
.wh-perk-set__head::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(188, 112, 32, .35), var(--line-light) 35%); }
.wh-perk-sets .wh-perks { --cols: 6; justify-content: flex-start; gap: .75rem; }
.wh-perk-sets .wh-perks > .wh-perk { flex: 0 0 calc((100% - (var(--cols) - 1) * .75rem) / var(--cols)); display: flex; flex-direction: column; gap: 1rem; margin: 0 !important; padding: 1.15rem 1.1rem 1.25rem; border: 0; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line-light), 0 14px 30px -24px rgba(10, 15, 30, .35); transition: transform .35s var(--ease), background-color .35s, box-shadow .35s; }
.wh-perk-sets .wh-perk > * { margin: 0 !important; }
.wh-perk-sets .wh-perk p { font-size: .9375rem; font-weight: 600; line-height: 1.35; color: var(--ink); }
.wh-perk-sets .wh-perk .wh-card-icon { width: 44px; height: 44px; margin: 0 !important; }
.wh-perk-sets .wh-perk .wh-card-icon img { width: 44px !important; height: 44px !important; padding: 11px; border-radius: 50%; background: rgba(227, 154, 78, .1) !important; box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .35), 0 6px 16px -8px rgba(188, 112, 32, .5) !important; transition: background-color .3s, filter .3s, transform .4s cubic-bezier(.2, .7, .2, 1); }
.wh-perk-sets .wh-perks > .wh-perk:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px rgba(188, 112, 32, .35), 0 24px 40px -26px rgba(188, 112, 32, .55); }
.wh-perk-sets .wh-perk:hover .wh-card-icon img { background: var(--orange) !important; filter: brightness(0); transform: scale(1.06); }
@media (min-width: 1200px) { .wh-perk-sets .wh-perks > .wh-perk { flex-grow: 1; } }
@media (max-width: 1199px) { .wh-perk-sets .wh-perks { --cols: 4; } }
@media (max-width: 781px) { .wh-perk-sets .wh-perks { --cols: 3; } }
@media (max-width: 560px) {
	.wh-perk-sets .wh-perks { --cols: 1; gap: .5rem; }
	.wh-perk-sets .wh-perks > .wh-perk { flex-direction: row; align-items: center; gap: .9rem; padding: .7rem .9rem; }
	.wh-perk-sets .wh-perk .wh-card-icon, .wh-perk-sets .wh-perk .wh-card-icon img { width: 38px !important; height: 38px !important; }
	.wh-perk-sets .wh-perk .wh-card-icon img { padding: 9px; }
}
@keyframes wh-perk-in { from { opacity: 0; transform: translateY(14px); } }
.wh-perk-sets.is-visible .wh-perk { animation: wh-perk-in .6s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(var(--s, 0) * .16s + var(--n, 0) * .05s); }
.wh-perk-set--health { --s: 1; } .wh-perk-set--money { --s: 2; }
.wh-perk:nth-child(2) { --n: 1; } .wh-perk:nth-child(3) { --n: 2; } .wh-perk:nth-child(4) { --n: 3; } .wh-perk:nth-child(5) { --n: 4; } .wh-perk:nth-child(6) { --n: 5; }
@media (prefers-reduced-motion: reduce) { .wh-perk-sets.is-visible .wh-perk { animation: none; } }
.wh-perk-sets .wh-perk .wh-card-icon { flex: none; }
/* small laptops (1024–1179px): the nav a little tighter so it keeps clear of the logo */
@media (min-width: 1024px) and (max-width: 1179px) {
	.wh-header .wp-block-navigation .wp-block-navigation__container { gap: .15rem; }
	.wh-header .wp-block-navigation__container > .wp-block-navigation-item { padding-inline: .75rem; }
	.wh-header .wh-header__cta { margin-left: .25rem; padding-left: 1rem; }
}

/* 404: everything on the wide column's left edge like the other heroes; the main sections as quick links */
.wh-404__inner > * { margin: 0 !important; max-width: 760px; }
.wh-404__inner > * + * { margin-top: 1.5rem !important; }
.wh-404__inner > h1 { max-width: none; }
.wh-404__links { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; max-width: none !important; margin-top: var(--wp--preset--spacing--70) !important; padding: 0; }
.wh-404__links li { margin: 0; }
.wh-404__links a { display: grid; gap: .3rem; height: 100%; padding: 1.1rem 1.2rem 1.2rem; border-radius: 14px; background: rgba(255, 255, 255, .04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); color: #fff; font-size: 1.0625rem; font-weight: 600; text-decoration: none; transition: background-color .2s, box-shadow .2s, transform .25s var(--ease); }
.wh-404__links a span { font-family: var(--mono); font-size: .625rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ember); }
.wh-404__links a::after { content: "→"; justify-self: start; margin-top: .4rem; color: var(--fog); transition: transform .2s var(--ease), color .2s; }
.wh-404__links a:hover { transform: translateY(-2px); background: rgba(255, 255, 255, .07); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .45); }
.wh-404__links a:hover::after { color: var(--ember); transform: translateX(3px); }
@media (max-width: 900px) { .wh-404__links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .wh-404__links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .wh-404__links li:last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* Criteria pop-up, side panel: the figures as a 2×2 grid of glass tiles (label over value, values level along each row) */
.wh-crit .wh-crit__stats { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .55rem !important; margin: 1.5rem 1.75rem 0; }
.wh-crit .wh-crit__stats .wh-tort-card__stat { display: flex !important; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: .55rem; min-width: 0; padding: .8rem .9rem .85rem !important; border: 0 !important; border-radius: 12px; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .09); }
.wh-crit .wh-crit__stats dt { flex: none; font-size: .5625rem !important; letter-spacing: .12em; line-height: 1.45; color: var(--fog); }
.wh-crit .wh-crit__stats dd { margin: 0; font-size: 1.0625rem !important; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; text-align: left; color: #fff; }
.wh-crit .wh-crit__stats .wh-tort-card__stat:first-child { background: linear-gradient(160deg, rgba(227, 154, 78, .2), rgba(227, 154, 78, .05)); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .35); }
.wh-crit .wh-crit__stats .wh-tort-card__stat:first-child dt { color: var(--ember); }
@media (max-width: 781px) { .wh-crit .wh-crit__stats { margin-inline: 1.25rem; } }
.wh-crit .wh-crit__stats .wh-tort-card__stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
/* the pop-up fits its criteria (between ~560px and the screen), rather than a fixed height with empty space */
@media (min-width: 782px) {
	.wh-crit { height: fit-content; min-height: min(480px, calc(100vh - 3rem)); max-height: min(780px, calc(100vh - 3rem)); } /* a popover sits at inset: 0, so plain auto would fill the screen */
	.wh-crit:popover-open { grid-template-rows: minmax(0, 1fr); }
}
/* one step needs no number or rail */
.wh-crit__steps:has(> .wh-crit__step:only-child) > .wh-crit__step { padding-left: 0; }
.wh-crit__steps:has(> .wh-crit__step:only-child) .wh-crit__n { display: none; }
.wh-crit__steps:has(> .wh-crit__step:only-child) .wh-crit__chips, .wh-crit__steps:has(> .wh-crit__step:only-child) .wh-crit__checks { margin-top: .9rem; }
.wh-crit__steps:has(> .wh-crit__step:only-child) .wh-crit__step > :first-child:not(.wh-crit__n) { margin-top: 0; }
/* the button sits at the panel's foot, never closer than 1.75rem to the figures above it */
.wh-crit__aside > .wh-crit__cta { margin-top: auto !important; }
.wh-crit__aside > :is(.wh-crit__stats, .wh-tort-card__note) { margin-bottom: 1.75rem !important; }

/* Stacked heroes (under 1024px): the visual runs the full content width, so it ends level with the text above it;
   photos and the studio film turn landscape so they don't tower over the page */
@media (max-width: 1023px) {
	.wh-svc-hero__stage > .wh-stage-photo img { aspect-ratio: 16 / 9; }
	.wh-hero .wp-block-cover.wh-panel { min-height: 0 !important; aspect-ratio: 16 / 9; }
	.wh-svc-hero__stage { min-height: 300px; }
}
@media (max-width: 600px) { .wh-hero .wp-block-cover.wh-panel { aspect-ratio: 4 / 3; } .wh-svc-hero__stage > .wh-stage-photo img { aspect-ratio: 4 / 3; } }
/* stacked heroes: the animated screens grow with the wider frame */
@media (min-width: 782px) and (max-width: 1023px) { .wh-svc-hero__stage { min-height: 400px; } .wh-svc-hero__stage > .wh-aiv { transform: scale(1.85); } .wh-svc-hero__stage > .wh-aiv--compact { transform: scale(1.6); } }
@media (min-width: 601px) and (max-width: 781px) { .wh-svc-hero__stage { min-height: 330px; } .wh-svc-hero__stage > .wh-aiv { transform: scale(1.5); } }
/* the studio film's caption stays below the page headline in size */
.wh-hero .wh-panel__title { font-size: clamp(1.75rem, 3vw, 2.5rem) !important; line-height: 1.05 !important; }

/* Story beside a picture (Our Culture "Work hard, play hard", Our New Home "A new chapter"): when the words run
   much longer than the picture, the picture starts level with them and stays in view while they're read */
@media (min-width: 782px) {
	:is(.wh-culture__story, .wh-sticky-media) { align-items: flex-start !important; }
	:is(.wh-culture__story, .wh-sticky-media) > .wp-block-column { align-self: flex-start !important; }
	:is(.wh-culture__story, .wh-sticky-media) > .wp-block-column:not(.wh-prose) { position: sticky; top: calc(var(--wh-nav-h, 76px) + 2rem); }
}

/* "Our intake team" (and any pair of people): once stacked, they start at the section's left edge */
@media (max-width: 781px) { .wh-team.wh-team--pair { margin-inline: 0 !important; } }

/* Three people beside the heading ("Your local team"): fill the row on tablets; a list of portrait rows on phones */
@media (max-width: 1199px) and (min-width: 782px) { .wh-crew-split .wh-crew.wh-crew--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.wh-crew-split .wh-crew, .wh-crew-split .wh-crew.wh-crew--n2, .wh-crew-split .wh-crew.wh-crew--n3 { grid-template-columns: 1fr !important; gap: .6rem; }
	.wh-crew-split .wh-crew--n3 > .wh-crew__card:last-child { grid-column: auto; justify-self: stretch; width: auto; }
	.wh-crew-split .wh-crew > .wh-crew__card { flex-direction: row !important; align-items: stretch; }
	.wh-crew-split .wh-crew .wh-crew__photo { width: 108px; aspect-ratio: auto; }
	.wh-crew-split .wh-crew .wh-crew__body { justify-content: center; padding: .9rem 1rem; gap: .3rem; }
	.wh-crew-split .wh-crew__name { font-size: 1.0625rem !important; }
	.wh-crew-split .wh-crew__more { margin-top: .2rem; padding-top: 0; }
}

/* Our Culture benefits: one row a set on wide screens; three across otherwise, the last row stretching to fill */
@media (min-width: 561px) and (max-width: 1199px) {
	.wh-perk-sets .wh-perks { --cols: 3; }
	.wh-perk-sets .wh-perks > .wh-perk { flex-grow: 1; }
}

/* The quote form's intro column: the quote and emails sit at the column's foot only where the column is wide enough
   to need it; on small laptops everything stacks from the top */
@media (min-width: 1024px) and (max-width: 1279px) {
	.wh-footer-cta .wh-footer-quote { margin-top: var(--wp--preset--spacing--50) !important; padding-top: 0; }
}

/* the chapter bar on phones: the full width for the chapters (the button is in the footer and menu anyway) */
@media (max-width: 781px) { .wh-subnav__cta, .wh-subnav .wp-block-buttons.wh-subnav__cta { display: none !important; } }

/* Visiting Nashville: addresses a size up on phones */
@media (max-width: 600px) { .wh-place__addr { font-size: .75rem; } }

/* Careers photo: on phones and tablets it lines up with the copy (the badge still overlaps its corner) */
@media (max-width: 781px) { .wh-careers__visual { margin: 0 0 1.5rem !important; } .wh-careers__visual .wh-gptw { left: auto; right: -.5rem; bottom: -1.25rem; } }
.wh-careers__photo { overflow: hidden; border-radius: var(--r-l); }
.wh-careers__photo img { transform: scale(1.015); } /* trims a light sliver along the source image's right edge */

/* Testimonials page: two columns from 700px, so lines stay a readable length */
@media (min-width: 700px) { .wh-quotes--grid:not(.wh-footer-quote) { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); } }

/* Footer links: the hover arrow floats beside the word instead of reserving space after it ("PPC & SEO") */
.wh-footer .wh-footer__nav .wp-block-list a { position: relative; }
.wh-footer .wh-footer__nav .wp-block-list a::after { position: absolute; left: 100%; top: 50%; margin: 0 0 0 .35rem !important; translate: 0 -50%; }

/* Eyebrows on small phones: a touch less tracking so short labels stay on one line */
@media (max-width: 480px) { .is-style-wh-eyebrow { letter-spacing: .1em; } }
@media (min-width: 1024px) and (max-width: 1279px) { .wh-contact__item p:not(.wh-contact__k) { font-size: .9375rem; } .wh-contact { column-gap: 1.25rem !important; } }
/* client logos at an even visual size (the height per logo comes from its shape; see the testimonials block) */
.wh-quote__logo[style*="--logo-h"] { height: var(--logo-h) !important; max-height: none !important; width: auto !important; max-width: 200px; }
/* Section heads with a heading left and an intro right: on small laptops the intro runs long, so both start at the top
   (bottom-aligned, the heading floated mid-air below a gap) */
@media (min-width: 782px) and (max-width: 1279px) { .wh-two-head { align-items: flex-start !important; } .wh-two-head > .wp-block-column { align-self: flex-start !important; } }
/* Numbered steps side by side: titles take the same height, so the copy under them starts level */
@media (min-width: 782px) and (max-width: 1279px) { .wh-steps > .wp-block-column > h3 { min-height: 2.1em; } }

/* Orbit (home hero), rebuilt so labels can never collide or leave the frame: both rings turn together at one speed
   (labels keep their places relative to each other), five a ring, the outer half a step round from the inner; rings
   pulled in (radius 25% and 39%) and labels sized with the orbit, so even the widest stays inside at every angle */
.wh-orbit { --dur-in: 120s; --dur-out: 120s; container-type: inline-size; }
.wh-orbit__ring--inner { inset: 25%; }
.wh-orbit__ring--outer { inset: 11%; animation-direction: normal; }
.wh-orbit__ring--outer li > b { animation-direction: normal; }
.wh-orbit__node { font-size: clamp(.625rem, 2cqi, .75rem) !important; padding: .55em .9em !important; letter-spacing: .1em !important; }
@media (max-width: 1023px) { .wh-orbit { max-width: 460px; } }
@media (max-width: 600px) {
	.wh-orbit { max-width: 360px; }
	.wh-hero--video .wh-orbit { transform: none; margin-block: 0; }
	.wh-orbit__ring--inner ul { display: none; } /* on phones the outer five carry it; the inner ring keeps its spokes */
}
@media (max-width: 600px) { .wh-orbit__ring--outer { inset: 13%; } .wh-orbit__node { letter-spacing: .06em !important; padding: .5em .75em !important; } }
/* Full-width video sections (home hero, "A good media buy is never static"): the same page gutter as every other section,
   not the cover block's own 1em, so their content starts on the logo's left edge at every width */
.wp-block-cover.alignfull { padding-left: 0 !important; padding-right: 0 !important; }
.wp-block-cover.alignfull > .wp-block-cover__inner-container { padding-left: var(--wp--style--root--padding-left) !important; padding-right: var(--wp--style--root--padding-right) !important; }

/* ---- Review fixes: home & national ---- */
/* National hero: the Hot Tort Report card goes under the copy until it has room for tort names on one line */
@media (min-width: 1024px) and (max-width: 1199px) {
	.wh-hero > .wp-block-columns:has(.wh-htr) { flex-wrap: wrap !important; }
	.wh-hero > .wp-block-columns:has(.wh-htr) > .wp-block-column { flex-basis: 100% !important; }
}
/* Tort pricing, three across: a last row of two shares the width (six-column grid, two each, three each at the end) */
@media (min-width: 860px) and (max-width: 1199px) {
	.wh-tort-pricing:not([data-view="list"]) .wh-tort-pricing__grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
	.wh-tort-pricing:not([data-view="list"]) .wh-tort-pricing__grid > li { grid-column: span 2; }
	.wh-tort-pricing:not([data-view="list"]) .wh-tort-pricing__grid > li:last-child:nth-child(3n + 2),
	.wh-tort-pricing:not([data-view="list"]) .wh-tort-pricing__grid > li:nth-last-child(2):nth-child(3n + 1) { grid-column: span 3; }
	.wh-tort-pricing:not([data-view="list"]) .wh-tort-pricing__grid > li:last-child:nth-child(3n + 1) { grid-column: 3 / span 2; }
}
/* a tort without published criteria: the same footer, asking the team */
a.wh-tort-card__btn { text-decoration: none; }
/* Four people on a tablet: two by two, not three and one */
@media (min-width: 601px) and (max-width: 899px) { .wh-crew.wh-crew--n4 { --per: 2; } }
/* "A good media buy is never static": the copy stays in view beside the stacked cards */
@media (min-width: 782px) {
	.wh-sticky-copy { align-items: flex-start !important; }
	.wh-sticky-copy > .wp-block-column:first-child { position: sticky; top: calc(var(--wh-nav-h, 76px) + 2rem); }
}
/* Home practice cards: a deeper shade behind the words, so they read over the brightest frames of the film */
.wh-panel .wp-block-cover__background { background: linear-gradient(0deg, rgba(10, 15, 30, .97) 10%, rgba(10, 15, 30, .78) 50%, rgba(10, 15, 30, .45) 100%) !important; }
.wh-panel .is-style-wh-eyebrow, .wh-panel .wh-panel__title { text-shadow: 0 1px 14px rgba(5, 8, 20, .65); }
/* Hero buttons on phones: full width, one above the other, the same size */
@media (max-width: 480px) {
	.wh-hero .wp-block-buttons { flex-direction: column; align-items: stretch !important; }
	.wh-hero .wp-block-buttons > .wp-block-button { width: 100%; }
	.wh-hero .wp-block-buttons .wp-block-button__link { display: flex; justify-content: center; width: 100%; }
}
/* Hot Tort Report edition pill: on phones the two parts stack inside a rounded box, not a stretched pill */
/* phones: the edition and data month on one line (a little smaller and tighter); only the narrowest stack them */
@media (max-width: 480px) { .wh-edition { gap: .4rem; padding-inline: .7rem; font-size: .6875rem; letter-spacing: .04em; } }
@media (max-width: 359px) { .wh-edition { border-radius: 14px; row-gap: .2rem; } .wh-edition__sep { display: none; } }
/* How the score works, on small laptops: one card per row (two across, the longest description ran five lines) */
@media (min-width: 782px) and (max-width: 1199px) { .wh-legend__grid { grid-template-columns: 1fr; } }
/* Report figures on phones: one tile per row so "$91 – $1,056" stays on one line */
.wh-tort__figures { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)) !important; } /* two tiles when they fit, else one per row */
.wh-tort__fig { white-space: nowrap; }
/* White Heart Legal: Kevin's portrait, once stacked, is a landscape crop rather than a full screen of photo */
@media (max-width: 781px) { .wh-founder-photo img { aspect-ratio: 4 / 3; object-position: 50% 18%; } }
/* the CTA band's points: one under another until there's room for all three on a line */
@media (max-width: 1279px) { .wh-cta-band__copy .wh-cta-band__points { flex-direction: column; } }
/* Launch process, the big rounded steps on phones: a softer corner and left-aligned text (centred four-line text in a full pill read as a blob) */
@media (max-width: 600px) { .wh-pills--big .wh-pill--big { border-radius: 22px; padding: 1rem 1.2rem; text-align: left; } }
/* founders film caption on phones: smaller, with a shade behind it */
@media (max-width: 600px) { .wh-founders__caption { font-size: .625rem !important; letter-spacing: .1em; text-shadow: 0 1px 10px rgba(5, 8, 20, .9); } }
@media (min-width: 860px) and (max-width: 1199px) {
	.wh-tort-pricing:not([data-view="list"]) .wh-tort-pricing__grid > li:is(:last-child:nth-child(3n + 2), :nth-last-child(2):nth-child(3n + 1)) .wh-tort-card__photo { aspect-ratio: 3 / 1; } /* 1.5× as wide, the same height */
}
/* Ranking rows on small laptops and tablets: a shorter bar so tort names keep to one line */
@media (min-width: 782px) and (max-width: 1199px) { .wh-score--row { grid-template-columns: 2rem 1fr minmax(48px, 22%) 2.75rem; gap: .75rem; } }
/* a small orbit, wherever it sits (phones, or the two-column hero on tablets): outer ring only, a little tighter */
@container (max-width: 420px) {
	.wh-orbit__ring--inner ul { display: none; }
	.wh-orbit__ring--outer { inset: 13%; }
	.wh-orbit__node { letter-spacing: .06em !important; padding: .5em .75em !important; }
}

/* ---- Review fixes: services & blog ---- */
/* card grids never end with a lone card: sets of three go three across from 700px; in two-column grids an odd last
   card takes the full row; three-across grids (from 1100px) share a short last row */
@media (min-width: 700px) { .wh-feature-grid--n3:not(.wh-feature-grid--two) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (min-width: 700px) { .wh-feature-grid--two > .wh-feature:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 700px) and (max-width: 1099px) { .wh-chapter-sec .wh-feature-grid:not(.wh-feature-grid--n3):not(.wh-feature-grid--n4) > .wh-feature:last-child:nth-child(odd) { grid-column: 1 / -1; } }
/* teams: five fill one row from 900px; two people, once stacked, fill the width */
@media (min-width: 900px) { .wh-crew.wh-crew--n5 { --per: 5; } }
@media (min-width: 601px) and (max-width: 781px) { .wh-crew-split .wh-crew.wh-crew--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
/* headings break evenly (no "team." alone on its last line) */
h1, h2, h3, .wh-svc-hero__team a, .wh-svc-hero__team p { text-wrap: balance; }
/* blog cards: the topic on one line, the date under it, so titles start level across a row */
.wh-post-card__meta { flex-direction: column !important; align-items: flex-start !important; gap: .3rem !important; min-width: 0; }
.wh-post-card__meta > * { max-width: 100%; }
.wh-post-card__meta .wp-block-post-terms { display: block !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1099px) { .wh-cta-band__action { justify-items: start; } } /* once the band stacks, the button and email line sit on the copy's left edge */
.wh-post-card__meta .wp-block-post-terms__separator { white-space: nowrap; } /* core lets the comma break the line */
.wp-block-post-template > li, .wh-post-card, .wh-post-card__meta { min-width: 0; } .wh-post-card__meta { width: 100%; } /* a long topic line is cut with … rather than widening the card */
.wh-post-card__meta .wp-block-post-terms a ~ * { display: none; } .wh-post-card__meta .wp-block-post-terms { letter-spacing: .1em; } /* a card shows its first topic */

/* ======================================================================
   Performance pass
   ====================================================================== */
/* Fallback fonts sized to the web fonts' widths (Raleway = 103% of Arial; Newsreader italic at heading sizes = 87% of
   Georgia italic, the size with the least layout shift when the font arrives late, measured on 11 pages: at 360 to
   412px 0.059 in all, at most 0.026 on one page, against 0.1 for Testimonials before; at 768 to 1920px 0.041 in all,
   at most 0.007) and given Newsreader's line
   metrics (ascent .735, descent .265 of the size, over the size-adjust), so text keeps its line breaks and height when
   the real font arrives instead of moving the page */
@font-face { font-family: "Newsreader Fallback"; src: local("Georgia Italic"), local("Georgia-Italic"); font-style: italic; font-weight: 100 900; size-adjust: 87%; ascent-override: 84.5%; descent-override: 30.5%; line-gap-override: 0%; }
@font-face { font-family: "Newsreader Fallback"; src: local("Georgia"); font-style: normal; font-weight: 100 900; size-adjust: 94.2%; ascent-override: 78%; descent-override: 28.1%; line-gap-override: 0%; }
@font-face { font-family: "Raleway Fallback"; src: local("Arial"), local("ArialMT"), local("Helvetica"); font-weight: 100 900; size-adjust: 103%; }
/* the testimonial quote marks use the serif italic the page already loads, not a 130 KB upright serif of their own */
.wh-quote::before, .wh-quote::after, figure.wh-quote::after, blockquote.wp-block-quote::before, blockquote.wp-block-quote::after { font-style: italic; }
/* the form's "(Required)" note is upright, so the italic sans isn't fetched for it on every page */
.gfield_required, .gfield_required_text { font-style: normal !important; }

/* First screen: hero content is never hidden waiting for JavaScript (on a slow phone that held the headline back for
   seconds); it eases up into place with CSS alone, without fading, so it paints at once */
@media (prefers-reduced-motion: no-preference) {
	@keyframes wh-rise { from { transform: translateY(14px); } }
	.js :is(.wh-hero, .wh-hero--video) .wh-reveal,
	.js :is(.wh-hero, .wh-hero--video) .wh-reveal-children > * { opacity: 1 !important; transform: none; transition: none; animation: wh-rise .7s var(--ease) both; }
	.js :is(.wh-hero, .wh-hero--video) .wh-reveal-children > :nth-child(2) { animation-delay: .06s; }
	.js :is(.wh-hero, .wh-hero--video) .wh-reveal-children > :nth-child(3) { animation-delay: .12s; }
	.js :is(.wh-hero, .wh-hero--video) .wh-reveal-children > :nth-child(n+4) { animation-delay: .18s; }
}
.js :is(.wh-hero, .wh-hero--video) :is(.wh-reveal, .wh-reveal-children > *) { opacity: 1 !important; }

/* the map paints its own placeholder until it is loaded (see front.js) */
.wh-map iframe:not([src]) { background: radial-gradient(60% 80% at 50% 50%, rgba(80, 101, 172, .18), transparent 70%), #121a33; }
/* the hero's broadcast rings are sized to the screen, not the hero: while the page streams in, the hero grows, and a
   layer sized from its height moved with it (counted as layout shift) */
.wh-hero::before { top: -25vh; bottom: auto; height: 150vh; }

/* ======================================================================
   Insights: article page and blog index (polish)
   ====================================================================== */
/* article hero: title and details left, the post's picture right */
.wh-post-hero .wh-post-hero__title { font-size: clamp(2.125rem, 4vw, 3.5rem) !important; line-height: 1.04; letter-spacing: -.035em; text-wrap: balance; }
.wh-post-hero__meta { gap: .5rem 1rem !important; align-items: center; font-family: var(--mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fog); }
.wh-post-hero__meta .wp-block-post-date { display: inline-flex; align-items: center; gap: 1rem; }
.wh-readtime { display: inline-flex; align-items: center; gap: 1rem; }
.wh-readtime::before { content: ""; width: 1px; height: .95em; background: currentColor; opacity: .45; }
.wh-post-hero__media .wp-block-post-featured-image { margin: 0; overflow: hidden; border-radius: var(--r-l); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .08); }
.wh-post-hero__media .wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wh-post-hero__media:not(:has(img)) { display: none; }
@media (max-width: 781px) { .wh-post-hero__media .wp-block-post-featured-image { aspect-ratio: 16 / 10 !important; } }

/* the article: a reading column; old posts' pictures float beside the text on wide screens, full width on phones */
.wh-article .wp-block-post-content { font-size: 1.125rem; line-height: 1.75; color: #2c3146; }
.wh-article .wp-block-post-content > * { max-width: 720px; }
.wh-article .wp-block-post-content :is(h2, h3) { clear: both; color: var(--ink); letter-spacing: -.02em; line-height: 1.15; margin-top: 2.75rem !important; }
.wh-article .wp-block-post-content h2 { font-size: clamp(1.625rem, 2.6vw, 2.125rem) !important; }
.wh-article .wp-block-post-content h3 { font-size: clamp(1.25rem, 2vw, 1.5rem) !important; }
.wh-article .wp-block-post-content a:not(.wp-element-button) { color: var(--rust); text-decoration: underline; text-decoration-color: rgba(188, 112, 32, .35); text-underline-offset: .2em; text-decoration-thickness: 1px; transition: text-decoration-color .2s; }
.wh-article .wp-block-post-content a:not(.wp-element-button):hover { text-decoration-color: currentColor; }
.wh-article .wp-block-post-content img { display: block; max-width: 100%; height: auto; border-radius: 14px; }
.wh-article .wp-block-post-content :is(img, figure).aligncenter { margin: 2rem auto; }
.wh-article .wp-block-post-content :is(img, figure).alignnone { margin: 2rem 0; }
@media (min-width: 782px) {
	.wh-article .wp-block-post-content :is(img, figure).alignright { float: right; width: min(46%, 340px); margin: .35rem 0 1.25rem 2rem; }
	.wh-article .wp-block-post-content :is(img, figure).alignleft { float: left; width: min(46%, 340px); margin: .35rem 2rem 1.25rem 0; }
}
@media (max-width: 781px) { .wh-article .wp-block-post-content :is(img, figure):is(.alignright, .alignleft) { width: 100%; margin: 1.5rem 0; } }
.wh-article .wp-block-post-content::after { content: ""; display: block; clear: both; }
.wh-article .wp-block-post-content blockquote { margin: 2rem 0; padding: .25rem 0 .25rem 1.5rem; border-left: 3px solid var(--orange); font-family: var(--serif); font-style: italic; font-size: 1.375rem; line-height: 1.5; color: var(--ink); }
.wh-article .wp-block-post-content strong { color: var(--ink); }
/* end of article: back to the list, and the quote button */
.wh-article__end { max-width: 720px; margin: var(--wp--preset--spacing--70) auto 0 !important; padding-top: 1.5rem; border-top: 1px solid var(--line-light); align-items: center; gap: 1rem !important; }
.wh-article__end > * { margin: 0 !important; }
.wh-article__end p a { font-weight: 600; color: var(--ink); text-decoration: none; }
.wh-article__end p a:hover { color: var(--rust); }

/* blog index: the lead post's words get a proper gutter from its picture */
/* screenshots (PNG thumbnails) sit whole on a white page instead of being cropped at both sides */
.wh-post-card .wp-block-post-featured-image img[src*=".png"], .wh-post-hero__media img[src*=".png"] { object-fit: contain !important; background: #fff; padding: .75rem; }
/* old posts: long pasted web addresses wrap, and embedded videos scale to the column */
.wh-article .wp-block-post-content { overflow-wrap: anywhere; }
.wh-article .wp-block-post-content iframe { display: block; max-width: 100%; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 14px; }

/* ---- Review fixes: services group one ---- */
/* headings pasted with <strong> inside them keep the heading's own weight (some card titles were blacker than others) */
:is(h1, h2, h3, h4, h5, h6) :is(strong, b) { font-weight: inherit; }
/* checklists beside a chapter title: one column until the column is wide enough for two short lines */
@media (max-width: 1279px) { .wh-chapter-split__body .wh-checks-panel:not(.wh-checks-panel--three) { grid-template-columns: 1fr; } }
/* every team on phones: portrait rows (two narrow cards side by side wrapped names and titles onto three lines) */
@media (max-width: 600px) {
	.wh-crew { --per: 1 !important; gap: .6rem !important; }
	.wh-crew > .wh-crew__card { flex-direction: row !important; align-items: stretch; }
	.wh-crew .wh-crew__photo { flex: none; width: 108px; aspect-ratio: auto !important; }
	.wh-crew .wh-crew__body { justify-content: center; padding: .9rem 1rem !important; gap: .3rem !important; }
	.wh-crew .wh-crew__name { font-size: 1.0625rem !important; }
	.wh-crew .wh-crew__more { margin-top: .2rem; padding-top: 0; }
}
/* one person under a left-aligned heading (stacked): on the heading's left edge, not floating in the middle */
@media (max-width: 781px) { .wh-crew-split .wh-crew.wh-crew--n1 { justify-content: start; } }
/* the case management platforms (Business Intelligence): logos on white tiles, four across */
.wh-platforms { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin-block: 1.25rem 1.5rem !important; }
.wh-platforms > * { margin: 0 !important; }
.wh-platforms .wp-block-image { display: grid; place-items: center; height: 72px; padding: .9rem 1.1rem; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line-light); }
.is-style-section-white .wh-platforms .wp-block-image { background: var(--paper); }
.wh-platforms img { display: block; width: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 480px) { .wh-platforms { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* sets of five or seven cards: three then two (seven: 3 + 2 + 2) from 900px; on tablets the first card leads full
   width and the rest pair up, so no set ends on a lone or stretched card */
@media (min-width: 700px) and (max-width: 899px) {
	.wh-chapter-sec .wh-feature-grid:is(.wh-feature-grid--n5, .wh-feature-grid--n7) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wh-chapter-sec .wh-feature-grid:is(.wh-feature-grid--n5, .wh-feature-grid--n7) > .wh-feature { grid-column: auto !important; }
	.wh-chapter-sec .wh-feature-grid:is(.wh-feature-grid--n5, .wh-feature-grid--n7) > .wh-feature:first-child { grid-column: 1 / -1 !important; }
}
@media (min-width: 900px) {
	.wh-chapter-sec .wh-feature-grid:is(.wh-feature-grid--n5, .wh-feature-grid--n7) { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
	.wh-chapter-sec .wh-feature-grid:is(.wh-feature-grid--n5, .wh-feature-grid--n7) > .wh-feature { grid-column: span 2 !important; }
	.wh-chapter-sec .wh-feature-grid:is(.wh-feature-grid--n5, .wh-feature-grid--n7) > .wh-feature:nth-child(n + 4) { grid-column: span 3 !important; }
}

/* ======================================================================
   Legal pages: numbered contents beside the text (sticky on wide screens, a fold-out list on phones),
   numbered section headings, ALL-CAPS notices as quiet panels, and the other legal pages at the foot
   ====================================================================== */
.wh-legal-hero__updated { display: inline-flex; align-items: center; gap: .55rem; width: fit-content; margin: 0 !important; padding: .45rem .95rem .45rem .8rem; border-radius: 999px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); font-family: var(--mono); font-size: .6875rem !important; letter-spacing: .12em; text-transform: uppercase; color: var(--mist); }
.wh-legal-hero__updated::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ember); box-shadow: 0 0 0 3px rgba(227, 154, 78, .2); }
.wh-legal-hero__updated p { margin: 0; }
.wh-legal { display: grid; grid-template-columns: minmax(0, 290px) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.wh-legal > * { margin: 0 !important; }
.wh-legal__toc { position: sticky; top: calc(var(--wh-nav-h, 76px) + 1.5rem); max-height: calc(100vh - var(--wh-nav-h, 76px) - 3rem); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.wh-legal__toc details { border-radius: var(--r-l); background: #fff; box-shadow: inset 0 0 0 1px var(--line-light), 0 24px 50px -36px rgba(10, 15, 30, .35); }
.wh-legal__toc summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; list-style: none; cursor: pointer; font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rust); }
.wh-legal__toc summary::-webkit-details-marker { display: none; }
.wh-legal__toc summary b { font-weight: 500; color: #8a90a4; letter-spacing: .08em; }
.wh-legal__toc ol { list-style: none; margin: 0; padding: 0 .6rem .8rem; counter-reset: none; }
.wh-legal__toc li { margin: 0; }
.wh-legal__toc a { display: grid; grid-template-columns: 1.75rem 1fr; gap: .4rem; padding: .5rem .65rem; border-radius: 10px; font-size: .875rem; font-weight: 500; line-height: 1.35; color: #4b5167; text-decoration: none; transition: background-color .2s, color .2s; }
.wh-legal__toc a span { padding-top: .1rem; font-family: var(--mono); font-size: .6875rem; color: #a3a8b8; }
.wh-legal__toc a:hover { background: var(--paper); color: var(--ink); }
.wh-legal__toc a.is-current { background: var(--paper); color: var(--ink); box-shadow: inset 2px 0 0 var(--orange); }
.wh-legal__toc a.is-current span { color: var(--rust); }
/* the text */
.wh-legal__body { max-width: 760px; font-size: 1.0625rem; line-height: 1.75; color: #2c3146; }
.wh-legal__body > * { margin: 0 0 1.15rem !important; }
.wh-legal__body h2 { display: flex; align-items: baseline; gap: .9rem; margin-top: 3rem !important; margin-bottom: 1rem !important; padding-top: 1.5rem; border-top: 1px solid var(--line-light); font-size: clamp(1.375rem, 2.2vw, 1.75rem) !important; line-height: 1.2; letter-spacing: -.02em; color: var(--ink); scroll-margin-top: calc(var(--wh-nav-h, 76px) + 1.5rem); }
.wh-legal__body > h2:first-child { margin-top: 0 !important; }
.wh-legal__n { flex: none; font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.125em; color: var(--orange); }
.wh-legal__body h3 { margin-top: 2rem !important; font-size: 1.125rem !important; color: var(--ink); }
.wh-legal__body a { color: var(--rust); text-decoration: underline; text-decoration-color: rgba(188, 112, 32, .35); text-underline-offset: .2em; overflow-wrap: anywhere; }
.wh-legal__body a:hover { text-decoration-color: currentColor; }
.wh-legal__body strong { color: var(--ink); }
.wh-legal__body ul[class="wp-block-list"] > li { margin-bottom: .5rem; }
.wh-legal__body .wh-legal-ol { list-style: none; counter-reset: wh-legal; display: grid; gap: .55rem; padding: 0 !important; }
.wh-legal__body .wh-legal-ol > li { position: relative; counter-increment: wh-legal; margin: 0; padding: .75rem 1rem .8rem 3.25rem; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line-light); font-size: 1rem; line-height: 1.6; }
.wh-legal__body .wh-legal-ol > li::before { content: counter(wh-legal, decimal-leading-zero); position: absolute; left: 1rem; top: .85rem; font-family: var(--mono); font-size: .75rem; font-weight: 500; color: var(--rust); }
.wh-legal-notice { padding: 1.1rem 1.25rem 1.15rem 1.35rem !important; border-left: 3px solid var(--orange); border-radius: 0 12px 12px 0; background: linear-gradient(90deg, rgba(227, 154, 78, .1), rgba(227, 154, 78, .02)); font-size: .9375rem !important; line-height: 1.65 !important; color: #33384d; }
/* the other legal pages */
.wh-legal-more__inner { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1rem 2.5rem; }
.wh-legal-more__inner > * { margin: 0 !important; }
.wh-legal-more__list { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: 0 !important; }
.wh-legal-more__list li { margin: 0; }
.wh-legal-more__list a { display: grid; gap: .25rem; height: 100%; padding: 1rem 1.15rem; border-radius: 14px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line-light); font-size: 1.0625rem; font-weight: 600; color: var(--ink); text-decoration: none; transition: box-shadow .2s, transform .25s var(--ease); }
.wh-legal-more__list a span { font-size: .8125rem; font-weight: 450; color: #6b7187; order: 2; }
.wh-legal-more__list a:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 1px rgba(188, 112, 32, .4); }
.wh-legal-more__list li.is-current a { background: var(--ink); color: #fff; box-shadow: none; }
.wh-legal-more__list li.is-current a span { color: var(--fog); }
.wh-legal-more__ask { grid-column: 2; font-size: .9375rem; color: #4b5167; }
.wh-legal-more__ask a { color: var(--rust); }
@media (max-width: 1023px) {
	.wh-legal { grid-template-columns: 1fr; gap: 2rem; }
	.wh-legal__toc { position: static; max-height: none; overflow: visible; }
	.wh-legal__toc details:not([open]) summary { border-radius: var(--r-l); }
	.wh-legal__toc ol { columns: 2; column-gap: .5rem; }
	.wh-legal__toc li { break-inside: avoid; }
	.wh-legal__body { max-width: none; }
	.wh-legal-more__inner { grid-template-columns: 1fr; }
	.wh-legal-more__ask { grid-column: auto; }
}
@media (max-width: 700px) {
	.wh-legal__toc ol { columns: 1; }
	.wh-legal-more__list { grid-template-columns: 1fr; }
	.wh-legal__body { font-size: 1rem; }
}
.wh-legal-hero .wp-block-post-title + .wh-legal-hero__updated { margin-top: 1.5rem !important; }
/* section labels (eyebrows): the text alone, no dot */
.is-style-wh-eyebrow::before, .wp-block-post-terms.is-style-wh-eyebrow::before { content: none !important; display: none !important; }
.is-style-wh-eyebrow { gap: 0; }
/* no status dots: the animated screens' labels, the Hot Tort Report "live" marker (ticker, ranking cards, phone menu) */
.wh-aiv__label::before, .wh-mnav__htr-k::before { content: none !important; display: none !important; }
.wh-htr__dot { display: none !important; }

/* No section numbering, and no remaining status dots (the pricing and legal "updated" chips, the benefit set names) */
.wh-legal__toc a { display: block; }
.wh-legal__body h2 { display: block; }
.wh-tort-pricing__updated::before, .wh-legal-hero__updated::before, .wh-perk-set__head span::before { content: none !important; display: none !important; }
.wh-tort-pricing__updated, .wh-legal-hero__updated { padding-left: .95rem !important; }
.wh-htr__title::before, .wh-founders__caption::before { content: none !important; display: none !important; }

/* ======================================================================
   Insights (blog and topic pages): the newest article in the header; a sticky topic bar with counts;
   a grid that never ends on a lone card; the whole card is the link; the Hot Tort Report to close
   ====================================================================== */
.wh-ins-hero__cols { align-items: center !important; }
/* the topic menu opens past the header's bottom edge, so the header doesn't clip; its rings stay inside it */
.wh-ins-hero { overflow: visible; z-index: 3; }
.wh-ins-hero::before { inset: 0 0 0 30%; height: auto; animation: none; }
.wh-ins-hero__text h1 { font-size: clamp(2.75rem, 5.5vw, 4.75rem) !important; line-height: .98; letter-spacing: -.045em; }
.wh-ins-hero__feature:not(:has(.wh-ins-feature)) { display: none; } /* later pages: the header is just the title, at full width */
.wh-ins-hero__cols:not(:has(.wh-ins-feature)) > .wh-ins-hero__text { flex-basis: 100% !important; }
.wh-ins-hero__cols:not(:has(.wh-ins-feature)) > .wh-ins-hero__text > :not(.wh-ins-topics) { max-width: 46rem; }
.wh-ins-hero__text .wp-block-term-description { margin-bottom: 0; }
.wh-ins-hero__text .wp-block-term-description p { margin: 0; }
/* the lead article */
.wh-ins-feature { margin: 0; }
.wh-ins-feature__link { display: grid; grid-template-rows: auto 1fr; overflow: hidden; border-radius: var(--r-l); background: rgba(255, 255, 255, .04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 50px 90px -50px rgba(0, 0, 0, .85); color: #fff; text-decoration: none; transition: transform .45s var(--ease), box-shadow .45s; }
.wh-ins-feature__img { position: relative; margin: 0; aspect-ratio: 16 / 8.5; overflow: hidden; }
.wh-ins-feature__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.wh-ins-feature__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(10, 15, 30, .55)); }
.wh-ins-feature__body { display: grid; align-content: start; gap: .6rem; padding: 1.4rem 1.6rem 1.6rem; }
.wh-ins-feature__body > * { margin: 0; }
.wh-ins-feature__k { display: flex; align-items: center; gap: .7rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ember); }
.wh-ins-feature__k { flex-wrap: wrap; row-gap: .45rem; }
.wh-ins-feature__k span { flex: none; padding: .3rem .6rem; border-radius: 999px; background: var(--orange); color: var(--ink); letter-spacing: .12em; }
.wh-ins-feature__title { font-size: clamp(1.5rem, 2.4vw, 2.125rem); line-height: 1.12; letter-spacing: -.025em; color: #fff; text-wrap: balance; }
.wh-ins-feature__excerpt { font-size: 1rem; line-height: 1.6; color: var(--mist); }
.wh-ins-feature__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .35rem !important; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .09); }
.wh-ins-feature__foot > * { margin: 0; }
.wh-ins-feature__go { flex: none; font-size: .875rem; font-weight: 600; color: var(--ember); }
.wh-ins-feature__go span { display: inline-block; margin-left: .2rem; transition: transform .25s var(--ease); }
.wh-ins-feature__link:hover .wh-ins-feature__go span { transform: translateX(4px); }
.wh-ins-feature__meta { font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fog); }
.wh-ins-feature__link:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .45), 0 60px 100px -50px rgba(0, 0, 0, .9); }
.wh-ins-feature__link:hover .wh-ins-feature__img img { transform: scale(1.04); }
@media (max-width: 781px) { .wh-ins-feature__body { padding: 1.2rem 1.2rem 1.4rem; } }

/* the grid: six tracks, three cards a row. A short row takes the width: two left over share the last row,
   one left over makes the first and last rows pairs (2, 3, 3, 2), and a lone article is one wide card */
.wh-insights-list { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: clamp(1rem, 2vw, 1.5rem) !important; }
.wh-insights-list > li { grid-column: span 2; margin: 0 !important; }
@media (min-width: 1024px) {
	.wh-insights-list > li:last-child:nth-child(3n + 2), .wh-insights-list > li:nth-last-child(2):nth-child(3n + 1),
	.wh-insights-list > li:first-child:nth-last-child(3n + 1), .wh-insights-list > li:nth-child(2):nth-last-child(3n),
	.wh-insights-list > li:last-child:nth-child(3n + 1), .wh-insights-list > li:nth-last-child(2):nth-child(3n) { grid-column: span 3; }
}
.wh-insights-list > li:only-child { grid-column: 1 / -1 !important; }
.wh-insights-list .wh-post-card > .wp-block-post-featured-image { align-self: stretch; }
.wh-insights-list .wp-block-post-featured-image img { width: 100% !important; }
/* a wide card's image is shorter, so its row stands about as tall as a row of three */
@media (min-width: 1024px) {
	.wh-insights-list > li:last-child:nth-child(3n + 2), .wh-insights-list > li:nth-last-child(2):nth-child(3n + 1),
	.wh-insights-list > li:first-child:nth-last-child(3n + 1), .wh-insights-list > li:nth-child(2):nth-last-child(3n),
	.wh-insights-list > li:last-child:nth-child(3n + 1), .wh-insights-list > li:nth-last-child(2):nth-child(3n) { --wh-card-ar: 2 / 1; }
	.wh-insights-list > li .wp-block-post-featured-image img { aspect-ratio: var(--wh-card-ar, 16 / 10) !important; }
}
@media (min-width: 782px) {
	.wh-insights-list > li:only-child .wh-post-card { display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-rows: auto auto 1fr; column-gap: clamp(1.5rem, 3vw, 2.5rem); align-content: center; }
	.wh-insights-list > li:only-child .wp-block-post-featured-image { grid-row: 1 / -1; }
	.wh-insights-list > li:only-child .wh-post-card > :not(.wp-block-post-featured-image) { grid-column: 2; }
	.wh-insights-list > li:only-child .wh-post-card__meta { align-self: end; padding-top: 1.5rem; }
}
@media (max-width: 1023px) {
	.wh-insights-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wh-insights-list > li { grid-column: auto; }
	.wh-insights-list > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 600px) { .wh-insights-list { grid-template-columns: 1fr !important; } .wh-insights-list > li:last-child:nth-child(odd) { grid-column: auto; } }
/* a topic with one article: it's the header card, so there's no grid */
.wh-ins-list-sec:not(:has(.wh-insights-list > li)) { display: none; }

/* the card: the whole card opens the article */
.wh-insights-list .wh-post-card { position: relative; gap: .55rem !important; padding-bottom: 1.35rem; }
.wh-insights-list .wh-post-card .wp-block-post-title { font-size: 1.1875rem !important; line-height: 1.28; text-wrap: balance; }
.wh-insights-list .wh-post-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.wh-insights-list .wh-post-card .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-size: .9375rem; line-height: 1.6; }
.wh-insights-list .wh-post-card .wp-block-post-featured-image { overflow: hidden; }
.wh-insights-list .wh-post-card .wp-block-post-featured-image img { transition: transform .9s var(--ease); }
.wh-insights-list .wh-post-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.wh-insights-list .wh-post-card:hover .wp-block-post-title a { color: var(--rust); }
.wh-post-card__date .wh-readtime { display: inline; }
.wh-post-card__date .wh-readtime::before { content: none; }
/* pagination */
.wh-ins-pagination { margin-top: var(--wp--preset--spacing--60) !important; gap: .4rem; }
/* the closing Hot Tort Report band */
.wh-ins-htr { margin-top: 0 !important; }
.wh-ins-htr .wh-htr { margin: 0; background: linear-gradient(180deg, #1b2440, var(--ink)); border-color: transparent; }

/* ======================================================================
   Insights finder: a topic menu and a search, in the header of the blog, topic and search pages
   ====================================================================== */
.wh-ins-hero__text .wh-ins-filter { margin-top: var(--wp--preset--spacing--50) !important; }
/* one bar: the topic menu on the left, a hairline, then the search; the arrow to search shows once there's a query */
.wh-ins-filter { position: relative; display: flex; align-items: stretch; width: 100%; max-width: 36rem; height: 3.25rem; border-radius: 999px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .15); transition: box-shadow .2s, background-color .2s; }
.wh-ins-filter:focus-within { background: rgba(255, 255, 255, .085); box-shadow: inset 0 0 0 1px rgba(227, 154, 78, .55); }
.wh-ins-filter__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wh-ins-filter__topics { position: relative; flex: 0 1 auto; min-width: 0; max-width: 46%; }
.wh-ins-filter__topics summary { display: flex; align-items: center; gap: .55rem; height: 100%; padding: 0 1rem 0 1.35rem; border-radius: 999px 0 0 999px; color: #fff; font-size: .9375rem; font-weight: 600; white-space: nowrap; list-style: none; cursor: pointer; transition: background-color .2s; }
.wh-ins-filter__topics summary::-webkit-details-marker { display: none; }
.wh-ins-filter__topics summary:hover, .wh-ins-filter__topics[open] summary { background: rgba(255, 255, 255, .06); }
.wh-ins-filter__v { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.wh-ins-filter__chev { flex: none; width: 12px; height: 12px; color: var(--fog); transition: transform .25s var(--ease); }
.wh-ins-filter__topics[open] .wh-ins-filter__chev { transform: rotate(180deg); }
.wh-ins-filter__menu { position: absolute; top: calc(100% + .5rem); left: 0; z-index: 40; min-width: 19rem; max-height: min(62vh, 27rem); overflow: auto; overscroll-behavior: contain; margin: 0; padding: .4rem; list-style: none; border-radius: 16px; background: #131a31; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12), 0 30px 60px -20px rgba(0, 0, 0, .85); }
.wh-ins-filter__menu li { margin: 0; }
.wh-ins-filter__menu a { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: .62rem .8rem; border-radius: 10px; color: var(--mist); font-size: .9375rem; line-height: 1.3; text-decoration: none; transition: background-color .15s, color .15s; }
.wh-ins-filter__menu a:hover, .wh-ins-filter__menu a:focus-visible { background: rgba(255, 255, 255, .07); color: #fff; outline: none; }
.wh-ins-filter__menu a[aria-current] { background: rgba(227, 154, 78, .13); color: #fff; font-weight: 600; }
.wh-ins-filter__menu b { flex: none; font-family: var(--mono); font-size: .6875rem; font-weight: 500; color: var(--fog); }
.wh-ins-filter__menu a[aria-current] b { color: var(--ember); }
.wh-ins-filter__menu li:first-child { padding-bottom: .3rem; margin-bottom: .3rem; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.wh-ins-filter__search { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; margin: 0; }
.wh-ins-filter__search::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 1.5rem; margin-top: -.75rem; background: rgba(255, 255, 255, .16); }
.wh-ins-filter__glass { flex: none; width: 16px; height: 16px; margin-left: 1.05rem; color: var(--fog); }
.wh-ins-filter__search input[type=search] { flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0 .7rem; border: 0; background: transparent; color: #fff; font: inherit; font-size: .9375rem; outline: none; -webkit-appearance: none; appearance: none; }
.wh-ins-filter__search input::placeholder { color: var(--fog); opacity: 1; }
.wh-ins-filter__search input::-webkit-search-cancel-button { display: none; }
.wh-ins-filter__search button { flex: none; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; margin-right: .375rem; padding: 0; border: 0; border-radius: 50%; background: var(--orange); color: var(--ink); cursor: pointer; transition: opacity .2s, transform .2s var(--ease), background-color .2s; }
.wh-ins-filter__search button svg { width: 15px; height: 15px; }
.wh-ins-filter__search button:hover { background: var(--ember); }
.wh-ins-filter__search input:placeholder-shown ~ button { opacity: 0; transform: scale(.8); pointer-events: none; }
@media (max-width: 480px) {
	.wh-ins-filter { flex-direction: column; height: auto; border-radius: 18px; }
	.wh-ins-filter__topics { max-width: none; }
	.wh-ins-filter__topics summary { height: 3rem; padding: 0 1.15rem; border-radius: 18px 18px 0 0; }
	.wh-ins-filter__chev { margin-left: auto; }
	.wh-ins-filter__search { height: 3rem; }
	.wh-ins-filter__search::before { left: 1rem; right: 1rem; top: 0; width: auto; height: 1px; margin: 0; }
	.wh-ins-filter__menu { right: 0; min-width: 0; }
}
/* search results */
.wh-ins-hero__text .wh-ins-count { margin-bottom: 0; }
.wh-ins-empty { max-width: 34rem; margin: 0 auto !important; padding: 2.5rem 0; text-align: center; font-size: 1.125rem; color: #4b5167; }
.wh-ins-empty a { color: var(--rust); }

/* ======================================================================
   Article: the text in a 720px column with its sections and share links in a rail to the left (from 1280px);
   on smaller screens the sections fold into a box above the text and the share links sit at the end
   ====================================================================== */
.wh-crumb-sep { margin: 0 .55em; opacity: .5; }
.wh-post-hero__terms a { color: inherit; text-decoration: none; }
.wh-post-hero__terms a:hover { color: #fff; }
.wh-article__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 720px) minmax(0, 1fr); column-gap: clamp(2rem, 4vw, 4.5rem); align-items: start; }
.wh-article__grid > .wp-block-post-content { grid-column: 2; grid-row: 1; margin: 0 !important; }
.wh-article .wp-block-post-content h2 { scroll-margin-top: calc(var(--wh-nav-h, 76px) + 1.5rem); }
.wh-article-rail { grid-column: 1; grid-row: 1; justify-self: end; position: sticky; top: calc(var(--wh-nav-h, 76px) + 2rem); width: min(100%, 15.5rem); max-height: calc(100vh - var(--wh-nav-h, 76px) - 4rem); overflow: auto; scrollbar-width: none; margin: 0 !important; }
.wh-toc details { margin: 0; }
.wh-toc summary { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; list-style: none; cursor: default; font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rust); }
.wh-toc summary::-webkit-details-marker { display: none; }
.wh-toc summary b { font-weight: 500; letter-spacing: .08em; color: #8a90a4; }
.wh-toc ol { margin: 0; padding: 0; list-style: none; border-left: 1px solid var(--line-light); }
.wh-toc li { margin: 0; }
.wh-toc a { display: block; margin-left: -1px; padding: .42rem 0 .42rem 1rem; border-left: 2px solid transparent; font-size: .875rem; font-weight: 500; line-height: 1.4; color: #5b6177; text-decoration: none; transition: color .2s, border-color .2s; }
.wh-toc a:hover { color: var(--ink); }
.wh-toc a.is-current { border-left-color: var(--orange); color: var(--ink); }
.wh-article-rail .wh-share { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--line-light); }
.wh-article-rail--share .wh-share { margin-top: 0; padding-top: 0; border-top: 0; }
.wh-share { display: grid; gap: .7rem; }
.wh-share__k { margin: 0; font-family: var(--mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: #8a90a4; }
.wh-share__list { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.wh-share__list li { margin: 0; }
.wh-share__list :is(a, button) { position: relative; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; padding: 0; border: 0; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px var(--line-light); color: #4b5167; cursor: pointer; transition: color .2s, box-shadow .2s, background-color .2s; }
.wh-share__list :is(a, button):hover { background: var(--ink); box-shadow: none; color: #fff; }
.wh-share__list svg { width: 16px; height: 16px; }
.wh-share__done { position: absolute; left: 50%; bottom: calc(100% + .45rem); transform: translateX(-50%); padding: .3rem .55rem; border-radius: 6px; background: var(--ink); color: #fff; font-size: .75rem; font-weight: 600; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .2s; }
.wh-share__done:not(:empty) { opacity: 1; }
/* the end of the article: back, share (when there's no rail), ask */
.wh-article__end { gap: 1rem 1.5rem !important; }
.wh-article__end .wh-share { display: flex; align-items: center; gap: .75rem; }
@media (min-width: 1280px) { .wh-article__end .wh-share { display: none; } }
@media (max-width: 1279px) {
	.wh-article__grid { grid-template-columns: minmax(0, 720px); justify-content: center; }
	.wh-article__grid > .wp-block-post-content { grid-column: 1; grid-row: 2; }
	.wh-article-rail { grid-column: 1; grid-row: 1; justify-self: stretch; position: static; width: auto; max-height: none; overflow: visible; margin-bottom: 2.25rem !important; }
	.wh-article-rail .wh-share, .wh-article-rail--share { display: none; }
	.wh-toc details { border-radius: var(--r-l); background: #fff; box-shadow: inset 0 0 0 1px var(--line-light); }
	.wh-toc summary { margin: 0; padding: 1.05rem 1.25rem; cursor: pointer; }
	.wh-toc summary b { margin-left: auto; }
	.wh-toc summary::after { content: "+"; width: 1rem; font-family: var(--sans, inherit); font-size: 1.125rem; line-height: 1; text-align: right; color: var(--rust); }
	.wh-toc details[open] summary::after { content: "−"; }
	.wh-toc ol { margin: 0 1.25rem 1.1rem; }
}
@media (max-width: 600px) {
	.wh-article__end { flex-direction: column; align-items: flex-start !important; }
	.wh-article__end .wp-block-buttons, .wh-article__end .wp-block-button, .wh-article__end .wp-block-button__link { width: 100%; }
	.wh-article__end .wp-block-button__link { justify-content: center; text-align: center; }
}
/* keep reading */
.wh-keep__head { margin-bottom: var(--wp--preset--spacing--50) !important; gap: 1rem !important; }
.wh-keep__head > * { margin: 0 !important; }
.wh-keep__title { font-size: var(--wp--preset--font-size--x-large) !important; }
.wh-keep__all a { font-weight: 600; color: var(--ink); text-decoration: none; }
.wh-keep__all a:hover { color: var(--rust); }

/* Service icons (assets/images/icons/svc): one 24px line set, drawn as masks so they take the text colour.
   The service list shows them where numbers used to be (grey, orange when open); so do the AI page's layers. */
.wh-icon--ai, .wh-svc__item--ai { --wh-svc-icon: url(../images/icons/svc/ai.svg); }
.wh-icon--tv, .wh-svc__item--tv { --wh-svc-icon: url(../images/icons/svc/tv.svg); }
.wh-icon--youtube, .wh-svc__item--youtube { --wh-svc-icon: url(../images/icons/svc/youtube.svg); }
.wh-icon--social, .wh-svc__item--social { --wh-svc-icon: url(../images/icons/svc/social.svg); }
.wh-icon--search, .wh-svc__item--search { --wh-svc-icon: url(../images/icons/svc/search.svg); }
.wh-icon--creative, .wh-svc__item--creative { --wh-svc-icon: url(../images/icons/svc/creative.svg); }
.wh-icon--intake, .wh-svc__item--intake { --wh-svc-icon: url(../images/icons/svc/intake.svg); }
.wh-icon--bi, .wh-svc__item--bi { --wh-svc-icon: url(../images/icons/svc/bi.svg); }
.wh-icon--consulting, .wh-svc__item--consulting { --wh-svc-icon: url(../images/icons/svc/consulting.svg); }
.wh-svc__title::before, .wh-svc__toggle::before { counter-increment: none; content: ""; width: 1.3rem; height: 1.3rem; background: currentColor; -webkit-mask: var(--wh-svc-icon) center / contain no-repeat; mask: var(--wh-svc-icon) center / contain no-repeat; }
.wh-layer__n[class*="wh-icon--"] { align-self: start; width: 2.25rem; height: 2.25rem; margin-top: -.15rem !important; margin-left: 1rem !important; padding: 0; background: var(--steel); -webkit-mask: var(--wh-svc-icon) center / contain no-repeat; mask: var(--wh-svc-icon) center / contain no-repeat; transition: background-color .3s; }
.wh-layer:hover .wh-layer__n[class*="wh-icon--"] { background: var(--ember); }
@media (max-width: 900px) { .wh-layer__n[class*="wh-icon--"] { width: 1.6rem; height: 1.6rem; margin-left: .5rem !important; } }

/* Steps: no numbers (they read as a template); the thin rule stays above each one */
.wh-steps > .wp-block-column { padding-top: 1.6rem; }
.wh-steps > .wp-block-column::before { content: none !important; }
.wh-steps > .wp-block-column::after { top: 0; left: 0; }
.wh-steps--visual > .wp-block-column { padding-top: 0; }
.wh-steps--visual > .wp-block-column > .wh-aiv { margin-bottom: 1.5rem !important; }

/* Thank-you page: the next steps, numbered, on the hero's glass card */
.wh-thanks__steps { list-style: none; counter-reset: wh-step; margin: 0; padding: 0; display: grid; gap: 1.1rem; }
.wh-thanks__steps li { counter-increment: wh-step; position: relative; margin: 0; padding-left: 3rem; color: var(--mist); line-height: 1.55; }
.wh-thanks__steps li::before { content: counter(wh-step, decimal-leading-zero); position: absolute; left: 0; top: -.15rem; font-family: var(--serif); font-style: italic; font-size: 1.75rem; line-height: 1; color: var(--ember); }
.wh-thanks__steps strong { color: #fff; }
.wh-thanks__next .wh-thanks__steps { margin-top: 1.4rem !important; }
/* a pricing card's note shown again in its white criteria pop-up: the gray used for small print on white */
.wh-crit .wh-tort-card__note { color: #6b7187; }

/* ---------- Phones (October 2026 pass) --------------------------------- */
/* Pledge byline: the name takes the room beside the photo (Safari shrank it to its narrowest and broke the lines) */
.wh-pledge-by__name { flex: 1 1 auto; min-width: 0; }
.wh-pledge-by__name span { white-space: nowrap; }
/* Phone menu: the social links, then the address under them, both from the left */
.wh-mnav__where { flex-direction: column; align-items: stretch; }
.wh-mnav__address { text-align: left; }
.wh-mnav__address a { white-space: nowrap; }
@media (max-width: 600px) {
	.wh-hide-phone { display: none; }
	/* hero subtitles a size down, and two buttons as one even stack */
	.is-style-wh-lede { font-size: 1.125rem !important; line-height: 1.55; }
	:is(.wh-hero, .wh-hero--video) .wp-block-buttons { flex-direction: column; align-items: stretch; }
	:is(.wh-hero, .wh-hero--video) .wp-block-button:not(.is-style-wh-link), :is(.wh-hero, .wh-hero--video) .wp-block-button:not(.is-style-wh-link) .wp-block-button__link { width: 100%; text-align: center; justify-content: center; }
	/* any other pair of buttons that has to stack: one even column too */
	.wp-block-buttons:has(> .wp-block-button:not(.is-style-wh-link) ~ .wp-block-button:not(.is-style-wh-link)) { flex-direction: column; align-items: stretch; }
	.wp-block-buttons:has(> .wp-block-button:not(.is-style-wh-link) ~ .wp-block-button:not(.is-style-wh-link)) > .wp-block-button:not(.is-style-wh-link) :is(.wp-block-button__link) { width: 100%; text-align: center; justify-content: center; }
	.wp-block-buttons:has(> .wp-block-button:not(.is-style-wh-link) ~ .wp-block-button:not(.is-style-wh-link)) > .wp-block-button:not(.is-style-wh-link) { width: 100%; }
	/* the founders' pledge, a size down */
	.wh-pledge p, .wh-pledge-card .wh-pledge p { font-size: 1.25rem; line-height: 1.35; }
	.wh-culture__quote { font-size: 1.375rem; }
	/* testimonial cards: the quote a size down */
	.wh-quotes:not(.wh-footer-quote) .wh-quote__text p { font-size: 1.0625rem; line-height: 1.55; }
	/* the larger first paragraph of a service page's sections and the culture pages' intros: lede size */
	.wh-chapter-split__body > p:first-child, .wh-overview > p:first-child, .wh-culture__lead { font-size: 1.125rem !important; line-height: 1.55; }
}
