/*
 * The Corporate Edit — Maroon (redesign 1)
 *
 * Light-first: ivory and white grounds, maroon and wine for the dark bands.
 * No black anywhere — the deepest colour is wine (#3B0A10).
 * House rules carried over from the first build: no border-radius on UI,
 * no drop shadows, no blur, no gradient washes over photographs. Hairlines,
 * hard edges and large type do the work.
 */

:root {
	--tce-wine: var(--wp--preset--color--wine);
	--tce-maroon: var(--wp--preset--color--maroon);
	--tce-red: var(--wp--preset--color--red);
	--tce-rose: var(--wp--preset--color--rose);
	--tce-blush: var(--wp--preset--color--blush);
	--tce-champagne: var(--wp--preset--color--champagne);
	--tce-ivory: var(--wp--preset--color--ivory);
	--tce-sand: var(--wp--preset--color--sand);
	--tce-white: var(--wp--preset--color--white);
	--tce-mauve: var(--wp--preset--color--mauve);
	--tce-amber: var(--wp--preset--color--amber);
	--tce-line: rgba(107, 15, 26, .16);
	--tce-line-dark: rgba(243, 223, 218, .22);
	--tce-header-h: 84px;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--tce-header-h) + 1rem); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--tce-maroon); color: var(--tce-white); }

img { display: block; max-width: 100%; height: auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }
main.wp-block-group { margin-block-start: 0; }
.wp-block-post-content > .alignfull { margin-block-start: 0; }
:where(.wp-block-group.alignfull) + :where(.wp-block-group.alignfull) { margin-block-start: 0; }

h1 em, h2 em, h3 em { font-style: italic; }

/* --- Shared type ------------------------------------------------------------ */

.tce-eyebrow {
	font-family: var(--wp--preset--font-family--caps);
	font-size: .8125rem;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--tce-red);
	line-height: 1.5;
	margin-block-end: .9rem !important;
}
.tce-brandname {
	font-family: var(--wp--preset--font-family--caps);
	font-size: clamp(1rem, 1.6vw, 1.25rem);
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--tce-champagne);
	margin-block-end: 1.25rem !important;
}
.tce-lede { line-height: 1.55; }
.tce-muted { color: var(--tce-mauve); }
.tce-pullquote { font-family: var(--wp--preset--font-family--display); color: var(--tce-maroon); line-height: 1.35; }
.tce-sources, .tce-chart__source, .tce-leak__src {
	font-size: .75rem;
	line-height: 1.55;
	color: var(--tce-mauve);
	letter-spacing: .01em;
}
.tce-trust { color: var(--tce-mauve); letter-spacing: .04em; }

.tce-rule, hr.tce-rule {
	width: 64px;
	max-width: 64px;
	border: 0 !important;
	border-top: 1px solid var(--tce-champagne) !important;
	margin-inline: 0;
	opacity: 1;
	height: 0;
}
.tce-rule.aligncenter { margin-inline: auto; }

.tce-arrowlink a, .tce-btnlink {
	font-family: var(--wp--preset--font-family--body);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--tce-red);
	border-bottom: 1px solid currentColor;
	padding-bottom: .25rem;
}
.tce-arrowlink a:hover { color: var(--tce-maroon); }

.tce-sechead { margin-block-end: var(--wp--preset--spacing--50) !important; }
.tce-sechead h2 { max-width: 20ch; }
.tce-sechead--center h2 { margin-inline: auto; }
.tce-sechead .tce-lede { color: var(--tce-mauve); max-width: 60ch; }
.tce-sechead--center .tce-lede { margin-inline: auto; }

/* --- Dark bands (maroon, wine) ---------------------------------------------- */

.tce-dark { color: var(--tce-blush); }
.tce-dark :is(h1, h2, h3, h4) { color: var(--tce-white); }
.tce-dark .tce-eyebrow { color: var(--tce-champagne); }
.tce-dark .tce-muted,
.tce-dark .tce-sources,
.tce-dark .tce-chart__source,
.tce-dark .tce-trust { color: rgba(243, 223, 218, .72); }
.tce-dark .tce-lede { color: var(--tce-white); }
.tce-dark .tce-pullquote { color: var(--tce-champagne); }
.tce-dark a:not(.wp-block-button__link) { color: var(--tce-white); }
.tce-dark .tce-sechead .tce-lede { color: rgba(243, 223, 218, .85); }

