

:root {
	/* ---- Brand colours (exact from Figma) ---- */
	--twobl-slate: #1B2930;            /* primary dark / headings / dark sections */
	--twobl-green: #8DC540;            /* primary accent / CTA */
	--twobl-green-hover: #7FB13A;
	--twobl-green-dark-hover: #557626;
	--twobl-green-glow: #A2EF38;      /* blurred glow blobs on green heroes (Figma) */
	--twobl-green-light: #F4F9EC;
	--twobl-green-light-active: #DCEDC4;
	--twobl-blue: #3BC3DE;             /* secondary, as drawn in Figma */
	--twobl-ocean: #0ACDE6;            /* brand Ocean — profile photo backdrops */
	--twobl-yellow: #FDB813;           /* brand Amber, Pantone 109 */
	--twobl-red: #F15B4E;              /* brand Citrus / Warm Red */
	--twobl-white: #FFFFFF;
	--twobl-black: #0C0C0C;
	--twobl-bg: #F4F4F4;               /* page background */
	--twobl-blue-light: #E8EAEA;
	--twobl-grey-mid: #C3C3C3;
	--twobl-grey-dark: #757575;
	--twobl-stroke-dark: #66757B;
	
	/* ---- Text colours ---- */
	--twobl-text-heading: #1B2930;
	--twobl-text-heading-2: #32434A;
	--twobl-text-body: #4C5C63;
	--twobl-text-supporting: #66757B;
	--twobl-text-on-dark: #BDD1D9;
	
	/* ---- Type families ---- */
	--twobl-font-heading: "Anton", "Arial Narrow", sans-serif;
	--twobl-font-body: "Inter", system-ui, sans-serif;
	--twobl-font-alt: "Roboto", system-ui, sans-serif;
	
	/* ---- Type scale (responsive clamp: mobile min → Figma desktop max) ---- */
	--twobl-fs-hero: clamp(3rem, 9vw, 12.8125rem);   /* 205px */
	--twobl-fs-h1:   clamp(2.75rem, 8vw, 7.5rem);
	--twobl-fs-h2:   clamp(2.25rem, 5.5vw, 5.6875rem); /* 91px */
	--twobl-fs-h3:   clamp(1.875rem, 4vw, 3.75rem);  /* 60px */
	--twobl-fs-h4:   clamp(1.5rem, 3vw, 2.5rem);     /* 40px */
	--twobl-fs-h5:   clamp(1.25rem, 2.2vw, 1.875rem);/* 30px */
	--twobl-fs-body: 1.25rem;   /* 20px Inter */
	--twobl-fs-body2: 1rem;     /* 16px Roboto */
	--twobl-fs-label: 0.8125rem;/* 13px Roboto, tracked, uppercase */
	--twobl-fs-button: 1.125rem;/* 18px Inter 600 */
	
	/* ---- Layout ---- */
	--twobl-container: 1320px; /* measured from Figma: content container is 1321px on the 2200px canvas */
	--twobl-gutter: clamp(1.25rem, 5vw, 4rem);
	
	/* ---- Spacing scale ---- */
	--twobl-space-sm: 0.75rem;
	--twobl-space-md: 1.5rem;
	--twobl-space-lg: 5rem;
	--twobl-space-xl: clamp(3.5rem, 8vw, 9rem);
	--twobl-sticky-top: 6rem;
	
	/* ---- Effects ---- */
	--twobl-radius: 24px;
	--twobl-shadow: 0 10px 40px rgba(0, 0, 0, 0.1); /* "Droopy 10/40" */
}
@media (max-width: 767px) {
	:root { --twobl-fs-body: 1rem; }
}

*,
*::before,
*::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-body);
	background: var(--twobl-white);
	line-height: 1.4;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
	font-family: var(--twobl-font-heading);
	font-weight: 400;
	line-height: 1.02;
	color: var(--twobl-text-heading);
	margin: 0 0 0.3em;
	text-transform: uppercase;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
[hidden] { display: none !important; }

/* ---- Type utility classes (map to Figma text styles) ---- */
.t-hero  { font-family: var(--twobl-font-heading); font-size: var(--twobl-fs-hero); line-height: 1; text-transform: uppercase; }
.t-h1    { font-family: var(--twobl-font-heading); font-size: var(--twobl-fs-h1);   line-height: 1.02; text-transform: uppercase; }
.t-h2    { font-family: var(--twobl-font-heading); font-size: var(--twobl-fs-h2);   line-height: 1.02; text-transform: uppercase; }
.t-h3    { font-family: var(--twobl-font-heading); font-size: var(--twobl-fs-h3);   line-height: 1.05; text-transform: uppercase; }
.t-h4    { font-family: var(--twobl-font-heading); font-size: var(--twobl-fs-h4);   line-height: 1.1;  text-transform: uppercase; }
.t-h5    { font-family: var(--twobl-font-heading); font-size: var(--twobl-fs-h5);   line-height: 1.25; text-transform: uppercase; }
.t-body  { font-family: var(--twobl-font-body); font-size: var(--twobl-fs-body); line-height: 1.4; }
.t-body2 { font-family: var(--twobl-font-alt);  font-size: var(--twobl-fs-body2); line-height: 1.5; }
.t-label { font-family: var(--twobl-font-alt);  font-size: var(--twobl-fs-label); letter-spacing: 0.1875rem; text-transform: uppercase; }

/* ---- Buttons ---- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-button);
	font-weight: 600;
	line-height: 1;
	padding: 1.3125rem 2.5rem;
	border-radius: 999px;
	border: 0;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	--fx: 50%;
	--fy: 50%;
	--fs: 0;
}
@media (max-width: 575px) {
	.btn {
		/* padding: 1.3125rem 1.5rem !important; */
		width: 100%;
	}
	.twobl-epi-hero__eyebrow,
	.twobl-postdetail__content {
		font-size: 16px !important;
	}
	.twobl-contactpage__form-inner {
		padding: 2rem 1rem 1.5rem !important;
	}
	.twobl-testimonials__inner {
		gap: 0 !important;
	}
}
.btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 200%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--btn-flair, transparent);
	transform: translate(calc(var(--fx) - 50%), calc(var(--fy) - 50%)) scale(var(--fs));
	
	transition: transform 0.75s cubic-bezier(0.33, 1, 0.68, 1);
	pointer-events: none;
	z-index: -1;
}

.btn:hover,
.btn:focus-visible { --fs: 1; }

.btn--primary {
	background: var(--twobl-green); 
	color: var(--twobl-slate);
	--btn-flair: rgba(12, 12, 12, 0.16); /* green → soft black overlay */
}
.btn--dark {
	background: var(--twobl-slate);
	color: var(--twobl-white);
	--btn-flair: var(--twobl-green);     /* slate → green */
}
.btn--dark:hover,
.btn--dark:focus-visible { color: var(--twobl-slate); } /* contrast on the green fill */
.btn--light {
	background: var(--twobl-white);
	color: var(--twobl-slate);
	--btn-flair: var(--twobl-green);     /* white → green */
}

@media (prefers-reduced-motion: reduce) {
	.btn::before { transition: none; } /* fills instantly = plain colour change */
}
.btn--outline {
	background: transparent;
	color: var(--twobl-slate);
	border: 1px solid var(--twobl-slate);
	padding: 0.9rem 1.5rem;
	--btn-flair: var(--twobl-green); /* fills green on hover, like the other variants */
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn--outline:hover,
.btn--outline:focus-visible {
	color: var(--twobl-slate);
	border-color: var(--twobl-green);
}

/* ---- Layout helpers ---- */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
.container {
	width: 100%;
	max-width: var(--twobl-container);
	margin-inline: auto;
}
@media (max-width: 1320px) {
	.container { padding-inline: clamp(1.25rem, 4vw, 2rem); }
}
.section { padding-block: var(--twobl-space-xl); }
.section--dark  { background: var(--twobl-slate); }
.section--dark  h1, .section--dark h2, .section--dark h3, .section--dark h4, .section--dark h5 { color: var(--twobl-white); }
.section--dark  p { color: var(--twobl-text-on-dark); }
.section--green { background: var(--twobl-green); }
.section--blue  { background: var(--twobl-blue); }
.section--light { background: var(--twobl-green-light); }

/* ---- Header chrome: floating white pill nav, overlaid on top of the hero ---- */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 2rem clamp(1rem, 3vw, 2rem) 0;
}
body:not(.home) .site-header { position: absolute; }
body:not(.home) { --twobl-sticky-top: 0; }

.site-header__bar {
	max-width: var(--twobl-container);
	margin-inline: auto;
	background: var(--twobl-white);
	border-radius: 999px;
	box-shadow: var(--twobl-shadow);
	padding: 0.6rem 0.75rem 0.6rem 1.5rem;
	display: flex;
	align-items: center;
	gap: 4.5rem;
}
.site-header__brand { flex: 0 0 auto; }

.site-header__brand .custom-logo { display: block; height: 56px; width: auto; max-width: 220px; margin-block: -6px; }
.site-header__logo {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	text-decoration: none;
}
.site-header__logo-mark { display: block; width: 45px;}
.site-header__logo-word { display: block; height: 10px; width: auto; margin-top: -1.2rem; margin-left: -18px; }
.site-header__nav { flex: 1 1 auto; }
.site-nav {
	display: flex;
	align-items: center;
	gap: 1.8rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.site-nav > li { position: relative; }
.site-nav a {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	text-decoration: none;
	font-family: var(--twobl-font-body);
	font-weight: 600;
	font-size: 1rem;
	color: var(--twobl-slate);
}
.site-nav li.menu-item-has-children > a::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	margin-left: 0.15rem;
}
.site-nav > li > ul.sub-menu,
.site-nav > li > ul:not(.twobl-megamenu) {
	list-style: none;
	margin: 0;
	padding: 0.5rem;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: var(--twobl-white);
	border-radius: 16px;
	box-shadow: var(--twobl-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.site-nav > li:hover > ul:not(.twobl-megamenu),
.site-nav > li:focus-within > ul:not(.twobl-megamenu) { opacity: 1; visibility: visible; transform: translateY(0); }
.site-nav ul:not(.twobl-megamenu) a { padding: 0.6rem 0.75rem; border-radius: 50px; display: flex; }
.site-nav ul:not(.twobl-megamenu) a:hover { background: var(--twobl-green-light); }
@media (min-width: 961px) {
	.site-nav > li > ul.sub-menu { top: calc(100% + 1.6rem); }
	.site-nav > li > ul.sub-menu::before {
		content: "";
		position: absolute;
		bottom: 100%;
		left: 0;
		right: 0;
		height: 1.75rem;
	}
}

/* ---- Mega Menu Component ---- */
.site-header__bar { position: relative; }
.twobl-nav__has-megamenu { position: static !important; }

.twobl-megamenu-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(16, 22, 47, 0.45);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease, visibility 0.25s;
}
.site-header:has(.twobl-nav__has-megamenu:hover) .twobl-megamenu-backdrop,
.site-header:has(.twobl-nav__has-megamenu:focus-within) .twobl-megamenu-backdrop {
	opacity: 1;
	visibility: visible;
}

.site-nav:has(.twobl-nav__has-megamenu:hover) > li > a,
.site-nav:has(.twobl-nav__has-megamenu:focus-within) > li > a {
	color: var(--twobl-grey-mid);
	transition: color 0.2s ease;
}
.site-nav .twobl-nav__has-megamenu:hover > a,
.site-nav .twobl-nav__has-megamenu:focus-within > a {
	color: var(--twobl-slate) !important;
}

.twobl-megamenu {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 50%;
	transform: translateX(-50%) translateY(8px);
	width: calc(100vw - 2 * clamp(1.25rem, 4vw, 3rem));
	max-width: var(--twobl-container);
	background: var(--twobl-white);
	border-radius: 24px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.14);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
	z-index: 200;
}

/* Invisible hit-zone bridge connecting header bar nav link to mega menu panel */
.twobl-megamenu::before {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 0;
	right: 0;
	height: 1.5rem;
	background: transparent;
	pointer-events: auto;
}

.twobl-nav__has-megamenu:hover .twobl-megamenu,
.twobl-nav__has-megamenu:focus-within .twobl-megamenu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.twobl-megamenu__inner {
	display: grid;
	grid-template-columns: 0.95fr 1.05fr;
	min-height: 380px;
	border-radius: 24px;
	overflow: hidden;
}

.twobl-megamenu--resources .twobl-megamenu__inner,
.twobl-megamenu--promo .twobl-megamenu__inner {
	grid-template-columns: 1fr 1fr 290px;
}

/* Col variants */
.twobl-megamenu__col {
	padding: 2.25rem 2.75rem;
	display: flex;
	flex-direction: column;
}

.twobl-megamenu--sectioned .twobl-megamenu__col + .twobl-megamenu__col {
	background-image: linear-gradient(
	to bottom,
	transparent 0,
	transparent 2.25rem,
	rgba(16, 22, 47, 0.08) 2.25rem,
	rgba(16, 22, 47, 0.08) calc(100% - 2.25rem),
	transparent calc(100% - 2.25rem),
	transparent 100%
	);
	background-repeat: no-repeat;
	background-size: 1px 100%;
	background-position: top left;
}
.twobl-megamenu__col--grey {
	background: #F4F6F4;
}
.twobl-megamenu__col--white {
	background: var(--twobl-white);
}
.twobl-megamenu__col--promo {
	padding: 1.25rem;
	background: var(--twobl-white);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Headings */
.twobl-megamenu__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}
.twobl-megamenu__title {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	line-height: 1.02;
	font-size: 1.125rem;
	color: var(--twobl-slate);
	margin: 0 0 1.5rem;
	text-transform: none;
}
.twobl-megamenu__head .twobl-megamenu__title {
	margin-bottom: 0;
}
.twobl-megamenu__viewall {
	font-family: var(--twobl-font-alt);
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--twobl-green-dark-hover);
	text-decoration: underline;
	transition: opacity 0.2s ease, color 0.2s ease;
}
.twobl-megamenu__viewall:hover,
.twobl-megamenu__viewall:focus-visible {
	opacity: 0.8;
	color: var(--twobl-slate);
}

/* Subgrid inside columns */
.twobl-megamenu__subgrid {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	gap: 0;
	flex: 1;
}

.twobl-megamenu__subgrid .twobl-megamenu__list:not(:last-child) {
	padding-right: 0.875rem !important;
}
.twobl-megamenu__subgrid .twobl-megamenu__list + .twobl-megamenu__list {
	padding-left: 0.875rem !important;
	background-image: linear-gradient(
	to bottom,
	transparent 0,
	transparent 0.75rem,
	rgba(16, 22, 47, 0.08) 0.75rem,
	rgba(16, 22, 47, 0.08) calc(100% - 0.75rem),
	transparent calc(100% - 0.75rem),
	transparent 100%
	) !important;
	background-repeat: no-repeat !important;
	background-size: 1px 100% !important;
	background-position: top left !important;
}

/* Flyout: a link's own children appear in the right-hand side of the column while it is hovered */
.twobl-megamenu__subgrid--flyout { position: relative; }
.twobl-megamenu__subgrid--flyout > .twobl-megamenu__list { grid-column: 1; }
.twobl-megamenu__flyout {
	list-style: none;
	margin: 0;
	padding: 0 0 0 0.875rem;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 57.45%;
	right: 0;
	display: none;
	flex-direction: column;
	gap: 0.5rem;
	background-image: linear-gradient(to bottom, transparent 0.75rem, rgba(16, 22, 47, 0.08) 0.75rem, rgba(16, 22, 47, 0.08) calc(100% - 0.75rem), transparent calc(100% - 0.75rem));
	background-repeat: no-repeat;
	background-size: 1px 100%;
}
.twobl-megamenu__has-flyout:hover > .twobl-megamenu__flyout,
.twobl-megamenu__has-flyout:focus-within > .twobl-megamenu__flyout { display: flex; }
.site-nav .twobl-megamenu .twobl-megamenu__has-flyout:hover > .twobl-megamenu__link,
.site-nav .twobl-megamenu .twobl-megamenu__has-flyout:focus-within > .twobl-megamenu__link {
	color: var(--twobl-slate);
	background-color: var(--twobl-green-light-active);
}
@media (max-width: 960px) {
	.site-header--nav-open .site-nav .twobl-megamenu__flyout {
		display: flex;
		position: static;
		padding: 0.25rem 0 0.25rem 1rem;
		background: none;
	}
}

