/* 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-vmv,
.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,
.e-con.tl-section.tl-benefits,
.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 */

.e-con.tl-about {
	--padding-top: 0;
	border-bottom: 1px solid var(--tl-border);
}

.e-con.tl-about__img {
	min-height: 70vh;
}

.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);
}

.e-con.tl-about__body {
	--padding-top: 6rem;
	--padding-bottom: 6rem;
	--padding-left: 5vw;
	--padding-right: 5vw;
	border-left: 1px solid var(--tl-border);
}

.e-con.tl-pillars {
	border: 0;
	border-radius: 0;
	background: var(--tl-border);
}

.e-con.tl-pillar {
	background: var(--tl-cream);
}

.e-con.tl-pillar:hover {
	background: var(--tl-cream-d);
}

.tl-pillar h4 {
	font: 600 12.5px/1.4 var(--tl-sans);
	letter-spacing: .02em;
}

.tl-pillar p {
	font-size: 11.5px;
	color: var(--tl-soft);
}

/* 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-about__img {
		min-height: 55vw;
	}

	.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,
.tl-teamsec__cap a,
.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);
}

/* Readability: body copy at weight 400, card text at 14px and up, and darker greys on light backgrounds */
.tl-lead p,
.tl-body p,
.ts-lead,
.ts-body p,
.ts-body li,
.tl-pcard p,
.tl-pillar p,
.tl-wi p,
.tl-footer p,
.tl-page:not(#tl) p,
.tl-page:not(#tl) .elementor-heading-title:is(p) {
	font-weight: 400 !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-pillar h4 {
	font-size: 14.5px;
}

.tl-pillar p {
	font-size: 14px;
	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-pillar,
.tl-person,
.tl-edition,
.tl-ben,
.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%;
	}
}