/* Buttons: light fill on dark grounds, ghost outline alongside. */
.tce-btn-light .wp-block-button__link {
	background: var(--tce-ivory) !important;
	color: var(--tce-maroon) !important;
	border-color: var(--tce-ivory) !important;
}
.tce-btn-light .wp-block-button__link:hover { background: var(--tce-white) !important; }
.tce-btn-ghost .wp-block-button__link {
	background: transparent !important;
	color: var(--tce-maroon) !important;
	border-color: var(--tce-maroon) !important;
}
.tce-dark .tce-btn-ghost .wp-block-button__link { color: var(--tce-white) !important; border-color: rgba(255, 255, 255, .55) !important; }
.tce-btn-ghost .wp-block-button__link:hover { background: var(--tce-maroon) !important; color: var(--tce-white) !important; }
.tce-dark .tce-btn-ghost .wp-block-button__link:hover { background: var(--tce-white) !important; color: var(--tce-maroon) !important; }

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

.tce-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--tce-line);
	padding-block: .9rem;
}
.admin-bar .tce-header { top: 32px; }
.tce-header__inner { min-height: calc(var(--tce-header-h) - 1.8rem); }
.tce-header__logo { margin: 0; }
.tce-header__logo img { width: clamp(170px, 18vw, 230px) !important; }
.tce-nav {
	font-family: var(--wp--preset--font-family--body);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--tce-maroon);
}
.tce-nav .wp-block-navigation-item__content { text-decoration: none; padding-block: .3rem; border-bottom: 1px solid transparent; }
.tce-nav .wp-block-navigation-item__content:hover,
.tce-nav .current-menu-item > .wp-block-navigation-item__content,
.tce-nav [aria-current="page"] { border-bottom-color: var(--tce-red); color: var(--tce-red); }
.tce-nav .tce-nav__cta > .wp-block-navigation-item__content {
	border: 1px solid var(--tce-maroon);
	padding: .7rem 1.2rem;
}
.tce-nav .tce-nav__cta > .wp-block-navigation-item__content:hover { background: var(--tce-maroon); color: var(--tce-white); }
/* Mobile overlay */
.tce-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 2rem clamp(1.25rem, 4vw, 3rem);
}
.tce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	gap: 1.4rem;
	font-size: 1rem;
	padding-top: 3rem;
}
.tce-nav .wp-block-navigation__responsive-container.is-menu-open .tce-nav__cta > .wp-block-navigation-item__content { border-color: var(--tce-ivory); }
.tce-nav .wp-block-navigation__responsive-container-open svg,
.tce-nav .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* --- Edge-to-edge split sections ---------------------------------------------- */

.tce-split { padding-inline: 0 !important; }
.tce-split > .wp-block-columns { margin: 0; gap: 0 !important; align-items: stretch !important; }
.tce-split__text {
	padding: var(--wp--preset--spacing--60) clamp(1.5rem, 6vw, 6rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.tce-split__text > * { max-width: 640px; }
.tce-split__media { position: relative; min-height: 520px; overflow: hidden; }
.tce-split__media .wp-block-image,
.tce-split__media figure { position: absolute; inset: 0; margin: 0; height: 100%; }
.tce-split__media img { width: 100%; height: 100% !important; object-fit: cover; }
.tce-split--hero .tce-split__text { min-height: calc(100vh - var(--tce-header-h)); min-height: calc(100svh - var(--tce-header-h)); }
.tce-split--hero h1 { max-width: 11ch; }

@media (max-width: 781px) {
	.tce-split__media { min-height: 0; aspect-ratio: 4 / 5; }
	.tce-split .tce-split--reverse { flex-direction: column-reverse; }
	.tce-split--hero .tce-split__text { min-height: 0; }
}

/* --- Service hero: text · three mini-stats · portrait -------------------------- */

.tce-hero { padding-inline: 0 !important; }
.tce-hero__cols { margin: 0 !important; gap: 0 !important; align-items: stretch !important; }
.tce-hero__text {
	padding: var(--wp--preset--spacing--60) clamp(1.5rem, 5vw, 5rem);
	display: flex; flex-direction: column; justify-content: center;
}
.tce-hero__text h1 { max-width: 17ch; }
.tce-hero--po .tce-hero__text h1 { max-width: 12ch; font-size: clamp(2.8rem, 6vw, 5.6rem); }
.tce-hero__text h1 em { color: var(--tce-champagne); }
.tce-hero__stats {
	border-left: 1px solid var(--tce-line-dark);
	display: flex; flex-direction: column; justify-content: center;
	padding: var(--wp--preset--spacing--40) clamp(1.25rem, 2.5vw, 2.25rem);
}
.tce-hero__media { position: relative; min-height: 640px; overflow: hidden; }
.tce-hero__media figure { position: absolute; inset: 0; margin: 0; }
.tce-hero__media img { width: 100%; height: 100% !important; object-fit: cover; }

.tce-minis { list-style: none; margin: 0; padding: 0; }
.tce-mini { padding-block: 1.4rem; border-bottom: 1px solid var(--tce-line-dark); }
.tce-mini:last-child { border-bottom: 0; }
.tce-mini__num {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.2rem, 3.4vw, 3.2rem);
	line-height: 1;
	color: var(--tce-white);
	letter-spacing: -.02em;
	margin-bottom: .5rem;
}
.tce-mini__desc { display: block; font-size: .875rem; line-height: 1.5; color: rgba(243, 223, 218, .82); }

@media (max-width: 1100px) {
	.tce-hero__cols { flex-wrap: wrap !important; }
	.tce-hero__text { flex-basis: 100% !important; }
	.tce-hero__stats { flex-basis: 45% !important; border-left: 0; border-top: 1px solid var(--tce-line-dark); }
	.tce-hero__media { flex-basis: 55% !important; min-height: 460px; }
	.tce-hero__cols--2 .tce-hero__media { flex-basis: 100% !important; }
}
@media (max-width: 781px) {
	.tce-hero__stats, .tce-hero__media { flex-basis: 100% !important; }
	.tce-hero__media { min-height: 0; aspect-ratio: 4 / 5; }
	.tce-minis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
	.tce-mini { border-bottom: 0; padding-block: .5rem; }
	.tce-mini__num { font-size: 1.8rem; }
	.tce-mini__desc { font-size: .78rem; }
}

/* --- Home: practice cards and reasons ------------------------------------------ */

.tce-cards { gap: var(--wp--preset--spacing--30) !important; }
.tce-card__img { margin: 0 0 1.25rem; aspect-ratio: 3 / 4; overflow: hidden; }
.tce-card__img img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.tce-card:hover .tce-card__img img { transform: scale(1.035); }
.tce-card__num { font-family: var(--wp--preset--font-family--caps); font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--tce-red); margin-bottom: .4rem !important; }
.tce-card h3 { margin-top: 0 !important; }
@media (min-width: 782px) and (max-width: 1100px) {
	.tce-cards--4 { flex-wrap: wrap !important; }
	.tce-cards--4 > .wp-block-column { flex-basis: calc(50% - 1rem) !important; }
}

