/* The home page design system, applied across the whole site: Cormorant Garamond and Outfit, red and orange,
   full-width bands, square cards and small capital labels. Loaded after site.css and singles.css. */

:root {
	--tl-serif: 'Cormorant Garamond', Georgia, serif;
	--tl-sans: 'Outfit', system-ui, sans-serif;
	--tl-muted: #5a4848;
	--tl-soft: #9a8880;
	--tl-cream: #f9f5f0;
	--tl-cream-d: #f0e9e0;
	--tl-border: #e5d9d0;
	--tl-red-fade: rgba(125, 17, 40, .07);
	--tl-red-mid: rgba(125, 17, 40, .14);
	--tl-r-sm: 0;
	--tl-r-md: 0;
	--tl-r-lg: 0;
	--tl-pad: clamp(40px, 6vw, 96px);
	--tl-band: clamp(64px, 8vw, 128px) 5vw;
}

body {
	background: #fff;
	font-weight: 300;
}

/* Full-width bands: no outer padding and no gaps between sections */

.elementor[data-elementor-type="wp-page"],
.ts-wrap {
	padding: 0 !important;
	gap: 0 !important;
}

.elementor .e-con.tl-section,
.elementor .e-con.tl-stats,
.elementor .e-con.tl-highlights,
.elementor .e-con.tl-cr-strip,
.elementor .e-con.tl-perks,
.ts-split,
.ts-edition__ctas {
	--gap: 0px !important;
	--row-gap: 0px !important;
	--column-gap: 0px !important;
	gap: 0 !important;
}

.e-con.tile,
.ts-tile,
.e-con.tl-hero,
.e-con.tl-ph,
.e-con.tl-cv-hero,
.e-con.tl-consult,
.ts-hero,
.ts-consult,
.ts-immersive,
.ts-applysec,
.tl-ticker,
.e-con.tl-stats,
.e-con.tl-highlights,
.e-con.tl-pgrid,
.tl-pgrid--dynamic,
.tl-people .tl-person,
.tl-edition,
.tl-job,
.tl-jobs-empty,
.ts-svc-grid,
.ts-stats {
	border-radius: 0 !important;
}

/* Section labels: tiny capitals with a short rule, as .stag in the design */

.tl-eyebrow .elementor-heading-title,
.ts-eyebrow,
.ts-sbox__h,
.tl-stat__label .elementor-heading-title,
.ts-stat__label,
.tl-person__role .elementor-heading-title,
.tl-people .tl-person__role,
.tl-edition__meta,
.ts-fact .ts-eyebrow,
.tl-crumbs,
.tl-hours b,
.tl-way small,
.ts-applysec__direct span,
.tl-jobs__row--head span,
.ts-jobs__row--head span,
.ts-timeline__when,
.ts-oth span {
	font-family: var(--tl-sans) !important;
	font-size: 9px !important;
	font-weight: 500 !important;
	letter-spacing: .3em !important;
	text-transform: uppercase !important;
}

.tl-eyebrow .elementor-heading-title,
.ts-eyebrow {
	gap: 11px;
	color: var(--tl-brand);
}

.tl-eyebrow .elementor-heading-title::before,
.ts-eyebrow::before {
	width: 24px;
	opacity: 1;
}

/* Headings in Cormorant at weight 300; italic emphasis in red, or light orange on dark */

h1.elementor-heading-title,
h2.elementor-heading-title,
h3.elementor-heading-title,
.tl-display .elementor-heading-title,
.ts-display,
.ts-h2,
.ts-card h3,
.ts-svc h3,
.tl-pgrid--dynamic .tl-pcard h3,
.tl-edition h3,
.ts-job h3,
.ts-timeline h3,
.ts-edu b,
.ts-oth h3,
.tl-people .tl-person h3,
.tl-big p,
.ts-blk__big,
.ts-pf__lead,
.ts-fact__value,
.tl-stat__number .elementor-heading-title,
.ts-stat__number,
.tl-hero__n .elementor-heading-title,
.ts-hero__stat b {
	font-family: var(--tl-serif) !important;
	font-weight: 300 !important;
}

.tl-display .elementor-heading-title,
.ts-display {
	line-height: .9 !important;
	letter-spacing: -.025em;
}

/* Text */

.tl-lead p,
.ts-lead,
.tl-body p,
.ts-body p,
.ts-body li {
	font-weight: 300;
	line-height: 1.9;
}

/* Buttons: orange pill, red pill, white pill and square ghost, all in small capitals */

.tl-btn .elementor-button,
.ts-btn,
.tl-form button[type="submit"],
.ts-apply .ts-btn,
.ct-header [data-id="button"] .ct-button {
	--b: var(--tl-accent);
	--c: #fff;
	height: auto !important;
	min-height: 0 !important;
	padding: .95rem 2.2rem !important;
	border-radius: 0 !important;
	font: 500 10px/1.2 var(--tl-sans) !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
}

.tl-btn .elementor-button,
.ts-btn {
	background: var(--tl-accent);
	border-color: var(--tl-accent);
	color: #fff;
}

.tl-btn .elementor-button:hover,
.ts-btn:hover,
.tl-btn--accent .elementor-button:hover,
.ts-btn--accent:hover {
	background: #d97200;
	border-color: #d97200;
	color: #fff;
}

.tl-btn--accent .elementor-button,
.ts-btn--accent {
	color: #fff;
}

.tl-btn--ghost .elementor-button,
.ts-btn--ghost {
	background: transparent;
	border: 1.5px solid var(--tl-border);
	border-radius: 0 !important;
	color: var(--tl-muted);
}

.tl-btn--ghost .elementor-button:hover,
.ts-btn--ghost:hover {
	background: transparent;
	border-color: var(--tl-brand);
	color: var(--tl-brand);
}

.tl-btn--ghost-light .elementor-button,
.ts-btn--ghost-light {
	background: transparent;
	border: 1.5px solid rgba(255, 255, 255, .28);
	border-radius: 0 !important;
	color: rgba(255, 255, 255, .78);
}

.tl-btn--ghost-light .elementor-button:hover,
.ts-btn--ghost-light:hover {
	background: transparent;
	border-color: rgba(255, 255, 255, .7);
	color: #fff;
}

.tl-btn--light .elementor-button,
.ts-btn--light {
	background: #fff;
	border-color: #fff;
	color: var(--tl-brand);
}

.tl-btn--light .elementor-button:hover,
.ts-btn--light:hover {
	background: var(--tl-cream);
	border-color: var(--tl-cream);
	color: var(--tl-brand);
}

.tl-form button[type="submit"],
.ts-apply .ts-btn {
	background: var(--tl-brand) !important;
	border-radius: 0 !important;
	padding: 1rem 2.5rem !important;
}

.tl-form button[type="submit"]:hover {
	background: var(--tl-brand-strong) !important;
}

.tl-link .elementor-button,
.ts-link {
	font: 500 10px/1.2 var(--tl-sans) !important;
	letter-spacing: .18em !important;
	text-transform: uppercase !important;
	background-image: linear-gradient(var(--tl-red-mid), var(--tl-red-mid)) !important;
}

/* Forms: square fields on white, labels in small capitals */

.tl-form .wpforms-field-label,
.ts-apply label {
	font: 500 9.5px/1.2 var(--tl-sans) !important;
	letter-spacing: .2em !important;
	text-transform: uppercase;
	color: var(--tl-soft) !important;
}