/* Item lists */
.twobl-megamenu__list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	position: static !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	background: transparent !important;
	box-shadow: none !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.5rem !important;
}
.twobl-megamenu__link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	font-family: var(--twobl-font-alt);
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--twobl-text-heading-2);
	text-decoration: none;
	padding: 0.4rem 0.6rem;
	margin-left: -0.6rem;
	border-radius: 8px;
	transition: color 0.2s ease, background-color 0.2s ease;
}
/* Scoped through .site-nav .twobl-megamenu so it outranks the generic submenu hover (.site-nav ul a:hover) */
.site-nav .twobl-megamenu .twobl-megamenu__link:hover,
.site-nav .twobl-megamenu .twobl-megamenu__link:focus-visible {
	color: var(--twobl-slate);
	background-color: var(--twobl-green-light-active);
}
/* Figma's two demo states: light green on hover, solid green for the current page */
.site-nav .twobl-megamenu .twobl-megamenu__link.is-current {
	color: var(--twobl-slate);
	background-color: var(--twobl-green);
	font-weight: 700;
}
.twobl-megamenu__link.is-current svg { opacity: 1; }
.twobl-megamenu__link svg {
	opacity: 0.6;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.twobl-megamenu__link:hover svg,
.twobl-megamenu__link:focus-visible svg {
	opacity: 1;
	transform: translateX(4px);
}

/* Pill buttons */
.twobl-megamenu__pill {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: 100%;
	padding: 0.6rem 1.25rem;
	border-radius: 999px;
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.9375rem;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.twobl-megamenu__pill--green {
	background: var(--twobl-green);
	color: var(--twobl-slate);
}
.twobl-megamenu__pill--green:hover,
.twobl-megamenu__pill--green:focus-visible {
	background: var(--twobl-green-hover);
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(141, 197, 64, 0.35);
}
.twobl-megamenu__pill--lightgreen {
	background: var(--twobl-green-light-active);
	color: var(--twobl-slate);
}
.twobl-megamenu__pill--lightgreen:hover,
.twobl-megamenu__pill--lightgreen:focus-visible {
	background: #cbe3ad;
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(141, 197, 64, 0.2);
}
.twobl-megamenu__pill svg {
	transition: transform 0.2s ease;
}
.twobl-megamenu__pill:hover svg,
.twobl-megamenu__pill:focus-visible svg {
	transform: translateX(3px);
}

/* Outline button at bottom */
.twobl-megamenu__btn-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	padding: 0.6rem 1.5rem;
	border: 1px solid var(--twobl-grey-mid);
	border-radius: 999px;
	font-family: var(--twobl-font-alt);
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--twobl-slate);
	text-decoration: none;
	width: fit-content;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.twobl-megamenu__btn-outline:hover,
.twobl-megamenu__btn-outline:focus-visible {
	border-color: var(--twobl-slate);
	background-color: var(--twobl-white);
}

/* Promo Card ("SELLING FAST") */
.twobl-megamenu__card {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 310px;
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.twobl-megamenu__card-bg {
	position: absolute;
	inset: 0;
	z-index: 1;
}
.twobl-megamenu__card-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.twobl-megamenu__card-content {
	position: relative;
	z-index: 2;
	background: var(--twobl-green);
	padding: 1.5rem 1.25rem 1.25rem;
	border-radius: 50% 50% 0 0 / 25px 25px 0 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.twobl-megamenu__card-badge {
	width: 52px;
	height: 52px;
	background: var(--twobl-white);
	border-radius: 50%;
	margin-bottom: 0.75rem;
	margin-top: -2.5rem;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.twobl-megamenu__card-title {
	font-family: var(--twobl-font-heading);
	font-size: 2.25rem;
	line-height: 0.95;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: 0 0 1rem;
}
.twobl-megamenu__card-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.55rem 1.25rem;
	background: var(--twobl-slate);
	color: var(--twobl-white);
	border-radius: 999px;
	font-family: var(--twobl-font-alt);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.twobl-megamenu__card-btn:hover,
.twobl-megamenu__card-btn:focus-visible {
	background-color: #000;
	transform: translateY(-1px);
}

.site-header__actions { flex: 0 0 auto; display: flex; align-items: center; gap: 1rem; }
.site-header__country { position: relative; }
.site-header__country-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: none;
	border: 0;
	font-family: var(--twobl-font-body);
	font-weight: 500;
	font-size: 1rem;
	color: var(--twobl-slate);
	cursor: pointer;
}
.site-header__country-toggle svg:last-child { transition: transform 0.2s ease; }
.site-header__country[data-open] .site-header__country-toggle svg:last-child { transform: rotate(180deg); }
.site-header__country-menu {
	list-style: none;
	margin: 0;
	padding: 0.5rem;
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	min-width: 160px;
	background: var(--twobl-white);
	border-radius: 16px;
	box-shadow: var(--twobl-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
	z-index: 100;
}
.site-header__country[data-open] .site-header__country-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.site-header__country-menu button {
	display: block;
	width: 100%;
	padding: 0.6rem 0.75rem;
	border: 0;
	border-radius: 8px;
	background: none;
	font-family: var(--twobl-font-body);
	font-size: 0.9375rem;
	text-align: left;
	color: var(--twobl-slate);
	cursor: pointer;
}
.site-header__country-menu button:hover,
.site-header__country-menu li[aria-selected="true"] button {
	background: var(--twobl-green-light);
}
.site-header__cta { padding: 0.8rem 1.5rem; font-size: 1rem; }
.site-header__cta-short { display: none; }
.site-header__toggle { display: none; }

@media (max-width: 960px) {
	
	.site-header { padding-top: 1.25rem; }
	.site-header__bar {
		gap: 0.75rem;
		padding: 0.5rem 0.5rem 0.5rem 1.25rem;
	}
	.site-header__brand { margin-right: auto; }
	
	.site-header__logo-mark { width: 38px; }
	.site-header__brand .custom-logo { height: 46px; }
	.site-header__nav { display: none; }
	.site-header__country { display: none; }
	.site-header__cta {
		display: inline-flex;
		padding: 0.6rem 1.15rem;
		font-size: 0.9375rem;
	}
	.site-header__cta-long { display: none; }
	.site-header__cta-short { display: inline; }
	.site-header__toggle {
		display: flex;
		flex-direction: column;
		gap: 4px;
		width: 44px;
		height: 44px;
		align-items: center;
		justify-content: center;
		background: none;
		border: 0;
		cursor: pointer;
	}
	.site-header__toggle span {
		width: 24px;
		height: 3px;
		border-radius: 2px;
		background: var(--twobl-slate);
	}
	.site-header--nav-open .site-header__nav {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		margin-top: 0.5rem;
		background: var(--twobl-white);
		border-radius: 20px;
		box-shadow: var(--twobl-shadow);
		padding: 1rem;
	}
	.site-header--nav-open .site-nav { flex-direction: column; align-items: flex-start; gap: 0.25rem; }
	.site-header--nav-open .site-nav ul { position: static; box-shadow: none; opacity: 1; visibility: visible; transform: none; display: none; }
	.site-header--nav-open .site-nav li.is-open > ul { display: block; }
}

/* ---- Footer chrome ---- */
.site-footer { background: var(--twobl-white); padding-top: clamp(3rem, 6vw, 5rem); overflow: hidden; }
.site-footer__top {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: flex-start;
	margin-bottom: clamp(3rem, 6vw, 4.5rem);
}
.site-footer__newsletter {
	grid-column: 1 / span 2;
	max-width: 620px;
}
.site-footer__newsletter-title {
	font-family: var(--twobl-font-heading);
	font-size: 1.75rem;
	line-height: 1;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: 0 0 1.25rem;
}
.site-footer__newsletter-form {
	display: flex;
	align-items: center;
	border: 1px solid var(--twobl-grey-mid);
	border-radius: 999px;
	padding: 0.35rem 0.35rem 0.35rem 1.25rem;
	gap: 0.5rem;
	background: var(--twobl-white);
}
.site-footer__newsletter-form input {
	flex: 1;
	border: 0;
	background: none;
	padding: 0.4rem 0;
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	color: var(--twobl-slate);
	outline: none;
}
.site-footer__newsletter-form input::placeholder {
	color: #8C9CA3;
}
.site-footer__newsletter-form button {
	border: 0;
	border-radius: 999px;
	background: var(--twobl-green);
	color: var(--twobl-slate);
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.9375rem;
	padding: 0.75rem 1.75rem;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.site-footer__newsletter-form button:hover {
	background-color: var(--twobl-green-hover);
	transform: translateY(-1px);
}
.site-footer__newsletter-copy {
	font-family: var(--twobl-font-alt);
	font-size: 16px;
	line-height: 1.5;
	color: var(--twobl-stroke-dark);
	margin: 1rem 0 0;
}
.site-footer__mark {
	grid-column: 3;
}
.site-footer__mark img {
	width: 175px;
	height: auto;
	display: block;
}

.site-footer__columns {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(2rem, 4vw, 3.5rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.site-footer__col-title {
	font-family: var(--twobl-font-heading);
	font-size: 2rem;
	line-height: 1;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: 0 0 1.5rem;
}
.site-footer__section {
	display: flex;
	flex-direction: column;
}
.site-footer__eyebrow {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.35;
	color: var(--twobl-green);
	margin: 1.75rem 0 0.75rem;
	min-height: 1.265rem;
}
.site-footer__section:first-child .site-footer__eyebrow,
.site-footer__section:first-child .site-footer__eyebrow-spacer {
	margin-top: 0;
}

.site-footer__eyebrow--mirror { visibility: hidden; }
.site-footer__static-group {
	border-top: 1px solid #66757B;
	padding-top: 0.75rem;
	margin-bottom: 0.25rem;
}
.site-footer__static-title {
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--twobl-slate);
	margin: 0 0 0.4rem;
}
.site-footer__static-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.site-footer__static-list a,
.site-footer__pages a {
	font-family: var(--twobl-font-alt);
	font-size: 0.875rem;
	color: var(--twobl-stroke-dark);
	text-decoration: none;
	transition: color 0.2s ease;
}
.site-footer__static-list a:hover,
.site-footer__pages a:hover,
.site-footer__accordion-panel a:hover {
	color: var(--twobl-green-dark-hover);
}
.site-footer__pages { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.site-footer__cta-btn {
	/* padding: 0.8rem 1.75rem; */
	font-size: 0.9375rem;
}

.site-footer__accordion { border-top: 1px solid #E5ECEE; }
.site-footer__accordion-trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem 0;
	background: none;
	border: 0;
	cursor: pointer;
	text-align: left;
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--twobl-text-heading-2);
}
.site-footer__accordion-icon { position: relative; width: 14px; height: 14px; flex: 0 0 auto; }
.site-footer__accordion-icon::before,
.site-footer__accordion-icon::after {
	content: "";
	position: absolute;
	background: var(--twobl-slate);
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.site-footer__accordion-icon::before { width: 14px; height: 1.5px; }
.site-footer__accordion-icon::after { width: 1.5px; height: 14px; }
.site-footer__accordion.is-open .site-footer__accordion-icon::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.site-footer__accordion-panel {
	display: none;
	list-style: none;
	margin: 0;
	padding: 0 0 0.75rem;
	flex-direction: column;
	gap: 0.4rem;
}
.site-footer__accordion.is-open .site-footer__accordion-panel { display: flex; }
.site-footer__accordion-panel a {
	font-family: var(--twobl-font-alt);
	font-size: 0.875rem;
	color: var(--twobl-stroke-dark);
	text-decoration: none;
}

.site-footer__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
	border-top: 1px solid #E5ECEE;
	padding-top: 1.5rem;
}
.site-footer__copy,
.site-footer__privacy {
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	color: var(--twobl-stroke-dark);
	margin: 0;
}
.site-footer__privacy { text-decoration: none; }
.site-footer__privacy:hover { text-decoration: underline; }

.site-footer__wordmark-wrap {
	width: 100%;
	overflow: hidden;
	padding: 1.5rem 0 0;
}
.site-footer__wordmark {
	font-family: var(--twobl-font-heading);
	font-size: clamp(2.5rem, 16.5vw, 19rem);
	line-height: 0.78;
	letter-spacing: -0.02em;
	color: var(--twobl-slate);
	text-align: center;
	white-space: nowrap;
	margin: 0;
	padding: 0;
}

@media (max-width: 900px) {
	.site-footer__top { grid-template-columns: 1fr; gap: 2rem; }
	.site-footer__newsletter { grid-column: auto; max-width: none; }
	.site-footer__mark { grid-column: auto; }
	.site-footer__columns { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.site-footer__top { gap: 1.75rem; margin-bottom: 2.5rem; }
	.site-footer__mark { order: -1; }
	.site-footer__mark img { width: 170px; margin-inline: auto; }
	.site-footer__newsletter-title {
		text-align: center;
		font-size: 2rem;
		max-width: 15rem;
		margin: 0 auto 1.25rem;
	}
	.site-footer__newsletter-copy { margin-top: 1.25rem; }
	
	/* The mirrored labels are real content here, not spacers. */
	.site-footer__eyebrow--mirror { visibility: visible; }
	
	.site-footer__eyebrow { margin-top: 1.25rem; min-height: 0; }
	.site-footer__section:first-child .site-footer__eyebrow { margin-top: 0; }
	.site-footer__col-title { margin-bottom: 1rem; }
	.site-footer__columns { gap: 2.5rem; }
	
	.site-footer__cta-btn { display: flex; width: 100%; }
	
	
	.site-footer__bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}
}

.twobl-hero {
	position: relative;
	overflow: hidden;
	padding-block-start: clamp(12rem, 13vw, 9rem);
	padding-block-end: clamp(4rem, 10vw, 8rem);
}
.twobl-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.twobl-hero__blob {
	position: absolute;
	left: 62%;
	top: -72.2%;
	width: 62.9%;
	aspect-ratio: 1;
	background: var(--twobl-green);
	border-radius: 50%;
}
.twobl-hero__dots {
	position: absolute;
	width: 17%;
	aspect-ratio: 297 / 180;
	background-image: url("../images/dots-hero.png");
	background-size: contain;
	background-repeat: no-repeat;
	z-index: 1;
}
.twobl-hero__dots--1 { left: 57.2%; top: 27.5%; }
.twobl-hero__dots--2 { left: 70.4%; top: 64%; }
.twobl-hero__figure {
	position: absolute;
	left: 58.25%;
	top: 25%;
	z-index: 2;
	margin: 0;
	width: 30.25%;
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
}
.twobl-hero__figure img,
.twobl-hero__figure video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.twobl-hero__inner {
	position: relative;
	z-index: 3;
	padding-left: 12%;
}
.twobl-hero__content {
	max-width: 44vw;
}
.twobl-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.2rem;
	color: var(--twobl-white);
}
.twobl-hero__avatars {
	display: inline-flex;
	align-items: center;
}
.twobl-hero__avatars img {
	height: 32px;
	width: auto;
	object-fit: contain;
}
.twobl-hero__badge-text {
	font-family: var(--twobl-font-body);
	font-weight: 500;
	font-size: 0.9375rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--twobl-white);
	white-space: nowrap;
}
.twobl-hero__heading {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h2);
	line-height: 1.03;
	text-transform: uppercase;
	color: var(--twobl-white);
	margin: 0 0 .8rem;
}
.twobl-hero__body {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-grey-mid);
	max-width: 60ch;
	margin-bottom: 1.9rem;
}
.twobl-hero__body p { margin: 0; color: var(--twobl-grey-mid);}
.twobl-hero__body p + p { margin-top: 1em; }
.twobl-hero__cta {
	position: relative;
	z-index: 3;
	margin-left: 12%;
}
@media (max-width: 960px) {
	.twobl-hero {
		display: flex;
		flex-direction: column;
		padding-block: 0 4rem;
	}
	.twobl-hero__blob { display: none; }
	.twobl-hero__inner {
		order: 1;
		position: relative;
		z-index: 1;
		padding: 6.5rem var(--twobl-gutter) 4.5rem;
		background: var(--twobl-green);
	}
	.twobl-hero__inner::after {
		content: "";
		position: absolute;
		left: -10%;
		right: -10%;
		bottom: -3rem;
		height: 6rem;
		background: var(--twobl-green);
		border-radius: 50%;
	}
	.twobl-hero__content { max-width: 100%; }
	.twobl-hero__body,
	.twobl-hero__body p { color: var(--twobl-slate); }
	.twobl-hero__heading { font-size: 2.75rem; }
	.twobl-hero__media {
		order: 2;
		position: relative;
		inset: auto;
		z-index: 2;
		width: 100%;
		max-width: 26rem;
		margin: -5rem auto 0;
		aspect-ratio: 1 / 1;
		overflow: visible;
	}
	.twobl-hero__figure {
		left: 14%;
		top: 8%;
		width: 72%;
	}
	.twobl-hero__dots--1 { left: 2%;  top: 20%; width: 26%; }
	.twobl-hero__dots--2 { left: 66%; top: 74%; width: 26%; }
	
	
	.twobl-hero__cta {
		order: 3;
		z-index: 2;
		width: auto;
		align-self: stretch;
		margin: 2rem var(--twobl-gutter) 0;
		justify-content: center;
	}
}

/* ---- 2. Intro Statement ---- */
.twobl-intro {
	padding-block: clamp(4rem, 7vw, 6.5rem) clamp(2.5rem, 4vw, 4rem);
	background: var(--twobl-white);
	padding-bottom: 0;
}
.twobl-intro__inner {
	margin-inline: auto;
	text-align: center;
}
.twobl-intro__heading {
	margin: 0 auto 2.25rem;
	font-size: clamp(3.25rem, 9vw, 8.5rem);
	line-height: 1.03;
	letter-spacing: -0.01em;
	color: var(--twobl-slate);
	max-width: 1320px;
}
@media (max-width: 640px) {
	.twobl-intro__heading {
		font-size: clamp(2.5rem, 9vw, 4.5rem);
		line-height: 1;
	}
	.twobl-intro__br {
		display: none;
	}
}

.twobl-intro__lead {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: clamp(1.125rem, 2vw, 1.3125rem);
	line-height: 1.45;
	color: var(--twobl-text-heading);
	max-width: 720px;
	margin: 0 auto 2rem;
}
.twobl-intro__body {
	font-family: var(--twobl-font-alt);
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--twobl-text-heading-2);
	max-width: 710px;
	margin-inline: auto;
}
.twobl-intro__body p {
	margin: 0 auto 1.5rem;
	max-width: 720px;
}
.twobl-intro__body p:last-child {
	margin-bottom: 0;
	max-width: 680px;
}

/* ---- 3. Logo Strip — contained flex row with large prominent logos ---- */
.twobl-logos {
	padding-block: clamp(3rem, 6vw, 2rem);
	background: var(--twobl-white);
}
.twobl-logos__viewport {
	--twobl-logos-gap: clamp(2.5rem, 5vw, 5rem);
	width: 100%;
	max-width: var(--twobl-container);
	margin-inline: auto;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.twobl-logos__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: var(--twobl-logos-gap);
	flex-wrap: nowrap;
	width: max-content;
	animation: twobl-logos-scroll var(--twobl-logos-speed, 40s) linear infinite;
}
.twobl-logos__viewport:hover .twobl-logos__grid { animation-play-state: paused; }
@keyframes twobl-logos-scroll {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(calc(-50% - (var(--twobl-logos-gap) / 2)), 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.twobl-logos__grid { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
	.twobl-logos__viewport { -webkit-mask-image: none; mask-image: none; }
}
.twobl-logos__item {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}
.twobl-logos__item img {
	height: clamp(64px, 7vw, 110px);
	width: auto;
	max-width: 240px;
	object-fit: contain;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.twobl-logos__item img:hover {
	opacity: 0.85;
	transform: translateY(-2px);
}
@media (max-width: 768px) {
	.twobl-logos__item img { height: 56px; max-width: 150px; }
}

/* ---- 4. Audience Split ---- */
.twobl-audience__head {
	text-align: center;
	max-width: 950px;
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}
.twobl-audience__intro,
.twobl-principles__intro {
	color: var(--twobl-text-heading);
	margin: 1rem auto 0;
	max-width: 72ch;
}
.twobl-audience__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
.twobl-audience__card {
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.twobl-audience__media {
	position: relative;
	aspect-ratio: 2.38 / 1;
	overflow: hidden;
	background: var(--twobl-blue-light);
}
.twobl-audience__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.twobl-audience__body {
	padding: clamp(1.75rem, 3vw, 3.25rem);
	flex: 1;
}
.twobl-audience__title { margin: 0 0 0.75rem; }
.twobl-audience__subtitle {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: var(--twobl-fs-body);
	margin: 0 0 1rem;
}
.twobl-audience__desc { font-family: var(--twobl-font-alt); font-size: 1rem; margin: 0 0 1.5rem; }
.twobl-audience__links { list-style: none; margin: 0; padding: 0; }
.twobl-audience__links li { border-top: 1px solid currentColor; }
.twobl-audience__links li:last-child { border-bottom: 1px solid currentColor; }
.twobl-audience__links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.9rem 0;
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.9375rem;
	text-decoration: none;
}
.twobl-audience__links svg { flex: 0 0 auto; transition: transform 0.2s ease; }
.twobl-audience__links a:hover svg { transform: translateX(4px); }
.twobl-audience__card--dark { background: var(--twobl-slate); }
.twobl-audience__card--dark .twobl-audience__title { color: var(--twobl-green); }
.twobl-audience__card--dark .twobl-audience__subtitle,
.twobl-audience__card--dark .twobl-audience__desc,
.twobl-audience__card--dark .twobl-audience__links a { color: var(--twobl-green); }
.twobl-audience__card--dark .twobl-audience__links li { border-color: rgba(141,197,64,0.25); }
.twobl-audience__card--green { background: var(--twobl-green); }
.twobl-audience__card--green .twobl-audience__title,
.twobl-audience__card--green .twobl-audience__subtitle,
.twobl-audience__card--green .twobl-audience__desc,
.twobl-audience__card--green .twobl-audience__links a { color: var(--twobl-slate); }
.twobl-audience__card--green .twobl-audience__links li { border-color: rgba(27,41,48,0.2); }
@media (max-width: 820px) {
	.twobl-audience__grid { grid-template-columns: 1fr; }
}

/* ---- 5. Principles Accordion ("The 2b Way") ---- */
.twobl-principles {
	position: relative;
	overflow: hidden;
	background: var(--twobl-green-light);
	padding-block: clamp(4rem, 8vw, 7rem);
}
.twobl-principles__field {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 100%;
	pointer-events: none;
	background-image: url("../images/circles.webp");
	background-size: 1920px 1251px;
	background-position: top center;
	background-repeat: no-repeat;
	z-index: 0;
}
.twobl-principles__heading span.u-lowercase {
	text-transform: lowercase;
}
.twobl-principles__inner {
	position: relative;
	z-index: 1;
	max-width: 1240px;
	margin-inline: auto;
}
.twobl-principles__head {
	text-align: center;
	max-width: 900px;
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}
.twobl-principles__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.75rem clamp(1.5rem, 3vw, 2rem);
	align-items: start;
	width: 100%;
	max-width: 90ch;
	margin: 0 auto;
}
.twobl-principles__col {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.twobl-principles__card {
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 20px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: transparent;
	min-height: 110px;
	transition: min-height 0.35s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.twobl-principles__trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 2rem 2.25rem;
	background: none;
	border: 0;
	cursor: pointer;
	text-align: left;
	font: inherit;
}
.twobl-principles__title {
	font-family: var(--twobl-font-heading);
	font-size: clamp(1.5rem, 2.2vw, 30px);
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--twobl-slate);
}
.twobl-principles__icon {
	position: relative;
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
}
.twobl-principles__icon::before,
.twobl-principles__icon::after {
	content: "";
	position: absolute;
	background: var(--twobl-slate);
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: transform 0.25s ease, opacity 0.25s ease;
}
.twobl-principles__icon::before { width: 26px; height: 2px; }
.twobl-principles__icon::after { width: 2px; height: 26px; }

.twobl-principles__panel {
	display: grid;
	grid-template-rows: 0fr;
	margin-top: auto;
	transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.twobl-principles__panel-inner {
	overflow: hidden;
	min-height: 0;
	opacity: 0;
	padding: 0 2.25rem;
	transition: opacity 0.25s ease 0.08s;
}
.twobl-principles__panel-inner > :last-child { padding-bottom: 2.25rem; }
.twobl-principles__panel p {
	font-family: var(--twobl-font-alt);
	font-size: 1.0625rem;
	line-height: 1.5;
	color: var(--twobl-slate);
	font-weight: 500;
	margin: 0;
	max-width: 44ch;
}

/* Expanded state (hover or click) */
.twobl-principles__card.is-open,
.twobl-principles__card:hover {
	min-height: 265px;
	border-color: transparent;
	box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
}
.twobl-principles__card.is-open .twobl-principles__panel,
.twobl-principles__card:hover .twobl-principles__panel {
	grid-template-rows: 1fr;
}
.twobl-principles__card.is-open .twobl-principles__panel-inner,
.twobl-principles__card:hover .twobl-principles__panel-inner {
	opacity: 1;
}
.twobl-principles__card.is-open .twobl-principles__icon::after,
.twobl-principles__card:hover .twobl-principles__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
	opacity: 0;
}
.twobl-principles__card--green.is-open,  .twobl-principles__card--green:hover  { background: var(--twobl-green); }
.twobl-principles__card--blue.is-open,   .twobl-principles__card--blue:hover   { background: var(--twobl-blue); }
.twobl-principles__card--yellow.is-open, .twobl-principles__card--yellow:hover { background: var(--twobl-yellow); }
.twobl-principles__card--red.is-open,    .twobl-principles__card--red:hover    { background: var(--twobl-red); }

@media (max-width: 820px) {
	.twobl-principles__grid { grid-template-columns: 1fr; }
	.twobl-principles__trigger { padding: 1.75rem 1.5rem; }
	.twobl-principles__panel-inner { padding: 0 1.5rem; }
	.twobl-principles__panel-inner > :last-child { padding-bottom: 1.5rem; }
}

/* ---- 6. CTA Quest ("Start Your Quest") ----*/
.twobl-ctaquest {
	position: relative;
	overflow: hidden;
}
.twobl-ctaquest__inner {
	position: relative;
	max-width: var(--twobl-container);
	margin-inline: auto;
	padding-inline: var(--twobl-gutter);
}

/* Media layer: anchored to the container's right edge, vertically centred. */
.twobl-ctaquest__media {
	position: absolute;
	right: 1.51%; /* Figma insets the media 20px from the container's right edge */
	top: 50%;
	transform: translateY(-50%);
	width: 45.1%;
	aspect-ratio: 596 / 554;
	z-index: 0;
}
.twobl-ctaquest__ring {
	position: absolute;
	left: 8.72%;
	top: 0;
	width: 89.26%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--twobl-green);
	z-index: 1;
}
.twobl-ctaquest__dots {
	position: absolute;
	width: 49.8%;
	aspect-ratio: 297 / 180;
	background-image: url("../images/dots-hero.png");
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0.85;
}
.twobl-ctaquest__dots--1 { left: 0; top: 2.89%; z-index: 2; }
.twobl-ctaquest__dots--2 { left: 52%; top: 54.5%; z-index: 0; }

.twobl-ctaquest__figure {
	position: absolute;
	left: 8.72%;
	top: 0;
	z-index: 3;
	margin: 0;
	width: 89.26%;
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
}
.twobl-ctaquest__figure img { width: 100%; height: 100%; object-fit: cover; }

.twobl-ctaquest__content {
	position: relative;
	z-index: 4;
	max-width: 47%;
}
.twobl-ctaquest__heading { color: var(--twobl-white); margin: 0 0 1.25rem; }
.twobl-ctaquest__lead {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: var(--twobl-fs-body);
	line-height: 1.4;
	color: var(--twobl-white);
	margin: 0 0 1rem;
	max-width: 69%; /* Figma text column; fits the 410px first line of body copy */
}
.twobl-ctaquest__body {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-text-on-dark);
	margin: 0 0 1.875rem;
	max-width: 69%;
}
.twobl-ctaquest__cta { padding-block: 1.4375rem; } /* Figma button height 64px */

@media (max-width: 960px) {
	.twobl-ctaquest__media {
		position: relative;
		right: auto;
		top: auto;
		transform: none;
		width: 100%;
		max-width: 460px;
		margin: 0 auto 3rem;
	}
	.twobl-ctaquest__content { max-width: 100%; }
	.twobl-ctaquest__lead,
	.twobl-ctaquest__body { max-width: 100%; }
}

/* ---- 7. Banner Statement ---- */
.twobl-banner { position: relative; overflow: hidden; }
.twobl-banner--blue  { background: var(--twobl-blue); }
.twobl-banner--green { background: var(--twobl-green); }
.twobl-banner--slate { background: var(--twobl-slate); }
.twobl-banner__circle {
	position: absolute;
	z-index: 0;
	pointer-events: none;
	user-select: none;
	height: 100%;
	width: auto;
	max-width: 55%;
	object-fit: contain;
}
.twobl-banner__circle--tl {
	top: 0;
	left: 0;
	object-position: top left;
}
.twobl-banner__circle--br {
	bottom: 0;
	right: 0;
	object-position: bottom right;
}
.twobl-banner__inner {
	position: relative;
	z-index: 1;
	text-align: center;
	max-width: 900px;
}
.twobl-banner__eyebrow {
	font-family: var(--twobl-font-body);
	font-weight: 400;
	color: var(--twobl-slate);
	margin: 0 0 1.25rem;
}
.twobl-banner__heading {
	color: var(--twobl-white);
	margin: 0 auto 1.5rem;
	max-width: 18ch;
}
.twobl-banner__body {
	color: var(--twobl-slate);
	max-width: 52ch;
	margin: 0 auto 2.25rem;
}
.twobl-banner--slate .twobl-banner__eyebrow,
.twobl-banner--slate .twobl-banner__body { color: var(--twobl-text-on-dark); }

/* ---- 8. Stats ("What Transformation Looks Like") ---- */
.twobl-stats {
	background: var(--twobl-white);
	padding: clamp(3.5rem, 6vw, 6rem) 0;
	position: relative;
	overflow: hidden;
}
.twobl-stats__inner {
	display: grid;
	grid-template-columns: 0.95fr 1.05fr;
	align-items: center;
	gap: clamp(2.5rem, 5vw, 5.5rem);
}
.twobl-stats__media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}
.twobl-stats__frame {
	position: relative;
	width: 100%;
	max-width: 480px;
	aspect-ratio: 1 / 1;
	margin: 0 auto;
}
.twobl-stats__dots {
	position: absolute;
	width: 58%;
	height: 38%;
	z-index: 0;
	pointer-events: none;
}
.twobl-stats__dots--1 {
	left: 0;
	top: -2%;
	background-color: var(--twobl-green);
	-webkit-mask-image: url("../images/dots-stats.png");
	mask-image: url("../images/dots-stats.png");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
.twobl-stats__dots--2 {
	right: 0;
	bottom: -4%;
	background-image: url("../images/dots-stats.png");
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0.55;
}
.twobl-stats__card {
	position: absolute;
	left: 10%;
	top: 10%;
	width: 80%;
	height: 80%;
	z-index: 1;
}
.twobl-stats__backdrop {
	position: absolute;
	inset: 0;
	background-color: var(--twobl-green);
	background-image: url("../images/filled-circles.webp");
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	border-radius: 28px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
	overflow: hidden;
}
.twobl-stats__portrait {
	position: absolute;
	bottom: 0;
	right: 0;
	width: auto;
	height: 112%;
	max-width: 100%;
	object-fit: contain;
	object-position: bottom right;
	z-index: 2;
	pointer-events: none;
}
.twobl-stats__tag {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	padding: 0.75rem 1.5rem;
	border-radius: 999px;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	width: 150px;
	text-align: center;
	justify-content: center;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.twobl-stats__tag--white  { background: var(--twobl-white); color: var(--twobl-slate); }
.twobl-stats__tag--blue   { background: var(--twobl-blue); color: var(--twobl-white); }
.twobl-stats__tag--yellow { background: var(--twobl-yellow); color: var(--twobl-slate); }
.twobl-stats__tag--pos0   { left: 4%; top: 56%; transform: translateY(-50%); }
.twobl-stats__tag--pos1   { right: 16%; bottom: 6%; }
.twobl-stats__tag--pos2   { right: -5%; top: 22%; }

.twobl-stats__heading {
	color: var(--twobl-slate);
	margin-bottom: 2.25rem;
	max-width: 15ch;
}
.twobl-stats__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.5rem clamp(2rem, 4vw, 3.5rem);
}
.twobl-stats__stat {
	display: flex;
	flex-direction: column;
}
.twobl-stats__number {
	font-family: var(--twobl-font-heading);
	font-size: clamp(2rem, 4.5vw, 2.5rem);
	line-height: 1;
	color: var(--twobl-slate);
	margin: 0 0 0.5rem 0;
	text-transform: uppercase;
}
.twobl-stats__label {
	font-family: var(--twobl-font-alt);
	font-size: 1.0625rem;
	line-height: 1.4;
	color: var(--twobl-text-body);
	margin: 0;
}
@media (max-width: 860px) {
	.twobl-stats__inner { grid-template-columns: 1fr; }
	.twobl-stats__media { order: -1; margin-bottom: 2rem; }
	.twobl-stats__frame { width: 90%; }
}
@media (max-width: 480px) {
	.twobl-stats__grid { grid-template-columns: 1fr; }
}

/* ---- 9. World Class Coaches ---- */
.twobl-coaches__inner {
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
.twobl-coaches__sticky {
	position: sticky;
	top: 2rem;
}
.twobl-coaches__heading { color: var(--twobl-white); margin: 0 0 1.75rem; max-width: 11ch; }
.twobl-coaches__body {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-text-on-dark);
	margin: 0 0 2rem;
	max-width: 46ch;
}
.twobl-coaches__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.25rem, 2.5vw, 1.5rem);
}
.twobl-coaches__col {
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 2.5vw, 1.5rem);
}
.twobl-coaches__col--offset { margin-top: 52%; }
.twobl-coaches__card {
	position: relative;
	display: block;
	aspect-ratio: 316 / 331;
	border-radius: 20px;
	overflow: hidden;
}
.twobl-coaches__card img {
	position: absolute;
	inset: 10px 0 0 0;
	width: 100%;
	height: calc(100% - 10px);
	object-fit: cover;
	object-position: top;
	border-radius: 20px;
	z-index: 1;
	transition: transform 0.35s ease;
}
.twobl-coaches__card:hover img {
	transform: scale(1.03);
}
.twobl-coaches__card--green  { background: var(--twobl-green); }
.twobl-coaches__card--blue   { background: var(--twobl-ocean); }
.twobl-coaches__card--yellow { background: var(--twobl-yellow); }
.twobl-coaches__card--red    { background: var(--twobl-red); }