.tce-reasons > .wp-block-column { border-top: 1px solid var(--tce-maroon); padding-top: 1.5rem; }
.tce-reason__num, .tce-why__num, .tce-tier__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--tce-red);
	margin-bottom: 1rem !important;
}

.tce-founders h2 { max-width: none; }
.tce-founders__mark { margin-bottom: 1.5rem !important; }
.tce-signature { font-family: var(--wp--preset--font-family--caps); letter-spacing: .2em; text-transform: uppercase; font-size: .85rem; color: var(--tce-white); margin-top: 2rem !important; }
.tce-signature__role { color: var(--tce-champagne); font-size: .72rem; }
.tce-monogram { text-align: center; margin: 0 0 1.25rem; }
.tce-monogram img { display: inline-block; width: 64px; }

.tce-ctaband h2 { max-width: 22ch; margin-inline: auto; }

/* --- Number strip (the reference-image style) ---------------------------------- */

.tce-strip {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1rem;
	max-width: 1320px;
}
.tce-stat {
	background: var(--tce-white);
	border-top: 3px solid var(--tce-red);
	padding: 1.75rem 1.4rem 1.6rem;
	display: flex; flex-direction: column; gap: .75rem;
}
.has-white-background-color .tce-stat { background: var(--tce-ivory); }
.tce-stat--1 { border-top-color: var(--tce-champagne); }
.tce-stat--2 { border-top-color: var(--tce-rose); }
.tce-stat__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.2rem, 3.2vw, 3.1rem);
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--tce-maroon);
	white-space: nowrap;
}
.tce-stat__desc { font-size: .9rem; line-height: 1.5; color: var(--tce-mauve); }
.tce-strip + .tce-sources { text-align: center; margin: 1.5rem auto 0; max-width: 900px; }
.tce-strip--tbc .tce-stat { border-style: dashed; border-top-style: solid; outline: 1px dashed rgba(168, 97, 30, .45); outline-offset: -1px; }
.tce-strip--tbc .tce-stat__num { color: var(--tce-amber); }

@media (max-width: 1000px) {
	/* Brief: on mobile the strip is a horizontal swipe carousel, never a stack. */
	.tce-strip {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: minmax(230px, 70%);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 1rem;
		scrollbar-width: thin;
	}
	.tce-stat { scroll-snap-align: start; }
}

/* --- Leak cards: problem numbers in amber, never the brand colour --------------- */