.tl-form input[type="text"],
.tl-form input[type="email"],
.tl-form select,
.tl-form textarea,
.ts-apply input[type="text"],
.ts-apply input[type="email"],
.ts-apply input[type="tel"],
.ts-apply select,
.ts-apply textarea {
	border-radius: 0 !important;
	background: #fff !important;
	font-family: var(--tl-sans) !important;
	font-weight: 300 !important;
}

.tl-form--newsletter .wpforms-container form.wpforms-form,
.tl-form--newsletter button[type="submit"] {
	border-radius: 0 !important;
}

.tl-form--newsletter button[type="submit"] {
	background: var(--tl-accent) !important;
}

/* Header, as the design's nav */

.ct-header [data-row*="middle"] {
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--tl-border);
}

[data-header] .ct-header [data-id="menu"] {
	--theme-link-initial-color: var(--tl-soft);
	--theme-link-hover-color: var(--tl-ink);
	--theme-link-active-color: var(--tl-brand);
}

.ct-header [data-id="button"] .ct-button,
.ct-header [data-id="button"] .ct-button:hover {
	color: #fff;
}

.ct-header [data-id="button"] .ct-button:hover {
	background: #d97200;
}

.ct-header [data-id="menu"] .sub-menu {
	min-width: 220px;
	border-color: var(--tl-border);
	box-shadow: 0 8px 32px rgba(30, 22, 22, .1);
}

.ct-header [data-id="menu"] .sub-menu li {
	border-bottom-color: var(--tl-border);
}

.ct-header [data-id="menu"] .sub-menu .ct-menu-link {
	padding: .75rem 1.4rem;
}

.ct-header [data-id="menu"] .sub-menu .ct-menu-link:hover {
	background: var(--tl-cream);
}

/* Bands and tiles in the design's colours */

.e-con.tile,
.ts-tile {
	background: #fff;
}

.e-con.tl-section.tl-practice,
.e-con.tl-section.tl-groups,
.e-con.tl-section.tl-editions-sec,
.e-con.tl-section.tl-openings,
.ts-section {
	--padding-left: 5vw;
	--padding-right: 5vw;
	background: var(--tl-cream);
}

.ts-section {
	padding-left: 5vw;
	padding-right: 5vw;
}

.e-con.tl-section.tl-approach,
.e-con.tl-section.tl-teamsec,
.e-con.tl-section.tl-testimonials {
	--padding-left: 5vw;
	--padding-right: 5vw;
	background: #fff;
}

.e-con.tl-section.tl-testimonials {
	background: var(--tl-ink);
}

.tl-testimonials .tl-eyebrow .elementor-heading-title {
	color: rgba(255, 255, 255, .4);
}

.tl-testimonials h2.elementor-heading-title {
	color: #fff;
}

.tl-testimonials h2 em {
	color: var(--tl-accent-soft);
}

.tl-testimonials .tl-lead p {
	color: rgba(255, 255, 255, .4);
}

.e-con.tl-tgrid {
	--gap: 1px !important;
	--row-gap: 1px !important;
	--column-gap: 1px !important;
	background: rgba(255, 255, 255, .06);
}

.e-con.tile.tl-tcard {
	background: var(--tl-ink);
	transition: background .3s;
}

.e-con.tile.tl-tcard:hover {
	background: #2a1818;
}

.tl-tcard__quote blockquote {
	color: rgba(255, 255, 255, .72);
	font-weight: 300;
}

.tl-tcard__by {
	border-top-color: rgba(255, 255, 255, .08);
}

.tl-tcard__by b {
	font: 500 11px/1.4 var(--tl-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--tl-accent);
}

.tl-tcard__by span {
	color: rgba(255, 255, 255, .3);
}

.tl-tcard__by i {
	background: var(--tl-brand);
}

/* Cards: hairline grids of square white cards with an orange bar on hover */

.e-con.tl-pgrid,
.tl-pgrid--dynamic,
.ts-svc-grid,
.ts-stats,
.e-con.tl-stats {
	background: var(--tl-border) !important;
	border: 0 !important;
	gap: 1px !important;
	--gap: 1px !important;
	--row-gap: 1px !important;
	--column-gap: 1px !important;
}

.tl-pgrid--dynamic {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tl-pgrid--dynamic .tl-pcard,
.ts-svc,
.ts-card {
	border-radius: 0 !important;
}

.tl-pcard__ico,
.tl-pgrid--dynamic .tl-pcard__ico,
.ts-card__ico,
.ts-wi__n,
.tl-wi__ico,
.tl-vmv__ico,
.tl-perk__ico {
	border-radius: 4px !important;
	background: var(--tl-red-fade);
	border: 1px solid var(--tl-red-mid);
}

.tl-pcard__go,
.ts-svc .ts-link,
.tl-edition__go,
.tl-job__go,
.ts-jobs__go {
	font: 500 9.5px/1 var(--tl-sans) !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
}

.tl-stat__number .elementor-heading-title,
.ts-stat__number {
	font-size: clamp(2.8rem, 4.5vw, 4.5rem) !important;
}

.tl-stat__number sup,
.ts-stat__number sup,
.elementor-heading-title sup {
	color: var(--tl-accent);
}

.e-con.tl-stat,
.ts-stat {
	--padding-top: 3.5rem;
	--padding-bottom: 3.5rem;
	--padding-left: 2.5rem;
	--padding-right: 2.5rem;
}

/* Brand and dark tiles */

.e-con.tile.tl-why__panel,
.e-con.tl-highlights,
.e-con.tile.tl-footer__brand,
.ts-why,
.ts-pf__main,
.ts-ctacard,
.ts-blk--brand,
.ts-strip,
.e-con.tile.tl-vmv__card,
.e-con.tile.tl-cr-strip__item,
.e-con.tile.tl-ctacard {
	background: var(--tl-brand) !important;
}

.e-con.tile.tl-why__panel::after,
.ts-why::after,
.ts-hero::after,
.e-con.tl-ph::after,
.ts-pf__main::after {
	display: none;
}

/* Heroes: full width, flush with the header */

.e-con.tl-hero,
.e-con.tl-ph,
.e-con.tl-cv-hero,
.ts-hero {
	min-height: min(96vh, 880px);
}

.e-con.tl-ph,
.ts-hero--short {
	min-height: min(70vh, 620px);
}

.tl-hero .tl-eyebrow .elementor-heading-title,
.tl-ph .tl-eyebrow .elementor-heading-title,
.ts-hero .ts-eyebrow {
	color: var(--tl-accent-soft);
}

/* Ticker: a red band of small capitals */

.tl-ticker {
	-webkit-mask-image: none;
	mask-image: none;
}

.tl-ticker__track {
	padding: 15px 0;
}

.tl-ticker span {
	font: 400 9.5px/1 var(--tl-sans);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .65);
}

.tl-ticker span::after {
	color: var(--tl-accent-soft);
	opacity: .6;
}

/* Footer */

.ct-footer:has(.tl-footer),
.e-con.tl-footer {
	background: var(--tl-cream);
}

.e-con.tile.tl-footer__news {
	background: #fff;
	border: 1px solid var(--tl-border);
}

.tl-ticker-wrap {
	margin: 0 !important;
}

/* Responsive */

