/*
 * Turning Point Foundation - responsive layout layer
 *
 * The visual language lives in style.css. This file only controls sizing,
 * layout, overflow and interaction at the four supported viewport ranges:
 *   0-600px     mobile
 *   601-960px   tablet
 *   961-1439px  laptop/desktop
 *   1440px+     large monitors
 */

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

html,
body {
	max-width: 100%;
	overflow-x: clip;
}

img,
svg,
video,
iframe {
	display: block;
	max-width: 100%;
}

img,
video {
	height: auto;
}

figure,
picture {
	max-width: 100%;
}

button,
input,
select,
textarea {
	max-width: 100%;
}

.container,
.header__inner,
.topbar__inner,
.site-header,
.site-footer,
main,
section,
figure,
picture {
	min-width: 0;
}

.header__inner > *,
.footer__grid > *,
.split > *,
.section-heading > *,
.hero__grid > *,
.donate__inner > *,
.programs-feature > *,
.challenge-grid > *,
.stats > *,
.who-story__grid > *,
.who-leadership__grid > *,
.who-purpose > *,
.who-objectives__grid > *,
.work-approach__grid > *,
.work-section-heading > *,
.work-audiences__grid > *,
.courses-intro__grid > *,
.courses-section-heading > *,
.courses-fit__grid > *,
.join-intro__grid > *,
.join-section-heading > *,
.join-steps__grid > *,
.contact-details__grid > *,
.contact-section-heading > *,
.contact-essentials__grid > *,
.contribution-intro__grid > *,
.contribution-section-heading > *,
.contribution-transparency__grid > * {
	min-width: 0;
}

/* Keep the existing header behavior, but make its dimensions fluid. */
.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	max-width: 100%;
	transition: transform .25s ease;
}

.site-header.is-hidden {
	transform: translateY(-105%);
}

.site-header.is-visible {
	transform: translateY(0);
}

.site-header .brand__link,
.footer__logo .brand__link {
	display: block;
	overflow: hidden;
}

.site-header .brand__image,
.footer__logo .brand__image {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	object-position: center;
	transform: none;
	filter: none;
	mix-blend-mode: normal;
}

/* The logo is a transparent PNG, so it can render cleanly on both header and footer surfaces. */
.site-header .brand__image {
	object-position: left center;
	object-fit: contain;
	mix-blend-mode: normal;
}

.footer__logo .brand__image {
	object-position: left center;
	object-fit: contain;
}

.primary-nav .menu a {
	white-space: normal;
	text-wrap: balance;
}

.button {
	max-width: 100%;
	white-space: normal;
	text-align: center;
}

.button:hover,
.button:focus-visible,
.button--light:hover,
.button--light:focus-visible,
.button--dark:hover,
.button--dark:focus-visible,
.button--outline:hover,
.button--outline:focus-visible {
	background: #74185f;
	border-color: #74185f;
	color: #fff;
	text-shadow: none;
}

/* Shared page image frames: no distortion and no content escaping its card. */
.who-story__media,
.work-approach__media,
.courses-intro__media,
.join-intro__media,
.contact-address figure,
.contribution-intro figure,
.who-leadership figure,
.work-card figure,
.course-card figure,
.programs-gallery,
.programs-feature figure {
	overflow: hidden;
}