.tce-leaks { gap: var(--wp--preset--spacing--30) !important; }
.tce-leak {
	background: var(--tce-white);
	padding: 2rem 1.75rem;
	border-left: 3px solid var(--tce-amber);
}
.tce-leak__title { font-family: var(--wp--preset--font-family--caps); letter-spacing: .18em; text-transform: uppercase; color: var(--tce-mauve); }
.tce-leak__figure { margin: .5rem 0 1rem !important; line-height: 1.05; }
.tce-leak__num {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.2rem, 3.4vw, 3.2rem);
	color: var(--tce-amber);
	letter-spacing: -.02em;
}
.tce-leak__unit { display: block; font-size: .85rem; color: var(--tce-mauve); margin-top: .5rem; letter-spacing: .04em; }
@media (min-width: 782px) and (max-width: 1100px) {
	.tce-leaks--4 { flex-wrap: wrap !important; }
	.tce-leaks--4 > .wp-block-column { flex-basis: calc(50% - 1rem) !important; }
}

/* --- Comparison: them greyed, us in brand colour with ticks ---------------------- */

.tce-compare { display: grid; grid-template-columns: 1fr 1fr; margin-top: 2rem; border: 1px solid var(--tce-line); }
.tce-compare__col { padding: 1.5rem 1.5rem 1rem; }
.tce-compare__col--them { background: var(--tce-sand); color: var(--tce-mauve); }
.tce-compare__col--us { background: var(--tce-maroon); color: var(--tce-white); }
.tce-compare__head { font-family: var(--wp--preset--font-family--caps); letter-spacing: .2em; text-transform: uppercase; font-size: .78rem; margin: 0 0 1rem; }
.tce-compare__col--us .tce-compare__head { color: var(--tce-champagne); }
.tce-compare ul { list-style: none; margin: 0; padding: 0; }
.tce-compare li { position: relative; padding: .8rem 0 .8rem 1.6rem; border-top: 1px solid rgba(107, 15, 26, .12); font-size: .95rem; line-height: 1.45; min-height: 4.2em; }
.tce-compare__col--us li { border-top-color: rgba(255, 255, 255, .14); }
.tce-compare__col--them li::before { content: "–"; position: absolute; left: 0; color: rgba(122, 90, 86, .6); }
.tce-compare__col--us li::before { content: "✓"; position: absolute; left: 0; color: var(--tce-champagne); }
@media (max-width: 600px) {
	.tce-compare { grid-template-columns: 1fr; }
	.tce-compare li { min-height: 0; }
}

/* --- Steps ------------------------------------------------------------------------ */

.tce-steps { gap: 0 !important; border-top: 1px solid var(--tce-maroon); }
.tce-step { padding: 1.75rem 1.5rem 0 0; position: relative; }
.tce-step + .tce-step { padding-left: 1.5rem; border-left: 1px solid var(--tce-line); }
.tce-step__num { font-family: var(--wp--preset--font-family--display); font-size: 3rem; line-height: 1; color: var(--tce-red); margin-bottom: 1rem !important; }
@media (max-width: 781px) {
	.tce-step, .tce-step + .tce-step { padding: 1.5rem 0 1.5rem 0; border-left: 0; border-bottom: 1px solid var(--tce-line); }
}

/* --- Tabs (core/details — accordion on mobile, tabs on desktop via JS) ------------ */

.tce-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	border-bottom: 1px solid var(--tce-line);
	margin-bottom: var(--wp--preset--spacing--40);
}
.tce-tabs__btn {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	padding: 1rem 1.25rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: .8rem;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--tce-mauve);
	cursor: pointer;
	text-align: left;
}
.tce-tabs__btn:hover { color: var(--tce-maroon); }
.tce-tabs__btn[aria-selected="true"] { color: var(--tce-maroon); border-bottom-color: var(--tce-red); }
.tce-tabs__btn:focus-visible { outline: 2px solid var(--tce-red); outline-offset: 2px; }

.tce-tab { border-top: 1px solid var(--tce-line); margin: 0 !important; }
.tce-tab:last-child { border-bottom: 1px solid var(--tce-line); }
.tce-tab > summary {
	list-style: none;
	cursor: pointer;
	padding: 1.3rem 2.5rem 1.3rem 0;
	position: relative;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	color: var(--tce-maroon);
}
.tce-tab > summary::-webkit-details-marker { display: none; }
.tce-tab > summary::after {
	content: "";
	position: absolute; right: .4rem; top: 50%;
	width: .6rem; height: .6rem;
	border-right: 1px solid var(--tce-red); border-bottom: 1px solid var(--tce-red);
	transform: translateY(-70%) rotate(45deg);
	transition: transform .25s ease;
}
.tce-tab[open] > summary::after { transform: translateY(-30%) rotate(-135deg); }
.tce-tab__body { padding-bottom: 2rem; margin: 0 !important; }
.tce-tab__img { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; }
.tce-tab__img img { width: 100%; height: 100% !important; object-fit: cover; }
.tce-tab__for { color: var(--tce-mauve); font-style: italic; margin-bottom: 1rem !important; }
.tce-tab__tagline { margin-top: 0 !important; max-width: 22ch; }