@media (max-width: 1024px) {
	.tl-pgrid--dynamic {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.tl-pgrid--dynamic {
		grid-template-columns: 1fr;
	}
}

/* Home: hero */

.e-con.tl-hero::before {
	background:
		linear-gradient(to top, rgba(14, 8, 8, .97) 0%, rgba(14, 8, 8, .5) 45%, rgba(14, 8, 8, .1) 100%),
		linear-gradient(105deg, rgba(125, 17, 40, .6) 0%, transparent 55%);
}

.e-con.tl-hero__in {
	--padding-left: 5vw;
	--padding-right: 5vw;
	--padding-bottom: 9vh;
	--gap: 4rem;
}

.tl-hero .tl-display .elementor-heading-title {
	font-size: clamp(4rem, 8vw, 9.5rem) !important;
	line-height: .88 !important;
}

.tl-hero .tl-lead p {
	font-size: .9rem;
	color: rgba(255, 255, 255, .48);
	max-width: 480px;
}

.e-con.tl-hero__stats {
	min-width: 200px;
	border-radius: 0;
}

.e-con.tl-hero__stat {
	--padding-top: 1.5rem;
	--padding-bottom: 1.5rem;
	--padding-left: 2rem;
	--padding-right: 2rem;
	background: rgba(255, 255, 255, .06);
}

.tl-hero__n .elementor-heading-title {
	font-size: 2.5rem !important;
}

.tl-hero__l p,
.ts-hero__stat span {
	font: 400 9.5px/1.4 var(--tl-sans) !important;
	letter-spacing: .14em !important;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .36) !important;
}

/* Home: introduction, text only, with the heading beside the copy */

.e-con.tl-section.tl-about {
	--padding-top: 8rem;
	--padding-bottom: 8rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	background: #fff;
	border-bottom: 1px solid var(--tl-border);
}

.e-con.tl-about__head {
	--grid-column-gap: 6vw !important;
	--grid-row-gap: 2.5rem !important;
	column-gap: 6vw !important;
	row-gap: 2.5rem !important;
	align-items: end;
}

.tl-about__intro h2.elementor-heading-title {
	font-size: clamp(2.4rem, 4.2vw, 4rem) !important;
	line-height: 1.02 !important;
	letter-spacing: -.02em;
}

.tl-about__copy .tl-body p {
	max-width: 62ch;
	font-size: 1.05rem;
	line-height: 1.85;
	color: var(--tl-muted);
}

@media (max-width: 1024px) {
	.e-con.tl-section.tl-about {
		--padding-top: 5rem;
		--padding-bottom: 5rem;
	}
}

.e-con.tl-badge {
	left: 2.5rem !important;
	bottom: 2.5rem !important;
	border-radius: 0;
	--padding-top: 1.8rem;
	--padding-bottom: 1.8rem;
	--padding-left: 2.2rem;
	--padding-right: 2.2rem;
}

.tl-badge__title .elementor-heading-title {
	font: 300 3rem/1 var(--tl-serif) !important;
}

.tl-badge__text p {
	font: 400 9px/1.4 var(--tl-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .5);
}

/* Home: practice areas, three white cards per row on cream */

.e-con.tl-section.tl-practice {
	--padding-top: 8rem;
	--padding-bottom: 8rem;
}

.tl-practice .tl-eyebrow .elementor-heading-title {
	color: var(--tl-accent);
}

.e-con.tl-sec__head {
	margin-bottom: 5rem;
}

.tl-pgrid--dynamic .tl-pcard {
	min-height: 0;
	padding: 2.8rem 2.2rem;
}

.tl-pgrid--dynamic .tl-pcard h3 {
	font-size: 1.15rem !important;
	font-weight: 400 !important;
}

.tl-pgrid--dynamic .tl-pcard p {
	font-size: 12px;
	color: var(--tl-soft);
}

.tl-pgrid--dynamic .tl-pcard__ico {
	width: 52px;
	height: 52px;
	color: var(--tl-brand);
}

.e-con.tl-more {
	--align-items: center;
	margin-top: 4rem;
}

/* Home: why Trinity, white content beside the photo */

.e-con.tile.tl-why__panel {
	background: #fff !important;
	color: var(--tl-ink);
	--padding-top: 7rem;
	--padding-bottom: 7rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	--justify-content: center;
}

.tl-why__panel .tl-eyebrow .elementor-heading-title {
	color: var(--tl-brand);
}

.tl-why__panel h2.elementor-heading-title {
	color: var(--tl-ink);
	margin-bottom: 3.5rem;
}

.tl-why__panel h2 em {
	color: var(--tl-brand);
}

.e-con.tl-wi {
	border-top-color: var(--tl-border);
}

.e-con.tl-wi:last-child {
	border-bottom-color: var(--tl-border);
}

.tl-wi__ico {
	width: 52px !important;
	height: 52px;
	color: var(--tl-brand);
}

.tl-wi h4.elementor-heading-title {
	color: var(--tl-ink);
}

.tl-wi p {
	color: var(--tl-muted);
}

.e-con.tile.tl-why__img {
	border-left: 1px solid var(--tl-border);
}

.e-con.tl-why__img::after {
	background: linear-gradient(to bottom, transparent 45%, rgba(125, 17, 40, .88) 100%);
}

.e-con.tl-why__quote {
	--padding-top: 3.5rem;
	--padding-bottom: 3.5rem;
	--padding-left: 3.5rem;
	--padding-right: 3.5rem;
}

.tl-why__quote blockquote {
	font-weight: 300;
}

.tl-why__quote .tl-eyebrow .elementor-heading-title {
	color: rgba(255, 255, 255, .4);
}

/* Home: testimonials */

.e-con.tl-section.tl-testimonials {
	--padding-top: 8rem;
	--padding-bottom: 8rem;
}

.tl-stars {
	display: flex;
	gap: .3rem;
}

.tl-stars i {
	width: 14px;
	height: 14px;
	background: var(--tl-accent);
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.tl-tcard__quote blockquote::before {
	display: none;
}

/* Home: reach and consultation */

.e-con.tile.tl-reach__copy {
	background: var(--tl-brand) !important;
	color: #fff;
	--padding-top: 7rem;
	--padding-bottom: 7rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	--justify-content: center;
}

.tl-reach__copy .tl-eyebrow .elementor-heading-title {
	color: rgba(255, 255, 255, .4);
}

.tl-reach__copy h2.elementor-heading-title {
	color: #fff;
}

.tl-reach__copy h2 em {
	color: var(--tl-accent-soft);
}

.tl-reach__copy .tl-lead p {
	color: rgba(255, 255, 255, .55);
}

.tl-countries {
	gap: 1px;
}

.tl-countries span {
	flex: 1;
	flex-direction: column;
	padding: 1.4rem 2rem;
	border-radius: 0;
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .15);
	font: 500 10px/1.4 var(--tl-sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6);
}

.tl-countries b {
	font-size: 1.8rem;
	line-height: 1;
}

.e-con.tile.tl-reach__form {
	background: var(--tl-cream) !important;
	border-left: 1px solid var(--tl-border);
	--padding-top: 7rem;
	--padding-bottom: 7rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	--justify-content: center;
}

/* Footer: newsletter band, four columns and the bottom bar */

.e-con.tl-ft {
	--padding-top: 0;
	--padding-right: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	background: var(--tl-ink);
	color: rgba(255, 255, 255, .3);
}

.e-con.tl-section.tl-ft-news {
	--padding-top: 5rem;
	--padding-bottom: 5rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	--align-items: center;
	border-top: 1px solid rgba(255, 255, 255, .06);
	--column-gap: 6vw !important;
	gap: 2rem 6vw !important;
}

.tl-ft-news .tl-eyebrow .elementor-heading-title {
	color: rgba(255, 255, 255, .4);
}

.tl-ft-news h3.elementor-heading-title {
	font-size: clamp(1.8rem, 2.8vw, 2.8rem) !important;
	color: #fff;
}

.tl-ft-news h3 em {
	color: var(--tl-accent-soft);
}

.tl-ft-news__p p {
	margin: 0;
	font-size: 13px;
	color: rgba(255, 255, 255, .36);
}