.who-story__media img,
.work-approach__media img,
.courses-intro__media img,
.join-intro__media img,
.contact-address figure img,
.contribution-intro figure img,
.work-card figure img,
.course-card figure img,
.programs-gallery__slide img,
.programs-feature figure img {
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Shared container and desktop navigation: 961px and above. */
@media (min-width: 961px) {
	.container {
		width: min(calc(100% - 64px), 1280px);
		margin-inline: auto;
	}

	.topbar__inner,
	.header__inner {
		width: min(calc(100% - 64px), 1400px);
		margin-inline: auto;
	}

	.site-header .brand__link {
		width: clamp(220px, 20vw, 280px);
		height: clamp(78px, 7vw, 96px);
	}

	.footer__logo .brand__link {
		width: 270px;
		height: 88px;
	}

	.emergency-stats__feature figure {
		min-height: clamp(500px, 42vw, 700px);
	}

	.programs-feature figure,
	.programs-gallery {
		min-height: clamp(500px, 42vw, 680px);
	}

	.nav-toggle {
		display: none;
	}

	.primary-nav {
		display: flex;
		position: static;
		align-items: center;
		max-height: none;
		overflow: visible;
		margin-left: auto;
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
	}

	.primary-nav .menu {
		display: flex;
		align-items: center;
		flex-wrap: nowrap;
		gap: clamp(.95rem, 1.3vw, 1.75rem);
	}

	.primary-nav {
		gap: clamp(.75rem, 1.5vw, 1.5rem);
	}

	.primary-nav .menu a {
		font-size: clamp(.92rem, 1vw, 1.05rem);
		white-space: nowrap;
		color: #171317;
	}

	.site-header .menu a:hover,
	.site-header .current-menu-item > a,
	.site-header .current_page_item > a {
		color: #74185f;
	}

	.inspiration-slider {
		height: clamp(500px, 45vw, 640px);
	}

	.inspiration-slider .slider__slide {
		background-position: right center;
		background-size: cover;
	}

	.inspiration-slider .slider__content {
		width: min(calc(100% - 64px), 1280px);
		margin-inline: auto;
		min-height: 100%;
		padding-block: 64px 86px;
	}

	.inspiration-slider .slider__content h1, .slider__content h2,
	.inspiration-slider .slider__copy,
	.inspiration-slider .slider__person {
		min-height: 0;
	}

	.inspiration-slider .slider__content h1, .slider__content h2 {
		max-width: 700px;
	}

	.inspiration-slider .slider__copy {
		margin-bottom: .35rem;
	}

	.inspiration-slider .slider__person {
		margin-block: 1rem 1.15rem;
	}

	.stats,
	.home .impact .stats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.who-impact__grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.who-values__grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.who-credentials__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.support-section {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.support-panel {
		min-height: clamp(500px, 34vw, 700px);
		padding-inline: clamp(40px, 5vw, 96px);
	}

	.support-panel__content {
		width: 100%;
		max-width: 570px;
	}

	.programs-feature,
	.emergency-stats__feature {
		min-width: 0;
	}

	.footer__grid {
		grid-template-columns: 1.2fr .7fr 1fr;
	}
}

/* Large monitors retain the desktop proportions without stretching text. */
@media (min-width: 1440px) {
	.container {
		width: min(calc(100% - 64px), clamp(1280px, calc(100% - 160px), 1440px));
	}

	.inspiration-slider {
		height: clamp(560px, 45vw, 640px);
	}

	.inspiration-slider .slider__content {
		width: min(calc(100% - 64px), clamp(1280px, calc(100% - 160px), 1440px));
		margin-inline: auto;
	}

	.inspiration-slider .slider__content h1, .slider__content h2 {
		font-size: clamp(3.35rem, 3.8vw, 4.6rem);
		max-width: 780px;
	}

	.inspiration-slider .slider__copy {
		max-width: 680px;
		font-size: clamp(1.05rem, 1.15vw, 1.3rem);
	}
}

/* Tablet: 601-960px. */
@media (min-width: 601px) and (max-width: 960px) {
	.committee-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.container {
		width: calc(100% - 48px);
		max-width: none;
		margin-inline: auto;
	}

	.topbar__inner,
	.header__inner {
		width: calc(100% - 40px);
		margin-inline: auto;
	}

	.header__inner {
		min-height: 88px;
	}

	.site-header .brand__link {
		width: 260px;
		height: 84px;
	}

	.nav-toggle {
		display: grid;
		flex: 0 0 auto;
		gap: 5px;
		margin-left: auto;
		padding: .5rem;
		background: transparent;
		border: 0;
	}

	.nav-toggle span {
		position: absolute;
		left: -9999px;
	}

	.nav-toggle i {
		display: block;
		width: 26px;
		height: 2px;
		background: #241523;
	}

	.primary-nav {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		z-index: 1001;
		pointer-events: auto;
		max-height: calc(100svh - 88px);
		overflow-y: auto;
		margin: 0;
		padding: 1.25rem 24px;
		background: linear-gradient(135deg, rgba(36, 21, 35, .98), rgba(116, 24, 95, .96));
		backdrop-filter: blur(8px);
		border-top: 1px solid rgba(255, 255, 255, .18);
		box-shadow: 0 12px 28px rgba(36, 21, 35, .28);
	}

	.primary-nav.is-open {
		display: block;
	}

	.primary-nav .menu {
		display: block;
	}

	.primary-nav li {
		margin: .55rem 0;
	}

	.primary-nav .menu a {
		display: inline-block;
		padding: .35rem 0;
		color: #fff;
		font-size: 1rem;
	}

	.primary-nav .menu a:hover,
	.primary-nav .menu a:focus-visible,
	.primary-nav .current-menu-item > a,
	.primary-nav .current_page_item > a {
		color: #f0afd9;
	}

	.primary-nav .button {
		margin-top: .75rem;
	}

	.hero__grid,
	.split,
	.section-heading,
	.donate__inner,
	.home-trust__heading,
	.who-section-heading,
	.work-section-heading,
	.courses-section-heading,
	.join-section-heading,
	.contact-section-heading,
	.contribution-section-heading,
	.home-resources__heading {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
	}

	.stats,
	.home .impact .stats,
	.card-grid,
	.challenge-grid,
	.work-programmes__grid,
	.courses-grid,
	.join-paths__grid,
	.contribution-ways__grid,
	.home-resources__grid,
	.contact-enquiries__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.who-impact__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.who-values__grid,
	.who-credentials__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.who-story__grid,
	.who-leadership__grid,
	.who-purpose,
	.who-objectives__grid,
	.work-approach__grid,
	.work-audiences__grid,
	.courses-intro__grid,
	.courses-fit__grid,
	.join-intro__grid,
	.join-steps__grid,
	.contact-details__grid,
	.contact-essentials__grid,
	.contribution-intro__grid,
	.contribution-transparency__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.5rem;
	}

	.who-story__media,
	.work-approach__media,
	.courses-intro__media,
	.join-intro__media,
	.contribution-intro figure {
		grid-column: 1 / -1;
		max-width: 620px;
		margin-inline: auto;
	}

	.who-story__media img,
	.work-approach__media img,
	.courses-intro__media img,
	.join-intro__media img,
	.contribution-intro figure img {
		aspect-ratio: 16 / 9;
		height: auto;
	}

	.who-leadership__grid > figure {
		grid-column: auto;
		max-width: 430px;
	}

	.who-leadership figure img {
		aspect-ratio: 4 / 5;
		height: auto;
		transform: none;
	}

	.who-purpose__panel {
		min-height: 480px;
		padding: 56px 40px;
	}

	.inspiration-slider {
		height: clamp(400px, 56svh, 500px);
	}

	.inspiration-slider .slider__slide {
		background-position: right center;
		background-size: cover;
	}

	.inspiration-slider .slider__content {
		width: calc(100% - 48px);
		margin-inline: auto;
		padding-block: 36px 54px;
	}

	.inspiration-slider .slider__content h1, .slider__content h2 {
		max-width: 70%;
		font-size: clamp(2.2rem, 5.2vw, 3.1rem);
		line-height: 1.08;
	}

	.inspiration-slider .slider__copy {
		max-width: 64%;
		font-size: .98rem;
	}

	.inspiration-slider .slider__person {
		max-width: 64%;
	}

	.emergency-stats__feature {
		grid-template-columns: 1fr;
	}

	.emergency-stats__feature figure {
		min-height: 360px;
	}

	.programs-feature {
		display: block;
		overflow: visible;
		background: transparent;
		box-shadow: none;
	}

	.programs-gallery {
		display: block;
		min-height: 360px;
		border-radius: 18px;
	}

	.programs-feature__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem;
		padding: 1rem 0 0;
	}

	.program-tab {
		min-height: 190px;
		padding: 1.25rem;
		border: 0;
		border-radius: 18px;
		color: #fff;
		background-image: linear-gradient(0deg, rgba(20, 12, 19, .9), rgba(20, 12, 19, .08) 78%), var(--program-image);
		background-position: center;
		background-size: cover;
	}

	.program-tab:hover,
	.program-tab.is-active {
		padding-left: 1.25rem;
		background-image: linear-gradient(0deg, rgba(67, 16, 59, .94), rgba(20, 12, 19, .1) 78%), var(--program-image);
	}

	.program-tab__number,
	.program-tab.is-active .program-tab__number {
		border-color: rgba(255, 255, 255, .72);
		background: rgba(255, 255, 255, .14);
		color: #fff;
	}

	.program-tab__copy strong,
	.program-tab__copy small {
		color: #fff;
	}

	.support-section {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.support-panel {
		min-height: clamp(470px, 62vw, 600px);
		padding: 52px 32px;
	}

	.support-panel__content {
		max-width: 100%;
	}

	.footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 3rem;
	}

	.footer__about {
		grid-column: 1 / -1;
		max-width: 620px;
	}

	.footer__contact {
		grid-column: auto;
	}

	.contact-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	/* Match the compact two-column course cards at tablet widths. */
	.courses-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .9rem;
	}

	.course-card {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.course-card figure {
		height: 220px;
		min-height: 0;
	}

	.course-card__body {
		padding: 1.1rem;
	}

	.course-card h3 {
		font-size: 1.12rem;
		line-height: 1.18;
	}

	.course-card__body > p {
		font-size: .84rem;
		line-height: 1.45;
	}
	/* Keep the story readable as one continuous tablet/mobile column. */
	.who-story__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.who-purpose {
		gap: 0;
	}
	/* Stack guidance panels at tablet/mobile widths for readable line lengths. */
	.who-community-guidance {
		background: #e7eff0;
	}

	.who-community-guidance__grid {
		grid-template-columns: 1fr;
	}

	.who-community-guidance__panel {
		width: 100%;
		padding: 44px 24px;
		box-sizing: border-box;
	}

	.who-community-guidance__panel:first-child,
	.who-community-guidance__panel:last-child {
		padding-inline: 24px;
	}

	.who-community-guidance__panel--first-aid {
		background: #e7eff0;
	}

	.who-community-guidance__panel--samaritan {
		background: #e8d9e8;
	}
	/* Give tablet sections a balanced reading order without changing desktop. */
	.who-objectives__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	/* Keep the form readable and stack the two information panels in the second column. */
	.contact-essentials__grid {
		grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
		align-items: start;
	}

	.contact-essentials__form,
	.contact-essentials__info,
	.contact-essentials__info > div {
		height: auto;
		min-width: 0;
	}

	.contact-essentials__info {
		grid-template-columns: 1fr;
	}

	.contact-essentials__office address,
	.contact-essentials__office p {
		overflow-wrap: anywhere;
	}
}