.twobl-coaches__hover-bg {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, #D4D4D4 0%, #858585 45%, #181E21 100%);
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 0;
}
.twobl-coaches__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(14, 21, 26, 0.92) 0%, rgba(14, 21, 26, 0.45)10%, rgba(14, 21, 26, 0) 30%);
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 2;
}
.twobl-coaches__info {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 1.75rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	z-index: 3;
}
.twobl-coaches__card:hover .twobl-coaches__hover-bg,
.twobl-coaches__card:focus-visible .twobl-coaches__hover-bg,
.twobl-coaches__card:hover .twobl-coaches__overlay,
.twobl-coaches__card:focus-visible .twobl-coaches__overlay {
	opacity: 1;
}
.twobl-coaches__card:hover .twobl-coaches__info,
.twobl-coaches__card:focus-visible .twobl-coaches__info {
	opacity: 1;
	transform: translateY(0);
}
.twobl-coaches__name {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.375rem;
	color: var(--twobl-white);
}
.twobl-coaches__role {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-white);
}
.twobl-coaches__dots { display: none; }
@media (max-width: 900px) {
	.twobl-coaches__inner { grid-template-columns: 1fr; }
	.twobl-coaches__sticky { position: static; }
	.twobl-coaches__col--offset { margin-top: 2rem; }
}

/* ---- Coaches, mobile: one-card swipe carousel (Figma) ----*/
@media (max-width: 640px) {
	.twobl-coaches__sticky { display: contents; }
	.twobl-coaches__heading { order: 1; font-size: 3.625rem; line-height: 1.04; max-width: 19.25rem; margin-bottom: 0.75rem; }
	.twobl-coaches__body { order: 2; margin-bottom: 1.5rem; }
	
	.twobl-coaches__grid {
		order: 3;
		display: flex;
		grid-template-columns: none;
		gap: 1rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin-inline: calc(var(--twobl-gutter) * -1);
		padding-inline: var(--twobl-gutter);
		scroll-padding-inline: var(--twobl-gutter);
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.twobl-coaches__grid::-webkit-scrollbar { display: none; }
	
	.twobl-coaches__col { display: contents; }
	.twobl-coaches__col--offset { margin-top: 0; }
	
	.twobl-coaches__card {
		order: var(--twobl-card-order, 0);
		flex: 0 0 100%;
		scroll-snap-align: start;
	}
	/* Tap/focus reveals the name overlay, since there's no hover on a phone. */
	.twobl-coaches__card:active .twobl-coaches__overlay { opacity: 1; }
	.twobl-coaches__card:active .twobl-coaches__info { opacity: 1; transform: none; }
	
	.twobl-coaches__dots {
		order: 4;
		display: flex;
		align-items: center;
		gap: 0.5rem;
		padding: 0;
	}
	.twobl-coaches__dot {
		width: 6px;
		height: 6px;
		padding: 0;
		border: 0;
		border-radius: 999px;
		background: rgba(255, 255, 255, 0.35);
		cursor: pointer;
		transition: width 0.25s ease, background-color 0.25s ease;
	}
	.twobl-coaches__dot.is-active {
		width: 28px;
		background: var(--twobl-white);
	}
	
	/* Full-width CTA on mobile, matching the card width above it (Figma). */
	.twobl-coaches__sticky .btn,
	.twobl-coaches__inner > .btn { order: 5; justify-self: stretch; width: 100%; }
}

/* ---- 10. Limitless Insights ---- */
.twobl-insights { background: var(--twobl-white); }
.twobl-insights__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.twobl-insights__head h2 { margin: 0; }

.twobl-insights__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem; /* 32px */
}
.twobl-insights__card {
	display: flex;
	flex-direction: column;
	gap: 1rem; /* 16px between text elements, per Figma */
	padding: 2.125rem 3rem 2.625rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 20px;
	text-decoration: none;
	background: var(--twobl-white);
	transition: background-color 0.3s ease, border-color 0.3s ease;
}
.twobl-insights__card:hover {
	background: var(--twobl-bg);
}
.twobl-insights__tag {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	line-height: 1;
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.03em;
	color: var(--twobl-white);
}
.twobl-insights__tag--red    { background: var(--twobl-red); }
.twobl-insights__tag--yellow { background: var(--twobl-yellow); color: var(--twobl-slate); }
.twobl-insights__tag--blue   { background: var(--twobl-blue); }
.twobl-insights__tag--green  { background: var(--twobl-green); color: var(--twobl-slate); }
.twobl-insights__title {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.4;
	text-transform: none;
	color: var(--twobl-text-heading);
	margin: 0;
}
.twobl-insights__excerpt {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-text-body);
	margin: 0;
}
.twobl-insights__author {
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-text-heading-2);
	margin: 0 0 1rem; /* 16px + 16px flex gap = 32px before the circle, per Figma */
}

.twobl-insights__media {
	position: relative;
	display: block;
	margin-top: auto;
	aspect-ratio: 1;
	width: 100%;
	max-width: 321px;
	height: auto;
	align-self: center;
}
.twobl-insights__frame {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	overflow: hidden;
}
.twobl-insights__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.twobl-insights__card:hover .twobl-insights__media img { transform: scale(1.12); }

.twobl-insights__arrow {
	position: absolute;
	left: 89.2%;
	top: 21.1%;
	width: 24%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%) scale(0.6);
	border-radius: 50%;
	background: var(--twobl-green);
	color: var(--twobl-white);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.twobl-insights__arrow svg { width: 38%; height: 38%; }
.twobl-insights__card:hover .twobl-insights__arrow {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}

.twobl-insights__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--twobl-green-light), var(--twobl-blue-light));
}

@media (prefers-reduced-motion: reduce) {
	.twobl-insights__media img,
	.twobl-insights__arrow { transition: none; }
	.twobl-insights__card:hover .twobl-insights__media img { transform: none; }
}
@media (max-width: 1100px) {
	.twobl-insights__card { padding: 1.75rem 1.75rem 2rem; }
}
@media (max-width: 900px) {
	.twobl-insights__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---- 11. Globe ("Coaching Leaders Around The World") ---- */
.twobl-globe {
	overflow: hidden;
	position: relative;
}
.twobl-globe__inner {
	display: grid;
	grid-template-columns: 1fr 0.9fr;
	align-items: center;
}
.twobl-globe__heading { color: var(--twobl-white); margin: 0 0 1.5rem; }
.twobl-globe__body {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);
	line-height: 1.4;
	color: var(--twobl-text-on-dark);
	margin: 0 0 2rem;
	max-width: 36ch;
}
.twobl-globe__media {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	perspective: 1000px;
}
.twobl-globe__media-wrap {
	position: relative;
	width: 100%;
	max-width: 500px;
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transform-style: preserve-3d;
	transition: transform 0.25s cubic-bezier(0.1, 0.4, 0.2, 1);
}
.twobl-globe__media-wrap--interactive.is-globe-live .twobl-globe__img { display: none; }
.twobl-globe__media-wrap--interactive.is-globe-live .twobl-globe__sweep { display: none; }
.twobl-globe__canvas {
	display: block;
	width: 100%;
	height: 100%;
	cursor: grab;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-drag: none;
}
.twobl-globe__canvas.is-dragging { cursor: grabbing; }
.twobl-globe__pins {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.twobl-globe__pin {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	transform: translate3d(-9999px, -9999px, 0);
	will-change: transform, opacity;
	transition: opacity 0.2s linear;
	pointer-events: auto;
	cursor: pointer;
}
.twobl-globe__pin:hover {
	z-index: 20;
}
.twobl-globe__pin-label {
	position: absolute;
	white-space: nowrap;
	padding: 0.25rem 0.55rem;
	background: var(--twobl-white);
	color: var(--twobl-slate);
	font-family: var(--twobl-font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: 4px;
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.22);
	pointer-events: none;
	transition: background 0.15s ease, color 0.15s ease, opacity 0.2s ease;
}
.twobl-globe__pin:hover .twobl-globe__pin-label {
	background: var(--twobl-green);
	color: var(--twobl-white);
}

/* Directional placement offsets */
.twobl-globe__pin--top .twobl-globe__pin-label {
	bottom: 0.5rem;
	left: 50%;
	transform: translateX(-50%);
}
.twobl-globe__pin--bottom .twobl-globe__pin-label,
.twobl-globe__pin--below .twobl-globe__pin-label {
	top: 0.5rem;
	bottom: auto;
	left: 50%;
	transform: translateX(-50%);
}
.twobl-globe__pin--left .twobl-globe__pin-label {
	top: 50%;
	right: 0.6rem;
	left: auto;
	bottom: auto;
	transform: translateY(-50%);
}
.twobl-globe__pin--right .twobl-globe__pin-label {
	top: 50%;
	left: 0.6rem;
	right: auto;
	bottom: auto;
	transform: translateY(-50%);
}
.twobl-globe__pin--top-left .twobl-globe__pin-label {
	bottom: 0.45rem;
	right: 0.45rem;
	left: auto;
	transform: none;
}
.twobl-globe__pin--top-right .twobl-globe__pin-label {
	bottom: 0.45rem;
	left: 0.45rem;
	right: auto;
	transform: none;
}
.twobl-globe__pin--bottom-left .twobl-globe__pin-label {
	top: 0.45rem;
	right: 0.45rem;
	left: auto;
	bottom: auto;
	transform: none;
}
.twobl-globe__pin--bottom-right .twobl-globe__pin-label {
	top: 0.45rem;
	left: 0.45rem;
	right: auto;
	bottom: auto;
	transform: none;
}

.twobl-globe__pin-label { transition: background 0.15s ease, color 0.15s ease, opacity 0.5s ease; }
.twobl-globe__pin.is-occluded .twobl-globe__pin-label {
	opacity: 0;
	pointer-events: none;
}
.twobl-globe__pin.is-occluded:hover .twobl-globe__pin-label {
	opacity: 1;
	pointer-events: auto;
}
.twobl-globe__pin.is-occluded .twobl-globe__pin-dot {
	opacity: 0.65;
	transform: translate(-50%, -50%) scale(0.85);
}

.twobl-globe__pin-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--twobl-white);
	box-shadow: 0 0 0 2px rgba(141, 197, 64, 0.4), 0 2px 6px rgba(0, 0, 0, 0.3);
	transform: translate(-50%, -50%);
	position: absolute;
	top: 0;
	left: 0;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.twobl-globe__img {
	width: 100%;
	height: auto;
	display: block;
	position: relative;
	z-index: 1;
	transition: filter 0.35s ease;
}
.twobl-globe__sweep {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	overflow: hidden;
	z-index: 2;
	pointer-events: none;
}
.twobl-globe__sweep::after {
	content: "";
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: linear-gradient(
	115deg,
	transparent 40%,
	rgba(255, 255, 255, 0.22) 48%,
	rgba(141, 197, 64, 0.4) 50%,
	rgba(255, 255, 255, 0.22) 52%,
	transparent 60%
	);
	transform: translateY(-100%) translateX(-100%);
	transition: transform 0.75s ease;
}
.twobl-globe__media:hover .twobl-globe__sweep::after {
	transform: translateY(100%) translateX(100%);
}

@media (max-width: 860px) {
	
	.twobl-globe__inner { grid-template-columns: 1fr; text-align: left; }
	.twobl-globe__media { max-width: 320px; margin: 0 auto; padding-top: 25px;}
}

/* ---- 12. Case Studies ("The Impact We Create Together") ---- */
.twobl-casestudies { background: var(--twobl-white); }
.twobl-casestudies__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.twobl-casestudies__head h2 { margin: 0; max-width: 14ch; }
.twobl-casestudies__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.25rem, 2.5vw, 2rem);
}
.twobl-casestudies__card {
	border-radius: var(--twobl-radius);
	overflow: hidden;
	border: 1px solid var(--twobl-stroke-dark);
	display: flex;
	flex-direction: column;
}
.twobl-casestudies__media {
	position: relative;
	display: block;
	width: 100%;
	height: 280px;
	background: var(--twobl-blue-light);
}
.twobl-casestudies__media img { 
	width: 100%; 
	height: 100%; 
	object-fit: cover; 
	object-position: top;
}
.twobl-casestudies__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #223640, #2f4a54);
}
.twobl-casestudies__play {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
}

.twobl-casestudies__play-icon.twobl-casestudies__play-icon { display: block; width: 103px; height: 103px; }
.twobl-casestudies__body {
	background: var(--twobl-white);
	padding: 1.75rem 1.5rem 2rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.twobl-casestudies__title { margin: 0 0 1rem; }
.twobl-casestudies__quote {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-text-body);
	margin: 0;
}
.twobl-casestudies__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
}
.twobl-casestudies__tag {
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.75rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 999px;
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	color: var(--twobl-text-heading-2);
}
@media (max-width: 900px) {
	.twobl-casestudies__grid { grid-template-columns: 1fr; }
}

/* Case Studies page title.*/
body.post-type-archive-case_study .twobl-bloglist__heading {
	max-width: 6em;
	margin-inline: auto;
}
.twobl-caselist__grid {
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 2.5vw, 2rem);
}
.twobl-casestudies__card--full { flex-direction: row; align-items: stretch; }
.twobl-casestudies__card--full .twobl-casestudies__media {
	flex: 0 0 40.26%;
	height: 450px;
}
.twobl-casestudies__card--full .twobl-casestudies__body {
	flex: 1 1 59.74%;
	justify-content: center;
	gap: 0.25rem;
	padding: 2rem 2.5rem 2rem 2.75rem;
}
.twobl-casestudies__card--full .twobl-casestudies__title { margin-bottom: 0.75rem; }
.twobl-casestudies__card--full .twobl-casestudies__tags { margin-bottom: 0.875rem; }
.twobl-casestudies__card--full .twobl-casestudies__quote { max-width: 46ch; }
.twobl-casestudies__viewlink {
	align-self: flex-start;
	margin-top: 2rem;
	padding: 0.75rem 1.5rem;
	font-size: 1.125rem;
}
@media (max-width: 900px) {
	.twobl-casestudies__card--full { flex-direction: column; }
	.twobl-casestudies__card--full .twobl-casestudies__media { 
		flex: none;
		max-height: 230px; 
		order: -1; 
	}
	.twobl-casestudies__card--full .twobl-casestudies__body { padding: 1.75rem 1.75rem 2rem; }
}

/* ---- 13. Testimonials Slider ---- */
.twobl-testimonials {
	background: #EAEAEA;
	padding-block: clamp(3rem, 6vw, 5rem);
}
.twobl-testimonials__inner {
	display: grid;
	grid-template-columns: 280px 1fr;
	align-items: center;
	gap: clamp(3rem, 6vw, 5.5rem);
}
.twobl-testimonials__media {
	position: relative;
	width: 280px;
	height: 380px;
	max-width: 100%;
}
.twobl-testimonials__figure {
	position: absolute;
	inset: 0;
	margin: 0;
	border-radius: 140px;
	overflow: hidden;
	opacity: 0;
	transition: opacity 0.35s ease;
}
.twobl-testimonials__figure.is-active { opacity: 1; }
.twobl-testimonials__figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 140px;
}
.twobl-testimonials.is-no-photo .twobl-testimonials__inner { grid-template-columns: minmax(0, 1fr); }
.twobl-testimonials.is-no-photo .twobl-testimonials__media { display: none; }
.twobl-testimonials__counter {
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	color: #6B7B83;
	margin: 0 0 1.75rem;
}
.twobl-testimonials__slide {
	display: none;
	margin: 0;
}
.twobl-testimonials__slide.is-active { display: block; }
.twobl-testimonials__quote {
	font-family: var(--twobl-font-body);
	font-weight: 500;
	font-size: 24px;
	line-height: 1.4;
	color: var(--twobl-slate);
	margin: 0 0 2rem;
	/* max-width: 44ch; */
}
.twobl-testimonials__meta { display: flex; flex-direction: column; gap: 0.25rem; }
.twobl-testimonials__name {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.125rem;
	font-style: normal;
	color: var(--twobl-slate);
}
.twobl-testimonials__role {
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	color: #6B7B83;
}
.twobl-testimonials__country {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	color: #6B7B83;
	margin-top: 0.125rem;
}

.twobl-testimonials--nomedia .twobl-testimonials__inner {
	align-items: start;
	
	grid-template-columns: auto minmax(0, 1fr);
	/* gap: clamp(1.5rem, 3vw, 2.5rem); */
}
.twobl-testimonials--nomedia .twobl-testimonials__nav {
	grid-column: 1;
	grid-row: 1;
	justify-content: start;
	margin-top: 0;
}

.twobl-testimonials__nav {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 2rem;
}
.twobl-testimonials__arrow {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--twobl-white);
	border: 1.5px solid var(--twobl-slate);
	color: var(--twobl-slate);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.twobl-testimonials__arrow.is-filled {
	background: var(--twobl-slate);
	border-color: var(--twobl-slate);
	color: var(--twobl-white);
}
.twobl-testimonials__arrow:hover,
.twobl-testimonials__arrow:focus-visible {
	background: var(--twobl-green) !important;
	border-color: var(--twobl-green) !important;
	color: var(--twobl-white) !important;
	transform: translateY(-1px);
}
@media (max-width: 780px) {
	.twobl-testimonials__inner { grid-template-columns: 1fr; }
	.twobl-testimonials__media { display: none; }
	.twobl-testimonials__quote { font-size: 16px; }
	
	.twobl-testimonials__content,
	.twobl-testimonials__nav,
	.twobl-testimonials--nomedia .twobl-testimonials__nav {
		grid-column: 1;
	}
	.twobl-testimonials__content { grid-row: 1; }
	.twobl-testimonials__nav,
	.twobl-testimonials--nomedia .twobl-testimonials__nav {
		grid-row: 2;
		justify-content: flex-start;
		margin-top: 2rem;
	}
}

/* ---- 14. Contact Form ("Book A Discovery Call") ---- */
.twobl-contact {
	position: relative;
	padding-block: clamp(3rem, 8vw, 6rem) clamp(4rem, 10vw, 7rem);
	background: linear-gradient(0deg, var(--twobl-green) 0%, #ffffff 85%);
	border-radius: 0 0 clamp(32px, 5vw, 48px) clamp(32px, 5vw, 48px);
	overflow: hidden;
}
.twobl-contact__inner {
	text-align: center;
	max-width: 1320px;
	margin: 0 auto;
}
.twobl-contact__heading {
	margin: 0 auto 1.5rem;
	font-size: clamp(3rem, 8.2vw, 8.5rem);
	line-height: 0.95;
	letter-spacing: -0.01em;
	white-space: nowrap;
}
@media (max-width: 900px) {
	.twobl-contact__heading {
		white-space: normal;
		font-size: clamp(2.5rem, 8.5vw, 5rem);
		line-height: 1;
	}
}
.twobl-contact__body {
	font-family: var(--twobl-font-alt);
	font-size: var(--twobl-fs-body);
	line-height: 1.5;
	color: var(--twobl-text-heading);
	margin: 0 auto 2.75rem;
	max-width: 900px;
}
.twobl-contact__form {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
	align-items: center;
}
@media (max-width: 575px) {
	.twobl-contact__form {
		gap: .6rem !important;
	}
}
.twobl-contact__field { width: 100%; max-width: 430px; }
.twobl-contact__field input,
.twobl-contact__field select {
	width: 100%;
	height: 56px;
	padding: 0 1.875rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 999px;
	background: var(--twobl-white);
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-black);
	appearance: none;
}
.twobl-contact__field select { cursor: pointer; }
.twobl-contact__field--phone {
	position: relative;
	display: flex;
	align-items: center;
}