.tl-ft-news .tl-form--newsletter .wpforms-container form.wpforms-form {
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	gap: 0;
}

.tl-ft-news .tl-form--newsletter input[type="email"] {
	height: 50px !important;
	background: rgba(255, 255, 255, .06) !important;
	border: 1px solid rgba(255, 255, 255, .12) !important;
	border-right: 0 !important;
	color: #fff !important;
}

.tl-ft-news .tl-form--newsletter button[type="submit"] {
	height: 50px !important;
	padding: 0 1.8rem !important;
}

.tl-ft-news .tl-fine p {
	margin: 0;
	font-size: 10.5px;
	color: rgba(255, 255, 255, .22);
}

.e-con.tl-ft-grid {
	--padding-top: 5rem;
	--padding-bottom: 5rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	border-top: 3px solid var(--tl-brand);
}

.tl-ft-logo img {
	height: 56px;
	width: auto;
	filter: brightness(0) invert(1);
}

.tl-ft-desc p {
	margin: 0;
	max-width: 280px;
	font-size: 12px;
	line-height: 1.85;
	color: rgba(255, 255, 255, .25);
}

.tl-ft-ct {
	display: grid;
	gap: .65rem;
}

.tl-ft-ct a {
	display: flex;
	align-items: center;
	gap: .7rem;
	font-size: 12px;
	color: rgba(255, 255, 255, .3);
	transition: color .2s;
}

.tl-ft-ct a:hover {
	color: var(--tl-accent);
}

.tl-ft-ct span {
	width: 32px;
	height: 32px;
	flex: none;
	display: grid;
	place-items: center;
	background: rgba(245, 128, 0, .12);
	border: 1px solid rgba(245, 128, 0, .2);
	color: var(--tl-accent);
}

.tl-ft-ct svg {
	width: 13px;
	height: 13px;
}

.tl-ft-h {
	margin: 0 0 1.5rem;
	font: 500 9.5px/1 var(--tl-sans);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--tl-accent);
}

.tl-ft-col ul,
.tl-ft-list {
	display: flex;
	flex-direction: column;
	gap: .6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tl-ft-col a {
	font-size: 12px;
	color: rgba(255, 255, 255, .26);
	transition: color .2s;
}

.tl-ft-col a:hover {
	color: rgba(255, 255, 255, .7);
}

.tl-ft-hours p {
	margin: 0 0 .5rem;
	font-size: 12px;
	color: rgba(255, 255, 255, .24);
}

.tl-ft-hours b {
	display: block;
	margin-bottom: .1rem;
	font-size: 10.5px;
	font-weight: 500;
	color: rgba(255, 255, 255, .42);
}

.tl-ft-col .tl-ft-h:not(:first-child) {
	margin-top: 2rem;
	margin-bottom: 1rem;
}

.tl-ft-social {
	display: flex;
	gap: .6rem;
}

.tl-ft-social a {
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .1);
	font-size: 10.5px;
	color: rgba(255, 255, 255, .35);
	transition: background .2s;
}

.tl-ft-social a:hover {
	background: rgba(245, 128, 0, .2);
}

.tl-ft-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: .8rem;
	padding: 1.5rem 5vw;
	border-top: 1px solid rgba(255, 255, 255, .06);
	font-size: 10px;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .16);
}

.tl-ft-bar ul {
	display: flex;
	gap: 1.8rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tl-ft-bar a {
	font-size: 9.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .16);
}

.tl-ft-bar a:hover {
	color: rgba(255, 255, 255, .55);
}

@media (max-width: 1100px) {
	.e-con.tl-hero__stats {
		display: none;
	}
}

@media (max-width: 720px) {
	.tl-countries {
		flex-direction: column;
	}

	.tl-ft-bar {
		flex-direction: column;
		text-align: center;
	}
}

.tl-ft-logo,
.tl-ft-logo .elementor-widget-container {
	text-align: left !important;
}

/* Fields sit inside their labels, so reset the label's small capitals */
.ts-apply input,
.ts-apply select,
.ts-apply textarea,
.ts-apply__file span:not(:first-child) {
	text-transform: none !important;
	letter-spacing: normal !important;
	font-size: 13px !important;
}

.e-con.tile.tl-cv-visit__card {
	background: var(--tl-ink);
	color: rgba(255, 255, 255, .7);
}

/* Coloured ts tiles keep their own backgrounds over the white tile default */
.ts-tile.ts-mast {
	background: var(--tl-brand-strong);
}

.ts-tile.ts-strip {
	background: var(--tl-brand);
}

.ts-tile.ts-strip--dark,
.ts-tile.ts-sbox--dark {
	background: var(--tl-ink);
}

.ts-tile.ts-why,
.ts-tile.ts-blk--brand {
	background: var(--tl-brand);
}

.ts-edition .ts-crumbs-plain {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 2rem 0 1.2rem;
}

/* Every button and button-like control has sharp corners, including the practice template's Elementor buttons */
.elementor-button,
.ts-btn,
.ct-button,
.wpforms-submit,
.tl-form button[type="submit"],
.tl-editions-filter button,
.ts-apply__file span,
.tl-form--newsletter .wpforms-container form.wpforms-form,
button,
input[type="submit"],
input[type="file"]::file-selector-button {
	border-radius: 0 !important;
}

.tl-editions-filter button {
	padding: .85rem 1.6rem !important;
	font: 500 10px/1.2 var(--tl-sans) !important;
	letter-spacing: .16em !important;
	text-transform: uppercase;
}

.e-con.tl-badge {
	left: 1.2rem !important;
	bottom: 1.2rem !important;
	--padding-top: 1rem;
	--padding-bottom: 1rem;
	--padding-left: 1.3rem;
	--padding-right: 1.3rem;
}

.tl-badge .tl-badge__title .elementor-heading-title {
	font-size: 1.5rem !important;
}

@media (max-width: 767px) {
	.e-con.tl-badge {
		left: .75rem !important;
		bottom: .75rem !important;
		--padding-top: .6rem;
		--padding-bottom: .6rem;
		--padding-left: .9rem;
		--padding-right: .9rem;
	}

	.tl-badge .tl-badge__title .elementor-heading-title {
		font-size: 1.1rem !important;
	}
}

/* Contact: the full-length portraits are zoomed to head and shoulders inside an oval */
.tl-faces a {
	display: block;
	margin-left: -14px;
	transition: transform .3s;
}

.tl-faces a:first-child {
	margin-left: 0;
}

.tl-faces a:hover {
	transform: translateY(-6px);
}

.tl-faces span {
	position: relative;
	display: block;
	width: 76px;
	height: 92px;
	overflow: hidden;
	border-radius: 50%;
	border: 3px solid #fff;
	background: var(--tl-cream);
}

.tl-faces img,
.tl-faces img:hover {
	position: absolute;
	left: 50%;
	top: -4%;
	width: 230%;
	max-width: none;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	transform: translateX(-50%);
	transition: none;
}

@media (max-width: 767px) {
	.tl-faces span {
		width: 60px;
		height: 72px;
	}
}

.tl-footer__logo img {
	filter: none;
}

.tl-pgrid .tl-pcard--cta p {
	color: rgba(255, 255, 255, .72);
}

/* Body copy: Outfit 300 at 15px so it stays quieter than the titles; card text 14px and up */
.tl-lead p,
.tl-body p,
.ts-lead,
.ts-body p,
.ts-body li,
.tl-pcard p,
.tl-wi p,
.tl-footer p,
.tl-page:not(#tl) p,
.tl-page:not(#tl) .elementor-heading-title:is(p) {
	font-weight: 300 !important;
}

.tl-hero .tl-lead p {
	font-size: 1.1rem;
	color: rgba(255, 255, 255, .72);
}

.tl-pgrid .tl-pcard p,
.tl-pgrid--dynamic .tl-pcard p {
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--tl-muted);
}

