/**
 * Regional Activities template.
 * Loaded only on pages using regional-activities.php.
 */

.ra-page {
	--ra-ink: #0B1220;
	--ra-ink-soft: #46506A;
	--ra-line: rgba(11, 18, 32, .10);
	--ra-gold: var(--yellow-color, #fec624);
	--ra-gold-deep: #e0a800;
	--ra-surface: #ffffff;
	--ra-surface-alt: #F4F6FB;
	--ra-radius: 22px;
	--ra-shadow: 0 2px 4px rgba(11, 18, 32, .04), 0 12px 28px rgba(11, 18, 32, .07);
	--ra-shadow-lg: 0 8px 20px rgba(11, 18, 32, .08), 0 30px 60px rgba(11, 18, 32, .12);
	--ra-ease: cubic-bezier(.22, .61, .36, 1);
	font-family: var(--body-font, "Fira Sans", sans-serif);
	color: var(--ra-ink-soft);
	overflow-x: clip;
}

/* Shared type only - colour is set per component so the dark panels keep white text. */
.ra-page h1,
.ra-page h2,
.ra-page h3,
.ra-page h4 {
	font-family: var(--title-font, "Exo", sans-serif);
	letter-spacing: -.02em;
}

/* ---------------------------------------------------------------- Hero */

.ra-hero {
	position: relative;
	isolation: isolate;
	padding: 110px 0 190px;
	background: radial-gradient(120% 130% at 12% 0%, #16223D 0%, #0B1220 55%, #060A14 100%);
	color: #fff;
	overflow: hidden;
}

.ra-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background-image:
		radial-gradient(38rem 38rem at 85% 8%, rgba(254, 198, 36, .16), transparent 62%),
		radial-gradient(30rem 30rem at 5% 88%, rgba(92, 137, 255, .16), transparent 64%);
}

/* Fine grid texture keeps the flat dark panel from looking empty. */
.ra-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 74px 74px;
	-webkit-mask-image: radial-gradient(75% 65% at 50% 38%, #000 0%, transparent 100%);
	mask-image: radial-gradient(75% 65% at 50% 38%, #000 0%, transparent 100%);
}

/* Photographic backdrop, dimmed hard so the type stays readable. */
.ra-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -3;
	background-position: center;
	background-size: cover;
	opacity: .16;
	filter: grayscale(.55) contrast(1.05);
}

.ra-crumb {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 30px;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 13px;
	font-weight: 500;
	color: rgba(255, 255, 255, .55);
}

.ra-crumb a {
	color: rgba(255, 255, 255, .78);
	text-decoration: none;
	transition: color .25s var(--ra-ease);
}

.ra-crumb a:hover,
.ra-crumb a:focus-visible {
	color: var(--ra-gold);
}

.ra-crumb__current {
	color: #fff;
}

.ra-hero__inner {
	position: relative;
	max-width: 900px;
}

.ra-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 26px;
	padding: 9px 20px 9px 12px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 100px;
	background: rgba(255, 255, 255, .06);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #fff;
}

.ra-eyebrow__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ra-gold);
	box-shadow: 0 0 0 4px rgba(254, 198, 36, .22);
}

.ra-hero__title {
	margin: 0 0 22px;
	font-size: clamp(2.6rem, 6.2vw, 4.6rem);
	font-weight: 700;
	line-height: 1.04;
	color: #fff;
}

.ra-hero__title .ra-accent {
	position: relative;
	display: inline-block;
	color: var(--ra-gold);
}

.ra-hero__title .ra-accent::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: .06em;
	height: .1em;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--ra-gold), rgba(254, 198, 36, 0));
}

.ra-hero__lead {
	max-width: 660px;
	margin: 0;
	font-size: clamp(1.02rem, 1.5vw, 1.22rem);
	line-height: 1.75;
	color: rgba(255, 255, 255, .74);
}

.ra-hero__lead > :last-child {
	margin-bottom: 0;
}

/* Stat strip straddling the hero edge */

.ra-stats {
	position: relative;
	z-index: 3;
	margin-top: -96px;
}

.ra-stats__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	overflow: hidden;
	border: 1px solid var(--ra-line);
	border-radius: var(--ra-radius);
	background: var(--ra-line);
	box-shadow: var(--ra-shadow-lg);
}

.ra-stat {
	padding: 38px 30px;
	background: var(--ra-surface);
	text-align: center;
}

.ra-stat__num {
	display: block;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: clamp(2.1rem, 3.4vw, 2.9rem);
	font-weight: 700;
	line-height: 1;
	color: var(--ra-ink);
}

.ra-stat__num sup {
	top: -.55em;
	margin-left: 2px;
	font-size: .46em;
	color: var(--ra-gold-deep);
}

.ra-stat__label {
	display: block;
	margin-top: 12px;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ra-ink-soft);
}

/* ------------------------------------------------------------ Jump nav */