/* Desktop tab mode: JS adds .is-tabbed and hides the summaries. */
.tce-tabs.is-tabbed .tce-tab { border: 0; }
.tce-tabs.is-tabbed .tce-tab > summary { display: none; }
.tce-tabs.is-tabbed .tce-tab:not([open]) { display: none; }
.tce-tabs.is-tabbed .tce-tab__body { padding-bottom: 0; }

.tce-ticklist { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 2.5rem; }
.tce-ticklist li {
	break-inside: avoid;
	position: relative;
	padding: .65rem 0 .65rem 1.4rem;
	border-top: 1px solid var(--tce-line);
	font-size: .95rem;
	line-height: 1.45;
}
.tce-ticklist li::before {
	content: "";
	position: absolute; left: 0; top: 1.15rem;
	width: .45rem; height: .45rem;
	background: var(--tce-red);
	transform: rotate(45deg);
}
@media (max-width: 900px) { .tce-ticklist { columns: 1; } }
@media (max-width: 781px) { .tce-tab__media { max-width: 320px; } }

/* --- "Why this matters" blocks ------------------------------------------------------- */

.tce-whys > .wp-block-column { border-top: 1px solid var(--tce-line-dark); padding-top: 1.75rem; }
.tce-dark .tce-why__num { color: var(--tce-champagne); }
.tce-why h3 { max-width: 20ch; }

/* --- Charts (single-series bars and meters) ------------------------------------------- */