.tl-wi p {
	font-size: 15px;
	line-height: 1.7;
}

.tl-tcard__by span,
.tl-sign span,
.tl-job li,
.tl-way em,
.ts-jobs__row small,
.ts-edition__legal {
	font-size: 14px;
}

.ts-apply__file small {
	font-size: 13.5px;
}

.tl-footer__news p,
.tl-footer__brand p {
	font-size: 15px;
	line-height: 1.7;
}

.tl-footer__links a {
	font-size: 14.5px;
}

/* Practice area template */
.tl-page:not(#tl) .hero-desc .elementor-heading-title,
.tl-page:not(#tl) .ov-p .elementor-heading-title,
.tl-page:not(#tl) .eb-p .elementor-heading-title,
.tl-page:not(#tl) .svc-intro-p .elementor-heading-title,
.tl-page:not(#tl) .imm-p .elementor-heading-title,
.tl-page:not(#tl) .gs-p .elementor-heading-title {
	font-size: 16px !important;
	line-height: 1.75 !important;
}

.tl-page:not(#tl) .svc-card p,
.tl-page:not(#tl) .entity-card p,
.tl-page:not(#tl) .fact-text {
	font-size: 15px !important;
	line-height: 1.7 !important;
}

.tl-page:not(#tl) .fact-text b,
.tl-page:not(#tl) .wi-body h4 {
	font-size: 15px !important;
}

.tl-page:not(#tl) .wi-body p,
.tl-page:not(#tl) .ra-card p {
	font-size: 14.5px !important;
	line-height: 1.7 !important;
}

.tl-page:not(#tl) .gs-note {
	font-size: 13px !important;
}

.tl-page:not(#tl) .svc-card p,
.tl-page:not(#tl) .wi-body p,
.tl-page:not(#tl) .ra-card p {
	color: var(--tl-muted) !important;
}

/* Motion: content rises in on scroll, the hero settles in on load, and cards lift on hover */
.tl-rv {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .8s cubic-bezier(.22, .61, .36, 1) var(--tl-delay, 0ms), transform .8s cubic-bezier(.22, .61, .36, 1) var(--tl-delay, 0ms);
}

.tl-rv.tl-in {
	opacity: 1;
	transform: none;
}

@keyframes tl-rise {
	from {
		opacity: 0;
		transform: translateY(32px);
	}
}

@keyframes tl-zoom {
	from {
		transform: scale(1.08);
	}
}

.tl-hero .tl-hero__copy > *,
.tl-ph .tl-ph__in > * {
	animation: tl-rise 1s cubic-bezier(.22, .61, .36, 1) both;
}

.tl-hero .tl-hero__copy > :nth-child(2),
.tl-ph .tl-ph__in > :nth-child(2) {
	animation-delay: .12s;
}

.tl-hero .tl-hero__copy > :nth-child(3),
.tl-ph .tl-ph__in > :nth-child(3) {
	animation-delay: .24s;
}

.tl-hero .tl-hero__copy > :nth-child(4),
.tl-ph .tl-ph__in > :nth-child(4) {
	animation-delay: .36s;
}

.tl-hero > .tl-cover img,
.tl-ph > .tl-cover img {
	animation: tl-zoom 2.4s cubic-bezier(.22, .61, .36, 1) both;
}

.tl-pcard,
.tl-tcard,
.tl-person,
.tl-edition,
.ts-oth a {
	transition: transform .35s cubic-bezier(.22, .61, .36, 1), box-shadow .35s, background-color .3s;
}

.tl-pcard:hover,
.tl-person:hover,
.tl-edition:hover,
.ts-oth a:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 40px -24px rgba(30, 22, 22, .35);
	z-index: 1;
}

.tl-pcard__ico,
.tl-wi__ico {
	transition: background-color .3s, color .3s, transform .35s;
}

.tl-pcard:hover .tl-pcard__ico {
	background: var(--tl-brand);
	color: #fff;
	transform: scale(1.06);
}

.tl-btn .elementor-button,
.ts-btn,
.tl-form button[type="submit"],
.ct-header [data-id="button"] .ct-button {
	transition: background-color .3s, color .3s, transform .25s, box-shadow .3s !important;
}

.tl-btn .elementor-button:hover,
.ts-btn:hover,
.tl-form button[type="submit"]:hover,
.ct-header [data-id="button"] .ct-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -14px rgba(30, 22, 22, .5);
}

.e-con.tile:has(> .tl-cover) {
	overflow: hidden;
}

.e-con.tile > .tl-cover img {
	transition: transform 1.4s cubic-bezier(.22, .61, .36, 1);
}

.e-con.tile:hover > .tl-cover img {
	transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
	.tl-rv {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.tl-hero *,
	.tl-ph *,
	.tl-hero > .tl-cover img {
		animation: none !important;
	}
}

.tl-pgrid .tl-pcard.tl-pcard--cta h3 {
	color: #fff !important;
}

.tl-pgrid .tl-pcard.tl-pcard--cta p {
	color: rgba(255, 255, 255, .82) !important;
}

.tl-pgrid .tl-pcard.tl-pcard--cta .tl-pcard__go {
	color: var(--tl-accent-soft) !important;
}

.tl-countries img {
	display: block;
	width: 48px;
	height: 32px;
	object-fit: cover;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .25);
}

/* Home hero: on wide screens the hero takes the team photo's proportions so nobody is cropped at the sides */
@media (min-width: 1025px) {
	.e-con.tl-hero {
		min-height: 0 !important;
		aspect-ratio: 1800 / 759;
	}

	.e-con.tl-hero > .tl-cover img {
		object-position: center top;
	}

	.e-con.tl-hero__in {
		--padding-top: 3rem;
		--padding-bottom: 3.5rem;
	}

	.tl-hero .tl-display .elementor-heading-title {
		font-size: clamp(3.4rem, 5.6vw, 7.5rem) !important;
	}
}

/* Contact hero: the photo ends at the receptionist's arm, so it sits in from the right edge and fades into the wall colour */
.e-con.tl-cv-hero {
	background: linear-gradient(90deg, #8f98ab 0%, #b9b6c0 70%, #d3cfd4 100%);
}

.e-con.tl-cv-hero > .elementor-widget-image.tl-cover {
	inset: 0 8% 0 auto;
	width: 92%;
}

.e-con.tl-cv-hero > .tl-cover img {
	object-fit: cover;
	object-position: right 40%;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 16%, #000 90%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0, #000 16%, #000 90%, transparent 100%);
}

@media (min-width: 1025px) {
	.e-con.tl-cv-hero > .elementor-widget-image.tl-cover {
		inset: 0 10% 0 auto;
		width: 80%;
	}
}

/* Practice template: the overview badge renders as an empty box when it has no text */
.tl-page .ov-img-badge:not(:has(.elementor-widget)) {
	display: none !important;
}

/* Practice area breadcrumb bar, as on the live site */
.tl-pa-crumbs {
	background: var(--tl-cream);
	border-bottom: 1px solid var(--tl-border);
}

.tl-pa-crumbs__in {
	padding: 12px 5vw;
}

.tl-pa-crumbs .ct-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	margin: 0;
	font: 600 12.5px/1.4 var(--tl-serif);
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--tl-muted);
}

.tl-pa-crumbs .ct-breadcrumbs a {
	color: var(--tl-accent);
	transition: color .2s;
}

.tl-pa-crumbs .ct-breadcrumbs a:hover {
	color: var(--tl-brand);
}

.tl-pa-crumbs .ct-separator {
	margin: 0 12px;
	color: var(--tl-muted);
}

/* Team members without a photo show their initials */
.tl-person__initials {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 260px;
	aspect-ratio: 3 / 4;
	background: linear-gradient(160deg, var(--tl-brand), var(--tl-ink));
	font: 300 clamp(3rem, 6vw, 5rem)/1 var(--tl-serif);
	letter-spacing: .04em;
	color: rgba(255, 255, 255, .85);
}

.ts-pf__img .tl-person__initials {
	min-height: 100%;
	aspect-ratio: auto;
}

/* Team cards: photo on the left, details on the right, two per row */
.e-con.tl-groups {
	--flex-direction: column;
}

.tl-groups .e-con.tl-group__head {
	--justify-content: space-between;
	--align-items: flex-end;
	--flex-wrap: wrap;
}

.tl-groups .tl-group__head .tl-lead p {
	max-width: 30em;
	margin: 0;
	font-size: 16px;
}

.tl-members {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.tl-member {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 400px;
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 1px 0 var(--tl-border);
	transition: transform .35s cubic-bezier(.22, .61, .36, 1), box-shadow .35s;
}

.tl-member:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 44px -28px rgba(30, 22, 22, .4);
}

.tl-member__img {
	display: block;
	overflow: hidden;
}

.tl-member__img img,
.tl-member__img .tl-person__initials {
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
	object-fit: cover;
	object-position: center top;
	transition: transform 1.2s cubic-bezier(.22, .61, .36, 1);
}

.tl-member:hover .tl-member__img img {
	transform: scale(1.04);
}

.tl-member__body {
	display: flex;
	flex-direction: column;
	padding: 40px 36px 36px;
}

.tl-member__role {
	margin: 0 0 14px;
	font: 600 11px/1.3 var(--tl-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tl-brand);
}

.tl-member h3 {
	margin: 0;
	font: 400 clamp(1.6rem, 2.2vw, 2.1rem)/1.15 var(--tl-serif);
	color: var(--tl-ink);
}

.tl-member h3 a {
	color: inherit;
}

.tl-member__rule {
	display: block;
	width: 32px;
	height: 2px;
	margin: 22px 0 18px;
	background: var(--tl-accent);
}

.tl-member__team {
	margin: 0;
	font-size: 15px;
	color: var(--tl-muted);
}

@media (max-width: 1100px) {
	.tl-members {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.tl-member {
		grid-template-columns: 1fr;
	}

	.tl-member__img {
		aspect-ratio: 4 / 5;
	}
}

.tl-groups .tl-group + .tl-group {
	margin-top: 88px;
}

.tl-groups .e-con.tl-group__head {
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: flex-end !important;
	flex-wrap: wrap;
	gap: 16px 48px !important;
}

.tl-groups .tl-group__head > .elementor-widget-text-editor {
	max-width: 440px;
}

.tl-groups .e-con.tl-group__head > .e-con {
	width: auto !important;
	flex: 1 1 320px !important;
}

.tl-groups .tl-group__head > .elementor-widget-text-editor {
	flex: 0 1 440px !important;
}

/* The whole team card opens the profile */
.tl-member {
	position: relative;
	min-height: 340px;
	cursor: pointer;
}

.tl-member h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.tl-member:hover h3 a {
	color: var(--tl-brand);
}

.tl-member__body {
	padding: 34px 32px 32px;
}

.tl-member__rule {
	margin: 18px 0 14px;
}

.tl-member__lead {
	margin: 16px 0 24px;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--tl-muted);
}

/* The photo fills its half without setting the card height, so cards are only as tall as their text */
.tl-member__img {
	position: relative;
	min-height: 320px;
}

.tl-member__img img,
.tl-member__img .tl-person__initials {
	position: absolute;
	inset: 0;
}

@media (max-width: 600px) {
	.tl-member__img {
		min-height: 0;
	}
}

/* Edition: In this issue, each article in its own padded cell */
.ts-toc {
	padding: 32px clamp(24px, 4vw, 48px) 36px;
}

.ts-toc .ts-eyebrow {
	margin-bottom: 20px;
}

.ts-toc ol {
	gap: 1px;
	background: var(--tl-border);
	border: 1px solid var(--tl-border);
}

.ts-toc li {
	background: var(--tl-cream);
	transition: background-color .25s;
}

.ts-toc li:hover {
	background: #fff;
}

.ts-toc a,
.ts-toc li + li a {
	height: 100%;
	padding: 22px 26px 24px;
	gap: 8px;
}

@media (max-width: 767px) {
	.ts-toc li + li a {
		padding-left: 26px;
	}
}

/* The breadcrumb bar under the header replaces the breadcrumbs that used to sit inside each hero */
.tl-crumbs-wrap,
.tl-ph .tl-crumbs,
.ts-crumbs,
.ts-crumbs-plain {
	display: none !important;
}

/* About: vision, mission and values float as three separate cards over the hero, with room above and below */
.elementor .e-con.tl-vmv {
	--gap: 20px;
	--row-gap: 20px;
	--column-gap: 20px;
	gap: 20px !important;
	margin-top: -110px;
	margin-bottom: 104px;
	padding: 0 5vw !important;
	z-index: 3;
}

.e-con.tl-ph:has(+ .e-con.tl-vmv) {
	--padding-bottom: 170px;
}

.e-con.tile.tl-vmv__card {
	--padding-top: 36px;
	--padding-right: 34px;
	--padding-bottom: 38px;
	--padding-left: 34px;
	background: var(--tl-brand) !important;
	box-shadow: 0 30px 60px -30px rgba(30, 22, 22, .45);
}

@media (max-width: 1024px) {
	.e-con.tl-vmv {
		margin-bottom: 72px;
	}
}

/* Edition masthead ribbon in the design system's orange, with small capitals */
.ts-mast__ribbon {
	padding: 14px clamp(24px, 4vw, 48px) !important;
	background: #f58000 !important;
}

.ts-mast__ribbon span {
	font: 600 10px/1.4 var(--tl-sans) !important;
	letter-spacing: .22em !important;
	text-transform: uppercase;
	color: #fff !important;
}

.ts-mast__ribbon span + span {
	color: rgba(255, 255, 255, .85) !important;
}

/* Home hero: the live site's photo of a partner signing at her desk, with the pen on the right of the headline */
.e-con.tl-hero > .tl-cover img {
	object-position: 70% 62%;
}

/* Header dropdowns as on the live site: burgundy panel, rounded, EB Garamond 500 in white */
.ct-header [data-id="menu"] .sub-menu {
	background: #7f1028 !important;
	border-radius: 10px;
	overflow: hidden;
}

[data-header] .ct-header [data-id="menu"] .sub-menu .ct-menu-link {
	padding: 13px 19.5px;
	font: 500 16px/1.65 'EB Garamond', Georgia, serif !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: #fff !important;
	background: transparent !important;
}

[data-header] .ct-header [data-id="menu"] .sub-menu .ct-menu-link:hover {
	color: #f67e06 !important;
}

/* The practice areas mega panel keeps its layout and takes the same type */
.ct-header [data-id="menu"] > ul > li.trinity-mega > .sub-menu {
	border-radius: 0 0 10px 10px;
}

[data-header] .ct-header li.trinity-mega > .sub-menu .ct-menu-link {
	padding: 16px 0 !important;
	font-size: 17px !important;
}

/* Home hero photo sits as on the live site: shifted right by 280px at 1440 wide, its left edge fading into the dark side */
@media (min-width: 1025px) {
	.e-con.tl-hero {
		overflow: hidden;
		background-color: #1e1616;
	}

	.e-con.tl-hero > .elementor-widget-image.tl-cover {
		left: 19.5vw;
		right: auto;
		width: 100%;
	}

	.e-con.tl-hero > .tl-cover img {
		object-position: center 57%;
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 22%);
		mask-image: linear-gradient(to right, transparent 0, #000 22%);
	}
}

/* Newsletter listing cards, as on the live site */
.tl-editions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.tl-nlcard {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--tl-border);
	background: #fff;
	color: inherit;
	transition: transform .35s cubic-bezier(.25, .46, .45, .94), box-shadow .35s;
}

.tl-nlcard[hidden] {
	display: none;
}

.tl-nlcard:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 44px rgba(26, 16, 16, .1);
}

.tl-nlcard__cover {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 230px;
	padding: 26px;
	overflow: hidden;
	background: linear-gradient(155deg, #7d1128, #5c0d1e);
}

.tl-nlcard__cover.has-image {
	background-color: #1e1616;
	background-size: cover;
	background-position: center;
}

.tl-nlcard__cover.has-image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(155deg, rgba(26, 16, 16, .55), rgba(26, 16, 16, .15) 60%, rgba(26, 16, 16, .45));
}

.tl-nlcard__top {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	font: 500 9px/1.4 var(--tl-sans);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .7);
}

.tl-nlcard__half {
	padding: 5px 11px;
	border: 1px solid rgba(255, 255, 255, .3);
	letter-spacing: .1em;
	color: rgba(255, 255, 255, .9);
}

.tl-nlcard__num {
	position: relative;
	z-index: 1;
	font: 300 54px/1 var(--tl-serif);
	color: rgba(255, 255, 255, .3);
}

.tl-nlcard__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 14px;
	padding: 28px 26px 30px;
}

.tl-nlcard__date {
	font: 500 10px/1.4 var(--tl-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--tl-accent);
}

.tl-nlcard h3 {
	margin: 0;
	font: 400 22px/1.22 var(--tl-serif);
	color: var(--tl-ink);
}

.tl-nlcard p {
	flex: 1;
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: var(--tl-muted);
}

.tl-nlcard__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 12px;
	border-top: 1px solid var(--tl-border);
	font-size: 11px;
	color: var(--tl-muted);
}

.tl-nlcard__read {
	font: 500 10px/1 var(--tl-sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--tl-brand);
}

.tl-nlcard__read span {
	margin-left: 6px;
	transition: margin .2s;
}

.tl-nlcard:hover .tl-nlcard__read span {
	margin-left: 11px;
}

@media (max-width: 1100px) {
	.tl-editions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.tl-editions {
		grid-template-columns: 1fr;
	}
}

/* Header as on the live site: boxed at 1290px, 15px either side of each menu item, an orange button with square corners */
@media (min-width: 1000px) {
	.ct-header [data-device="desktop"] [data-row*="middle"] > .ct-container {
		width: min(1290px, calc(100% - 64px));
		max-width: 1290px;
		padding-inline: 0 !important;
	}

	[data-header] .ct-header [data-device="desktop"] [data-id="menu"] {
		--menu-items-gap: 0px;
	}

	[data-header] .ct-header [data-device="desktop"] [data-id="menu"] > ul > li > .ct-menu-link {
		padding: 0 15px;
	}
}

.ct-header [data-id="button"] .ct-button,
.ct-header [data-id="button"] .ct-button:hover {
	min-height: 42px !important;
	padding: 5px 20px !important;
	border-radius: 0 !important;
	background: #f67e06 !important;
	font: 400 15px/1.3 var(--tl-sans) !important;
	letter-spacing: 0 !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
	transform: none !important;
}

.ct-header [data-id="button"] .ct-button:hover {
	background: #7f1028 !important;
}

/* As on live, the menu sits at the right next to the button rather than centred */
#header [data-row*="middle"] [data-column="end"] [data-id="menu"] {
	--margin: 0 48px 0 auto !important;
	margin-inline: auto 48px;
}

/* Pages copied from the live site keep the live palette, boxed width and type, without the theme's own overrides */
.trinity-live-page [data-elementor-type="wp-page"] {
	--e-global-color-blocksy_palette_1: #7f1028;
	--e-global-color-blocksy_palette_2: #f67e06;
	--content-width: 1140px;
}

.trinity-live-page [data-elementor-type="wp-page"] .e-con-boxed > .e-con-inner {
	max-width: min(100%, 1140px);
}

.trinity-live-page [data-elementor-type="wp-page"] .elementor-heading-title em {
	color: inherit;
}

.trinity-live-page [data-elementor-type="wp-page"] em {
	color: #f67e06;
}

/* Body text across the site: Outfit 300, 15px */
body,
.tl-lead p,
.tl-body p,
.ts-lead,
.ts-body p,
.ts-body li {
	font-family: var(--tl-sans);
}

.tl-body p,
.ts-body p,
.ts-body li {
	font-size: 15px;
	line-height: 1.8;
}

.tl-lead p,
.ts-lead {
	font-size: 16px;
}

/* ESG page, laid out after trinitycorporatesolutions-tz.com/esg */
.e-con.tl-esg-hero {
	position: relative;
	min-height: 78vh;
	--justify-content: flex-end;
	--padding-top: 120px;
	--padding-bottom: 96px;
	--padding-left: 5vw;
	--padding-right: 5vw;
	color: #fff;
	overflow: hidden;
}

.e-con.tl-esg-hero::before,
.e-con.tl-esg-impact::before,
.e-con.tl-esg-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.e-con.tl-esg-hero::before {
	background: linear-gradient(100deg, rgba(20, 12, 14, .88) 0%, rgba(20, 12, 14, .55) 50%, rgba(20, 12, 14, .25) 100%);
}

.tl-esg-hero__in,
.tl-esg-impact__in,
.tl-esg-cta__in {
	position: relative;
	z-index: 1;
	max-width: 720px;
}

.tl-esg-hero .tl-display .elementor-heading-title {
	font-size: clamp(3rem, 6vw, 5.5rem) !important;
	line-height: 1 !important;
	color: #fff;
}

.tl-esg-hero .tl-lead p,
.tl-esg-cta .tl-lead p {
	color: rgba(255, 255, 255, .72);
}

.e-con.tl-esg-intro {
	--padding-top: 7rem;
	--padding-bottom: 7rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	--align-items: center;
	background: var(--tl-cream);
}

.tl-esg-intro__h .elementor-heading-title {
	font-size: clamp(2.4rem, 4vw, 3.6rem) !important;
	line-height: 1.12 !important;
}

.tl-esg-intro__h em,
.tl-esg-offer h2 em,
.tl-esg-impact h2 em,
.tl-esg-cta h2 em {
	color: var(--tl-accent);
}

.e-con.tl-esg-pillars {
	--gap: 0px;
	gap: 0 !important;
}

.e-con.tile.tl-esg-pillar {
	position: relative;
	min-height: 380px;
	overflow: hidden;
	--justify-content: flex-end;
	--padding-top: 36px;
	--padding-bottom: 36px;
	--padding-left: 34px;
	--padding-right: 34px;
	color: #fff;
}

.e-con.tl-esg-pillar::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
}

.tl-esg-pillar--env::after {
	background: linear-gradient(to top, rgba(20, 30, 18, .92), rgba(20, 30, 18, .35));
}

.tl-esg-pillar--soc::after {
	background: linear-gradient(to top, rgba(125, 17, 40, .94), rgba(125, 17, 40, .4));
}

.tl-esg-pillar--gov::after {
	background: linear-gradient(to top, rgba(205, 104, 0, .94), rgba(205, 104, 0, .4));
}

.tl-esg-pillar__in {
	position: relative;
	z-index: 1;
}

.tl-esg-pillar .tl-eyebrow .elementor-heading-title,
.tl-esg-impact .tl-eyebrow .elementor-heading-title,
.tl-esg-split__panel .tl-eyebrow .elementor-heading-title {
	color: rgba(255, 255, 255, .7);
}

.tl-esg-pillar h2.elementor-heading-title {
	font-size: 1.9rem !important;
	line-height: 1.1 !important;
	color: #fff;
}

.tl-esg-pillar p {
	margin: 0;
	font-size: 14px;
	color: rgba(255, 255, 255, .78);
}

.e-con.tl-esg-impact {
	position: relative;
	overflow: hidden;
	--padding-top: 8rem;
	--padding-bottom: 8rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	color: #fff;
}

.e-con.tl-esg-impact::before {
	background: linear-gradient(90deg, rgba(20, 12, 14, .95) 0%, rgba(20, 12, 14, .8) 45%, rgba(20, 12, 14, .15) 100%);
}

.tl-esg-impact h2.elementor-heading-title,
.tl-esg-cta h2.elementor-heading-title,
.tl-esg-split__panel h2.elementor-heading-title {
	color: #fff;
}

.tl-esg-list {
	display: grid;
	gap: 22px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.tl-esg-list li {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 12px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, .14);
}

.tl-esg-list b,
.tl-esg-offers b {
	font: 500 11px/1.6 var(--tl-sans);
	letter-spacing: .16em;
	color: var(--tl-accent);
}

.tl-esg-list h3 {
	margin: 0 0 6px;
	font: 500 1.25rem/1.25 var(--tl-serif);
	color: #fff;
}

.tl-esg-list p {
	margin: 0;
	font-size: 14px;
	color: rgba(255, 255, 255, .65);
}

.e-con.tl-esg-split {
	--gap: 0px;
	gap: 0 !important;
}

.e-con.tl-esg-split__img {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	--justify-content: flex-end;
	--padding-left: 28px;
	--padding-bottom: 24px;
}

.tl-esg-cap {
	position: relative;
	z-index: 1;
}

.tl-esg-cap p {
	margin: 0;
	font: 400 15px/1.4 var(--tl-sans);
	color: #fff;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .5);
}

.e-con.tile.tl-esg-split__panel {
	--justify-content: center;
	--padding-top: 6rem;
	--padding-bottom: 6rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	color: #fff;
}

.e-con.tile.tl-esg-split__panel--brand {
	background: var(--tl-brand) !important;
}

.e-con.tile.tl-esg-split__panel--ink {
	background: var(--tl-ink) !important;
}

.tl-esg-split__panel p {
	max-width: 30em;
	margin: 0;
	color: rgba(255, 255, 255, .72);
}

.e-con.tl-esg-offer {
	--padding-top: 7rem;
	--padding-bottom: 7rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	background: var(--tl-cream);
}

.tl-esg-offers {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--tl-border);
	background: var(--tl-border);
	gap: 1px;
}