/* --ra-header-h is measured from the theme's fixed header by regional-activities.js */
.ra-jump {
	position: sticky;
	top: var(--ra-header-h, 0px);
	z-index: 20;
	padding: 18px 0;
	background: rgba(255, 255, 255, .82);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	backdrop-filter: saturate(180%) blur(14px);
	border-bottom: 1px solid var(--ra-line);
}

.ra-jump__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ra-jump__link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 22px;
	border: 1px solid var(--ra-line);
	border-radius: 100px;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 14px;
	font-weight: 600;
	color: var(--ra-ink);
	text-decoration: none;
	transition: all .28s var(--ra-ease);
}

.ra-jump__link::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--ra-line);
	transition: inherit;
}

.ra-jump__link:hover,
.ra-jump__link:focus-visible {
	border-color: var(--ra-ink);
	color: var(--ra-ink);
	transform: translateY(-2px);
	box-shadow: var(--ra-shadow);
}

.ra-jump__link.is-active {
	border-color: transparent;
	background: var(--ra-ink);
	color: #fff;
}

.ra-jump__link.is-active::before {
	background: var(--ra-gold);
	box-shadow: 0 0 0 3px rgba(254, 198, 36, .25);
}

/* ------------------------------------------------------------- Regions */

.ra-regions {
	padding: 104px 0 40px;
	background: var(--ra-surface);
}

.ra-region {
	position: relative;
	margin-bottom: 104px;
	scroll-margin-top: calc(var(--ra-header-h, 0px) + 96px);
}

.ra-region:last-child {
	margin-bottom: 0;
}

.ra-region__head {
	display: flex;
	align-items: flex-end;
	gap: 26px;
	margin-bottom: 34px;
}

.ra-region__index {
	flex: none;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: clamp(3rem, 7vw, 5.2rem);
	font-weight: 700;
	line-height: .8;
	letter-spacing: -.04em;
	color: transparent;
	-webkit-text-stroke: 1.5px rgba(11, 18, 32, .22);
}

.ra-region__heading {
	margin: 0;
	font-size: clamp(1.8rem, 3.4vw, 2.7rem);
	font-weight: 700;
	color: var(--ra-ink);
}

.ra-region__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}

.ra-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 14px;
	border-radius: 100px;
	background: var(--ra-surface-alt);
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ra-ink-soft);
}

.ra-chip--gold {
	background: rgba(254, 198, 36, .16);
	color: #8a6400;
}

/* Media + copy */

/* The region photos are wide panoramas, so they run full width as a banner
   and the copy sits underneath in magazine columns. Side-by-side would crop
   the panorama to a narrow slice. */
.ra-region__body {
	display: block;
}

.ra-region__figure {
	position: relative;
	margin: 0 0 40px;
	border-radius: var(--ra-radius);
	overflow: hidden;
	background: var(--ra-surface-alt);
	box-shadow: var(--ra-shadow-lg);
}

.ra-region__figure img {
	display: block;
	width: 100%;
	max-height: 480px;
	object-fit: cover;
	transform: scale(1.01);
	transition: transform 1.1s var(--ra-ease);
}

.ra-region__figure:hover img {
	transform: scale(1.055);
}

.ra-region__figure::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(11, 18, 32, 0) 52%, rgba(11, 18, 32, .52) 100%);
}

.ra-region__figcap {
	position: absolute;
	left: 22px;
	right: 22px;
	bottom: 20px;
	z-index: 2;
	margin: 0;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 13px;
	font-weight: 500;
	color: rgba(255, 255, 255, .88);
}

.ra-region__copy {
	font-size: 1.02rem;
	line-height: 1.85;
	columns: 2;
	column-gap: 52px;
}

/* Keep the opening paragraph and its drop cap out of the column flow. */
.ra-region__copy > p:first-of-type {
	column-span: all;
	max-width: 62ch;
}

.ra-region__copy > p:first-of-type {
	font-size: 1.12rem;
	line-height: 1.7;
	color: var(--ra-ink);
}

.ra-region__copy > p:first-of-type::first-letter {
	float: left;
	margin: 6px 12px 0 0;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 3.4rem;
	font-weight: 700;
	line-height: .82;
	color: var(--ra-gold-deep);
}

.ra-region__copy > :last-child {
	margin-bottom: 0;
}

.ra-region__copy img {
	max-width: 100%;
	height: auto;
	border-radius: 14px;
}

.ra-region__copy p {
	break-inside: avoid;
}

/* Alternate regions get a tinted panel so the sections read as distinct. */
.ra-region--flip {
	padding: 56px 40px;
	border-radius: var(--ra-radius);
	background: var(--ra-surface-alt);
}

/* ------------------------------------------------------- Committee row */

.ra-committee {
	margin-top: 44px;
	padding-top: 38px;
	border-top: 1px solid var(--ra-line);
}

.ra-committee__title {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 26px;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ra-ink-soft);
}

.ra-committee__title::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--ra-line);
}

.ra-committee__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 22px;
}

