/* ========================================================================
   PROGRAMME DIRECTORY — DESKTOP BASE STYLES
   Main desktop presentation and default layout (>767px).
   ======================================================================== */

/* ========================================================================
   PROGRAMME DIRECTORY — DESKTOP BASE STYLES
   ======================================================================== */

.pu-new-src-programme-directory {
	padding: 84px 0 50px;
	background: #f7f7f9 !important;
	color: #000 !important;
	overflow: hidden;
}

/* Ensure Heading Wrapper Has No Background Overrides */
.pu-new-src-programme-directory-heading {
	max-width: 1120px;
	margin-bottom: 46px;
	background: transparent !important;
}

.pu-new-src-programme-directory-eyebrow {
	margin: 0 0 14px !important;
	color: #0f0445 !important; /* Changed from #000 for better hierarchy */
	font-family: var(--font-body);
	font-size: 36px !important;
	font-weight: 700 !important;
	line-height: 100% !important;
}

.pu-new-src-programme-directory-heading h2 {
	margin: 0;
	color: #0f0445 !important;
	font-family: var(--font-display);
	font-size: 64px !important;
	font-weight: 700 !important;
	line-height: 110% !important;
}

.pu-new-src-programme-directory-heading h2 span { 
	display: inline !important; 
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
}

.pu-new-src-programme-directory-heading h2 span:first-child { 
	color: #0f0445 !important; 
}

