/* ==========================================================================
   T&H Consulting — site styles (v2, institutional)
   Serif display + Inter text, square edges, hairline rules, no shadows.
   Tokens come from theme.json (var(--wp--preset--*)).
   ========================================================================== */

:root {
	--th-ink: var(--wp--preset--color--ink, #1B2234);
	--th-navy: var(--wp--preset--color--navy, #1B2234);
	--th-blue: var(--wp--preset--color--blue, #304D9B);
	--th-sky: var(--wp--preset--color--sky, #70ABDC);
	--th-paper: var(--wp--preset--color--paper, #EEF2F7);
	--th-rule: var(--wp--preset--color--rule, #DCE2EA);
	--th-muted: var(--wp--preset--color--muted, #5C6672);
	--th-serif: var(--wp--preset--font-family--nunito-sans, 'Nunito Sans', system-ui, sans-serif);
	--th-sans: var(--wp--preset--font-family--nunito-sans, 'Nunito Sans', system-ui, sans-serif);
	--th-rule-dark: rgba(255, 255, 255, .16);
	--th-on-dark: #CBD3DD;
	--th-on-dark-2: #8D9AAB;
	--th-navy-2: #2B3A4E;
	--th-section-y: clamp(2.75rem, 4.5vw, 4rem);
	--th-header-h: 80px;
}

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

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
::selection { background: rgba(48, 77, 155, .18); }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--th-blue); outline-offset: 3px; }
img { height: auto; max-width: 100%; }
p { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
.wp-site-blocks > * + * { margin-block-start: 0; }
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* ---------- Labels, links, buttons ---------- */

.th-label,
.th-eyebrow {
	font-family: var(--th-sans) !important;
	font-size: .75rem !important;
	font-weight: 600 !important;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--th-blue);
	margin-top: 0 !important;
	margin-bottom: 1.25rem !important;
	line-height: 1.4;
}
.th-label.alignwide { margin-inline: auto !important; }
.th-label.th-mt, .th-eyebrow.th-mt { margin-top: clamp(2.5rem, 4.5vw, 3.5rem) !important; }
.th-label::before,
.th-eyebrow::before { content: ""; display: inline-block; width: 28px; height: 1px; background: currentColor; vertical-align: middle; margin-right: .75rem; opacity: .7; }
.th-dark .th-label, .th-dark .th-eyebrow,
.th-hero .th-label, .th-hero .th-eyebrow,
.th-section--dark .th-label, .th-section--dark .th-eyebrow { color: var(--th-sky); }

.th-link a,
a.th-arrow {
	font-family: var(--th-sans);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
	color: var(--th-ink);
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}
.th-link a::after, a.th-arrow::after { content: " \2192"; }
.th-link a:hover, a.th-arrow:hover { color: var(--th-blue); }
.th-dark .th-link a, .th-section--dark .th-link a, .th-hero .th-link a { color: #fff; }

.wp-block-button__link { transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--th-ink);
	border: 1px solid var(--th-ink);
	padding: calc(.95rem - 1px) calc(1.5rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--th-ink); color: #fff; }
.th-btn-light > .wp-block-button__link { background: #fff; color: var(--th-ink); }
.th-btn-light > .wp-block-button__link:hover { background: var(--th-sky); color: var(--th-ink); }
.th-btn-ghost.is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .55); }
.th-btn-ghost.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--th-ink); border-color: #fff; }
.wp-block-button__link::after { content: "  \2192"; white-space: pre; }
.th-header__cta .wp-block-button__link::after { content: none; }

/* ---------- Utility bar + header ---------- */

.th-alert { background: var(--th-ink); color: var(--th-on-dark); padding-block: .5rem; font-size: .8125rem; }
.th-alert p { margin: 0; line-height: 1.4; }
.th-alert strong { color: #fff; font-weight: 600; }
.th-alert a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.th-alert__row { gap: .5rem 2rem; }
.th-alert__contact a { text-decoration: none; color: var(--th-on-dark); }
.th-alert__contact a:hover { color: #fff; }

.th-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #fff;
	border-bottom: 1px solid var(--th-rule);
}
.admin-bar .th-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .th-header { top: 0; } }
.th-header__inner { min-height: var(--th-header-h); gap: 1.5rem; }
.th-header__right { gap: 2.25rem; }

.th-brand { gap: .7rem; align-items: center; }
.th-brand .wp-block-site-logo { flex: 0 0 auto; min-width: 36px; }
.th-brand .wp-block-site-logo img { width: 36px; height: auto; display: block; }
.th-brand__name { margin: 0; font-family: var(--th-serif); font-size: 1.375rem; font-weight: 600; letter-spacing: -.01em; line-height: 1; white-space: nowrap; }
.th-brand__name a { color: var(--th-ink); text-decoration: none; }
.th-brand--light .th-brand__name a { color: #fff; }

.th-nav .wp-block-navigation__container { gap: 2rem; }
.th-nav .wp-block-navigation-item__content { color: var(--th-ink); text-decoration: none; padding-block: .5rem; font-size: .9375rem; font-weight: 500; }
.th-nav .wp-block-navigation-item__content:hover { color: var(--th-blue); }
.th-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--th-rule) !important;
	border-top: 2px solid var(--th-ink) !important;
	border-radius: 0;
	box-shadow: 0 18px 40px rgba(27, 34, 52, .08);
	padding: .5rem 0 !important;
	min-width: 300px !important;
	background: #fff !important;
	margin-top: .35rem;
}
.th-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem 1.25rem !important; font-weight: 500; }
.th-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--th-paper); color: var(--th-ink); }
.th-header__cta .wp-block-button__link { padding: .8rem 1.25rem; }

/* Mobile menu */
.th-nav .wp-block-navigation__responsive-container-open svg,
.th-nav .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.th-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem clamp(1rem, 4vw, 2rem) 2rem; background: #fff; }
.th-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; padding-top: 3rem; }
.th-nav .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; }
.th-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--th-rule); align-items: flex-start !important; }
.th-nav .is-menu-open .wp-block-navigation-item__content { font-family: var(--th-serif); font-size: 1.375rem; font-weight: 500; padding-block: .9rem !important; }
.th-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 .75rem !important; min-width: 0 !important; margin: 0; }
.th-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.th-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--th-sans); font-size: 1rem; padding: .45rem 0 !important; color: var(--th-muted); }

@media (min-width: 600px) and (max-width: 1100px) {
	.th-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.th-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
}
@media (max-width: 781px) {
	.th-header .th-header__cta { display: none !important; }
	.th-alert__contact { display: none !important; }
	.th-alert__more { display: none; }
	.th-header__inner { gap: .75rem; }
}

/* ---------- Breadcrumbs ---------- */

.th-crumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .8125rem; color: var(--th-muted); margin-bottom: 1.5rem; }
.th-crumbs a { color: var(--th-muted); text-decoration: none; }
.th-crumbs a:hover { color: var(--th-ink); text-decoration: underline; }
.th-crumbs__sep { opacity: .5; }
.th-crumbs [aria-current] { color: var(--th-ink); }
.th-dark .th-crumbs, .th-dark .th-crumbs a, .th-hero .th-crumbs, .th-hero .th-crumbs a, .th-pagehead--dark .th-crumbs, .th-pagehead--dark .th-crumbs a { color: var(--th-on-dark-2); }
.th-dark .th-crumbs [aria-current], .th-hero .th-crumbs [aria-current], .th-pagehead--dark .th-crumbs [aria-current] { color: #fff; }

/* ---------- Page heads (templates) ---------- */

.th-pagehead { padding-block: clamp(2.25rem, 4vw, 3.5rem) clamp(2rem, 3.5vw, 3rem); border-bottom: 1px solid var(--th-rule); }
.th-pagehead__title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); }
.th-pagehead__lead,
.th-pagehead .wp-block-term-description { max-width: 44rem; margin-top: 1.25rem; color: var(--th-muted); font-size: var(--wp--preset--font-size--large); line-height: 1.55; }
.th-pagehead--dark,
.th-hero--page {
	position: relative;
	color: var(--th-on-dark);
	border-bottom: 0;
	background:
		linear-gradient(90deg, rgba(27, 34, 52, .97) 0%, rgba(27, 34, 52, .9) 55%, rgba(27, 34, 52, .75) 100%),
		url("/wp-content/uploads/2021/07/sam-moqadam-pdovqfpz4z8-unsplash-1-1024x683.jpg") center / cover no-repeat,
		var(--th-ink) !important;
}
.th-pagehead--dark .th-pagehead__title,
.th-hero--page h1 { color: #fff; font-size: var(--wp--preset--font-size--huge); max-width: 18ch; }
.th-pagehead--dark .th-pagehead__lead,
.th-hero--page .th-lead { color: var(--th-on-dark); }
.th-pagehead--dark .wp-block-buttons { margin-top: 2rem; }

.th-pagehead__title { font-weight: 500 !important; letter-spacing: -.01em; }

/* ---------- Service pages: content + contact rail ---------- */

.th-service__body { padding-block: clamp(2.5rem, 4.5vw, 3.75rem); }
.th-service__cols { gap: clamp(2rem, 6vw, 6rem) !important; justify-content: space-between; }
.th-content--rail { padding-block: 0 !important; }
.th-content--rail > p:first-child { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--th-ink); }
.th-aside { position: sticky; top: calc(var(--th-header-h) + 2rem); border-top: 2px solid var(--th-ink); padding-top: 1.5rem; }
.admin-bar .th-aside { top: calc(var(--th-header-h) + 2rem + 32px); }
.th-aside__text { font-size: var(--wp--preset--font-size--small); color: var(--th-muted); margin: 0 !important; }
.th-aside .th-contact-list { margin-top: 1.5rem; }
.th-aside .wp-block-buttons { margin-top: 1.5rem !important; }
.th-aside__note { font-size: var(--wp--preset--font-size--x-small); color: var(--th-muted); margin-top: 1.25rem !important; }
@media (max-width: 781px) {
	.th-aside { position: static; }
}

/* ---------- Content containers ---------- */

.th-content { padding-block: clamp(2.5rem, 4.5vw, 3.75rem); }
.th-content--sections { padding-block: 0; }
.th-content--sections > * + * { margin-block-start: 0 !important; }
.th-content > .alignfull:first-child { margin-top: 0; }
.th-content :where(ul, ol):not([class*="th-"]) { padding-left: 0; }
.th-content :where(ul.wp-block-list, ol.wp-block-list, ul:not([class]), ol:not([class])):not([class*="th-"]) { padding-left: 1.25rem; }
.th-content :where(ul.wp-block-list, ol.wp-block-list, ul:not([class]), ol:not([class])):not([class*="th-"]) li + li { margin-top: .45rem; }
.th-content li::marker { color: var(--th-blue); }
.th-content:not(.th-content--sections) h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.75rem; }
.th-content:not(.th-content--sections) h3 { font-size: var(--wp--preset--font-size--large); margin-top: 2rem; }
.th-content:not(.th-content--sections) > .alignwide h2 { font-size: var(--wp--preset--font-size--xx-large); }
.th-content :where(h2, h3, h4):first-child { margin-top: 0; }
.th-content table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); }
.th-content th, .th-content td { border-bottom: 1px solid var(--th-rule); padding: .7rem .5rem; text-align: left; vertical-align: top; }

/* ---------- Sections ---------- */

.th-section { padding-block: var(--th-section-y); }
.th-section--tight { padding-block: clamp(2.5rem, 5vw, 3.5rem); }
.th-section--soft,
.th-section--paper { background: var(--th-paper); }
.th-section--line { border-top: 1px solid var(--th-rule); }
.th-section--dark,
.th-dark { background: var(--th-ink); color: var(--th-on-dark); }
.th-section--dark :where(h1, h2, h3, h4), .th-dark :where(h1, h2, h3, h4) { color: #fff; }
.th-section--dark a:not(.wp-block-button__link), .th-dark a:not(.wp-block-button__link) { color: #fff; }

.th-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--th-muted); }
.th-dark .th-lead, .th-section--dark .th-lead, .th-hero .th-lead { color: var(--th-on-dark); }

.th-head { max-width: 48rem; margin-bottom: clamp(2rem, 4vw, 3.25rem) !important; }
.th-head h2 { margin: 0; }
.th-head p:not(.th-label):not(.th-eyebrow) { margin-top: 1rem; }
.th-head.is-layout-flex { max-width: none; align-items: flex-end; }
.th-head--center { margin-inline: auto !important; text-align: center; }
.th-head--center .th-label::before, .th-head--center .th-eyebrow::before { display: none; }