.twobl-contact__field--phone input[type="tel"] { padding-left: 6.75rem; }

.twobl-phonecode {
	position: absolute;
	left: 0.5rem;
	top: 0.5rem;
	bottom: 0.5rem;
	z-index: 1;
}
.twobl-phonecode__toggle {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	height: 100%;
	padding: 0 0.85rem;
	border: 0;
	background: none;
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	color: var(--twobl-black);
	cursor: pointer;
}
.twobl-phonecode__flag { border-radius: 2px; flex-shrink: 0; }
.twobl-phonecode__toggle svg { flex-shrink: 0; transition: transform 0.2s ease; }
.twobl-phonecode[data-open] .twobl-phonecode__toggle svg { transform: rotate(180deg); }

.twobl-phonecode__panel {
	position: absolute;
	top: calc(100% + 0.6rem);
	left: -0.5rem;
	width: 19rem;
	max-width: calc(90vw);
	background: var(--twobl-white);
	border-radius: 16px;
	box-shadow: var(--twobl-shadow);
	padding: 0.6rem;
	/* display:none when closed - visibility alone reserves scroll area and caused modal scrollbars */
	display: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.twobl-phonecode[data-open] .twobl-phonecode__panel {
	display: block;
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.twobl-phonecode__search {
	width: 100%;
	height: 42px !important;
	padding: 0 1rem;
	margin-bottom: 0.5rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 999px;
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	color: var(--twobl-black);
}
.twobl-phonecode__list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 16rem;
	overflow-y: auto;
}
.twobl-phonecode__list li[hidden] { display: none; }
.twobl-phonecode__list button {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	width: 100%;
	padding: 0.55rem 0.6rem;
	border: 0;
	border-radius: 8px;
	background: none;
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	text-align: left;
	color: var(--twobl-black);
	cursor: pointer;
}
.twobl-phonecode__list button:hover,
.twobl-phonecode__list li[aria-selected="true"] button {
	background: var(--twobl-green-light);
}
.twobl-phonecode__list img { flex-shrink: 0; border-radius: 2px; }
.twobl-phonecode__name { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.twobl-phonecode__dial { flex-shrink: 0; color: var(--twobl-grey-dark); }
.twobl-phonecode__empty {
	margin: 0.75rem 0 0.25rem;
	text-align: center;
	font-family: var(--twobl-font-alt);
	font-size: 0.875rem;
	color: var(--twobl-grey-dark);
}
.twobl-contact__field--message textarea {
	width: 100%;
	min-height: 112px;
	padding: 1.25rem 1.875rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 30px;
	background: var(--twobl-white);
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-black);
	resize: vertical;
}
.twobl-contact__submit {
	width: 100%;
	max-width: 430px;
	height: 60px;
	border: 0;
	border-radius: 999px;
	background: var(--twobl-slate);
	color: var(--twobl-white);
	font-family: var(--twobl-font-alt);
	font-size: 1.125rem;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.twobl-contact__submit:hover { background: #000; }
.twobl-contact__disclaimer {
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	letter-spacing: 0.03em;
	color: var(--twobl-slate);
	
	max-width: 44ch;
	margin: 0 auto 0;
}

/* ---- 15. Insights Listing (page hero + filter tabs) ---- */
.twobl-bloglist__hero {
	position: relative;
	overflow: hidden;
	padding-block: var(--twobl-space-xl);
	background: var(--twobl-white);
}
.twobl-bloglist__circle {
	position: absolute;
	aspect-ratio: 1;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}
.twobl-bloglist__circle--a {
	width: 41%;
	left: -10.5%;
	top: -40%;
	background: radial-gradient(circle, var(--twobl-green-light) 0%, rgba(244, 249, 236, 0) 70%);
}
.twobl-bloglist__circle--b {
	width: 45%;
	right: -14%;
	top: -45%;
	background: radial-gradient(circle, var(--twobl-blue-light) 0%, rgba(232, 234, 234, 0) 70%);
}
.twobl-bloglist__hero--green,
.twobl-postdetail__hero.twobl-bloglist__hero--green { background: var(--twobl-green); }

.twobl-bloglist__hero--orange,
.twobl-bloglist__hero--red,
.twobl-postdetail__hero.twobl-bloglist__hero--orange,
.twobl-postdetail__hero.twobl-bloglist__hero--red {
	background: var(--twobl-red); /* #F15B4E brand orange/coral */
}
.twobl-bloglist__hero--orange .twobl-bloglist__circle--a,
.twobl-bloglist__hero--red .twobl-bloglist__circle--a {
	background: radial-gradient(circle, rgba(255, 255, 255, 0.28) 0%, rgba(241, 91, 78, 0) 70%);
}
.twobl-bloglist__hero--orange .twobl-bloglist__circle--b,
.twobl-bloglist__hero--red .twobl-bloglist__circle--b {
	background: radial-gradient(circle, rgba(255, 255, 255, 0.22) 0%, rgba(241, 91, 78, 0) 70%);
}

.twobl-bloglist__hero--yellow {
	background: var(--twobl-yellow);
	padding-block: clamp(9rem, 14vw, 14.5rem) clamp(3.5rem, 7vw, 6.625rem);
}
.twobl-bloglist__hero--yellow .twobl-bloglist__circle--a {
	background: radial-gradient(circle, rgba(255, 255, 255, 0.32) 0%, rgba(253, 184, 19, 0) 70%);
}
.twobl-bloglist__hero--yellow .twobl-bloglist__circle--b {
	background: radial-gradient(circle, rgba(255, 255, 255, 0.24) 0%, rgba(253, 184, 19, 0) 70%);
}

.twobl-bloglist__heading.twobl-bloglist__heading--narrow {
	max-width: 59.375rem; /* 950px */
	margin-inline: auto;
}

.twobl-bloglist__hero--blue {
	background: var(--twobl-blue);
	padding-block: clamp(9rem, 14vw, 14.5rem) clamp(3.5rem, 7vw, 6.625rem);
}
.twobl-bloglist__hero--blue .twobl-bloglist__circle--a {
	background: radial-gradient(circle, rgba(255, 255, 255, 0.32) 0%, rgba(59, 195, 222, 0) 70%);
}
.twobl-bloglist__hero--blue .twobl-bloglist__circle--b {
	background: radial-gradient(circle, rgba(255, 255, 255, 0.24) 0%, rgba(59, 195, 222, 0) 70%);
}

.twobl-bloglist__circle--light {
	background: var(--twobl-green-glow);
	filter: blur(9vw);
	opacity: 1;
}
.twobl-bloglist__circle--a.twobl-bloglist__circle--light {
	width: 41.09vw;
	left: -14.32vw;
	right: auto;
	top: -17.23vw;
}
.twobl-bloglist__circle--b.twobl-bloglist__circle--light {
	width: 45.14vw;
	left: 74.86vw;
	right: auto;
	top: 9vw;
}
.twobl-bloglist__hero-inner {
	position: relative;
	z-index: 1;
	text-align: center;
}
.twobl-bloglist__heading { margin: 0 0 1.25rem; }
.twobl-bloglist__heading--white { color: var(--twobl-white); }
.twobl-bloglist__subheading {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-heading-2);
	max-width: 46ch;
	margin-inline: auto;
}
.twobl-bloglist__subheading--white {
	color: var(--twobl-white);
	opacity: 0.95;
}
.twobl-bloglist__body { padding-block: var(--twobl-space-lg) clamp(2.5rem, 10vw, 10rem); }
.twobl-bloglist__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.twobl-bloglist__tab {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.9rem 1.5rem;
	border-radius: 999px;
	border: 1px solid var(--twobl-stroke-dark);
	background: var(--twobl-white);
	font-family: var(--twobl-font-body);
	font-weight: 600;
	font-size: 1rem;
	color: var(--twobl-slate);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.twobl-bloglist__tab-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
}
.twobl-bloglist__tab-dot--green  { background: var(--twobl-green); }
.twobl-bloglist__tab-dot--yellow { background: var(--twobl-yellow); }
.twobl-bloglist__tab-dot--blue   { background: var(--twobl-blue); }
.twobl-bloglist__tab-dot--red    { background: var(--twobl-red); }
.twobl-bloglist__tab.is-active {
	background: var(--twobl-slate);
	border-color: var(--twobl-slate);
	color: var(--twobl-white);
}
.twobl-bloglist__tab.is-active .twobl-bloglist__tab-dot { display: none; }
.twobl-bloglist__empty {
	text-align: center;
	color: var(--twobl-text-body);
	font-family: var(--twobl-font-alt);
	padding: 2rem 0;
}
@media (max-width: 960px) {
	.twobl-bloglist__hero { padding-top: 7.75rem; padding-bottom: 1.5rem; }
	
	.twobl-bloglist__heading { font-size: 3.5rem; line-height: 1.08; }
	/* .twobl-bloglist__body { padding-top: 1rem; } */
	body.post-type-archive-case_study .twobl-bloglist__heading { font-size: 5rem; line-height: 1.05; }
}
.twobl-bloglist__filter { display: none; margin-bottom: clamp(2rem, 4vw, 3rem); }
.twobl-bloglist__select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	padding: 0.85rem 3rem 0.85rem 1.5rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 999px;
	background-color: var(--twobl-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%231B2930' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.35rem center;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1rem;
	color: var(--twobl-slate);
	cursor: pointer;
}
.twobl-bloglist__select:focus-visible {
	outline: 2px solid var(--twobl-slate);
	outline-offset: 2px;
}
@media (max-width: 640px) {
	.twobl-bloglist__tabs { display: none; }
	.twobl-bloglist__filter { display: block; }
}

/* ---- 16. Insights Detailed (single post) ---- */
.twobl-postdetail__hero {
	position: relative;
	overflow: hidden;
	padding-block: var(--twobl-space-xl);
	background: var(--twobl-white);
}
.twobl-postdetail__hero-inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	
	gap: 3.125rem;
	padding-top: 1rem;
	text-align: center;
}
.twobl-postdetail__back {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 999px;
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	letter-spacing: 0.03em;
	color: var(--twobl-text-heading-2);
	text-decoration: none;
}
.twobl-postdetail__back svg { width: 12px; height: 24px; }
.twobl-postdetail__title {
	max-width: 54.5rem; /* 872px, per Figma */
	margin: 0;
}
.twobl-postdetail__subtitle {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-heading-2);
	margin: 0;
	
	max-width: 54.5rem;
	margin-inline: auto;
}

.twobl-postdetail__body { padding-block: clamp(2.5rem, 5vw, 5rem) var(--twobl-space-lg); }

.twobl-postdetail--article .twobl-postdetail__hero { padding-bottom: 2.5rem; }
.twobl-postdetail--article .twobl-postdetail__body { padding-top: 2rem; }

.twobl-postdetail__figure,
.twobl-postdetail__figure--rect {
	position: relative;   /* containing block for the optional play-button overlay */
	display: block;
	width: 100%;
	max-width: 54.5rem; /* 872px */
	aspect-ratio: 872 / 612;
	margin: 0 auto 2.5rem;
	border-radius: 20px;
	overflow: hidden;
}
.twobl-postdetail__figure img { width: 100%; height: 100%; object-fit: cover; }
.twobl-postdetail__figure-play {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.twobl-postdetail__figure-play:focus-visible {
	outline: 3px solid var(--twobl-green);
	outline-offset: -3px;
}
.twobl-postdetail__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	max-width: 40.375rem; /* 646px, per Figma article column */
	margin: 0 auto 2rem;
}
.twobl-postdetail__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 1.25rem;
	border-radius: 999px;
	font-family: var(--twobl-font-body);
	font-size: 1.25rem;
	color: var(--twobl-slate);
}
.twobl-postdetail__author {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-slate);
}
.twobl-postdetail__author a { color: inherit; text-decoration: none; }
.twobl-postdetail__author a:hover,
.twobl-postdetail__author a:focus-visible { text-decoration: underline; }
.twobl-postdetail__author img {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--twobl-green);
}
.twobl-postdetail__content {
	max-width: 40.375rem; /* 646px */
	margin: 0 auto;
	font-family: var(--twobl-font-body);
	font-size: 1.125rem; /* 18px */
	line-height: 1.78;   /* 32px */
	color: var(--twobl-text-body);
}

.twobl-postdetail__content.twobl-postdetail__content > * + * { margin-top: 1.5rem; }
.twobl-postdetail__content.twobl-postdetail__content > * + h2,
.twobl-postdetail__content.twobl-postdetail__content > * + h3 { margin-top: 3rem; }
.twobl-postdetail__content h2,
.twobl-postdetail__content h3 {
	font-family: var(--twobl-font-heading);
	
	font-size: var(--twobl-fs-h4); /* 40px */
	line-height: 1.125;
	text-transform: uppercase;
	color: var(--twobl-text-heading);
	margin: 2rem 0 0;
}
.twobl-postdetail__content p { margin: 0; }
.twobl-postdetail__content ul {
	margin: 0;
	padding-left: 1.6875rem; /* 27px */
	list-style: disc;
}
.twobl-postdetail__content li { margin: 0; }

.twobl-postdetail__content iframe {
	display: block;
	width: 100%;
	max-width: 54.5rem; /* matches the article column width */
	height: auto;
	aspect-ratio: 16 / 9;
	margin: 1.5rem auto;
	border: 0;
	border-radius: 20px;
}

.twobl-postdetail__cta {
	max-width: 54.5rem;
	margin: var(--twobl-space-xl) auto 0;
	text-align: center;
}
.twobl-postdetail__cta h2 { margin: 0 0 1rem; }
.twobl-postdetail__cta p {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-heading-2);
	margin: 0 0 2rem;
}
.twobl-postdetail__related {
	padding-block: var(--twobl-space-xl);
	border-top: 1px solid var(--twobl-bg);
}
.twobl-postdetail__related-heading {
	text-align: center;
	margin: 0 0 clamp(2rem, 4vw, 3rem);
}
.twobl-postdetail__related-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.twobl-postdetail__related-head .twobl-postdetail__related-heading {
	text-align: left;
	margin: 0;
	max-width: 32ch;
}
@media (max-width: 640px) {
	
	.twobl-postdetail__hero { padding-top: 6rem; }
	.twobl-postdetail__hero-inner { gap: 2.25rem; }
	
	.twobl-postdetail__title { font-size: 2.375rem; line-height: 1.06; }
	
	.twobl-postdetail__meta { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 1rem; }
	.twobl-postdetail__tag { height: 36px; padding: 0 0.875rem; font-size: 1rem; }
	.twobl-postdetail__author { font-size: 0.875rem; gap: 0.5rem; }
	.twobl-postdetail__author img { width: 40px; height: 40px; }
	.twobl-postdetail--article .twobl-postdetail__hero { padding-bottom: 1rem; }
	.twobl-postdetail--article .twobl-postdetail__body { padding-top: 0.75rem; }
	
	.twobl-postdetail__content h2,
	.twobl-postdetail__content h3 { font-size: 2.375rem; }
}

/* ---- 17. Coaches / Team directories + Coach detail ---- */
.twobl-bloglist__subheading--wide { max-width: 68.625rem; /* 1098px, per Figma */ }

/* ---- Coach detail: profile card additions ---- */
.twobl-coachdetail__cta {
	display: flex;
	width: 100%;
	margin: 0 0 1rem;
}
.twobl-coachdetail__meta-row + .twobl-coachdetail__meta-row { margin-top: 1rem; }
.twobl-coachdetail__meta-value--flag {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.twobl-coachdetail__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.4rem;
}
.twobl-coachdetail__tag {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
	background: var(--twobl-bg);
	border: 1px solid #E1E6E8;
	font-family: var(--twobl-font-body);
	font-size: 0.8125rem;
	line-height: 1.35;
	color: var(--twobl-text-heading-2);
}

/* Awards render as a small year label above each entry. */
.twobl-coachdetail__awards { list-style: none; padding-left: 0; }
.twobl-coachdetail__awards li { margin-bottom: 0; }
.twobl-coachdetail__award-year {
	display: block;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--twobl-slate);
	margin-bottom: 0;
}
.twobl-coachdetail__award-text {
	display: block;
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-text-body);
}

/* ---- Coach detail: "<name> in action" draggable gallery ---- */
.twobl-coachgallery {
	background: var(--twobl-slate);
	padding-block: clamp(3.5rem, 8vw, 7rem);
	overflow: hidden;
	margin-top: 60px;
}
@media (min-width: 961px) {
	.twobl-coachdetail .twobl-postdetail__content {
		padding-bottom: calc(var(--twobl-coach-overlap, 0px) + clamp(3rem, 6vw, 5rem));
	}
	.twobl-coachgallery {
		position: relative;
		z-index: 1;
		margin-top: calc(-1 * var(--twobl-coach-overlap, 0px));
	}
}
.twobl-coachgallery__heading {
	color: var(--twobl-white);
	text-align: center;
	margin: 0 0 clamp(2.5rem, 6vw, 5rem);
}
.twobl-coachgallery__viewport {
	overflow-x: auto;
	scrollbar-width: none;
	cursor: grab;
	-webkit-overflow-scrolling: touch;
}
.twobl-coachgallery__viewport::-webkit-scrollbar { display: none; }
.twobl-coachgallery__viewport.is-dragging { cursor: grabbing; scroll-behavior: auto; }
.twobl-coachgallery__track {
	display: flex;
	align-items: flex-end;   /* slides share a baseline */
	gap: clamp(1rem, 2.5vw, 2.75rem);
	padding-inline: max(1.5rem, calc((100vw - var(--twobl-container)) / 2));
	width: max-content;
}

.twobl-coachgallery__slide {
	flex: 0 0 auto;
	margin: 0;
	height: clamp(220px, 26vw, 360px);
	/* aspect-ratio: 4 / 3; */
	border-radius: 16px;
	overflow: hidden;
	background: #223640;
}
.twobl-coachgallery__slide img {
	display: block;
	width: auto;
	max-width: none;
	height: clamp(220px, 26vw, 360px);
	object-fit: cover;
	object-position: 50% 20%;
	user-select: none;
	-webkit-user-drag: none;
}
.twobl-coachgallery__foot {
	display: flex;
	align-items: center;
	gap: clamp(1.5rem, 5vw, 4rem);
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}
.twobl-coachgallery__count,
.twobl-coachgallery__drag {
	font-family: var(--twobl-font-body);
	font-size: 1.125rem;
	color: var(--twobl-white);
	margin: 0;
	flex: 0 0 auto;
}
.twobl-coachgallery__bar {
	position: relative;
	flex: 1 1 auto;
	height: 3px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.25);
	cursor: grab;
	touch-action: none;
}
.twobl-coachgallery__bar::before {
	content: '';
	position: absolute;
	inset: -14px 0;
}
.twobl-coachgallery__bar.is-scrubbing { cursor: grabbing; }
.twobl-coachgallery__bar-fill {
	display: block;
	height: 100%;
	width: 12%;
	border-radius: 999px;
	background: var(--twobl-green);
	transition: width 0.15s linear;
}
.twobl-coachgallery__bar.is-scrubbing .twobl-coachgallery__bar-fill {
	transition: none; /* the thumb must track the pointer, not lag behind it */
}

/* ---- Coach detail: video testimonials ---- */
.twobl-videotesti { background: var(--twobl-white); padding-block: clamp(3rem, 6vw, 5rem); }
.twobl-videotesti__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.twobl-videotesti__heading { margin: 0; color: var(--twobl-text-heading); }
.twobl-videotesti__nav { display: flex; gap: 0.75rem; flex-shrink: 0; }
.twobl-videotesti__viewport {
	overflow-x: auto;
	scrollbar-width: none;
	scroll-behavior: smooth;
	cursor: grab;
}
.twobl-videotesti__viewport::-webkit-scrollbar { display: none; }
.twobl-videotesti__viewport.is-dragging { cursor: grabbing; scroll-behavior: auto; }
.twobl-videotesti__track {
	display: flex;
	gap: clamp(1rem, 2vw, 1.5rem);
	width: max-content;
	user-select: none;
	-webkit-user-drag: none;
}
.twobl-videotesti__card {
	position: relative;
	flex: 0 0 auto;
	
	width: clamp(240px, 22vw, 296px);
	aspect-ratio: 3 / 4;
	border: 0;
	padding: 0;
	border-radius: 20px;
	overflow: hidden;
	background: var(--twobl-slate);
	cursor: pointer;
	display: block;
}
.twobl-videotesti__card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
	transition: transform 0.4s ease;
}
.twobl-videotesti__card:hover img,
.twobl-videotesti__card:focus-visible img { transform: scale(1.04); }
.twobl-videotesti__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(16, 22, 47, 0) 45%, rgba(16, 22, 47, 0.85) 100%);
	pointer-events: none;
}
.twobl-videotesti__info {
	position: absolute;
	left: clamp(1rem, 2vw, 1.5rem);
	right: clamp(4.5rem, 7vw, 5.5rem); /* clears the play button */
	bottom: clamp(1rem, 2vw, 1.5rem);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	text-align: left;
	pointer-events: none;
}
.twobl-videotesti__name {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--twobl-white);
}
.twobl-videotesti__role {
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	color: var(--twobl-text-on-dark);
}
.twobl-videotesti__play {
	position: absolute;
	right: clamp(1rem, 2vw, 1.5rem);
	bottom: clamp(1rem, 2vw, 1.5rem);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.9);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--twobl-white);
	pointer-events: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.twobl-videotesti__card:hover .twobl-videotesti__play,
.twobl-videotesti__card:focus-visible .twobl-videotesti__play {
	background: var(--twobl-green);
	border-color: var(--twobl-green);
	color: var(--twobl-slate);
}
@media (max-width: 700px) {
	.twobl-videotesti__card { width: clamp(220px, 72vw, 280px); }
}