/* Gradient Text Fix */
.pu-new-src-programme-directory-heading h2 span:nth-child(2) { 
	display: inline !important; /* Keep inline so text flows naturally */
	background: linear-gradient(90deg, #b53c72, #5641e0) !important; 
	background-clip: text !important; 
	-webkit-background-clip: text !important; 
	-webkit-text-fill-color: transparent !important;
	color: transparent !important; 
}

.pu-new-src-programme-directory-heading h2 span:last-child { 
	color: #55545a !important; 
}

.pu-new-src-programme-directory-intro {
	max-width: 1070px;
	margin: 14px 0 0;
	color: #333333 !important; /* Soft dark text for description */
	font-family: var(--font-figtree, var(--font-body));
	font-size: 20px;
	line-height: 140% !important;
}

/* Group & Section Headers */
.pu-new-src-programme-group { 
	position: relative; 
	margin-top: 38px; 
	padding-bottom: 36px; 
}

.pu-new-src-programme-group-heading { 
	display: flex; 
	align-items: flex-end; 
	justify-content: space-between; 
	gap: 20px; 
	margin-bottom: 18px; 
}

.pu-new-src-programme-group-heading h3 { 
	margin-bottom: 20px; 
	background: linear-gradient(90deg, #b53c72, #5641e0) !important; 
	background-clip: text !important; 
	-webkit-background-clip: text !important; 
	-webkit-text-fill-color: transparent !important;
	color: transparent !important; 
	font-family: var(--font-display);
	font-size: 40px !important; 
	font-weight: 700 !important; 
	line-height: 130% !important; 
}

.pu-new-src-programme-group-heading p { 
	margin: 0; 
	color: #000 !important;
	font-family: var(--font-body);
	font-size: 18px !important; 
	line-height: 100% !important; 
}

.pu-new-src-programme-group-controls { 
	display: flex; 
	gap: 12px; 
}

.pu-new-src-programme-arrow { 
	width: 28px; 
	height: 28px; 
	padding: 0; 
	border: 0; 
	background: transparent !important; 
	color: #0f0445 !important; 
	font-size: 32px !important; 
	line-height: 20px !important; 
	cursor: pointer; 
}

.pu-new-src-programme-arrow:disabled { 
	opacity: .25; 
	cursor: not-allowed; 
}

/* Track, Slides & Cards */
.pu-new-src-programme-rail { 
	overflow: hidden; 
}

.pu-new-src-programme-track { 
	flex-wrap: nowrap; 
	transition: transform 350ms ease; 
}

.pu-new-src-programme-slide { 
	display: flex; 
	flex: 0 0 33.333333%; 
}

.pu-new-src-programme-card { 
	position: relative; 
	display: flex; 
	width: 100%; 
	height: 610px; 
	flex-direction: column; 
	overflow: hidden; 
	border-radius: 16px; 
	background: #0f0445 !important; 
}

.pu-new-src-programme-media { 
	position: relative; 
	height: 351px; 
	flex: 0 0 351px; 
	overflow: hidden; 
}

.pu-new-src-programme-media img { 
	width: 100%; 
	height: 100%; 
	object-fit: cover; 
	display: block; 
}

.pu-new-src-programme-media span { 
	position: absolute; 
	top: 12px; 
	left: 10px; 
	padding: 6px 8px; 
	border-radius: 20px; 
	background: #0f0445 !important; 
	color: #fff !important; 
	font-family: var(--font-body);
	font-size: 12px !important; 
	line-height: 100% !important; 
}

.pu-new-src-programme-card-body { 
	display: flex; 
	flex: 1; 
	flex-direction: column; 
	padding: 28px; 
}

.pu-new-src-programme-card-body h4 { 
	margin: 0 0 12px; 
	color: #ffc800 !important; 
	font-family: var(--font-display); 
	font-size: 32px !important; 
	font-weight: 700 !important; 
	line-height: 100% !important;
	min-height:65px;
}

.page-id-59877 .pu-new-src-programme-card-body h4 { 
	min-height: 8px;
}

.pu-new-src-programme-card-body p { 
	margin: 0; 
	color: #fff !important; 
	font-family: var(--font-body);
	font-size: 16px !important; 
	line-height: 135% !important; 
	min-height: 90px;
}

.pu-new-src-programme-card-body a { 
	margin-top: auto; 
	padding-top: 14px; 
	position: relative; 
	color: #ffc800 !important; 
	font-family: var(--font-body);
	font-size: 18px !important; 
	font-weight: 700 !important; 
	line-height: 135% !important; 
	text-decoration: none !important; 
	display: inline-block; 
	
	transition: transform 0.25s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
	will-change: transform;
}

/* Static horizontal line */
.pu-new-src-programme-card-body a::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 0.75px;
	background-color: #ffffff;
	transition: transform 0.25s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
	transform-origin: center;
}

/* Scale text up, scale line back down to counteract */
.pu-new-src-programme-card-body a:hover {
	transform: scale(1.04);
}

.pu-new-src-programme-card-body a:hover::before {
	transform: scale(0.9615); /* 1 / 1.04 = keeps line size unchanged */
}

/* Footer & Progress Bar */
.pu-new-src-programme-footer { 
	display: flex; 
	align-items: center; 
	gap: 20px; 
	margin-right: 0; 
	padding-top: 20px; 
}

.pu-new-src-programme-progress { 
	height: 2px; 
	flex: 1; 
	margin-top: 14px; 
	background: #0f0445 !important; 
}

.pu-new-src-programme-progress span { 
	display: block; 
	width: 33.333%; 
	height: 100%; 
	background: #ffc800 !important; 
	transition: width 350ms ease; 
}

/* Mobile Controls Hidden by Default in Base Desktop */
.pu-new-src-programme-directory-mobile-select-wrap,
.pu-new-src-programme-mobile-select-wrap { 
	display: none !important; 
}

.pu-new-src-programme-dots { 
	display: none; 
}

/* Desktop Width Conditional Overrides */
@media screen and (min-width: 768px) {
	.pu-new-src-programme-group[data-programme-card-count="3"] .pu-new-src-programme-footer { 
		display: none !important; 
	}
}

@media screen and (min-width: 1200px) {
	.pu-new-src-programme-slide { 
		flex-basis: 408px !important; 
		max-width: 408px !important; 
	}
}