/* Two-column intro: label left, statement right */
.th-intro { gap: 2rem 4rem !important; }
.th-intro .th-statement { font-family: var(--th-serif); font-size: clamp(1.5rem, 2.6vw, 2.125rem); line-height: 1.32; color: var(--th-ink); letter-spacing: -.01em; margin: 0; }
.th-dark .th-intro .th-statement { color: #fff; }

/* ---------- Home hero (cover block) ---------- */

.th-hero.wp-block-cover { min-height: min(86vh, 820px) !important; padding: 0 !important; align-items: stretch; }
.th-hero.wp-block-cover .wp-block-cover__background { background: linear-gradient(90deg, rgba(27, 34, 52, 1) 0%, rgba(27, 34, 52, .96) 45%, rgba(27, 34, 52, .82) 100%) !important; opacity: 1 !important; mix-blend-mode: multiply; }
.th-hero.wp-block-cover.has-custom-content-position .wp-block-cover__inner-container { width: 100% !important; margin: 0 !important; }
.th-hero .wp-block-cover__inner-container { display: flex; flex-direction: column; justify-content: space-between; width: 100%; padding-inline: clamp(1rem, 4vw, 2rem); }
.th-hero .wp-block-cover__inner-container > .alignwide { width: 100%; max-width: var(--wp--style--global--wide-size); margin-inline: auto !important; }
.th-hero__body { padding-block: clamp(5rem, 12vh, 9rem) clamp(3rem, 6vh, 4.5rem); }
.th-hero h1 { color: #fff; font-size: var(--wp--preset--font-size--huge); max-width: 16ch; margin: 0; font-weight: 500; }
.th-hero .th-lead { margin-top: 1.5rem !important; max-width: 40rem; font-size: clamp(1.0625rem, 1.5vw, 1.25rem); }
.th-hero .wp-block-buttons { margin-top: 2rem; gap: 1rem; }
.th-facts { border-top: 1px solid var(--th-rule-dark); gap: 0 !important; margin: 0 !important; }
.th-facts > .wp-block-column { padding: 1.5rem 1.5rem 1.75rem 0; }
.th-facts > .wp-block-column + .wp-block-column { padding-left: 1.5rem; border-left: 1px solid var(--th-rule-dark); }
.th-fact__value { font-family: var(--th-serif); font-size: clamp(1.5rem, 2.4vw, 2rem); color: #fff; margin: 0 !important; line-height: 1.1; }
.th-fact__value--text { font-size: clamp(1.125rem, 1.5vw, 1.375rem); line-height: 1.45; padding-top: .3rem; }
.th-fact__label { font-size: .8125rem; color: var(--th-on-dark-2); margin: .4rem 0 0 !important; letter-spacing: .02em; }
@media (max-width: 781px) {
	.th-facts { display: grid !important; grid-template-columns: 1fr 1fr; }
	.th-facts > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; }
	.th-facts > .wp-block-column:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--th-rule-dark); }
	.th-facts > .wp-block-column:nth-child(n+3) { border-top: 1px solid var(--th-rule-dark); }
}

/* Plain dark hero (interior pages built from content) */
.th-hero:not(.wp-block-cover) { position: relative; padding-block: clamp(2.5rem, 4vw, 3.5rem); color: var(--th-on-dark); }
.th-hero:not(.wp-block-cover) h1 { color: #fff; }
.th-accent { font-style: normal; color: inherit; }
.th-trust { list-style: none; padding: 0 !important; margin: 1.75rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 2rem; font-size: .875rem; color: var(--th-on-dark-2); }
.th-trust li { margin: 0 !important; padding-left: 1rem; position: relative; }
.th-trust li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 1px; background: var(--th-sky); }

/* ---------- Service index (numbered rows) ---------- */

.th-index { border-top: 1px solid var(--th-ink); counter-reset: thidx; }
.th-index__row {
	display: grid !important;
	grid-template-columns: 3.5rem minmax(0, 1.1fr) minmax(0, 1.4fr) 2rem;
	gap: 1.5rem;
	align-items: baseline;
	padding: 1.75rem .25rem !important;
	border-bottom: 1px solid var(--th-rule);
	position: relative;
	transition: background-color .15s ease;
	counter-increment: thidx;
	margin: 0 !important;
}
.th-index__row::before { content: counter(thidx, decimal-leading-zero); font-family: var(--th-serif); color: var(--th-blue); font-size: 1rem; }
.th-index__row::after { content: "\2192"; color: var(--th-ink); justify-self: end; transition: transform .15s ease; }
.th-index__row:hover { background: var(--th-paper); }
.th-index__row:hover::after { transform: translateX(4px); }
.th-index__row h3 { margin: 0 !important; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.th-index__row h3 a { color: var(--th-ink); text-decoration: none; }
.th-index__row h3 a::after { content: ""; position: absolute; inset: 0; }
.th-index__row p { margin: 0 !important; color: var(--th-muted); font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
@media (max-width: 781px) {
	.th-index__row { grid-template-columns: 2.5rem 1fr 1.25rem; }
	.th-index__row p { grid-column: 2 / 3; }
	.th-index__row::after { grid-row: 1; grid-column: 3; }
}

/* ---------- Columns with top rule (audiences, values, steps) ---------- */

.th-grid { gap: 2rem 2.5rem !important; }
.th-grid > .wp-block-column { display: flex; }
.th-grid > .wp-block-column > * { flex: 1; }

.th-box {
	border-top: 2px solid var(--th-ink);
	padding: 1.5rem 0 0 !important;
	background: transparent;
	height: 100%;
}
.th-box > :first-child { margin-top: 0; }
.th-box > :last-child { margin-bottom: 0; }
.th-box h3 { font-size: clamp(1.25rem, 1.8vw, 1.4375rem); margin: 0 0 .75rem; }
.th-box p { color: var(--th-muted); font-size: var(--wp--preset--font-size--small); line-height: 1.65; }
.th-box .th-link { margin-top: 1.25rem; }
.th-link a + a { margin-left: 1.75rem; }
.th-box--dark, .th-dark .th-box, .th-section--dark .th-box { border-top-color: var(--th-sky); }
.th-box--dark p, .th-dark .th-box p, .th-section--dark .th-box p { color: var(--th-on-dark); }
.th-icon { display: none !important; }

.th-steps { counter-reset: thstep; }
.th-steps > .wp-block-column { counter-increment: thstep; }
.th-step { padding-top: 1.5rem !important; }
.th-step::before { content: counter(thstep, decimal-leading-zero); display: block; font-family: var(--th-serif); font-size: 2.5rem; line-height: 1; color: var(--th-blue); margin-bottom: 1.25rem; }
.th-dark .th-step::before, .th-section--dark .th-step::before { color: var(--th-sky); }

/* ---------- Lists ---------- */

.th-check { list-style: none; padding: 0 !important; margin: 1.25rem 0 0; }
.th-check li { position: relative; padding: .55rem 0 .55rem 1.5rem; margin: 0 !important; border-top: 1px solid var(--th-rule); font-size: var(--wp--preset--font-size--small); }
.th-check li:last-child { border-bottom: 1px solid var(--th-rule); }
.th-check li::before { content: ""; position: absolute; left: 0; top: 1.15em; width: 10px; height: 1px; background: var(--th-blue); }
.th-dark .th-check li, .th-section--dark .th-check li { border-color: var(--th-rule-dark); }

/* ---------- Figures band ---------- */

.th-stats { gap: 0 !important; border-top: 1px solid var(--th-rule); border-bottom: 1px solid var(--th-rule); background: transparent; }
.th-stats > .wp-block-column { padding: 2rem 1.75rem 2rem 0; }
.th-stats > .wp-block-column + .wp-block-column { padding-left: 1.75rem; border-left: 1px solid var(--th-rule); }
.th-stat__num { font-family: var(--th-serif); font-size: clamp(2.25rem, 4.5vw, 3.5rem) !important; font-weight: 400; letter-spacing: -.02em; line-height: 1; color: var(--th-ink); margin: 0 !important; }
.th-stat__label { margin: .75rem 0 0 !important; color: var(--th-muted); font-size: var(--wp--preset--font-size--small); line-height: 1.45; max-width: 16rem; }
.th-dark .th-stats, .th-section--dark .th-stats { border-color: var(--th-rule-dark); }
.th-dark .th-stats > .wp-block-column + .wp-block-column, .th-section--dark .th-stats > .wp-block-column + .wp-block-column { border-left-color: var(--th-rule-dark); }
.th-dark .th-stat__num, .th-section--dark .th-stat__num { color: #fff; }
.th-dark .th-stat__label, .th-section--dark .th-stat__label { color: var(--th-on-dark-2); }
.th-stats--overlap { margin-top: 0 !important; }
.th-stats-wrap { padding-block: 0; }
@media (max-width: 781px) {
	.th-stats { display: grid !important; grid-template-columns: 1fr 1fr; }
	.th-stats > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; }
	.th-stats > .wp-block-column:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--th-rule); }
	.th-stats > .wp-block-column:nth-child(n+3) { border-top: 1px solid var(--th-rule); }
}

/* ---------- Split / feature ---------- */

.th-split { gap: clamp(2rem, 6vw, 6rem) !important; align-items: flex-start !important; }
.th-split.are-vertically-aligned-center { align-items: center !important; }
.th-split .wp-block-image { margin: 0; }
.th-split .wp-block-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; display: block; }
.th-split--wide .wp-block-image img { aspect-ratio: 3 / 2; }
.th-split figcaption { font-size: .8125rem; color: var(--th-muted); margin-top: .75rem; }

/* ---------- Logos ---------- */

.th-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); border-block: 1px solid var(--th-rule); margin-top: 1.5rem !important; }
.th-logos > .wp-block-image { margin: 0 !important; height: 120px; display: flex; align-items: center; justify-content: center; padding: 1rem 1.5rem; }
.th-logos > .wp-block-image + .wp-block-image { border-left: 1px solid var(--th-rule); }
.th-logos .wp-block-image img { width: auto !important; height: auto !important; max-width: 100%; max-height: 52px; object-fit: contain; filter: grayscale(1) contrast(1.15); opacity: .7; transition: opacity .2s ease, filter .2s ease; }
.th-logos .th-logo--sq img { max-height: 104px; }
.th-logos .wp-block-image:hover img { filter: none; opacity: 1; }
@media (max-width: 781px) {
	.th-logos { grid-template-columns: repeat(2, 1fr); }
	.th-logos > .wp-block-image { height: 96px; border-left: 0 !important; border-top: 1px solid var(--th-rule); }
	.th-logos > .wp-block-image:nth-child(-n+2) { border-top: 0; }
	.th-logos > .wp-block-image:nth-child(even) { border-left: 1px solid var(--th-rule) !important; }
}

/* ---------- People ---------- */

.th-person h3 { margin-bottom: .25rem !important; }
.th-person__role { color: var(--th-blue) !important; font-weight: 600; font-size: .8125rem !important; letter-spacing: .08em; text-transform: uppercase; margin-top: 0 !important; }

/* ---------- Note ---------- */

.th-note { border-left: 2px solid var(--th-blue); background: var(--th-paper); padding: 1.1rem 1.4rem !important; font-size: var(--wp--preset--font-size--small); color: var(--th-muted); }
.th-dark .th-note { background: rgba(255, 255, 255, .05); color: var(--th-on-dark); border-left-color: var(--th-sky); }

/* ---------- FAQ ---------- */

.wp-block-details { border-bottom: 1px solid var(--th-rule); padding: 1.25rem 0; margin-block: 0 !important; }
.wp-block-details:first-of-type { border-top: 1px solid var(--th-ink); }
.wp-block-details summary { cursor: pointer; font-family: var(--th-serif); font-size: 1.25rem; list-style: none; display: flex; justify-content: space-between; gap: 1rem; color: var(--th-ink); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-family: var(--th-sans); color: var(--th-blue); font-weight: 300; font-size: 1.5rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "\2212"; }
.wp-block-details > :not(summary) { color: var(--th-muted); margin-top: .85rem; max-width: 46rem; }

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

.th-contact-list { list-style: none; padding: 0 !important; margin: 2.25rem 0 0; border-top: 1px solid var(--th-ink); }
.th-contact-list li { padding: 1rem 0; border-bottom: 1px solid var(--th-rule); margin: 0 !important; }
.th-contact-list strong { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .14em; color: var(--th-muted); font-weight: 600; margin-bottom: .3rem; }
.th-contact-list a { color: var(--th-ink); text-decoration: none; }
.th-contact-list a:hover { color: var(--th-blue); text-decoration: underline; }
.th-form { background: #fff; border: 1px solid var(--th-rule); border-top: 2px solid var(--th-ink); padding: clamp(1rem, 3vw, 2rem) !important; min-height: 540px; }

/* ---------- CTA band (template part) ---------- */

.th-cta__box {
	padding: clamp(2.5rem, 4.5vw, 3.5rem) 0 !important;
	gap: 2rem 3rem !important;
	background: var(--th-ink) !important;
	border-radius: 0;
}
.th-cta__text { max-width: 44rem; }
.th-cta__text h2 { margin: 0 0 .75rem; font-size: var(--wp--preset--font-size--xx-large) !important; }
.th-cta__text p { color: var(--th-on-dark); margin: 0; }

/* ---------- Shortcode lists ([th_children], [th_siblings]) ---------- */

.th-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0 3rem; border-top: 1px solid var(--th-ink); margin-top: 1.5rem; }
.th-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 1.5rem;
	gap: .5rem 1rem;
	padding: 1.6rem 0;
	border-bottom: 1px solid var(--th-rule);
	color: var(--th-ink);
	text-decoration: none;
}
.th-card:hover { color: var(--th-ink); }
.th-card:hover .th-card__title { color: var(--th-blue); }
.th-card__title { grid-column: 1; font-family: var(--th-serif); font-size: 1.3125rem !important; font-weight: 500; margin: 0 !important; line-height: 1.3; transition: color .15s ease; }
.th-card__text { grid-column: 1; margin: 0; color: var(--th-muted); font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
.th-card__more { grid-column: 2; grid-row: 1; justify-self: end; font-size: 0; }
.th-card__more::after { content: "\2192"; font-size: 1.125rem; color: var(--th-ink); }
.th-cards--compact .th-card__text { align-self: start; }
.th-related { padding-block: clamp(2.5rem, 4.5vw, 3.5rem); border-top: 1px solid var(--th-rule); }
.th-related__title { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 .5rem; }

/* ---------- Image cards ---------- */

.th-catcard { position: relative; border: 0 !important; padding: 0 !important; display: flex; flex-direction: column; }
.th-catcard .wp-block-image { margin: 0 0 1.25rem !important; overflow: hidden; }
.th-catcard .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; display: block; filter: saturate(.85); transition: transform .4s ease; }
.th-catcard:hover .wp-block-image img { transform: scale(1.03); }
.th-catcard__body { padding: 0 !important; }
.th-catcard__body h3 { margin: 0 0 .6rem; font-size: 1.375rem; }
.th-catcard__body h3 a { color: var(--th-ink); text-decoration: none; }
.th-catcard__body h3 a::after { content: ""; position: absolute; inset: 0; }
.th-catcard__body p { margin: 0; color: var(--th-muted); font-size: var(--wp--preset--font-size--small); }