.tce-chart { margin: 2rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid var(--tce-line); }
.tce-chartwrap { max-width: 860px; margin: var(--wp--preset--spacing--50) auto 0; }
.tce-chart__title { font-family: var(--wp--preset--font-family--body); font-weight: 500; font-size: .95rem; color: var(--tce-wine); margin-bottom: .35rem; }
.tce-chart__desc { font-size: .85rem; color: var(--tce-mauve); margin: 0 0 1rem; }
.tce-bars { display: grid; gap: .85rem; margin-top: 1rem; }
.tce-bar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "label value" "track track";
	column-gap: 1rem; row-gap: .35rem;
	align-items: end;
	position: relative;
	cursor: default;
}
.tce-bar__label { grid-area: label; font-size: .85rem; line-height: 1.35; color: var(--tce-wine); }
.tce-bar__value { grid-area: value; font-size: .95rem; font-weight: 600; color: var(--tce-wine); font-variant-numeric: tabular-nums; }
.tce-bar__track { grid-area: track; height: 14px; background: var(--tce-sand); display: block; }
.tce-bar__fill {
	display: block;
	height: 100%;
	width: var(--v);
	background: var(--tce-red);
	border-radius: 0 4px 4px 0; /* data-end rounding, square at the baseline */
	transition: width 1.1s cubic-bezier(.2, .7, .2, 1);
}
.tce-bar--muted .tce-bar__fill { background: var(--tce-rose); }
.tce-js .tce-chart:not(.is-drawn) .tce-bar__fill { width: 0; }
.tce-bar:hover .tce-bar__track { background: #EADCC8; }
.tce-dark .tce-chart { border-top-color: var(--tce-line-dark); }
.tce-dark .tce-chart__title, .tce-dark .tce-bar__label, .tce-dark .tce-bar__value { color: var(--tce-white); }
.tce-dark .tce-bar__track { background: rgba(243, 223, 218, .14); }
.tce-dark .tce-bar__fill { background: var(--tce-blush); }
.tce-dark .tce-bar--muted .tce-bar__fill { background: rgba(243, 223, 218, .45); }
.tce-dark .tce-chart__desc { color: rgba(243, 223, 218, .72); }

.tce-meter { height: 14px; background: var(--tce-sand); margin-top: .9rem; }
.tce-meter__fill { display: block; height: 100%; width: var(--v); background: var(--tce-red); border-radius: 0 4px 4px 0; transition: width 1.1s cubic-bezier(.2, .7, .2, 1); }
.tce-js .tce-chart:not(.is-drawn) .tce-meter__fill { width: 0; }
.tce-meter__legend { font-size: .85rem; margin-top: .6rem; }
.tce-meter__legend strong { font-size: 1.1rem; margin-right: .3rem; }
.tce-dark .tce-meter { background: rgba(243, 223, 218, .14); }
.tce-dark .tce-meter__fill { background: var(--tce-blush); }
.tce-dark .tce-meter__legend { color: var(--tce-white); }

.tce-tooltip {
	position: fixed;
	z-index: 60;
	pointer-events: none;
	background: var(--tce-wine);
	color: var(--tce-white);
	font-size: .8rem;
	line-height: 1.4;
	padding: .5rem .7rem;
	max-width: 260px;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity .12s ease, transform .12s ease;
}
.tce-tooltip.is-on { opacity: 1; transform: none; }

/* --- Tables --------------------------------------------------------------------------- */

.tce-table { margin: 0; overflow-x: auto; }
.tce-table table { border-collapse: collapse; width: 100%; min-width: 620px; background: var(--tce-white); }
.tce-table thead { border-bottom: 0 !important; }
.tce-table th {
	background: var(--tce-maroon);
	color: var(--tce-white);
	text-align: left;
	font-family: var(--wp--preset--font-family--caps);
	font-weight: 400;
	font-size: .78rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding: 1rem 1.25rem;
	border: 0 !important;
}
.tce-table td { padding: 1rem 1.25rem; border: 0 !important; border-bottom: 1px solid var(--tce-line) !important; font-size: .95rem; vertical-align: top; }
.tce-table td:first-child { font-family: var(--wp--preset--font-family--display); color: var(--tce-maroon); font-size: 1.05rem; }
.tce-table td:last-child { color: var(--tce-red); font-weight: 500; }
.tce-table tbody tr:hover td { background: var(--tce-ivory); }
.tce-table--sources table { min-width: 0; background: transparent; }
.tce-table--sources td { font-size: .8rem !important; color: var(--tce-mauve) !important; font-weight: 400 !important; font-family: var(--wp--preset--font-family--body) !important; }
.tce-table--sources td:first-child { color: var(--tce-wine) !important; width: 38%; }
.tce-sourcesbox > summary { cursor: pointer; font-size: .85rem; color: var(--tce-mauve); letter-spacing: .04em; }
.tce-sourcesbox[open] > summary { margin-bottom: 1rem; }

/* --- Calculators ---------------------------------------------------------------------- */

.tce-calcband .tce-sechead { margin-bottom: var(--wp--preset--spacing--40) !important; }
.tce-calc {
	display: grid;
	grid-template-columns: 1fr 1fr;
	max-width: 1100px;
	margin: 0 auto;
	border: 1px solid var(--tce-line-dark);
}
.tce-calc__inputs { padding: clamp(1.5rem, 4vw, 3rem); display: grid; gap: 2rem; align-content: center; }
.tce-calc__outputs { padding: clamp(1.5rem, 4vw, 3rem); background: var(--tce-ivory); color: var(--tce-wine); }
.tce-range { display: grid; grid-template-columns: 1fr auto; gap: .6rem 1rem; align-items: baseline; }
.tce-range__label { font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tce-blush); }
.tce-range__out { font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; color: var(--tce-white); }
.tce-range input[type="range"] { grid-column: 1 / -1; width: 100%; accent-color: var(--tce-champagne); height: 28px; cursor: pointer; }
.tce-calc__row { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--tce-line); margin: 0; font-size: .95rem; }
.tce-calc__row strong { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tce-calc__total { margin: 1.5rem 0 .5rem; display: grid; gap: .3rem; }
.tce-calc__total span { font-family: var(--wp--preset--font-family--caps); font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; color: var(--tce-mauve); }
.tce-calc__total strong { font-family: var(--wp--preset--font-family--display); font-weight: 400; font-size: clamp(2.6rem, 5vw, 4.2rem); line-height: 1; color: var(--tce-maroon); letter-spacing: -.02em; }
.tce-calc__small { font-size: .78rem; color: var(--tce-mauve); line-height: 1.5; }
.tce-dark .tce-calc__outputs a.tce-btnlink { color: var(--tce-red); }
@media (max-width: 781px) { .tce-calc { grid-template-columns: 1fr; } }

/* --- Personal-touch tiles --------------------------------------------------------------- */

.tce-touch { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; }
.tce-touch li { border-top: 1px solid var(--tce-line); padding: 1rem 0 1rem 2.6rem; position: relative; font-size: .95rem; line-height: 1.45; }
.tce-touch strong { color: var(--tce-maroon); font-weight: 500; }
.tce-touch li > span:last-child { color: var(--tce-mauve); }
.tce-touch__n { position: absolute; left: 0; top: 1.05rem; font-family: var(--wp--preset--font-family--display); color: var(--tce-red); font-size: .95rem; }
.tce-touch__media figure { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; }
.tce-touch__media img { width: 100%; height: 100% !important; object-fit: cover; }
@media (max-width: 900px) { .tce-touch { grid-template-columns: 1fr; } }

/* --- Gallery band ------------------------------------------------------------------------- */

.tce-galleryband { padding-inline: 0 !important; background: var(--tce-ivory); }
.tce-gallery { margin: 0 !important; gap: 4px !important; }
.tce-gallery__img { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; }
.tce-gallery__img img { width: 100%; height: 100% !important; object-fit: cover; }
@media (max-width: 781px) {
	.tce-gallery { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; }
	.tce-gallery > .wp-block-column { flex: 0 0 78% !important; scroll-snap-align: start; }
}

/* --- Who we work with -------------------------------------------------------------------- */

.tce-whos > .wp-block-column { border-top: 1px solid var(--tce-maroon); padding-top: 1.25rem; }
.tce-who__body { font-family: var(--wp--preset--font-family--display); color: var(--tce-maroon); line-height: 1.45; }

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

.tce-faq__item { border-top: 1px solid var(--tce-line); margin: 0 !important; }
.tce-faq__item:last-child { border-bottom: 1px solid var(--tce-line); }
.tce-faq__item > summary {
	list-style: none; cursor: pointer;
	padding: 1.25rem 3rem 1.25rem 0;
	position: relative;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.2rem;
	color: var(--tce-maroon);
	line-height: 1.35;
}
.tce-faq__item > summary::-webkit-details-marker { display: none; }
.tce-faq__item > summary::after {
	content: "+";
	position: absolute; right: .25rem; top: 1.05rem;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 300; font-size: 1.6rem; line-height: 1;
	color: var(--tce-red);
}
.tce-faq__item[open] > summary::after { content: "–"; }
.tce-faq__item > p { padding-bottom: 1.25rem; max-width: 70ch; }

/* --- Placeholders: everything the client still owes is visibly marked ----------------------- */

.tce-tbc {
	background: rgba(198, 162, 107, .18);
	border: 1px dashed var(--tce-amber);
	color: var(--tce-amber);
	padding: .05em .45em;
	font-size: .92em;
	font-style: normal;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.tce-dark .tce-tbc { background: rgba(198, 162, 107, .16); border-color: var(--tce-champagne); color: var(--tce-champagne); }
.tce-tbc-hint { display: block; margin-top: .6rem; font-size: .85rem; color: var(--tce-mauve); }
.tce-tbc-block {
	border: 1px dashed var(--tce-amber);
	background: rgba(198, 162, 107, .08);
	padding: 1.75rem 2rem;
	margin-top: var(--wp--preset--spacing--40);
	text-align: center;
}
.tce-tbc-block p { margin: 0; color: var(--tce-mauve); max-width: 70ch; margin-inline: auto; }
.tce-tbc-block__label { font-family: var(--wp--preset--font-family--caps); letter-spacing: .2em; text-transform: uppercase; font-size: .78rem; color: var(--tce-amber) !important; margin-bottom: .6rem !important; }

.tce-cases { gap: var(--wp--preset--spacing--30) !important; }
.tce-case { border-top: 3px solid var(--tce-red); background: var(--tce-ivory); padding: 1.75rem; }
.tce-cases + .wp-block-html .tce-tbc-block, .tce-cases + .tce-tbc-block { margin-top: var(--wp--preset--spacing--40); }
.tce-case--tbc { border-top-color: var(--tce-amber); outline: 1px dashed rgba(168, 97, 30, .45); outline-offset: -1px; }
.tce-case__tag { font-family: var(--wp--preset--font-family--caps); letter-spacing: .18em; text-transform: uppercase; font-size: .72rem; color: var(--tce-amber); margin: 0 0 1rem; }
.tce-case dl { margin: 0; }
.tce-case dt { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--tce-mauve); margin-top: .9rem; }
.tce-case dd { margin: .25rem 0 0; font-size: .92rem; }
.tce-case__result { font-family: var(--wp--preset--font-family--display); font-size: 2.4rem; margin: 1.5rem 0 .25rem; line-height: 1; }
.tce-case__resultlabel { font-size: .8rem; color: var(--tce-mauve); margin: 0; }

/* --- Private Office specifics --------------------------------------------------------------------- */

.tce-week { list-style: none; margin: 0; padding: 0; }
.tce-week li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1.5rem; padding: 1.2rem 0; border-top: 1px solid var(--tce-line); }
.tce-week li p { margin: 0; }
.tce-week__day { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: 1.35rem; color: var(--tce-red); line-height: 1.2; }
.tce-week__media figure { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; position: sticky; top: calc(var(--tce-header-h) + 1.5rem); }
.tce-week__media img { width: 100%; height: 100% !important; object-fit: cover; }
@media (max-width: 600px) { .tce-week li { grid-template-columns: 1fr; gap: .4rem; } }