/* ---- Coach detail: "Meet our other coaches" slider ---- */
.twobl-coachdetail__related-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.twobl-coachdetail__related-head .twobl-coachdetail__related-heading {
	text-align: left;
	margin: 0;
}
.twobl-coachdetail__related-nav {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.twobl-slider__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1px solid #E1E6E8;
	background: transparent;
	color: var(--twobl-slate);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.twobl-slider__arrow:hover:not([disabled]) {
	background: var(--twobl-slate);
	border-color: var(--twobl-slate);
	color: var(--twobl-white);
}
.twobl-slider__arrow[disabled] { opacity: 0.35; cursor: default; }
.twobl-coachdetail__related-viewport {
	overflow-x: auto;
	scrollbar-width: none;
	scroll-behavior: smooth;
	cursor: grab;
	margin-inline: calc(var(--twobl-gutter) * -1);
	padding-inline: var(--twobl-gutter);
}
.twobl-coachdetail__related-viewport::-webkit-scrollbar { display: none; }

.twobl-coachdetail__related-viewport.is-dragging { cursor: grabbing; scroll-behavior: auto; }
.twobl-coachdetail__related-track {
	display: flex;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	width: max-content;
	
	user-select: none;
	-webkit-user-drag: none;
}
.twobl-coachdetail__related-track img { -webkit-user-drag: none; }
.twobl-coachdetail__related-track .twobl-profilecard {
	flex: 0 0 auto;
	width: clamp(280px, 30vw, 419px);
}

/* ---- Coach directory filter dropdowns ---- */
.twobl-filter { position: relative; }
.twobl-filter.is-active .twobl-coachlist__dropdown {
	border-color: var(--twobl-slate);
	background: var(--twobl-slate);
	color: var(--twobl-white);
}
.twobl-coachlist__dropdown[disabled] { opacity: 0.45; cursor: not-allowed; }
.twobl-coachlist__dropdown[aria-expanded="true"] svg { transform: rotate(180deg); }
.twobl-coachlist__dropdown svg { transition: transform 0.2s ease; }
.twobl-filter__menu {
	position: absolute;
	z-index: 20;
	top: calc(100% + 0.5rem);
	left: 0;
	min-width: 240px;
	max-height: 280px;
	overflow-y: auto;
	padding: 0.5rem;
	background: var(--twobl-white);
	border: 1px solid #E1E6E8;
	border-radius: 16px;
	box-shadow: var(--twobl-shadow);
	text-align: left;
}
.twobl-filter__option {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.55rem 0.65rem;
	border-radius: 10px;
	cursor: pointer;
	font-family: var(--twobl-font-body);
	font-size: 0.9375rem;
	color: var(--twobl-slate);
}
.twobl-filter__option:hover { background: var(--twobl-bg); }
.twobl-filter__option input { width: 16px; height: 16px; accent-color: var(--twobl-green); cursor: pointer; }
.twobl-coachlist__empty {
	text-align: center;
	font-family: var(--twobl-font-body);
	color: var(--twobl-text-supporting);
	padding-block: clamp(2rem, 5vw, 4rem);
}

.twobl-coachlist__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.twobl-coachlist__dropdown {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	height: 48px;
	padding: 0 1rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 999px;
	background: var(--twobl-white);
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 1rem;
	color: var(--twobl-slate);
	cursor: pointer;
}
.twobl-coachlist__dropdown svg { flex-shrink: 0; }
.twobl-coachlist__clear {
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.8125rem;
	color: var(--twobl-grey-dark, #757575);
	background: none;
	border: 0;
	cursor: pointer;
}

.twobl-coachlist__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
@media (max-width: 900px) {
	.twobl-coachlist__grid { grid-template-columns: 1fr; }
}

/* Profile Card Portrait — coach/team card reused in grids + "related" rails. */
.twobl-profilecard {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	
	border: 1px solid #E1E6E8;
	border-radius: 20px;
	overflow: hidden;
	background: var(--twobl-white);
	text-decoration: none;
	transition: border-color 0.25s ease;
	text-align: center;
}

.twobl-profilecard--static { cursor: default; }
.twobl-profilecard:hover,
.twobl-profilecard:focus-visible {
	border-color: var(--twobl-stroke-dark);
	box-shadow: none;
	transform: none;
}
.twobl-profilecard__header {
	padding: 2.25rem 1.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.twobl-profilecard__circle {
	/* ~54% of the card, measured from Figma (was 42%). */
	width: clamp(150px, 14vw, 226px);
	aspect-ratio: 1;
	height: auto;
	border-radius: 50%;
	margin-bottom: 1.5rem;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: transform 0.3s ease;
}
.twobl-profilecard:hover .twobl-profilecard__circle,
.twobl-profilecard:focus-visible .twobl-profilecard__circle {
	transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
	.twobl-profilecard__circle { transition: none; }
	.twobl-profilecard:hover .twobl-profilecard__circle { transform: none; }
}

.twobl-profilecard__circle--yellow { background: var(--twobl-yellow); }
.twobl-profilecard__circle--green  { background: var(--twobl-green); }
.twobl-profilecard__circle--blue   { background: var(--twobl-ocean); }
.twobl-profilecard__circle--red    { background: var(--twobl-red); }

.twobl-profilecard__circle img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
	object-position: top;
}

.twobl-profilecard__name {
	font-family: var(--twobl-font-heading);
	font-size: clamp(1.625rem, 2.6vw, 2.5rem);
	line-height: 1.15;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: 0 0 0.5rem;
	
	max-width: 78%;
	margin-inline: auto;
}
.twobl-profilecard__role {
	font-family: var(--twobl-font-body);
	font-size: 0.9375rem; /* 15px */
	color: #66757B;
	margin: 0;
}
.twobl-profilecard__footer {
	background: #F4F7F8;
	border-top: 1px solid #EBEFF1;
	padding: 1.25rem 1.25rem 1.35rem;
	border-bottom-left-radius: 20px;
	border-bottom-right-radius: 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.85rem;
}
.twobl-profilecard__pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.35rem 0.4rem;
	
	max-width: min(320px, 100%);
}
.twobl-strength-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.65rem;
	border-radius: 999px;
	font-family: var(--twobl-font-body);
	font-weight: 600;
	font-size: 0.75rem;
	color: var(--twobl-white);
	white-space: nowrap;
}
.twobl-profilecard__location {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--twobl-font-body);
	font-weight: 600;
	font-size: 0.8125rem;
	color: var(--twobl-slate);
}

.twobl-profilecard__flag {
	flex-shrink: 0;
	width: 16px;
	height: 12px;
	object-fit: cover;
	border-radius: 1px;
}

.twobl-pagecta {
	max-width: 62.5rem; /* 1000px */
	margin: clamp(3rem, 12.5vw, 12.5rem) auto 0;   /* 200px above at desktop */
	text-align: center;
}
.twobl-pagecta__heading { margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); }

.twobl-teamcta--yellow .twobl-teamcta__heading {
	color: var(--twobl-yellow);
	font-size: var(--twobl-fs-h3);
}
.twobl-teamcta:last-child { margin-bottom: 0; }
.twobl-teamcta {
	position: relative;
	
	display: grid;
	grid-template-columns: 1fr;
	grid-template-areas: "heading" "button";
	align-content: space-between;
	row-gap: clamp(1.5rem, 4vw, 3rem);
	min-height: 336px;
	margin-block: clamp(3rem, 12.5vw, 12.5rem) 0;  /* 200px above at desktop */
	padding: 2.5rem clamp(1.5rem, 4vw, 3rem);
	padding-right: 54%; /* clears the absolutely-positioned photo */
	border-radius: 20px;
	background: var(--twobl-slate);
	
	overflow: visible;
}
.twobl-teamcta__heading {
	grid-area: heading;
	color: var(--twobl-blue);
	margin: 0;
	/* One line ("MEET OUR TEAM") — a 9ch cap previously forced it onto two. */
	max-width: none;
	white-space: nowrap;
}
.twobl-teamcta .btn {
	grid-area: button;
	align-self: end;
	justify-self: start;
}

.twobl-teamcta__photo {
	position: absolute;
	right: 0;    /* absolute offsets ignore padding, so this meets the banner edge */
	bottom: 0;
	width: min(52%, 690px);
	margin: 0;
}
.twobl-teamcta__photo img { width: 100%; height: auto; display: block; }
.twobl-teamcta__photo--custom { aspect-ratio: 1200 / 697; overflow: hidden; border-bottom-right-radius: 20px; }
.twobl-teamcta__photo--custom::before {
	content: "";
	position: absolute;
	left: 19%;
	top: 16%;
	width: 68%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--twobl-blue);
}
.twobl-teamcta__photo--custom::after {
	content: "";
	position: absolute;
	left: 9%;
	right: 3%;
	top: 48%;
	bottom: 6%;
	background: radial-gradient(circle, rgba(255,255,255,0.9) 1.6px, transparent 2.2px) 0 0 / 15px 15px;
	-webkit-mask-image: linear-gradient(to right, #000 0 13%, transparent 13% 89%, #000 89%);
	mask-image: linear-gradient(to right, #000 0 13%, transparent 13% 89%, #000 89%);
}
.twobl-teamcta--yellow .twobl-teamcta__photo--custom::before { background: var(--twobl-yellow); }
.twobl-teamcta--yellow .twobl-teamcta__photo--custom::after { background-image: radial-gradient(circle, var(--twobl-yellow) 1.6px, transparent 2.2px); }
.twobl-teamcta__photo--custom img { position: relative; z-index: 1; height: 100%; object-fit: cover; object-position: center bottom; }
.twobl-teamcta .btn { flex-shrink: 0; }

@media (max-width: 780px) {
	.twobl-teamcta {
		grid-template-columns: 1fr;
		grid-template-areas: "heading" "button" "photo";
		align-content: start;
		text-align: left;
		padding-right: clamp(1.5rem, 4vw, 3rem);
		padding-top: 2rem;
		padding-bottom: 0;
		row-gap: 1.75rem;
	}
	.twobl-teamcta__heading { white-space: normal; }
	/* .twobl-teamcta__heading { max-width: 6ch; } */
	
	.twobl-teamcta__photo {
		position: static;
		width: 100%;
		max-width: 100%;
		justify-self: center;
	}
	.twobl-teamcta__photo--custom { position: relative; border-bottom-left-radius: 20px; }
}

/* Coach detail page. */
.twobl-coachdetail {
	display: grid;
	grid-template-columns: minmax(0, 37.5rem) 1fr;
	gap: clamp(2rem, 5vw, 4.75rem);
	align-items: start;
}
@media (max-width: 960px) {
	.twobl-coachdetail { grid-template-columns: 1fr; }
}
.twobl-coachdetail__card {
	position: sticky;
	top: var(--twobl-sticky-top);
	border: 1px solid #E1E6E8;
	border-radius: 24px;
	padding: 1rem 2rem;
	text-align: left;
}
.twobl-coachdetail__intro {
	padding-top: var(--twobl-space-xl);
}
@media (max-width: 960px) {
	.twobl-coachdetail__card { position: static; }
	
	.twobl-coachdetail__intro { padding-top: 6.25rem; }
	
	.twobl-coachdetail__name { font-size: 2rem; }
	
	.twobl-coachdetail__cta {
		position: fixed;
		left: 1rem;
		right: 1rem;
		bottom: 1rem;
		z-index: 40;
		width: auto;
		margin: 0;
		box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
	}
	.twobl-coachdetail-page { padding-bottom: 5.5rem; }
}
.twobl-coachdetail__photo {
	/* Top-LEFT in the card (not centred), ~33% of the card width per Figma. */
	width: 35%;
	min-width: 150px;
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	margin: 0 0 1.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.twobl-coachdetail__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}
.twobl-coachdetail__name { margin: 0 0 0.5rem; }
.twobl-coachdetail__role {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-text-heading-2);
	margin: 0 0 1.5rem;
}
.twobl-coachdetail__linkedin {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--twobl-font-alt);
	font-weight: 500;
	font-size: 0.9375rem;
	color: var(--twobl-slate);
	text-decoration: none;
	margin-top: 20px;
}
.twobl-coachdetail__strengths-label {
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.8125rem;
	color: var(--twobl-stroke-dark);
	margin: 0 0 0.75rem;
}
.twobl-coachdetail__strengths {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.4rem;
	margin: 0;
}
.twobl-coachdetail__meta {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 1.5rem 1.25rem;
	align-items: start;
}
.twobl-coachdetail__meta-col {
	display: flex;
	flex-direction: column;
	/* gap: 1.5rem; */
}
/* Expertise / Coaching Style are plain stacked lines in Figma, not pills. */
.twobl-coachdetail__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.twobl-coachdetail__list li {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--twobl-text-heading);
}
.twobl-coachdetail__linkedin-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 4px;
	background: #0A66C2;
}
@media (max-width: 560px) {
	.twobl-coachdetail__meta { grid-template-columns: 1fr; }
}
.twobl-coachdetail__meta-label {
	font-family: var(--twobl-font-alt);
	font-weight: 700;
	font-size: 0.8125rem;
	color: var(--twobl-stroke-dark);
	margin: 0 0 0.25rem;
}
.twobl-coachdetail__meta-value {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-text-heading-2);
	line-height: 1.5;
	margin: 0;
}
.twobl-coachdetail__back {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	margin-bottom: 2rem;
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	letter-spacing: 0.03em;
	color: var(--twobl-text-heading-2);
	text-decoration: none;
}
.twobl-coachdetail__related {
	padding-block: var(--twobl-space-xl);
}
.twobl-coachdetail__related-heading { text-align: center; margin: 0 0 clamp(2rem, 4vw, 3rem); }

/* ---- 18. Epigenetics (event/programme landing page) ---- */

.twobl-epi-hero {
	padding-block: 11.375rem 8.75rem;
	background: var(--twobl-green);
}
.twobl-epi-hero__eyebrow {
	text-align: center;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.25rem;               /* 20px */
	line-height: 1.4;                 /* 28px */
	letter-spacing: 0;
	color: var(--twobl-slate);
	margin: 0 0 2.5rem;
}
.twobl-epi-hero__title {
	font-family: var(--twobl-font-heading) !important;
	font-size: var(--twobl-fs-h1) !important;   /* 136px */
	line-height: 1.0588 !important;             /* 144px */
	letter-spacing: 0 !important;
	text-transform: uppercase !important;
	color: var(--twobl-slate) !important;
	text-align: center !important;
	max-width: none !important;
	margin: 0 auto 1.25rem !important;
}
.twobl-epi-hero__subtitle {
	text-align: center;
	max-width: 60rem;
	margin-inline: auto;
}
.twobl-epi-hero__subtitle strong {
	display: block;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.25rem;               /* 20px */
	line-height: 1.4;                 /* 28px */
	color: var(--twobl-slate);
	margin-bottom: 0.5rem;
}
.twobl-epi-hero__subtitle span {
	display: block;
	font-family: var(--twobl-font-alt);
	font-size: var(--twobl-fs-body2); /* 16px Roboto */
	line-height: 1.5;                 /* 24px */
	color: var(--twobl-text-heading-2);
	max-width: 60rem;
	margin-inline: auto;
}
.twobl-epi-hero__cta {
	display: flex;
	justify-content: center;
	margin-top: 2.1875rem;
}
.twobl-epi-hero__cta .btn {
	background-color: var(--twobl-slate) !important;
	color: var(--twobl-white) !important;
	font-family: var(--twobl-font-body);
	font-weight: 600;
	font-size: var(--twobl-fs-button);   /* 18px */
	padding: 1.4375rem 2.5625rem;        /* Figma pill: 268 x 64 */
	border-radius: 999px;
	box-shadow: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.twobl-epi-hero__cta .btn:hover {
	background-color: #0F181C !important;
	color: var(--twobl-white) !important;
	transform: translateY(-2px);
}

/* Dark block wrapping Feature Photo, Meta Bar, and Delivers Grid */
.twobl-epi-darkblock {
	background: var(--twobl-slate);
	color: var(--twobl-white);
	padding-block: 6.9375rem 14.6875rem;   /* Figma band: 111 / 235 */
}
.twobl-epi-hero__photo {
	max-width: 69.375rem;                  /* 1110px */
	margin: 0 auto 5rem;
	border-radius: 20px;
	overflow: hidden;
}
.twobl-epi-hero__photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 20px;
}

.twobl-epi-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8.5625rem;                     /* 137px */
	padding-block: 0;
	margin: 0 0 8.25rem;
}
.twobl-epi-meta__item {
	display: flex;
	align-items: center;
	gap: 1.625rem;                      /* 26px */
	min-height: 95px;
	padding-left: 1.375rem;             /* 22px */
	border-left: 1px solid rgba(255, 255, 255, 0.25);
}
.twobl-epi-meta__icon { flex-shrink: 0; width: 44px; height: 44px; display: block; }
.twobl-epi-meta__label {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h5);      /* 30px */
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--twobl-white);
	margin: 0;
	line-height: 1.1;
}
.twobl-epi-meta__unit {
	font-size: 0.6em;
	color: rgba(255, 255, 255, 0.8);
}
.twobl-epi-meta__value {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);    /* 20px */
	line-height: 1.4;                   /* 28px */
	color: var(--twobl-text-on-dark);
	margin: 0.375rem 0 0;
}

/* WHAT THIS COURSE DELIVERS */
.twobl-epi-delivers { text-align: center; }
.twobl-epi-delivers__title {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h3);      /* 60px */
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--twobl-white);
	margin: 0 0 2.25rem;
}
.twobl-epi-delivers__lead {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);    /* 20px */
	line-height: 1.4;                   /* 28px */
	color: var(--twobl-text-on-dark);
	max-width: 42rem;
	margin: 0 auto 3.5rem;
}
.twobl-epi-programme {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.0625rem;                     /* 33px */
	text-align: left;
}
@media (max-width: 960px) {
	.twobl-epi-programme { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.twobl-epi-programme { grid-template-columns: 1fr; }
}
.twobl-epi-progcard {
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(189, 209, 217, 0.35);
	border-radius: 20px;
	padding: 1.9375rem 2rem 2rem;
	min-height: 413px;                  /* Figma card height */
}
.twobl-epi-progcard__label {
	font-family: var(--twobl-font-body);
	font-size: 1rem;                    /* 16px */
	line-height: 1.5;
	color: var(--twobl-text-on-dark);
	margin: 0 0 0.75rem;
}
.twobl-epi-progcard__value {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h4);      /* 40px */
	text-transform: uppercase;
	color: var(--twobl-green);
	margin: 0;
	line-height: 1.1;
}
.twobl-epi-progcard__desc {
	font-family: var(--twobl-font-alt);
	font-size: var(--twobl-fs-body2);   /* 16px Roboto */
	line-height: 1.5;                   /* 24px */
	color: var(--twobl-text-on-dark);
	margin-top: auto;
	padding-top: 2rem;
	margin-bottom: 0;
}

/* Sticky "Start your growth journey today" bar */
.twobl-epi-stickyscroll { position: relative; }
.twobl-epi-stickybar {
	position: sticky;
	top: var(--twobl-sticky-top);
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.8125rem;                     /* 13px */
	flex-wrap: wrap;
	min-height: 94px;                   /* Figma bar height */
	padding: 1.4375rem clamp(1.25rem, 4vw, 3rem);
	background: var(--twobl-white);
	box-shadow: 0 8px 24px rgba(27, 41, 48, 0.08);
}
.twobl-epi-stickybar__text {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h5);      /* 30px */
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: 0;
}
.twobl-epi-stickybar .btn {
	background: var(--twobl-green);
	color: var(--twobl-slate);
	font-weight: 600;
	padding: 0.9375rem 1.5625rem;       /* Figma pill: 218 x 48 */
}

.twobl-epi-intro {
	text-align: center;
	max-width: 63.25rem;
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}
.twobl-epi-intro__eyebrow { margin: 0 0 1rem; }
.twobl-epi-intro__lead {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-heading);
	margin: 0;
}

.twobl-epi-section { 
	padding-block: clamp(8rem, 6vw, 8rem); 
}

.twobl-epi-section--tint { background: var(--twobl-slate); }
.twobl-epi-section--tint .twobl-epi-2col__title,
.twobl-epi-section--tint .twobl-epi-outcome-callout p:first-child { color: var(--twobl-white); }
.twobl-epi-section--tint .twobl-epi-2col__body p,
.twobl-epi-section--tint .twobl-epi-2col__body ul { color: var(--twobl-text-on-dark); }
.twobl-epi-section--tint .twobl-epi-outcome-callout { border-top-color: var(--twobl-stroke-dark); }

.twobl-epi-outcomes { padding-block: 16.125rem 16.0625rem; }
.twobl-epi-included-section { padding-block: 16.125rem 12.5rem; }
@media (max-width: 960px) {
	.twobl-epi-included-section { padding-block: 5rem 4rem; }
}

.twobl-epi-builtfor { padding-block: 6rem 6rem; }
.twobl-epi-section__heading { margin: 0 0 clamp(2rem, 4vw, 2rem); }
.twobl-epi-section__heading--center { text-align: center; }

/* Investment pricing cards */
.twobl-epi-investment {
	position: relative;
	overflow: hidden;
	background: var(--twobl-green);
	padding-block: 7.375rem 8.375rem;    /* Figma band: 942px tall */
}

.twobl-epi-investment__decor {
	position: absolute;
	inset: 0;
	background-image: url("../images/epigenetics/investment-bg.webp");
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	pointer-events: none;
}
.twobl-epi-investment__inner { position: relative; z-index: 1; }
.twobl-epi-investment__title {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h2);       /* 91px */
	line-height: 1.02;
	text-transform: uppercase;
	color: var(--twobl-white);
	text-align: center;
	margin: 0 0 2.25rem;
}
.twobl-epi-investment__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2.1875rem;                      /* 35px */
	max-width: 54.4375rem;               /* 871px — 2 x 418 + 35 */
	margin-inline: auto;
}
@media (max-width: 780px) {
	.twobl-epi-investment__grid { grid-template-columns: minmax(0, 1fr); }
	.twobl-epi-tier { padding: 1.75rem 1.5rem 2rem; }
	.twobl-epi-tier__circle { width: min(214px, 60vw); height: auto; aspect-ratio: 1; }
	.twobl-epi-tier__price { font-size: clamp(2.75rem, 14vw, 4.5rem); }
}
.twobl-epi-tier {
	background: var(--twobl-white);
	border-radius: 20px;
	padding: 1.8125rem 2.75rem 2.4375rem; /* Figma card: 418 x 561 */
	text-align: center;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}
.twobl-epi-tier__circle {
	width: 214px;
	height: 214px;
	border-radius: 50%;
	margin: 0 auto 1.5rem;
	overflow: hidden;
}
.twobl-epi-tier__photo {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}
.twobl-epi-tier__price {
	font-family: var(--twobl-font-heading);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--twobl-slate);
	margin: 0;
}
.twobl-epi-tier__price span {
	font-family: var(--twobl-font-heading);
	font-size: 1.5rem;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin-left: 0.125rem;
}
.twobl-epi-tier__divider {
	border: 0;
	border-top: 1px solid #EBEFF1;
	width: 297px;
	max-width: 100%;
	margin: 1.25rem auto;
}
.twobl-epi-tier__flex-label {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-slate);
	margin: 0 0 0.5rem;
}
.twobl-epi-tier__flex-value {
	font-family: var(--twobl-font-alt);
	font-size: var(--twobl-fs-body2);
	line-height: 1.5;
	color: #66757B;
	margin: 0 0 1.8125rem;
}
.twobl-epi-tier .btn {
	width: 100%;
	background: var(--twobl-green);
	color: var(--twobl-slate);
	font-weight: 600;
	padding: 0.9375rem 1.5625rem;
}

.twobl-epi-howitworks {
	background: var(--twobl-slate);
	padding-block: 16.4375rem 16.1875rem;
}
.twobl-epi-howitworks__heading { color: var(--twobl-white); margin-bottom: 4.5rem; }
.twobl-epi-howitworks .twobl-epi-2col__body p,
.twobl-epi-howitworks .twobl-epi-2col__body ul { color: var(--twobl-text-on-dark); }

.twobl-epi-steps { display: flex; flex-direction: column; }
.twobl-epi-step + .twobl-epi-step {
	margin-top: 3.8125rem;
	padding-top: 2.8125rem;
	border-top: 1px solid rgba(189, 209, 217, 0.35);
}
.twobl-epi-step__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.8125rem;
	margin: 0 0 0.875rem;
}
.twobl-epi-step__eyebrow::before {
	content: '';
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--twobl-white);
	flex-shrink: 0;
}
.twobl-epi-step__eyebrow span {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 0.875rem;                 /* 14px */
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--twobl-white);
}
.twobl-epi-step__title {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h4);       /* 40px */
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--twobl-green);
	margin: 0 0 1.25rem;
}
.twobl-epi-step__body {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);     /* 20px */
	line-height: 1.4;                    /* 28px */
	color: var(--twobl-text-on-dark);
	margin: 0 0 1.375rem;
}
.twobl-epi-step ul {
	margin: 0;
	padding-left: 1.375rem;
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);     /* 20px */
	line-height: 1.4;                    /* 28px */
	color: var(--twobl-text-on-dark);
}
.twobl-epi-step ul li + li { margin-top: 0.5rem; }