/* Keep the stacked guidance section full-bleed on tablet and mobile. */
@media (max-width: 960px) {
	.who-community-guidance > .container {
		width: 100%;
		max-width: none;
		margin-inline: 0;
		padding-inline: 0;
	}

	.who-community-guidance__grid {
		width: 100%;
		grid-template-columns: minmax(0, 1fr);
	}

	.who-community-guidance__panel {
		width: 100%;
		margin: 0;
		grid-column: 1 / -1;
		box-sizing: border-box;
	}
}
/* Mobile: 0-600px. */
@media (max-width: 600px) {
	.who-credential__logo,.who-credential__logo img { width: 60px; height: 60px; }
	.who-community-guidance {
		background: #e7eff0;
	}
	.who-community-guidance > .container {
		width: 100%;
	}
	.who-community-guidance__grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.who-community-guidance__panel:first-child,
	.who-community-guidance__panel:last-child {
		padding: 36px 15px;
	}
	.who-community-guidance__panel--samaritan {
		background: #e8d9e8;
	}

	.who-committee {
		padding-block: 36px;
	}
	.committee-grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.committee-card {
		padding: 1.15rem;
	}
	.committee-heading {
		gap: 1rem;
	}
	.committee-dialog {
		padding: 1.4rem;
	}
	.committee-dialog .committee-card__identity h3 {
		font-size: 1.2rem;
	}
	.container {
		width: calc(100% - 30px);
		max-width: none;
		margin-inline: auto;
	}

	.section,
	.impact,
	.about,
	.programs,
	.resources,
	.donate,
	.contact,
	.who-story,
	.who-impact,
	.who-leadership,
	.who-values,
	.who-objectives,
	.work-approach,
	.work-programmes,
	.work-method,
	.work-audiences,
	.courses-intro,
	.courses-list,
	.courses-fit,
	.join-intro,
	.join-paths,
	.join-steps,
	.contact-details,
	.contact-enquiries,
	.contact-practical,
	.contribution-intro,
	.contribution-ways,
	.contribution-transparency,
	.home-resources {
		padding-block: 36px;
	}

	.topbar {
		display: none;
	}

	.header__inner {
		width: calc(100% - 20px);
		max-width: 100%;
		min-height: 78px;
		margin-inline: 10px;
		justify-content: space-between;
		position: relative;
	}

	.header__inner .brand {
		min-width: 0;
	}

	.site-header .brand__link {
		width: clamp(180px, 58vw, 220px);
		height: clamp(62px, 20vw, 76px);
	}

	.footer__logo .brand__link {
		width: 190px;
		height: 62px;
	}

	.nav-toggle {
		display: grid;
		flex: 0 0 auto;
		position: absolute;
		z-index: 1002; cursor: pointer; touch-action: manipulation; right: 0;
		top: 50%;
		gap: 5px;
		margin-left: auto;
		padding: .5rem;
		background: transparent;
		border: 0;
		transform: translateY(-50%);
	}

	.nav-toggle span {
		position: absolute;
		left: -9999px;
	}

	.nav-toggle i {
		display: block;
		width: 26px;
		height: 2px;
		background: #241523;
	}

	.primary-nav {
		display: none;
		position: fixed;
		left: 0;
		right: 0;
		top: 78px;
		
        z-index: 1001;
        pointer-events: auto;
        max-height: calc(100svh - 78px);
		overflow-y: auto;
		margin: 0;
		padding: .85rem 15px 1.1rem;
        background: linear-gradient(135deg, rgba(36, 21, 35, .98), rgba(116, 24, 95, .96));
		backdrop-filter: blur(8px);
		border-top: 1px solid rgba(255, 255, 255, .18);
		box-shadow: 0 12px 28px rgba(36, 21, 35, .28);
	}

	.primary-nav.is-open {
		display: block;
	}

	.primary-nav .menu {
		display: block;
		margin: 0;
		padding: 0;
	}

	.primary-nav li {
		margin: .2rem 0;
	}

	.primary-nav .menu a {
		display: block; width: 100%; padding: .42rem 0; color: #fff;
		font-size: 1rem;
		line-height: 1.3;
		touch-action: manipulation;
	}

	.primary-nav .menu a:hover,
	.primary-nav .menu a:focus-visible,
	.primary-nav .current-menu-item > a,
	.primary-nav .current_page_item > a {
		color: #f0afd9;
	}

	.primary-nav .button {
		margin-top: .55rem;
		padding: .68rem 1.1rem;
	}

	.hero__grid,
	.split,
	.section-heading,
	.donate__inner,
	.home-trust__heading,
	.who-section-heading,
	.work-section-heading,
	.courses-section-heading,
	.join-section-heading,
	.contact-section-heading,
	.contribution-section-heading,
	.home-resources__heading,
	.who-story__grid,
	.who-leadership__grid,
	.who-purpose,
	.who-objectives__grid,
	.work-approach__grid,
	.work-audiences__grid,
	.courses-intro__grid,
	.courses-fit__grid,
	.join-intro__grid,
	.join-steps__grid,
	.contact-details__grid,
	.contact-essentials__grid,
	.contribution-intro__grid,
	.contribution-transparency__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.stats,
	.home .impact .stats,
	.card-grid,
	.challenge-grid,
	.work-programmes__grid,
	.courses-grid,
	.join-paths__grid,
	.contribution-ways__grid,
	.home-resources__grid,
	.contact-enquiries__grid,
	.who-impact__grid,
	.who-values__grid,
	.who-credentials__grid,
	.work-method__grid,
	.courses-guidance__grid,
	.contact-practical__grid {
		grid-template-columns: 1fr;
	}

	.who-story__media,
	.who-leadership__grid > figure,
	.work-approach__media,
	.courses-intro__media,
	.join-intro__media,
	.contribution-intro figure {
		grid-column: auto;
		width: 100%;
		max-width: 100%;
		margin-inline: 0;
	}

	.who-story__media img,
	.work-approach__media img,
	.courses-intro__media img,
	.join-intro__media img,
	.contribution-intro figure img {
		aspect-ratio: 4 / 3;
		height: auto;
	}

	.who-leadership__grid > figure {
		max-width: 420px;
		margin-inline: auto;
	}

	.who-leadership figure img {
		aspect-ratio: 4 / 5;
		height: auto;
		transform: none;
	}

	.who-purpose__panel {
		min-height: 0;
		padding: 44px 24px;
	}

	.who-impact__grid div,
	.who-values article,
	.who-objectives li,
	.who-credentials__grid article {
		min-width: 0;
	}

	.inspiration-slider {
		height: clamp(380px, 62svh, 480px);
	}

	.inspiration-slider .slider__slide {
		background-position: 70% center;
		background-size: cover;
	}

	.inspiration-slider .slider__content {
		width: calc(100% - 30px);
		max-width: 100%;
		margin-inline: auto;
		min-height: 100%;
		min-width: 0;
		align-items: stretch;
		justify-content: flex-start;
		padding-block: 32px 48px;
	}

	.inspiration-slider .slider__content > * {
		width: auto;
		min-width: 0;
		max-width: 100%;
		white-space: normal;
		word-break: break-word;
		overflow-wrap: anywhere;
	}

	.inspiration-slider .slider__content h1, .slider__content h2,
	.inspiration-slider .slider__copy,
	.inspiration-slider .slider__person {
		width: 100%;
		max-width: 100%;
		white-space: normal;
		word-break: break-word;
	}

	.inspiration-slider .slider__content .button {
		width: max-content;
		align-self: flex-start;
	}

	.inspiration-slider .slider__content h1, .slider__content h2 {
		max-width: min(100%, 30rem);
		font-size: clamp(1.7rem, 7vw, 2.35rem);
		line-height: 1.08;
	}

	.inspiration-slider .slider__copy {
		display: block;
		flex: 0 1 auto;
		max-width: min(100%, 34rem);
		min-height: 0;
		font-size: .95rem;
		line-height: 1.45;
	}

	.inspiration-slider .slider__person {
		min-height: 0;
		margin-block: .55rem 1rem;
	}

	.inspiration-slider .slider__controls {
		bottom: 16px;
	}

	.inspiration-slider .slider__dots {
		gap: .7rem;
	}

	.inspiration-slider .slider__dots button {
		width: 11px;
		height: 11px;
	}

	.who-hero__inner,
	.work-hero__inner,
	.courses-hero__inner,
	.join-hero__inner,
	.contact-hero__inner,
	.contribution-hero__inner {
		width: calc(100% - 30px);
		margin-inline: auto;
		min-width: 0;
	}

	.who-hero__inner > *,
	.work-hero__inner > *,
	.courses-hero__inner > *,
	.join-hero__inner > *,
	.contact-hero__inner > *,
	.contribution-hero__inner > * {
		width: auto;
		min-width: 0;
		max-width: 100%;
		white-space: normal;
		word-break: break-word;
		overflow-wrap: anywhere;
	}

	.who-hero__inner > h1,
	.work-hero__inner > h1,
	.courses-hero__inner > h1,
	.join-hero__inner > h1,
	.contact-hero__inner > h1,
	.contribution-hero__inner > h1,
	.who-story__heading h2,
	.who-impact h2,
	.who-values h2,
	.who-objectives h2,
	.who-community-guidance h2,
	.work-approach h2,
	.work-method h2,
	.work-audiences h2,
	.courses-intro h2,
	.courses-list h2,
	.courses-fit h2,
	.join-intro h2,
	.join-paths h2,
	.join-steps h2,
	.contact-essentials h2,
	.contribution-intro h2,
	.contribution-ways h2 {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		white-space: normal;
		word-break: break-word;
		overflow-wrap: anywhere;
	}

	.who-hero h1,
	.work-hero h1,
	.courses-hero h1,
	.join-hero h1,
	.contact-hero h1,
	.contribution-hero h1 {
		font-size: clamp(2.25rem, 10vw, 3.5rem);
		line-height: 1.06;
	}

	.who-story__heading h2,
	.who-impact h2,
	.who-values h2,
	.who-objectives h2,
	.who-community-guidance h2,
	.work-approach h2,
	.work-method h2,
	.work-audiences h2,
	.courses-intro h2,
	.courses-list h2,
	.courses-fit h2,
	.join-intro h2,
	.join-paths h2,
	.join-steps h2,
	.contact-essentials h2,
	.contribution-intro h2,
	.contribution-ways h2 {
		font-size: clamp(2.15rem, 8.5vw, 3.2rem);
		line-height: 1.08;
	}

	/* Headings use the full mobile container; body copy can flow naturally. */
	.who-page h1,
	.who-page h2,
	.who-page h3,
	.work-page h1,
	.work-page h2,
	.work-page h3,
	.courses-page h1,
	.courses-page h2,
	.courses-page h3,
	.join-page h1,
	.join-page h2,
	.join-page h3,
	.contact-page h1,
	.contact-page h2,
	.contact-page h3,
	.contribution-page h1,
	.contribution-page h2,
	.contribution-page h3 {
		width: 100%;
		max-width: 100%;
		white-space: normal;
		word-break: break-word;
	}

	.emergency-stats__heading,
	.emergency-stats__feature {
		grid-template-columns: 1fr;
	}

	.emergency-stats__feature figure {
		min-height: 260px;
	}

	.emergency-stats__cards {
		padding-inline: 1.1rem;
	}

	.emergency-stats__cards article {
		grid-template-columns: 76px minmax(0, 1fr);
		gap: .8rem;
	}

	.programs-feature {
		display: block;
		overflow: visible;
		background: transparent;
		box-shadow: none;
	}

	.programs-gallery {
		display: none;
	}

	.programs-feature__list {
		display: grid;
		grid-template-columns: 1fr;
		gap: .75rem;
		padding: 0;
	}

	.program-tab,
	.program-tab:hover,
	.program-tab.is-active {
		min-height: 190px;
		padding: 1.25rem;
		transform: none;
		background-image: linear-gradient(0deg, rgba(20, 12, 19, .9), rgba(20, 12, 19, .08) 78%), var(--program-image);
		background-position: center;
		background-size: cover;
	}

	.program-tab__number,
	.program-tab.is-active .program-tab__number,
	.program-tab__copy strong,
	.program-tab__copy small {
		color: #fff;
	}

	.support-section {
		grid-template-columns: 1fr;
	}

	.support-panel {
		min-height: 0;
		padding: 52px 24px;
		justify-content: center;
	}

	.support-panel__content {
		width: 100%;
		max-width: 570px;
	}

	.support-panel__content h2 {
		font-size: clamp(2.1rem, 9vw, 3.1rem);
	}

	.support-panel--donate,
	.support-panel--join {
		background-size: cover;
		background-position: center;
	}

	.footer__grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.footer__about,
	.footer__contact {
		grid-column: auto;
		max-width: none;
	}

	.site-footer {
		padding-block: 24px 14px;
	}

	.site-footer .footer__about h2 {
		font-size: 1.7rem;
	}

	.footer__bottom {
		align-items: flex-start;
		flex-direction: column;
		gap: .7rem;
		margin-top: 20px;
		padding-top: 12px;
		font-size: .75rem;
	}

	.contact-form__grid,
	.contact-essentials__info {
		grid-template-columns: 1fr;
	}

	.contact-form__wide {
		grid-column: auto;
	}

	.contact-trust {
		flex-wrap: wrap;
	}

	.contact-trust span {
		width: 100%;
	}

	.course-modal__panel,
	.leadership-modal__panel {
		width: min(100%, 760px);
		max-height: calc(100svh - 24px);
		padding: 1.25rem;
	}

	h1,
	h2,
	h3,
	p,
	li {
		max-width: 100%;
		overflow-wrap: anywhere;
	}

	.home .impact .stats {
		gap: .5rem;
		margin-top: 1.1rem;
		width: 100%;
		max-width: 100%;
	}

	.home .impact .stats div {
		display: grid;
		grid-template-columns: 40px minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: .75rem;
		align-items: center;
		width: 100%;
		max-width: 100%;
		min-height: 0;
		padding: .65rem .9rem;
		border-radius: 13px;
	}

	.home .impact .stat-icon {
		grid-column: 1;
		grid-row: 1 / 3;
		width: 38px;
		height: 38px;
		margin: 0;
	}

	.home .impact .stats strong {
		grid-column: 2;
		grid-row: 1;
		font-size: 1.7rem;
		line-height: 1.05;
	}

	.home .impact .stats span {
		grid-column: 2;
		grid-row: 2;
		margin-top: .05rem;
		font-size: .9rem;
		line-height: 1.25;
	}

	.home .impact .stats div:hover,
	.program-card:hover,
	.challenge-card:hover,
	.work-card:hover,
	.course-card:hover {
		transform: none;
	}
}