.tce-rooms { gap: var(--wp--preset--spacing--40) !important; }
.tce-room__img { margin: 0 0 1.5rem; aspect-ratio: 3 / 4; overflow: hidden; }
.tce-room__img img { width: 100%; height: 100% !important; object-fit: cover; }
.tce-room h3 { margin-top: .25rem !important; }

.tce-tiers { gap: var(--wp--preset--spacing--30) !important; }
.tce-tier { border: 1px solid var(--tce-line); padding: 2.25rem 2rem; background: var(--tce-ivory); }
.tce-tier--top { background: var(--tce-maroon); color: var(--tce-blush); border-color: var(--tce-maroon); }
.tce-tier--top h3 { color: var(--tce-white); }
.tce-tier--top .tce-tier__num { color: var(--tce-champagne); }

.tce-vignettes { margin-top: var(--wp--preset--spacing--40) !important; }
.tce-vignette { margin: 0; padding: 1.75rem; background: var(--tce-white); border-left: 3px solid var(--tce-red); height: 100%; }
.tce-vignette--tbc { border-left-color: var(--tce-amber); outline: 1px dashed rgba(168, 97, 30, .45); outline-offset: -1px; }

/* --- Enquiry page and form --------------------------------------------------------------------- */

.tce-contact { padding-inline: 0 !important; }
.tce-contact__cols { margin: 0 !important; gap: 0 !important; align-items: stretch !important; }
.tce-contact__aside {
	background: var(--tce-maroon);
	padding: var(--wp--preset--spacing--60) clamp(1.5rem, 5vw, 5rem);
}
.tce-contact__form { padding: var(--wp--preset--spacing--60) clamp(1.5rem, 5vw, 5rem); }
.tce-contactlist__label { font-family: var(--wp--preset--font-family--caps); letter-spacing: .2em; text-transform: uppercase; font-size: .75rem; color: var(--tce-champagne); margin: 1.5rem 0 .2rem !important; }
.tce-contactlist p { margin-top: 0; }