/* Two-col text blocks (pain points / outcomes / built-for). */

.twobl-epi-2col {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 644px;
	gap: 5rem;                            /* 80px */
	align-items: start;
}
@media (max-width: 1200px) {
	.twobl-epi-2col { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; }
}
@media (max-width: 900px) {
	.twobl-epi-2col { grid-template-columns: 1fr; }
}
.twobl-epi-2col__sticky { position: sticky; top: calc(var(--twobl-sticky-top) + 7rem); /* clears the sticky "Start your growth journey" bar parked above it */ }
@media (max-width: 900px) {
	.twobl-epi-2col__sticky { position: static; }
}
.twobl-epi-2col__title { margin: 0; }
.twobl-epi-2col__subheading {
	margin: 1.25rem 0 0;
	max-width: 32rem;
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);
	line-height: 1.4;
	color: var(--twobl-text-heading-2);
}
.twobl-epi-section--tint .twobl-epi-2col__subheading { color: var(--twobl-text-on-dark); }
.twobl-epi-2col__title--wide { max-width: none; line-height: 1.1667; /* 70px at 60px */ }
.twobl-epi-2col__body p {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);      /* 20px */
	line-height: 1.4;                     /* 28px */
	color: var(--twobl-text-heading-2);
}
.twobl-epi-2col__body p + p { margin-top: 1.5rem; }
.twobl-epi-2col__body ul {
	margin: 0 0 1.5rem;
	padding-left: 1.375rem;
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);      /* 20px */
	line-height: 1.4;                     /* 28px */
	color: var(--twobl-text-heading-2);
}
.twobl-epi-2col__body ul li + li { margin-top: 0.5rem; }

.twobl-epi-highlevel {
	background: var(--twobl-white);
	padding-block: 7.1875rem 15.8125rem;
}
.twobl-epi-highlevel__media {
	max-width: 33.25rem;                  /* 532px */
	border-radius: 20px;
	overflow: hidden;
}
.twobl-epi-highlevel__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 20px;
}
.twobl-epi-highlevel .twobl-epi-2col__title { margin-bottom: 2.5rem; }
.twobl-epi-highlevel .twobl-epi-2col__body ul { margin-bottom: 1.75rem; }
.twobl-epi-highlevel .twobl-epi-2col__body p { margin: 0; }
.twobl-epi-highlevel .twobl-epi-2col__body p + p { margin-top: 1.5rem; }
.twobl-epi-outcome-callout {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--twobl-stroke-dark);
}
.twobl-epi-outcome-callout p:first-child {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.0625rem;
	color: var(--twobl-text-heading);
	margin: 0 0 0.25rem;
}

/* What's Included cards (dark, stacked, scroll beside the sticky heading). */
.twobl-epi-included__list { display: flex; flex-direction: column; gap: 1.5rem; }

.twobl-epi-included__list--narrow { max-width: 33rem; margin-left: auto; }
.twobl-epi-included-card {
	background: var(--twobl-slate);
	border: 1px solid #B8BDBF;   /* Foundation/Blue/Light:active — card reads on the now-dark section bg */
	border-radius: 20px;
	padding: 2rem clamp(1.5rem, 3vw, 2.5rem);
}
.twobl-epi-included-card__num {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-green);
	margin: 0 0 0.5rem;
}
.twobl-epi-included-card__title {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h5);       /* 30px */
	line-height: 1.25;
	text-transform: uppercase;
	color: var(--twobl-white);
	margin: 0 0 0.75rem;
}
.twobl-epi-included-card__desc {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-text-on-dark);
	margin: 0;
}

/* Testimonial quote block. */

.twobl-epi-quote { margin: 0 auto; text-align: center; padding-block: 10rem 8rem; }
.twobl-epi-quote__mark {
	display: block;
	width: 4.9375rem;      /* 79px, native 122x77 asset scaled down */
	height: auto;
	margin-inline: auto;
}
.twobl-epi-quote__mark--top { margin-bottom: 2.75rem; }
.twobl-epi-quote__mark--bottom { margin-top: 2.75rem; }

.twobl-epi-quote__text { margin: 0; color: var(--twobl-text-heading); }
.twobl-epi-quote__cite { margin: 2.5rem 0 0; display: flex; flex-direction: column; align-items: center; gap: 0.375rem; }
.twobl-epi-quote__name {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.25rem;
	font-style: normal;
	color: var(--twobl-slate);
}
.twobl-epi-quote__role { font-family: var(--twobl-font-alt); font-size: 1rem; color: #6B7B83; }

.twobl-epi-faq { max-width: 54.375rem; margin: 0 auto; }
.twobl-epi-faq__item { border-bottom: 1px solid var(--twobl-bg); }
.twobl-epi-faq__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	padding: 1.5rem 0;
	background: none;
	border: 0;
	text-align: left;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.0625rem;
	color: var(--twobl-text-heading);
	cursor: pointer;
}
.twobl-epi-faq__icon { position: relative; width: 24px; height: 24px; flex-shrink: 0; }
.twobl-epi-faq__icon::before,
.twobl-epi-faq__icon::after {
	content: '';
	position: absolute;
	background: var(--twobl-slate);
	border-radius: 2px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.twobl-epi-faq__icon::before { width: 16px; height: 2px; }
.twobl-epi-faq__icon::after { width: 2px; height: 16px; transition: transform 0.2s ease; }
.twobl-epi-faq__item.is-open .twobl-epi-faq__icon::after { transform: translate(-50%, -50%) scaleY(0); }
.twobl-epi-faq__panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.25s ease;
}
.twobl-epi-faq__item.is-open .twobl-epi-faq__panel { grid-template-rows: 1fr; }
.twobl-epi-faq__panel ul,
.twobl-epi-faq__panel ol { margin: 0 0 1.5rem; padding-left: 1.375rem; }
.twobl-epi-faq__panel li { margin: 0; }
.twobl-epi-faq__panel li + li { margin-top: 0.5rem; }
.twobl-epi-faq__panel-inner { overflow: hidden; }
.twobl-epi-faq__panel p,
.twobl-epi-faq__panel li {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--twobl-text-heading-2);
	margin: 0 0 1.5rem;
}

.twobl-epi-nextevent {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 3rem);
	align-items: center;
	background: var(--twobl-slate);
	border-radius: 20px;
	overflow: hidden;
}
@media (max-width: 860px) {
	.twobl-epi-nextevent { grid-template-columns: 1fr; }
}
.twobl-epi-nextevent__media { position: relative; height: 100%; min-height: 20rem; }
.twobl-epi-nextevent__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
/* "THE NEXT EVENT" sits directly on the photo in Figma, not in the text column. */
.twobl-epi-nextevent__heading {
	position: absolute;
	top: clamp(1.5rem, 4vw, 2.75rem);
	left: clamp(1.5rem, 4vw, 2.75rem);
	color: var(--twobl-green);
	margin: 0;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}
.twobl-epi-nextevent__body { padding: clamp(1.5rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem) 0; }
@media (max-width: 860px) {
	.twobl-epi-nextevent__body { padding: 0 clamp(1.5rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem); }
}
.twobl-epi-nextevent__row { padding-block: 0.75rem; }
.twobl-epi-nextevent__label {
	font-family: var(--twobl-font-heading);
	font-size: var(--twobl-fs-h4);        /* 40px */
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--twobl-green);
	margin: 0 0 0.375rem;
}
.twobl-epi-nextevent__value {
	font-family: var(--twobl-font-body);
	font-size: 1.25rem;                   /* 20px */
	line-height: 1.4;
	color: var(--twobl-white);
	margin: 0;
}
.twobl-epi-nextevent .btn { margin-top: 1.5rem; color: var(--twobl-white); }

/* Find a Cohort: filter bar + cards grid. */
.twobl-epi-cohort-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
	padding: 0.75rem 1.5rem;
	margin-bottom: clamp(2rem, 4vw, 3rem);
	border: 1px solid var(--twobl-bg);
	border-radius: 999px;
}
.twobl-epi-cohort-filters__check {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1rem;
	color: var(--twobl-slate);
}
.twobl-epi-cohort-filters__check input { accent-color: var(--twobl-green); width: 20px; height: 20px; }
.twobl-epi-cohort-filters__reset {
	margin-left: auto;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 0.8125rem;
	color: var(--twobl-grey-dark, #757575);
	background: none;
	border: 0;
	cursor: pointer;
}
@media (max-width: 767px) {
	.twobl-epi-cohort-filters {
		gap: 0.75rem 1.25rem;
		padding: 1rem;
		border-radius: 24px;
	}
	.twobl-epi-cohort-filters .twobl-filter { flex: 1 1 100%; }
	.twobl-epi-cohort-filters .twobl-coachlist__dropdown { width: 100%; justify-content: space-between; }
	.twobl-epi-cohort-filters .twobl-filter__menu { right: 0; min-width: 0; }
	.twobl-epi-cohort-filters__reset { margin-left: 0; padding: 0; flex-basis: 100%; text-align: left; }
}

.twobl-epi-cohorts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
@media (max-width: 900px) {
	.twobl-epi-cohorts { grid-template-columns: 1fr; }
}
.twobl-epi-cohort-empty {
	text-align: center;
	font-family: var(--twobl-font-body);
	color: var(--twobl-text-supporting);
	padding-block: clamp(2rem, 5vw, 4rem);
}

.twobl-epi-cohort-card { display: flex; flex-direction: column; }
.twobl-epi-cohort-card__head {
	background: var(--twobl-slate);
	border-radius: 20px 20px 0 0;
	padding: 1.5rem 2.5rem;
}
.twobl-epi-cohort-card--soldout .twobl-epi-cohort-card__head {
	background: var(--twobl-white);
	border: 1px solid #DDDFE0;
	border-bottom: 0;
}
/* Hover turns the head band green; sold-out cards are not bookable so stay white */
.twobl-epi-cohort-card__head { transition: background-color 0.2s ease; }
.twobl-epi-cohort-card:not(.twobl-epi-cohort-card--soldout):hover .twobl-epi-cohort-card__head {
	background: var(--twobl-green);
}
.twobl-epi-cohort-card:not(.twobl-epi-cohort-card--soldout):hover .twobl-epi-cohort-card__sub {
	color: var(--twobl-white);
}
.twobl-epi-cohort-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 0.5rem;
}
.twobl-epi-cohort-card__badge { width: 74px; height: 74px; border-radius: 50%; object-fit: cover; }
.twobl-epi-cohort-card__tag {
	padding: 0.25rem 0.625rem;
	border-radius: 999px;
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	white-space: nowrap;
}
.twobl-epi-cohort-card__tag--soldout { background: var(--twobl-red); color: var(--twobl-white); font-weight: 400; }
.twobl-epi-cohort-card__tag--earlybird { background: var(--twobl-white); color: var(--twobl-green); font-weight: 700; }
.twobl-epi-cohort-card__title { color: var(--twobl-white); margin: 0 0 0.1875rem; }
.twobl-epi-cohort-card--soldout .twobl-epi-cohort-card__title { color: var(--twobl-text-heading); }
.twobl-epi-cohort-card__sub {
	font-family: var(--twobl-font-body);
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-on-dark);
	margin: 0;
}
.twobl-epi-cohort-card--soldout .twobl-epi-cohort-card__sub { color: var(--twobl-text-heading-2); }

.twobl-epi-cohort-card__body {
	background: var(--twobl-white);
	border: 1px solid var(--twobl-stroke-dark);
	border-top: 0;
	border-radius: 0 0 20px 20px;
	padding: 1.5rem 2.5rem 2rem;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.twobl-epi-cohort-card--soldout .twobl-epi-cohort-card__body { border-color: #DDDFE0; }
.twobl-epi-cohort-card__datelabel {
	font-family: var(--twobl-font-alt);
	font-size: 1rem;
	color: var(--twobl-text-heading);
	margin: 0 0 0.125rem;
}
.twobl-epi-cohort-card__dates { display: flex; flex-wrap: wrap; gap: 0.25rem; margin: 0 0 0.5rem; }
.twobl-epi-cohort-card__date {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 1px solid #DDDFE0;
	font-family: var(--twobl-font-body);
	font-size: 0.875rem;
	color: var(--twobl-text-heading);
}
.twobl-epi-cohort-card__info { margin: 0; }
.twobl-epi-cohort-card__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-block: 5px;
	border-top: 1px solid #D9D9D9;
	font-family: var(--twobl-font-body);
}
.twobl-epi-cohort-card__row:first-child { border-top: 0; padding-top: 0; }
.twobl-epi-cohort-card__row dt { color: #4E5456; text-transform: uppercase; font-size: 0.8125rem; letter-spacing: 0.04em; margin: 0; font-weight: 400; }
.twobl-epi-cohort-card__row dd { color: var(--twobl-text-heading); font-weight: 600; font-size: 1rem; margin: 0; }
.twobl-epi-cohort-card__row--price dd { font-size: 1.5rem; letter-spacing: -0.045rem; }
.twobl-epi-cohort-card__row--price dd span { font-size: 1rem; margin-left: 0.125rem; }
.twobl-epi-cohort-card .btn { 
	width: 100%; 
	padding: 14px 2.5rem;
	margin-top: 8px;
}
.twobl-epi-cohort-card .btn--primary { color: var(--twobl-white); }
.twobl-epi-cohort-card .btn[disabled] { background: #FFE1DE; color: var(--twobl-red); cursor: not-allowed; }

.twobl-epi-gallery { background: var(--twobl-slate); padding-block: 8rem 9.0625rem; }
.twobl-epi-gallery--darker { background: #131f24 }
.twobl-epi-gallery__heading { color: var(--twobl-white); text-align: center; margin: 0 0 clamp(2.5rem, 6vw, 5rem); }
.twobl-epi-gallery__track {
	display: flex;
	align-items: flex-end;   /* bottoms align; item heights alternate short/tall */
	gap: 2.25rem;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	padding-inline: max(var(--twobl-gutter), calc((100vw - var(--twobl-container)) / 2));
	scroll-padding-inline: max(var(--twobl-gutter), calc((100vw - var(--twobl-container)) / 2));
	cursor: grab;
	scrollbar-width: none;
	-ms-overflow-style: none;
	user-select: none;
}
.twobl-epi-gallery__track::-webkit-scrollbar { display: none; }
.twobl-epi-gallery__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.twobl-epi-gallery__item {
	flex-shrink: 0;
	scroll-snap-align: start;
	border-radius: 20px;
	overflow: hidden;
	height: 322px;
}
.twobl-epi-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.twobl-epi-gallery__item--wide { width: 429px; }
.twobl-epi-gallery__item--tall { width: 322px; height: 430px; }
.twobl-epi-gallery__item--xl { width: 470px; height: 430px; }

.twobl-epi-gallery--square .twobl-epi-gallery__item {
	width: auto;
	height: clamp(220px, 26vw, 360px);
	aspect-ratio: 4 / 3;
	border-radius: 16px;
	background: #223640;
}


/* Alternating image/text cross-sell rows. */
.twobl-epi-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
@media (max-width: 860px) { .twobl-epi-split { grid-template-columns: 1fr; } }
.twobl-epi-split--no-media { grid-template-columns: 1fr; }
.twobl-epi-split--reverse .twobl-epi-split__media { order: 2; }
@media (max-width: 860px) { .twobl-epi-split--reverse .twobl-epi-split__media { order: 0; } }
.twobl-epi-split__media { border-radius: 20px; overflow: hidden; aspect-ratio: 531/710; }
.twobl-epi-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.twobl-epi-split__title { margin: 0 0 1.25rem; }
.twobl-epi-split__body { font-family: var(--twobl-font-alt); font-size: 1.0625rem; line-height: 1.7; color: var(--twobl-text-heading-2); }

.twobl-epi-feature-photo { border-radius: 20px; overflow: hidden; margin-bottom: clamp(3rem, 6vw, 5rem); }
.twobl-epi-feature-photo img { width: 100%; height: auto; display: block; }

.twobl-epi-speakers__heading { text-align: center; color: var(--twobl-text-heading); margin: 0 0 3.5rem; }
.twobl-epi-speakers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.125rem;
}
.twobl-epi-speaker {
	flex: 0 0 25.9375rem;
	max-width: 100%;
	text-align: left;
	border: 1px solid var(--twobl-bg);
	border-radius: 20px;
	padding: 2rem 2.5rem 2rem;
}
.twobl-epi-speaker__photo { border-radius: 50%;margin-top: 20px;margin: 0 auto; object-fit: cover; margin-bottom: 1.5rem; }
.twobl-epi-speaker__name { font-family: var(--twobl-font-heading); font-size: var(--twobl-fs-h5); line-height: 1.25; text-transform: uppercase; color: var(--twobl-text-heading); margin: 0 0 0.375rem; }
.twobl-epi-speaker__role {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--twobl-text-heading-2);
	margin: 0 0 1.25rem;
}
.twobl-epi-speaker__bio {
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--twobl-text-heading-2);
	margin: 0;
}
@media (max-width: 900px) {
	.twobl-epi-speaker { flex-basis: 100%; }
}
@media (max-width: 640px) {
	.twobl-epi-meta { flex-direction: column; align-items: stretch; }
	.twobl-epi-meta__item { border-left: 0; padding-left: 0; border-top: 1px solid var(--twobl-bg); padding-top: 1.5rem; }
	.twobl-epi-meta__item:first-child { border-top: 0; padding-top: 0; }
}

/* ---- 19. Contact page ---- */
.twobl-contactpage__hero {
	padding-block: clamp(9.5rem, 11vw, 14rem) clamp(5rem, 8vw, 9rem);
	background: var(--twobl-green);
}
.twobl-contactpage__hero-eyebrow {
	text-align: center;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	/* font-size: 0.9375rem; */
	/* letter-spacing: 0.05em; */
	color: var(--twobl-slate);
	margin: 0 0 3.25rem;
}
.twobl-contactpage__hero-title {
	font-family: var(--twobl-font-heading);
	font-size: clamp(4.5rem, 11vw, 9.25rem);
	line-height: 0.88;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--twobl-slate);
	text-align: center;
	max-width: 82rem;
	margin: 0 auto 4rem;
}
.twobl-contactpage__hero-subtitle {
	text-align: center;
	font-family: var(--twobl-font-body);
	font-weight: 500;
	font-size: 1.2rem;
	color: var(--twobl-text-heading-2);
	margin: 0;
}
@media (max-width: 600px) {
	.twobl-contactpage__hero-title { font-size: clamp(2rem, 9.5vw, 2.75rem); margin-bottom: 2.5rem; }
	.twobl-contactpage__hero-subtitle { font-size: var(--twobl-fs-body); }
	.twobl-contactpage__hero-eyebrow {
		margin: 0 0 2.25rem !important;
	}
}
.twobl-contactpage__top { padding-top: var(--twobl-space-lg); }
.twobl-contactpage__bottom { padding-bottom: var(--twobl-space-lg); }
.twobl-contactpage__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: stretch;
	margin-bottom: clamp(4rem, 7vw, 6rem);
}
@media (max-width: 960px) {
	.twobl-contactpage__main { grid-template-columns: 1fr; }
}
.twobl-contactpage__banner {
	border-radius: 20px;
	overflow: hidden;
	margin-bottom: 2rem;
}
.twobl-contactpage__banner img { width: 100%; height: auto; display: block; border-radius: 20px; }

/* Dubai HQ Card Frame */
.twobl-contactpage__hqcard {
	border: 1px solid #7B8C93;
	border-radius: 20px;
	padding: 2.25rem 2rem;
	background: #F4F7F8;
}
.twobl-contactpage__location-heading {
	font-family: var(--twobl-font-heading);
	font-size: clamp(1.85rem, 3.2vw, 2.45rem);
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: 0 0 1rem;
}
.twobl-contactpage__address {
	font-family: var(--twobl-font-body);
	font-size: 0.9375rem;
	line-height: 1.45;
	color: #5A6B72;
	width: 100%;
	max-width: 25rem;
	margin: 0 0 1.25rem;
}
.twobl-contactpage__viewmap {
	display: inline-flex;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 0.9375rem;
	color: var(--twobl-green);
	text-decoration: none;
	margin-bottom: 1.75rem;
	transition: opacity 0.2s ease;
}
.twobl-contactpage__viewmap:hover { opacity: 0.8; text-decoration: underline; }
.twobl-contactpage__details { border-top: 1px solid #7B8C93; }
.twobl-contactpage__detail-row {
	display: flex;
	gap: 1.5rem;
	padding-block: 0.85rem;
	border-bottom: 1px solid #7B8C93;
}
.twobl-contactpage__detail-row:last-child {
	border-bottom: 0;
}
.twobl-contactpage__detail-label {
	flex-shrink: 0;
	width: 6.5rem;
	font-family: var(--twobl-font-body);
	font-weight: 500;
	font-size: 0.875rem;
	color: #5A6B72;
	margin: 0;
}
.twobl-contactpage__detail-value {
	font-family: var(--twobl-font-body);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--twobl-slate);
	margin: 0;
}

/* Green outer form card */
.twobl-contactpage__form-container {
	background: var(--twobl-green);
	border-radius: 24px;
	padding: 2.5rem 2rem;
	text-align: center;
}
.twobl-contactpage__form-title {
	font-family: var(--twobl-font-heading);
	font-size: clamp(1.75rem, 3.2vw, 2.5rem);
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--twobl-white);
	margin: 0 0 1.75rem;
	text-align: center;
}
.twobl-contactpage__form-inner {
	background: var(--twobl-white);
	border-radius: 20px;
	padding: 2rem 1.75rem 4rem;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.06);
}
.twobl-contactpage__form-inner .twobl-contact__form {
	align-items: stretch;
}
.twobl-contactpage__form-inner .twobl-contact__field,
.twobl-contactpage__form-inner .twobl-contact__submit {
	max-width: none;
}

.twobl-contactpage__otherlocations-heading {
	font-family: var(--twobl-font-heading);
	font-size: clamp(2.5rem, 5vw, 4rem);
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: 0 0 clamp(2.5rem, 5vw, 4rem);
}
.twobl-contactpage__locations {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(2rem, 4vw, 3.5rem);
}
@media (max-width: 860px) {
	.twobl-contactpage__locations { 
		grid-template-columns: minmax(0, 1fr);
	}
	.twobl-contactpage__form-container,
	.twobl-contactpage__hqcard {
		padding-right: 1rem;
		padding-left: 1rem;
	}
}
.twobl-contactpage__location-col {
	padding-left: clamp(1.5rem, 3vw, 2.75rem);
	border-left: 1px solid #7B8C93;
}
.twobl-contactpage__location-col:first-child { padding-left: 0; border-left: 0; }
@media (max-width: 860px) {
	.twobl-contactpage__location-col { padding-left: 0; border-left: 0; padding-top: 2rem; border-top: 1px solid #EBEFF1; }
	.twobl-contactpage__location-col:first-child { padding-top: 0; border-top: 0; }
}
/* ---- 20. Programmes and Experiences ---- */
.twobl-pe-hero__eyebrow {
	text-align: center;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.0625rem;
	color: var(--twobl-text-heading);
	margin: 0 0 2rem;
}
.twobl-pe-hero__subtitle {
	text-align: center;
	font-family: var(--twobl-font-alt);
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-heading-2);
	margin: 1.25rem 0 .8rem;
}
.twobl-pe-hero__cta { display: flex; justify-content: center; }