.tl-esg-offers li {
	padding: 34px 30px 38px;
	background: #fff;
	transition: background-color .25s;
}

.tl-esg-offers li:hover {
	background: var(--tl-cream);
}

.tl-esg-offers h3 {
	margin: 10px 0 8px;
	font: 500 1.2rem/1.25 var(--tl-serif);
	color: var(--tl-ink);
}

.tl-esg-offers p {
	margin: 0;
	font-size: 14px;
	color: var(--tl-muted);
}

.tl-esg-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	padding: 56px 5vw;
	background: var(--tl-ink);
}

.tl-esg-stats div {
	display: grid;
	justify-items: center;
	gap: 8px;
	padding: 28px 12px;
	background: rgba(255, 255, 255, .03);
	text-align: center;
}

.tl-esg-stats b {
	font: 300 3rem/1 var(--tl-serif);
	color: #fff;
}

.tl-esg-stats i {
	font-style: normal;
	color: var(--tl-accent);
}

.tl-esg-stats span {
	font: 500 10px/1.4 var(--tl-sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .5);
}

.e-con.tl-esg-cta {
	position: relative;
	overflow: hidden;
	--align-items: center;
	--padding-top: 8rem;
	--padding-bottom: 8rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	text-align: center;
	color: #fff;
}

.e-con.tl-esg-cta::before {
	background: rgba(20, 12, 14, .72);
}