/* ---------- Posts ---------- */

.th-posts .wp-block-post-template { gap: 2.5rem 2rem; }
.th-post-card { height: 100%; display: flex; flex-direction: column; background: transparent; }
.th-post-card .wp-block-post-featured-image { margin: 0 0 1.25rem; overflow: hidden; }
.th-post-card .wp-block-post-featured-image img { width: 100%; object-fit: cover; aspect-ratio: 3 / 2 !important; transition: transform .4s ease; }
.th-post-card:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.th-post-card__body { border-top: 1px solid var(--th-rule); padding-top: 1rem; }
.th-post-card__body > * { margin: 0 0 .6rem; }
.th-post-card .wp-block-post-date { color: var(--th-muted); font-size: .75rem !important; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
.th-post-card__title { font-size: 1.3125rem !important; line-height: 1.3; font-weight: 500; }
.th-post-card__title a { color: var(--th-ink); text-decoration: none; }
.th-post-card__title a:hover { color: var(--th-blue); }
.th-post-card .wp-block-post-excerpt { color: var(--th-muted); }
.th-post-card .wp-block-post-excerpt__more-text { display: none; }
.wp-block-query-pagination { margin-top: 3rem; gap: .5rem; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { padding: .45rem .85rem; border: 1px solid var(--th-rule); text-decoration: none; color: var(--th-ink); }
.wp-block-query-pagination .current { background: var(--th-ink); color: #fff; border-color: var(--th-ink); }

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

.th-article__meta { gap: .75rem 1.5rem; color: var(--th-muted); margin-top: 1.25rem !important; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; }
.th-article__meta a { color: var(--th-blue); text-decoration: none; }
.th-article__image { margin-top: 3rem !important; }
.th-prose p, .th-prose li { color: var(--th-ink); }
.th-article__nav { display: flex; justify-content: space-between; gap: 1rem; padding: 1.5rem 0 3rem; border-top: 1px solid var(--th-rule); font-size: var(--wp--preset--font-size--small); }
.th-article__nav a { text-decoration: none; color: var(--th-ink); }

/* ---------- Search ---------- */

.th-search .wp-block-search__inside-wrapper { border: 1px solid var(--th-ink); padding: 0; background: #fff; }
.th-search .wp-block-search__input { border: 0; padding: .8rem 1rem; font: inherit; }
.th-search .wp-block-search__button { margin: 0; border-radius: 0; background: var(--th-ink); color: #fff; border: 0; padding: .8rem 1.25rem; font-weight: 600; }

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

.th-footer { padding-block: clamp(3rem, 5vw, 4.25rem) 2rem; color: var(--th-on-dark); font-size: var(--wp--preset--font-size--small); background: var(--th-ink) !important; }
.th-footer a { color: #fff; text-decoration: none; }
.th-footer a:hover { color: #fff; text-decoration: underline; }
.th-footer__cols { gap: 2.5rem 3rem !important; }
.th-footer__tagline { font-family: var(--th-serif); color: #fff; font-size: 1.5rem; line-height: 1.3; margin-top: 1.5rem !important; max-width: 20ch; }
.th-footer__muted { color: var(--th-on-dark-2); }
.th-footer__heading { color: #fff !important; font-family: var(--th-sans) !important; font-size: .75rem !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 1.25rem !important; padding-bottom: .75rem; border-bottom: 1px solid var(--th-rule-dark); }
.th-footer__links { list-style: none; padding: 0 !important; margin: 0; }
.th-footer__links li { margin: 0 0 .6rem !important; }
.th-footer__social { margin-top: 1.5rem !important; gap: 1rem !important; }
.th-footer__social .wp-social-link svg { width: 20px; height: 20px; }
.th-footer__legal { margin-top: clamp(3rem, 6vw, 4rem) !important; padding-top: 1.75rem; border-top: 1px solid var(--th-rule-dark); color: var(--th-on-dark-2); }
.th-footer__legal p { margin: 0 0 .6rem; line-height: 1.6; }
.th-footer__legal a { color: var(--th-on-dark); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Why T&H (shared part) ---------- */

.th-why { background: var(--th-paper); }
.th-why h2 { font-size: var(--wp--preset--font-size--xx-large) !important; }
.th-why .th-grid + .th-grid { margin-top: 2rem; }
.th-content > .wp-block-template-part.alignfull,
.th-content > .alignfull.th-why { margin-top: clamp(2.5rem, 4.5vw, 3.75rem); margin-bottom: calc(-1 * clamp(2.5rem, 4.5vw, 3.75rem)); }

/* ---------- Small screens ---------- */

@media (max-width: 781px) {
	.th-hero.wp-block-cover { min-height: auto !important; }
	.th-hero__body { padding-block: 3.5rem 2.5rem; }
	.th-cta__box .wp-block-button, .th-cta__box .wp-block-button__link { width: 100%; text-align: center; }
	.th-index__row { padding: 1.4rem 0 !important; }
}

.editor-styles-wrapper .th-header { position: relative; top: 0; }

/* =========================================================
   v3 layer: richer visual system
   ========================================================= */

:root {
	--th-net: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 960 520' fill='none'><g stroke='%2370ABDC' stroke-opacity='.2' stroke-width='1'><path d='M29 158L124 144'/><path d='M45 306L104 296'/><path d='M45 306L134 393'/><path d='M25 336L104 296'/><path d='M47 369L134 393'/><path d='M47 369L130 408'/><path d='M47 369L123 460'/><path d='M124 144L206 49'/><path d='M124 144L192 218'/><path d='M104 296L192 218'/><path d='M104 296L218 324'/><path d='M130 408L207 408'/><path d='M123 460L207 408'/><path d='M206 49L282 45'/><path d='M206 49L266 83'/><path d='M192 218L264 206'/><path d='M192 218L287 335'/><path d='M218 324L287 335'/><path d='M282 45L345 268'/><path d='M266 83L345 268'/><path d='M266 83L370 281'/><path d='M264 206L345 268'/><path d='M287 335L377 449'/><path d='M345 268L422 104'/><path d='M345 268L440 124'/><path d='M345 268L429 176'/><path d='M370 281L429 176'/><path d='M377 449L457 449'/><path d='M422 104L502 108'/><path d='M422 104L537 159'/><path d='M440 124L502 108'/><path d='M429 176L502 108'/><path d='M429 176L537 159'/><path d='M429 176L538 260'/><path d='M429 176L509 290'/><path d='M502 108L582 123'/><path d='M502 108L612 157'/><path d='M537 159L612 157'/><path d='M537 159L585 191'/><path d='M538 260L585 191'/><path d='M538 260L605 296'/><path d='M509 290L605 296'/><path d='M582 123L679 123'/><path d='M612 157L679 123'/><path d='M585 191L679 123'/><path d='M585 191L693 244'/><path d='M605 296L691 371'/><path d='M605 296L669 395'/><path d='M679 123L757 81'/><path d='M679 123L743 164'/><path d='M693 244L751 268'/><path d='M691 371L763 390'/><path d='M669 395L763 390'/><path d='M669 395L748 431'/><path d='M757 81L846 123'/><path d='M743 164L846 123'/><path d='M743 164L825 173'/><path d='M751 268L855 323'/><path d='M751 268L824 355'/><path d='M763 390L824 355'/><path d='M748 431L855 323'/><path d='M748 431L824 355'/><path d='M846 123L921 74'/><path d='M846 123L905 136'/><path d='M825 173L905 136'/><path d='M825 173L918 210'/><path d='M824 355L928 248'/></g><g stroke='%2370ABDC' stroke-opacity='.8' stroke-width='1.5'><path d='M25 360L134 393'/><path d='M134 393L207 408'/><path d='M207 408L287 335'/><path d='M287 335L345 318'/><path d='M345 318L457 449'/><path d='M457 449L524 411'/><path d='M524 411L605 296'/><path d='M605 296L668 307'/><path d='M668 307L751 324'/><path d='M751 324L855 323'/><path d='M855 323L928 248'/></g><g fill='%2370ABDC'><circle cx='29' cy='158' r='2' fill-opacity='.4'/><circle cx='45' cy='306' r='2' fill-opacity='.4'/><circle cx='25' cy='336' r='2' fill-opacity='.4'/><circle cx='25' cy='360' r='3.6'/><circle cx='47' cy='369' r='2' fill-opacity='.4'/><circle cx='124' cy='144' r='2' fill-opacity='.4'/><circle cx='104' cy='296' r='2' fill-opacity='.4'/><circle cx='134' cy='393' r='3.6'/><circle cx='130' cy='408' r='2' fill-opacity='.4'/><circle cx='123' cy='460' r='2' fill-opacity='.4'/><circle cx='206' cy='49' r='2' fill-opacity='.4'/><circle cx='192' cy='218' r='2' fill-opacity='.4'/><circle cx='218' cy='324' r='2' fill-opacity='.4'/><circle cx='207' cy='408' r='3.6'/><circle cx='282' cy='45' r='2' fill-opacity='.4'/><circle cx='266' cy='83' r='2' fill-opacity='.4'/><circle cx='264' cy='206' r='2' fill-opacity='.4'/><circle cx='287' cy='335' r='3.6'/><circle cx='345' cy='268' r='2' fill-opacity='.4'/><circle cx='370' cy='281' r='2' fill-opacity='.4'/><circle cx='345' cy='318' r='3.6'/><circle cx='377' cy='449' r='2' fill-opacity='.4'/><circle cx='422' cy='104' r='2' fill-opacity='.4'/><circle cx='440' cy='124' r='2' fill-opacity='.4'/><circle cx='429' cy='176' r='2' fill-opacity='.4'/><circle cx='457' cy='449' r='3.6'/><circle cx='502' cy='108' r='2' fill-opacity='.4'/><circle cx='537' cy='159' r='2' fill-opacity='.4'/><circle cx='538' cy='260' r='2' fill-opacity='.4'/><circle cx='509' cy='290' r='2' fill-opacity='.4'/><circle cx='524' cy='411' r='3.6'/><circle cx='582' cy='123' r='2' fill-opacity='.4'/><circle cx='612' cy='157' r='2' fill-opacity='.4'/><circle cx='585' cy='191' r='2' fill-opacity='.4'/><circle cx='605' cy='296' r='3.6'/><circle cx='679' cy='123' r='2' fill-opacity='.4'/><circle cx='693' cy='244' r='2' fill-opacity='.4'/><circle cx='668' cy='307' r='3.6'/><circle cx='691' cy='371' r='2' fill-opacity='.4'/><circle cx='669' cy='395' r='2' fill-opacity='.4'/><circle cx='757' cy='81' r='2' fill-opacity='.4'/><circle cx='743' cy='164' r='2' fill-opacity='.4'/><circle cx='751' cy='268' r='2' fill-opacity='.4'/><circle cx='751' cy='324' r='3.6'/><circle cx='763' cy='390' r='2' fill-opacity='.4'/><circle cx='748' cy='431' r='2' fill-opacity='.4'/><circle cx='846' cy='123' r='2' fill-opacity='.4'/><circle cx='825' cy='173' r='2' fill-opacity='.4'/><circle cx='855' cy='323' r='3.6'/><circle cx='824' cy='355' r='2' fill-opacity='.4'/><circle cx='921' cy='74' r='2' fill-opacity='.4'/><circle cx='905' cy='136' r='2' fill-opacity='.4'/><circle cx='918' cy='210' r='2' fill-opacity='.4'/><circle cx='928' cy='248' r='3.6'/></g><circle cx='928' cy='248' r='10' stroke='%2370ABDC' stroke-opacity='.8' stroke-width='1.5'/></svg>");
	--th-globe: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 540 540' fill='none'><g stroke='%2370ABDC' stroke-opacity='.28' stroke-width='1'><circle cx='270' cy='270' r='250'/><ellipse cx='270' cy='270' rx='241.5' ry='250'/><ellipse cx='270' cy='270' rx='216.5' ry='250'/><ellipse cx='270' cy='270' rx='176.8' ry='250'/><ellipse cx='270' cy='270' rx='125.0' ry='250'/><ellipse cx='270' cy='270' rx='64.7' ry='250'/><path d='M270 20V520'/><path d='M145.0 486.5H395.0'/><path d='M78.5 430.7H461.5'/><path d='M35.1 355.5H504.9'/><path d='M20.0 270.0H520.0'/><path d='M35.1 184.5H504.9'/><path d='M78.5 109.3H461.5'/><path d='M145.0 53.5H395.0'/></g><g stroke='%2370ABDC' stroke-opacity='.8' stroke-width='1.5' stroke-dasharray='3 5'><path d='M150 190Q240 115 330 150'/><path d='M330 150Q362 170 395 300'/><path d='M395 300Q308 275 220 360'/><path d='M150 190Q185 220 220 360'/><path d='M220 360Q260 335 300 420'/></g><g fill='%2370ABDC'><circle cx='150' cy='190' r='4.5'/><circle cx='330' cy='150' r='4.5'/><circle cx='395' cy='300' r='4.5'/><circle cx='220' cy='360' r='4.5'/><circle cx='300' cy='420' r='4.5'/></g></svg>");
}

/* ---------- Signature motif: traced network (page heads, CTA) ---------- */

.th-pagehead--dark,
.th-hero--page {
	background:
		linear-gradient(90deg, var(--th-ink) 30%, rgba(27, 34, 52, .35) 62%, rgba(27, 34, 52, 0) 100%),
		var(--th-net) right -2% center / auto 112% no-repeat,
		radial-gradient(ellipse at 85% 40%, rgba(48, 77, 155, .35) 0%, rgba(27, 34, 52, 0) 60%),
		var(--th-ink) !important;
}
.th-cta {
	background:
		linear-gradient(90deg, var(--th-ink) 35%, rgba(27, 34, 52, .6) 70%, rgba(27, 34, 52, .45) 100%),
		var(--th-net) right -4% center / auto 135% no-repeat,
		var(--th-ink) !important;
}
.th-cta .th-cta__box { background: transparent !important; }

/* ---------- Hero: latest strip ---------- */

.th-strip { border-top: 1px solid var(--th-rule-dark); padding-block: 1.5rem 2.25rem; display: grid; grid-template-columns: 180px 1fr; gap: 1rem 2rem; align-items: start; }
.th-strip__label { margin: .2rem 0 0 !important; font-size: .75rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--th-sky); }
.th-strip__posts { margin: 0 !important; }
.th-strip__posts .wp-block-post-template { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 !important; margin: 0 !important; padding: 0 !important; list-style: none; }
.th-strip__posts .wp-block-post { margin: 0 !important; padding: 0 1.5rem; border-left: 1px solid var(--th-rule-dark); }
.th-strip__posts .wp-block-post:first-child { padding-left: 0; border-left: 0; }
.th-strip__date { font-size: .75rem !important; color: var(--th-on-dark-2); letter-spacing: .04em; margin: 0 0 .35rem !important; }
.th-strip__title { margin: 0 !important; font-family: var(--th-sans) !important; font-size: .9375rem !important; font-weight: 500 !important; line-height: 1.45 !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.th-strip__title a { color: #fff !important; text-decoration: none; }
.th-strip__title a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Section head (title left, intro right) ---------- */

.th-sechead { gap: 1.5rem 4rem !important; align-items: flex-end !important; margin-bottom: 0 !important; }
.th-sechead h2 { margin: 0 !important; }
.th-sechead p { margin: 0 0 .25rem !important; color: var(--th-muted); max-width: 34rem; }
.th-sechead .th-link { margin-top: 1rem !important; }
.th-sechead .th-label { margin-bottom: 1.25rem !important; }

/* ---------- Image tiles (services) ---------- */

.th-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: clamp(2.25rem, 4vw, 3.25rem) !important; }
.th-tile { position: relative; display: flex; flex-direction: column; margin: 0 !important; background: var(--th-ink); color: var(--th-on-dark); overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
.th-tile:hover, .th-tile:focus-within { transform: translateY(-4px); box-shadow: 0 28px 56px rgba(27, 34, 52, .22); }
.th-tile__media { position: relative; margin: 0 !important; aspect-ratio: 16 / 10; overflow: hidden; background: var(--th-blue); }
.th-tile__media img { display: block; width: 100%; height: 100% !important; object-fit: cover; filter: grayscale(1) contrast(1.15); mix-blend-mode: luminosity; opacity: .78; transition: transform .7s ease, opacity .3s ease; }
.th-tile__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(27, 34, 52, .05) 30%, rgba(27, 34, 52, .9) 100%); }
.th-tile:hover .th-tile__media img { transform: scale(1.05); opacity: .9; }
.th-tile__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem 1.6rem 1.75rem; margin: 0 !important; }
.th-tile__num { margin: 0 0 .9rem !important; font-size: .75rem !important; font-weight: 600; letter-spacing: .16em; color: var(--th-sky); }
.th-tile__title { margin: 0 0 .75rem !important; font-size: 1.375rem !important; line-height: 1.25 !important; color: #fff; }
.th-tile__title a { color: #fff !important; text-decoration: none; }
.th-tile__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.th-tile__text { flex: 1; margin: 0 !important; font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
.th-tile__body::after { content: "Learn more \2192"; display: block; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--th-rule-dark); font-size: .8125rem; font-weight: 600; letter-spacing: .02em; color: #fff; }
.th-tile:hover .th-tile__body::after { color: var(--th-sky); }

/* ---------- Reach band (globe) ---------- */

.th-reach { position: relative; overflow: hidden;
	background:
		var(--th-globe) right max(-40px, calc(50% - 640px)) center / auto 82% no-repeat,
		radial-gradient(ellipse at 80% 50%, rgba(48, 77, 155, .3) 0%, rgba(27, 34, 52, 0) 55%),
		var(--th-ink) !important; }
.th-reach__inner { max-width: var(--wp--style--global--wide-size); }
.th-reach h2 { max-width: 16ch; }
.th-reach__text { max-width: 38rem; font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.6; color: var(--th-on-dark); margin-top: 1.25rem !important; }
.th-reach__text strong { color: #fff; font-weight: 600; }
.th-reach .th-facts { max-width: 58rem; margin-top: clamp(2rem, 4vw, 3rem) !important; border-bottom: 1px solid var(--th-rule-dark); }
.th-reach .wp-block-buttons { margin-top: 2rem !important; }

/* ---------- Duotone images on dark feature sections ---------- */

.th-dark .th-split .wp-block-image { position: relative; background: var(--th-ink); }
.th-dark .th-split .wp-block-image img { filter: none; mix-blend-mode: normal; opacity: 1; }
.th-dark .th-split .wp-block-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, rgba(27, 34, 52, 0) 55%, rgba(27, 34, 52, .35) 100%); }
.th-fact__value--text { white-space: nowrap; }

/* ---------- Services mega menu ---------- */

.th-nav .wp-block-navigation-item__description { display: none; }
@media (min-width: 1101px) {
	.th-nav .th-mega > .wp-block-navigation__submenu-container {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		min-width: 660px !important;
		padding: 1rem !important;
		left: 50% !important;
		transform: translateX(-50%);
	}
	.th-nav .th-mega > .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: block !important; padding: .9rem 1rem !important; }
	.th-nav .th-mega .wp-block-navigation-item__label { display: block; font-weight: 600; color: var(--th-ink); }
	.th-nav .th-mega .wp-block-navigation-item__description { display: block; margin-top: .25rem; font-size: .8125rem; line-height: 1.45; font-weight: 400; color: var(--th-muted); }
	.th-nav .th-mega > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child { grid-column: 1 / -1; border-top: 1px solid var(--th-rule); margin-top: .5rem; padding-top: .25rem; }
	.th-nav .th-mega > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child .wp-block-navigation-item__label::after { content: " \2192"; }
}

/* ---------- Motion: quiet section reveal (only when JS has added .th-js) ---------- */

@media (prefers-reduced-motion: no-preference) {
	.th-js .th-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
	.th-js .th-reveal.is-in { opacity: 1; transform: none; }
}

/* ---------- v3 small screens ---------- */

@media (max-width: 1100px) {
	.th-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	.th-tiles { grid-template-columns: 1fr; gap: 1rem; }
	.th-strip { grid-template-columns: 1fr; padding-block: 1.25rem 1.75rem; }
	.th-strip__posts .wp-block-post-template { grid-template-columns: 1fr; gap: 1rem !important; }
	.th-strip__posts .wp-block-post { padding: 0; border-left: 0; }
	.th-strip__posts .wp-block-post:nth-child(n+2) { display: none; }
	.th-reach { background-size: auto 60%, auto, auto !important; background-position: right -120px bottom -40px, center, center !important; }
	.th-pagehead--dark, .th-hero--page { background-size: auto, auto 70%, auto, auto !important; background-position: center, right -180px bottom, center, center !important; }
}
.th-section--tiles .th-tiles { margin-top: 0 !important; }

/* =========================================================
   v4 layer: T&H brand system (Montserrat · black · dark blue #304D9B · light blue #70ABDC)
   ========================================================= */

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Headings: Montserrat SemiBold, tight tracking */
:where(h1, h2, h3, h4) { font-weight: 600; letter-spacing: -.02em; }
.th-hero h1, .th-hero--page h1, .th-pagehead__title { font-weight: 600 !important; letter-spacing: -.025em; line-height: 1.08; }
.th-intro .th-statement { font-weight: 500; letter-spacing: -.015em; line-height: 1.4; font-size: clamp(1.375rem, 2.2vw, 1.875rem); }
.th-fact__value, .th-stat__num { font-weight: 600 !important; letter-spacing: -.02em; }
.th-index__row::before, .th-step::before { font-weight: 600; }
.wp-block-details summary { font-weight: 600; font-size: 1.125rem; letter-spacing: -.01em; }
.th-card__title, .th-post-card__title, .th-tile__title { font-weight: 600 !important; letter-spacing: -.015em; }
.th-footer__tagline { font-weight: 600; font-size: 1.25rem; letter-spacing: -.01em; }

/* Logo lockup: mark + T&H / CONSULTING, as in the brand files */
.th-brand { gap: .75rem; }
.th-brand__name { font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif); font-weight: 800; font-size: .9375rem; line-height: 1.05; letter-spacing: .02em; text-transform: uppercase; white-space: normal; width: min-content; overflow-wrap: normal !important; word-break: normal !important; hyphens: none; }
.th-brand__name a { white-space: normal; overflow-wrap: normal; word-break: normal; }
.th-brand__name a { color: var(--th-ink); }
.th-brand--light .th-brand__name a { color: #fff; }

/* Labels: brand stationery style */
.th-label, .th-eyebrow, .th-strip__label, .th-tile__num { letter-spacing: .2em !important; }

/* Navigation */
.th-nav .wp-block-navigation-item__content { font-weight: 500; font-size: .875rem; letter-spacing: .01em; }
.th-nav .is-menu-open .wp-block-navigation-item__content { font-weight: 600; font-size: 1.25rem; }

/* Buttons: brand dark blue, uppercase */
.wp-block-button__link { text-transform: uppercase; letter-spacing: .08em; font-size: .8125rem !important; font-weight: 600 !important; }
.wp-block-button:not(.is-style-outline):not(.th-btn-light) > .wp-block-button__link { background: var(--th-blue); color: #fff; }
.wp-block-button:not(.is-style-outline):not(.th-btn-light) > .wp-block-button__link:hover { background: var(--th-ink); color: #fff; }
.th-header__cta .wp-block-button__link { padding: .85rem 1.3rem; }
.th-btn-light > .wp-block-button__link:hover { background: var(--th-sky); color: var(--th-ink); }
.th-link a, a.th-arrow { font-weight: 600; letter-spacing: .01em; }

/* Links */
.th-content a:not(.wp-block-button__link) { color: var(--th-blue); }

/* Black, not navy, for dark surfaces */
.th-footer { background: var(--th-ink) !important; }
.th-tile { background: var(--th-ink); }
.th-tile__media { background: var(--th-blue); }
.th-tile:hover .th-tile__title a, .th-tile:focus-within .th-tile__title a { color: var(--th-sky) !important; }

/* CTA band: navy with the diagonal line pattern from the identity (final colours in the colour-system layer below) */
.th-cta {
	background:
		repeating-linear-gradient(135deg, rgba(255, 255, 255, .045) 0 1px, transparent 1px 30px),
		var(--th-ink) !important;
}
.th-cta .th-label { color: #fff !important; opacity: .85; }
.th-cta .th-cta__text p { color: rgba(255, 255, 255, .85); }
.th-cta .th-btn-light > .wp-block-button__link { background: #fff; color: var(--th-ink); }
.th-cta .th-btn-light > .wp-block-button__link:hover { background: var(--th-ink); color: #fff; }
.th-cta .th-btn-ghost.is-style-outline > .wp-block-button__link { border-color: rgba(255, 255, 255, .7); }
.th-footer__tagline { max-width: 11.5em; }
@media (max-width: 781px) { .th-fact__value--text { white-space: normal; } }

/* ---------- Reach map (About page) ---------- */

.th-map { margin: clamp(2rem, 4vw, 3rem) 0 0; }
.th-map__canvas { position: relative; }
.th-map__svg { display: block; width: 100%; height: auto; }
.th-map__other { fill: var(--th-navy-2); stroke: var(--th-ink); stroke-width: 1.2; stroke-linejoin: round; }
.th-map__cases path { stroke: var(--th-ink); stroke-width: 1.2; stroke-linejoin: round; transition: fill .15s ease; }
.th-map__dots circle { stroke: var(--th-ink); stroke-width: 2; transition: fill .15s ease; }
.th-map .b1 { fill: #304D9B; } .th-map .b2 { fill: #456CB1; } .th-map .b3 { fill: #5B8CC6; } .th-map .b4 { fill: #70ABDC; }
.th-map [data-c].is-on { fill: #fff; }
.th-map__tip { position: absolute; z-index: 2; transform: translate(-50%, calc(-100% - 14px)); background: #fff; color: var(--th-ink); padding: .55rem .8rem; font-size: .8125rem; line-height: 1.35; white-space: nowrap; pointer-events: none; box-shadow: 0 10px 28px rgba(27, 34, 52, .45); }
.th-map__tip strong { display: block; font-weight: 600; }
.th-map__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--th-rule-dark); }
.th-map__legend { list-style: none; margin: 0; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .8125rem; color: var(--th-on-dark); }
.th-map__legend li { display: flex; align-items: center; gap: .55rem; margin: 0 !important; }
.th-map__sw { display: inline-block; width: 14px; height: 14px; border-radius: 2px; }
.th-map__sw.b1 { background: #304D9B; } .th-map__sw.b2 { background: #456CB1; } .th-map__sw.b3 { background: #5B8CC6; } .th-map__sw.b4 { background: #70ABDC; }
.th-map__note { margin: 0 !important; font-size: .8125rem; color: var(--th-on-dark-2); }
.th-map__all { margin-top: 1.25rem; }
.th-map__all summary { cursor: pointer; display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #fff; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.th-map__all summary::-webkit-details-marker { display: none; }
.th-map__all summary::after { content: " +"; }
.th-map__all[open] summary::after { content: " \2212"; }
.th-map__list { columns: 4 200px; column-gap: 2.5rem; list-style: none; margin: 1.5rem 0 0; padding: 0 !important; font-size: .8125rem; color: var(--th-on-dark); }
.th-map__list li { display: flex; justify-content: space-between; gap: 1rem; break-inside: avoid; margin: 0 !important; padding: .4rem 0; border-bottom: 1px solid var(--th-rule-dark); }
.th-map__list li span:last-child { color: #fff; font-variant-numeric: tabular-nums; }

/* ---------- Certificates page ---------- */

.th-certs { border-top: 1px solid var(--th-rule); }
.th-cert { gap: clamp(1.5rem, 5vw, 4.5rem) !important; margin: 0 !important; padding-block: clamp(2.25rem, 4vw, 3.25rem); border-bottom: 1px solid var(--th-rule); }
.th-cert h2 { font-size: var(--wp--preset--font-size--x-large); line-height: 1.25; margin: 1rem 0 0 !important; }
.th-cert__meta { margin: .6rem 0 0 !important; font-size: .8125rem; font-weight: 600; letter-spacing: .04em; color: var(--th-blue); }
.th-cert__text p:not([class]) { margin-top: 1.1rem !important; color: var(--th-muted); line-height: 1.7; }
.th-cert .wp-block-gallery { margin: 0 !important; gap: 1rem !important; }
.th-cert .wp-block-image { margin: 0 !important; }
.th-cert .wp-block-image img { display: block; width: 100%; height: auto; background: #fff; border: 1px solid var(--th-rule); box-shadow: 0 12px 30px rgba(27, 34, 52, .07); }
.th-cert .wp-block-column > .wp-block-image { max-width: 460px; }

/* ---------- Odd tile and menu counts ---------- */

/* A lone last tile spans its row and lies on its side, so the grid never ends with a gap. */
@media (min-width: 1101px) {
	.th-tiles > .th-tile:last-child:nth-child(3n+1) { grid-column: 1 / -1; flex-direction: row; }
	.th-tiles > .th-tile:last-child:nth-child(3n+1) .th-tile__media { flex: 0 0 calc((100% - 3rem) / 3); aspect-ratio: auto; min-height: 15rem; }
	.th-tiles > .th-tile:last-child:nth-child(3n+1) .th-tile__body { padding: 2rem 2.25rem; }
	.th-tiles > .th-tile:last-child:nth-child(3n+1) .th-tile__text { max-width: 40rem; }
}
@media (min-width: 782px) and (max-width: 1100px) {
	.th-tiles > .th-tile:last-child:nth-child(odd) { grid-column: 1 / -1; flex-direction: row; }
	.th-tiles > .th-tile:last-child:nth-child(odd) .th-tile__media { flex: 0 0 calc((100% - 1.5rem) / 2); aspect-ratio: auto; min-height: 14rem; }
}
/* With an odd number of services, "View all services" takes the free cell instead of a row of its own. */
@media (min-width: 1101px) {
	.th-nav .th-mega > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child:nth-child(even) { grid-column: auto; border-top: 0; margin-top: 0; padding-top: 0; }
}

/* =========================================================
   v5 layer: Nunito Sans. Light display headings, bold sub-heads, regular text.
   (Montserrat is kept only for the logo wordmark.)
   ========================================================= */

h1, h2 { font-weight: 300 !important; letter-spacing: -.01em; }
h3, h4, h5, h6 { font-weight: 700; letter-spacing: 0; }
.th-hero h1, .th-hero--page h1, .th-pagehead__title { font-weight: 300 !important; letter-spacing: -.015em; line-height: 1.1; }
.th-card__title, .th-post-card__title, .th-tile__title, .th-strip__title { font-weight: 700 !important; letter-spacing: 0; }
.th-fact__value, .th-stat__num { font-weight: 300 !important; letter-spacing: -.01em; }
.th-intro .th-statement, .th-footer__tagline { font-weight: 300; letter-spacing: 0; }
.wp-block-details summary { font-weight: 700; letter-spacing: 0; }
.th-label, .th-eyebrow, .th-strip__label, .th-tile__num, .th-footer__heading { font-weight: 700 !important; }
.th-nav .wp-block-navigation-item__content { font-weight: 600; font-size: .9375rem; letter-spacing: 0; }
.th-nav .th-mega .wp-block-navigation-item__label { font-weight: 700; }
.wp-block-button__link { font-weight: 700 !important; }
.th-link a, a.th-arrow { font-weight: 700; }

/* ---------- Comparison table (e.g. expert evidence by jurisdiction) ---------- */

.wp-block-table.th-table { margin: 1.75rem 0 2.25rem !important; overflow-x: auto; }
.wp-block-table.th-table table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); line-height: 1.55; }
.wp-block-table.th-table th, .wp-block-table.th-table td { text-align: left; vertical-align: top; padding: .9rem 1.25rem .9rem 0; border: 0; border-bottom: 1px solid var(--th-rule); }
.wp-block-table.th-table thead { border: 0; }
.wp-block-table.th-table thead th { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--th-muted); border-bottom: 2px solid var(--th-ink); }
.wp-block-table.th-table td { color: var(--th-muted); }
.wp-block-table.th-table td:first-child { width: 24%; font-weight: 700; color: var(--th-ink); }
.wp-block-table.th-table td:last-child { width: 30%; color: var(--th-ink); }
.wp-block-table.th-table figcaption { margin-top: .9rem; font-size: .8125rem; line-height: 1.5; color: var(--th-muted); text-align: left; }
@media (max-width: 781px) {
	.wp-block-table.th-table thead { display: none; }
	.wp-block-table.th-table tr { display: block; padding: 1rem 0; border-bottom: 1px solid var(--th-rule); }
	.wp-block-table.th-table td { display: block; width: auto !important; padding: .2rem 0; border: 0; }
}


/* =========================================================
   Case map figure (OSINT page): inline SVG, scrolls sideways on small screens
   ========================================================= */
.th-casemap { margin: 2.25rem 0 2.5rem; }
.th-casemap__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 1px solid var(--th-ink); border-bottom: 1px solid var(--th-rule); padding: 1.5rem 0 1rem; }
.th-casemap__scroll svg { display: block; width: 100%; height: auto; min-width: 680px; }
.th-casemap figcaption { font-size: var(--wp--preset--font-size--x-small); line-height: 1.55; color: var(--th-muted); margin-top: .85rem; }
.th-casemap__hint { display: none; font-size: var(--wp--preset--font-size--x-small); color: var(--th-muted); margin: 0 0 .5rem; }
@media (max-width: 720px) { .th-casemap__hint { display: block; } }


/* =========================================================
   Client reviews (Trustpilot quotes, shown as written)
   ========================================================= */
.th-reviews{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3rem) / 3);gap:1.5rem;margin:0;padding:0 0 1rem;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--th-muted) transparent;overscroll-behavior-x:contain}
.th-review{scroll-snap-align:start}
.th-rownav{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;margin-top:1.25rem}
.th-rownav__count{margin-right:auto;font-size:.8125rem;font-weight:600;letter-spacing:.08em;color:var(--th-muted);font-variant-numeric:tabular-nums}
.th-reviews.has-nav{padding-bottom:4px;scrollbar-width:none}
.th-reviews.has-nav::-webkit-scrollbar{display:none}
.th-rownav[hidden]{display:none}
.th-reviews:focus-visible{outline:2px solid var(--th-blue);outline-offset:4px}
.th-rownav__btn{width:44px;height:44px;border:1px solid var(--th-ink);background:#fff;color:var(--th-ink);font-size:1.125rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.th-rownav__btn:hover{background:var(--th-ink);color:#fff}
.th-rownav__btn:disabled{opacity:.3;cursor:default;background:#fff;color:var(--th-ink)}
@media (prefers-reduced-motion:reduce){.th-reviews{scroll-behavior:auto}}
.th-review{display:flex;flex-direction:column;margin:0;background:#fff;border-top:2px solid var(--th-ink);padding:1.75rem 1.75rem 1.5rem;box-shadow:0 1px 0 var(--th-rule)}
.th-review__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.th-review__stars{color:var(--th-blue);flex:none}
.th-review__tag{font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--th-blue);text-align:right;line-height:1.35}
.th-review__quote{position:relative;flex:1;margin:0;padding:0;border:0;font-size:1rem;line-height:1.65;color:var(--th-ink)}
.th-review__mark{display:block;width:30px;height:22px;color:var(--th-sky);margin-bottom:1rem}
.th-review__quote p{margin:0;font-size:inherit;color:inherit}
.th-review__by{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.15rem 1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--th-rule);font-size:.875rem;line-height:1.45}
.th-review__name{font-weight:700;color:var(--th-ink)}
.th-review__meta{grid-column:1;color:var(--th-muted)}
.th-review__link{grid-column:2;grid-row:1/span 2;align-self:end;font-weight:600;font-size:.8125rem;color:var(--th-ink)!important;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px;white-space:nowrap}
.th-review__link::after{content:" \2197"}
.th-review__link:hover{color:var(--th-blue)!important}
.th-reviews-section .th-note{background:#fff}
@media (max-width:1024px){.th-reviews{grid-auto-columns:calc((100% - 1.5rem) / 2)}}
@media (max-width:680px){.th-reviews{grid-auto-columns:86%;gap:1rem}.th-review{padding:1.5rem 1.25rem 1.25rem}}


/* =========================================================
   Logo: the original T&H artwork (mark + wordmark), colour on light, white text on dark
   ========================================================= */
.th-logo { display: block; line-height: 0; }
.th-logo img { display: block; height: 56px; width: auto; max-width: none; }
.th-brand--light .th-logo img { height: 72px; }
@media (max-width: 600px) { .th-header .th-logo img { height: 44px; } }


/* =========================================================
   FAQ: sectioned accordion
   ========================================================= */
.th-content h2 + .wp-block-details { border-top: 1px solid var(--th-ink); }
.th-content .wp-block-details + h2 { margin-top: clamp(2.75rem, 5vw, 3.75rem); }
.th-content h2[id] { scroll-margin-top: calc(var(--th-header-h) + 3rem); }
.th-faq-nav { font-size: var(--wp--preset--font-size--small); line-height: 2; color: var(--th-muted); border-top: 1px solid var(--th-rule); border-bottom: 1px solid var(--th-rule); padding: .75rem 0; }
.th-faq-nav a { color: var(--th-ink); text-decoration: none; font-weight: 600; white-space: nowrap; }
.th-faq-nav a:hover { color: var(--th-blue); text-decoration: underline; }


/* =========================================================
   Case studies page
   ========================================================= */
.th-content .th-case-label { margin-top: clamp(2.5rem, 4.5vw, 3.5rem) !important; margin-bottom: .6rem !important; }
.th-content .th-case-label + h2 { margin-top: 0 !important; }
.wp-block-details.th-case { padding: 1.6rem 0; }
.th-case summary { align-items: flex-start; }
.th-case summary::after { margin-top: .15rem; }
.th-case__head { display: flex; flex-direction: column; gap: .4rem; }
.th-case__label { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--th-blue); line-height: 1.4; }
.th-case__title { font-size: clamp(1.25rem, 2vw, 1.5rem); font-weight: 700; color: var(--th-ink); line-height: 1.25; letter-spacing: -.005em; }
.th-case__teaser { font-size: var(--wp--preset--font-size--small); font-weight: 400; color: var(--th-muted); line-height: 1.55; letter-spacing: 0; }
.th-case summary:hover .th-case__title { color: var(--th-blue); }
.wp-block-details.th-case > :not(summary) { color: var(--th-ink); max-width: none; }
.wp-block-details.th-case > :nth-child(2) { margin-top: 1.5rem; }
.th-case[id] { scroll-margin-top: calc(var(--th-header-h) + 2rem); }
.th-content > p + .wp-block-details.th-case { margin-top: 2rem !important; }
/* ---------- Brand gradient: logo dark blue to light blue, brought back from the previous site ---------- */
:root { --th-grad: linear-gradient(90deg, #304D9B 0%, #70ABDC 100%); --th-grad-btn: linear-gradient(90deg, #304D9B 0%, #70ABDC 50%, #304D9B 100%); }
/* Buttons: flat. Dark blue on light backgrounds, white on dark backgrounds, outline for secondary */
.wp-block-button:not(.is-style-outline):not(.th-btn-light) > .wp-block-button__link { background: var(--th-blue) !important; color: #fff !important; border: 1px solid var(--th-blue); }
.th-btn-light > .wp-block-button__link { background: #fff !important; color: var(--th-ink) !important; border: 1px solid #fff; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent !important; color: var(--th-ink) !important; border: 1px solid var(--th-ink) !important; }
.th-btn-ghost.is-style-outline > .wp-block-button__link, .th-dark .is-style-outline > .wp-block-button__link, .th-hero .is-style-outline > .wp-block-button__link, .th-cta .is-style-outline > .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, .6) !important; }
@media (prefers-reduced-motion: reduce) { .wp-block-button__link { transition: none !important; } }
/* Accent rules: eyebrow lines and the top rule of cards, the sidebar, the form and reviews */
.th-label::before, .th-eyebrow::before { background: var(--th-grad) !important; height: 2px; opacity: 1; }
.th-box, .th-aside, .th-review { border-top-color: #304D9B; border-image: var(--th-grad) 1; }
.th-form { border-top-color: transparent; background: var(--th-grad) 0 0 / 100% 2px no-repeat border-box, #fff; }
.th-dark .th-label::before, .th-hero .th-label::before, .th-dark .th-eyebrow::before, .th-hero .th-eyebrow::before { background: linear-gradient(90deg, #70ABDC, rgba(112, 171, 220, .35)) !important; }
/* Footer: a gradient strip where the page meets the footer */
.th-footer { border-top: 4px solid #304D9B; border-image: var(--th-grad) 1; }
/* CTA band: navy with the diagonal line pattern */
.th-cta {
	background:
		repeating-linear-gradient(135deg, rgba(255, 255, 255, .045) 0 1px, transparent 1px 30px),
		var(--th-ink) !important;
}
/* Home contact section: navy, form on a mist card */
#consultation { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .045) 0 1px, transparent 1px 30px), var(--th-ink); border-top: 0; color: #fff; }
#consultation h2, #consultation .th-label { color: #fff !important; }
#consultation .th-label::before { background: rgba(255, 255, 255, .8) !important; }
#consultation .th-lead { color: rgba(255, 255, 255, .9); }
#consultation .th-contact-list { border-top-color: rgba(255, 255, 255, .7); }
#consultation .th-contact-list li { border-bottom-color: rgba(255, 255, 255, .25); color: #fff; }
#consultation .th-contact-list strong { color: rgba(255, 255, 255, .75); }
#consultation .th-contact-list a { color: #fff; }
#consultation .th-contact-list a:hover { color: #fff; text-decoration: underline; }
#consultation .th-note { background: rgba(255, 255, 255, .12); border-left-color: #fff; color: #fff; }
#consultation .th-form { border-color: transparent; background: var(--th-paper); box-shadow: 0 24px 60px rgba(27, 34, 52, .35); }
/* ---------- Home: featured services band (one service at a time), slate navy ---------- */
.th-section--featured { background: var(--th-ink) !important; color: #fff; padding-top: clamp(2.5rem, 4vw, 3.5rem) !important; padding-bottom: clamp(2.5rem, 4vw, 3.5rem) !important; }
.th-section--featured .th-label { color: var(--th-sky) !important; }
.th-section--featured .th-label::before { background: linear-gradient(90deg, #70ABDC, rgba(112, 171, 220, .35)) !important; }
.th-section--featured h2 { color: #fff !important; }
.th-section--featured .th-sechead p:not(.th-label) { color: var(--th-on-dark) !important; }
.th-section--featured .th-link a { color: #fff !important; }
.th-section--featured .th-sechead { flex-wrap: wrap !important; row-gap: 1.25rem !important; }
.th-section--featured .th-sechead > .wp-block-column { flex-basis: 100% !important; }
.th-section--featured .th-sechead > .wp-block-column:last-child { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.th-section--featured .th-sechead > .wp-block-column:last-child > p { margin: 0 !important; }
.th-section--featured .th-sechead > .wp-block-column:last-child > p:not(.th-link) { max-width: 40rem; }
.th-section--featured .th-sechead > .wp-block-column:last-child > .th-link { white-space: nowrap; }
@media (max-width: 781px) { .th-section--featured .th-sechead > .wp-block-column:last-child { flex-direction: column; align-items: flex-start; gap: 1rem; } }
.th-section--featured .th-tiles { display: grid !important; grid-template-columns: none !important; grid-auto-flow: column; grid-auto-columns: 100%; gap: 0 !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; }
.th-section--featured .th-tiles::-webkit-scrollbar { display: none; }
.th-section--featured .th-tiles:focus-visible { outline: 2px solid #70ABDC; outline-offset: 6px; }
.th-section--featured .th-tiles > .th-tile { grid-column: auto !important; flex-direction: row-reverse !important; align-items: center; gap: clamp(2rem, 4vw, 3.5rem); padding: 1rem 0; background: transparent !important; color: var(--th-on-dark); scroll-snap-align: start; transform: none !important; box-shadow: none !important; }
.th-section--featured .th-tiles > .th-tile .th-tile__media { flex: 0 0 54% !important; aspect-ratio: 16 / 9 !important; min-height: 0 !important; background: var(--th-navy-2); }
.th-section--featured .th-tile__media::after { display: none; }
.th-section--featured .th-tile__media img { filter: none !important; mix-blend-mode: normal !important; opacity: 1 !important; }
.th-section--featured .th-tiles > .th-tile .th-tile__body { flex: 1; padding: 0 !important; }
.th-section--featured .th-tile__num { display: none; }
.th-section--featured .th-tile__title { font-size: clamp(1.75rem, 2.6vw, 2.375rem) !important; font-weight: 300 !important; line-height: 1.2 !important; margin: 0 0 1.25rem !important; }
.th-section--featured .th-tile:hover .th-tile__title a, .th-section--featured .th-tile:focus-within .th-tile__title a { color: #fff !important; }
.th-section--featured .th-tiles > .th-tile .th-tile__text { flex: none; max-width: 32rem; font-size: 1.0625rem !important; line-height: 1.65; color: var(--th-on-dark); }
.th-section--featured .th-tile__body::after { content: "Learn more"; display: inline-block; width: max-content; margin-top: 2rem; padding: .9rem 1.6rem; border: 0; background: #fff; color: var(--th-ink); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: background .2s ease; }
.th-section--featured .th-tile:hover .th-tile__body::after, .th-section--featured .th-tile:focus-within .th-tile__body::after { background: #70ABDC; color: var(--th-ink); }
.th-rownav--dots { justify-content: center; gap: 1rem; margin-top: 2rem; }
.th-rownav__dots { display: flex; align-items: center; gap: .25rem; }
.th-rownav__dot { color: inherit; box-sizing: content-box; width: 10px; height: 10px; padding: 6px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .35); background-clip: content-box; cursor: pointer; }
.th-rownav__dot.is-on { background-color: #fff; }
.th-rownav__dot:focus-visible { outline: 2px solid #70ABDC; outline-offset: 0; }
.th-section--featured .th-rownav__btn { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.th-section--featured .th-rownav__btn:hover { background: #fff; color: var(--th-ink); }
.th-section--featured .th-rownav__btn:disabled { background: transparent; color: #fff; }
@media (max-width: 900px) {
	.th-section--featured .th-tiles > .th-tile { flex-direction: column !important; align-items: stretch; gap: 1.5rem; }
	.th-section--featured .th-tiles > .th-tile .th-tile__media { flex: none !important; width: 100%; }
}
/* ---------- Colour system (2 October 2026): navy, dark blue, light blue, mist, white ---------- */
/* Older posts carry inline colours (yellow and bright-blue links); bring them back to the palette */
.th-prose [style*="color"] { color: inherit !important; }
.th-prose a[style*="color"], .th-prose [style*="color"] a { color: var(--th-blue) !important; }
/* Navigation submenus: core defaults to black text */
.wp-block-navigation .wp-block-navigation__submenu-container, .wp-block-navigation .wp-block-navigation__submenu-container a, .wp-block-navigation__responsive-container.is-menu-open { color: var(--th-ink); }
/* Consent banner (CookieYes) in the site palette */
.cky-consent-container .cky-title, .cky-consent-container .cky-notice-des, .cky-consent-container .cky-notice-des * { color: var(--th-ink) !important; }
.cky-consent-container .cky-consent-bar { border-color: var(--th-rule) !important; }
.cky-preference-center, .cky-preference-center *:not(.cky-btn) { color: var(--th-ink) !important; }
.cky-btn.cky-btn-accept { background: var(--th-blue) !important; border-color: var(--th-blue) !important; color: #fff !important; }
.cky-btn.cky-btn-reject, .cky-btn.cky-btn-customize, .cky-btn.cky-btn-preferences { background: transparent !important; border-color: var(--th-ink) !important; color: var(--th-ink) !important; }
.cky-switch input[type="checkbox"]:checked { background: var(--th-blue) !important; }
.cky-btn-revisit-wrapper { background: var(--th-blue) !important; }
/* ---------- Buttons: solid main button, outline second button; on hover they swap (filled becomes outline, outline fills) ---------- */
.wp-block-button__link, .th-rownav__btn { transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; }
/* light backgrounds */
.wp-block-button:not(.is-style-outline):not(.th-btn-light) > .wp-block-button__link:hover, .wp-block-button:not(.is-style-outline):not(.th-btn-light) > .wp-block-button__link:focus-visible { background: var(--th-ink) !important; border-color: var(--th-ink) !important; color: #fff !important; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover, .wp-block-button.is-style-outline > .wp-block-button__link:focus-visible { background: var(--th-ink) !important; border-color: var(--th-ink) !important; color: #fff !important; }
/* dark backgrounds */
.wp-block-button.th-btn-light > .wp-block-button__link:hover, .wp-block-button.th-btn-light > .wp-block-button__link:focus-visible,
:is(.th-dark, .th-hero, .th-cta, .th-section--featured) .wp-block-button:not(.is-style-outline):not(.th-btn-light) > .wp-block-button__link:hover, :is(.th-dark, .th-hero, .th-cta, .th-section--featured) .wp-block-button:not(.is-style-outline):not(.th-btn-light) > .wp-block-button__link:focus-visible { background: transparent !important; border-color: #fff !important; color: #fff !important; }
.wp-block-button.th-btn-ghost.is-style-outline > .wp-block-button__link:hover, .wp-block-button.th-btn-ghost.is-style-outline > .wp-block-button__link:focus-visible,
:is(.th-dark, .th-hero, .th-cta, .th-section--featured) .wp-block-button.is-style-outline > .wp-block-button__link:hover, :is(.th-dark, .th-hero, .th-cta, .th-section--featured) .wp-block-button.is-style-outline > .wp-block-button__link:focus-visible { background: #fff !important; border-color: #fff !important; color: var(--th-ink) !important; }
/* slider and review arrows */
.th-rownav__btn:not(:disabled):hover, .th-rownav__btn:not(:disabled):focus-visible { background: var(--th-ink) !important; border-color: var(--th-ink) !important; color: #fff !important; }
.th-section--featured .th-rownav__btn:not(:disabled):hover, .th-section--featured .th-rownav__btn:not(:disabled):focus-visible { background: #fff !important; border-color: #fff !important; color: var(--th-ink) !important; }
/* "Learn more" in the featured services band (white button on navy) */
.th-section--featured .th-tile:hover .th-tile__body::after, .th-section--featured .th-tile:focus-within .th-tile__body::after { background: transparent !important; color: #fff !important; box-shadow: inset 0 0 0 1px #fff; }
/* ---------- About: three practices as overlapping circles ---------- */
.th-venn { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; margin-top: clamp(2rem, 4vw, 3rem); }
.th-venn__svg { display: block; width: 100%; max-width: 470px; height: auto; margin-inline: auto; overflow: visible; }
.th-venn__c circle { fill: rgba(48, 77, 155, .06); stroke: var(--th-blue); stroke-width: 1.25; cursor: pointer; transition: fill .2s ease, stroke-width .2s ease; }
.th-venn__c[data-key="broker"] circle { fill: rgba(112, 171, 220, .1); stroke: var(--th-sky); }
.th-venn__c[data-key="osint"] circle { fill: rgba(27, 34, 52, .04); stroke: var(--th-ink); }
.th-venn__c[data-key="crypto"]:hover circle, .th-venn[data-active="crypto"] .th-venn__c[data-key="crypto"] circle { fill: rgba(48, 77, 155, .18); stroke-width: 2.5; }
.th-venn__c[data-key="broker"]:hover circle, .th-venn[data-active="broker"] .th-venn__c[data-key="broker"] circle { fill: rgba(112, 171, 220, .3); stroke-width: 2.5; }
.th-venn__c[data-key="osint"]:hover circle, .th-venn[data-active="osint"] .th-venn__c[data-key="osint"] circle { fill: rgba(27, 34, 52, .12); stroke-width: 2.5; }
.th-venn__core circle { fill: var(--th-blue); stroke: #fff; stroke-width: 3; cursor: pointer; transition: fill .2s ease; }
.th-venn__core:hover circle, .th-venn[data-active="core"] .th-venn__core circle { fill: var(--th-ink); }
.th-venn__t { pointer-events: none; }
.th-venn__hint { margin: 1rem 0 0 !important; text-align: center; font-size: .8125rem !important; color: var(--th-muted); }
.th-venn:not(.is-js) .th-venn__hint { display: none; }
.th-venn__t text { text-anchor: middle; font-family: var(--th-sans); }
.th-venn__name { font-size: 15px; font-weight: 700; fill: var(--th-ink); }
.th-venn__x { font-size: 11px; font-weight: 600; fill: var(--th-muted); }
.th-venn__core-t { font-size: 17px; font-weight: 800; letter-spacing: .02em; fill: #fff; }
.th-venn__tabs { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin-bottom: 1.75rem; border-bottom: 1px solid var(--th-rule); }
.th-venn__tabs button { margin: 0 0 -1px; padding: .7rem 0; border: 0; border-bottom: 2px solid transparent; background: none; font: inherit; font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--th-muted); cursor: pointer; }
.th-venn__tabs button:hover { color: var(--th-ink); }
.th-venn__tabs button[aria-selected="true"] { color: var(--th-ink); border-bottom-color: var(--th-blue); }
.th-venn__tabs button:focus-visible { outline: 2px solid var(--th-sky); outline-offset: 2px; }
.th-venn__panel h3 { margin: 0 0 .9rem; font-size: clamp(1.375rem, 2vw, 1.625rem); line-height: 1.25; }
.th-venn__panel > p { margin: 0 0 1.25rem; color: var(--th-muted); line-height: 1.65; }
.th-venn__panel .th-check { margin: 0 0 1.25rem; }
.th-venn__lead { margin: 0 0 .5rem !important; font-size: .75rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--th-blue) !important; }
.th-venn__note { font-size: .8125rem !important; line-height: 1.55 !important; }
.th-venn:not(.is-js) .th-venn__tabs { display: none; }
.th-venn.is-js .th-venn__panel:not(.is-on) { display: none; }
.th-venn.is-js .th-venn__panel.is-on { animation: th-venn-in .3s ease; }
@keyframes th-venn-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .th-venn.is-js .th-venn__panel.is-on { animation: none; } }
@media (max-width: 900px) { .th-venn { grid-template-columns: 1fr; } .th-venn__svg { max-width: 360px; } }

/* ---------- Sticky header: the template part wraps the alert bar and the header, so let the header stick to the page ---------- */
.wp-site-blocks > .wp-block-template-part:has(> .th-header) { display: contents; }
.th-header { transition: box-shadow .2s ease; }
.th-scrolled .th-header { box-shadow: 0 6px 24px rgba(27, 34, 52, .08); border-bottom-color: transparent; }
html { scroll-padding-top: calc(var(--th-header-h) + 1.5rem); }

/* ---------- Article parts: byline, jump links, key figures, author box ---------- */
.th-content .th-byline { margin-bottom: 2rem !important; font-size: .8125rem !important; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: var(--th-muted); }
.th-content .th-byline a { color: var(--th-ink) !important; text-decoration: none; border-bottom: 1px solid var(--th-sky); }
.th-content .th-byline a:hover { color: var(--th-blue) !important; }
.single-post .th-content > .th-lead { color: var(--th-ink); }
.th-jump { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1.25rem; margin-top: 2rem !important; padding: 1rem 0; border-top: 1px solid var(--th-rule); border-bottom: 1px solid var(--th-rule); font-size: .875rem; }
.th-jump__label { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--th-muted); }
.th-content .th-jump a { color: var(--th-ink); font-weight: 700; text-decoration: none; }
.th-content .th-jump a:hover { color: var(--th-blue); }
.th-keyfigs { list-style: none; margin-block: 1.5rem 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--th-ink); }
.th-keyfigs li { margin: 0 !important; padding: 1.25rem 1.25rem 1.4rem 0; border-bottom: 1px solid var(--th-rule); }
.th-keyfigs li:not(:nth-child(3n+1)) { padding-left: 1.25rem; border-left: 1px solid var(--th-rule); }
.th-keyfigs strong { display: block; font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.05; font-weight: 800; letter-spacing: -.02em; color: var(--th-blue); margin-bottom: .5rem; }
.th-keyfigs span { display: block; font-size: .9375rem; line-height: 1.5; color: var(--th-ink); }
@media (max-width: 700px) {
	.th-keyfigs { grid-template-columns: 1fr 1fr; }
	.th-keyfigs li, .th-keyfigs li:not(:nth-child(3n+1)) { padding: 1.1rem 1rem 1.2rem 0; border-left: 0; }
	.th-keyfigs li:nth-child(even) { padding-left: 1rem; border-left: 1px solid var(--th-rule); }
}
.th-article-cta { margin-top: 2.5rem !important; padding: 1.75rem 2rem; background: var(--th-paper); border-left: 2px solid var(--th-blue); }
.th-article-cta p { margin: 0; }
.th-article-cta .th-link { margin-top: 1rem; }
.th-author { margin-top: 3rem !important; padding-top: 1.5rem; border-top: 2px solid var(--th-ink); }
.th-author p { margin: 0; }
.th-author__label { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--th-muted); }
.th-author__name { margin-top: .6rem !important; font-size: 1.25rem; font-weight: 800; }
.th-content .th-author__name a { color: var(--th-ink); text-decoration: none; }
.th-content .th-author__name a:hover { color: var(--th-blue); }
.th-author__role { margin-top: .2rem !important; font-size: .875rem; color: var(--th-muted); }
.th-author__bio { margin-top: .8rem !important; font-size: .9375rem; line-height: 1.6; }
.th-content .th-author + .th-note { margin-top: 2rem; }

/* ---------- Charts (inline SVG and HTML bars, house palette) ---------- */
.th-chart { margin-block: 2.25rem !important; padding: 1.5rem 0 1rem; border-top: 2px solid var(--th-ink); }
.th-chart__head { display: block; margin: 0 0 1.25rem; text-align: left; }
.th-chart__title { display: block; font-size: 1.125rem; line-height: 1.35; font-weight: 800; color: var(--th-ink); }
.th-chart__sub { display: block; margin-top: .3rem; font-size: .875rem; color: var(--th-muted); }
.th-chart__svg { display: block; width: 100%; height: auto; overflow: visible; font-family: var(--th-sans); }
.th-chart__svg--narrow { display: none; }
@media (max-width: 600px) { .th-chart__svg--wide { display: none; } .th-chart__svg--narrow { display: block; } }
.th-chart__grid { stroke: var(--th-rule); stroke-width: 1; }
.th-chart__tick { fill: var(--th-muted); font-weight: 600; }
.th-chart__s polyline { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.th-chart__s circle { stroke: #fff; stroke-width: 2; transition: r .15s ease; }
.th-chart__s circle:hover { r: 7px; }
.th-chart__s--key polyline { stroke: var(--th-blue); stroke-width: 3; }
.th-chart__s--key circle { fill: var(--th-blue); }
.th-chart__s--second polyline { stroke: var(--th-sky); stroke-width: 2.5; }
.th-chart__s--second circle { fill: var(--th-sky); }
.th-chart__s--muted polyline { stroke: color-mix(in srgb, var(--th-muted) 55%, #fff); stroke-width: 1.75; }
.th-chart__s--muted circle { fill: color-mix(in srgb, var(--th-muted) 55%, #fff); }
.th-chart__lab { fill: var(--th-muted); font-weight: 600; }
.th-chart__lab--key { fill: var(--th-ink); font-weight: 800; }
.th-chart__note { margin: 1rem 0 0 !important; font-size: .8125rem !important; line-height: 1.5; color: var(--th-muted) !important; }
.th-chart__data { margin-top: .75rem; font-size: .8125rem; }
.th-chart__data summary { cursor: pointer; font-weight: 700; color: var(--th-blue); letter-spacing: .04em; }
.th-chart__data summary:hover { color: var(--th-ink); }
.th-chart__data table { margin-top: .75rem; }
.th-chart__data caption { text-align: left; padding-bottom: .5rem; color: var(--th-muted); }
.th-chart__data th[scope="col"] { font-weight: 700; color: var(--th-muted); }
.th-chart__data td { font-variant-numeric: tabular-nums; }
.th-chart__key { display: flex; align-items: center; gap: .5rem; margin: 1rem 0 0 !important; font-size: .875rem !important; font-weight: 700; }
.th-chart__swatch { width: 12px; height: 12px; background: var(--th-blue); }
.th-bars { list-style: none; margin: 0 !important; padding: 0 !important; }
.th-bars__row { display: grid; grid-template-columns: 15rem 1fr; align-items: center; gap: 1rem; margin: 0 !important; padding: .32rem 0; font-size: .875rem; }
.th-bars__label { text-align: right; color: var(--th-ink); line-height: 1.3; }
.th-bars__track { display: flex; align-items: center; gap: .6rem; height: 16px; }
.th-bars__bar { display: block; height: 100%; width: calc(var(--w) * .88); min-width: 3px; flex: none; background: color-mix(in srgb, var(--th-muted) 55%, #fff); border-radius: 0 3px 3px 0; transform-origin: left; }
.th-bars__row.is-eu .th-bars__bar { background: var(--th-blue); }
.th-bars__val { font-weight: 700; color: var(--th-muted); font-variant-numeric: tabular-nums; }
.th-bars__row.is-eu .th-bars__val { color: var(--th-ink); }
@media (max-width: 600px) {
	.th-bars__row { grid-template-columns: 1fr; gap: .3rem; padding: .4rem 0; }
	.th-bars__label { text-align: left; }
}

/* ---------- Breadcrumbs: keep them muted, and light on dark page heads (the content link colour must not win) ---------- */
.th-crumbs a:not(.wp-block-button__link) { color: var(--th-muted); }
.th-crumbs a:not(.wp-block-button__link):hover { color: var(--th-ink); }
:is(.th-dark, .th-hero, .th-pagehead--dark) .th-crumbs a:not(.wp-block-button__link) { color: var(--th-on-dark-2); }
:is(.th-dark, .th-hero, .th-pagehead--dark) .th-crumbs a:not(.wp-block-button__link):hover { color: #fff; }

/* ---------- Home: latest updates on a solid dark band under the hero (strip styling unchanged) ---------- */
.th-hero.wp-block-cover { min-height: 0 !important; }
.th-hero__body { padding-block: clamp(3rem, 6vh, 4rem) clamp(2.25rem, 4vh, 3rem) !important; }
.th-news { background: var(--th-ink); margin-block: 0 !important; padding-block: 0 !important; }

/* ---------- Long links and older captioned images never push the page sideways on phones ---------- */
.th-content :where(p, li, td, th, figcaption, blockquote) { overflow-wrap: break-word; }
.th-content .wp-caption { max-width: 100% !important; }
.th-content .wp-caption img { max-width: 100%; height: auto; }

/* ---------- No extra space above the first heading of a page's content ---------- */
.th-content > :first-child, .th-content > :first-child > :first-child, .th-content > :first-child > :first-child > :first-child { margin-top: 0 !important; }

/* ---------- Header dropdowns: a hover bridge over the gap under the menu item, and a short grace period before the panel closes ---------- */
@media (min-width: 600px) {
	.th-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container { height: auto !important; overflow: visible !important; transition: opacity .15s ease .25s, visibility 0s linear .4s !important; }
	.th-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:hover > .wp-block-navigation__submenu-container,
	.th-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:focus-within > .wp-block-navigation__submenu-container { transition-delay: 0s, 0s !important; }
	.th-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 16px; }
}

/* ---------- Shared parts (CTA, Why T&H) on section-built pages: sit flush, never pulled under the footer ---------- */
.th-content--sections > .wp-block-template-part.alignfull { margin-top: 0; margin-bottom: 0; }

/* ---------- Services: practice index (five practices) ---------- */
.th-practices__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem 3rem; margin-bottom: 2.25rem !important; }
.th-practices__head h2 { margin: .875rem 0 0 !important; }
.th-practices__note { max-width: 24rem; margin: 0 !important; font-size: .9375rem; line-height: 1.6; color: var(--th-muted); }
.th-prac { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1.5rem 2.5rem; margin: 0 !important; padding-block: 2rem; border-top: 1px solid var(--th-rule); }
.th-practices__list > .th-prac:first-child { border-top: 2px solid var(--th-ink); }
.th-practices__list > .th-prac:last-child { border-bottom: 1px solid var(--th-rule); }
.th-prac__num { flex: 0 0 3rem; margin: .45rem 0 0 !important; font-size: .8125rem !important; font-weight: 700; letter-spacing: .2em; color: var(--th-blue); }
.th-prac__main { flex: 1 1 18rem; min-width: 0; margin: 0 !important; }
.th-prac__title { margin: 0 !important; font-family: var(--th-sans) !important; font-size: 1.5rem !important; line-height: 1.25 !important; font-weight: 700 !important; letter-spacing: 0 !important; color: var(--th-ink); }
.th-content .th-prac__title a { color: var(--th-ink); text-decoration: none; }
.th-content .th-prac__title a:hover { color: var(--th-blue); }
.th-prac__text { margin: .625rem 0 0 !important; font-size: 1rem; line-height: 1.6; color: var(--th-muted); }
.th-prac__main .th-link { margin-top: 1rem !important; font-size: .875rem; }
.th-prac__list { flex: 1 1 16rem; min-width: 0; margin: 0 !important; }
.th-prac__label { margin: 0 0 .5rem !important; font-size: .6875rem !important; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--th-muted); }
.th-content .th-prac__links { list-style: none; margin: 0 !important; padding: 0 !important; }
.th-content .th-prac__links li { margin: 0 !important; border-top: 1px solid var(--th-rule); font-size: .9375rem; line-height: 1.45; }
.th-content .th-prac__links li:not(:has(a)) { padding-block: .6rem; }
.th-content .th-prac__links a { display: flex; justify-content: space-between; gap: .75rem; padding-block: .6rem; color: var(--th-ink); text-decoration: none; }
.th-content .th-prac__links a::after { content: "\2192"; color: var(--th-blue); transition: transform .2s ease; }
.th-content .th-prac__links a:hover { color: var(--th-blue); }
.th-content .th-prac__links a:hover::after { transform: translateX(3px); }
.th-prac__media { flex: 0 1 13.75rem; margin: 0 !important; aspect-ratio: 4 / 3; background: var(--th-paper); overflow: hidden; }
.th-prac__media img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
@media (max-width: 781px) {
	.th-prac { gap: 1rem; padding-block: 1.75rem; }
	.th-prac__num { flex-basis: 100%; margin: 0 !important; }
	.th-prac__media { display: none; }
}

/* ---------- Home services slider: tighter gap under the section head ---------- */
.th-section--featured .th-tiles { margin-top: 1rem !important; }

/* ---------- Intro text under hero and page-head titles: one quieter size everywhere ---------- */
.th-hero .th-lead, .th-pagehead__lead, .th-pagehead__lead p, .th-pagehead .wp-block-term-description, .th-pagehead .wp-block-term-description p { font-size: 1.0625rem !important; line-height: 1.65 !important; }
@media (max-width: 781px) {
	.th-hero .th-lead, .th-pagehead__lead, .th-pagehead__lead p, .th-pagehead .wp-block-term-description, .th-pagehead .wp-block-term-description p { font-size: 1rem !important; }
}

/* ---------- Intro blocks: the supporting paragraph under the large statement, quieter ---------- */
.th-intro .th-lead { font-size: 1.0625rem !important; line-height: 1.7 !important; }

/* ---------- Lead paragraphs under section headings: one quieter size site-wide ---------- */
.th-lead { font-size: 1.0625rem !important; line-height: 1.7 !important; }
@media (max-width: 781px) { .th-lead { font-size: 1rem !important; } }

/* ---------- Collaboration page: counsel map ---------- */
.th-map-invite { margin: 1.5rem 0 0 !important; font-size: .9375rem; color: var(--th-on-dark); }
.th-map-invite a { color: #fff !important; border-bottom: 1px solid currentColor; text-decoration: none; }

/* ---------- 404: the trail ends here ---------- */
.th-404 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.th-404 > * { margin: 0 !important; max-width: none !important; }
.th-404 h1 { margin-top: 1rem; }
.th-404__lead { margin-top: 1.25rem !important; color: var(--th-muted); font-size: 1.0625rem; line-height: 1.7; }
.th-404 .th-search { margin-top: 1.75rem; }
.th-404 .wp-block-buttons { margin-top: 1.25rem; }
.th-404__label { margin: 2.25rem 0 0 !important; padding-top: 1.25rem; border-top: 1px solid var(--th-rule); font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--th-muted); }
.th-404__links { list-style: none; margin: .85rem 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .9375rem; }
.th-404__links li { margin: 0 !important; }
.th-404__links a { color: var(--th-ink); text-decoration: none; border-bottom: 1px solid var(--th-sky, #70ABDC); }
.th-404__links a:hover { color: var(--th-blue); }
.th-404__art { display: block; width: 100%; height: auto; }
.th-404__lens { animation: th-404-search 7s ease-in-out infinite; }
@keyframes th-404-search { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-16px, 10px); } }
@media (prefers-reduced-motion: reduce) { .th-404__lens { animation: none; } }
@media (max-width: 899px) { .th-404 { grid-template-columns: 1fr; } .th-404__visual { order: -1; max-width: 380px; } }

/* ---------- Light interactions (Oct 2026). Everything below stays still for reduced-motion visitors. ---------- */

/* 1. Home headline: the three sentences appear one after another */
@keyframes th-line-in { from { opacity: 0; transform: translateY(.35em); } to { opacity: 1; transform: none; } }
.th-hero h1 .th-line { display: inline-block; animation: th-line-in .8s cubic-bezier(.2, .7, .2, 1) .1s both; }
.th-hero h1 .th-line + .th-line { animation-delay: .45s; }
.th-hero h1 .th-line + .th-line + .th-line { animation-delay: .8s; }

/* 2. Figures that count up keep a steady width while they change */
.th-fact__value, .th-stat__num { font-variant-numeric: tabular-nums; }

/* 3. Process steps: the line above each step draws in, one after another */
.th-steps .th-step { position: relative; }
.th-fx .th-steps .th-step { border-top-color: var(--th-rule); }
.th-fx .th-section--dark .th-steps .th-step, .th-fx .th-dark .th-steps .th-step { border-top-color: var(--th-rule-dark); }
.th-fx .th-steps .th-step::after { content: ""; position: absolute; left: 0; right: 0; top: -2px; height: 2px; background: var(--th-ink); transform: scaleX(0); transform-origin: left center; transition: transform 1.1s cubic-bezier(.4, 0, .2, 1); }
.th-fx .th-section--dark .th-steps .th-step::after, .th-fx .th-dark .th-steps .th-step::after { background: var(--th-sky); }
.th-fx .th-steps.is-drawn .th-step::after { transform: scaleX(1); }
.th-fx .th-steps > :nth-child(2) .th-step::after { transition-delay: .35s; }
.th-fx .th-steps > :nth-child(3) .th-step::after { transition-delay: .7s; }
.th-fx .th-steps > :nth-child(4) .th-step::after { transition-delay: 1.05s; }

/* 5. Links: the underline thickens from left to right and the arrow steps forward */
.th-link a, a.th-arrow {
	border-bottom: 0;
	padding-bottom: 3px;
	background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%, 0 100%;
	background-size: 100% 1px, 0 2px;
	transition: background-size .35s ease, color .15s ease;
}
.th-link a:hover, a.th-arrow:hover, .th-link a:focus-visible, a.th-arrow:focus-visible { background-size: 100% 1px, 100% 2px; }
.th-link a::after, a.th-arrow::after { content: "\2192"; display: inline-block; margin-left: .35em; transition: transform .25s ease; }
.th-link a:hover::after, a.th-arrow:hover::after { transform: translateX(3px); }
.wp-block-button__link::after { display: inline-block; transition: transform .25s ease; }
.wp-block-button__link:hover::after { transform: translateX(3px); }
.th-card__more::after { display: inline-block; transition: transform .25s ease; }
.th-card:hover .th-card__more::after { transform: translateX(4px); }

/* 6. Cards and boxes */
.th-box { transition: border-top-color .25s ease; }
.th-box:has(.th-link a):hover { border-top-color: var(--th-blue); }
.th-section--dark .th-box:has(.th-link a):hover, .th-dark .th-box:has(.th-link a):hover { border-top-color: #fff; }
.th-prac__media img { transition: transform .7s ease; }
.th-prac:hover .th-prac__media img { transform: scale(1.04); }
.th-relposts__media { display: block; overflow: hidden; }
.th-relposts__media img { transition: transform .5s ease; }
.th-post-card:hover .th-relposts__media img { transform: scale(1.03); }

/* 7. Reading bar on blog posts */
.th-progress { position: fixed; left: 0; top: 0; z-index: 100000; width: 100%; height: 3px; background: var(--th-sky); transform: scaleX(0); transform-origin: 0 50%; pointer-events: none; }
.admin-bar .th-progress { top: 32px; }
@media (max-width: 782px) { .admin-bar .th-progress { top: 46px; } }

/* 8. Back to top */
.th-totop { position: fixed; right: 24px; bottom: 104px; z-index: 60; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid var(--th-rule); background: #fff; color: var(--th-ink); font: 600 1.125rem/1 var(--th-sans); cursor: pointer; box-shadow: 0 8px 24px rgba(27, 34, 52, .12); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s ease, transform .25s ease, visibility .25s, background-color .2s ease, color .2s ease; }
.th-totop.is-on { opacity: 1; visibility: visible; transform: none; }
.th-totop:hover, .th-totop:focus-visible { background: var(--th-ink); color: #fff; border-color: var(--th-ink); }
@media (max-width: 781px) { .th-totop { right: 16px; bottom: 96px; } .single-post .th-totop { display: none; } }

/* 9. Case Insights: filter by region */
.th-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 2rem 0 1.5rem; }
.th-filter button { font: 600 .8125rem/1 var(--th-sans); letter-spacing: .04em; padding: .65rem 1rem; border: 1px solid var(--th-rule); background: #fff; color: var(--th-ink); cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.th-filter button:hover { border-color: var(--th-ink); }
.th-filter button[aria-pressed="true"] { background: var(--th-ink); border-color: var(--th-ink); color: #fff; }
.th-filter__n { margin-left: .4em; opacity: .6; font-variant-numeric: tabular-nums; }
.th-case.is-first { border-top: 1px solid var(--th-ink); }
@keyframes th-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.th-case.is-shown { animation: th-fade-in .35s ease both; }

/* 10. Questions and cases open and close smoothly (where the browser supports it); "Expand all" on the FAQ */
.wp-block-details { interpolate-size: allow-keywords; }
.wp-block-details::details-content { block-size: 0; overflow-y: clip; transition: block-size .35s ease, content-visibility .35s allow-discrete; }
.wp-block-details[open]::details-content { block-size: auto; }
.th-faq-tools { margin-top: 1rem !important; margin-bottom: 0 !important; }
.th-expand { font: 600 var(--wp--preset--font-size--small)/1.4 var(--th-sans); color: var(--th-ink); background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 2px; cursor: pointer; }
.th-expand:hover { color: var(--th-blue); }

/* 4. Verify us: check an email address, website or phone number */
.th-verify { margin: 2.25rem 0; padding: 1.75rem 1.75rem 1.5rem; background: var(--th-paper); border-top: 2px solid var(--th-ink); }
.th-verify__title { margin: 0 !important; font: 700 1.125rem/1.3 var(--th-sans); color: var(--th-ink); }
.th-verify__text { margin: .5rem 0 0 !important; font-size: var(--wp--preset--font-size--small); color: var(--th-muted); line-height: 1.6; }
.th-verify__form { display: flex; margin-top: 1.25rem; border: 1px solid var(--th-ink); background: #fff; }
.th-verify__form input { flex: 1; min-width: 0; border: 0; padding: .85rem 1rem; font: inherit; font-size: 1rem; color: var(--th-ink); background: transparent; }
.th-verify__form input:focus { outline: 2px solid var(--th-sky); outline-offset: -2px; }
.th-verify__form button { border: 0; padding: .85rem 1.4rem; background: var(--th-ink); color: #fff; font: 600 .8125rem/1 var(--th-sans); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.th-verify__form button:hover { background: var(--th-blue); }
.th-verify__result { margin: 1rem 0 0 !important; padding: .9rem 1rem .9rem 2.75rem; position: relative; font-size: var(--wp--preset--font-size--small); line-height: 1.6; background: #fff; border-left: 3px solid var(--th-muted); color: var(--th-ink); }
.th-verify__result::before { position: absolute; left: 1rem; top: .85rem; font-weight: 700; }
.th-verify__result.is-ok { border-left-color: #2E7D5B; }
.th-verify__result.is-ok::before { content: "\2713"; color: #2E7D5B; }
.th-verify__result.is-bad { border-left-color: #B3261E; }
.th-verify__result.is-bad::before { content: "\2715"; color: #B3261E; }
.th-verify__result.is-info::before { content: "i"; color: var(--th-blue); font-style: italic; }
.th-verify__note { margin: .85rem 0 0 !important; font-size: .75rem; color: var(--th-muted); }

@media (prefers-reduced-motion: reduce) {
	.th-hero h1 .th-line, .th-case.is-shown { animation: none; }
	.th-link a, a.th-arrow, .th-link a::after, a.th-arrow::after, .wp-block-button__link::after, .th-card__more::after, .th-prac__media img, .th-relposts__media img, .th-box, .th-totop, .wp-block-details::details-content { transition: none; }
	.th-prac:hover .th-prac__media img, .th-post-card:hover .th-relposts__media img { transform: none; }
}

/* Figure rows with an odd number of items: the last one spans the row on phones */
@media (max-width: 781px) { .th-facts > .wp-block-column:last-child:nth-child(odd), .th-stats > .wp-block-column:last-child:nth-child(odd) { grid-column: 1 / -1; } }
.th-stat__num, .th-fact__value { white-space: nowrap; }
.th-stats:has(> .wp-block-column:nth-child(5)) .th-stat__num { font-size: clamp(2rem, 3.4vw, 2.75rem) !important; }

/* Text links inside dark bands stay white (the page-content link colour was winning) */
.th-content :is(.th-dark, .th-section--dark) a:not(.wp-block-button__link) { color: #fff; }
.th-content :is(.th-dark, .th-section--dark) a:not(.wp-block-button__link):hover { color: var(--th-sky); }