.twobl-prog-listintro { padding-top: var(--twobl-space-lg); }
.twobl-pe-intro {
	display: grid;
	grid-template-columns: minmax(0, 34.3125rem) 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
@media (max-width: 900px) {
	.twobl-pe-intro { grid-template-columns: 1fr; }
}
@media (min-width: 900px) {
	.twobl-pe-intro__media {
		height: 400px;
	}
}
.twobl-pe-intro__media {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
}
.twobl-pe-intro__media > img { width: 100%; height: 100%; display: block; object-fit: cover;}
.twobl-pe-intro__play {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.twobl-pe-intro__play img { display: block; width: clamp(64px, 12vw, 103px); height: auto; }
.twobl-pe-intro__title { margin: 0 0 1.5rem; }
.twobl-pe-intro__body p { font-family: var(--twobl-font-alt); font-size: 1.0625rem; line-height: 1.7; color: var(--twobl-text-heading-2); }
.twobl-pe-intro__body p + p { margin-top: 1.25rem; }

.twobl-pe-jumpnav-wrap { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.twobl-pe-jumpnav__toggle { display: none; }
.twobl-pe-jumpnav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}
.twobl-pe-jumpnav__pill { text-decoration: none; }

@media (max-width: 780px) {
	.twobl-pe-jumpnav-wrap { position: relative; }
	.twobl-pe-jumpnav__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		width: 100%;
		padding: 1rem 1.5rem;
		border: 1px solid var(--twobl-stroke-dark);
		border-radius: 999px;
		background: var(--twobl-white);
		font-family: var(--twobl-font-body);
		font-weight: 700;
		font-size: 1.0625rem;
		color: var(--twobl-slate);
		cursor: pointer;
	}
	.twobl-pe-jumpnav__toggle svg { transition: transform 0.2s ease; flex-shrink: 0; }
	.twobl-pe-jumpnav-wrap[data-open] .twobl-pe-jumpnav__toggle svg { transform: rotate(180deg); }
	.twobl-pe-jumpnav {
		flex-direction: column;
		align-items: stretch;
		gap: 0.75rem;
		margin-top: 0.75rem;
		padding: 1rem;
		border-radius: 20px;
		background: var(--twobl-white);
		box-shadow: var(--twobl-shadow);
		display: none;
	}
	.twobl-pe-jumpnav-wrap[data-open] .twobl-pe-jumpnav { display: flex; }
	.twobl-pe-jumpnav__pill { text-align: center; }
}

.twobl-pe-section {
	padding-block: clamp(3rem, 6vw, 4.5rem);
	scroll-margin-top: calc(var(--twobl-sticky-top) + 1rem);
}
.twobl-pe-section--dark { background: var(--twobl-slate); }
.twobl-pe-section__layout {
	display: grid;
	grid-template-columns: minmax(0, 33.75rem) 1fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}
@media (max-width: 900px) {
	.twobl-pe-section__layout { grid-template-columns: 1fr; }
}
.twobl-pe-section__sticky {
	position: sticky;
	top: var(--twobl-sticky-top);
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: clamp(1rem, 2vw, 1.75rem);
	align-items: start;
}
@media (max-width: 900px) {
	.twobl-pe-section__sticky { position: static; }
}
.twobl-pe-section__count {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--twobl-stroke-dark);
	line-height: 1.2;
}
.twobl-pe-section__title { margin: 0 0 1.25rem; }
.twobl-pe-section__body p { font-family: var(--twobl-font-alt); font-size: 1.0625rem; line-height: 1.7; color: var(--twobl-text-heading-2); }
.twobl-pe-section--dark .twobl-pe-section__title { color: var(--twobl-white); }
.twobl-pe-section--dark .twobl-pe-section__body p { color: var(--twobl-text-on-dark); }
.twobl-pe-section__body p + p { margin-top: 1.25rem; }

.twobl-pe-cards { display: flex; flex-direction: column; align-items: flex-end; gap: 2rem; }
.twobl-pe-card {
	background: var(--twobl-white);
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 20px;
	overflow: hidden;
	max-width: 26.25rem;
}
.twobl-pe-card__media { position: relative; height: 180px; }
.twobl-pe-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.twobl-pe-card__badge {
	position: absolute;
	left: 2rem;
	bottom: -30px;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: var(--twobl-white);
	border: 1px solid var(--twobl-bg);
	box-shadow: 0 6px 16px rgba(27, 41, 48, 0.12);
	display: flex;
	align-items: center;
	justify-content: center;
}
.twobl-pe-card__badge img { width: 32px; height: 32px; }
.twobl-pe-card__body { padding: 2.75rem 2rem 2rem; }
.twobl-pe-card__title { margin: 0 0 1rem; }
.twobl-pe-card__label {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1rem;
	color: var(--twobl-text-heading);
	margin: 0;
}
.twobl-pe-card__benefits { margin: 0 0 1.75rem; }
.twobl-pe-card__benefit {
	padding-top: 0.8rem;
	border-top: 1px solid var(--twobl-bg);
	font-family: var(--twobl-font-alt);
	font-size: 0.8125rem;
	letter-spacing: 0.03em;
	color: var(--twobl-text-body, #4C5C63);
}
.twobl-pe-card__benefit:last-child { border-bottom: 0; }
.twobl-pe-card .btn { width: 100%; }
.twobl-pe-card__excerpt {
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--twobl-text-body, #4C5C63);
	margin: 0 0 1.75rem;
}

/* ---- 21. About Us ---- */

.twobl-about__hero h1 { font-size: var(--twobl-fs-h2); }

.twobl-about-hero__subtitle {
	text-align: center;
	font-family: var(--twobl-font-alt);
	/* font-size: 1.0625rem; */
	color: var(--twobl-text-heading-2);
	max-width: 74ch;
	margin: 1.25rem auto 0;
}

.twobl-about-split {
	display: grid;
	grid-template-columns: minmax(0, 40rem) minmax(0, 33rem);
	justify-content: space-between;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
.twobl-about-split + .twobl-about-split { margin-top: clamp(3rem, 6vw, 5rem); }
.twobl-about-split--full { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 900px) {
	
	.twobl-about-split { grid-template-columns: 1fr; }
}
.twobl-about-split__eyebrow {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--twobl-text-heading);
	/* margin: 0 0 2rem; */
}
.twobl-about-split__quote { margin: 0 0 1.25rem; }
.twobl-about-split__body {
	font-family: var(--twobl-font-alt);
	/* font-size: 1.0625rem; */
	line-height: 1.6;
	/* color: var(--twobl-text-heading-2); */
	margin: 0;
}
.twobl-about-split__media { border-radius: 20px; overflow: hidden; aspect-ratio: 531/710; }
.twobl-about-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.twobl-about-values__label {
	margin: 0 0 1rem;
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: normal;
	text-transform: none;
	color: var(--twobl-stroke-dark);
}

.twobl-about-values__intro {
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	max-width: 26ch;
	color: var(--twobl-text-heading-2);
	margin-top: 2rem;
}
.twobl-epi-section--tint .twobl-about-values__intro { color: var(--twobl-text-on-dark); }
.twobl-about-values .twobl-epi-2col { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
.twobl-about-values .twobl-about-values__intro { font-family: var(--twobl-font-body); font-size: var(--twobl-fs-body); line-height: 1.4; max-width: 36ch; }
.twobl-about-values .twobl-epi-included__list--narrow { max-width: none; }
.twobl-about-values .twobl-epi-included-card { padding: clamp(2rem, 3vw, 2.75rem) clamp(1.5rem, 3.5vw, 3rem); }
.twobl-about-values .twobl-epi-included-card__num { font-family: var(--twobl-font-body); font-size: clamp(1.25rem, 1.6vw, 1.5rem); font-weight: 600; line-height: 1.3; margin-bottom: 0.75rem; }
.twobl-about-values .twobl-epi-included-card__desc { font-size: 1.125rem; line-height: 1.6; }
@media (max-width: 900px) {
	.twobl-about-values .twobl-epi-2col { grid-template-columns: 1fr; }
}

.twobl-about-award-year { margin-bottom: 2rem; }
.twobl-about-award-year:last-child { margin-bottom: 0; }
.twobl-about-award-year__year { margin: 0 0 1rem; padding-bottom: 0.9375rem; border-bottom: 1px solid rgba(16, 22, 47, 0.08); }
.twobl-about-award-year__item {
	padding-block: 0.9375rem;
	border-top: 1px solid rgba(16, 22, 47, 0.08);
	font-family: var(--twobl-font-alt);
	font-size: 1.0625rem;
	color: var(--twobl-text-heading-2);
}
.twobl-about-award-year__item strong { font-weight: 700; }
/* CSS-generated hyphen, not literal text — see the comment in render.php. */
.twobl-about-award-year__detail::before { content: " - "; }

.twobl-about-award-year__year + .twobl-about-award-year__item { border-top: 0; padding-top: 0; }

.twobl-about-accreditations { display: flex; flex-direction: column; }
.twobl-about-accred {
	display: grid;
	grid-template-columns: 182px 1fr;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: center;
	padding-block: clamp(1.75rem, 3.5vw, 2.75rem);
	border-top: 1px solid rgba(16, 22, 47, 0.08);
}
.twobl-about-accreditations .twobl-about-accred:first-child { border-top: 0; padding-top: 0; }

.twobl-about-accreditations-section { border-top: 1px solid rgba(16, 22, 47, 0.08); }
@media (max-width: 600px) {
	
	.twobl-about-accred { grid-template-columns: 1fr; align-items: start; }
}

.twobl-about-accred__media {
	width: 182px;
	height: 148px;
	border: 1px solid var(--twobl-bg);
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 6px;
}

.twobl-about-accred__media img { max-width: 100%; max-height: 100%; object-fit: contain; }
.twobl-about-accred__title {
	font-family: var(--twobl-font-heading);
	font-size: 30px;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--twobl-text-heading);
	margin: 0 0 0.5rem;
}
.twobl-about-accred__desc {
	font-family: var(--twobl-font-alt);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--twobl-text-heading-2);
	margin: 0 0 0.75rem;
}

.twobl-about-accred__link.btn {
	padding: 0.6rem 1.5rem;
	font-size: 0.875rem;
}

/* ---- 22. 2bAPC (Coach Certification) ---- */
.twobl-apac-section--dark { background: var(--twobl-slate); }
.twobl-apac-section--dark h2,
.twobl-apac-section--dark h3 { color: var(--twobl-white); }
.twobl-apac-section--dark p,
.twobl-apac-section--dark .twobl-epi-2col__body ul { color: var(--twobl-text-on-dark); }
.twobl-apac-section--dark .twobl-epi-progcard {
	background: transparent;
	border-color: rgba(189, 209, 217, 0.35);
}
.twobl-apac-section--dark .twobl-epi-progcard__value { color: var(--twobl-green); }

.twobl-apac-photo-circle {
	border-radius: 50%;
	overflow: hidden;
	aspect-ratio: 1;
}
.twobl-apac-photo-circle img { width: 100%; height: 100%; object-fit: cover; display: block; }

.twobl-apac-photo-ring {
	position: relative;
	border-radius: 50%;
	aspect-ratio: 1;
	background: var(--twobl-yellow);
	padding: clamp(1rem, 3vw, 1.75rem);
	display: flex;
	align-items: center;
	justify-content: center;
}
.twobl-apac-photo-ring img {
	width: 80%;
	height: 80%;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.twobl-apac-cta {
	position: relative;
	overflow: hidden;
	/* Keeps the discs' Screen blend inside this section rather than compositing
	against whatever sits behind it in the page. */
	isolation: isolate;
	text-align: center;
	padding-block: clamp(4.5rem, 9vw, 9rem);
}
/* Wide enough to hold "READY TO BEGIN YOUR" on one line at the largest heading
size -- at 50rem it wrapped into four lines on screens above ~1500px. The body
keeps its own narrower max-width. */
.twobl-apac-cta__inner { position: relative; z-index: 1; max-width: 60rem; margin: 0 auto; }
.twobl-apac-cta__body {
	font-family: var(--twobl-font-alt);
	font-size: 1.0625rem;
	color: var(--twobl-text-heading-2);
	/* Narrower than the heading so the copy wraps as Figma does -- measured: any
	width from 688px to 712px reproduces Figma's three line breaks exactly. */
	max-width: 43.75rem;
	margin: 1.5rem auto 2.5rem;
}

/* ---- Book a discovery call modal --------------------------------------- */
.twobl-modal {
	width: min(51.25rem, calc(100vw - 2rem));   /* 820px card on desktop */
	max-width: none;
	max-height: calc(100dvh - 2rem);
	padding: 0;
	border: 0;
	border-radius: 16px;
	overflow: hidden;
	background: var(--twobl-white);
	box-shadow: 0 24px 64px rgba(27, 41, 48, 0.22);
	color: var(--twobl-text-body);
}
.twobl-modal::backdrop {
	background: rgba(27, 41, 48, 0.55);
	backdrop-filter: blur(2px);
}

.twobl-modal[open] {
	display: flex;
	flex-direction: column;
}
.twobl-modal__inner {
	display: grid;
	grid-template-columns: 42% 58%;   /* measured off the Figma desktop frame */
	flex: 1 1 auto;
	min-height: 0;
}
.twobl-modal__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--twobl-green);
	padding: 2rem;
}
.twobl-modal__logo { position: relative; display: inline-block; line-height: 0; }
.twobl-modal__logo-mark { display: block; width: 135px; height: auto; }
.twobl-modal__logo-word {
	position: absolute;
	left: 61.2%;
	top: 20.8%;
	width: 70.9%;
	height: auto;
}
.twobl-modal__panel {
	position: relative;
	padding: 2.75rem 3rem 2.25rem;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.twobl-modal__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 50%;
	color: var(--twobl-slate);
	cursor: pointer;
}
.twobl-modal__close:hover { background: var(--twobl-bg); }
.twobl-modal__title {
	font-family: var(--twobl-font-heading);
	font-size: 2rem;
	line-height: 1.05;
	text-transform: uppercase;
	text-align: center;
	color: var(--twobl-slate);
	margin: 0 0 0.75rem;
}
.twobl-modal__title br { display: none; }
.twobl-modal__body {
	font-family: var(--twobl-font-body);
	font-size: 0.9375rem;
	line-height: 1.5;
	text-align: center;
	color: var(--twobl-text-body);
	margin: 0 0 1.5rem;
}
/* Cohort booking modal: the chosen intake, in place of the description */
.twobl-modal__cohort {
	font-family: var(--twobl-font-body);
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.4;
	text-align: center;
	color: var(--twobl-text-heading);
	background: var(--twobl-bg);
	border-radius: 999px;
	padding: 0.5rem 1.25rem;
	margin: 0 auto 1.5rem;
	width: fit-content;
	max-width: 100%;
}
.twobl-modal__form { max-width: 22rem; margin-inline: auto; }
.twobl-modal__submit { width: 100%; }

/* ---- Case study video popup ---------------------------------------------*/
.twobl-video-modal {
	width: min(64rem, calc(100vw - 2rem));   /* 1024px, wide enough for 16:9 at a readable size */
	padding: 0;
	overflow: visible;
}

.twobl-video-modal--portrait {
	width: min(24rem, calc((100vh - 6rem) * 9 / 16), calc(100vw - 2rem));
}
.twobl-video-modal__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 12px;
	overflow: hidden;
	background: #000;
}
.twobl-video-modal--portrait .twobl-video-modal__frame {
	aspect-ratio: 9 / 16;
}
.twobl-video-modal__frame iframe,
.twobl-video-modal__frame video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.twobl-video-modal__close {
	top: -3.25rem;
	right: 0;
	background: none;
	box-shadow: none;
	color: var(--twobl-white);
}
.twobl-video-modal__close:hover { background: rgba(255, 255, 255, 0.15); }
@media (max-width: 640px) {
	.twobl-video-modal { overflow: hidden; }
	.twobl-video-modal__close {
		top: 0.5rem;
		right: 0.5rem;
		background: var(--twobl-white);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
		color: var(--twobl-slate);
	}
	.twobl-video-modal__close:hover { background: var(--twobl-bg); }
}