.tl-esg-cta__in {
	margin: 0 auto;
	align-items: center;
}

.tl-esg-cta .tl-actions {
	--justify-content: center;
}

@media (max-width: 1024px) {
	.tl-esg-offers,
	.tl-esg-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.e-con.tl-esg-split__img {
		min-height: 380px;
	}
}

@media (max-width: 600px) {
	.tl-esg-offers {
		grid-template-columns: 1fr;
	}
}

/* ESG section heights, measured from the Tanzania page at 1440 wide */
@media (min-width: 1025px) {
	.e-con.tl-esg-hero { min-height: 800px; }
	.e-con.tl-esg-intro { min-height: 365px; --padding-top: 50px; --padding-bottom: 50px; }
	.e-con.tile.tl-esg-pillar { min-height: 600px; }
	.e-con.tl-esg-impact { min-height: 1121px; --justify-content: center; }
	.e-con.tl-esg-split:has(.tl-esg-split__panel--brand),
	.e-con.tl-esg-split:has(.tl-esg-split__panel--brand) > .e-con { min-height: 1200px; }
	.e-con.tl-esg-split:has(.tl-esg-split__panel--ink),
	.e-con.tl-esg-split:has(.tl-esg-split__panel--ink) > .e-con { min-height: 800px; }
	.e-con.tl-esg-offer { min-height: 666px; --padding-top: 50px; --padding-bottom: 50px; }
	.tl-esg-offers li { min-height: 168px; }
	.tl-esg-stats { min-height: 300px; align-content: center; padding-block: 45px; }
	.e-con.tl-esg-cta { min-height: 500px; --justify-content: center; }
}