.tce-form { max-width: 720px; }
.tce-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 600px) { .tce-field-row { grid-template-columns: 1fr; } }
.tce-field { margin: 0 0 1.4rem; }
.tce-field label {
	display: block;
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--tce-mauve);
	margin-bottom: .5rem;
}
.tce-field label span { color: var(--tce-red); }
.tce-field input, .tce-field textarea, .tce-field select {
	width: 100%;
	font-family: inherit;
	font-size: 1rem;
	color: var(--tce-wine);
	background: var(--tce-ivory);
	border: 0;
	border-bottom: 1px solid rgba(107, 15, 26, .35);
	border-radius: 0;
	padding: .85rem 1rem;
	box-sizing: border-box;
}
.tce-field textarea { resize: vertical; min-height: 9rem; }
.tce-field input:focus, .tce-field textarea:focus, .tce-field select:focus { outline: none; border-bottom-color: var(--tce-red); background: var(--tce-white); }
.tce-select { position: relative; display: block; }
.tce-select select { appearance: none; -webkit-appearance: none; padding-right: 2.5rem; cursor: pointer; }
.tce-select::after {
	content: "";
	position: absolute; right: 1rem; top: 50%;
	width: .5rem; height: .5rem;
	border-right: 1px solid var(--tce-red); border-bottom: 1px solid var(--tce-red);
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}
.tce-form__actions { margin: 1.75rem 0 0; }
.tce-form__actions button { cursor: pointer; }
.tce-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.tce-formnotice { padding: 1rem 1.25rem; margin-bottom: 1.75rem; border-left: 3px solid; }
.tce-formnotice--success { background: #EEF4EC; border-color: #4E7A4E; color: #2F4F2F; }
.tce-formnotice--error { background: var(--tce-blush); border-color: var(--tce-red); color: var(--tce-maroon); }

@media (max-width: 781px) {
	.tce-contact__aside, .tce-contact__form { flex-basis: 100% !important; }
}

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

.tce-footer .tce-eyebrow { color: var(--tce-champagne); font-size: .72rem; }
.tce-footer a { color: var(--tce-blush); text-decoration: none; }
.tce-footer a:hover { color: var(--tce-white); text-decoration: underline; }
.tce-footer__logo { margin: 0 0 1.25rem; }
.tce-footer__list { list-style: none; padding: 0; margin: 0; font-size: .92rem; line-height: 2.1; }
.tce-footer__rule { border-color: rgba(243, 223, 218, .2) !important; opacity: 1; }
.tce-footer .tce-tbc { font-size: .8rem; }

/* --- Motion: count-up and reveal are progressive; nothing loops ------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.tce-bar__fill, .tce-meter__fill, .tce-card__img img { transition: none; }
}

/* Mobile overlay: left-aligned, larger links. */
.tce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.tce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
.tce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.05rem; letter-spacing: .2em; }
.tce-nav .wp-block-navigation__responsive-container.is-menu-open .tce-nav__cta { margin-top: 1rem; }