/* Page-specific image choices already approved during the design pass. */
.contact-page .contact-hero {
	background-image: linear-gradient(90deg, rgba(24, 14, 21, .96) 0%, rgba(68, 21, 56, .78) 52%, rgba(68, 21, 56, .2) 100%), url("../images/contact-support-conversation-v3.jpg");
	background-position: center;
	background-size: cover;
}

.join-page .join-hero {
	background-image: linear-gradient(90deg, rgba(24, 14, 21, .96) 0%, rgba(68, 21, 56, .76) 52%, rgba(68, 21, 56, .18) 100%), url("../images/join-us-volunteer-outreach-v3.jpg");
	background-position: center;
	background-size: cover;
}

.who-hero {
	background-image: linear-gradient(90deg, rgba(24, 14, 21, .96) 0%, rgba(68, 21, 56, .76) 52%, rgba(68, 21, 56, .18) 100%), url("../images/who-hero-community-education-v3.jpg");
	background-position: center;
	background-size: cover;
}

.who-leadership {
	background: #f1dfc8;
}

.who-credentials {
	background: #f5ebdc;
}

.site-header {
	background: linear-gradient(90deg, #fff 0%, #f7edf4 58%, #ead7e5 100%);
	border-bottom-color: #74185f;
}

.site-header .button--small {
	background: #74185f;
	border-color: #74185f;
	color: #fff;
}
















@media (max-width: 600px){.work-hero{display:flex;min-height:clamp(480px,70svh,600px);background-image:linear-gradient(90deg,rgba(15,10,14,.9),rgba(45,16,38,.68)),url("../images/what-we-do-hero-v2.jpg");background-position:center;background-size:cover;color:#fff}.work-hero::after{display:none}.work-hero__media{display:none}.work-hero__inner{width:calc(100% - 30px);min-height:100%;padding-block:44px 64px}.work-hero .work-label{color:#efaad9;background:rgba(255,255,255,.08)}.work-hero h1{color:#fff}.work-hero h1 em{color:#efaad9}.work-hero__inner>p:not(.work-label){color:#e2d7df}}

@media (max-width: 600px){.work-card,.course-card{grid-template-columns:1fr;min-height:0}.work-card figure,.course-card figure{height:220px;min-height:0}.work-card__body,.course-card__body{padding:1.25rem}}

.nav-toggle{width:44px;height:44px;place-items:center;cursor:pointer;pointer-events:auto}




@keyframes tp-nav-drop {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: translateY(0); }
}

.primary-nav.is-open {
	animation: tp-nav-drop .22s ease-out both;
}

@media (prefers-reduced-motion: reduce) {
	.primary-nav.is-open { animation: none; }
}










@media (max-width: 600px){.who-purpose{gap:0}}





/* Responsive improvement pass: resolve intrinsic-width clipping while preserving desktop layouts. */
@media (max-width: 960px) {
	.button {
		min-height: 44px;
	}
	.support-panel {
		width: 100%;
		min-width: 0;
	}

	.support-panel__content {
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.support-panel h2,
	.support-panel p {
		overflow-wrap: anywhere;
	}

	.work-audiences__grid > ul {
		min-width: 0;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.work-audiences__grid > ul > li {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	.contact-essentials__info > div {
		width: 100%;
		min-width: 0;
	}

	.contact-essentials__info a,
	.contact-essentials__info a span {
		min-width: 0;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.contact-page .contact-details {
		display: block;
		order: 2;
	}

	.contact-page .contact-essentials {
		order: 3;
	}

	.contact-page .contact-cta {
		order: 4;
	}
}

@media (min-width: 601px) and (max-width: 640px) {
	.work-audiences__grid > ul {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 961px) and (max-width: 1023px) {
	.contact-essentials__info {
		grid-template-columns: 1fr;
	}

	.contact-essentials__info > div {
		min-width: 0;
	}
}

@media (max-width: 600px) {
	.support-panel {
		padding-inline: 15px;
	}

	.contact-details__grid {
		gap: 1.25rem;
	}

	.contact-details .contact-actions a {
		min-height: 44px;
	}

	.contact-details .contact-address figure {
		margin-inline: 0;
	}

	.contact-essentials__form,
	.contact-essentials__info,
	.contact-essentials__info > div {
		width: 100%;
		min-width: 0;
	}
}
/* Restore the existing Contact Details section at every width; keep the established page order. */
.contact-page .contact-details {
	display: block;
	order: 2;
}

.contact-page .contact-essentials {
	order: 3;
}

.contact-page .contact-cta {
	order: 4;
}

/* Final targeted refinement pass: tablet hero, Contact presentation, and Join Us rhythm. */
@media (min-width: 601px) and (max-width: 960px) {
	/* Keep the What We Do approach as one continuous text flow before the image. */
	.work-page > .work-hero + .work-approach .work-approach__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.work-page > .work-hero + .work-approach .work-approach__media {
		grid-column: 1;
		grid-row: 3;
		width: min(100%, 620px);
		margin-inline: auto;
	}
}

@media (min-width: 961px) and (max-width: 1100px) {
	/* Keep the approved split hero readable while it transitions back from tablet. */
	.work-hero h1 {
		max-width: 470px;
	}
	.work-hero__inner > p:not(.work-label) {
		max-width: 430px;
	}
}

@media (min-width: 601px) and (max-width: 960px) {
	/* Use the proven mobile hero treatment through tablet widths so copy stays readable. */
	.work-hero {
		display: flex;
		min-height: clamp(520px, 70svh, 680px);
		background-image: linear-gradient(90deg, rgba(15, 10, 14, .93), rgba(45, 16, 38, .76) 62%, rgba(20, 12, 18, .28)), url("../images/what-we-do-hero-v2.jpg");
		background-position: center;
		background-size: cover;
		color: #fff;
	}
	.work-hero::after,
	.work-hero__media {
		display: none;
	}
	.work-hero__inner {
		width: calc(100% - 48px);
		margin-inline: auto;
		min-height: 100%;
		padding-block: 64px 76px;
	}
	.work-hero .work-label {
		color: #efaad9;
		background: rgba(255, 255, 255, .08);
	}
	.work-hero h1 {
		color: #fff;
	}
	.work-hero h1 em {
		color: #efaad9;
	}
	.work-hero__inner > p:not(.work-label) {
		color: #e2d7df;
	}
}

@media (min-width: 601px) and (max-width: 960px) {
	/* Keep the Join Us tablet columns aligned to the same starting edge. */
	.join-intro__grid {
		align-items: start;
	}
}

@media (min-width: 961px) and (max-width: 1100px) {
	/* Give the Office panel a full readable column before the wide desktop layout returns. */
	.contact-essentials__info {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 430px) {
	.contact-page .contact-actions a[href^="mailto:"] strong,
	.contact-page .contact-essentials__info a[href^="mailto:"] span {
		font-size: clamp(.78rem, 3.4vw, .86rem);
		letter-spacing: -.01em;
		overflow-wrap: anywhere;
		word-break: normal;
	}
}

@media (min-width: 601px) and (max-width: 960px) {
	/* Stack What We Do programme card content above its image, like the course cards. */
	.work-programmes__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .9rem;
	}
	.work-programmes .work-card {
		grid-template-columns: 1fr;
		grid-template-rows: auto 220px;
		min-height: 0;
		border-radius: 10px;
	}
	.work-programmes .work-card__body {
		order: 1;
		display: flex;
		flex-direction: column;
		padding: 1.1rem;
	}
	.work-programmes .work-card figure {
		order: 2;
		height: 220px;
		min-height: 0;
	}
	.work-programmes .work-card__audience {
		margin: .25rem 0 1rem;
		font-size: .68rem;
		line-height: 1.35;
	}
	.work-programmes .work-card h3 {
		font-size: 1.12rem;
		line-height: 1.18;
	}
	.work-programmes .work-card__body > p:last-child {
		font-size: .84rem;
		line-height: 1.45;
	}
}

@media (max-width: 600px) {
	/* Keep the same content-then-image order on mobile cards. */
	.work-programmes .work-card__body {
		order: 1;
	}
	.work-programmes .work-card figure {
		order: 2;
	}
}
@media (min-width: 601px) and (max-width: 960px) {
	/* Keep the How We Teach bullet areas aligned when the Practise copy wraps. */
	.work-method__grid article ul {
		min-height: clamp(6.3rem, calc(397px - 30vw + .3rem), 13.6rem);
		box-sizing: border-box;
	}
}
@media (min-width: 601px) and (max-width: 960px) {
	/* Stack Training for Everyone copy above a three-column audience-card grid. */
	.work-audiences__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.work-audiences__grid > div > p:not(.work-label) {
		max-width: 70ch;
	}
	.work-audiences__grid > ul {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: .8rem;
	}
}
@media (min-width: 601px) and (max-width: 960px) {
	/* Keep Volunteer copy in one flow before the full-width outreach image. */
	.join-page .join-intro__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.join-page .join-intro__media {
		grid-column: 1;
		grid-row: 3;
		width: min(100%, 620px);
		margin-inline: auto;
	}
}
@media (min-width: 601px) and (max-width: 960px) {
	/* Stack What Happens Next copy above its three step cards. */
	.join-page .join-steps__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.join-page .join-steps ol {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: .8rem;
	}
}


/* Our Reach responsive card layout: preserve content while making mobile and tablet cards easy to scan. */
@media (max-width: 960px) {
	.home .impact {
		padding: 42px 0;
	}
	.home .impact .container {
		width: calc(100% - 30px);
	}
	.home .impact .eyebrow {
		margin-bottom: .8rem;
		font-size: .78rem;
	}
	.home .impact h2 {
		max-width: 100%;
		margin-bottom: 1.2rem;
		font-size: clamp(1.65rem, 4.8vw, 2.35rem);
		line-height: 1.08;
	}
	.home .impact .stats {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .75rem;
		margin-top: 0;
	}
	.home .impact .stats div {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		min-height: 122px;
		padding: 1rem .85rem .9rem;
		border-radius: 14px;
	}
	.home .impact .stat-icon {
		width: 30px;
		height: 30px;
		margin: 0 0 .7rem;
		border-radius: 0;
		background: transparent;
	}
	.home .impact .stat-icon svg {
		width: 24px;
		height: 24px;
	}
	.home .impact .stats strong {
		display: block;
		margin: 0 0 .25rem;
		font-size: clamp(1.35rem, 4.6vw, 2rem);
		line-height: 1;
	}
	.home .impact .stats span {
		display: block;
		margin: 0;
		font-size: .78rem;
		line-height: 1.25;
	}
}

@media (min-width: 601px) and (max-width: 960px) {
	.home .impact {
		padding: 52px 0;
	}
	.home .impact .container {
		width: calc(100% - 48px);
	}
	.home .impact .stats {
		gap: 1rem;
	}
	.home .impact .stats div {
		min-height: 150px;
		padding: 1.15rem 1.1rem 1rem;
		border-radius: 18px;
	}
	.home .impact .stat-icon {
		width: 36px;
		height: 36px;
		margin-bottom: .85rem;
	}
	.home .impact .stat-icon svg {
		width: 27px;
		height: 27px;
	}
	.home .impact .stats strong {
		font-size: clamp(1.6rem, 3.4vw, 2.2rem);
	}
	.home .impact .stats span {
		font-size: .86rem;
	}
}
/* Premium Our Reach motion and tighter responsive card rhythm. */
@keyframes tp-impact-rise {
	from {
		opacity: 0;
		transform: translateY(14px) scale(.985);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@media (max-width: 960px) {
	.home .impact .stats div {
		position: relative;
		overflow: hidden;
		min-height: 110px;
		padding: .85rem .8rem .8rem;
		border-top: 3px solid rgba(116, 24, 95, .18);
		transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
	}
	.home .impact .stats.has-motion:not(.is-visible) > div {
		opacity: 0;
		transform: translateY(14px) scale(.985);
	}
	.home .impact .stats.is-visible > div {
		animation: tp-impact-rise .65s cubic-bezier(.2, .7, .2, 1) both;
	}
	.home .impact .stats.is-visible > div:nth-child(2) {
		animation-delay: .08s;
	}
	.home .impact .stats.is-visible > div:nth-child(3) {
		animation-delay: .16s;
	}
	.home .impact .stats.is-visible > div:nth-child(4) {
		animation-delay: .24s;
	}
	.home .impact .stat-icon {
		width: 32px;
		height: 32px;
		margin-bottom: .55rem;
		border-radius: 10px;
		background: rgba(116, 24, 95, .08);
	}
	.home .impact .stat-icon svg {
		width: 23px;
		height: 23px;
	}
	.home .impact .stats strong {
		margin-bottom: .18rem;
	}
	.home .impact .stats div::after {
		content: '';
		position: absolute;
		top: 0;
		bottom: 0;
		left: -45%;
		width: 28%;
		background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .48), transparent);
		transform: skewX(-18deg);
		pointer-events: none;
		transition: left .7s ease;
	}
	.home .impact .stats div:hover,
	.home .impact .stats div:focus-within {
		border-top-color: var(--plum);
		transform: translateY(-4px);
		box-shadow: 0 14px 28px rgba(67, 16, 59, .13);
	}
	.home .impact .stats div:hover::after,
	.home .impact .stats div:focus-within::after {
		left: 125%;
	}
}

@media (min-width: 601px) and (max-width: 960px) {
	.home .impact .stats div {
		min-height: 138px;
		padding: 1rem 1rem .9rem;
	}
	.home .impact .stat-icon {
		width: 36px;
		height: 36px;
		margin-bottom: .65rem;
	}
	.home .impact .stat-icon svg {
		width: 26px;
		height: 26px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home .impact .stats.has-motion:not(.is-visible) > div {
		opacity: 1;
		transform: none;
	}
	.home .impact .stats.is-visible > div {
		animation: none;
	}
	.home .impact .stats div:hover,
	.home .impact .stats div:focus-within {
		transform: none;
		box-shadow: none;
	}
	.home .impact .stats div::after {
		display: none;
	}
}
/* Tablet Our Reach refinement: reduce unused vertical space while keeping the two-column rhythm. */
@media (min-width: 601px) and (max-width: 960px) {
	.home .impact .stats div {
		min-height: 108px;
		padding: .75rem .9rem .7rem;
	}
	.home .impact .stat-icon {
		width: 32px;
		height: 32px;
		margin-bottom: .45rem;
	}
	.home .impact .stat-icon svg {
		width: 24px;
		height: 24px;
	}
	.home .impact .stats strong {
		font-size: clamp(1.45rem, 3.2vw, 2rem);
	}
	.home .impact .stats span {
		font-size: .78rem;
	}
}
/* Tablet Our Reach final compact sizing: cards follow their content with no reserved height. */
@media (min-width: 601px) and (max-width: 960px) {
	.home .impact .stats div {
		min-height: 0;
		padding: .6rem .8rem .55rem;
	}
	.home .impact .stat-icon {
		width: 28px;
		height: 28px;
		margin-bottom: .3rem;
		border-radius: 8px;
	}
	.home .impact .stat-icon svg {
		width: 21px;
		height: 21px;
	}
	.home .impact .stats strong {
		margin-bottom: .12rem;
		font-size: clamp(1.35rem, 3vw, 1.85rem);
	}
	.home .impact .stats span {
		font-size: .74rem;
		line-height: 1.15;
	}
}
/* Tablet Our Reach section rhythm: keep the compact cards close to the section edge. */
@media (min-width: 601px) and (max-width: 960px) {
	.home .impact {
		padding-block: 30px;
	}
}
/* Approved Option 5: compact inline Our Reach statistics for tablet only. */
@media (min-width: 601px) and (max-width: 960px) {
	.home .impact {
		padding-block: 22px;
	}
	.home .impact .container {
		width: calc(100% - 36px);
	}
	.home .impact .eyebrow {
		margin-bottom: .45rem;
		font-size: .72rem;
	}
	.home .impact h2 {
		margin-bottom: .8rem;
		font-size: clamp(1.5rem, 3.2vw, 2.2rem);
		line-height: 1.04;
	}
	.home .impact .stats {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0;
		margin-top: 0;
		background: transparent;
		width: 100%;
	}
	.home .impact .stats > div {
		display: grid;
		grid-template-columns: clamp(22px, 3vw, 32px) minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: clamp(.3rem, .7vw, .7rem);
		row-gap: .1rem;
		align-items: center;
		position: relative;
		min-width: 0;
		min-height: 0;
		padding: .35rem clamp(.25rem, .8vw, .75rem);
		border: 0;
		border-radius: 0;
		background: transparent !important;
		box-shadow: none !important;
		transform: none;
		transition: none;
	}
	.home .impact .stats > div + div::before {
		content: '';
		position: absolute;
		left: 0;
		top: 12%;
		bottom: 12%;
		width: 1px;
		background: rgba(67, 16, 59, .18);
		pointer-events: none;
	}
	.home .impact .stat-icon {
		grid-column: 1;
		grid-row: 1 / 3;
		width: clamp(22px, 3vw, 32px);
		height: clamp(22px, 3vw, 32px);
		margin: 0;
		border-radius: 50%;
		background: rgba(116, 24, 95, .08);
	}
	.home .impact .stats > div:nth-child(1) .stat-icon { background: #f8e8f1; }
	.home .impact .stats > div:nth-child(2) .stat-icon { background: #f6eddf; }
	.home .impact .stats > div:nth-child(3) .stat-icon { background: #e4efe7; }
	.home .impact .stats > div:nth-child(4) .stat-icon { background: #e4edf2; }
	.home .impact .stat-icon svg {
		width: clamp(16px, 2.2vw, 23px);
		height: clamp(16px, 2.2vw, 23px);
	}
	.home .impact .stats strong {
		grid-column: 2;
		grid-row: 1;
		margin: 0;
		font-size: clamp(1.05rem, 2.6vw, 1.75rem);
		line-height: 1;
		white-space: nowrap;
	}
	.home .impact .stats span {
		grid-column: 2;
		grid-row: 2;
		max-width: 16ch;
		margin: 0;
		font-size: clamp(.62rem, 1.1vw, .78rem);
		line-height: 1.15;
		overflow-wrap: anywhere;
	}
	.home .impact .stats > div:hover,
	.home .impact .stats > div:focus-within {
		border-color: transparent;
		box-shadow: none !important;
		transform: none;
	}
	.home .impact .stats > div::after {
		display: none;
	}
}
/* Tablet inline statistics scale refinement. */
@media (min-width: 601px) and (max-width: 960px) {
	.home .impact .stats > div {
		grid-template-columns: clamp(24px, 3.4vw, 36px) minmax(0, 1fr);
		column-gap: clamp(.35rem, .8vw, .7rem);
	}
	.home .impact .stat-icon {
		width: clamp(24px, 3.4vw, 36px);
		height: clamp(24px, 3.4vw, 36px);
	}
	.home .impact .stat-icon svg {
		width: clamp(18px, 2.5vw, 26px);
		height: clamp(18px, 2.5vw, 26px);
	}
	.home .impact .stats strong {
		font-size: clamp(1.2rem, 2.9vw, 1.95rem);
	}
	.home .impact .stats span {
		font-size: clamp(.66rem, 1.2vw, .82rem);
	}
}
/* Tablet inline statistics final scale pass. */
@media (min-width: 601px) and (max-width: 960px) {
	.home .impact .stats > div {
		grid-template-columns: clamp(26px, 3.7vw, 38px) minmax(0, 1fr);
		column-gap: clamp(.4rem, .85vw, .75rem);
	}
	.home .impact .stat-icon {
		width: clamp(26px, 3.7vw, 38px);
		height: clamp(26px, 3.7vw, 38px);
	}
	.home .impact .stat-icon svg {
		width: clamp(19px, 2.7vw, 28px);
		height: clamp(19px, 2.7vw, 28px);
	}
	.home .impact .stats strong {
		font-size: clamp(1.28rem, 3.1vw, 2.05rem);
	}
	.home .impact .stats span {
		font-size: clamp(.68rem, 1.25vw, .84rem);
	}
}
/* Tablet inline statistics motion: restrained reveal, icon pop, and divider draw. */
@keyframes tp-impact-icon-pop {
	from {
		opacity: 0;
		transform: scale(.72) rotate(-8deg);
	}
	to {
		opacity: 1;
		transform: scale(1) rotate(0);
	}
}
@keyframes tp-impact-divider-draw {
	from {
		opacity: 0;
		transform: scaleY(0);
	}
	to {
		opacity: 1;
		transform: scaleY(1);
	}
}

@media (min-width: 601px) and (max-width: 960px) {
	.home .impact .stats.is-visible .stat-icon {
		animation: tp-impact-icon-pop .55s cubic-bezier(.2, .75, .25, 1) both;
	}
	.home .impact .stats.is-visible > div:nth-child(2) .stat-icon {
		animation-delay: .08s;
	}
	.home .impact .stats.is-visible > div:nth-child(3) .stat-icon {
		animation-delay: .16s;
	}
	.home .impact .stats.is-visible > div:nth-child(4) .stat-icon {
		animation-delay: .24s;
	}
	.home .impact .stats.is-visible > div + div::before {
		transform-origin: center;
		animation: tp-impact-divider-draw .45s ease-out both;
	}
	.home .impact .stats.is-visible > div:nth-child(2)::before {
		animation-delay: .08s;
	}
	.home .impact .stats.is-visible > div:nth-child(3)::before {
		animation-delay: .16s;
	}
	.home .impact .stats.is-visible > div:nth-child(4)::before {
		animation-delay: .24s;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home .impact .stats.is-visible .stat-icon,
	.home .impact .stats.is-visible > div + div::before {
		animation: none;
	}
}
/* Responsive programme cards: keep click/active states steady without zooming. */
@media (max-width: 960px) {
	.programs-feature__list .program-tab,
	.programs-feature__list .program-tab:hover,
	.programs-feature__list .program-tab:focus-visible,
	.programs-feature__list .program-tab.is-active {
		transform: none !important;
		scale: 1 !important;
		transition: none !important;
		background-size: cover !important;
		padding-left: 1.25rem;
	}
}
/* Keep responsive programme card imagery stable in hover and active states. */
@media (max-width: 960px) {
	.programs-feature__list .program-tab:hover,
	.programs-feature__list .program-tab:focus-visible,
	.programs-feature__list .program-tab.is-active {
		background-image: linear-gradient(0deg, rgba(20, 12, 19, .9), rgba(20, 12, 19, .08) 78%), var(--program-image) !important;
	}
	.programs-feature__list .program-tab.is-active {
		box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .52);
	}
}