.ra-member {
	position: relative;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 22px;
	border: 1px solid var(--ra-line);
	border-radius: 18px;
	background: var(--ra-surface);
	overflow: hidden;
	transition: transform .35s var(--ra-ease), box-shadow .35s var(--ra-ease), border-color .35s var(--ra-ease);
}

/* Gold wash that slides in on hover */
.ra-member::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(120deg, rgba(254, 198, 36, .14), rgba(254, 198, 36, 0) 62%);
	opacity: 0;
	transition: opacity .35s var(--ra-ease);
}

.ra-member:hover {
	transform: translateY(-5px);
	border-color: rgba(254, 198, 36, .55);
	box-shadow: var(--ra-shadow-lg);
}

.ra-member:hover::before {
	opacity: 1;
}

.ra-member__avatar {
	position: relative;
	z-index: 1;
	flex: none;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	overflow: hidden;
	background: linear-gradient(145deg, var(--ra-ink) 0%, #26324F 100%);
	box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--ra-line);
}

.ra-member__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ra-member__initials {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--ra-gold);
}

.ra-member__info {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.ra-member__name {
	margin: 0 0 6px;
	font-size: 1.08rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ra-ink);
}

.ra-member__role {
	display: inline-block;
	margin: 0;
	padding: 4px 12px;
	border-radius: 100px;
	background: var(--ra-surface-alt);
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ra-ink-soft);
}

/* ----------------------------------------------------------------- CTA */

.ra-cta {
	padding: 40px 0 110px;
	background: var(--ra-surface);
}

.ra-cta__panel {
	position: relative;
	padding: 62px 56px;
	border-radius: var(--ra-radius);
	background: radial-gradient(110% 160% at 88% 6%, #1B2947 0%, #0B1220 58%, #060A14 100%);
	color: #fff;
	overflow: hidden;
	text-align: center;
}

.ra-cta__panel::after {
	content: "";
	position: absolute;
	right: -70px;
	bottom: -90px;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(254, 198, 36, .26), transparent 68%);
}

.ra-cta__title {
	position: relative;
	z-index: 1;
	margin: 0 0 14px;
	font-size: clamp(1.7rem, 3.2vw, 2.5rem);
	font-weight: 700;
	color: #fff;
}

.ra-cta__text {
	position: relative;
	z-index: 1;
	max-width: 620px;
	margin: 0 auto 32px;
	line-height: 1.75;
	color: rgba(255, 255, 255, .72);
}

.ra-btn {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 11px;
	padding: 16px 36px;
	border: none;
	border-radius: 100px;
	background: var(--ra-gold);
	font-family: var(--title-font, "Exo", sans-serif);
	font-size: 15px;
	font-weight: 600;
	color: var(--ra-ink);
	text-decoration: none;
	transition: transform .3s var(--ra-ease), box-shadow .3s var(--ra-ease);
}

.ra-btn:hover,
.ra-btn:focus-visible {
	color: var(--ra-ink);
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(254, 198, 36, .38);
}

.ra-btn svg {
	transition: transform .3s var(--ra-ease);
}

.ra-btn:hover svg {
	transform: translateX(4px);
}

/* ----------------------------------------------------------- Reveal in */

/* .ra-js is set by the script, so without JS nothing is ever hidden. */
.ra-js .ra-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s var(--ra-ease), transform .7s var(--ra-ease);
}

.ra-js .ra-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* ---------------------------------------------------------- Responsive */

@media (max-width: 991px) {
	.ra-region__copy {
		columns: 1;
	}

	.ra-region__figure img {
		max-height: 380px;
	}

	.ra-region--flip {
		padding: 40px 24px;
	}
}

@media (max-width: 767px) {
	.ra-hero {
		padding: 76px 0 150px;
	}

	.ra-stats__grid {
		grid-template-columns: 1fr;
	}

	.ra-stat {
		padding: 26px 20px;
	}

	.ra-regions {
		padding-top: 64px;
	}

	.ra-region {
		margin-bottom: 72px;
	}

	.ra-region__head {
		align-items: center;
		gap: 16px;
	}

	.ra-region__index {
		-webkit-text-stroke-width: 1px;
	}

	.ra-committee__grid {
		grid-template-columns: 1fr;
	}

	.ra-cta {
		padding-bottom: 72px;
	}

	.ra-cta__panel {
		padding: 44px 24px;
	}

	.ra-jump {
		padding: 12px 0;
	}

	.ra-jump__list {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		scrollbar-width: none;
		-ms-overflow-style: none;
		padding-bottom: 2px;
	}

	.ra-jump__list::-webkit-scrollbar {
		display: none;
	}

	.ra-jump__link {
		white-space: nowrap;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ra-page *,
	.ra-page *::before,
	.ra-page *::after {
		animation-duration: .001ms !important;
		transition-duration: .001ms !important;
	}

	.ra-js .ra-reveal {
		opacity: 1;
		transform: none;
	}
}