@media (max-width: 780px) {
	.twobl-modal {
		width: calc(100vw - 2.5rem);
		border-radius: 24px;
	}
	.twobl-modal__inner { grid-template-columns: 1fr; }
	.twobl-modal__brand { display: none; }
	.twobl-modal__panel { padding: 2.5rem 1.25rem 1.75rem; }
	.twobl-modal__title { font-size: 2.25rem; }
	.twobl-modal__title br { display: inline; }
	.twobl-modal__form { max-width: none; }
	.twobl-modal { max-height: calc(100dvh - 1.5rem); }
	.twobl-modal__panel { padding-top: 1.75rem; padding-bottom: 1rem; }
	.twobl-modal__title { font-size: 2rem; }
	.twobl-modal__body { font-size: 0.875rem; margin-bottom: 0.75rem; }
	.twobl-modal .twobl-contact__field input,
	.twobl-modal .twobl-contact__field select { height: 48px; }
	.twobl-modal .twobl-contact__field--message textarea { min-height: 64px; height: 64px; }
	.twobl-modal .twobl-contact__submit { height: 52px; }
}
@media (max-width: 780px) and (max-height: 620px) {
	.twobl-modal__body { display: none; }
}
body.twobl-modal-open { overflow: hidden; }
/* ---- 2bAPC (ICF Certified Coach) page ---- */
.twobl-apac .twobl-bloglist__hero {
	padding-block: clamp(6rem, 12.4vw, 10rem) clamp(3rem, 4.4vw, 7rem);
}
.twobl-apac .twobl-pe-hero__eyebrow { margin-bottom: 3rem; }
.twobl-apac-intro {
	background: var(--twobl-white);
	padding-block: var(--twobl-space-lg);
}
.twobl-apac .twobl-epi-programme {
	grid-template-columns: repeat(2, 1fr);
	max-width: 66.5rem;
	margin-inline: auto;
}
.twobl-apac .twobl-epi-progcard { min-height: 0; }
.twobl-apac .twobl-about-accred { border-top-color: #1B2930; }
.twobl-apac .twobl-about-accred__media { border-color: #66757B; }
.twobl-apac .twobl-about-accreditations .twobl-about-accred:last-child { padding-bottom: 0; }

/* FAQ rules are a solid mid-grey here, not the near-white --twobl-bg hairline */
.twobl-apac .twobl-epi-faq__item { border-bottom-color: #66757B; }
.twobl-apac-badge { display: block; border-top: 0; padding-top: 0; }
.twobl-apac-badge .twobl-about-accred__media {
	width: 100%;
	margin-top: 40px;
	max-width: 32rem;
	height: auto;
	aspect-ratio: 560 / 435;
	border-radius: 20px;
}
.twobl-apac-why__grid {
	grid-template-columns: minmax(0, 1fr) 560px;
	gap: 6rem;
	align-items: center;
	padding-block: clamp(4rem, 9vw, 8.75rem);
}
.twobl-apac-why__cta { margin-top: 2.5rem; }
.twobl-apac-why__media { position: relative; }
/* Same dot grid as the hero, recoloured to a single light tone via mask */
.twobl-apac-why__dots {
	position: absolute;
	width: 30%;
	aspect-ratio: 297 / 180;
	background-color: rgba(255, 255, 255, 0.35);
	-webkit-mask-image: url("../images/dots-hero.png");
	mask-image: url("../images/dots-hero.png");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	pointer-events: none;
}
.twobl-apac-why__dots--a { left: -3%; top: 2%; }
.twobl-apac-why__dots--b { right: -3%; bottom: 2%; }
@media (max-width: 960px) {
	.twobl-apac-why__grid { grid-template-columns: 1fr; gap: 3rem; }
	.twobl-apac-why__media { max-width: 28rem; margin-inline: auto; }
}
.twobl-apac-delivers__intro {
	max-width: 38rem;
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
	text-align: center;
	font-family: var(--twobl-font-alt);
	font-size: 18px;
	line-height: 1.5;
	color: var(--twobl-text-on-dark);
}
.twobl-apac-delivers__intro p { margin: 0; font-size: var(--twobl-fs-body);}
.twobl-apac-delivers__intro p + p { margin-top: 1.5rem; }
@media (max-width: 700px) {
	.twobl-apac .twobl-epi-programme { grid-template-columns: 1fr; }
}
.twobl-apac-cohorts { background: var(--twobl-bg); }
.twobl-apac-cohorts .twobl-epi-cohort-filters {
	background: var(--twobl-white);
	border-color: #DDE3E5;
}

/* ---- 2bAPC page: Figma sections ---- */
.twobl-apac-lead {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.55;
	color: var(--twobl-text-heading);
	margin: 1.25rem 0 0;
}
/* Figma sets this heading at the H2 scale and lets it wrap after "WHO" */
.twobl-apac-coachheading { max-width: 60rem; margin-inline: auto; }
.twobl-apac-intro-copy {
	max-width: 36rem;
	margin: 0 auto;
	text-align: center;
	font-family: var(--twobl-font-alt);
	font-size: var(--twobl-fs-body);
	line-height: 1.5;
	color: var(--twobl-text-heading-2);
}
.twobl-apac-intro-copy p + p { margin-top: 1.25rem; }
.twobl-apac-subheading {
	text-align: center;
	text-transform: uppercase;
	color: var(--twobl-slate);
	margin: clamp(2rem, 4vw, 3rem) 0 clamp(1.5rem, 3vw, 2.5rem);
}
/* Inset grid: ~420px cards, per Figma */
.twobl-apac-coachgrid {
	grid-template-columns: repeat(2, 1fr);
	max-width: 54.5rem;
	margin-inline: auto;
}
@media (max-width: 700px) {
	.twobl-apac-coachgrid { grid-template-columns: 1fr; }
}

/* ---- Programme page modules ---- */
.twobl-prog__lead {
	font-weight: 700;
	font-size: var(--twobl-fs-body);
	color: var(--twobl-text-heading);
	margin-bottom: 2rem;
}
.twobl-apac-section--dark .twobl-prog__lead { color: var(--twobl-white); }
.twobl-prog__cta { margin-top: 3.5rem; }
.twobl-prog-delivers {
	padding-top: var(--twobl-space-xl);
	padding-bottom: clamp(3rem, 7vw, 7rem);
}
.twobl-prog-delivers__photo { max-width: 69.375rem; }
/* Even lines whatever the client types, instead of a fixed width that only suits this wording */
.twobl-prog-accred__heading { text-wrap: balance; }
.twobl-progtype { padding-block: var(--twobl-space-lg); }
.twobl-progtype__intro {
	max-width: 44rem;
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
	text-align: center;
	font-family: var(--twobl-font-alt);
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--twobl-text-heading-2);
}
/* Full width here, so cards flow in rows and centre whatever the count */
.twobl-progtype__cards {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 2rem;
}
/* Three across 1320px; flex-grow 0 keeps a lone last card the same width */
.twobl-progtype__cards .twobl-pe-card {
	flex: 0 1 calc((100% - 4rem) / 3);
	max-width: 26.25rem;
	display: flex;
	flex-direction: column;
}
@media (max-width: 1100px) {
	.twobl-progtype__cards .twobl-pe-card { flex-basis: calc((100% - 2rem) / 2); }
}
@media (max-width: 700px) {
	.twobl-progtype__cards .twobl-pe-card { flex-basis: 100%; }
}
.twobl-progtype__cards .twobl-pe-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
}
/* Buttons line up across a row even when the benefit lists differ in length */
.twobl-progtype__cards .twobl-pe-card__body .btn { margin-top: auto; }
.twobl-progtype__empty {
	text-align: center;
	font-family: var(--twobl-font-body);
	color: var(--twobl-text-supporting);
	padding-block: clamp(2rem, 5vw, 4rem);
}
.twobl-prog-intro__image { margin: 2rem 0 0; }
.twobl-prog-intro__image img { display: block; width: 100%; height: auto; border-radius: 20px; }
/* Swap which side the heading column sits on without changing DOM order */
.twobl-prog-intro--flip { grid-template-columns: minmax(0, 1fr) 596px; }
.twobl-prog-intro--flip .twobl-prog-intro__side { order: 2; }
.twobl-prog-intro--flip .twobl-epi-2col__body { order: 1; }
@media (max-width: 960px) {
	.twobl-prog-intro--flip { grid-template-columns: 1fr; }
	.twobl-prog-intro--flip .twobl-prog-intro__side,
	.twobl-prog-intro--flip .twobl-epi-2col__body { order: 0; }
}
.twobl-prog-mediatext--left .twobl-apac-why__grid { grid-template-columns: 560px minmax(0, 1fr); }
@media (max-width: 960px) {
	.twobl-prog-mediatext--left .twobl-apac-why__grid { grid-template-columns: 1fr; }
}

.twobl-apac-figure { position: relative; justify-self: center; max-width: 32.5rem; width: 100%; }
.twobl-apac-figure .twobl-apac-photo-circle { position: relative; z-index: 1; max-width: none; }
.twobl-apac-figure__decor {
	position: absolute;
	z-index: 0;                          /* both discs sit BEHIND the photo, as in Figma */
	height: auto;
}
.twobl-apac-figure__decor--green { width: 17%; top: -3%; left: 14%; }
.twobl-apac-figure__decor--blue { width: 30%; bottom: -1%; right: 2%; }

.twobl-apac-gain { align-items: start; }
.twobl-apac-gain__media {
	position: relative;
	justify-self: center;
	align-self: start;
	width: 100%;
	max-width: 27rem;
}
.twobl-apac-gain__shape {
	/* Same width as the photo, dropped 59% of that width down it -- the capsule
	runs well below the circle in Figma rather than sitting behind it. */
	display: block;
	width: 100%;
	margin-top: 59%;
	height: auto;
}
.twobl-apac-gain__photo {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
}
@media (max-width: 900px) {
	.twobl-apac-gain__media { max-width: 22rem; margin-top: 2.5rem; }
}

.twobl-apac-cta {
	background: linear-gradient(180deg, #FFFFFF 0%, var(--twobl-green) 100%);
}
.twobl-apac-cta__blob {
	position: absolute;
	z-index: 0;
	width: 60%;
	aspect-ratio: 992 / 991;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 0, 0, 0) 13%, #B7E774 100%);
	mix-blend-mode: screen;
	pointer-events: none;
}
.twobl-apac-cta__blob--tl { 
	top: 0; 
	left: -35%; 
	transform: translateY(-50%); 
}
.twobl-apac-cta__blob--br { 
	bottom: 0; 
	right: -35%; 
	transform: translateY(50%); 
}

.twobl-apac-cta .btn--outline { --btn-flair: var(--twobl-slate); }
.twobl-apac-cta .btn--outline:hover,
.twobl-apac-cta .btn--outline:focus-visible {
	color: var(--twobl-white);
	border-color: var(--twobl-slate);
}
.twobl-apac-eventgallery { margin-top: 0; }
@media (min-width: 961px) {
	.twobl-apac-eventgallery { position: static; margin-top: 0; }
}

/* ---- 404 ---- */
.twobl-404__hero .twobl-404__inner {
	align-items: center;
	text-align: center;
	gap: 1.25rem;
	padding-block: 2rem 1rem;
}
.twobl-404__code {
	font-family: var(--twobl-font-heading);
	font-size: clamp(7rem, 20vw, 15rem);
	line-height: 0.85;
	/* letter-spacing: -0.02em; */
	color: var(--twobl-white);
	margin: 0;
	margin-bottom: 25px;
}
.twobl-404__title { color: var(--twobl-slate); max-width: 16ch; margin: 0 auto; text-wrap: balance; }
.twobl-404__body {
	font-family: var(--twobl-font-alt);
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--twobl-slate);
	max-width: 34rem;
	margin: 0 auto;
}
.twobl-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 0.75rem;
}
.twobl-404__popular { padding-block: var(--twobl-space-lg); }
.twobl-404__popular-title { text-align: center; text-transform: uppercase; color: var(--twobl-slate); margin: 0 0 2rem; }
.twobl-404__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
}
.twobl-404__link {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	height: 100%;
	padding: 1.5rem;
	border: 1px solid var(--twobl-stroke-dark);
	border-radius: 20px;
	color: var(--twobl-slate);
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
.twobl-404__link:hover,
.twobl-404__link:focus-visible { background-color: var(--twobl-green-light-active); border-color: var(--twobl-green); }
.twobl-404__link svg { flex-shrink: 0; margin-top: 0.2rem; transition: transform 0.2s ease; }
.twobl-404__link:hover svg,
.twobl-404__link:focus-visible svg { transform: translateX(4px); }
.twobl-404__link-text { display: flex; flex-direction: column; gap: 0.35rem; }
.twobl-404__link-title { font-family: var(--twobl-font-body); font-weight: 700; font-size: 1.0625rem; }
.twobl-404__link-desc { font-family: var(--twobl-font-alt); font-size: 0.9375rem; line-height: 1.5; color: var(--twobl-text-heading-2); }
@media (max-width: 1024px) {
	.twobl-404__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.twobl-404__links { grid-template-columns: 1fr; }
	.twobl-404__actions .btn { width: 100%; justify-content: center; }
}
.twobl-2b { text-transform: none; }
.twobl-para + .twobl-para { margin-top: 1em; }

.twobl-progvideo__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.twobl-progvideo--flip .twobl-progvideo__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.twobl-progvideo--flip .twobl-progvideo__text { order: 2; }
.twobl-progvideo--stacked .twobl-progvideo__grid,
.twobl-progvideo--no-video .twobl-progvideo__grid { grid-template-columns: minmax(0, 1fr); }
.twobl-progvideo--stacked .twobl-progvideo__grid { gap: clamp(2rem, 4vw, 3rem); }
.twobl-progvideo--stacked .twobl-progvideo__text { max-width: 50rem; margin-inline: auto; text-align: center; }
@media (max-width: 900px) {
	.twobl-progvideo__grid,
	.twobl-progvideo--flip .twobl-progvideo__grid { grid-template-columns: minmax(0, 1fr); }
	.twobl-progvideo--flip .twobl-progvideo__text { order: 0; }
}
.twobl-progvideo__title { margin: 0 0 1.5rem; }
.twobl-progvideo__body p,
.twobl-progvideo__body li { font-family: var(--twobl-font-body); font-size: var(--twobl-fs-body); line-height: 1.4; color: var(--twobl-text-heading-2); }
.twobl-progvideo__body p { margin: 0; }
.twobl-progvideo__body p + p,
.twobl-progvideo__body ul,
.twobl-progvideo__body ol { margin-top: 1.25rem; }
.twobl-progvideo__body ul,
.twobl-progvideo__body ol { padding-left: 1.375rem; margin-bottom: 0; }
.twobl-progvideo--stacked .twobl-progvideo__body ul,
.twobl-progvideo--stacked .twobl-progvideo__body ol { text-align: left; display: inline-block; }
.twobl-apac-section--dark .twobl-progvideo__body li { color: var(--twobl-text-on-dark); }

.twobl-progvideo__player {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	padding: 0;
	border: 0;
	border-radius: 20px;
	overflow: hidden;
	background: var(--twobl-slate);
	cursor: pointer;
}
.twobl-apac-section--dark .twobl-progvideo__player { box-shadow: 0 0 0 1px var(--twobl-stroke-dark); }
.twobl-progvideo__cover {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}
.twobl-progvideo__play {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease;
}
.twobl-progvideo__play img { display: block; width: clamp(64px, 9vw, 103px); height: auto; }
.twobl-progvideo__player:hover .twobl-progvideo__cover,
.twobl-progvideo__player:focus-visible .twobl-progvideo__cover { transform: scale(1.03); }
.twobl-progvideo__player:hover .twobl-progvideo__play,
.twobl-progvideo__player:focus-visible .twobl-progvideo__play { transform: translate(-50%, -50%) scale(1.08); }
.twobl-progvideo__player:focus-visible { outline: 3px solid var(--twobl-green); outline-offset: 4px; }

.twobl-events__intro { max-width: 50rem; margin: -1.5rem auto clamp(2rem, 4vw, 3rem); text-align: center; }
.twobl-events__intro p { font-family: var(--twobl-font-body); font-size: var(--twobl-fs-body); line-height: 1.4; color: var(--twobl-text-heading-2); margin: 0; }
.twobl-events__grid { align-items: stretch; }
.twobl-event-card { display: flex; flex-direction: column; }
.twobl-event-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	border-radius: 20px 20px 0 0;
	overflow: hidden;
	background: var(--twobl-slate);
}
.twobl-event-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.twobl-event-card:hover .twobl-event-card__media img { transform: scale(1.03); }
.twobl-event-card__tag { position: absolute; top: 1rem; right: 1rem; }
.twobl-event-card__tagrow { margin-bottom: 0.75rem; }
.twobl-event-card__tagrow .twobl-event-card__tag { position: static; display: inline-block; background: var(--twobl-green-light); }
.twobl-event-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	background: var(--twobl-white);
	border: 1px solid var(--twobl-stroke-dark);
	border-top: 0;
	border-radius: 0 0 20px 20px;
	padding: 1.5rem 2.5rem 2rem;
}
.twobl-event-card--no-image .twobl-event-card__body { border-top: 1px solid var(--twobl-stroke-dark); border-radius: 20px; }
.twobl-event-card__name { margin: 0 0 1rem; color: var(--twobl-text-heading); }
.twobl-event-card__info { margin-bottom: 1rem; }
.twobl-event-card__info dd { text-align: right; }
.twobl-event-card__btn { width: 100%; margin-top: auto; padding: 14px 2.5rem; color: var(--twobl-white); }
@media (max-width: 640px) {
	.twobl-event-card__body { padding: 1.5rem; }
}

.twobl-textpage .twobl-bloglist__hero { padding-block: clamp(8.5rem, 12.4vw, 10rem) clamp(3rem, 4.4vw, 5rem); }
.twobl-textpage__heading { max-width: 22ch; margin: 0 auto; }
.twobl-textpage .twobl-textpage__hero--photo {
	background: linear-gradient(rgba(27, 41, 48, 0.55), rgba(27, 41, 48, 0.55)), var(--twobl-hero-img) center / cover no-repeat;
}
.twobl-textpage__hero--photo .twobl-bloglist__circle { display: none; }
.twobl-textpage__hero--photo .twobl-textpage__heading { color: var(--twobl-white); }
.twobl-textpage__body::after { content: ""; display: block; clear: both; }
.twobl-textpage__body h2 { clear: both; }
.twobl-textpage__body .twobl-textpage__img {
	float: right;
	width: min(40%, 26rem);
	height: auto;
	margin: 0.25rem 0 1.5rem 2.5rem;
	border-radius: var(--twobl-radius);
}
.twobl-textpage__body a.btn { color: var(--twobl-slate); text-decoration: none; }
.twobl-textpage__body > p:has(> a.btn) { margin-top: 2.5rem; }
@media (max-width: 767px) {
	.twobl-textpage__body .twobl-textpage__img { float: none; display: block; width: 100%; margin: 0 0 1.5rem; }
}
.twobl-textpage__body {
	max-width: 62rem;
	padding-block: clamp(3rem, 6vw, 5rem);
	font-family: var(--twobl-font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--twobl-text-heading-2);
}
.twobl-textpage__body > * { margin-block: 0; }
.twobl-textpage__body > * + * { margin-top: 1.25rem; }
.twobl-textpage__body h2,
.twobl-textpage__body h3,
.twobl-textpage__body h4 { color: var(--twobl-text-heading); scroll-margin-top: calc(var(--twobl-sticky-top) + 1rem); }
.twobl-textpage__body h2 { font-size: 1.875rem; line-height: 1.15; }
.twobl-textpage__body > * + h2 { margin-top: 3.5rem; }
.twobl-textpage__body h3,
.twobl-textpage__body h4 {
	font-family: var(--twobl-font-body);
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.3;
	text-transform: none;
}
.twobl-textpage__body > * + h3,
.twobl-textpage__body > * + h4 { margin-top: 2.25rem; }
.twobl-textpage__body h2 + h3 { margin-top: 1.5rem; }
.twobl-textpage__num { margin-right: 0.35em; }
.twobl-textpage__body h2 strong,
.twobl-textpage__body h3 strong { font-weight: inherit; }
.twobl-textpage__body a { color: var(--twobl-text-heading); text-decoration: underline; text-underline-offset: 3px; }
.twobl-textpage__body a:hover { color: var(--twobl-green-dark-hover); }
.twobl-textpage__body ul,
.twobl-textpage__body ol { padding-left: 1.5rem; }
.twobl-textpage__body li + li { margin-top: 0.4rem; }
.twobl-textpage__body li > ul,
.twobl-textpage__body li > ol { margin-top: 0.4rem; }
.twobl-textpage__body ol[data-textpage-contents] {
	padding: 1.5rem 1.75rem 1.5rem 3.25rem;
	background: #F4F6F4;
	border-radius: 16px;
	columns: 2;
	column-gap: 3rem;
}
.twobl-textpage__body ol[data-textpage-contents] li { break-inside: avoid; }
.twobl-textpage__body ol[data-textpage-contents] a { text-decoration: none; }
.twobl-textpage__body ol[data-textpage-contents] a:hover { text-decoration: underline; }
.twobl-textpage__body figure { margin-inline: 0; overflow-x: auto; }
.twobl-textpage__body table,
.twobl-textpage__body table.has-fixed-layout {
	width: 100%;
	table-layout: auto;
	border-collapse: collapse;
	font-size: 1rem;
	line-height: 1.55;
}
.twobl-textpage__body th,
.twobl-textpage__body td {
	padding: 0.85rem 1rem;
	border: 1px solid #D9DEDF;
	text-align: left;
	vertical-align: top;
	word-break: normal;
	overflow-wrap: break-word;
}
.twobl-textpage__body th { background: #F4F6F4; color: var(--twobl-text-heading); font-weight: 700; }
.twobl-textpage__labelled td:first-child { width: 1%; white-space: nowrap; font-weight: 700; color: var(--twobl-text-heading); }
@media (max-width: 640px) {
	.twobl-textpage__body ol[data-textpage-contents] { columns: 1; }
	.twobl-textpage__body th,
	.twobl-textpage__body td { padding: 0.65rem 0.75rem; }
}
.site-nav a[role="button"] { cursor: pointer; }
.twobl-form-status { margin: 1rem 0 0; font-family: var(--twobl-font-alt); font-size: 0.9375rem; font-weight: 600; color: var(--twobl-slate); }
.twobl-form-status:empty { display: none; }
.twobl-form-status.is-error { color: #b32d2e; }
.site-footer__newsletter-status { margin: 0.75rem 0 0 1.25rem; }
.twobl-thankyou__tick { display: inline-flex; align-items: center; justify-content: center; width: 88px; height: 88px; margin-bottom: 1.5rem; border-radius: 50%; background: var(--twobl-slate); color: var(--twobl-green); }
.twobl-thankyou .twobl-404__title { margin-top: 0; }
@media (max-width: 960px) {
	.site-header--nav-open .site-header__nav { max-height: calc(100vh - 7rem); max-height: calc(100dvh - 7rem); overflow-y: auto; }
	.site-header--nav-open .site-nav { gap: 0; align-items: stretch; }
	.site-header--nav-open .site-nav > li { width: 100%; border-bottom: 1px solid var(--twobl-bg); }
	.site-header--nav-open .site-nav > li:last-child { border-bottom: 0; }
	.site-header--nav-open .site-nav > li > a { display: flex; justify-content: space-between; width: 100%; padding: 0.85rem 0.25rem; font-size: 1.0625rem; color: var(--twobl-slate) !important; }
	.site-header--nav-open .site-nav li.menu-item-has-children > a::after { transition: transform 0.2s ease; }
	.site-header--nav-open .site-nav li.is-open > a::after { transform: rotate(225deg) translate(-2px, -2px); }
	.twobl-megamenu-backdrop { display: none; }
	.site-header--nav-open .site-nav .twobl-megamenu,
	.site-header--nav-open .site-nav > li > ul.sub-menu {
		display: none;
		position: static;
		width: auto;
		max-width: none;
		min-width: 0;
		margin: 0;
		padding: 0 0 0.75rem;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none !important;
		background: none;
		border-radius: 0;
		box-shadow: none;
	}
	.site-header--nav-open .site-nav li.is-open > .twobl-megamenu,
	.site-header--nav-open .site-nav li.is-open > ul.sub-menu { display: block; }
	.twobl-megamenu::before { display: none; }
	.site-header--nav-open .twobl-megamenu__inner { display: block; min-height: 0; border-radius: 0; overflow: visible; }
	.site-header--nav-open .twobl-megamenu__col { padding: 0.75rem 0 0.25rem; background: none !important; }
	.site-header--nav-open .twobl-megamenu__col--promo { display: none; }
	.site-header--nav-open .twobl-megamenu__title { margin-bottom: 0.5rem; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--twobl-grey-mid); }
	.site-header--nav-open .twobl-megamenu__head { margin-bottom: 0.5rem; }
	.site-header--nav-open .twobl-megamenu__subgrid { display: block; }
	.site-header--nav-open .twobl-megamenu__subgrid .twobl-megamenu__list { padding: 0 !important; background: none !important; }
	.site-header--nav-open .twobl-megamenu__list { gap: 0.15rem !important; }
	.site-header--nav-open .twobl-megamenu__link { display: flex; width: 100%; margin-left: 0; font-size: 1rem; white-space: normal; }
	.site-header--nav-open .twobl-megamenu__flyout { background: none; gap: 0.15rem; padding: 0 0 0.25rem 0.75rem; }
	.site-header--nav-open .twobl-megamenu__btn-outline { margin-top: 0.5rem; }
	.site-header--nav-open .site-nav > li > ul.sub-menu a { padding: 0.5rem 0.6rem; }
}
@media (max-width: 960px) {
	.site-header--nav-open .site-header__nav { border: 1px solid #E1E6E8; box-shadow: 0 14px 40px rgba(16, 22, 47, 0.18); }
	.site-header--nav-open .site-nav > li > a { font-size: 14px; }
	.site-header--nav-open .site-nav li.is-open > a { color: var(--twobl-green-dark-hover) !important; }
	.site-header--nav-open .site-nav li.is-open > .twobl-megamenu,
	.site-header--nav-open .site-nav li.is-open > ul.sub-menu {
		margin: 0 0 0.85rem;
		padding: 0.25rem 1rem 0.75rem;
		background: #F4F6F4;
		border-radius: 14px;
	}
	.site-header--nav-open .twobl-megamenu__col + .twobl-megamenu__col { border-top: 1px solid #E1E6E8; margin-top: 0.5rem; }
	.site-header--nav-open .twobl-megamenu__title { font-size: 11px; color: var(--twobl-green-dark-hover); margin-bottom: 0.35rem; }
	.site-header--nav-open .twobl-megamenu__viewall { font-size: 12px; }
	.site-header--nav-open .twobl-megamenu__link { font-size: 14px; padding: 0.45rem 0; }
	.site-header--nav-open .twobl-megamenu__link[role="button"] { font-weight: 700; color: var(--twobl-slate); cursor: default; padding-bottom: 0.2rem; }
	.site-header--nav-open .twobl-megamenu__link[role="button"] svg { display: none; }
	.site-header--nav-open .twobl-megamenu__flyout {
		margin: 0 0 0.35rem 0.15rem;
		padding: 0 0 0 0.85rem;
		border-left: 2px solid var(--twobl-green);
		gap: 0;
	}
	.site-header--nav-open .twobl-megamenu__flyout .twobl-megamenu__link { font-weight: 500; color: var(--twobl-text-heading-2); padding: 0.35rem 0; }
	.site-header--nav-open .twobl-megamenu__btn-outline { padding: 0.45rem 1.1rem; font-size: 13px; }
	.site-header--nav-open .site-nav > li > ul.sub-menu a { font-size: 14px; padding: 0.45rem 0; }
}
.site-header__drawer-head,
.site-header__drawer-foot,
.site-header__scrim { display: none; }
.site-header__drawer-body { display: contents; }
@media (max-width: 960px) {
	.twobl-nav-locked,
	.twobl-nav-locked body { overflow: hidden; }
	.site-header .site-header__nav,
	.site-header--nav-open .site-header__nav {
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		z-index: 302;
		width: min(88vw, 400px);
		max-height: none;
		margin: 0;
		padding: 0;
		overflow: hidden;
		background: var(--twobl-white);
		border: 0;
		border-radius: 24px 0 0 24px;
		box-shadow: -18px 0 50px rgba(16, 22, 47, 0.22);
		transform: translateX(105%);
		visibility: hidden;
		transition: transform 0.3s ease, visibility 0s linear 0.3s;
	}
	.site-header--nav-open .site-header__nav {
		transform: translateX(0);
		visibility: visible;
		transition: transform 0.3s ease, visibility 0s;
	}
	.site-header__scrim {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 301;
		background: rgba(16, 22, 47, 0.5);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0s linear 0.3s;
	}
	.site-header--nav-open .site-header__scrim { opacity: 1; visibility: visible; transition: opacity 0.3s ease, visibility 0s; }
	.site-header__drawer-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex: 0 0 auto;
		padding: 1rem 1rem 1rem 1.5rem;
		border-bottom: 1px solid #E1E6E8;
	}
	.site-header__drawer-head .custom-logo { height: 42px; width: auto; display: block; }
	.site-header__drawer-close {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: 0;
		border-radius: 50%;
		background: #F4F6F4;
		color: var(--twobl-slate);
		cursor: pointer;
	}
	.site-header__drawer-close:hover,
	.site-header__drawer-close:focus-visible { background: var(--twobl-green-light-active); }
	.site-header__drawer-body {
		display: block;
		flex: 1 1 auto;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0.5rem 1.5rem 1rem;
	}
	.site-header__drawer-foot {
		display: block;
		flex: 0 0 auto;
		padding: 1rem 1.5rem calc(1rem + env(safe-area-inset-bottom));
		border-top: 1px solid #E1E6E8;
	}
	.site-header__drawer-foot .btn { width: 100%; justify-content: center; }
	.site-header .site-nav { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
}
.twobl-contactpage__address,
.twobl-contactpage__detail-value { overflow-wrap: anywhere; }
.twobl-contactpage__detail-row > * { min-width: 0; }
@media (max-width: 960px) {
	.twobl-pe-hero__eyebrow { font-size: 0.8125rem; letter-spacing: 0.04em; line-height: 1.5; margin-bottom: 1.25rem; }
}
@media (max-width: 960px) {
	.twobl-epi-section.twobl-epi-section,
	.twobl-epi-darkblock.twobl-epi-darkblock,
	.twobl-epi-investment.twobl-epi-investment,
	.twobl-epi-highlevel.twobl-epi-highlevel,
	.twobl-epi-howitworks.twobl-epi-howitworks,
	.twobl-epi-outcomes.twobl-epi-outcomes,
	.twobl-epi-included-section.twobl-epi-included-section,
	.twobl-epi-gallery.twobl-epi-gallery { padding-block: 4.5rem 4.5rem; }
	.twobl-epi-quote.twobl-epi-quote { padding-block: 4.5rem 4rem; }
	.twobl-epi-hero.twobl-epi-hero { padding-block: 8rem 3.5rem; }
}

