/* Editable programme audience section. Decorative glow may be positioned,
 * while the heading, grid and cards stay in normal document flow. */
:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience {
	position: relative;
	overflow: hidden;
	box-sizing: border-box;
	min-height: 0;
	height: auto;
	padding: 50px 0 48px;
	background: #fff;
	color: #000;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience .fp-program-container {
	position: relative;
	z-index: 1;
	width: min(1190px, calc(100% - 48px));
	margin: 0 auto;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience__glow {
	position: absolute;
	z-index: 0;
	top: -490px;
	left: -489px;
	display: flex;
	width: 1083.773px;
	height: 1134.913px;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience__glow > div {
	flex: none;
	transform: rotate(-73.01deg) scaleY(-1);
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience__glow > div > div {
	position: relative;
	width: 927px;
	height: 850px;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience__glow img {
	display: block;
	position: absolute;
	inset: -18.56% -17.02%;
	width: 134.04%;
	max-width: none;
	height: 137.12%;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience .fp-program-section-heading {
	position: relative;
	top: auto;
	left: auto;
	width: 100%;
	margin: 0;
	transform: none;
	text-align: center;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience .fp-program-section-heading .fp-program-eyebrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	margin: 0;
	padding: 15px 40px;
	box-sizing: border-box;
	border: 1px solid rgba(234, 233, 233, .8);
	border-radius: 500px;
	background: rgba(255, 255, 255, .8);
	color: #000;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -1px;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience .fp-program-section-heading h2 {
	max-width: 1093px;
	margin: 36px auto 0;
	color: #000;
	font-size: clamp(34px, 4vw, 48px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -1px;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience__grid {
	position: relative;
	top: auto;
	left: auto;
	display: grid;
	width: 100%;
	margin: 100px 0 0;
	transform: none;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience-card {
	display: flex;
	min-width: 0;
	min-height: 221px;
	height: auto;
	box-sizing: border-box;
	flex-direction: column;
	justify-content: space-between;
	padding: 40px 30px;
	border: 1px solid #eae9e9;
	border-radius: 30px;
	background: #fff;
	color: #000;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience-card h3 {
	margin: 0;
	color: #000;
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: -1px;
}

:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience-card p {
	margin: 0;
	padding: 0;
	border: 0;
	color: rgba(0, 0, 0, .8);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -1px;
}

@media (max-width: 800px) {
	:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience {
		padding: 52px 0 72px;
	}
	:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience .fp-program-container {
		width: calc(100% - 32px);
	}
	:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience .fp-program-section-heading h2 {
		margin-top: 28px;
		font-size: 34px;
	}
	:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience__grid {
		margin-top: 72px;
		grid-template-columns: 1fr;
	}
	:is(body.fp-program-page, .editor-styles-wrapper) .fp-program-audience-card {
		min-height: 0;
		gap: 44px;
	}
}