/* Numbered labels left empty on the copied live pages are not shown */
.trinity-live-page .opp-n:empty,
.trinity-live-page .ps-n:empty,
.trinity-live-page [class*="-num"]:empty {
	display: none;
}

.trinity-live-page .step-ghost:empty,
.trinity-live-page .step-badge:has(span:empty) {
	display: none;
}

.tl-esg-list li {
	grid-template-columns: 1fr;
}

/* The copied live page uses the site's body text: Outfit 300 at 15px */
.trinity-live-page [data-elementor-type="wp-page"] p,
.trinity-live-page [data-elementor-type="wp-page"] li {
	font-family: var(--tl-sans) !important;
	font-weight: 300 !important;
	font-size: 15px !important;
	line-height: 1.8;
}

/* Practice area service and structure cards are not links, so no hover line or fill */
body .tl-page:not(#tl) .svc-card::before,
body .tl-page:not(#tl) .entity-card::after {
	content: none;
}

body .tl-page:not(#tl) .svc-card:hover,
body .tl-page:not(#tl) .entity-card:hover {
	background: var(--white);
}

body .tl-page:not(#tl) .svc-card:hover .svc-ico-wrap {
	background: var(--red-fade);
	border-color: var(--red-mid);
}

body .tl-page:not(#tl) .svc-card:hover .svc-ico-wrap svg {
	stroke: var(--red);
}
