/* Component styles (former blocks), bundled into one file. */

/* author-box */
.txc-author-box { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.5rem; border: 1px solid var(--txc-border, #e3e5e8); border-radius: var(--txc-radius, 12px); }
.txc-author-box__photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none; }
.txc-author-box p { margin: 0 0 .375rem; }
.txc-author-box__label { font-size: .75rem; color: var(--txc-muted, #5b6470); }
.txc-author-box__bio { color: var(--txc-muted, #5b6470); }
.txc-author-box__links { display: flex; gap: 1rem; font-size: .875rem; }

/* breadcrumbs */
.txc-breadcrumbs { margin-block: 0 1rem; font-size: .875rem; color: var(--txc-muted, #5b6470); }
.txc-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .5rem; list-style: none; margin: 0; padding: 0; }
.txc-breadcrumbs li { display: inline-flex; align-items: center; gap: .5rem; margin: 0; }
.txc-breadcrumbs__sep { opacity: .45; }
.txc-breadcrumbs a { text-decoration: none; }
.txc-breadcrumbs a:hover { text-decoration: underline; }
.txc-breadcrumbs [aria-current="page"] { color: var(--txc-ink, #0A0F1C); font-weight: 600; }
.txc-breadcrumbs a { color: inherit; }
.txc-breadcrumbs > span a, .txc-breadcrumbs > span span { color: inherit; }

/* business-info */
.txc-business-info { margin: 0; }
.txc-business-info p { margin: 0 0 .5rem; }
.txc-business-info address { font-style: normal; line-height: 1.7; }
.txc-business-info a { color: inherit; }

/* case-study-story */
.txc-story { margin-block-start: 0; }
.txc-story__eyebrow { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin: 0 0 .5rem; font-size: .875rem; color: var(--txc-muted, #5b6470); }
.txc-story__eyebrow { margin-top: 1rem; }
.txc-story__tag { display: inline-flex; align-items: center; padding: .25rem .75rem; border-radius: 999px; border: 1px solid var(--txc-border, #e3e5e8); background: var(--txc-surface, #fff); font-size: .8125rem; font-weight: 600; color: var(--txc-ink, #0A0F1C); }
.txc-story__title { margin: 0 0 .75rem; font-size: var(--txc-h1, clamp(2rem, 5vw, 3.25rem)); line-height: 1.1; }
.txc-story__summary { margin: 0; font-size: 1.1875rem; max-width: 46rem; color: var(--txc-muted, #5b6470); }
.txc-story__media { margin: 2rem 0; }
.txc-story__media img { display: block; width: 100%; height: auto; border-radius: var(--txc-radius, 12px); }
.txc-story__section { max-width: var(--txc-measure, 46rem); margin-block: 2rem; }
.txc-story__legacy img { max-width: 100%; height: auto; }
.txc-story__gallery { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.txc-story__gallery figure { margin: 0; }
.txc-story__gallery img { display: block; width: 100%; height: auto; border-radius: var(--txc-radius-sm, 8px); }
.txc-glance { margin: 1.75rem 0 0; padding: 1.25rem 1.5rem; border: 1px solid var(--txc-border, #e3e5e8); border-radius: var(--txc-radius, 12px); background: var(--txc-surface, #fff); }
.txc-glance__label { margin: 0 0 .75rem; font-size: .75rem; font-weight: 700; color: var(--txc-accent, #0b4fd8); }
.txc-glance dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: .875rem 1.5rem; margin: 0; }
.txc-glance dt { font-size: .75rem; color: var(--txc-muted, #5b6470); }
.txc-glance dd { margin: .125rem 0 0; font-weight: 600; }
.txc-glance a { color: inherit; }

/* client-profile */
.txc-client-profile { display: grid; gap: 1.5rem; margin-block-start: 0; }
@media (min-width: 960px) { .txc-client-profile { grid-template-columns: 1.2fr 1fr; } .txc-client-profile__latest { grid-row: span 3; grid-column: 2; } }
.txc-client-profile__logo { max-height: 4.5rem; width: auto; margin-bottom: 1rem; }
.txc-client-profile__name { margin: 0 0 .75rem; font-size: var(--txc-h1, clamp(2rem, 5vw, 3rem)); line-height: 1.1; }
.txc-client-profile__summary { margin: 0; font-size: 1.125rem; color: var(--txc-muted, #5b6470); }
.txc-client-profile__facts { display: grid; gap: .75rem 1.5rem; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); margin: 0; }
.txc-client-profile__facts dt { font-size: .75rem; color: var(--txc-muted, #5b6470); }
.txc-client-profile__facts dd { margin: 0; font-weight: 600; }
.txc-client-profile__label { margin: 0 0 .5rem; font-size: .8125rem; font-weight: 600; }

/* client-timeline */
.txc-timeline__list { list-style: none; margin: 0; padding: 0; border-inline-start: 2px solid var(--txc-border, #e3e5e8); }
.txc-timeline__item { position: relative; display: grid; grid-template-columns: 4.5rem 1fr; gap: 1rem; padding: 0 0 1.75rem 1.5rem; }
.txc-timeline__item::before { content: ""; position: absolute; inset-inline-start: -7px; top: .35rem; width: 12px; height: 12px; border-radius: 50%; background: var(--txc-surface, #fff); border: 2px solid var(--txc-accent, #0b4fd8); }
.txc-timeline__item.is-current::before { background: var(--txc-accent, #0b4fd8); }
.txc-timeline__year { font-weight: 700; font-variant-numeric: tabular-nums; }
.txc-timeline__type { margin: 0; font-size: .8125rem; color: var(--txc-muted, #5b6470); }
.txc-timeline__title { margin: .125rem 0 .25rem; font-size: 1.125rem; }
.txc-timeline__metric { margin: 0; font-weight: 600; color: var(--txc-accent, #0b4fd8); }
.txc-timeline__summary { margin: 0; color: var(--txc-muted, #5b6470); }

/* faq */
.txc-faq__list { max-width: var(--txc-measure, 46rem); border-top: 1px solid var(--txc-border, #e3e5e8); }
.txc-faq__item { border-bottom: 1px solid var(--txc-border, #e3e5e8); }
.txc-faq__item summary { cursor: pointer; padding: 1rem 0; font-weight: 600; min-height: 2.75rem; }
.txc-faq__answer { padding-bottom: 1rem; }
.txc-faq__answer > :first-child { margin-top: 0; }

/* hero */
.txc-hero { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; margin-block-start: 0; }
@media (min-width: 900px) { .txc-hero.has-image { grid-template-columns: 1.1fr 1fr; } }
.txc-hero__eyebrow { margin: 0 0 .5rem; font-size: .8125rem; font-weight: 600; color: var(--txc-accent, #0b4fd8); }
.txc-hero__title { margin: 0 0 1rem; font-size: var(--txc-h1, clamp(2rem, 5vw, 3.5rem)); line-height: 1.08; }
.txc-hero__text { margin: 0 0 1.5rem; font-size: 1.125rem; max-width: 40rem; color: var(--txc-muted, #5b6470); }
.txc-hero__media img { display: block; width: 100%; height: auto; border-radius: var(--txc-radius, 12px); }

/* process-steps */
.txc-process { display: grid; gap: 2rem; }
@media (min-width: 900px) { .txc-process { grid-template-columns: 2fr 1fr; } .txc-process .txc-block__heading { grid-column: 1 / -1; } }
.txc-process__steps { counter-reset: step; list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.txc-process__steps li { counter-increment: step; display: grid; grid-template-columns: 2.5rem 1fr; column-gap: 1rem; }
.txc-process__steps li::before { content: counter(step); grid-row: span 2; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--txc-accent, #0b4fd8); color: #fff; font-weight: 700; }
.txc-process__steps h3 { margin: .25rem 0; font-size: 1.125rem; }
.txc-process__steps p { margin: 0; color: var(--txc-muted, #5b6470); }
.txc-process__aside { padding: 1.5rem; border-radius: var(--txc-radius, 12px); background: var(--txc-surface-alt, #f4f6f8); }
.txc-process__aside h3 { margin: 0 0 .5rem; font-size: 1rem; }
.txc-process__aside ul { margin: 0 0 1.5rem; padding-inline-start: 1.25rem; }

/* results */
.txc-results__list { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); margin: 0 0 2rem; }
.txc-results__item { display: flex; flex-direction: column; padding: 1.25rem; border-radius: var(--txc-radius, 12px); background: var(--txc-surface-alt, #f4f6f8); }
.txc-results__value { order: -1; margin: 0; font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 700; line-height: 1.1; color: var(--txc-accent, #0b4fd8); }
.txc-results__label { font-weight: 600; }
.txc-results__description { margin: .25rem 0 0; font-size: .875rem; color: var(--txc-muted, #5b6470); }
.txc-compare { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; margin: 0 0 2rem; }
.txc-compare__side { position: relative; }
.txc-compare__side img { display: block; width: 100%; height: auto; border-radius: var(--txc-radius-sm, 8px); }
.txc-compare__tag { position: absolute; top: .5rem; inset-inline-start: .5rem; padding: .125rem .5rem; border-radius: 4px; background: rgba(0,0,0,.72); color: #fff; font-size: .75rem; }
.txc-compare figcaption { grid-column: 1 / -1; font-size: .875rem; color: var(--txc-muted, #5b6470); }
@media (max-width: 600px) { .txc-compare { grid-template-columns: 1fr; } }

/* review-summary */
.txc-review-summary__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-bottom: 1.5rem; }
.txc-review-summary__head .txc-block__heading { margin: 0; }
.txc-review-summary__score { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; margin: 0; }
.txc-review-summary__score strong { font-size: 1.5rem; }
.txc-review-summary__stars { color: var(--txc-star, #b8860b); }

/* stats-bar */
.txc-stats__list { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); margin: 0; }
.txc-stats__item { display: flex; flex-direction: column-reverse; gap: .25rem; padding: 1.25rem; border-radius: var(--txc-radius, 12px); background: var(--txc-surface-alt, #f4f6f8); }
.txc-stats__value { margin: 0; font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 700; line-height: 1; }
.txc-stats__label { color: var(--txc-muted, #5b6470); font-size: .875rem; }

/* tldr */
.txc-tldr { padding: 1.25rem 1.5rem; border-inline-start: 4px solid var(--txc-accent, #0b4fd8); background: var(--txc-surface-alt, #f4f6f8); border-radius: 0 var(--txc-radius-sm, 8px) var(--txc-radius-sm, 8px) 0; }
.txc-tldr p { margin: 0; }
.txc-tldr__label { font-size: .75rem; font-weight: 700; color: var(--txc-accent, #0b4fd8); margin-bottom: .375rem !important; }
.txc-tldr__text { font-size: 1.0625rem; }

/* work-matrix */
.txc-matrix__scroll { overflow-x: auto; }
.txc-matrix__scroll:focus-visible { outline: 3px solid var(--txc-focus, #2340d9); outline-offset: 4px; }
.txc-matrix__table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.txc-matrix__table th, .txc-matrix__table td { border-bottom: 1px solid var(--txc-border, #d5dde4); }
.txc-matrix__table thead th { vertical-align: bottom; text-align: left; font-weight: 600; font-size: .8125rem; line-height: 1.25; padding: 0 .375rem .75rem; min-width: 5.25rem; max-width: 7rem; }
.txc-matrix__table tbody th { text-align: left; font-weight: 600; padding: .875rem 1rem .875rem 0; min-width: 11rem; }
.txc-matrix__table a { color: inherit; text-decoration: none; }
.txc-matrix__table th a:hover { color: var(--txc-accent, #2340d9); text-decoration: underline; }
.txc-matrix__table td { padding: .375rem .375rem; position: relative; }
.txc-matrix__table td a {
	display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%;
	background: var(--txc-accent, #2340d9); color: #fff; font-weight: 700; font-size: 1rem;
}
.txc-matrix__table td a:hover, .txc-matrix__table td a:focus-visible { background: var(--txc-ink, #0f1e2e); outline: none; box-shadow: 0 0 0 3px var(--txc-focus-ring, #f2b705); }
.txc-matrix__table td.is-empty::after {
	content: ""; position: absolute; left: calc(.375rem + 1.375rem - 3px); top: 50%; width: 6px; height: 6px; margin-top: -3px;
	border-radius: 50%; background: var(--txc-border, #d5dde4);
}
@media (max-width: 720px) {
	.txc-matrix__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.txc-matrix__table, .txc-matrix__table tbody, .txc-matrix__table tr { display: block; }
	.txc-matrix__table tr { display: flex; flex-wrap: wrap; gap: .5rem; padding: 1rem 0; border-bottom: 1px solid var(--txc-border, #d5dde4); }
	.txc-matrix__table tbody th { display: block; width: 100%; border: 0; padding: 0 0 .25rem; white-space: normal; }
	.txc-matrix__table td { border: 0; padding: 0; }
	.txc-matrix__table td.is-empty { display: none; }
	.txc-matrix__table td a {
		display: inline-flex; align-items: center; gap: .5rem; width: auto; height: auto; white-space: nowrap;
		border-radius: 999px; padding: .375rem .375rem .375rem .875rem; font-size: .875rem;
		background: var(--txc-surface, #fff); color: var(--txc-ink, #0f1e2e); border: 1px solid var(--txc-border, #d5dde4);
	}
	.txc-matrix__table td a::before { content: attr(data-label); font-weight: 500; }
	.txc-matrix__n { display: grid; place-items: center; min-width: 1.75rem; height: 1.75rem; padding: 0 .375rem; border-radius: 999px; background: var(--txc-accent, #2340d9); color: #fff; font-weight: 700; }
}
